@machinemetrics/mm-erp-sdk 0.9.4 → 0.9.6-beta.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 (105) hide show
  1. package/README.md +54 -43
  2. package/dist/index.d.ts +4 -1
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +2 -0
  5. package/dist/index.js.map +1 -1
  6. package/dist/migrations/20260617160000_create_sdk_runtime_state_table.d.ts +4 -0
  7. package/dist/migrations/20260617160000_create_sdk_runtime_state_table.d.ts.map +1 -0
  8. package/dist/migrations/20260617160000_create_sdk_runtime_state_table.js +11 -0
  9. package/dist/migrations/20260617160000_create_sdk_runtime_state_table.js.map +1 -0
  10. package/dist/services/mm-api-service/company-info.d.ts.map +1 -1
  11. package/dist/services/mm-api-service/company-info.js +4 -5
  12. package/dist/services/mm-api-service/company-info.js.map +1 -1
  13. package/dist/services/mm-api-service/index.d.ts +3 -3
  14. package/dist/services/mm-api-service/index.d.ts.map +1 -1
  15. package/dist/services/mm-api-service/index.js +1 -1
  16. package/dist/services/mm-api-service/index.js.map +1 -1
  17. package/dist/services/mm-api-service/mes-machine-settings.d.ts +46 -0
  18. package/dist/services/mm-api-service/mes-machine-settings.d.ts.map +1 -0
  19. package/dist/services/mm-api-service/mes-machine-settings.js +124 -0
  20. package/dist/services/mm-api-service/mes-machine-settings.js.map +1 -0
  21. package/dist/services/mm-api-service/mm-api-service.d.ts +28 -13
  22. package/dist/services/mm-api-service/mm-api-service.d.ts.map +1 -1
  23. package/dist/services/mm-api-service/mm-api-service.js +43 -47
  24. package/dist/services/mm-api-service/mm-api-service.js.map +1 -1
  25. package/dist/services/mm-api-service/token-mgr.d.ts +1 -1
  26. package/dist/services/mm-api-service/token-mgr.js +1 -1
  27. package/dist/services/mm-api-service/types/mm-response-interfaces.d.ts +4 -16
  28. package/dist/services/mm-api-service/types/mm-response-interfaces.d.ts.map +1 -1
  29. package/dist/services/mm-api-service/types/mm-response-interfaces.js.map +1 -1
  30. package/dist/services/mm-api-service/types/receive-types.d.ts +19 -0
  31. package/dist/services/mm-api-service/types/receive-types.d.ts.map +1 -1
  32. package/dist/services/mm-api-service/types/receive-types.js +22 -2
  33. package/dist/services/mm-api-service/types/receive-types.js.map +1 -1
  34. package/dist/types/erp-connector.d.ts +8 -2
  35. package/dist/types/erp-connector.d.ts.map +1 -1
  36. package/dist/utils/application-initializer.js +1 -1
  37. package/dist/utils/application-initializer.js.map +1 -1
  38. package/dist/utils/index.d.ts +3 -0
  39. package/dist/utils/index.d.ts.map +1 -1
  40. package/dist/utils/index.js +2 -0
  41. package/dist/utils/index.js.map +1 -1
  42. package/dist/utils/labor-import-from-erp.d.ts +68 -0
  43. package/dist/utils/labor-import-from-erp.d.ts.map +1 -0
  44. package/dist/utils/labor-import-from-erp.js +194 -0
  45. package/dist/utils/labor-import-from-erp.js.map +1 -0
  46. package/dist/utils/local-data-store/database-lock.d.ts.map +1 -1
  47. package/dist/utils/local-data-store/database-lock.js +32 -41
  48. package/dist/utils/local-data-store/database-lock.js.map +1 -1
  49. package/dist/utils/local-data-store/jobs-shared-data.d.ts +1 -11
  50. package/dist/utils/local-data-store/jobs-shared-data.d.ts.map +1 -1
  51. package/dist/utils/local-data-store/jobs-shared-data.js +13 -71
  52. package/dist/utils/local-data-store/jobs-shared-data.js.map +1 -1
  53. package/dist/utils/local-data-store/sdk-runtime-state-db.d.ts +15 -0
  54. package/dist/utils/local-data-store/sdk-runtime-state-db.d.ts.map +1 -0
  55. package/dist/utils/local-data-store/sdk-runtime-state-db.js +120 -0
  56. package/dist/utils/local-data-store/sdk-runtime-state-db.js.map +1 -0
  57. package/dist/utils/standard-process-drivers/labor-ticket-erp-synchronizer.d.ts +4 -2
  58. package/dist/utils/standard-process-drivers/labor-ticket-erp-synchronizer.d.ts.map +1 -1
  59. package/dist/utils/standard-process-drivers/labor-ticket-erp-synchronizer.js +17 -15
  60. package/dist/utils/standard-process-drivers/labor-ticket-erp-synchronizer.js.map +1 -1
  61. package/dist/utils/standard-process-drivers/labor-ticket-normalization.d.ts +6 -0
  62. package/dist/utils/standard-process-drivers/labor-ticket-normalization.d.ts.map +1 -1
  63. package/dist/utils/standard-process-drivers/labor-ticket-normalization.js +12 -0
  64. package/dist/utils/standard-process-drivers/labor-ticket-normalization.js.map +1 -1
  65. package/dist/utils/standard-process-drivers/mm-entity-processor.d.ts +11 -1
  66. package/dist/utils/standard-process-drivers/mm-entity-processor.d.ts.map +1 -1
  67. package/dist/utils/standard-process-drivers/mm-entity-processor.js +42 -4
  68. package/dist/utils/standard-process-drivers/mm-entity-processor.js.map +1 -1
  69. package/dist/utils/standard-process-drivers/standard-process-drivers.d.ts +22 -2
  70. package/dist/utils/standard-process-drivers/standard-process-drivers.d.ts.map +1 -1
  71. package/dist/utils/standard-process-drivers/standard-process-drivers.js +84 -0
  72. package/dist/utils/standard-process-drivers/standard-process-drivers.js.map +1 -1
  73. package/dist/utils/standard-process-drivers/timesheet-erp-synchronizer.d.ts +12 -0
  74. package/dist/utils/standard-process-drivers/timesheet-erp-synchronizer.d.ts.map +1 -0
  75. package/dist/utils/standard-process-drivers/timesheet-erp-synchronizer.js +79 -0
  76. package/dist/utils/standard-process-drivers/timesheet-erp-synchronizer.js.map +1 -0
  77. package/package.json +12 -3
  78. package/src/index.ts +22 -1
  79. package/src/migrations/20260617160000_create_sdk_runtime_state_table.ts +13 -0
  80. package/src/services/mm-api-service/company-info.ts +4 -5
  81. package/src/services/mm-api-service/index.ts +5 -3
  82. package/src/services/mm-api-service/mes-machine-settings.test.ts +174 -0
  83. package/src/services/mm-api-service/mes-machine-settings.ts +169 -0
  84. package/src/services/mm-api-service/mm-api-service.ts +58 -60
  85. package/src/services/mm-api-service/token-mgr.ts +1 -1
  86. package/src/services/mm-api-service/types/mm-response-interfaces.ts +4 -17
  87. package/src/services/mm-api-service/types/receive-types.ts +22 -3
  88. package/src/types/erp-connector.ts +12 -2
  89. package/src/utils/application-initializer.ts +1 -1
  90. package/src/utils/index.ts +19 -0
  91. package/src/utils/labor-import-from-erp.test.ts +116 -0
  92. package/src/utils/labor-import-from-erp.ts +310 -0
  93. package/src/utils/local-data-store/database-lock.ts +38 -47
  94. package/src/utils/local-data-store/jobs-shared-data.ts +16 -76
  95. package/src/utils/local-data-store/sdk-runtime-state-db.ts +141 -0
  96. package/src/utils/standard-process-drivers/labor-ticket-erp-synchronizer.ts +20 -14
  97. package/src/utils/standard-process-drivers/labor-ticket-normalization.ts +15 -0
  98. package/src/utils/standard-process-drivers/mm-entity-processor.ts +61 -8
  99. package/src/utils/standard-process-drivers/standard-process-drivers.ts +134 -1
  100. package/src/utils/standard-process-drivers/timesheet-erp-synchronizer.ts +102 -0
  101. package/dist/utils/resource-group.d.ts +0 -11
  102. package/dist/utils/resource-group.d.ts.map +0 -1
  103. package/dist/utils/resource-group.js +0 -71
  104. package/dist/utils/resource-group.js.map +0 -1
  105. 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
