@machinemetrics/mm-erp-sdk 0.9.4-beta.1 → 0.9.5

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 (59) hide show
  1. package/README.md +54 -43
  2. package/dist/index.d.ts +1 -1
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +1 -1
  5. package/dist/index.js.map +1 -1
  6. package/dist/services/mm-api-service/index.d.ts +2 -2
  7. package/dist/services/mm-api-service/index.d.ts.map +1 -1
  8. package/dist/services/mm-api-service/index.js.map +1 -1
  9. package/dist/services/mm-api-service/mes-machine-settings.d.ts +46 -0
  10. package/dist/services/mm-api-service/mes-machine-settings.d.ts.map +1 -0
  11. package/dist/services/mm-api-service/mes-machine-settings.js +124 -0
  12. package/dist/services/mm-api-service/mes-machine-settings.js.map +1 -0
  13. package/dist/services/mm-api-service/mm-api-service.d.ts +21 -12
  14. package/dist/services/mm-api-service/mm-api-service.d.ts.map +1 -1
  15. package/dist/services/mm-api-service/mm-api-service.js +32 -48
  16. package/dist/services/mm-api-service/mm-api-service.js.map +1 -1
  17. package/dist/services/mm-api-service/types/mm-response-interfaces.d.ts +4 -16
  18. package/dist/services/mm-api-service/types/mm-response-interfaces.d.ts.map +1 -1
  19. package/dist/services/mm-api-service/types/mm-response-interfaces.js.map +1 -1
  20. package/dist/services/mm-api-service/types/receive-types.d.ts +1 -1
  21. package/dist/services/mm-api-service/types/receive-types.d.ts.map +1 -1
  22. package/dist/services/mm-api-service/types/receive-types.js +1 -1
  23. package/dist/services/mm-api-service/types/receive-types.js.map +1 -1
  24. package/dist/utils/index.d.ts +1 -0
  25. package/dist/utils/index.d.ts.map +1 -1
  26. package/dist/utils/index.js +1 -0
  27. package/dist/utils/index.js.map +1 -1
  28. package/dist/utils/labor-import-from-erp.d.ts +6 -7
  29. package/dist/utils/labor-import-from-erp.d.ts.map +1 -1
  30. package/dist/utils/labor-import-from-erp.js +24 -50
  31. package/dist/utils/labor-import-from-erp.js.map +1 -1
  32. package/dist/utils/standard-process-drivers/labor-ticket-erp-synchronizer.d.ts.map +1 -1
  33. package/dist/utils/standard-process-drivers/labor-ticket-erp-synchronizer.js +2 -10
  34. package/dist/utils/standard-process-drivers/labor-ticket-erp-synchronizer.js.map +1 -1
  35. package/dist/utils/standard-process-drivers/standard-process-drivers.d.ts +14 -14
  36. package/dist/utils/standard-process-drivers/standard-process-drivers.d.ts.map +1 -1
  37. package/dist/utils/standard-process-drivers/standard-process-drivers.js +73 -73
  38. package/dist/utils/standard-process-drivers/standard-process-drivers.js.map +1 -1
  39. package/dist/utils/standard-process-drivers/timesheet-erp-synchronizer.d.ts.map +1 -1
  40. package/dist/utils/standard-process-drivers/timesheet-erp-synchronizer.js +55 -50
  41. package/dist/utils/standard-process-drivers/timesheet-erp-synchronizer.js.map +1 -1
  42. package/package.json +4 -1
  43. package/src/index.ts +3 -1
  44. package/src/services/mm-api-service/index.ts +0 -2
  45. package/src/services/mm-api-service/mes-machine-settings.test.ts +174 -0
  46. package/src/services/mm-api-service/mes-machine-settings.ts +169 -0
  47. package/src/services/mm-api-service/mm-api-service.ts +41 -61
  48. package/src/services/mm-api-service/types/mm-response-interfaces.ts +4 -17
  49. package/src/services/mm-api-service/types/receive-types.ts +1 -1
  50. package/src/utils/index.ts +4 -0
  51. package/src/utils/labor-import-from-erp.ts +25 -59
  52. package/src/utils/standard-process-drivers/labor-ticket-erp-synchronizer.ts +2 -10
  53. package/src/utils/standard-process-drivers/standard-process-drivers.ts +75 -75
  54. package/src/utils/standard-process-drivers/timesheet-erp-synchronizer.ts +67 -63
  55. package/dist/utils/resource-group.d.ts +0 -11
  56. package/dist/utils/resource-group.d.ts.map +0 -1
  57. package/dist/utils/resource-group.js +0 -71
  58. package/dist/utils/resource-group.js.map +0 -1
  59. package/src/utils/resource-group.ts +0 -105
package/README.md CHANGED
@@ -22,6 +22,8 @@ npm install mm-erp-sdk
22
22
  ### 2. Implement an ERP Connector
23
23
 
24
24
  ```typescript
25
+ import path from "path";
26
+ import { fileURLToPath } from "url";
25
27
  import {
26
28
  IERPConnector,
27
29
  IERPLaborTicketHandler,
@@ -41,7 +43,13 @@ export default class MyERPConnector
41
43
  async startUp(): Promise<void> {
42
44
  try {
43
45
  await ApplicationInitializer.initialize();
44
- await runDataSyncService();
46
+ // Bree workers re-import the built connector module from disk each cycle,
47
+ // so runDataSyncService needs the path to this connector's compiled JS.
48
+ const connectorPath = path.resolve(
49
+ path.dirname(fileURLToPath(import.meta.url)),
50
+ "my-erp-connector.js"
51
+ );
52
+ await runDataSyncService(connectorPath);
45
53
  } catch (error) {
46
54
  console.error("Startup failed:", error);
47
55
  process.exitCode = 1;
@@ -81,12 +89,14 @@ const connector = new MyERPConnector();
81
89
  await connector.startUp();
82
90
  ```
