@coveo/push-api-client 1.5.6 → 1.6.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.
Files changed (64) hide show
  1. package/dist/definitions/errors/baseError.d.ts +4 -0
  2. package/dist/definitions/errors/fieldErrors.d.ts +11 -0
  3. package/dist/definitions/{validation → errors}/validatorErrors.d.ts +1 -4
  4. package/dist/definitions/fieldAnalyser/fieldAnalyser.d.ts +44 -0
  5. package/dist/definitions/fieldAnalyser/fieldAnalyser.spec.d.ts +1 -0
  6. package/dist/definitions/fieldAnalyser/fieldStore.d.ts +5 -0
  7. package/dist/definitions/fieldAnalyser/inconsistencies.d.ts +5 -0
  8. package/dist/definitions/fieldAnalyser/inconsistencies.spec.d.ts +1 -0
  9. package/dist/definitions/fieldAnalyser/utils.d.ts +3 -0
  10. package/dist/definitions/fieldAnalyser/utils.spec.d.ts +1 -0
  11. package/dist/definitions/index.d.ts +1 -0
  12. package/dist/definitions/source.d.ts +13 -5
  13. package/dist/docs/assets/main.js +1 -1
  14. package/dist/docs/assets/search.js +1 -1
  15. package/dist/docs/classes/AnySecurityIdentityBuilder.html +2 -2
  16. package/dist/docs/classes/DocumentBuilder.html +16 -16
  17. package/dist/docs/classes/FieldAnalyser.html +9 -0
  18. package/dist/docs/classes/GroupSecurityIdentityBuilder.html +2 -2
  19. package/dist/docs/classes/Source.html +17 -16
  20. package/dist/docs/classes/UserSecurityIdentityBuilder.html +2 -2
  21. package/dist/docs/classes/VirtualGroupSecurityIdentityBuilder.html +2 -2
  22. package/dist/docs/enums/PlatformEnvironment.html +1 -1
  23. package/dist/docs/index.html +1 -1
  24. package/dist/docs/interfaces/BatchUpdateDocuments.html +1 -1
  25. package/dist/docs/interfaces/BatchUpdateDocumentsFromFiles.html +4 -2
  26. package/dist/docs/interfaces/Document.html +13 -13
  27. package/dist/docs/interfaces/SecurityIdentity.html +3 -3
  28. package/dist/docs/interfaces/SecurityIdentityBuilder.html +1 -1
  29. package/dist/docs/interfaces/UploadBatchCallbackData.html +1 -1
  30. package/dist/docs/modules.html +2 -2
  31. package/dist/documentBuilder.js +1 -1
  32. package/dist/documentBuilder.js.map +1 -1
  33. package/dist/errors/baseError.js +11 -0
  34. package/dist/errors/baseError.js.map +1 -0
  35. package/dist/errors/fieldErrors.js +38 -0
  36. package/dist/errors/fieldErrors.js.map +1 -0
  37. package/dist/{validation → errors}/validatorErrors.js +6 -12
  38. package/dist/errors/validatorErrors.js.map +1 -0
  39. package/dist/fieldAnalyser/fieldAnalyser.js +133 -0
  40. package/dist/fieldAnalyser/fieldAnalyser.js.map +1 -0
  41. package/dist/fieldAnalyser/fieldAnalyser.spec.js +203 -0
  42. package/dist/fieldAnalyser/fieldAnalyser.spec.js.map +1 -0
  43. package/dist/fieldAnalyser/fieldStore.js +22 -0
  44. package/dist/fieldAnalyser/fieldStore.js.map +1 -0
  45. package/dist/fieldAnalyser/inconsistencies.js +15 -0
  46. package/dist/fieldAnalyser/inconsistencies.js.map +1 -0
  47. package/dist/fieldAnalyser/inconsistencies.spec.js +41 -0
  48. package/dist/fieldAnalyser/inconsistencies.spec.js.map +1 -0
  49. package/dist/fieldAnalyser/utils.js +23 -0
  50. package/dist/fieldAnalyser/utils.js.map +1 -0
  51. package/dist/fieldAnalyser/utils.spec.js +82 -0
  52. package/dist/fieldAnalyser/utils.spec.js.map +1 -0
  53. package/dist/index.js +5 -3
  54. package/dist/index.js.map +1 -1
  55. package/dist/source.js +47 -5
  56. package/dist/source.js.map +1 -1
  57. package/dist/source.spec.js +145 -49
  58. package/dist/source.spec.js.map +1 -1
  59. package/dist/validation/parseFile.js +1 -1
  60. package/dist/validation/parseFile.js.map +1 -1
  61. package/dist/validation/parseFile.spec.js +1 -1
  62. package/dist/validation/parseFile.spec.js.map +1 -1
  63. package/package.json +8 -8
  64. package/dist/validation/validatorErrors.js.map +0 -1