@@ -2,7 +2,7 @@
2
2
  * Main entry point for the MM ERP Connector SDK.
3
3
  * This file exports the public API that client code should use.
4
4
  */
5
- export type { IERPConnector } from "./types/erp-connector.js";
5
+ export type { IERPConnector, IERPTimesheetHandler, } from "./types/erp-connector.js";
6
6
  export { ERPObjType } from "./types/erp-types.js";
7
7
  export type { ERPPagination, ERPResponse, ERPObject } from "./types/erp-types.js";
8
8
  export type { FlattenedWorkOrderRow, FlattenedWorkOrderRowBase, FlattenedWorkOrderPartFields, FlattenedWorkOrderPartOperationFields, FlattenedWorkOrderFields, FlattenedWorkOrderOperationFields, } from "./types/flattened-work-order.js";
@@ -13,6 +13,7 @@ export type { ERPApiConfig } from "./services/erp-api-services/types.js";
13
13
  export { MMApiClient } from "./services/mm-api-service/index.js";
14
14
  export { MMReceiveLaborTicket } from "./services/mm-api-service/index.js";
15
15
  export { MMReceiveWorkOrder } from "./services/mm-api-service/index.js";
16
+ export { MMReceiveTimesheet } from "./services/mm-api-service/index.js";
16
17
  export type { MMReceiveLaborTicketReason, MMReceiveLaborTicketWorkOrderOperation, IToRESTApiObject, IToFullApiObject, MMMappedErpResourceRow, MMAggregatedPartCountBucket, } from "./services/mm-api-service/index.js";