83
91
 
92
+ > `runDataSyncService(connectorPath)` requires a path to the connector's **compiled JS** module (not the `.ts` source). See the template `CONNECTOR-GUIDE.md` for the build/runtime path resolution details.
93
+
84
94
  ## Data Sync Jobs
85
95
 
86
96
  The SDK includes automated jobs that run on configurable intervals:
87
97
 
88
98
  - **from-erp**: Syncs data from ERP to MachineMetrics
89
- - **to-erp**: Syncs labor tickets from MachineMetrics to ERP
99
+ - **to-erp**: Syncs labor tickets and employee timesheets from MachineMetrics to ERP
90
100
  - **retry-failed-labor-tickets**: Retries failed labor ticket operations
91
101
  - **clean-up-expired-cache**: Maintains cache hygiene
92
102
 
@@ -99,44 +109,44 @@ RETRY_LABOR_TICKETS_INTERVAL="10m"
99
109
  CACHE_EXPIRATION_CHECK_INTERVAL="1h"
100
110
  ```
101
111
 
102
- ## Bidirectional Labor Ticket Sync
103
-
104
- The SDK automatically prevents circular writes when implementing bidirectional labor ticket synchronization:
105
-
106
- ### Automatic Deduplication
107
-
108
- When you write labor tickets to MachineMetrics using `MMApiClient.sendLaborTicketsToMM()`, the SDK **automatically marks them in a deduplication cache**. This prevents the `to-erp` job from processing them again and creating circular writes back to the ERP.
112
+ ### Execution model
109
113
 
110
- ```typescript
111
- // In your from-erp job - just write normally
112
- const mmApiClient = new MMApiClient();
113
- await mmApiClient.sendLaborTicketsToMM(laborTickets);
114
- // ↑ SDK automatically marks these in dedup cache
115
- ```
114
+ Jobs are scheduled with **Bree**. Each job cycle runs as an **independent worker process** that constructs a **fresh connector instance** — so in-memory state does **not** persist across cycles, and cycles are not guaranteed to run serially (labor tickets may be processed concurrently within a cycle). Persist durable state in the SDK's SQLite stores or MM checkpoints, not in instance/module memory. See `CONNECTOR_SDK_UTILITIES.md` (`runDataSyncService`) for the full contract.
116
115
 
117
- ### How It Works
116
+ ## Labor Ticket Synchronization
118
117
 
119
- 1. **Import from ERP**: Your connector writes labor tickets to MM
120
- 2. **Auto-marking**: SDK marks the business signature in dedup cache (24h TTL)
121
- 3. **to-erp job runs**: Fetches updated tickets from MM
122
- 4. **Dedup check**: Checks cache by business signature
123
- - **Cache hit**: Skips (no circular write)
124
- - **Cache miss**: Processes normally (user edited the ticket)
118
+ The SDK provides bidirectional labor ticket synchronization with built-in protection against circular writes (ERP MM → ERP):
125
119
 
126
- ### User Edits
120
+ - **Labor sync ledger** (SQLite-backed): records a per-ticket business signature so the `to-erp` export skips tickets whose business-relevant content is unchanged since they were last processed. Tickets imported from the ERP before MM assigns a `laborTicketRef` are tracked under a stable `erp-import:{workOrderId}:{laborTicketId}` key.
121
+ - **ERP → MM import filtering**: `StandardProcessDrivers.writeLaborTicketsToMmFromErpImport()` applies MES/operator allowlists and FK rules, pre-marks accepted tickets in the ledger, writes them to MM, and advances the labor-tickets export checkpoint.
122
+ - **Hashed batch cache**: `BatchCacheManager` / `StandardProcessDrivers.writeEntitiesToMM()` deduplicate repeated upserts within a batch (local + API-side).
123
+ - **Signature semantics**: the business signature excludes identity fields (`laborTicketRef`, ERP-import keys) and SDK-mutated fields, so the same business state produces a stable hash across import and the next export. A dashboard edit changes the signature, so the change is exported.
127
124
 
128
- If a user edits a labor ticket in the MachineMetrics dashboard after import, the business signature changes automatically. The `to-erp` job will detect this and sync the changes back to your ERP.
125
+ See `CONNECTOR_SDK_UTILITIES.md` for the helper APIs, and the template `CONNECTOR-GUIDE.md` for the connector workflow.
129
126
 
130
127
  ### Persistent Storage
131
128
 
132
- For production deployments, use a persistent volume for the SQLite database to ensure the dedup cache survives container restarts:
129
+ For production deployments, mount a persistent volume for the SQLite database so the sync ledger and dedup cache survive container restarts:
133
130
 
134
131
  ```bash
135
- # Set environment variable
136
132
  SQLITE_DB_PATH=/app/data/local.sqlite3
