@contrail/flexplm 1.2.0-alpha.0 → 1.3.0-alpha.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 (88) hide show
  1. package/package.json +1 -1
  2. package/scripts/output.png +0 -0
  3. package/scripts/test-get-request.ts +35 -0
  4. package/src/util/flexplm-connect.spec.ts +132 -0
  5. package/src/util/flexplm-connect.ts +14 -5
  6. package/src/util/type-conversion-utils-spec-mockData.ts +18 -0
  7. package/src/util/type-conversion-utils.spec.ts +184 -0
  8. package/src/util/type-conversion-utils.ts +74 -0
  9. package/lib/entity-processor/base-entity-processor.d.ts +0 -42
  10. package/lib/entity-processor/base-entity-processor.js +0 -363
  11. package/lib/entity-processor/base-entity-processor.spec.d.ts +0 -1
  12. package/lib/entity-processor/base-entity-processor.spec.js +0 -302
  13. package/lib/flexplm-request.d.ts +0 -3
  14. package/lib/flexplm-request.js +0 -34
  15. package/lib/flexplm-utils.d.ts +0 -5
  16. package/lib/flexplm-utils.js +0 -33
  17. package/lib/flexplm-utils.spec.d.ts +0 -1
  18. package/lib/flexplm-utils.spec.js +0 -26
  19. package/lib/index.d.ts +0 -22
  20. package/lib/index.js +0 -38
  21. package/lib/interfaces/interfaces.d.ts +0 -105
  22. package/lib/interfaces/interfaces.js +0 -2
  23. package/lib/interfaces/item-family-changes.d.ts +0 -20
  24. package/lib/interfaces/item-family-changes.js +0 -56
  25. package/lib/interfaces/publish-change-data.d.ts +0 -19
  26. package/lib/interfaces/publish-change-data.js +0 -32
  27. package/lib/publish/base-process-publish-assortment-callback.d.ts +0 -9
  28. package/lib/publish/base-process-publish-assortment-callback.js +0 -38
  29. package/lib/publish/base-process-publish-assortment.d.ts +0 -93
  30. package/lib/publish/base-process-publish-assortment.js +0 -944
  31. package/lib/publish/base-process-publish-assortment.spec.d.ts +0 -1
  32. package/lib/publish/base-process-publish-assortment.spec.js +0 -1670
  33. package/lib/publish/mockData.d.ts +0 -1389
  34. package/lib/publish/mockData.js +0 -4519
  35. package/lib/transform/identifier-conversion-spec-mockData.d.ts +0 -0
  36. package/lib/transform/identifier-conversion-spec-mockData.js +0 -444
  37. package/lib/transform/identifier-conversion.d.ts +0 -15
  38. package/lib/transform/identifier-conversion.js +0 -212
  39. package/lib/transform/identifier-conversion.spec.d.ts +0 -1
  40. package/lib/transform/identifier-conversion.spec.js +0 -339
  41. package/lib/util/config-defaults.d.ts +0 -8
  42. package/lib/util/config-defaults.js +0 -85
  43. package/lib/util/config-defaults.spec.d.ts +0 -1
  44. package/lib/util/config-defaults.spec.js +0 -293
  45. package/lib/util/data-converter-spec-mockData.d.ts +0 -0
  46. package/lib/util/data-converter-spec-mockData.js +0 -205
  47. package/lib/util/data-converter.d.ts +0 -39
  48. package/lib/util/data-converter.js +0 -592
  49. package/lib/util/data-converter.spec.d.ts +0 -1
  50. package/lib/util/data-converter.spec.js +0 -904
  51. package/lib/util/error-response-object.d.ts +0 -4
  52. package/lib/util/error-response-object.js +0 -47
  53. package/lib/util/error-response-object.spec.d.ts +0 -1
  54. package/lib/util/error-response-object.spec.js +0 -99
  55. package/lib/util/event-short-message-status.d.ts +0 -18
  56. package/lib/util/event-short-message-status.js +0 -22
  57. package/lib/util/federation.d.ts +0 -15
  58. package/lib/util/federation.js +0 -149
  59. package/lib/util/flexplm-connect.d.ts +0 -18
  60. package/lib/util/flexplm-connect.js +0 -171
  61. package/lib/util/logger-config.d.ts +0 -1
  62. package/lib/util/logger-config.js +0 -26
  63. package/lib/util/map-util-spec-mockData.d.ts +0 -0
  64. package/lib/util/map-util-spec-mockData.js +0 -205
  65. package/lib/util/map-utils.d.ts +0 -6
  66. package/lib/util/map-utils.js +0 -15
  67. package/lib/util/map-utils.spec.d.ts +0 -1
  68. package/lib/util/map-utils.spec.js +0 -89
  69. package/lib/util/mockData.d.ts +0 -79
  70. package/lib/util/mockData.js +0 -99
  71. package/lib/util/thumbnail-util.d.ts +0 -19
  72. package/lib/util/thumbnail-util.js +0 -114
  73. package/lib/util/thumbnail-util.spec.d.ts +0 -1
  74. package/lib/util/thumbnail-util.spec.js +0 -242
  75. package/lib/util/type-conversion-utils-spec-mockData.d.ts +0 -0
  76. package/lib/util/type-conversion-utils-spec-mockData.js +0 -241
  77. package/lib/util/type-conversion-utils.d.ts +0 -21
  78. package/lib/util/type-conversion-utils.js +0 -223
  79. package/lib/util/type-conversion-utils.spec.d.ts +0 -1
  80. package/lib/util/type-conversion-utils.spec.js +0 -708
  81. package/lib/util/type-defaults.d.ts +0 -16
  82. package/lib/util/type-defaults.js +0 -221
  83. package/lib/util/type-defaults.spec.d.ts +0 -1
  84. package/lib/util/type-defaults.spec.js +0 -516
  85. package/lib/util/type-utils.d.ts +0 -13
  86. package/lib/util/type-utils.js +0 -114
  87. package/lib/util/type-utils.spec.d.ts +0 -1
  88. package/lib/util/type-utils.spec.js +0 -190
