@contrail/flexplm 1.3.0 → 1.3.1-alpha.585afc1

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 (149) hide show
  1. package/lib/cli/commands/compile.d.ts +1 -0
  2. package/lib/cli/commands/compile.js +71 -0
  3. package/lib/cli/commands/compile.spec.d.ts +1 -0
  4. package/lib/cli/commands/compile.spec.js +80 -0
  5. package/lib/cli/commands/create.d.ts +1 -0
  6. package/lib/cli/commands/create.js +75 -0
  7. package/lib/cli/commands/create.spec.d.ts +1 -0
  8. package/lib/cli/commands/create.spec.js +78 -0
  9. package/lib/cli/commands/upload.d.ts +10 -0
  10. package/lib/cli/commands/upload.js +219 -0
  11. package/lib/cli/commands/upload.spec.d.ts +1 -0
  12. package/lib/cli/commands/upload.spec.js +88 -0
  13. package/lib/cli/index.d.ts +2 -0
  14. package/lib/cli/index.js +64 -0
  15. package/lib/cli/index.spec.d.ts +1 -0
  16. package/lib/cli/index.spec.js +79 -0
  17. package/lib/cli/template/mapping-template.ts.template +18 -0
  18. package/lib/entity-processor/base-entity-processor.d.ts +89 -42
  19. package/lib/entity-processor/base-entity-processor.js +438 -385
  20. package/lib/entity-processor/base-entity-processor.spec.d.ts +1 -1
  21. package/lib/entity-processor/base-entity-processor.spec.js +398 -397
  22. package/lib/flexplm-request.d.ts +3 -3
  23. package/lib/flexplm-request.js +34 -34
  24. package/lib/flexplm-utils.d.ts +5 -5
  25. package/lib/flexplm-utils.js +33 -33
  26. package/lib/flexplm-utils.spec.d.ts +1 -1
  27. package/lib/flexplm-utils.spec.js +26 -26
  28. package/lib/index.d.ts +23 -22
  29. package/lib/index.js +39 -38
  30. package/lib/interfaces/interfaces.d.ts +105 -105
  31. package/lib/interfaces/interfaces.js +2 -2
  32. package/lib/interfaces/item-family-changes.d.ts +20 -20
  33. package/lib/interfaces/item-family-changes.js +56 -56
  34. package/lib/interfaces/mapping-file.d.ts +429 -0
  35. package/lib/interfaces/mapping-file.js +2 -0
  36. package/lib/interfaces/publish-change-data.d.ts +19 -19
  37. package/lib/interfaces/publish-change-data.js +32 -32
  38. package/lib/publish/base-process-publish-assortment-callback.d.ts +9 -9
  39. package/lib/publish/base-process-publish-assortment-callback.js +38 -38
  40. package/lib/publish/base-process-publish-assortment.d.ts +118 -93
  41. package/lib/publish/base-process-publish-assortment.js +998 -944
  42. package/lib/publish/base-process-publish-assortment.spec.d.ts +1 -1
  43. package/lib/publish/base-process-publish-assortment.spec.js +1688 -1670
  44. package/lib/publish/mockData.d.ts +1389 -1389
  45. package/lib/publish/mockData.js +4524 -4519
  46. package/lib/transform/identifier-conversion-spec-mockData.js +472 -444
  47. package/lib/transform/identifier-conversion.d.ts +51 -15
  48. package/lib/transform/identifier-conversion.js +248 -212
  49. package/lib/transform/identifier-conversion.spec.d.ts +1 -1
  50. package/lib/transform/identifier-conversion.spec.js +343 -339
  51. package/lib/util/config-defaults.d.ts +8 -8
  52. package/lib/util/config-defaults.js +88 -85
  53. package/lib/util/config-defaults.spec.d.ts +1 -1
  54. package/lib/util/config-defaults.spec.js +302 -293
  55. package/lib/util/data-converter-spec-mockData.js +219 -205
  56. package/lib/util/data-converter.d.ts +136 -39
  57. package/lib/util/data-converter.js +718 -592
  58. package/lib/util/data-converter.spec.d.ts +1 -1
  59. package/lib/util/data-converter.spec.js +906 -904
  60. package/lib/util/error-response-object.d.ts +9 -4
  61. package/lib/util/error-response-object.js +54 -47
  62. package/lib/util/error-response-object.spec.d.ts +1 -1
  63. package/lib/util/error-response-object.spec.js +99 -99
  64. package/lib/util/event-short-message-status.d.ts +19 -19
  65. package/lib/util/event-short-message-status.js +24 -23
  66. package/lib/util/federation.d.ts +15 -15
  67. package/lib/util/federation.js +157 -149
  68. package/lib/util/flexplm-connect.d.ts +29 -22
  69. package/lib/util/flexplm-connect.js +190 -176
  70. package/lib/util/flexplm-connect.spec.d.ts +1 -1
  71. package/lib/util/flexplm-connect.spec.js +88 -88
  72. package/lib/util/logger-config.d.ts +1 -1
  73. package/lib/util/logger-config.js +27 -26
  74. package/lib/util/map-util-spec-mockData.js +219 -205
  75. package/lib/util/map-utils.d.ts +33 -6
  76. package/lib/util/map-utils.js +42 -15
  77. package/lib/util/map-utils.spec.d.ts +1 -1
  78. package/lib/util/map-utils.spec.js +89 -89
  79. package/lib/util/mockData.d.ts +80 -80
  80. package/lib/util/mockData.js +103 -103
  81. package/lib/util/thumbnail-util.d.ts +55 -34
  82. package/lib/util/thumbnail-util.js +242 -215
  83. package/lib/util/thumbnail-util.spec.d.ts +1 -1
  84. package/lib/util/thumbnail-util.spec.js +440 -434
  85. package/lib/util/type-conversion-utils-spec-mockData.js +259 -259
  86. package/lib/util/type-conversion-utils.d.ts +163 -23
  87. package/lib/util/type-conversion-utils.js +408 -265
  88. package/lib/util/type-conversion-utils.spec.d.ts +1 -1
  89. package/lib/util/type-conversion-utils.spec.js +868 -868
  90. package/lib/util/type-defaults.d.ts +74 -16
  91. package/lib/util/type-defaults.js +279 -221
  92. package/lib/util/type-defaults.spec.d.ts +1 -1
  93. package/lib/util/type-defaults.spec.js +516 -516
  94. package/lib/util/type-utils.d.ts +34 -13
  95. package/lib/util/type-utils.js +137 -114
  96. package/lib/util/type-utils.spec.d.ts +1 -1
  97. package/lib/util/type-utils.spec.js +192 -190
  98. package/package.json +21 -6
  99. package/scripts/copy-template.js +10 -0
  100. package/.claude/settings.local.json +0 -8
  101. package/.github/pull_request_template.md +0 -31
  102. package/.github/workflows/flexplm-lib.yml +0 -27
  103. package/.github/workflows/publish-to-npm.yml +0 -124
  104. package/CHANGELOG.md +0 -32
  105. package/publish.bat +0 -5
  106. package/publish.sh +0 -5
  107. package/src/entity-processor/base-entity-processor.spec.ts +0 -460
  108. package/src/entity-processor/base-entity-processor.ts +0 -515
  109. package/src/flexplm-request.ts +0 -28
  110. package/src/flexplm-utils.spec.ts +0 -27
  111. package/src/flexplm-utils.ts +0 -29
  112. package/src/index.ts +0 -22
  113. package/src/interfaces/interfaces.ts +0 -122
  114. package/src/interfaces/item-family-changes.ts +0 -67
  115. package/src/interfaces/publish-change-data.ts +0 -43
  116. package/src/publish/base-process-publish-assortment-callback.ts +0 -50
  117. package/src/publish/base-process-publish-assortment.spec.ts +0 -1992
  118. package/src/publish/base-process-publish-assortment.ts +0 -1134
  119. package/src/publish/mockData.ts +0 -4561
  120. package/src/transform/identifier-conversion-spec-mockData.ts +0 -496
  121. package/src/transform/identifier-conversion.spec.ts +0 -354
  122. package/src/transform/identifier-conversion.ts +0 -282
  123. package/src/util/config-defaults.spec.ts +0 -350
  124. package/src/util/config-defaults.ts +0 -93
  125. package/src/util/data-converter-spec-mockData.ts +0 -231
  126. package/src/util/data-converter.spec.ts +0 -1041
  127. package/src/util/data-converter.ts +0 -762
  128. package/src/util/error-response-object.spec.ts +0 -116
  129. package/src/util/error-response-object.ts +0 -50
  130. package/src/util/event-short-message-status.ts +0 -22
  131. package/src/util/federation.ts +0 -172
  132. package/src/util/flexplm-connect.spec.ts +0 -132
  133. package/src/util/flexplm-connect.ts +0 -208
  134. package/src/util/logger-config.ts +0 -20
  135. package/src/util/map-util-spec-mockData.ts +0 -231
  136. package/src/util/map-utils.spec.ts +0 -103
  137. package/src/util/map-utils.ts +0 -41
  138. package/src/util/mockData.ts +0 -101
  139. package/src/util/thumbnail-util.spec.ts +0 -508
  140. package/src/util/thumbnail-util.ts +0 -272
  141. package/src/util/type-conversion-utils-spec-mockData.ts +0 -271
  142. package/src/util/type-conversion-utils.spec.ts +0 -968
  143. package/src/util/type-conversion-utils.ts +0 -460
  144. package/src/util/type-defaults.spec.ts +0 -669
  145. package/src/util/type-defaults.ts +0 -281
  146. package/src/util/type-utils.spec.ts +0 -227
  147. package/src/util/type-utils.ts +0 -144
  148. package/tsconfig.json +0 -29
  149. package/tslint.json +0 -57