137
133
  ```
138
134
 
139
- See the connector's `docker-compose.yml` or `k8s/persistent-volume.yaml` for volume configuration examples.
135
+ ## Timesheet Export
136
+
137
+ The SDK provides employee clock in/out export from MM to the ERP, separate from shop-floor labor tickets:
138
+
139
+ - `IERPTimesheetHandler` — connector-implemented hook that receives `MMReceiveTimesheet` rows.
140
+ - `StandardProcessDrivers.syncTimesheetsToERP()` — fetches pending rows from `/erp/v1/timesheets/updates`, processes them in `timesheetRef` order, and checkpoints progress. It assumes labor ticket export has already run for the cycle, so shop-floor labor is written/closed before clock-out.
141
+
142
+ ## ERP Resource Mapping (MES Machine Settings)
143
+
144
+ Machine-to-ERP-resource mapping is sourced from **MES machine settings** (`GET /mes/settings/machine-settings`):
145
+
146
+ - `MMApiClient.fetchMappedErpResourcesForCompany()` — machines mapped to ERP labor resources (`machineRef` + `laborResourceId`).
147
+ - `MMApiClient.fetchMesSchedulableErpResourceIds()` / `getMesLaborImportResourceIds()` — schedulable and labor-import resource-id allowlists.
148
+
149
+ > **Deprecation:** `erpResources.machineRef` is deprecated and is no longer populated for new configuration in the MM App. Use MES machine settings instead. See `CONNECTOR_SDK_UTILITIES.md`.
140
150
 
141
151
  ## Environment Configuration
142
152
 
@@ -168,35 +178,36 @@ LOG_LEVEL="info"
168
178
 
169
179
  ### Core Interfaces
170
180
 
171
- - `IERPConnector`: Main connector interface
172
- - `IERPLaborTicketHandler`: Labor ticket operations interface
181
+ - `IERPConnector`: Main connector interface (`syncFromERP`, `syncToERP`, lifecycle hooks)
182
+ - `IERPLaborTicketHandler`: Create/update labor tickets in the ERP (`MMReceiveLaborTicket`)
183
+ - `IERPTimesheetHandler`: Process employee clock in/out rows in the ERP (`MMReceiveTimesheet`)
173
184
 
174
185
  ### Utilities
175
186
 
176
187
  - `ApplicationInitializer`: SDK initialization
177
188
  - `runDataSyncService`: Start automated sync jobs
178
- - `StandardProcessDrivers`: Common sync operations
189
+ - `StandardProcessDrivers`: Common sync operations, including:
190
+ - `syncLaborTicketsToERP(connectorType, handler, { onlyClosed? })`
191
+ - `syncTimesheetsToERP(connectorType, handler)`
192
+ - `retryFailedLaborTickets(connectorType, handler)`
193
+ - `writeLaborTicketsToMmFromErpImport(tickets, filterOptions, cache?, writeOptions?)`
194
+ - `writeEntitiesToMM(entityType, records, cache?, options?)`
179
195
 
180
196
  ### Services
181
197
 
182
198
  - `SqlServerService`: SQL Server integration
183
199
  - `RestAPIService`: HTTP API client
184
- - `MMApiClient`: MachineMetrics API client
200
+ - `MMApiClient`: MachineMetrics API client (includes `fetchMappedErpResourcesForCompany`, `fetchMesSchedulableErpResourceIds`, `fetchTimesheetUpdates`)
185
201
 
186
- For detailed API documentation, see the TypeScript definitions.
202
+ For SDK helper, type, and entity-key detail, see `CONNECTOR_SDK_UTILITIES.md` and `MM_ENTITY_KEYS_REFERENCE.md`. For the connector implementation workflow, see the template `CONNECTOR-GUIDE.md`.
187
203
 
188
- ## Labor ticket updates: processing only closed tickets
204
+ ## Labor ticket updates: the `onlyClosed` option
189
205
 
190
- If your connector only wants to act on labor tickets when they are closed, you can instruct the SDK to request only closed tickets from the MM labor ticket export/updates API by passing `onlyClosed: true` when initiating the sync:
206
+ `syncLaborTicketsToERP` accepts an optional `onlyClosed` flag:
191
207
 
192
- ```typescript
193
- import { StandardProcessDrivers } from "mm-erp-sdk";
208
+ - `onlyClosed: true` — the SDK requests only closed labor tickets, forwarding `onlyClosed=true` to `/erp/v1/labor-tickets/export/updates`.
209
+ - omitted (default) all labor tickets are processed.
194
210
 
195
- await StandardProcessDrivers.syncLaborTicketsToERP(this.type, this, {
196
- onlyClosed: true,
197
- });
211
+ ```typescript
212
+ StandardProcessDrivers.syncLaborTicketsToERP(connectorType, handler, { onlyClosed?: boolean });
198
213
  ```
199
-
200
- This forwards `onlyClosed=true` to:
201
-
202
- - `/erp/v1/labor-tickets/export/updates`
package/dist/index.d.ts CHANGED
@@ -30,7 +30,7 @@ export type { IERPLaborTicketHandler } from "./types/erp-connector.js";
30
30
  export { StandardProcessDrivers, getCachedCompanyInfo, getCachedCompanyId, getCachedCompanyLocationRef, getCachedTimezoneOffset, getCachedTimezoneName, } from "./utils/index.js";
31
31
  export type { WriteEntitiesToMMResult } from "./utils/index.js";
32
32
  export { MMBatchValidationError } from "./utils/index.js";