@@ -1,205 +0,0 @@
1
- 'use strict';
2
- Object.defineProperty(exports, '__esModule', { value: true });
3
- exports.mapping = {
4
- typeConversion: {
5
- vibe2flex: {
6
- 'custom-entity': {
7
- getMapKey: (entity) => {
8
- const typePath = entity['typePath'];
9
- let mapKey = '';
10
- switch (typePath) {
11
- case 'custom-entity:pack':
12
- mapKey = 'packaging';
13
- break;
14
- case 'custom-entity:prefix':
15
- mapKey = 'prefix';
16
- break;
17
- case 'custom-entity:catName':
18
- mapKey = 'catName';
19
- break;
20
- case 'custom-entity:partnerOrg':
21
- mapKey = 'partnerOrg';
22
- break;
23
- case 'custom-entity:catFamily':
24
- mapKey = 'catFamily';
25
- break;
26
- case 'custom-entity:formName':
27
- mapKey = 'formName';
28
- break;
29
- }
30
- return mapKey;
31
- }
32
- }
33
- }
34
- },
35
- LCSProduct: {
36
- vibeOwningKeys: ['itemNumber', 'lifecycleStage'],
37
- vibe2flex: {
38
- getClass: () => 'LCSProduct',
39
- getSoftType: (entity) => {
40
- const prodType = entity['prodType'];
41
- let val = '';
42
- switch (prodType) {
43
- case 'acc':
44
- val = 'Product\\Accesories';
45
- break;
46
- case 'app':
47
- val = 'Product\\Apparel';
48
- break;
49
- case 'eqp':
50
- val = 'Product\\Equipment';
51
- break;
52
- case 'foot':
53
- val = 'Product\\Footwear';
54
- break;
55
- }
56
- return val;
57
- },
58
- transformOrder: [{ processor: 'REKEY', rekeyDelete: true, rekeyTransformersKey: 'rekey' }, { processor: 'VALUE_TRANSFORM', functionTransformersKey: 'valueTransform' }],
59
- rekey: {
60
- productName: 'name',
61
- vibeIQIdentifier: 'itemNumber'
62
- },
63
- valueTransform: {
64
- transformEx: (row) => {
65
- return row['otherProp'] + 'xxx';
66
- }
67
- }
68
- },
69
- flex2vibe: {
70
- getClass: () => 'item',
71
- transformOrder: [{ processor: 'REKEY', rekeyDelete: true, rekeyTransformersKey: 'rekey' }],
72
- rekey: {
73
- itemNumber: 'vibeIQIdentifier',
74
- name: 'productName',
75
- }
76
- }
77
- },
78
- LCSSKU: {
79
- vibeOwningKeys: ['itemNumber', 'lifecycleStage'],
80
- vibe2flex: {
81
- getClass: () => 'LCSSKU',
82
- getSoftType: (entity) => {
83
- const prodType = entity['prodType'];
84
- let val = '';
85
- switch (prodType) {
86
- case 'acc':
87
- val = 'Product\\Accesories';
88
- break;
89
- case 'app':
90
- val = 'Product\\Apparel';
91
- break;
92
- case 'eqp':
93
- val = 'Product\\Equipment';
94
- break;
95
- case 'foot':
96
- val = 'Product\\Footwear';
97
- break;
98
- }
99
- return val;
100
- },
101
- transformOrder: [{ processor: 'REKEY', rekeyDelete: true, rekeyTransformersKey: 'rekey' }],
102
- rekey: {
103
- skuName: 'optionName',
104
- vibeIQIdentifier: 'itemNumber'
105
- }
106
- },
107
- flex2vibe: {
108
- transformOrder: [{ processor: 'REKEY', rekeyDelete: true, rekeyTransformersKey: 'rekey' }],
109
- rekey: {
110
- itemNumber: 'vibeIQIdentifier',
111
- optionName: 'skuName',
112
- }
113
- }
114
- },
115
- packaging: {
116
- vibe2flex: {
117
- transformOrder: [{ processor: 'REKEY', rekeyDelete: true, rekeyTransformersKey: 'rekey' }],
118
- rekey: {
119
- retailPackType: 'packType',
120
- retailIntroDate: 'introDate'
121
- },
122
- getSoftType: () => 'Revisable Entity\\packaging',
123
- getClass: () => 'LCSRevisableEntity'
124
- },
125
- flex2vibe: {
126
- transformOrder: [{ processor: 'REKEY', rekeyDelete: true, rekeyTransformersKey: 'rekey' }],
127
- rekey: {
128
- packType: 'retailPackType',
129
- introDate: 'retailIntroDate'
130
- },
131
- getClass: () => 'custom-entity',
132
- getSoftType: () => 'custom-entity:pack',
133
- }
134
- },
135
- prefix: {
136
- vibe2flex: {
137
- transformOrder: [{ processor: 'REKEY', rekeyDelete: true, rekeyTransformersKey: 'rekey' }],
138
- rekey: {
139
- retailOwner: 'owner',
140
- retailIntroDate: 'introDate'
141
- },
142
- getSoftType: () => 'Revisable Entity\\prefix',
143
- getClass: () => 'LCSRevisableEntity'
144
- },
145
- flex2vibe: {
146
- transformOrder: [{ processor: 'REKEY', rekeyDelete: true, rekeyTransformersKey: 'rekey' }],
147
- rekey: {
148
- owner: 'retailOwner',
149
- introDate: 'retailIntroDate'
150
- },
151
- getClass: () => 'custom-entity',
152
- getSoftType: () => 'custom-entity:prefix',
153
- }
154
- },
155
- catName: {
156
- getIdentifierProperties: () => ['catName', 'catNumber'],
157
- getInformationalProperties: () => ['longName'],
158
- vibe2flex: {
159
- transformOrder: [],
160
- getSoftType: () => 'Revisable Entity\\catName',
161
- getClass: () => 'LCSLast'
162
- },
163
- flex2vibe: {
164
- transformOrder: [],
165
- getClass: () => 'custom-entity',
166
- getSoftType: () => 'custom-entity:catName',
167
- }
168
- },
169
- partnerOrg: {
170
- vibe2flex: {
171
- transformOrder: [],
172
- getSoftType: () => 'Business Object\\partnerOrg',
173
- getClass: () => 'LCSLifecycleManaged'
174
- },
175
- flex2vibe: {
176
- transformOrder: [],
177
- getClass: () => 'custom-entity',
178
- getSoftType: () => 'custom-entity:partnerOrg',
179
- }
180
- },
181
- catFamily: {
182
- vibe2flex: {
183
- transformOrder: [],
184
- getSoftType: () => 'Revisable Entity\\catFamily',
185
- getClass: () => 'LCSRevisableEntity'
186
- },
187
- flex2vibe: {
188
- transformOrder: [],
189
- getClass: () => 'custom-entity',
190
- getSoftType: () => 'custom-entity:catFamily',
191
- }
192
- },
193
- formName: {
194
- vibe2flex: {
195
- transformOrder: [],
196
- getSoftType: () => 'Material\\form',
197
- getClass: () => 'LCSMaterial'
198
- },
199
- flex2vibe: {
200
- transformOrder: [],
201
- getClass: () => 'custom-entity',
202
- getSoftType: () => 'custom-entity:formName',
203
- }
204
- },
205
- };
@@ -1,6 +0,0 @@
1
- import { MapFileUtil } from '@contrail/transform-data';
2
- export declare class MapUtil {
3
- static applyTransformMap(transformMapFile: any, mapFileUtil: any, data: any, mapSectionKey: string, direction: string, transformTaskOrderKey?: string): Promise<any>;
4
- static getMapKey(transformMapFile: any, mapFileUtil: MapFileUtil, data: any, type: string, direction: string): Promise<string>;
5
- static getFullMapSection(transformMapFile: string, mapFileUtil: MapFileUtil, mapSectionKey: string): Promise<any>;
6
- }
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MapUtil = void 0;
4
- class MapUtil {
5
- static async applyTransformMap(transformMapFile, mapFileUtil, data, mapSectionKey, direction, transformTaskOrderKey = 'transformOrder') {
6
- return await mapFileUtil.applyTransformMap(transformMapFile, data, mapSectionKey, direction, transformTaskOrderKey);
7
- }
8
- static async getMapKey(transformMapFile, mapFileUtil, data, type, direction) {
9
- return await mapFileUtil.getMapKey(transformMapFile, data, type, direction);
10
- }
11
- static async getFullMapSection(transformMapFile, mapFileUtil, mapSectionKey) {
12
- return await mapFileUtil.getFullMapSection(transformMapFile, mapSectionKey);
13
- }
14
- }
15
- exports.MapUtil = MapUtil;
@@ -1 +0,0 @@
1
- export {};
@@ -1,89 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const maps = require('./map-util-spec-mockData').mapping;
4
- const mockData = {
5
- file1: maps
6
- };
7
- const mockGetMapFileFunction = jest.fn(async (fileId) => {
8
- return mockData[fileId];
9
- });
10
- const sdk_1 = require("@contrail/sdk");
11
- const transform_data_1 = require("@contrail/transform-data");
12
- const map_utils_1 = require("./map-utils");
13
- describe('getMapKey', () => {
14
- const transformMapFile = 'file1';
15
- const mapFileUtil = new transform_data_1.MapFileUtil(new sdk_1.Entities());
16
- let spy;
17
- beforeAll(() => {
18
- spy = jest.spyOn(mapFileUtil, 'getMapFile').mockImplementation(mockGetMapFileFunction);
19
- });
20
- beforeEach(() => {
21
- spy.mockClear();
22
- });
23
- afterAll(() => {
24
- spy.mockRestore();
25
- });
26
- it('custom-entity:pack', async () => {
27
- const entity = {
28
- typePath: 'custom-entity:pack',
29
- entityType: 'custom-entity'
30
- };
31
- const expectedMapKey = 'packaging';
32
- const results = await map_utils_1.MapUtil.getMapKey(transformMapFile, mapFileUtil, entity, entity.entityType, 'vibe2flex');
33
- ;
34
- expect(results).toEqual(expectedMapKey);
35
- });
36
- it('custom-entity:prefix', async () => {
37
- const entity = {
38
- typePath: 'custom-entity:prefix',
39
- entityType: 'custom-entity'
40
- };
41
- const expectedMapKey = 'prefix';
42
- const results = await map_utils_1.MapUtil.getMapKey(transformMapFile, mapFileUtil, entity, entity.entityType, 'vibe2flex');
43
- ;
44
- expect(results).toEqual(expectedMapKey);
45
- });
46
- it('color - no mapping exists', async () => {
47
- const entity = {
48
- typePath: 'color',
49
- entityType: 'color'
50
- };
51
- const expectedMapKey = undefined;
52
- const results = await map_utils_1.MapUtil.getMapKey(transformMapFile, mapFileUtil, entity, entity.entityType, 'vibe2flex');
53
- ;
54
- expect(results).toEqual(expectedMapKey);
55
- });
56
- });
57
- describe('getFullMapSection', () => {
58
- const transformMapFile = 'file1';
59
- const mapFileUtil = new transform_data_1.MapFileUtil(new sdk_1.Entities());
60
- let spy;
61
- beforeAll(() => {
62
- spy = jest.spyOn(mapFileUtil, 'getMapFile').mockImplementation(mockGetMapFileFunction);
63
- });
64
- beforeEach(() => {
65
- spy.mockClear();
66
- });
67
- afterAll(() => {
68
- spy.mockRestore();
69
- });
70
- it('custom-entity:pack', async () => {
71
- const mapKey = 'packaging';
72
- const mapSection = await map_utils_1.MapUtil.getFullMapSection(transformMapFile, mapFileUtil, mapKey);
73
- expect(mapSection).toHaveProperty('vibe2flex');
74
- expect(mapSection).toHaveProperty('flex2vibe');
75
- });
76
- it('custom-entity:catName', async () => {
77
- const mapKey = 'catName';
78
- const mapSection = await map_utils_1.MapUtil.getFullMapSection(transformMapFile, mapFileUtil, mapKey);
79
- expect(mapSection).toHaveProperty('vibe2flex');
80
- expect(mapSection).toHaveProperty('flex2vibe');
81
- expect(mapSection).toHaveProperty('getIdentifierProperties');
82
- expect(mapSection).toHaveProperty('getInformationalProperties');
83
- });
84
- it('color - no mapping exists', async () => {
85
- const mapKey = 'color';
86
- const mapSection = await map_utils_1.MapUtil.getFullMapSection(transformMapFile, mapFileUtil, mapKey);
87
- expect(mapSection).toBeUndefined();
88
- });
89
- });
@@ -1,79 +0,0 @@
1
- export declare const empty_custom_sizes: any[];
2
- export declare const four_custom_sizes: {
3
- size: number;
4
- id: string;
5
- slug: string;
6
- }[];
7
- export declare const thumbnail_content_entity: {
8
- fileName: string;
9
- primaryFileId: string;
10
- primaryFileUrl: string;
11
- primaryFile: {
12
- fileName: string;
13
- id: string;
14
- size: number;
15
- };
16
- tinyViewableId: string;
17
- tinyViewableUrl: string;
18
- tinyViewable: {
19
- fileName: string;
20
- id: string;
21
- size: number;
22
- };
23
- smallViewableId: string;
24
- smallViewableUrl: string;
25
- smallViewable: {
26
- fileName: string;
27
- id: string;
28
- size: number;
29
- };
30
- mediumViewableId: string;
31
- mediumViewableUrl: string;
32
- mediumViewable: {
33
- fileName: string;
34
- id: string;
35
- size: number;
36
- };
37
- largeViewableId: string;
38
- largeViewableUrl: string;
39
- largeViewable: {
40
- fileName: string;
41
- id: string;
42
- size: number;
43
- };
44
- CS_300Id: string;
45
- CS_300Url: string;
46
- CS_300: {
47
- fileName: string;
48
- id: string;
49
- size: number;
50
- };
51
- CS_500Id: string;
52
- CS_500Url: string;
53
- CS_500: {
54
- fileName: string;
55
- id: string;
56
- size: number;
57
- };
58
- CS_800Id: string;
59
- CS_800Url: string;
60
- CS_800: {
61
- fileName: string;
62
- id: string;
63
- size: number;
64
- };
65
- CS_1000Id: string;
66
- CS_1000Url: string;
67
- CS_1000: {
68
- fileName: string;
69
- id: string;
70
- size: number;
71
- };
72
- createdOn: string;
73
- orgId: string;
74
- id: string;
75
- contentType: string;
76
- createdById: string;
77
- updatedById: string;
78
- fileSize: number;
79
- };
@@ -1,99 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.thumbnail_content_entity = exports.four_custom_sizes = exports.empty_custom_sizes = void 0;
4
- exports.empty_custom_sizes = [];
5
- exports.four_custom_sizes = [
6
- {
7
- size: 1000,
8
- id: '-QwFOWnCs0Gb5jkA',
9
- slug: 'CS_1000'
10
- },
11
- {
12
- size: 300,
13
- id: 'AKXOowvhJRnkerG8',
14
- slug: 'CS_300'
15
- },
16
- {
17
- size: 500,
18
- id: '9asQ65N188RIYgnh',
19
- slug: 'CS_500'
20
- },
21
- {
22
- size: 800,
23
- id: 'xkzhwE4nJ6iRwfvP',
24
- slug: 'CS_800'
25
- }
26
- ];
27
- exports.thumbnail_content_entity = {
28
- fileName: 'JACKET 300_SOLDIER OLIVE.png',
29
- primaryFileId: 'yn2d5oHD4rXHRzyB',
30
- primaryFileUrl: 'https://api.vibeiq.com/prod/api/files/downloadUrl/5LZnKVTNxvwMqufy%2Fcontent:cuRficeyoStwTF-f%2Ff646d3cd-e23a-4689-bd16-0301d2036720.png',
31
- primaryFile: {
32
- fileName: 'JACKET 300_SOLDIER OLIVE.png',
33
- id: 'yn2d5oHD4rXHRzyB',
34
- size: 1757973
35
- },
36
- tinyViewableId: '6HWzJrQ-Jx1iefmj',
37
- tinyViewableUrl: 'https://api.vibeiq.com/prod/api/files/downloadUrl/5LZnKVTNxvwMqufy%2Fcontent:cuRficeyoStwTF-f%2Fb68f8652-f33f-452f-ae34-25397b4521eb.png',
38
- tinyViewable: {
39
- fileName: 'JACKET 300_SOLDIER OLIVE_tiny.png',
40
- id: '6HWzJrQ-Jx1iefmj',
41
- size: 1784
42
- },
43
- smallViewableId: 'D3WRW4iRmjLzp5VX',
44
- smallViewableUrl: 'https://api.vibeiq.com/prod/api/files/downloadUrl/5LZnKVTNxvwMqufy%2Fcontent:cuRficeyoStwTF-f%2F541c53f8-fd85-418e-ae28-ad7410658b90.png',
45
- smallViewable: {
46
- fileName: 'JACKET 300_SOLDIER OLIVE_small.png',
47
- id: 'D3WRW4iRmjLzp5VX',
48
- size: 8699
49
- },
50
- mediumViewableId: 'AsRvJenpeqxksUNW',
51
- mediumViewableUrl: 'https://api.vibeiq.com/prod/api/files/downloadUrl/5LZnKVTNxvwMqufy%2Fcontent:cuRficeyoStwTF-f%2Fe803c2d3-3e1b-4d9c-9bb9-2c488f1f295b.png',
52
- mediumViewable: {
53
- fileName: 'JACKET 300_SOLDIER OLIVE_medium.png',
54
- id: 'AsRvJenpeqxksUNW',
55
- size: 77558
56
- },
57
- largeViewableId: 'vo4N4mCd-tFrw101',
58
- largeViewableUrl: 'https://api.vibeiq.com/prod/api/files/downloadUrl/5LZnKVTNxvwMqufy%2Fcontent:cuRficeyoStwTF-f%2Fb1b7a55c-b8ba-4857-be4e-e1c3f11d8e9a.png',
59
- largeViewable: {
60
- fileName: 'JACKET 300_SOLDIER OLIVE_large.png',
61
- id: 'vo4N4mCd-tFrw101',
62
- size: 1781538
63
- },
64
- CS_300Id: '6A5AG33nVu3Z6ogO',
65
- CS_300Url: 'https://api.vibeiq.com/prod/api/files/downloadUrl/5LZnKVTNxvwMqufy%2Fcontent:cuRficeyoStwTF-f%2F3f2ea306-a77f-4cc3-a49a-75fb5d8b113c.png',
66
- CS_300: {
67
- fileName: 'JACKET 300_SOLDIER OLIVE_CS_300.png',
68
- id: '6A5AG33nVu3Z6ogO',
69
- size: 141153
70
- },
71
- CS_500Id: 'rBaHc1J2xdOWdbhI',
72
- CS_500Url: 'https://api.vibeiq.com/prod/api/files/downloadUrl/5LZnKVTNxvwMqufy%2Fcontent:cuRficeyoStwTF-f%2F979c8c65-b63f-4220-aa2e-11520f2f68bf.png',
73
- CS_500: {
74
- fileName: 'JACKET 300_SOLDIER OLIVE_CS_500.png',
75
- id: 'rBaHc1J2xdOWdbhI',
76
- size: 382057
77
- },
78
- CS_800Id: 'ZPAeYI3JiqjQ7unY',
79
- CS_800Url: 'https://api.vibeiq.com/prod/api/files/downloadUrl/5LZnKVTNxvwMqufy%2Fcontent:cuRficeyoStwTF-f%2Fc58eeffa-2592-4698-a058-19281cda447c.png',
80
- CS_800: {
81
- fileName: 'JACKET 300_SOLDIER OLIVE_CS_800.png',
82
- id: 'ZPAeYI3JiqjQ7unY',
83
- size: 1008702
84
- },
85
- CS_1000Id: 'Hg_CthwsD4ozopCb',
86
- CS_1000Url: 'https://api.vibeiq.com/prod/api/files/downloadUrl/5LZnKVTNxvwMqufy%2Fcontent:cuRficeyoStwTF-f%2F2c827c7b-361b-4e05-b77d-4280294f9d9c.png',
87
- CS_1000: {
88
- fileName: 'JACKET 300_SOLDIER OLIVE_CS_1000.png',
89
- id: 'Hg_CthwsD4ozopCb',
90
- size: 1605889
91
- },
92
- createdOn: '2023-07-05T15:02:13.950Z',
93
- orgId: '5LZnKVTNxvwMqufy',
94
- id: 'cuRficeyoStwTF-f',
95
- contentType: 'image/png',
96
- createdById: 'SWIFPZeZzkBvrSLD',
97
- updatedById: 'SWIFPZeZzkBvrSLD',
98
- fileSize: 1757973
99
- };
@@ -1,19 +0,0 @@
1
- import { FCConfig } from '../interfaces/interfaces';
2
- export declare class ThumbnailUtil {
3
- private config;
4
- private max_thumbnail_size;
5
- private entities;
6
- static NEW_THUMBNAIL_ID: string;
7
- static EXISTING_THUMBNAIL_ID: string;
8
- static REMOVE_THUMBNAIL: string;
9
- static OOB_SIZES: {
10
- slug: string;
11
- }[];
12
- constructor(config: FCConfig);
13
- setOutboundThumbnail(data: any, event: any): Promise<any>;
14
- isThumbnailNew(event: any, customSizes: any[]): boolean;
15
- getFileId(primaryViewableId: string): Promise<string>;
16
- getCustomSizes(): Promise<any[]>;
17
- getContentEntity(primaryViewableId: any, sizes: any[]): Promise<any>;
18
- logContentResults(content: any, relations: string[]): void;
19
- }
@@ -1,114 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ThumbnailUtil = void 0;
4
- const app_framework_1 = require("@contrail/app-framework");
5
- const sdk_1 = require("@contrail/sdk");
6
- class ThumbnailUtil {
7
- constructor(config) {
8
- this.config = config;
9
- this.max_thumbnail_size = 5 * 1024 * 1024;
10
- this.entities = new sdk_1.Entities();
11
- if (this.config['max_thumbnail_size']) {
12
- this.max_thumbnail_size = this.config['max_thumbnail_size'];
13
- }
14
- }
15
- async setOutboundThumbnail(data, event) {
16
- if (event?.newData?.primaryViewableId && event?.newData?.largeViewableDownloadUrl) {
17
- const primaryViewableId = event.newData.primaryViewableId;
18
- const fileId = await this.getFileId(primaryViewableId);
19
- if (fileId) {
20
- const customSizes = await this.getCustomSizes();
21
- const key = (this.isThumbnailNew(event, customSizes))
22
- ? ThumbnailUtil.NEW_THUMBNAIL_ID
23
- : ThumbnailUtil.EXISTING_THUMBNAIL_ID;
24
- data[key] = fileId;
25
- }
26
- }
27
- else if (event?.propertyDiffs?.largeViewableDownloadUrl?.oldValue && !event?.propertyDiffs?.largeViewableDownloadUrl?.newValue) {
28
- data[ThumbnailUtil.NEW_THUMBNAIL_ID] = ThumbnailUtil.REMOVE_THUMBNAIL;
29
- }
30
- return data;
31
- }
32
- isThumbnailNew(event, customSizes) {
33
- const propertyDiffs = event?.propertyDiffs;
34
- if (propertyDiffs) {
35
- const diffKeys = Object.keys(propertyDiffs);
36
- const sizeKeys = ThumbnailUtil.OOB_SIZES.map(s => s.slug + 'DownloadUrl');
37
- if (customSizes) {
38
- sizeKeys.push(...customSizes.map(s => s.slug + 'Url'));
39
- }
40
- sizeKeys.push('primaryFileUrl');
41
- console.info('diffKeys: ' + JSON.stringify(diffKeys));
42
- console.info('sizeKeys: ' + JSON.stringify(sizeKeys));
43
- return diffKeys.some(s => sizeKeys.includes(s));
44
- }
45
- return false;
46
- }
47
- async getFileId(primaryViewableId) {
48
- console.info('ThumbnailUtil.getFileId()-' + primaryViewableId);
49
- const sizes = await this.getCustomSizes();
50
- const OOBSizes = JSON.parse(JSON.stringify(ThumbnailUtil.OOB_SIZES));
51
- sizes.push(...OOBSizes);
52
- console.info('sizes: ' + JSON.stringify(sizes));
53
- const content = await this.getContentEntity(primaryViewableId, sizes);
54
- if (!content) {
55
- return undefined;
56
- }
57
- const contentKeys = Object.getOwnPropertyNames(content);
58
- const isDebugOn = app_framework_1.Logger.isDebugOn();
59
- let fileId = undefined;
60
- let tempFileSize = 0;
61
- for (const size of sizes) {
62
- const slug = size?.slug;
63
- if (contentKeys.includes(slug)) {
64
- const file = content[slug];
65
- if (isDebugOn) {
66
- console.debug('size: ' + slug);
67
- console.debug('fileId: ' + file['id']);
68
- }
69
- if (file && file['size'] > tempFileSize && file['size'] < this.max_thumbnail_size) {
70
- tempFileSize = file['size'];
71
- fileId = file['id'];
72
- if (isDebugOn) {
73
- console.debug('fileId: ' + fileId);
74
- }
75
- }
76
- }
77
- }
78
- console.info('ThumbnailUtil.getFileId(): returning-' + fileId);
79
- return fileId;
80
- }
81
- async getCustomSizes() {
82
- const customSizes = await this.entities.get({
83
- entityName: 'content-custom-size'
84
- });
85
- const sizes = [];
86
- sizes.push(...customSizes);
87
- return sizes;
88
- }
89
- async getContentEntity(primaryViewableId, sizes) {
90
- const relations = sizes.map(s => s.slug);
91
- relations.push('primaryFile');
92
- const content = await this.entities.get({
93
- entityName: 'content',
94
- id: primaryViewableId,
95
- relations
96
- });
97
- this.logContentResults(content, relations);
98
- return content;
99
- }
100
- logContentResults(content, relations) {
101
- if (app_framework_1.Logger.isDebugOn() && content && relations) {
102
- const contentCopy = JSON.parse(JSON.stringify(content));
103
- relations.forEach(r => {
104
- delete contentCopy[r];
105
- });
106
- console.debug('content: ' + JSON.stringify(contentCopy));
107
- }
108
- }
109
- }
110
- exports.ThumbnailUtil = ThumbnailUtil;
111
- ThumbnailUtil.NEW_THUMBNAIL_ID = 'NEW_THUMBNAIL_ID';
112
- ThumbnailUtil.EXISTING_THUMBNAIL_ID = 'EXISTING_THUMBNAIL_ID';
113
- ThumbnailUtil.REMOVE_THUMBNAIL = 'REMOVE_THUMBNAIL';
114
- ThumbnailUtil.OOB_SIZES = [{ slug: 'largeViewable' }, { slug: 'mediumLargeViewable' }, { slug: 'mediumViewable' }, { slug: 'smallViewable' }, { slug: 'tinyViewable' }];
@@ -1 +0,0 @@
1
- export {};