@@ -0,0 +1,203 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ jest.mock('@coveord/platform-client');
4
+ const platform_client_1 = require("@coveord/platform-client");
5
+ const __1 = require("..");
6
+ const fieldErrors_1 = require("../errors/fieldErrors");
7
+ const fieldAnalyser_1 = require("./fieldAnalyser");
8
+ const buildDocument = (metadata) => {
9
+ const doc = new __1.DocumentBuilder('https://my.document.uri', 'some title');
10
+ if (metadata) {
11
+ doc.withMetadata(metadata);
12
+ }
13
+ return doc;
14
+ };
15
+ const docWithNewFields = buildDocument({
16
+ promo_price: 23.13,
17
+ description: 'Plumbus can generate and store vast amounts of heat, allowing it to be used for cooking, ironing or just heating the room.',
18
+ additional_info: 'Plumbus can secrete various agents from itself and has adaptive rubbing surfaces, making it useful for cleaning.',
19
+ price: 'six-and-a-half Brapples',
20
+ category: 'Various',
21
+ available: true,
22
+ });
23
+ const docWithExistingFields = buildDocument({
24
+ type: 'Teleportation Device',
25
+ category: 'Electronics',
26
+ })
27
+ .withAuthor('Rick')
28
+ .withFileExtension('.pewpew');
29
+ const dummyPlatformClient = () => {
30
+ return new platform_client_1.default({ accessToken: 'xxx' });
31
+ };
32
+ describe('FieldAnalyser', () => {
33
+ let analyser;
34
+ const mockedPlatformClient = jest.mocked(platform_client_1.default);
35
+ const mockedListFields = jest.fn();
36
+ const mockListFieldsWithValidPermanentId = () => {
37
+ mockedListFields
38
+ .mockResolvedValueOnce({
39
+ items: [
40
+ { name: 'brand', type: platform_client_1.FieldTypes.STRING },
41
+ { name: 'category', type: platform_client_1.FieldTypes.STRING },
42
+ { name: 'permanentid', type: platform_client_1.FieldTypes.STRING },
43
+ ],
44
+ totalPages: 2,
45
+ })
46
+ .mockResolvedValueOnce({
47
+ items: [{ name: 'type' }],
48
+ totalPages: 2,
49
+ });
50
+ };
51
+ const mockListFieldsWithInvalidPermanentId = () => {
52
+ mockedListFields.mockResolvedValueOnce({
53
+ items: [{ name: 'permanentid', type: platform_client_1.FieldTypes.DATE }],
54
+ totalPages: 1,
55
+ });
56
+ };
57
+ const mockListFieldsWithNoPermanentId = () => {
58
+ mockedListFields.mockResolvedValueOnce({
59
+ items: [],
60
+ totalPages: 1,
61
+ });
62
+ };
63
+ const doMockPlatformClient = () => {
64
+ mockedPlatformClient.mockImplementation(() => ({
65
+ field: { list: mockedListFields },
66
+ }));
67
+ };
68
+ beforeAll(() => {
69
+ doMockPlatformClient();
70
+ });
71
+ beforeEach(() => {
72
+ mockedListFields.mockReset();
73
+ analyser = new fieldAnalyser_1.FieldAnalyser(dummyPlatformClient());
74
+ });
75
+ describe('when fields from the batch already exist in the org', () => {
76
+ let report;
77
+ beforeEach(async () => {
78
+ mockListFieldsWithValidPermanentId();
79
+ report = (await analyser.add([docWithExistingFields])).report();
80
+ });
81
+ afterEach(() => { });
82
+ it('should not return fields to create', async () => {
83
+ expect(report.fields).toStrictEqual([]);
84
+ });
85
+ it('should not detect inconsistencies', async () => {
86
+ expect(report.inconsistencies.size).toStrictEqual(0);
87
+ });
88
+ });
89
+ describe('when batch contain new fields', () => {
90
+ beforeEach(() => {
91
+ mockListFieldsWithValidPermanentId();
92
+ });
93
+ it('should return fields to create', async () => {
94
+ const docBuilders = [docWithNewFields, docWithExistingFields];
95
+ const { fields } = (await analyser.add(docBuilders)).report();
96
+ expect(fields).toStrictEqual([
97
+ {
98
+ name: 'promo_price',
99
+ type: 'DOUBLE',
100
+ },
101
+ {
102
+ name: 'description',
103
+ type: 'STRING',
104
+ },
105
+ {
106
+ name: 'additional_info',
107
+ type: 'STRING',
108
+ },
109
+ {
110
+ name: 'price',
111
+ type: 'STRING',
112
+ },
113
+ {
114
+ name: 'available',
115
+ type: 'STRING',
116
+ },
117
+ ]);
118
+ });
119
+ });
120
+ describe('when the batch contains inconsistent metadata', () => {
121
+ let report;
122
+ const docBuilders = [
123
+ docWithNewFields,
124
+ docWithExistingFields,
125
+ buildDocument({ price: 6.5, available: 0 }),
126
+ buildDocument({ available: 1 }),
127
+ ];
128
+ beforeEach(async () => {
129
+ mockListFieldsWithValidPermanentId();
130
+ report = (await analyser.add(docBuilders)).report();
131
+ });
132
+ it('should detect 2 inconsistencies', () => {
133
+ expect(report.inconsistencies.size).toBe(2);
134
+ });
135
+ it('should detect type inconsistencies', () => {
136
+ const inconsistenciesSet = report.inconsistencies;
137
+ expect(inconsistenciesSet.get('price')).toStrictEqual(new Set(['DOUBLE', 'STRING']));
138
+ expect(inconsistenciesSet.get('available')).toStrictEqual(new Set(['DOUBLE', 'STRING']));
139
+ });
140
+ it('should still provide fields to create', () => {
141
+ expect(report.fields).toStrictEqual([
142
+ {
143
+ name: 'promo_price',
144
+ type: 'DOUBLE',
145
+ },
146
+ {
147
+ name: 'description',
148
+ type: 'STRING',
149
+ },
150
+ {
151
+ name: 'additional_info',
152
+ type: 'STRING',
153
+ },
154
+ {
155
+ name: 'price',
156
+ type: 'STRING',
157
+ },
158
+ {
159
+ name: 'available',
160
+ type: 'DOUBLE',
161
+ },
162
+ ]);
163
+ });
164
+ it('should associate to a field a type based on the type precedence list', () => {
165
+ // In this scenario, there were equal amount of occurences of numeric string values for the same metadata
166
+ expect(report.fields).toContainEqual({
167
+ name: 'price',
168
+ type: 'STRING',
169
+ });
170
+ });
171
+ it('should associate to a field a type with the most occurences', () => {
172
+ // In this scenario, there were 2 occurences of numeric value and 1 occurence of string value for the same metadata
173
+ expect(report.fields).toContainEqual({
174
+ name: 'available',
175
+ type: 'DOUBLE',
176
+ });
177
+ });
178
+ });
179
+ describe('when permanentId is not correctly configured', () => {
180
+ beforeEach(() => {
181
+ mockListFieldsWithInvalidPermanentId();
182
+ });
183
+ it('should throw an error', async () => {
184
+ await analyser.add([docWithExistingFields]);
185
+ expect(() => analyser.report()).toThrow(fieldErrors_1.InvalidPermanentId);
186
+ });
187
+ });
188
+ describe('when permanentId is missing from the organization', () => {
189
+ beforeEach(() => {
190
+ mockListFieldsWithNoPermanentId();
191
+ });
192
+ it('should include permanentid field in the analysis report', async () => {
193
+ await analyser.add([docWithExistingFields]);
194
+ const report = analyser.report();
195
+ expect(report.fields).toContainEqual({
196
+ name: 'permanentid',
197
+ type: 'STRING',
198
+ });
199
+ });
200
+ });
201
+ it.todo('should create the missing fields');
202
+ });
203
+ //# sourceMappingURL=fieldAnalyser.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fieldAnalyser.spec.js","sourceRoot":"","sources":["../../src/fieldAnalyser/fieldAnalyser.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FieldStore = void 0;
4
+ class FieldStore extends Map {
5
+ concat(fieldBuilder) {
6
+ fieldBuilder.forEach((type, name) => {
7
+ this.set(name, type);
8
+ });
9
+ }
10
+ marshal() {
11
+ const fieldModels = [];
12
+ this.forEach((fieldType, fieldName) => {
13
+ fieldModels.push({
14
+ name: fieldName,
15
+ type: fieldType,
16
+ });
17
+ });
18
+ return fieldModels;
19
+ }
20
+ }
21
+ exports.FieldStore = FieldStore;
22
+ //# sourceMappingURL=fieldStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fieldStore.js","sourceRoot":"","sources":["../../src/fieldAnalyser/fieldStore.ts"],"names":[],"mappings":";;;AAEA,MAAa,UAAW,SAAQ,GAAuB;IAC9C,MAAM,CAAC,YAAwB;QACpC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;YAClC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,OAAO;QACZ,MAAM,WAAW,GAAiB,EAAE,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE;YACpC,WAAW,CAAC,IAAI,CAAC;gBACf,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;aAChB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,WAAW,CAAC;IACrB,CAAC;CACF;AAlBD,gCAkBC"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Inconsistencies = void 0;
4
+ class Inconsistencies extends Map {
5
+ constructor() {
6
+ super();
7
+ }
8
+ add(fieldName, types) {
9
+ const fieldTypeSet = this.get(fieldName) || [];
10
+ this.set(fieldName, new Set([...fieldTypeSet, ...types]));
11
+ return this;
12
+ }
13
+ }
14
+ exports.Inconsistencies = Inconsistencies;
15
+ //# sourceMappingURL=inconsistencies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inconsistencies.js","sourceRoot":"","sources":["../../src/fieldAnalyser/inconsistencies.ts"],"names":[],"mappings":";;;AAEA,MAAa,eAAgB,SAAQ,GAAG;IACtC;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAEM,GAAG,CAAC,SAAiB,EAAE,KAAmB;QAC/C,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAC/C,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,GAAG,CAAa,CAAC,GAAG,YAAY,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtE,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAVD,0CAUC"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const platform_client_1 = require("@coveord/platform-client");
4
+ const inconsistencies_1 = require("./inconsistencies");
5
+ describe('Inconsistencies', () => {
6
+ const insconsitencies = new inconsistencies_1.Inconsistencies();
7
+ beforeAll(() => {
8
+ insconsitencies
9
+ .add('foo', [platform_client_1.FieldTypes.STRING, platform_client_1.FieldTypes.VECTOR])
10
+ .add('foo', [platform_client_1.FieldTypes.STRING, platform_client_1.FieldTypes.LONG_64])
11
+ .add('bar', [platform_client_1.FieldTypes.LONG, platform_client_1.FieldTypes.STRING]);
12
+ });
13
+ it('should return the inconsistencies count', () => {
14
+ expect(insconsitencies.size).toEqual(2);
15
+ });
16
+ it('should retrieve a specific inconsistency', () => {
17
+ const set = new Set([
18
+ platform_client_1.FieldTypes.STRING,
19
+ platform_client_1.FieldTypes.VECTOR,
20
+ platform_client_1.FieldTypes.LONG_64,
21
+ ]);
22
+ expect(insconsitencies.get('foo')).toEqual(set);
23
+ });
24
+ it('should return undefined when retrieving invalid inconsistencies key', () => {
25
+ expect(insconsitencies.get('invalid')).toBeUndefined();
26
+ });
27
+ it('should loop through inconsistencies', () => {
28
+ const types = [];
29
+ const fields = [];
30
+ insconsitencies.forEach((typeSet, field) => {
31
+ types.push(typeSet);
32
+ fields.push(field);
33
+ });
34
+ expect(types).toStrictEqual([
35
+ new Set([platform_client_1.FieldTypes.STRING, platform_client_1.FieldTypes.VECTOR, platform_client_1.FieldTypes.LONG_64]),
36
+ new Set([platform_client_1.FieldTypes.STRING, platform_client_1.FieldTypes.LONG]),
37
+ ]);
38
+ expect(fields).toStrictEqual(['foo', 'bar']);
39
+ });
40
+ });
41
+ //# sourceMappingURL=inconsistencies.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inconsistencies.spec.js","sourceRoot":"","sources":["../../src/fieldAnalyser/inconsistencies.spec.ts"],"names":[],"mappings":";;AAAA,8DAAoD;AACpD,uDAAkD;AAElD,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,MAAM,eAAe,GAAG,IAAI,iCAAe,EAAE,CAAC;IAE9C,SAAS,CAAC,GAAG,EAAE;QACb,eAAe;aACZ,GAAG,CAAC,KAAK,EAAE,CAAC,4BAAU,CAAC,MAAM,EAAE,4BAAU,CAAC,MAAM,CAAC,CAAC;aAClD,GAAG,CAAC,KAAK,EAAE,CAAC,4BAAU,CAAC,MAAM,EAAE,4BAAU,CAAC,OAAO,CAAC,CAAC;aACnD,GAAG,CAAC,KAAK,EAAE,CAAC,4BAAU,CAAC,IAAI,EAAE,4BAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAa;YAC9B,4BAAU,CAAC,MAAM;YACjB,4BAAU,CAAC,MAAM;YACjB,4BAAU,CAAC,OAAO;SACnB,CAAC,CAAC;QACH,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,GAAG,EAAE;QAC7E,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,KAAK,GAAsB,EAAE,CAAC;QACpC,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,eAAe,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;YACzC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC;YAC1B,IAAI,GAAG,CAAC,CAAC,4BAAU,CAAC,MAAM,EAAE,4BAAU,CAAC,MAAM,EAAE,4BAAU,CAAC,OAAO,CAAC,CAAC;YACnE,IAAI,GAAG,CAAC,CAAC,4BAAU,CAAC,MAAM,EAAE,4BAAU,CAAC,IAAI,CAAC,CAAC;SAC9C,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createFields = exports.listAllFieldsFromOrg = void 0;
4
+ const listAllFieldsFromOrg = async (client, page = 0, fields = []) => {
5
+ const list = await client.field.list({
6
+ page,
7
+ perPage: 1000,
8
+ });
9
+ fields.push(...list.items);
10
+ if (page < list.totalPages - 1) {
11
+ return (0, exports.listAllFieldsFromOrg)(client, page + 1, fields);
12
+ }
13
+ return fields;
14
+ };
15
+ exports.listAllFieldsFromOrg = listAllFieldsFromOrg;
16
+ const createFields = async (client, fields, fieldBatch = 500) => {
17
+ for (let i = 0; i < fields.length; i += fieldBatch) {
18
+ const batch = fields.slice(i, fieldBatch + i);
19
+ await client.field.createFields(batch);
20
+ }
21
+ };
22
+ exports.createFields = createFields;
23
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/fieldAnalyser/utils.ts"],"names":[],"mappings":";;;AAEO,MAAM,oBAAoB,GAAG,KAAK,EACvC,MAAsB,EACtB,IAAI,GAAG,CAAC,EACR,SAAuB,EAAE,EACF,EAAE;IACzB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;QACnC,IAAI;QACJ,OAAO,EAAE,IAAI;KACd,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IAE3B,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE;QAC9B,OAAO,IAAA,4BAAoB,EAAC,MAAM,EAAE,IAAI,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;KACvD;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAjBW,QAAA,oBAAoB,wBAiB/B;AAEK,MAAM,YAAY,GAAG,KAAK,EAC/B,MAAsB,EACtB,MAAoB,EACpB,UAAU,GAAG,GAAG,EAChB,EAAE;IACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,UAAU,EAAE;QAClD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;QAC9C,MAAM,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;KACxC;AACH,CAAC,CAAC;AATW,QAAA,YAAY,gBASvB"}
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ jest.mock('@coveord/platform-client');
4
+ const platform_client_1 = require("@coveord/platform-client");
5
+ const utils_1 = require("./utils");
6
+ const mockedPlatformClient = jest.mocked(platform_client_1.default);
7
+ const mockedCreateField = jest.fn();
8
+ const mockedListFields = jest.fn();
9
+ const dummyPlatformClient = () => {
10
+ return new platform_client_1.default({ accessToken: 'xxx' });
11
+ };
12
+ const doMockPlatformClient = () => {
13
+ mockedPlatformClient.mockImplementation(() => ({
14
+ field: {
15
+ createFields: mockedCreateField,
16
+ list: mockedListFields,
17
+ },
18
+ }));
19
+ };
20
+ describe('fieldUtils', () => {
21
+ let client;
22
+ beforeAll(() => {
23
+ doMockPlatformClient();
24
+ });
25
+ beforeEach(async () => {
26
+ client = dummyPlatformClient();
27
+ });
28
+ describe('when listing fields', () => {
29
+ beforeEach(async () => {
30
+ mockedListFields
31
+ .mockReturnValueOnce({
32
+ items: [{ name: 'brand' }, { name: 'category' }],
33
+ totalPages: 2,
34
+ })
35
+ .mockReturnValueOnce({
36
+ items: [{ name: 'type' }],
37
+ totalPages: 2,
38
+ });
39
+ await (0, utils_1.listAllFieldsFromOrg)(client);
40
+ });
41
+ it('should list all fields from org', async () => {
42
+ expect(mockedListFields).toHaveBeenCalledTimes(2);
43
+ });
44
+ });
45
+ describe('when creating fields', () => {
46
+ const fields = [
47
+ { name: 'field1' },
48
+ { name: 'field2' },
49
+ { name: 'field3' },
50
+ { name: 'field4' },
51
+ { name: 'field5' },
52
+ { name: 'field6' },
53
+ ];
54
+ it.each([
55
+ {
56
+ batchLimit: 4,
57
+ batches: [
58
+ ['field1', 'field2', 'field3', 'field4'],
59
+ ['field5', 'field6'],
60
+ ],
61
+ },
62
+ {
63
+ batchLimit: 6,
64
+ batches: [['field1', 'field2', 'field3', 'field4', 'field5', 'field6']],
65
+ },
66
+ {
67
+ batchLimit: 999,
68
+ batches: [['field1', 'field2', 'field3', 'field4', 'field5', 'field6']],
69
+ },
70
+ ])('should split fields into smaller batches', async ({ batchLimit, batches }) => {
71
+ await (0, utils_1.createFields)(client, fields, batchLimit);
72
+ expect(mockedCreateField).toHaveBeenCalledTimes(batches.length);
73
+ batches.forEach((batch, index) => {
74
+ const field = batch.map((f) => ({
75
+ name: f,
76
+ }));
77
+ expect(mockedCreateField).toHaveBeenNthCalledWith(index + 1, field);
78
+ });
79
+ });
80
+ });
81
+ });
82
+ //# sourceMappingURL=utils.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.spec.js","sourceRoot":"","sources":["../../src/fieldAnalyser/utils.spec.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,14 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Region = exports.PlatformEnvironment = exports.DocumentBuilder = exports.SourceVisibility = exports.Source = void 0;
3
+ exports.Region = exports.PlatformEnvironment = exports.DocumentBuilder = exports.FieldAnalyser = exports.SourceVisibility = exports.Source = void 0;
4
4
  const tslib_1 = require("tslib");