33
- export { getMesLaborImportResourceIds, getMappedOperatorErpIdsForImport, normalizeLaborTicketWorkOrderOpKey, buildSyncedWorkOrderOperationKeySet, resolveSyncedWorkOrderOperationKeysForLaborImport, filterLaborTicketsForMmImport, } from "./utils/labor-import-from-erp.js";
33
+ export { getMesLaborImportResourceIds, getMappedOperatorErpIdsForImport, normalizeLaborTicketWorkOrderOpKey, buildSyncedWorkOrderOperationKeySet, resolveSyncedWorkOrderOperationKeysForLaborImport, filterLaborTicketsForMmImport, collectMesSchedulableErpResourceIds, fetchMesSchedulableErpResourceIds, } from "./utils/index.js";
34
34
  export type { MesMachineSettingRow, SyncedWorkOrderOperationRow, FilterLaborTicketsForMmImportOptions, FilterLaborTicketsForMmImportResult, } from "./utils/labor-import-from-erp.js";
35
35
  export type { APIResponse } from "./services/erp-api-services/types.js";
36
36
  export { RestAPIService } from "./services/erp-api-services/rest/rest-api-service.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -29,7 +29,7 @@ export { logger } from "./services/reporting-service/index.js";
29
29
  // Process drivers and utilities
30
30
  export { StandardProcessDrivers, getCachedCompanyInfo, getCachedCompanyId, getCachedCompanyLocationRef, getCachedTimezoneOffset, getCachedTimezoneName, } from "./utils/index.js";
31
31
  export { MMBatchValidationError } from "./utils/index.js";
32
- export { getMesLaborImportResourceIds, getMappedOperatorErpIdsForImport, normalizeLaborTicketWorkOrderOpKey, buildSyncedWorkOrderOperationKeySet, resolveSyncedWorkOrderOperationKeysForLaborImport, filterLaborTicketsForMmImport, } from "./utils/labor-import-from-erp.js";
32
+ export { getMesLaborImportResourceIds, getMappedOperatorErpIdsForImport, normalizeLaborTicketWorkOrderOpKey, buildSyncedWorkOrderOperationKeySet, resolveSyncedWorkOrderOperationKeysForLaborImport, filterLaborTicketsForMmImport, collectMesSchedulableErpResourceIds, fetchMesSchedulableErpResourceIds, } from "./utils/index.js";
33
33
  export { RestAPIService } from "./services/erp-api-services/rest/rest-api-service.js";
34
34
  export { ErrorHandler, GraphQLError } from "./services/erp-api-services/errors.js";
35
35
  export { OAuthClient } from "./services/erp-api-services/oauth-client.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { MMApiClient } from "./mm-api-service.js";
2
2
  import type { MMReceiveLaborTicketReason, MMReceiveLaborTicketWorkOrderOperation } from "./types/receive-types.js";
3
3
  import { MMSendPerson, MMSendResource, MMSendPart, MMSendPartOperation, MMSendWorkOrder, MMSendWorkOrderOperation, MMSendWorkOrderOperationLaborTicketSync, MMSendReason, MMSendLaborTicket, MMSendWorkOrderBatch } from "./types/send-types.js";
4
- import type { MMAggregatedPartCountBucket, MMApiBaseResponse, MM200NonLaborTicketResponse, MM200LaborTicketResponse, MM207NonLaborTicketResponse, MM207LaborTicketResponse, MM500NonLaborTicketException, MM500LaborTicketException, MMGraphQLResourceResponse, MMGraphQLWorkOrderResponse, MMMachineGroupsResponse, MMMappedErpResourceRow } from "./types/mm-response-interfaces.js";
4
+ import type { MMAggregatedPartCountBucket, MMApiBaseResponse, MM200NonLaborTicketResponse, MM200LaborTicketResponse, MM207NonLaborTicketResponse, MM207LaborTicketResponse, MM500NonLaborTicketException, MM500LaborTicketException, MMGraphQLWorkOrderResponse, MMMachineGroupsResponse, MMMappedErpResourceRow } from "./types/mm-response-interfaces.js";
5
5
  import { ensureCompanyInfo, getCachedCompanyId, getCachedCompanyInfo, getCachedCompanyLocationRef, getCachedCompanyTimezoneName, getCachedCompanyTimezoneOffsetHours, getCachedTimezoneName, getCachedTimezoneOffset, getCompanyInfo } from "./company-info.js";
6
6
  import type { CompanyInfo, EnsureCompanyInfoParams } from "./company-info.js";
7
7
  /**
@@ -12,7 +12,7 @@ export { MMApiClient };
12
12
  * Response interfaces for MM API calls
13
13
  * These provide type safety for the various response shapes based on HTTP status codes and entity types
14
14
  */
