@epilot/erp-integration-client 0.4.2 → 0.5.1

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.
@@ -1 +1 @@
1
- (()=>{"use strict";var e={330:function(e,t,o){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var r=n(o(466));t.default=r.default},466:e=>{e.exports=JSON.parse('{"openapi":"3.0.3","info":{"title":"","version":""},"paths":{"/v1/erp/tracking/acknowledgement":{"post":{"operationId":"acknowledgeTracking","requestBody":{"content":{"application/json":{}}},"responses":{}}},"/v1/erp/trigger":{"post":{"operationId":"triggerErp","requestBody":{"required":true,"content":{"application/json":{}}},"responses":{}}},"/v1/erp/updates/events":{"post":{"operationId":"processErpUpdatesEvents","requestBody":{"content":{"application/json":{}}},"responses":{}}}},"components":{"responses":{"BadRequest":{"content":{"application/json":{}}},"Unauthorized":{"content":{"application/json":{}}},"InternalServerError":{"content":{"application/json":{}}},"ERPUpdatesResponse":{"content":{"application/json":{}}},"TriggerWebhookResponse":{"content":{"application/json":{}}}}},"servers":[{"url":"https://erp-integration-api.sls.epilot.io"}]}')}},t={},o=function o(n){var r=t[n];if(void 0!==r)return r.exports;var s=t[n]={exports:{}};return e[n].call(s.exports,s,s.exports,o),s.exports}(330),n=exports;for(var r in o)n[r]=o[r];o.__esModule&&Object.defineProperty(n,"__esModule",{value:!0})})();
1
+ (()=>{"use strict";var e={330:function(e,t,o){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var r=n(o(466));t.default=r.default},466:e=>{e.exports=JSON.parse('{"openapi":"3.0.3","info":{"title":"","version":""},"paths":{"/v1/erp/tracking/acknowledgement":{"post":{"operationId":"acknowledgeTracking","requestBody":{"content":{"application/json":{}}},"responses":{}}},"/v1/erp/trigger":{"post":{"operationId":"triggerErp","requestBody":{"required":true,"content":{"application/json":{}}},"responses":{}}},"/v1/erp/updates/events":{"post":{"operationId":"processErpUpdatesEvents","requestBody":{"content":{"application/json":{}}},"responses":{}}},"/v1/erp/updates/mapping_simulation":{"post":{"operationId":"simulateMapping","requestBody":{"required":true,"content":{"application/json":{}}},"responses":{}}}},"components":{"responses":{"BadRequest":{"content":{"application/json":{}}},"Unauthorized":{"content":{"application/json":{}}},"InternalServerError":{"content":{"application/json":{}}},"ERPUpdatesResponse":{"content":{"application/json":{}}},"TriggerWebhookResponse":{"content":{"application/json":{}}}}},"servers":[{"url":"https://erp-integration-api.sls.epilot.io"}]}')}},t={},o=function o(n){var r=t[n];if(void 0!==r)return r.exports;var s=t[n]={exports:{}};return e[n].call(s.exports,s,s.exports,o),s.exports}(330),n=exports;for(var r in o)n[r]=o[r];o.__esModule&&Object.defineProperty(n,"__esModule",{value:!0})})();
@@ -38,6 +38,18 @@
38
38
  },
39
39
  "responses": {}
40
40
  }
41
+ },
42
+ "/v1/erp/updates/mapping_simulation": {
43
+ "post": {
44
+ "operationId": "simulateMapping",
45
+ "requestBody": {
46
+ "required": true,
47
+ "content": {
48
+ "application/json": {}
49
+ }
50
+ },
51
+ "responses": {}
52
+ }
41
53
  }
42
54
  },
43
55
  "components": {
package/dist/openapi.d.ts CHANGED
@@ -178,6 +178,91 @@ declare namespace Paths {
178
178
  export type $500 = Components.Responses.InternalServerError;
179
179
  }
180
180
  }