17
18
  export { MMSendPerson, MMSendResource, MMSendPart, MMSendPartOperation, MMSendWorkOrder, MMSendWorkOrderOperation, MMSendWorkOrderOperationLaborTicketSync, MMSendReason, MMSendLaborTicket, } from "./services/mm-api-service/index.js";
18
19
  export type { MMSendWorkOrderBatch, MMSendWorkOrderOperationLaborTicketSyncPatch, MMSendWorkOrderOperationPayload, } from "./services/mm-api-service/index.js";
@@ -29,6 +30,8 @@ export type { IERPLaborTicketHandler } from "./types/erp-connector.js";
29
30
  export { StandardProcessDrivers, getCachedCompanyInfo, getCachedCompanyId, getCachedCompanyLocationRef, getCachedTimezoneOffset, getCachedTimezoneName, } from "./utils/index.js";
30
31
  export type { WriteEntitiesToMMResult } from "./utils/index.js";
31
32
  export { MMBatchValidationError } from "./utils/index.js";
33
+ export { getMesLaborImportResourceIds, getMappedOperatorErpIdsForImport, normalizeLaborTicketWorkOrderOpKey, buildSyncedWorkOrderOperationKeySet, resolveSyncedWorkOrderOperationKeysForLaborImport, filterLaborTicketsForMmImport, collectMesSchedulableErpResourceIds, fetchMesSchedulableErpResourceIds, } from "./utils/index.js";
34
+ export type { MesMachineSettingRow, SyncedWorkOrderOperationRow, FilterLaborTicketsForMmImportOptions, FilterLaborTicketsForMmImportResult, } from "./utils/labor-import-from-erp.js";
32
35
  export type { APIResponse } from "./services/erp-api-services/types.js";
33
36
  export { RestAPIService } from "./services/erp-api-services/rest/rest-api-service.js";