15
- export type { MMAggregatedPartCountBucket, MMApiBaseResponse, MM200NonLaborTicketResponse, MM200LaborTicketResponse, MM207NonLaborTicketResponse, MM207LaborTicketResponse, MM500NonLaborTicketException, MM500LaborTicketException, MMGraphQLResourceResponse, MMGraphQLWorkOrderResponse, MMMachineGroupsResponse, MMMappedErpResourceRow, };
15
+ export type { MMAggregatedPartCountBucket, MMApiBaseResponse, MM200NonLaborTicketResponse, MM200LaborTicketResponse, MM207NonLaborTicketResponse, MM207LaborTicketResponse, MM500NonLaborTicketException, MM500LaborTicketException, MMGraphQLWorkOrderResponse, MMMachineGroupsResponse, MMMappedErpResourceRow, };
16
16
  /**
17
17
  * Types related to entities received from the MM API
18
18
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/mm-api-service/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EACV,0BAA0B,EAC1B,sCAAsC,EACvC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,YAAY,EACZ,cAAc,EACd,UAAU,EACV,mBAAmB,EACnB,eAAe,EACf,wBAAwB,EACxB,uCAAuC,EACvC,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,2BAA2B,EAC3B,iBAAiB,EACjB,2BAA2B,EAC3B,wBAAwB,EACxB,2BAA2B,EAC3B,wBAAwB,EACxB,4BAA4B,EAC5B,yBAAyB,EACzB,yBAAyB,EACzB,0BAA0B,EAC1B,uBAAuB,EACvB,sBAAsB,EACvB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,2BAA2B,EAC3B,4BAA4B,EAC5B,mCAAmC,EACnC,qBAAqB,EACrB,uBAAuB,EACvB,cAAc,EACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,WAAW,EACX,uBAAuB,EACxB,MAAM,mBAAmB,CAAC;AAE3B;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,CAAC;AAEvB;;;GAGG;AACH,YAAY,EACV,2BAA2B,EAC3B,iBAAiB,EACjB,2BAA2B,EAC3B,wBAAwB,EACxB,2BAA2B,EAC3B,wBAAwB,EACxB,4BAA4B,EAC5B,yBAAyB,EACzB,yBAAyB,EACzB,0BAA0B,EAC1B,uBAAuB,EACvB,sBAAsB,GACvB,CAAC;AAEF;;GAEG;AACH,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,0BAA0B,EAC1B,sCAAsC,GACvC,CAAC;AAEF;;GAEG;AACH,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,4CAA4C,EAC5C,+BAA+B,GAChC,MAAM,uBAAuB,CAAC;AAE/B;;GAEG;AACH,OAAO,EACL,YAAY,EACZ,cAAc,EACd,UAAU,EACV,mBAAmB,EACnB,eAAe,EACf,wBAAwB,EACxB,uCAAuC,EACvC,YAAY,EACZ,iBAAiB,GAClB,CAAC;AAEF;;GAEG;AACH,YAAY,EAAE,oBAAoB,EAAE,CAAC;AAErC;;GAEG;AACH,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,2BAA2B,EAC3B,uBAAuB,EACvB,qBAAqB,EACrB,mCAAmC,EACnC,4BAA4B,GAC7B,CAAC;AACF,YAAY,EAAE,WAAW,EAAE,uBAAuB,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/mm-api-service/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EACV,0BAA0B,EAC1B,sCAAsC,EACvC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,YAAY,EACZ,cAAc,EACd,UAAU,EACV,mBAAmB,EACnB,eAAe,EACf,wBAAwB,EACxB,uCAAuC,EACvC,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,2BAA2B,EAC3B,iBAAiB,EACjB,2BAA2B,EAC3B,wBAAwB,EACxB,2BAA2B,EAC3B,wBAAwB,EACxB,4BAA4B,EAC5B,yBAAyB,EACzB,0BAA0B,EAC1B,uBAAuB,EACvB,sBAAsB,EACvB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,2BAA2B,EAC3B,4BAA4B,EAC5B,mCAAmC,EACnC,qBAAqB,EACrB,uBAAuB,EACvB,cAAc,EACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,WAAW,EACX,uBAAuB,EACxB,MAAM,mBAAmB,CAAC;AAE3B;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,CAAC;AAEvB;;;GAGG;AACH,YAAY,EACV,2BAA2B,EAC3B,iBAAiB,EACjB,2BAA2B,EAC3B,wBAAwB,EACxB,2BAA2B,EAC3B,wBAAwB,EACxB,4BAA4B,EAC5B,yBAAyB,EACzB,0BAA0B,EAC1B,uBAAuB,EACvB,sBAAsB,GACvB,CAAC;AAEF;;GAEG;AACH,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,0BAA0B,EAC1B,sCAAsC,GACvC,CAAC;AAEF;;GAEG;AACH,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,4CAA4C,EAC5C,+BAA+B,GAChC,MAAM,uBAAuB,CAAC;AAE/B;;GAEG;AACH,OAAO,EACL,YAAY,EACZ,cAAc,EACd,UAAU,EACV,mBAAmB,EACnB,eAAe,EACf,wBAAwB,EACxB,uCAAuC,EACvC,YAAY,EACZ,iBAAiB,GAClB,CAAC;AAEF;;GAEG;AACH,YAAY,EAAE,oBAAoB,EAAE,CAAC;AAErC;;GAEG;AACH,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,2BAA2B,EAC3B,uBAAuB,EACvB,qBAAqB,EACrB,mCAAmC,EACnC,4BAA4B,GAC7B,CAAC;AACF,YAAY,EAAE,WAAW,EAAE,uBAAuB,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/mm-api-service/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAKlD,OAAO,EACL,YAAY,EACZ,cAAc,EACd,UAAU,EACV,mBAAmB,EACnB,eAAe,EACf,wBAAwB,EACxB,uCAAuC,EACvC,YAAY,EACZ,iBAAiB,GAElB,MAAM,uBAAuB,CAAC;AAe/B,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,2BAA2B,EAC3B,4BAA4B,EAC5B,mCAAmC,EACnC,qBAAqB,EACrB,uBAAuB,EACvB,cAAc,GACf,MAAM,mBAAmB,CAAC;AAM3B;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,CAAC;AAqBvB;;GAEG;AACH,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAgBlC;;GAEG;AACH,OAAO,EACL,YAAY,EACZ,cAAc,EACd,UAAU,EACV,mBAAmB,EACnB,eAAe,EACf,wBAAwB,EACxB,uCAAuC,EACvC,YAAY,EACZ,iBAAiB,GAClB,CAAC;AAOF;;GAEG;AACH,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,2BAA2B,EAC3B,uBAAuB,EACvB,qBAAqB,EACrB,mCAAmC,EACnC,4BAA4B,GAC7B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/mm-api-service/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAKlD,OAAO,EACL,YAAY,EACZ,cAAc,EACd,UAAU,EACV,mBAAmB,EACnB,eAAe,EACf,wBAAwB,EACxB,uCAAuC,EACvC,YAAY,EACZ,iBAAiB,GAElB,MAAM,uBAAuB,CAAC;AAc/B,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,2BAA2B,EAC3B,4BAA4B,EAC5B,mCAAmC,EACnC,qBAAqB,EACrB,uBAAuB,EACvB,cAAc,GACf,MAAM,mBAAmB,CAAC;AAM3B;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,CAAC;AAoBvB;;GAEG;AACH,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAgBlC;;GAEG;AACH,OAAO,EACL,YAAY,EACZ,cAAc,EACd,UAAU,EACV,mBAAmB,EACnB,eAAe,EACf,wBAAwB,EACxB,uCAAuC,EACvC,YAAY,EACZ,iBAAiB,GAClB,CAAC;AAOF;;GAEG;AACH,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,2BAA2B,EAC3B,uBAAuB,EACvB,qBAAqB,EACrB,mCAAmC,EACnC,4BAA4B,GAC7B,CAAC"}
@@ -0,0 +1,46 @@
1
+ import type { MMMappedErpResourceRow } from "./types/mm-response-interfaces.js";
2
+ /**
3
+ * One row from `GET /mes/settings/machine-settings`. Field names follow the MES mapping service;
4
+ * see {@link mapMesMachineSettingsToMappedErpResourceRows} for how each field maps to the SDK.
5
+ */
6
+ export interface MesMachineSettingRow {
7
+ laborTicketEnabled?: boolean;
8
+ laborResourceId?: string | null;
9
+ /**
10
+ * ERP resource ids this machine can be scheduled as (in addition to {@link laborResourceId} for labor).
11
+ */
12
+ scheduledAs?: ReadonlyArray<string | number | null | undefined> | null;
13
+ machineRef?: number | string | null;
14
+ name?: string | null;
15
+ type?: string | null;
16
+ machineGroupId?: string | number | null;
17
+ isResourceGroup?: boolean;
18
+ }
19
+ /**
20
+ * `GET {mmApiBaseUrl}/mes/settings/machine-settings` — returns a JSON array of machine rows
21
+ * (auth: bearer `mmApiAuthToken`).
22
+ *
23
+ * Requires `mmApiBaseUrl` and `mmApiAuthToken` in {@link CoreConfiguration}. Throws if either is
24
+ * missing, if the response body is not a JSON array, or if the HTTP request fails.
25
+ * Used by labor import allowlists and mapped-resource helpers on `MMApiClient`.
26
+ */
27
+ export declare function fetchMesMachineSettingsRows(): Promise<MesMachineSettingRow[]>;
28
+ /**
29
+ * Collects every non-empty {@link MesMachineSettingRow.laborResourceId} and every entry in
30
+ * {@link MesMachineSettingRow.scheduledAs} across **all** machine-settings rows, deduped
31
+ * case-insensitively (first-seen casing preserved). Does not filter on `laborTicketEnabled`.
32
+ * Non-array `scheduledAs` is ignored.
33
+ */
34
+ export declare function collectMesSchedulableErpResourceIds(rows: ReadonlyArray<MesMachineSettingRow>): string[];
35
+ /**
36
+ * Loads machine-settings and returns {@link collectMesSchedulableErpResourceIds}.
37
+ * Same configuration and failure behavior as {@link fetchMesMachineSettingsRows}.
38
+ */
39
+ export declare function fetchMesSchedulableErpResourceIds(): Promise<string[]>;
40
+ /**
41
+ * Maps machine-settings rows to {@link MMMappedErpResourceRow} for connectors.
42
+ * Emits one row per MES machine that has both a finite `machineRef` and a non-empty
43
+ * `laborResourceId` (ERP labor resource mapping). Optional display / group fields pass through when present.
44
+ */
45
+ export declare function mapMesMachineSettingsToMappedErpResourceRows(rows: ReadonlyArray<MesMachineSettingRow>): MMMappedErpResourceRow[];
46
+ //# sourceMappingURL=mes-machine-settings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mes-machine-settings.d.ts","sourceRoot":"","sources":["../../../src/services/mm-api-service/mes-machine-settings.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAEhF;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC;;OAEG;IACH,WAAW,CAAC,EAAE,aAAa,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC;IACvE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACpC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACxC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;GAOG;AACH,wBAAsB,2BAA2B,IAAI,OAAO,CAC1D,oBAAoB,EAAE,CACvB,CA+BA;AAED;;;;;GAKG;AACH,wBAAgB,mCAAmC,CACjD,IAAI,EAAE,aAAa,CAAC,oBAAoB,CAAC,GACxC,MAAM,EAAE,CAyBV;AAED;;;GAGG;AACH,wBAAsB,iCAAiC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAO3E;AAED;;;;GAIG;AACH,wBAAgB,4CAA4C,CAC1D,IAAI,EAAE,aAAa,CAAC,oBAAoB,CAAC,GACxC,sBAAsB,EAAE,CAO1B"}
@@ -0,0 +1,124 @@
1
+ import { CoreConfiguration } from "../data-sync-service/configuration-manager.js";
2
+ import { sdkLogger as logger } from "../reporting-service/logger.js";
3
+ import { HTTPClientFactory } from "../../utils/http-client.js";
4
+ /**
5
+ * `GET {mmApiBaseUrl}/mes/settings/machine-settings` — returns a JSON array of machine rows
6
+ * (auth: bearer `mmApiAuthToken`).
7
+ *
8
+ * Requires `mmApiBaseUrl` and `mmApiAuthToken` in {@link CoreConfiguration}. Throws if either is
9
+ * missing, if the response body is not a JSON array, or if the HTTP request fails.
10
+ * Used by labor import allowlists and mapped-resource helpers on `MMApiClient`.
11
+ */
12
+ export async function fetchMesMachineSettingsRows() {
13
+ const config = CoreConfiguration.inst();
14
+ const baseUrl = config.mmApiBaseUrl;
15
+ const token = config.mmApiAuthToken;
16
+ if (!baseUrl || !token) {
17
+ throw new Error("fetchMesMachineSettingsRows: missing mmApiBaseUrl or mmApiAuthToken");
18
+ }
19
+ const client = HTTPClientFactory.getInstance({
20
+ baseUrl,
21
+ retryAttempts: config.mmApiRetryAttempts,
22
+ timeoutMs: config.mmApiTimeoutSeconds * 1000,
23
+ });
24
+ const response = await client.request({
25
+ url: "/mes/settings/machine-settings",
26
+ method: "GET",
27
+ headers: {
28
+ Accept: "application/json",
29
+ Authorization: `Bearer ${token}`,
30
+ },
31
+ });
32
+ const rows = response.data;
33
+ if (!Array.isArray(rows)) {
34
+ throw new Error("fetchMesMachineSettingsRows: response is not a JSON array");
35
+ }
36
+ return rows;
37
+ }
38
+ /**
39
+ * Collects every non-empty {@link MesMachineSettingRow.laborResourceId} and every entry in
40
+ * {@link MesMachineSettingRow.scheduledAs} across **all** machine-settings rows, deduped
41
+ * case-insensitively (first-seen casing preserved). Does not filter on `laborTicketEnabled`.
42
+ * Non-array `scheduledAs` is ignored.
43
+ */
44
+ export function collectMesSchedulableErpResourceIds(rows) {
45
+ const seenLower = new Set();
46
+ const out = [];
47
+ const add = (raw) => {
48
+ if (raw === null || raw === undefined)
49
+ return;
50
+ const s = typeof raw === "string" ? raw.trim() : String(raw).trim();
51
+ if (s === "")
52
+ return;
53
+ const low = s.toLowerCase();
54
+ if (seenLower.has(low))
55
+ return;
56
+ seenLower.add(low);
57
+ out.push(s);
58
+ };
59
+ for (const row of rows) {
60
+ add(row.laborResourceId);
61
+ const sched = row.scheduledAs;
62
+ if (!Array.isArray(sched))
63
+ continue;
64
+ for (const id of sched) {
65
+ add(id);
66
+ }
67
+ }
68
+ return out;
69
+ }
70
+ /**
71
+ * Loads machine-settings and returns {@link collectMesSchedulableErpResourceIds}.
72
+ * Same configuration and failure behavior as {@link fetchMesMachineSettingsRows}.
73
+ */
74
+ export async function fetchMesSchedulableErpResourceIds() {
75
+ const rows = await fetchMesMachineSettingsRows();
76
+ const ids = collectMesSchedulableErpResourceIds(rows);
77
+ logger.info(`fetchMesSchedulableErpResourceIds: ${ids.length} unique ERP resource id(s) from laborResourceId + scheduledAs`);
78
+ return ids;
79
+ }
80
+ /**
81
+ * Maps machine-settings rows to {@link MMMappedErpResourceRow} for connectors.
82
+ * Emits one row per MES machine that has both a finite `machineRef` and a non-empty
83
+ * `laborResourceId` (ERP labor resource mapping). Optional display / group fields pass through when present.
84
+ */
85
+ export function mapMesMachineSettingsToMappedErpResourceRows(rows) {
86
+ const out = [];
87
+ for (const raw of rows) {
88
+ const row = mapMesMachineSettingRowToMapped(raw);
89
+ if (row)
90
+ out.push(row);
91
+ }
92
+ return out;
93
+ }
94
+ function mapMesMachineSettingRowToMapped(raw) {
95
+ const refRaw = raw.machineRef;
96
+ if (refRaw === null || refRaw === undefined || refRaw === "") {
97
+ return null;
98
+ }
99
+ const ref = typeof refRaw === "number" ? refRaw : Number(refRaw);
100
+ if (!Number.isFinite(ref)) {
101
+ return null;
102
+ }
103
+ const ridRaw = raw.laborResourceId;
104
+ if (ridRaw === null || ridRaw === undefined) {
105
+ return null;
106
+ }
107
+ const resourceId = typeof ridRaw === "string" ? ridRaw.trim() : String(ridRaw).trim();
108
+ if (resourceId === "") {
109
+ return null;
110
+ }
111
+ const mgId = raw.machineGroupId;
112
+ const machineGroupId = mgId === null || mgId === undefined ? null : String(mgId);
113
+ const name = typeof raw.name === "string" ? raw.name : null;
114
+ const type = raw.type === null || raw.type === undefined ? null : String(raw.type);
115
+ return {
116
+ isResourceGroup: Boolean(raw.isResourceGroup),
117
+ machineGroupId,
118
+ machineRef: Math.trunc(ref),
119
+ resourceId,
120
+ name,
121
+ type,
122
+ };
123
+ }
124
+ //# sourceMappingURL=mes-machine-settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mes-machine-settings.js","sourceRoot":"","sources":["../../../src/services/mm-api-service/mes-machine-settings.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { MMTokenManager } from "./token-mgr.js";
4
4
  import * as MM_SEND_TYPES from "./types/send-types.js";