181
+ namespace SimulateMapping {
182
+ export interface RequestBody {
183
+ /**
184
+ * The integration mapping configuration
185
+ */
186
+ mapping_configuration: {
187
+ mapping: {
188
+ /**
189
+ * Object type mappings
190
+ */
191
+ objects: {
192
+ [name: string]: {
193
+ /**
194
+ * Mapping of entity types to their unique identifier field mappings
195
+ */
196
+ unique_ids: {
197
+ [name: string]: {
198
+ [name: string]: string;
199
+ };
200
+ };
201
+ /**
202
+ * Field mapping definitions
203
+ */
204
+ fields: {
205
+ /**
206
+ * Target entity slug
207
+ */
208
+ entity: string;
209
+ /**
210
+ * Target attribute name
211
+ */
212
+ attribute: string;
213
+ /**
214
+ * Source field name (mutually exclusive with jsonataExpression)
215
+ */
216
+ field?: string;
217
+ /**
218
+ * JSONata expression for transformation (mutually exclusive with field)
219
+ */
220
+ jsonataExpression?: string;
221
+ }[];
222
+ };
223
+ };
224
+ };
225
+ };
226
+ /**
227
+ * Type of the object being mapped (must match a key in mapping_configuration.mapping.objects)
228
+ */
229
+ object_type: string;
230
+ /**
231
+ * Format of the payload data
232
+ */
233
+ format: "json" | "xml";
234
+ /**
235
+ * The serialized object data payload (JSON, XML, etc.) as a string
236
+ */
237
+ payload: string;
238
+ }
239
+ namespace Responses {
240
+ export interface $200 {
241
+ entity_updates: {
242
+ /**
243
+ * The entity type slug
244
+ */
245
+ entity_slug: string;
246
+ /**
247
+ * Unique identifier mappings for this entity
248
+ */
249
+ unique_identifiers: {
250
+ [name: string]: any;
251
+ };
252
+ /**
253
+ * Mapped attribute values
254
+ */
255
+ attributes: {
256
+ [name: string]: any;
257
+ };
258
+ }[];
259
+ }
260
+ export type $400 = Components.Responses.BadRequest;
261
+ export type $401 = Components.Responses.Unauthorized;
262
+ export type $422 = Components.Schemas.ErrorResponseBase;
263
+ export type $500 = Components.Responses.InternalServerError;
264
+ }
265
+ }
181
266
  namespace TriggerErp {
182
267
  export type RequestBody = Components.Schemas.TriggerErpActionRequest;
183
268
  namespace Responses {
@@ -195,7 +280,7 @@ declare namespace Paths {
195
280
 
196
281
  export interface OperationMethods {
197
282
  /**
198
- * acknowledgeTracking - Acknowledge receival of ERP tracking record
283
+ * acknowledgeTracking - acknowledgeTracking
199
284
  *
200
285
  * Acknowledges an ERP tracking record by removing it from the tracking table, requires public authentication
201
286
  */
@@ -205,7 +290,7 @@ export interface OperationMethods {
205
290
  config?: AxiosRequestConfig
206
291
  ): OperationResponse<Paths.AcknowledgeTracking.Responses.$200>
207
292
  /**
208
- * triggerErp - Trigger ERP integration
293
+ * triggerErp - triggerErp
209
294
  *
210
295
  * Triggers the ERP integration process
211
296
  */
@@ -215,7 +300,7 @@ export interface OperationMethods {
215
300
  config?: AxiosRequestConfig
216
301
  ): OperationResponse<Paths.TriggerErp.Responses.$200>
217
302
  /**
218
- * processErpUpdatesEvents - Process ERP system updates
303
+ * processErpUpdatesEvents - processErpUpdatesEvents
219
304
  *
220
305
  * Handles updates from ERP systems and tracks them appropriately
221
306
  */
@@ -224,12 +309,22 @@ export interface OperationMethods {
224
309
  data?: Paths.ProcessErpUpdatesEvents.RequestBody,
225
310
  config?: AxiosRequestConfig
226
311
  ): OperationResponse<Paths.ProcessErpUpdatesEvents.Responses.$200>
312
+ /**
313
+ * simulateMapping - simulateMapping
314
+ *
315
+ * Test mapping configuration by transforming a payload using the provided mapping rules without persisting data
316
+ */
317
+ 'simulateMapping'(
318
+ parameters?: Parameters<UnknownParamsObject> | null,
319
+ data?: Paths.SimulateMapping.RequestBody,
320
+ config?: AxiosRequestConfig
321
+ ): OperationResponse<Paths.SimulateMapping.Responses.$200>
227
322
  }
228
323
 
229
324
  export interface PathsDictionary {
230
325
  ['/v1/erp/tracking/acknowledgement']: {
231
326
  /**
232
- * acknowledgeTracking - Acknowledge receival of ERP tracking record
327
+ * acknowledgeTracking - acknowledgeTracking
233
328
  *
234
329
  * Acknowledges an ERP tracking record by removing it from the tracking table, requires public authentication
235
330
  */
@@ -241,7 +336,7 @@ export interface PathsDictionary {
241
336
  }
242
337
  ['/v1/erp/trigger']: {
243
338
  /**
244
- * triggerErp - Trigger ERP integration
339
+ * triggerErp - triggerErp
245
340
  *
246
341
  * Triggers the ERP integration process
247
342
  */
@@ -253,7 +348,7 @@ export interface PathsDictionary {
253
348
  }
254
349
  ['/v1/erp/updates/events']: {
255
350
  /**
256
- * processErpUpdatesEvents - Process ERP system updates
351
+ * processErpUpdatesEvents - processErpUpdatesEvents
257
352
  *
258
353
  * Handles updates from ERP systems and tracks them appropriately
259
354
  */
@@ -263,6 +358,18 @@ export interface PathsDictionary {
263
358
  config?: AxiosRequestConfig
264
359
  ): OperationResponse<Paths.ProcessErpUpdatesEvents.Responses.$200>
265
360
  }
361
+ ['/v1/erp/updates/mapping_simulation']: {
362
+ /**
363
+ * simulateMapping - simulateMapping
364
+ *
365
+ * Test mapping configuration by transforming a payload using the provided mapping rules without persisting data
366
+ */
367
+ 'post'(
368
+ parameters?: Parameters<UnknownParamsObject> | null,
369
+ data?: Paths.SimulateMapping.RequestBody,
370
+ config?: AxiosRequestConfig
371
+ ): OperationResponse<Paths.SimulateMapping.Responses.$200>
372
+ }
266
373
  }
267
374
 
268
375
  export type Client = OpenAPIClient<OperationMethods, PathsDictionary>
package/dist/openapi.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "openapi": "3.0.3",
3
3
  "info": {
4
4
  "title": "ERP Integration API",
5
- "version": "0.2.0",
5
+ "version": "0.3.0",
6
6
  "description": "API for integrating with ERP systems, handling tracking acknowledgments, triggering ERP processes, and processing ERP updates."
7
7
  },
8
8
  "tags": [
@@ -24,7 +24,7 @@
24
24
  "/v1/erp/tracking/acknowledgement": {
25
25
  "post": {
26
26
  "operationId": "acknowledgeTracking",
27
- "summary": "Acknowledge receival of ERP tracking record",
27
+ "summary": "acknowledgeTracking",
28
28
  "description": "Acknowledges an ERP tracking record by removing it from the tracking table, requires public authentication",
29
29
  "tags": [
30
30
  "erp"
@@ -81,7 +81,7 @@
81
81
  "/v1/erp/trigger": {
82
82
  "post": {
83
83
  "operationId": "triggerErp",
84
- "summary": "Trigger ERP integration",
84
+ "summary": "triggerErp",
85
85
  "description": "Triggers the ERP integration process",
86
86
  "tags": [
87
87
  "erp",
@@ -116,7 +116,7 @@
116
116
  "/v1/erp/updates/events": {
117
117
  "post": {
118
118
  "operationId": "processErpUpdatesEvents",
119
- "summary": "Process ERP system updates",
119
+ "summary": "processErpUpdatesEvents",
120
120
  "description": "Handles updates from ERP systems and tracks them appropriately",
121
121
  "tags": [
122
122
  "erp"
@@ -257,6 +257,214 @@
257
257
  }
258
258
  }
259
259
  }
260
+ },
261
+ "/v1/erp/updates/mapping_simulation": {
262
+ "post": {
263
+ "operationId": "simulateMapping",
264
+ "summary": "simulateMapping",
265
+ "description": "Test mapping configuration by transforming a payload using the provided mapping rules without persisting data",
266
+ "tags": [
267
+ "erp"
268
+ ],
269
+ "requestBody": {
270
+ "required": true,
271
+ "content": {
272
+ "application/json": {
273
+ "schema": {
274
+ "type": "object",
275
+ "required": [
276
+ "mapping_configuration",
277
+ "object_type",
278
+ "format",
279
+ "payload"
280
+ ],
281
+ "properties": {
282
+ "mapping_configuration": {
283
+ "type": "object",
284
+ "description": "The integration mapping configuration",
285
+ "required": [
286
+ "mapping"
287
+ ],
288
+ "properties": {
289
+ "mapping": {
290
+ "type": "object",
291
+ "required": [
292
+ "objects"
293
+ ],
294
+ "properties": {
295
+ "objects": {
296
+ "type": "object",
297
+ "description": "Object type mappings",
298
+ "additionalProperties": {
299
+ "type": "object",
300
+ "required": [
301
+ "unique_ids",
302
+ "fields"
303
+ ],
304
+ "properties": {
305
+ "unique_ids": {
306
+ "type": "object",
307
+ "description": "Mapping of entity types to their unique identifier field mappings",
308
+ "additionalProperties": {
309
+ "type": "object",
310
+ "description": "Map of remote keys to local entity keys",
311
+ "additionalProperties": {
312
+ "type": "string"
313
+ }
314
+ }
315
+ },
316
+ "fields": {
317
+ "type": "array",
318
+ "description": "Field mapping definitions",
319
+ "items": {
320
+ "type": "object",
321
+ "required": [
322
+ "entity",
323
+ "attribute"
324
+ ],
325
+ "properties": {
326
+ "entity": {
327
+ "type": "string",
328
+ "description": "Target entity slug"
329
+ },
330
+ "attribute": {
331
+ "type": "string",
332
+ "description": "Target attribute name"
333
+ },
334
+ "field": {
335
+ "type": "string",
336
+ "description": "Source field name (mutually exclusive with jsonataExpression)"
337
+ },
338
+ "jsonataExpression": {
339
+ "type": "string",
340
+ "description": "JSONata expression for transformation (mutually exclusive with field)"
341
+ }
342
+ }
343
+ }
344
+ }
345
+ }
346
+ }
347
+ }
348
+ }
349
+ }
350
+ }
351
+ },
352
+ "object_type": {
353
+ "type": "string",
354
+ "description": "Type of the object being mapped (must match a key in mapping_configuration.mapping.objects)"
355
+ },
356
+ "format": {
357
+ "type": "string",
358
+ "enum": [
359
+ "json",
360
+ "xml"
361
+ ],
362
+ "default": "json",
363
+ "description": "Format of the payload data"
364
+ },
365
+ "payload": {
366
+ "type": "string",
367
+ "description": "The serialized object data payload (JSON, XML, etc.) as a string"
368
+ }
369
+ }
370
+ },
371
+ "example": {
372
+ "mapping_configuration": {
373
+ "mapping": {
374
+ "objects": {
375
+ "business_partner": {
376
+ "unique_ids": {
377
+ "contact": {
378
+ "partner_id": "_id"
379
+ }
380
+ },
381
+ "fields": [
382
+ {
383
+ "entity": "contact",
384
+ "attribute": "first_name",
385
+ "field": "firstName"
386
+ },
387
+ {
388
+ "entity": "contact",
389
+ "attribute": "last_name",
390
+ "field": "lastName"
391
+ }
392
+ ]
393
+ }
394
+ }
395
+ }
396
+ },
397
+ "object_type": "business_partner",
398
+ "format": "json",
399
+ "payload": "{\"partner_id\":\"BP10001\",\"firstName\":\"John\",\"lastName\":\"Doe\"}"
400
+ }
401
+ }
402
+ }
403
+ },
404
+ "responses": {
405
+ "200": {
406
+ "description": "Successfully simulated mapping",
407
+ "content": {
408
+ "application/json": {
409
+ "schema": {
410
+ "type": "object",
411
+ "required": [
412
+ "entity_updates"
413
+ ],
414
+ "properties": {
415
+ "entity_updates": {
416
+ "type": "array",
417
+ "items": {
418
+ "type": "object",
419
+ "required": [
420
+ "entity_slug",
421
+ "unique_identifiers",
422
+ "attributes"
423
+ ],
424
+ "properties": {
425
+ "entity_slug": {
426
+ "type": "string",
427
+ "description": "The entity type slug"
428
+ },
429
+ "unique_identifiers": {
430
+ "type": "object",
431
+ "description": "Unique identifier mappings for this entity",
432
+ "additionalProperties": true
433
+ },
434
+ "attributes": {
435
+ "type": "object",
436
+ "description": "Mapped attribute values",
437
+ "additionalProperties": true
438
+ }
439
+ }
440
+ }
441
+ }
442
+ }
443
+ }
444
+ }
445
+ }
446
+ },
447
+ "400": {
448
+ "$ref": "#/components/responses/BadRequest"
449
+ },
450
+ "401": {
451
+ "$ref": "#/components/responses/Unauthorized"
452
+ },
453
+ "422": {
454
+ "description": "Unprocessable entity - mapping configuration or payload validation failed",
455
+ "content": {
456
+ "application/json": {
457
+ "schema": {
458
+ "$ref": "#/components/schemas/ErrorResponseBase"
459
+ }
460
+ }
461
+ }
462
+ },
463
+ "500": {
464
+ "$ref": "#/components/responses/InternalServerError"
465
+ }
466
+ }
467
+ }
260
468
  }
261
469
  },
262
470
  "components": {
@@ -458,9 +666,6 @@
458
666
  }
459
667
  },
460
668
  "servers": [
461
- {
462
- "url": "https://erp-integration-api.sls.epilot.io"
463
- },
464
669
  {
465
670
  "url": "https://erp-integration-api.sls.epilot.io"
466
671
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@epilot/erp-integration-client",
3
- "version": "0.4.2",
3
+ "version": "0.5.1",
4
4
  "description": "Client library for ePilot ERP Integration API",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",