34
37
  export { ErrorHandler, GraphQLError } from "./services/erp-api-services/errors.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAElF,YAAY,EACV,qBAAqB,EACrB,yBAAyB,EACzB,4BAA4B,EAC5B,qCAAqC,EACrC,wBAAwB,EACxB,iCAAiC,GAClC,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,uDAAuD,CAAC;AAC/F,OAAO,EAAE,yBAAyB,EAAE,MAAM,uDAAuD,CAAC;AAClG,OAAO,EAAE,qBAAqB,EAAE,MAAM,sDAAsD,CAAC;AAC7F,YAAY,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAGzE,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,YAAY,EACV,0BAA0B,EAC1B,sCAAsC,EACtC,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EACL,YAAY,EACZ,cAAc,EACd,UAAU,EACV,mBAAmB,EACnB,eAAe,EACf,wBAAwB,EACxB,uCAAuC,EACvC,YAAY,EACZ,iBAAiB,GAClB,MAAM,oCAAoC,CAAC;AAE5C,YAAY,EACV,oBAAoB,EACpB,4CAA4C,EAC5C,+BAA+B,GAChC,MAAM,oCAAoC,CAAC;AAG5C,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,wBAAwB,EACxB,gBAAgB,EAChB,cAAc,EACd,6BAA6B,EAC7B,0BAA0B,EAC1B,sBAAsB,EACtB,eAAe,EACf,4BAA4B,EAC5B,8BAA8B,EAC9B,eAAe,EACf,kBAAkB,EAClB,4BAA4B,EAC5B,4BAA4B,EAC5B,cAAc,EACd,YAAY,EACZ,WAAW,EACX,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAGlF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,YAAY,EACV,YAAY,EACZ,UAAU,EACV,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAG5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAG3E,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAG/D,YAAY,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAGvE,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,2BAA2B,EAC3B,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAG1D,YAAY,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AACnF,YAAY,EACV,WAAW,EACX,oBAAoB,GACrB,MAAM,sDAAsD,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,6CAA6C,CAAC;AAC1E,YAAY,EAAE,WAAW,EAAE,MAAM,6CAA6C,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,wDAAwD,CAAC;AACxF,YAAY,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAGvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mDAAmD,CAAC;AAGtF,OAAO,EACL,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,uDAAuD,CAAC;AAG/D,OAAO,EACL,gBAAgB,EAChB,eAAe,GAChB,MAAM,4CAA4C,CAAC;AACpD,YAAY,EAAE,QAAQ,EAAE,MAAM,4CAA4C,CAAC;AAG3E,OAAO,EACL,WAAW,EACX,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,kBAAkB,GACnB,MAAM,sCAAsC,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAG9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,uDAAuD,CAAC;AAC9F,YAAY,EAAE,oBAAoB,EAAE,MAAM,uDAAuD,CAAC;AAGlG,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAG9D,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,QAAQ,EACR,KAAK,cAAc,EACnB,KAAK,WAAW,GACjB,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,YAAY,EACV,aAAa,EACb,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAElF,YAAY,EACV,qBAAqB,EACrB,yBAAyB,EACzB,4BAA4B,EAC5B,qCAAqC,EACrC,wBAAwB,EACxB,iCAAiC,GAClC,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,uDAAuD,CAAC;AAC/F,OAAO,EAAE,yBAAyB,EAAE,MAAM,uDAAuD,CAAC;AAClG,OAAO,EAAE,qBAAqB,EAAE,MAAM,sDAAsD,CAAC;AAC7F,YAAY,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAGzE,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,YAAY,EACV,0BAA0B,EAC1B,sCAAsC,EACtC,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EACL,YAAY,EACZ,cAAc,EACd,UAAU,EACV,mBAAmB,EACnB,eAAe,EACf,wBAAwB,EACxB,uCAAuC,EACvC,YAAY,EACZ,iBAAiB,GAClB,MAAM,oCAAoC,CAAC;AAE5C,YAAY,EACV,oBAAoB,EACpB,4CAA4C,EAC5C,+BAA+B,GAChC,MAAM,oCAAoC,CAAC;AAG5C,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,wBAAwB,EACxB,gBAAgB,EAChB,cAAc,EACd,6BAA6B,EAC7B,0BAA0B,EAC1B,sBAAsB,EACtB,eAAe,EACf,4BAA4B,EAC5B,8BAA8B,EAC9B,eAAe,EACf,kBAAkB,EAClB,4BAA4B,EAC5B,4BAA4B,EAC5B,cAAc,EACd,YAAY,EACZ,WAAW,EACX,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAGlF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,YAAY,EACV,YAAY,EACZ,UAAU,EACV,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAG5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAG3E,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAG/D,YAAY,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAGvE,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,2BAA2B,EAC3B,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,EACL,4BAA4B,EAC5B,gCAAgC,EAChC,kCAAkC,EAClC,mCAAmC,EACnC,iDAAiD,EACjD,6BAA6B,EAC7B,mCAAmC,EACnC,iCAAiC,GAClC,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,oBAAoB,EACpB,2BAA2B,EAC3B,oCAAoC,EACpC,mCAAmC,GACpC,MAAM,kCAAkC,CAAC;AAG1C,YAAY,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AACnF,YAAY,EACV,WAAW,EACX,oBAAoB,GACrB,MAAM,sDAAsD,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,6CAA6C,CAAC;AAC1E,YAAY,EAAE,WAAW,EAAE,MAAM,6CAA6C,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,wDAAwD,CAAC;AACxF,YAAY,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAGvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mDAAmD,CAAC;AAGtF,OAAO,EACL,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,uDAAuD,CAAC;AAG/D,OAAO,EACL,gBAAgB,EAChB,eAAe,GAChB,MAAM,4CAA4C,CAAC;AACpD,YAAY,EAAE,QAAQ,EAAE,MAAM,4CAA4C,CAAC;AAG3E,OAAO,EACL,WAAW,EACX,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,kBAAkB,GACnB,MAAM,sCAAsC,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAG9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,uDAAuD,CAAC;AAC9F,YAAY,EAAE,oBAAoB,EAAE,MAAM,uDAAuD,CAAC;AAGlG,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAG9D,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,QAAQ,EACR,KAAK,cAAc,EACnB,KAAK,WAAW,GACjB,MAAM,kBAAkB,CAAC"}