5
5
  import { HTTPClient } from "../../utils/http-client.js";
6
6
  import { Checkpoint } from "./types/checkpoint.js";
7
- import { MMAggregatedPartCountBucket, MMApiBaseResponse, MMMappedErpResourceRow, MMGraphQLReasonResponse, MMGraphQLResourceResponse, MMGraphQLWorkOrderResponse, MMMachineGroupsResponse } from "./types/mm-response-interfaces.js";
7
+ import { MMAggregatedPartCountBucket, MMApiBaseResponse, MMMappedErpResourceRow, MMGraphQLReasonResponse, MMGraphQLWorkOrderResponse, MMMachineGroupsResponse } from "./types/mm-response-interfaces.js";
8
8
  /**
9
9
  * Class to manage interactions with the MM Mapping Service
10
10
  * Integrates an MM Token Manager to handle the API token.
@@ -239,11 +239,6 @@ export declare class MMApiClient {
239
239
  * @returns Promise with the machine groups data
240
240
  */
241
241
  fetchMachineGroups(): Promise<MMMachineGroupsResponse>;
242
- /**
243
- * Fetch resources using GraphQL
244
- * @returns Promise with the resources data
245
- */
246
- fetchResourcesFromGraphQL(): Promise<MMGraphQLResourceResponse>;
247
242
  /**
248
243
  * Fetch a single reason by reasonRef via GraphQL (e.g. when labor ticket has reasonRef but no reasons array).
249
244
  * @param reasonRef MM reason reference (bigint)
@@ -257,15 +252,29 @@ export declare class MMApiClient {
257
252
  */