5
- (0, tslib_1.__exportStar)(require("./document"), exports);
5
+ tslib_1.__exportStar(require("./document"), exports);
6
6
  var source_1 = require("./source");
7
7
  Object.defineProperty(exports, "Source", { enumerable: true, get: function () { return source_1.Source; } });
8
8
  Object.defineProperty(exports, "SourceVisibility", { enumerable: true, get: function () { return source_1.SourceVisibility; } });
9
+ var fieldAnalyser_1 = require("./fieldAnalyser/fieldAnalyser");
10
+ Object.defineProperty(exports, "FieldAnalyser", { enumerable: true, get: function () { return fieldAnalyser_1.FieldAnalyser; } });
9
11
  var documentBuilder_1 = require("./documentBuilder");
10
12
  Object.defineProperty(exports, "DocumentBuilder", { enumerable: true, get: function () { return documentBuilder_1.DocumentBuilder; } });
11
- (0, tslib_1.__exportStar)(require("./securityIdentityBuilder"), exports);
13
+ tslib_1.__exportStar(require("./securityIdentityBuilder"), exports);
12
14
  var environment_1 = require("./environment");
13
15
  Object.defineProperty(exports, "PlatformEnvironment", { enumerable: true, get: function () { return environment_1.PlatformEnvironment; } });