package/dist/index.js CHANGED
@@ -11,6 +11,7 @@ export { buildLogicalCondition } from "./services/erp-api-services/rest/get-quer
11
11
  export { MMApiClient } from "./services/mm-api-service/index.js";
12
12
  export { MMReceiveLaborTicket } from "./services/mm-api-service/index.js";
13
13
  export { MMReceiveWorkOrder } from "./services/mm-api-service/index.js";
14
+ export { MMReceiveTimesheet } from "./services/mm-api-service/index.js";
14
15
  export { MMSendPerson, MMSendResource, MMSendPart, MMSendPartOperation, MMSendWorkOrder, MMSendWorkOrderOperation, MMSendWorkOrderOperationLaborTicketSync, MMSendReason, MMSendLaborTicket, } from "./services/mm-api-service/index.js";
15
16
  // Utility functions that are safe for client use
16
17
  export { getUniqueRows, removeExtraneousFields, getPayloadWithoutIDField, trimObjectValues, cleanupNumbers, addNewFieldFromExternalSource, addNewFieldFromLookupField, formatDateWithTZOffset, toISOWithOffset, applyTimezoneOffsetsToFields, calculateTimeDifferenceInHours, getSecondsOfDay, convertToLocalTime, convertUtcDateTimeToErpLocal, convertErpLocalDateTimeToUtc, getERPTimezone, getErrorType, formatError, formatErrorForLogging, } from "./utils/index.js";
@@ -28,6 +29,7 @@ export { logger } from "./services/reporting-service/index.js";
28
29
  // Process drivers and utilities
29
30
  export { StandardProcessDrivers, getCachedCompanyInfo, getCachedCompanyId, getCachedCompanyLocationRef, getCachedTimezoneOffset, getCachedTimezoneName, } from "./utils/index.js";
30
31
  export { MMBatchValidationError } from "./utils/index.js";
32
+ export { getMesLaborImportResourceIds, getMappedOperatorErpIdsForImport, normalizeLaborTicketWorkOrderOpKey, buildSyncedWorkOrderOperationKeySet, resolveSyncedWorkOrderOperationKeysForLaborImport, filterLaborTicketsForMmImport, collectMesSchedulableErpResourceIds, fetchMesSchedulableErpResourceIds, } from "./utils/index.js";
31
33
  export { RestAPIService } from "./services/erp-api-services/rest/rest-api-service.js";
32
34
  export { ErrorHandler, GraphQLError } from "./services/erp-api-services/errors.js";