@@ -0,0 +1,64 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.main = void 0;
5
+ const create_1 = require("./commands/create");
6
+ const compile_1 = require("./commands/compile");
7
+ const upload_1 = require("./commands/upload");
8
+ const USAGE = `Usage: flexplm-mapping <command> [args]
9
+
10
+ Commands:
11
+ create Scaffold a new mapping .ts file in the current directory
12
+ compile <path.ts> Transpile a mapping .ts file to .js alongside it
13
+ upload <path.js> [opts] Upload a compiled mapping .js file to VibeIQ
14
+
15
+ Upload options:
16
+ -m <message> Git commit message (prompted if omitted)
17
+ -b <branch> Create a new git branch before committing
18
+ --skip-git Skip the post-upload git commit (default: commit)
19
+
20
+ Environment (upload):
21
+ CONTRAIL_CLI_EMAIL VibeIQ user email
22
+ CONTRAIL_CLI_PASSWORD VibeIQ user password
23
+ `;
24
+ async function main() {
25
+ const [, , command, ...rest] = process.argv;
26
+ switch (command) {
27
+ case 'create':
28
+ await (0, create_1.runCreate)();
29
+ return;
30
+ case 'compile':
31
+ if (!rest[0]) {
32
+ console.error('compile: missing <path.ts> argument');
33
+ console.error(USAGE);
34
+ process.exit(1);
35
+ }
36
+ await (0, compile_1.runCompile)(rest[0]);
37
+ return;
38
+ case 'upload':
39
+ if (!rest[0]) {
40
+ console.error('upload: missing <path.js> argument');
41
+ console.error(USAGE);
42
+ process.exit(1);
43
+ }
44
+ await (0, upload_1.runUpload)(rest);
45
+ return;
46
+ case undefined:
47
+ case '-h':
48
+ case '--help':
49
+ case 'help':
50
+ console.log(USAGE);
51
+ return;
52
+ default:
53
+ console.error(`Unknown command: ${command}`);
54
+ console.error(USAGE);
55
+ process.exit(1);
56
+ }
57
+ }
58
+ exports.main = main;
59
+ if (require.main === module) {
60
+ main().catch((err) => {
61
+ console.error(err && err.message ? err.message : err);
62
+ process.exit(1);
63
+ });
64
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ jest.mock('./commands/create', () => ({ runCreate: jest.fn().mockResolvedValue(undefined) }));
4
+ jest.mock('./commands/compile', () => ({ runCompile: jest.fn().mockResolvedValue(undefined) }));
5
+ jest.mock('./commands/upload', () => ({ runUpload: jest.fn().mockResolvedValue(undefined) }));
6
+ const create_1 = require("./commands/create");
7
+ const compile_1 = require("./commands/compile");
8
+ const upload_1 = require("./commands/upload");
9
+ const index_1 = require("./index");
10
+ describe('cli main dispatcher', () => {
11
+ let originalArgv;
12
+ let logSpy;
13
+ let errorSpy;
14
+ let exitSpy;
15
+ beforeEach(() => {
16
+ originalArgv = process.argv;
17
+ create_1.runCreate.mockClear();
18
+ compile_1.runCompile.mockClear();
19
+ upload_1.runUpload.mockClear();
20
+ logSpy = jest.spyOn(console, 'log').mockImplementation(() => { });
21
+ errorSpy = jest.spyOn(console, 'error').mockImplementation(() => { });
22
+ exitSpy = jest.spyOn(process, 'exit').mockImplementation(((code) => {
23
+ throw new Error(`__EXIT__:${code}`);
24
+ }));
25
+ });
26
+ afterEach(() => {
27
+ process.argv = originalArgv;
28
+ logSpy.mockRestore();
29
+ errorSpy.mockRestore();
30
+ exitSpy.mockRestore();
31
+ });
32
+ function setArgv(...args) {
33
+ process.argv = ['node', 'cli', ...args];
34
+ }
35
+ it('dispatches the create command', async () => {
36
+ setArgv('create');
37
+ await (0, index_1.main)();
38
+ expect(create_1.runCreate).toHaveBeenCalledTimes(1);
39
+ expect(compile_1.runCompile).not.toHaveBeenCalled();
40
+ expect(upload_1.runUpload).not.toHaveBeenCalled();
41
+ });
42
+ it('dispatches the compile command with its argument', async () => {
43
+ setArgv('compile', 'mapping.ts');
44
+ await (0, index_1.main)();
45
+ expect(compile_1.runCompile).toHaveBeenCalledWith('mapping.ts');
46
+ });
47
+ it('exits when compile is missing its argument', async () => {
48
+ setArgv('compile');
49
+ await expect((0, index_1.main)()).rejects.toThrow('__EXIT__:1');
50
+ expect(compile_1.runCompile).not.toHaveBeenCalled();
51
+ expect(errorSpy).toHaveBeenCalledWith(expect.stringMatching(/missing <path\.ts>/));
52
+ });
53
+ it('dispatches the upload command and forwards remaining args', async () => {
54
+ setArgv('upload', 'mapping.js', '-m', 'msg', '--skip-git');
55
+ await (0, index_1.main)();
56
+ expect(upload_1.runUpload).toHaveBeenCalledWith(['mapping.js', '-m', 'msg', '--skip-git']);
57
+ });
58
+ it('exits when upload is missing its argument', async () => {
59
+ setArgv('upload');
60
+ await expect((0, index_1.main)()).rejects.toThrow('__EXIT__:1');
61
+ expect(upload_1.runUpload).not.toHaveBeenCalled();
62
+ expect(errorSpy).toHaveBeenCalledWith(expect.stringMatching(/missing <path\.js>/));
63
+ });
64
+ it.each(['help', '-h', '--help'])('prints usage for %s', async (helpFlag) => {
65
+ setArgv(helpFlag);
66
+ await (0, index_1.main)();
67
+ expect(logSpy).toHaveBeenCalledWith(expect.stringMatching(/Usage: flexplm-mapping/));
68
+ });
69
+ it('prints usage when no command is provided', async () => {
70
+ setArgv();
71
+ await (0, index_1.main)();
72
+ expect(logSpy).toHaveBeenCalledWith(expect.stringMatching(/Usage: flexplm-mapping/));
73
+ });
74
+ it('exits on an unknown command', async () => {
75
+ setArgv('bogus');
76
+ await expect((0, index_1.main)()).rejects.toThrow('__EXIT__:1');
77
+ expect(errorSpy).toHaveBeenCalledWith(expect.stringMatching(/Unknown command: bogus/));
78
+ });
79
+ });
@@ -0,0 +1,18 @@
1
+ import type { MappingFile } from '@contrail/flexplm';
2
+
3
+ export const mapping: MappingFile = {
4
+ orgInfo: {
5
+ appIdentifier: '@vibeiq/flexplm-connector',
6
+ orgName: '<ORG_NAME>',
7
+ },
8
+ typeConversion: {
9
+ vibe2flex: {},
10
+ flex2vibe: {},
11
+ },
12
+ LCSSeason: { vibe2flex: {}, flex2vibe: {} },
13
+ LCSProduct: { vibe2flex: {}, flex2vibe: {} },
14
+ LCSSKU: { vibe2flex: {}, flex2vibe: {} },
15
+ LCSProductSeasonLink: { vibe2flex: {}, flex2vibe: {} },
16
+ LCSSKUSeasonLink: { vibe2flex: {}, flex2vibe: {} },
17
+ LCSColor: { vibe2flex: {}, flex2vibe: {} },
18
+ };
@@ -1,42 +1,89 @@
1
- import { FCConfig, EntityPayloadType } from '../interfaces/interfaces';
2
- import { DataConverter } from '../util/data-converter';
3
- import { TypeUtils } from '../util/type-utils';
4
- import { MapFileUtil } from '@contrail/transform-data';
5
- export declare class IncomingEntityResponse {
6
- entity: any;
7
- earlyReturn: any;
8
- }
9
- export declare abstract class BaseEntityProcessor {
10
- protected config: FCConfig;
11
- protected dc: DataConverter;
12
- protected mapFileUtil: MapFileUtil;
13
- protected baseType: string;
14
- protected typeUtil: TypeUtils;
15
- protected transformMapFile: string;
16
- protected entities: any;
17
- protected orgSlug: string;
18
- constructor(config: FCConfig, dc: DataConverter, mapFileUtil: MapFileUtil, baseType: string);
19
- inbound(event: EntityPayloadType): Promise<any>;
20
- handleIncomingUpsert(event: EntityPayloadType): Promise<any>;
21
- getInboundStatusMessage(statusObject: any): string;
22
- queryEntityWithSubTypeCriteria(entityType: string, entityTypePath: string, propertyCriteria: any): Promise<any[]>;
23
- getCriteriaForEntity(entityType: string, entityTypePath: string, propertyCriteria: any): Promise<any>;
24
- getRootTypePropertyKeys(rootType: any, propertyCriteria?: any): string[];
25
- handleIncomingDelete(event: any): Promise<void>;
26
- getTransformedData(event: any): Promise<any>;
27
- getUpdatesForEntity(entity: any, inboundData: any): Promise<object>;
28
- getVibeOwningKeys(entity: any): Promise<any[]>;
29
- getVibeOwningKeysFromInbound(entity: any): Promise<any[]>;
30
- createEntity(entityName: any, changes: any): Promise<any>;
31
- updateEntity(entityName: any, entity: any, diffs: any): Promise<any>;
32
- protected abstract getIncomingEntity(event: any, inboundData: any): Promise<IncomingEntityResponse>;
33
- protected abstract getCreateEntity(inboundData: any): Promise<IncomingEntityResponse>;
34
- outbound(event: any): Promise<any>;
35
- handleOutgoingUpsert(entityType: any, event: any): Promise<any>;
36
- getOutboundEntityUpdates(event: any, flexResponse: any): Promise<any>;
37
- handleOutgoingDelete(entityType: any, event: any): Promise<void>;
38
- protected abstract getOutgoingUpsertPayload(entityType: any, event: any): Promise<EntityPayloadType>;
39
- protected triggerNewEvent(triggerKey: string, event: any): Promise<any>;
40
- protected sendUpsertToFlexPLM(event: any): Promise<any>;
41
- protected getEntityCurrentStateUpsertPayload(event: any): Promise<EntityPayloadType>;
42
- }
1
+ import { FCConfig, EntityPayloadType } from '../interfaces/interfaces';
2
+ import { DataConverter } from '../util/data-converter';
3
+ import { TypeUtils } from '../util/type-utils';
4
+ import { MapFileUtil } from '@contrail/transform-data';
5
+ export declare class IncomingEntityResponse {
6
+ entity: any;
7
+ earlyReturn: any;
8
+ }
9
+ export declare abstract class BaseEntityProcessor {
10
+ protected config: FCConfig;
11
+ protected dc: DataConverter;
12
+ protected mapFileUtil: MapFileUtil;
13
+ protected baseType: string;
14
+ protected typeUtil: TypeUtils;
15
+ protected transformMapFile: string;
16
+ protected entities: any;
17
+ protected orgSlug: string;
18
+ constructor(config: FCConfig, dc: DataConverter, mapFileUtil: MapFileUtil, baseType: string);
19
+ inbound(event: EntityPayloadType): Promise<any>;
20
+ handleIncomingUpsert(event: EntityPayloadType): Promise<any>;
21
+ getInboundStatusMessage(statusObject: any): string;
22
+ /**This will query for the entity, and handle post-processing
23
+ * of any critieria that is defined at the sub-type level.
24
+ * Because sub-type criteria can't be used in the search done
25
+ * on the server. This is expected to be called by getIncomingEntity().
26
+ *
27
+ * @param entityType: the root type of the entity
28
+ * @param entityTypePath: the full type path of the entity. Ex: custom-entity:sample
29
+ * @param propertyCriteria: all the criteria to search for the entity
30
+ * @returns the entities that match the criteria
31
+ */
32
+ queryEntityWithSubTypeCriteria(entityType: string, entityTypePath: string, propertyCriteria: any): Promise<any[]>;
33
+ /** This is to get the criteria for the entity that is being processed.
34
+ * This is to be overridden for item & project-item because of the need for
35
+ * setting the roles criteria.
36
+ *
37
+ * @param entityType: the root type of the entity
38
+ * @param entityTypePath: the full type path of the entity. Ex: custom-entity:sample
39
+ * @param propertyCriteria: all the criteria to search for the entity
40
+ * @returns the criteria for the entity
41
+ */
42
+ getCriteriaForEntity(entityType: string, entityTypePath: string, propertyCriteria: any): Promise<any>;
43
+ /** This is to get the properties that are owned by the root type
44
+ * This needs to be overridded for multi-level types, such as item
45
+ * and project-item. And for those types, the propertyCriteria
46
+ * will be needed to determine the correct level.
47
+ *
48
+ * @param rootType: the full root type entity for the processed entity
49
+ * @param propertyCriteria: the criteria to determine the correct level (unused for single level types)
50
+ * @returns: string[] of the property keys
51
+ */
52
+ getRootTypePropertyKeys(rootType: any, propertyCriteria?: any): string[];
53
+ handleIncomingDelete(event: any): Promise<void>;
54
+ getTransformedData(event: any): Promise<any>;
55
+ getUpdatesForEntity(entity: any, inboundData: any): Promise<object>;
56
+ getVibeOwningKeys(entity: any): Promise<any[]>;
57
+ getVibeOwningKeysFromInbound(entity: any): Promise<any[]>;
58
+ createEntity(entityName: any, changes: any): Promise<any>;
59
+ updateEntity(entityName: any, entity: any, diffs: any): Promise<any>;
60
+ protected abstract getIncomingEntity(event: any, inboundData: any): Promise<IncomingEntityResponse>;
61
+ protected abstract getCreateEntity(inboundData: any): Promise<IncomingEntityResponse>;
62
+ outbound(event: any): Promise<any>;
63
+ handleOutgoingUpsert(entityType: any, event: any): Promise<any>;
64
+ getOutboundEntityUpdates(event: any, flexResponse: any): Promise<any>;
65
+ handleOutgoingDelete(entityType: any, event: any): Promise<void>;
66
+ protected abstract getOutgoingUpsertPayload(entityType: any, event: any): Promise<EntityPayloadType>;
67
+ /** Create a new event-workflow-request to rerun sending the entity to FlexPLM
68
+ * The event must contain any information needed to ensure it is put in the correct queue for the entity
69
+ *
70
+ * @param triggerKey Ex: event.entityType + '|sendUpsertToFlexPLM'
71
+ * @param event
72
+ * @returns
73
+ */
74
+ protected triggerNewEvent(triggerKey: string, event: any): Promise<any>;
75
+ /** Sends the current state of the entity to FlexPLM.
76
+ * So any changes made in Vibe between the event being generated and the event being processed are sent to FlexPLM.
77
+ *
78
+ * @param event must contain entityType, id; which are used to query for the entity
79
+ * @returns results of sending the entity to FlexPLM
80
+ */
81
+ protected sendUpsertToFlexPLM(event: any): Promise<any>;
82
+ /** Generates the payload to send to FlexPLM, based on the current state of the entity.
83
+ * The current state of the entity are used as the newData and oldData; which is passed
84
+ * to getOutgoingUpsertPayload to generate the payload.
85
+ * @param event information about the item to send to FlexPLM
86
+ * @returns The payload to send to FlexPLM
87
+ */
88
+ protected getEntityCurrentStateUpsertPayload(event: any): Promise<EntityPayloadType>;
89
+ }