@contrail/flexplm 1.1.67-alpha.4 → 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 (89) hide show
  1. package/.claude/settings.local.json +7 -0
  2. package/package.json +1 -1
  3. package/scripts/output.png +0 -0
  4. package/scripts/test-get-request.ts +35 -0
  5. package/src/util/flexplm-connect.spec.ts +132 -0
  6. package/src/util/flexplm-connect.ts +14 -5
  7. package/src/util/type-conversion-utils-spec-mockData.ts +18 -0
  8. package/src/util/type-conversion-utils.spec.ts +184 -0
  9. package/src/util/type-conversion-utils.ts +74 -0
  10. package/lib/entity-processor/base-entity-processor.d.ts +0 -42
  11. package/lib/entity-processor/base-entity-processor.js +0 -363
  12. package/lib/entity-processor/base-entity-processor.spec.d.ts +0 -1
  13. package/lib/entity-processor/base-entity-processor.spec.js +0 -302
  14. package/lib/flexplm-request.d.ts +0 -3
  15. package/lib/flexplm-request.js +0 -34
  16. package/lib/flexplm-utils.d.ts +0 -5
  17. package/lib/flexplm-utils.js +0 -33
  18. package/lib/flexplm-utils.spec.d.ts +0 -1
  19. package/lib/flexplm-utils.spec.js +0 -26
  20. package/lib/index.d.ts +0 -22
  21. package/lib/index.js +0 -38
  22. package/lib/interfaces/interfaces.d.ts +0 -105
  23. package/lib/interfaces/interfaces.js +0 -2
  24. package/lib/interfaces/item-family-changes.d.ts +0 -20
  25. package/lib/interfaces/item-family-changes.js +0 -56
  26. package/lib/interfaces/publish-change-data.d.ts +0 -19
  27. package/lib/interfaces/publish-change-data.js +0 -32
  28. package/lib/publish/base-process-publish-assortment-callback.d.ts +0 -9
  29. package/lib/publish/base-process-publish-assortment-callback.js +0 -38
  30. package/lib/publish/base-process-publish-assortment.d.ts +0 -93
  31. package/lib/publish/base-process-publish-assortment.js +0 -944
  32. package/lib/publish/base-process-publish-assortment.spec.d.ts +0 -1
  33. package/lib/publish/base-process-publish-assortment.spec.js +0 -1670
  34. package/lib/publish/mockData.d.ts +0 -1389
  35. package/lib/publish/mockData.js +0 -4519
  36. package/lib/transform/identifier-conversion-spec-mockData.d.ts +0 -0
  37. package/lib/transform/identifier-conversion-spec-mockData.js +0 -444
  38. package/lib/transform/identifier-conversion.d.ts +0 -15
  39. package/lib/transform/identifier-conversion.js +0 -212
  40. package/lib/transform/identifier-conversion.spec.d.ts +0 -1
  41. package/lib/transform/identifier-conversion.spec.js +0 -339
  42. package/lib/util/config-defaults.d.ts +0 -8
  43. package/lib/util/config-defaults.js +0 -85
  44. package/lib/util/config-defaults.spec.d.ts +0 -1
  45. package/lib/util/config-defaults.spec.js +0 -293
  46. package/lib/util/data-converter-spec-mockData.d.ts +0 -0
  47. package/lib/util/data-converter-spec-mockData.js +0 -205
  48. package/lib/util/data-converter.d.ts +0 -39
  49. package/lib/util/data-converter.js +0 -592
  50. package/lib/util/data-converter.spec.d.ts +0 -1
  51. package/lib/util/data-converter.spec.js +0 -904
  52. package/lib/util/error-response-object.d.ts +0 -4
  53. package/lib/util/error-response-object.js +0 -47
  54. package/lib/util/error-response-object.spec.d.ts +0 -1
  55. package/lib/util/error-response-object.spec.js +0 -99
  56. package/lib/util/event-short-message-status.d.ts +0 -18
  57. package/lib/util/event-short-message-status.js +0 -22
  58. package/lib/util/federation.d.ts +0 -15
  59. package/lib/util/federation.js +0 -149
  60. package/lib/util/flexplm-connect.d.ts +0 -18
  61. package/lib/util/flexplm-connect.js +0 -171
  62. package/lib/util/logger-config.d.ts +0 -1
  63. package/lib/util/logger-config.js +0 -26
  64. package/lib/util/map-util-spec-mockData.d.ts +0 -0
  65. package/lib/util/map-util-spec-mockData.js +0 -205
  66. package/lib/util/map-utils.d.ts +0 -6
  67. package/lib/util/map-utils.js +0 -15
  68. package/lib/util/map-utils.spec.d.ts +0 -1
  69. package/lib/util/map-utils.spec.js +0 -89
  70. package/lib/util/mockData.d.ts +0 -79
  71. package/lib/util/mockData.js +0 -99
  72. package/lib/util/thumbnail-util.d.ts +0 -19
  73. package/lib/util/thumbnail-util.js +0 -114
  74. package/lib/util/thumbnail-util.spec.d.ts +0 -1
  75. package/lib/util/thumbnail-util.spec.js +0 -242
  76. package/lib/util/type-conversion-utils-spec-mockData.d.ts +0 -0
  77. package/lib/util/type-conversion-utils-spec-mockData.js +0 -241
  78. package/lib/util/type-conversion-utils.d.ts +0 -21
  79. package/lib/util/type-conversion-utils.js +0 -223
  80. package/lib/util/type-conversion-utils.spec.d.ts +0 -1
  81. package/lib/util/type-conversion-utils.spec.js +0 -708
  82. package/lib/util/type-defaults.d.ts +0 -16
  83. package/lib/util/type-defaults.js +0 -221
  84. package/lib/util/type-defaults.spec.d.ts +0 -1
  85. package/lib/util/type-defaults.spec.js +0 -516
  86. package/lib/util/type-utils.d.ts +0 -13
  87. package/lib/util/type-utils.js +0 -114
  88. package/lib/util/type-utils.spec.d.ts +0 -1
  89. 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 {};