33
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":"AAAA;;;GAGG;AAIH,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAYlD,2BAA2B;AAC3B,OAAO,EAAE,sBAAsB,EAAE,MAAM,uDAAuD,CAAC;AAC/F,OAAO,EAAE,yBAAyB,EAAE,MAAM,uDAAuD,CAAC;AAClG,OAAO,EAAE,qBAAqB,EAAE,MAAM,sDAAsD,CAAC;AAG7F,0BAA0B;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAUxE,OAAO,EACL,YAAY,EACZ,cAAc,EACd,UAAU,EACV,mBAAmB,EACnB,eAAe,EACf,wBAAwB,EACxB,uCAAuC,EACvC,YAAY,EACZ,iBAAiB,GAClB,MAAM,oCAAoC,CAAC;AAQ5C,iDAAiD;AACjD,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,wBAAwB,EACxB,gBAAgB,EAChB,cAAc,EACd,6BAA6B,EAC7B,0BAA0B,EAC1B,sBAAsB,EACtB,eAAe,EACf,4BAA4B,EAC5B,8BAA8B,EAC9B,eAAe,EACf,kBAAkB,EAClB,4BAA4B,EAC5B,4BAA4B,EAC5B,cAAc,EACd,YAAY,EACZ,WAAW,EACX,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAG1B,mBAAmB;AACnB,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAElF,4DAA4D;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAOnD,uCAAuC;AACvC,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAE5E,oBAAoB;AACpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAE3E,kBAAkB;AAClB,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAK/D,gCAAgC;AAChC,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,2BAA2B,EAC3B,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAI1D,OAAO,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAKnF,OAAO,EAAE,WAAW,EAAE,MAAM,6CAA6C,CAAC;AAE1E,OAAO,EAAE,cAAc,EAAE,MAAM,wDAAwD,CAAC;AAGxF,mBAAmB;AACnB,OAAO,EAAE,iBAAiB,EAAE,MAAM,mDAAmD,CAAC;AAEtF,yBAAyB;AACzB,OAAO,EACL,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,uDAAuD,CAAC;AAE/D,sBAAsB;AACtB,OAAO,EACL,gBAAgB,EAChB,eAAe,GAChB,MAAM,4CAA4C,CAAC;AAGpD,4BAA4B;AAC5B,OAAO,EACL,WAAW,EACX,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,kBAAkB,GACnB,MAAM,sCAAsC,CAAC;AAG9C,2BAA2B;AAC3B,OAAO,EAAE,qBAAqB,EAAE,MAAM,uDAAuD,CAAC;AAG9F,gBAAgB;AAChB,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAE9D,uBAAuB;AACvB,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,QAAQ,GAGT,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { Knex } from "knex";
2
+ export declare function up(knex: Knex): Promise<void>;
3
+ export declare function down(knex: Knex): Promise<void>;
4
+ //# sourceMappingURL=20260617160000_create_sdk_runtime_state_table.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20260617160000_create_sdk_runtime_state_table.d.ts","sourceRoot":"","sources":["../../src/migrations/20260617160000_create_sdk_runtime_state_table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAEjC,wBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAMlD;AAED,wBAAsB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpD"}
@@ -0,0 +1,11 @@
1
+ export async function up(knex) {
2
+ await knex.schema.createTable("sdk_runtime_state", (table) => {
3
+ table.string("key").primary();
4
+ table.text("value").notNullable();
5
+ table.string("updated_at").notNullable();
6
+ });
7
+ }
8
+ export async function down(knex) {
9
+ await knex.schema.dropTable("sdk_runtime_state");
10
+ }
11
+ //# sourceMappingURL=20260617160000_create_sdk_runtime_state_table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20260617160000_create_sdk_runtime_state_table.js","sourceRoot":"","sources":["../../src/migrations/20260617160000_create_sdk_runtime_state_table.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,EAAE,CAAC,IAAU;IACjC,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE,EAAE;QAC3D,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;QAClC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;IAC3C,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAU;IACnC,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;AACnD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"company-info.d.ts","sourceRoot":"","sources":["../../../src/services/mm-api-service/company-info.ts"],"names":[],"mappings":"AA8BA,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;CACzB;AA4BD;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,QAAa,OAAO,CAAC,WAAW,CAsDrE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,QAAa,OAAO,CAAC,WAAW,CAS1D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAC5B,SAAQ,uBAGP,KACA,OAAO,CAAC,IAAI,CAkBd,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,oBAAoB,IAAI,WAAW,CAElD;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,IAAI,MAAM,CAEpD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED;;;GAGG;AACH,wBAAgB,mCAAmC,IAAI,MAAM,CAG5D;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,IAAI,MAAM,CAErD;AAED,4FAA4F;AAC5F,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AAED,qFAAqF;AACrF,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C"}
1
+ {"version":3,"file":"company-info.d.ts","sourceRoot":"","sources":["../../../src/services/mm-api-service/company-info.ts"],"names":[],"mappings":"AA6BA,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;CACzB;AA4BD;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,QAAa,OAAO,CAAC,WAAW,CAsDrE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,QAAa,OAAO,CAAC,WAAW,CAS1D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAC5B,SAAQ,uBAGP,KACA,OAAO,CAAC,IAAI,CAkBd,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,oBAAoB,IAAI,WAAW,CAElD;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,IAAI,MAAM,CAEpD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED;;;GAGG;AACH,wBAAgB,mCAAmC,IAAI,MAAM,CAG5D;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,IAAI,MAAM,CAErD;AAED,4FAA4F;AAC5F,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD;AAED,qFAAqF;AACrF,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C"}
@@ -1,10 +1,9 @@
1
1
  /**
2
2
  * Company info from MM (`/accounts/current`) is loaded during SDK startup
3
3
  * (`ApplicationInitializer.initialize` → {@link ensureCompanyInfo}), written to shared
4
- * job-state, and read by synchronous {@link getCachedCompanyInfo} and related getters.
4
+ * SQLite runtime state, and read by synchronous {@link getCachedCompanyInfo} and related getters.
5
5
  *
6
- * Persisted data is scoped to whatever filesystem sees the job-state file (default under `/tmp`):
7
- * e.g. one container’s filesystem unless that path is mounted shared. Company fields are treated
6
+ * Persisted data lives in `sdk_runtime_state` (same SQLite file as `SQLITE_DB_PATH`). Company fields are treated
8
7
  * as stable for the deployment; refreshing them if MM changes is the SDK’s responsibility when we
9
8
  * add that behavior—not connector boilerplate.
10
9
  *
@@ -32,7 +31,7 @@ function hydrateCacheFromDiskIfPresent() {
32
31
  return null;
33
32
  }
34
33
  /**
35
- * Resolves company info for synchronous readers: in-memory, then persisted job-state.
34
+ * Resolves company info for synchronous readers: in-memory, then persisted SQLite runtime state.
36
35
  * @throws Error if neither is available (initialization / API fetch has not populated data).
37
36
  */