258
253
  fetchWorkOrderFromGraphQL(workOrderId: string): Promise<MMGraphQLWorkOrderResponse>;
259
254
  /**
260
- * Returns ERP resources for a company that are **mapped to MachineMetrics** (`machineRef` is set).
261
- * GraphQL: `erpResources` filtered by `companyId` and non-null `machineRef`. Extends
262
- * {@link fetchResourcesFromGraphQL} with company scope and richer fields (`isResourceGroup`, `machineGroupId`, etc.).
255
+ * Returns ERP labor resources mapped to MM machines via **MES** `/mes/settings/machine-settings`,
256
+ * not GraphQL `erpResources`. Rows include machines with a finite `machineRef` and non-empty
257
+ * `laborResourceId`. Optional `name`, `type`, `machineGroupId`, and `isResourceGroup` pass through when the API sends them.
263
258
  *
264
- * @param companyId - MachineMetrics company identifier (string). Whitespace is trimmed; empty after trim throws.
265
- * @returns Parsed rows; order matches the API response.
266
- * @throws {Error} When `companyId` is missing, the response shape is invalid, or the GraphQL proxy returns top-level `errors`.
259
+ * The bearer token (`mmApiAuthToken`) determines company scope; `companyId` must still be passed and
260
+ * non-empty (trimmed) for backwards compatibility but is **not** sent as a query parameter.
261
+ *
262
+ * @param companyId - Expected MM company identifier; trimmed; empty throws.
263
+ * @returns Mapped rows for machines with ERP labor mapping in MES settings.
264
+ * @throws {Error} When `companyId` is missing after trim, `mmApiBaseUrl` / `mmApiAuthToken` are missing,
265
+ * or the REST response is not a JSON array.
267
266
  */