14
16
  Object.defineProperty(exports, "Region", { enumerable: true, get: function () { return environment_1.Region; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAAA,0DAA2B;AAC3B,mCAOkB;AANhB,gGAAA,MAAM,OAAA;AACN,0GAAA,gBAAgB,OAAA;AAMlB,qDAAkD;AAA1C,kHAAA,eAAe,OAAA;AACvB,yEAA0C;AAC1C,6CAA0D;AAAlD,kHAAA,mBAAmB,OAAA;AAAE,qGAAA,MAAM,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAAA,qDAA2B;AAC3B,mCAOkB;AANhB,gGAAA,MAAM,OAAA;AACN,0GAAA,gBAAgB,OAAA;AAMlB,+DAA4D;AAApD,8GAAA,aAAa,OAAA;AACrB,qDAAkD;AAA1C,kHAAA,eAAe,OAAA;AACvB,oEAA0C;AAC1C,6CAA0D;AAAlD,kHAAA,mBAAmB,OAAA;AAAE,qGAAA,MAAM,OAAA"}
package/dist/source.js CHANGED
@@ -14,6 +14,9 @@ const parseFile_1 = require("./validation/parseFile");
14
14
  const path_1 = require("path");
15
15
  const file_1 = require("./help/file");
16
16
  const environment_1 = require("./environment");
17
+ const fieldAnalyser_1 = require("./fieldAnalyser/fieldAnalyser");
18
+ const fieldErrors_1 = require("./errors/fieldErrors");
19
+ const utils_1 = require("./fieldAnalyser/utils");
17
20
  /**
18
21
  * Manage a push source.
19
22
  *
@@ -96,9 +99,15 @@ class Source {
96
99
  * Adds or updates an individual item in a push source. See [Adding a Single Item in a Push Source](https://docs.coveo.com/en/133).
97
100
  * @param sourceID
98
101
  * @param docBuilder
102
+ * @param {BatchUpdateDocumentsOptions} [{createFields = true}={}]
99
103
  * @returns
100
104
  */
101
- addOrUpdateDocument(sourceID, docBuilder) {
105
+ async addOrUpdateDocument(sourceID, docBuilder, { createFields: createFields = true } = {}) {
106
+ if (createFields) {
107
+ const analyser = new fieldAnalyser_1.FieldAnalyser(this.platformClient);
108
+ await analyser.add([docBuilder]);
109
+ await this.createFields(analyser);
110
+ }
102
111
  const doc = docBuilder.build();
103
112
  const addURL = new url_1.URL(this.getBaseAPIURLForDocuments(sourceID));
104
113
  addURL.searchParams.append('documentId', doc.uri);
@@ -110,7 +119,12 @@ class Source {
110
119
  * @param batch
111
120
  * @returns
112
121
  */
113
- async batchUpdateDocuments(sourceID, batch) {
122
+ async batchUpdateDocuments(sourceID, batch, { createFields: createFields = true } = {}) {
123
+ if (createFields) {
124
+ const analyser = new fieldAnalyser_1.FieldAnalyser(this.platformClient);
125
+ await analyser.add(batch.addOrUpdate);
126
+ await this.createFields(analyser);
127
+ }
114
128
  const fileContainer = await this.createFileContainer();
115
129
  await this.uploadContentToFileContainer(fileContainer, batch);
116
130
  return this.pushFileContainerContent(sourceID, fileContainer);
@@ -121,12 +135,33 @@ class Source {
121
135
  * @param {string} sourceID The unique identifier of the target Push source
122
136
  * @param {string[]} filesOrDirectories A list of JSON files or directories (containing JSON files) from which to extract documents.
123
137
  * @param {UploadBatchCallback} callback Callback executed when a batch of documents is either successfully uploaded or when an error occurs during the upload
124
- * @param {BatchUpdateDocumentsFromFiles} [{maxConcurrent = 10}={}]
138
+ * @param {BatchUpdateDocumentsFromFiles} options
125
139
  */
126
- async batchUpdateDocumentsFromFiles(sourceID, filesOrDirectories, callback, { maxConcurrent = 10 } = {}) {
140
+ async batchUpdateDocumentsFromFiles(sourceID, filesOrDirectories, callback, options) {
141
+ const defaultOptions = {
142
+ maxConcurrent: 10,
143
+ createFields: true,
144
+ };
145
+ const { maxConcurrent, createFields: createFields } = Object.assign(Object.assign({}, defaultOptions), options);
127
146
  const files = (0, file_1.getAllJsonFilesFromEntries)(filesOrDirectories);
147
+ if (createFields) {
148
+ const analyser = new fieldAnalyser_1.FieldAnalyser(this.platformClient);
149
+ for (const filePath of files.values()) {
150
+ const docBuilders = (0, parseFile_1.parseAndGetDocumentBuilderFromJSONDocument)(filePath);
151
+ await analyser.add(docBuilders);
152
+ }
153
+ await this.createFields(analyser);
154
+ }
128
155
  const fileNames = files.map((path) => (0, path_1.basename)(path));
129
156
  const { chunksToUpload, close } = this.splitByChunkAndUpload(sourceID, fileNames, callback);
157
+ if (createFields) {
158
+ const analyser = new fieldAnalyser_1.FieldAnalyser(this.platformClient);
159
+ for (const filePath of files.values()) {
160
+ const docBuilders = (0, parseFile_1.parseAndGetDocumentBuilderFromJSONDocument)(filePath);
161
+ await analyser.add(docBuilders);
162
+ }
163
+ await this.createFields(analyser);
164
+ }
130
165
  // parallelize uploads within the same file
131
166
  const docBuilderGenerator = function* (docBuilders) {
132
167
  for (const upload of chunksToUpload(docBuilders)) {
@@ -190,6 +225,13 @@ class Source {
190
225
  headers: this.documentsRequestHeaders,
191
226
  };
192
227
  }
228
+ async createFields(analyser) {
229
+ const { fields, inconsistencies } = analyser.report();
230
+ if (inconsistencies.size > 0) {
231
+ throw new fieldErrors_1.FieldTypeInconsistencyError(inconsistencies);
232
+ }
233
+ await (0, utils_1.createFields)(this.platformClient, fields);
234
+ }
193
235
  getFileContainerAxiosConfig(fileContainer) {
194
236
  return {
195
237
  headers: fileContainer.requiredHeaders,
@@ -250,7 +292,7 @@ class Source {
250
292
  const res = await this.batchUpdateDocuments(sourceID, {
251
293
  addOrUpdate: batch,
252
294
  delete: [],
253
- });
295
+ }, { createFields: false });
254
296
  callback(null, {
255
297
  files: fileNames,
256
298
  batch,
@@ -1 +1 @@
1
- {"version":3,"file":"source.js","sourceRoot":"","sources":["../src/source.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"source.js","sourceRoot":"","sources":["../src/source.ts"],"names":[],"mappings":"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"}