38
37
  function resolveCompanyInfoOrThrow() {
@@ -43,7 +42,7 @@ function resolveCompanyInfoOrThrow() {
43
42
  if (fromDisk) {
44
43
  return fromDisk;
45
44
  }
46
- throw new Error("Company info is not available: run ApplicationInitializer.initialize() or ensureCompanyInfo() in a process with API access, or ensure job-state.json contains companyInfo from a prior fetch");
45
+ throw new Error("Company info is not available: run ApplicationInitializer.initialize() or ensureCompanyInfo() in a process with API access, or ensure sdk_runtime_state contains companyInfo from a prior fetch");
47
46
  }
48
47
  /**
49
48
  * Fetches company info from MM, updates in-memory cache and persisted job-state.
@@ -1 +1 @@
1
- {"version":3,"file":"company-info.js","sourceRoot":"","sources":["../../../src/services/mm-api-service/company-info.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"company-info.js","sourceRoot":"","sources":["../../../src/services/mm-api-service/company-info.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,11 +12,11 @@ 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
  */
19
- export { MMReceiveLaborTicket, MMReceiveWorkOrder } from "./types/receive-types.js";
19
+ export { MMReceiveLaborTicket, MMReceiveWorkOrder, MMReceiveTimesheet, } from "./types/receive-types.js";
20
20
  export type { MMReceiveLaborTicketReason, MMReceiveLaborTicketWorkOrderOperation, };
21
21
  /**
22
22
  * Interface for entities sent to the MM API
@@ -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,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACpF,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"}
@@ -8,7 +8,7 @@ export { MMApiClient };
8
8
  /**
9
9
  * Types related to entities received from the MM API
10
10
  */
11
- export { MMReceiveLaborTicket, MMReceiveWorkOrder } from "./types/receive-types.js";
11
+ export { MMReceiveLaborTicket, MMReceiveWorkOrder, MMReceiveTimesheet, } from "./types/receive-types.js";
12
12
  /**
13
13
  * Classes for entities sent to the MM API
14
14
  */
@@ -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,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAgBpF;;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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"}