268
267
  fetchMappedErpResourcesForCompany(companyId: string): Promise<MMMappedErpResourceRow[]>;
268
+ /**
269
+ * Deduped ERP resource ids from **all** MES machine rows: each row’s `laborResourceId` (when set)
270
+ * plus every id in `scheduledAs`, for connectors that need “anything that might run” scheduling / WO op
271
+ * filtering. No `laborTicketEnabled` filter.
272
+ *
273
+ * The bearer token scopes company; `companyId` must be non-empty (trimmed) for API compatibility only.
274
+ *
275
+ * @throws {Error} When `companyId` is missing after trim or MES fetch fails.
276
+ */
277
+ fetchMesSchedulableErpResourceIds(companyId: string): Promise<string[]>;
269
278
  /**
270
279
  * GraphQL `aggregatedPartCounts` for one `machineRef`: **one HTTP request**; the API may return **multiple bucket rows**
271
280
  * (time buckets) for that machine.
@@ -1 +1 @@
1
- {"version":3,"file":"mm-api-service.d.ts","sourceRoot":"","sources":["../../../src/services/mm-api-service/mm-api-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mm-api-service.d.ts","sourceRoot":"","sources":["../../../src/services/mm-api-service/mm-api-service.ts"],"names":[],"mappings":"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"}