@coveo/push-api-client 3.0.122 → 3.0.123

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 (129) hide show
  1. package/dist/APICore.js +47 -47
  2. package/dist/definitions/APICore.d.ts +18 -18
  3. package/dist/definitions/document.d.ts +124 -124
  4. package/dist/definitions/documentBuilder.d.ts +168 -168
  5. package/dist/definitions/documentBuilder.spec.d.ts +1 -1
  6. package/dist/definitions/environment.d.ts +16 -16
  7. package/dist/definitions/errors/baseError.d.ts +4 -4
  8. package/dist/definitions/errors/fieldErrors.d.ts +18 -18
  9. package/dist/definitions/errors/index.d.ts +3 -3
  10. package/dist/definitions/errors/privilegeError.d.ts +6 -6
  11. package/dist/definitions/errors/validatorErrors.d.ts +20 -20
  12. package/dist/definitions/fieldAnalyser/fieldAnalyser.d.ts +36 -36
  13. package/dist/definitions/fieldAnalyser/fieldAnalyser.spec.d.ts +1 -1
  14. package/dist/definitions/fieldAnalyser/fieldStore.d.ts +5 -5
  15. package/dist/definitions/fieldAnalyser/fieldUtils.d.ts +6 -6
  16. package/dist/definitions/fieldAnalyser/fieldsUtils.spec.d.ts +1 -1
  17. package/dist/definitions/fieldAnalyser/inconsistencies.d.ts +5 -5
  18. package/dist/definitions/fieldAnalyser/inconsistencies.spec.d.ts +1 -1
  19. package/dist/definitions/fieldAnalyser/typeUtils.d.ts +3 -3
  20. package/dist/definitions/fieldAnalyser/typeUtils.spec.d.ts +1 -1
  21. package/dist/definitions/help/file.d.ts +3 -3
  22. package/dist/definitions/help/file.spec.d.ts +1 -1
  23. package/dist/definitions/help/fileConsumer.d.ts +31 -31
  24. package/dist/definitions/help/fileConsumer.spec.d.ts +1 -1
  25. package/dist/definitions/help/fileContainer.d.ts +8 -8
  26. package/dist/definitions/help/fileContainer.spec.d.ts +1 -1
  27. package/dist/definitions/help/function.d.ts +1 -1
  28. package/dist/definitions/help/generator.d.ts +11 -11
  29. package/dist/definitions/help/generator.spec.d.ts +1 -1
  30. package/dist/definitions/help/urlUtils.d.ts +27 -27
  31. package/dist/definitions/help/urlUtils.spec.d.ts +1 -1
  32. package/dist/definitions/index.d.ts +14 -14
  33. package/dist/definitions/interfaces.d.ts +70 -70
  34. package/dist/definitions/localtest.d.ts +1 -1
  35. package/dist/definitions/permissionSetBuilder.d.ts +34 -34
  36. package/dist/definitions/permissionSetBuilder.spec.d.ts +1 -1
  37. package/dist/definitions/securityIdentityBuilder.d.ts +105 -105
  38. package/dist/definitions/securityIdentityBuilder.spec.d.ts +1 -1
  39. package/dist/definitions/source/batchUploadDocumentsFromFile.d.ts +11 -11
  40. package/dist/definitions/source/batchUploadDocumentsFromFile.spec.d.ts +1 -1
  41. package/dist/definitions/source/catalog.d.ts +70 -70
  42. package/dist/definitions/source/catalog.spec.d.ts +1 -1
  43. package/dist/definitions/source/documentUploader.d.ts +11 -11
  44. package/dist/definitions/source/documentUploader.spec.d.ts +1 -1
  45. package/dist/definitions/source/push.d.ts +87 -87
  46. package/dist/definitions/source/push.spec.d.ts +1 -1
  47. package/dist/definitions/source/securityIdenty.d.ts +43 -43
  48. package/dist/definitions/uploadStrategy/fileContainerStrategy.d.ts +23 -23
  49. package/dist/definitions/uploadStrategy/fileContainerStrategy.spec.d.ts +1 -1
  50. package/dist/definitions/uploadStrategy/index.d.ts +3 -3
  51. package/dist/definitions/uploadStrategy/strategy.d.ts +23 -23
  52. package/dist/definitions/uploadStrategy/streamChunkStrategy.d.ts +28 -28
  53. package/dist/definitions/uploadStrategy/streamChunkStrategy.spec.d.ts +1 -1
  54. package/dist/definitions/validation/caseInsensitiveDocument.d.ts +13 -13
  55. package/dist/definitions/validation/knownKey.d.ts +10 -10
  56. package/dist/definitions/validation/parseFile.d.ts +4 -4
  57. package/dist/definitions/validation/parseFile.spec.d.ts +1 -1
  58. package/dist/definitions/validation/parsePermissions.d.ts +5 -5
  59. package/dist/definitions/validation/parsePermissions.spec.d.ts +1 -1
  60. package/dist/definitions/validation/preconditions/apiKeyPrivilege.d.ts +3 -3
  61. package/dist/definitions/validation/preconditions/apiKeyPrivilege.spec.d.ts +1 -1
  62. package/dist/definitions/validation/preconditions/platformPrivilege.d.ts +7 -7
  63. package/dist/definitions/validation/requiredKeyValidator.d.ts +17 -17
  64. package/dist/definitions/validation/transformers/transformer.d.ts +31 -31
  65. package/dist/definitions/validation/transformers/transformer.spec.d.ts +1 -1
  66. package/dist/document.js +2 -2
  67. package/dist/documentBuilder.js +292 -292
  68. package/dist/documentBuilder.spec.js +191 -191
  69. package/dist/environment.js +41 -41
  70. package/dist/errors/baseError.js +10 -10
  71. package/dist/errors/fieldErrors.js +42 -42
  72. package/dist/errors/index.js +19 -19
  73. package/dist/errors/privilegeError.js +12 -12
  74. package/dist/errors/validatorErrors.js +40 -40
  75. package/dist/fieldAnalyser/fieldAnalyser.js +95 -95
  76. package/dist/fieldAnalyser/fieldAnalyser.spec.js +230 -230
  77. package/dist/fieldAnalyser/fieldStore.js +21 -21
  78. package/dist/fieldAnalyser/fieldUtils.js +41 -41
  79. package/dist/fieldAnalyser/fieldsUtils.spec.js +116 -116
  80. package/dist/fieldAnalyser/inconsistencies.js +14 -14
  81. package/dist/fieldAnalyser/inconsistencies.spec.js +40 -40
  82. package/dist/fieldAnalyser/typeUtils.js +61 -61
  83. package/dist/fieldAnalyser/typeUtils.spec.js +142 -142
  84. package/dist/help/file.js +37 -37
  85. package/dist/help/file.spec.js +67 -67
  86. package/dist/help/fileConsumer.js +150 -150
  87. package/dist/help/fileConsumer.spec.js +153 -153
  88. package/dist/help/fileContainer.js +48 -48
  89. package/dist/help/fileContainer.spec.js +65 -65
  90. package/dist/help/function.js +5 -5
  91. package/dist/help/generator.js +32 -32
  92. package/dist/help/generator.spec.js +82 -82
  93. package/dist/help/urlUtils.js +42 -42
  94. package/dist/help/urlUtils.spec.js +41 -41
  95. package/dist/index.js +38 -38
  96. package/dist/interfaces.js +2 -2
  97. package/dist/localtest.js +55 -55
  98. package/dist/permissionSetBuilder.js +58 -58
  99. package/dist/permissionSetBuilder.spec.js +68 -68
  100. package/dist/securityIdentityBuilder.js +128 -128
  101. package/dist/securityIdentityBuilder.spec.js +50 -50
  102. package/dist/source/batchUploadDocumentsFromFile.js +46 -46
  103. package/dist/source/batchUploadDocumentsFromFile.spec.js +145 -145
  104. package/dist/source/catalog.js +111 -111
  105. package/dist/source/catalog.spec.js +64 -64
  106. package/dist/source/documentUploader.js +45 -45
  107. package/dist/source/documentUploader.spec.js +118 -118
  108. package/dist/source/push.js +140 -140
  109. package/dist/source/push.spec.js +152 -152
  110. package/dist/source/securityIdenty.js +57 -57
  111. package/dist/uploadStrategy/fileContainerStrategy.js +32 -32
  112. package/dist/uploadStrategy/fileContainerStrategy.spec.js +86 -86
  113. package/dist/uploadStrategy/index.js +19 -19
  114. package/dist/uploadStrategy/strategy.js +2 -2
  115. package/dist/uploadStrategy/streamChunkStrategy.js +52 -52
  116. package/dist/uploadStrategy/streamChunkStrategy.spec.js +77 -77
  117. package/dist/validation/caseInsensitiveDocument.js +31 -31
  118. package/dist/validation/knownKey.js +37 -37
  119. package/dist/validation/parseFile.js +120 -120
  120. package/dist/validation/parseFile.spec.js +96 -96
  121. package/dist/validation/parsePermissions.js +118 -118
  122. package/dist/validation/parsePermissions.spec.js +86 -86
  123. package/dist/validation/preconditions/apiKeyPrivilege.js +20 -20
  124. package/dist/validation/preconditions/apiKeyPrivilege.spec.js +66 -66
  125. package/dist/validation/preconditions/platformPrivilege.js +32 -32
  126. package/dist/validation/requiredKeyValidator.js +61 -61
  127. package/dist/validation/transformers/transformer.js +51 -51
  128. package/dist/validation/transformers/transformer.spec.js +21 -21
  129. package/package.json +1 -1
@@ -1,117 +1,117 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- jest.mock('@coveo/platform-client');
4
- const platform_client_1 = require("@coveo/platform-client");
5
- const inconsistencies_1 = require("./inconsistencies");
6
- const errors_1 = require("../errors");
7
- const Utils = require("./fieldUtils");
8
- const { createFields, listAllFieldsFromOrg, createFieldsFromReport } = Utils;
9
- const mockedPlatformClient = jest.mocked(platform_client_1.default);
10
- const mockedCreateField = jest.fn();
11
- const mockedListFields = jest.fn();
12
- const mockEvaluate = jest.fn();
13
- const dummyPlatformClient = () => {
14
- return new platform_client_1.default({ accessToken: 'xxx' });
15
- };
16
- const doMockPlatformClient = () => {
17
- mockedPlatformClient.mockImplementation(() => ({
18
- privilegeEvaluator: { evaluate: mockEvaluate },
19
- field: {
20
- createFields: mockedCreateField,
21
- list: mockedListFields,
22
- },
23
- }));
24
- };
25
- describe('fieldUtils', () => {
26
- let client;
27
- beforeAll(() => {
28
- doMockPlatformClient();
29
- });
30
- beforeEach(async () => {
31
- client = dummyPlatformClient();
32
- mockEvaluate.mockResolvedValue({ approved: true });
33
- });
34
- describe('when listing fields', () => {
35
- beforeEach(async () => {
36
- mockedListFields
37
- .mockReturnValueOnce({
38
- items: [{ name: 'brand' }, { name: 'category' }],
39
- totalPages: 2,
40
- })
41
- .mockReturnValueOnce({
42
- items: [{ name: 'type' }],
43
- totalPages: 2,
44
- });
45
- await listAllFieldsFromOrg(client);
46
- });
47
- it('should list all fields from org', async () => {
48
- expect(mockedListFields).toHaveBeenCalledTimes(2);
49
- });
50
- });
51
- describe('when creating fields', () => {
52
- const fields = [
53
- { name: 'field1' },
54
- { name: 'field2' },
55
- { name: 'field3' },
56
- { name: 'field4' },
57
- { name: 'field5' },
58
- { name: 'field6' },
59
- ];
60
- it.each([
61
- {
62
- batchLimit: 4,
63
- batches: [
64
- ['field1', 'field2', 'field3', 'field4'],
65
- ['field5', 'field6'],
66
- ],
67
- },
68
- {
69
- batchLimit: 6,
70
- batches: [['field1', 'field2', 'field3', 'field4', 'field5', 'field6']],
71
- },
72
- {
73
- batchLimit: 999,
74
- batches: [['field1', 'field2', 'field3', 'field4', 'field5', 'field6']],
75
- },
76
- ])('should split fields into smaller batches', async ({ batchLimit, batches }) => {
77
- await createFields(client, fields, batchLimit);
78
- expect(mockedCreateField).toHaveBeenCalledTimes(batches.length);
79
- batches.forEach((batch, index) => {
80
- const field = batch.map((f) => ({
81
- name: f,
82
- }));
83
- expect(mockedCreateField).toHaveBeenNthCalledWith(index + 1, field);
84
- });
85
- });
86
- });
87
- describe('when creating fields from report', () => {
88
- const fields = [
89
- { name: 'field1' },
90
- { name: 'field2' },
91
- { name: 'field3' },
92
- ];
93
- it('should call #createFields', async () => {
94
- const spy = jest.spyOn(Utils, 'createFields');
95
- const inconsistencies = new inconsistencies_1.Inconsistencies();
96
- await createFieldsFromReport(dummyPlatformClient(), {
97
- fields,
98
- inconsistencies,
99
- });
100
- expect(spy).toHaveBeenCalledWith(client, [
101
- { name: 'field1' },
102
- { name: 'field2' },
103
- { name: 'field3' },
104
- ]);
105
- });
106
- it('should throw if inconsistencies', async () => {
107
- const inconsistencies = new inconsistencies_1.Inconsistencies();
108
- inconsistencies.add('foo', [platform_client_1.FieldTypes.STRING, platform_client_1.FieldTypes.DOUBLE]);
109
- const create = () => createFieldsFromReport(dummyPlatformClient(), {
110
- fields,
111
- inconsistencies,
112
- });
113
- await expect(() => create()).rejects.toThrow(errors_1.FieldTypeInconsistencyError);
114
- });
115
- });
116
- });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ jest.mock('@coveo/platform-client');
4
+ const platform_client_1 = require("@coveo/platform-client");
5
+ const inconsistencies_1 = require("./inconsistencies");
6
+ const errors_1 = require("../errors");
7
+ const Utils = require("./fieldUtils");
8
+ const { createFields, listAllFieldsFromOrg, createFieldsFromReport } = Utils;
9
+ const mockedPlatformClient = jest.mocked(platform_client_1.default);
10
+ const mockedCreateField = jest.fn();
11
+ const mockedListFields = jest.fn();
12
+ const mockEvaluate = jest.fn();
13
+ const dummyPlatformClient = () => {
14
+ return new platform_client_1.default({ accessToken: 'xxx' });
15
+ };
16
+ const doMockPlatformClient = () => {
17
+ mockedPlatformClient.mockImplementation(() => ({
18
+ privilegeEvaluator: { evaluate: mockEvaluate },
19
+ field: {
20
+ createFields: mockedCreateField,
21
+ list: mockedListFields,
22
+ },
23
+ }));
24
+ };
25
+ describe('fieldUtils', () => {
26
+ let client;
27
+ beforeAll(() => {
28
+ doMockPlatformClient();
29
+ });
30
+ beforeEach(async () => {
31
+ client = dummyPlatformClient();
32
+ mockEvaluate.mockResolvedValue({ approved: true });
33
+ });
34
+ describe('when listing fields', () => {
35
+ beforeEach(async () => {
36
+ mockedListFields
37
+ .mockReturnValueOnce({
38
+ items: [{ name: 'brand' }, { name: 'category' }],
39
+ totalPages: 2,
40
+ })
41
+ .mockReturnValueOnce({
42
+ items: [{ name: 'type' }],
43
+ totalPages: 2,
44
+ });
45
+ await listAllFieldsFromOrg(client);
46
+ });
47
+ it('should list all fields from org', async () => {
48
+ expect(mockedListFields).toHaveBeenCalledTimes(2);
49
+ });
50
+ });
51
+ describe('when creating fields', () => {
52
+ const fields = [
53
+ { name: 'field1' },
54
+ { name: 'field2' },
55
+ { name: 'field3' },
56
+ { name: 'field4' },
57
+ { name: 'field5' },
58
+ { name: 'field6' },
59
+ ];
60
+ it.each([
61
+ {
62
+ batchLimit: 4,
63
+ batches: [
64
+ ['field1', 'field2', 'field3', 'field4'],
65
+ ['field5', 'field6'],
66
+ ],
67
+ },
68
+ {
69
+ batchLimit: 6,
70
+ batches: [['field1', 'field2', 'field3', 'field4', 'field5', 'field6']],
71
+ },
72
+ {
73
+ batchLimit: 999,
74
+ batches: [['field1', 'field2', 'field3', 'field4', 'field5', 'field6']],
75
+ },
76
+ ])('should split fields into smaller batches', async ({ batchLimit, batches }) => {
77
+ await createFields(client, fields, batchLimit);
78
+ expect(mockedCreateField).toHaveBeenCalledTimes(batches.length);
79
+ batches.forEach((batch, index) => {
80
+ const field = batch.map((f) => ({
81
+ name: f,
82
+ }));
83
+ expect(mockedCreateField).toHaveBeenNthCalledWith(index + 1, field);
84
+ });
85
+ });
86
+ });
87
+ describe('when creating fields from report', () => {
88
+ const fields = [
89
+ { name: 'field1' },
90
+ { name: 'field2' },
91
+ { name: 'field3' },
92
+ ];
93
+ it('should call #createFields', async () => {
94
+ const spy = jest.spyOn(Utils, 'createFields');
95
+ const inconsistencies = new inconsistencies_1.Inconsistencies();
96
+ await createFieldsFromReport(dummyPlatformClient(), {
97
+ fields,
98
+ inconsistencies,
99
+ });
100
+ expect(spy).toHaveBeenCalledWith(client, [
101
+ { name: 'field1' },
102
+ { name: 'field2' },
103
+ { name: 'field3' },
104
+ ]);
105
+ });
106
+ it('should throw if inconsistencies', async () => {
107
+ const inconsistencies = new inconsistencies_1.Inconsistencies();
108
+ inconsistencies.add('foo', [platform_client_1.FieldTypes.STRING, platform_client_1.FieldTypes.DOUBLE]);
109
+ const create = () => createFieldsFromReport(dummyPlatformClient(), {
110
+ fields,
111
+ inconsistencies,
112
+ });
113
+ await expect(() => create()).rejects.toThrow(errors_1.FieldTypeInconsistencyError);
114
+ });
115
+ });
116
+ });
117
117
  //# sourceMappingURL=fieldsUtils.spec.js.map
@@ -1,15 +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;
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
15
  //# sourceMappingURL=inconsistencies.js.map
@@ -1,41 +1,41 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const platform_client_1 = require("@coveo/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
- });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const platform_client_1 = require("@coveo/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
41
  //# sourceMappingURL=inconsistencies.spec.js.map
@@ -1,62 +1,62 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getGuessedTypeFromValue = exports.getMostEnglobingType = void 0;
4
- const platform_client_1 = require("@coveo/platform-client");
5
- const acceptedNumericalTypeEvolutions = [
6
- platform_client_1.FieldTypes.LONG,
7
- platform_client_1.FieldTypes.LONG_64,
8
- platform_client_1.FieldTypes.DOUBLE,
9
- ];
10
- const acceptedAllTypeEvolutions = [
11
- ...acceptedNumericalTypeEvolutions,
12
- platform_client_1.FieldTypes.STRING,
13
- ];
14
- function getMostEnglobingType(possibleType1, possibleType2, acceptedTypeEvolution = acceptedNumericalTypeEvolutions) {
15
- if (possibleType1 === possibleType2) {
16
- return possibleType1;
17
- }
18
- if (acceptedTypeEvolution.includes(possibleType1) &&
19
- acceptedTypeEvolution.includes(possibleType2)) {
20
- const idx1 = acceptedTypeEvolution.indexOf(possibleType1);
21
- const idx2 = acceptedTypeEvolution.indexOf(possibleType2);
22
- return acceptedTypeEvolution[Math.max(idx1, idx2)];
23
- }
24
- return null;
25
- }
26
- exports.getMostEnglobingType = getMostEnglobingType;
27
- function getGuessedTypeFromValue(obj) {
28
- if (typeof obj === 'object') {
29
- return getGuessedTypeFromObject(obj);
30
- }
31
- return getGuessedTypeFromPrimitive(obj);
32
- }
33
- exports.getGuessedTypeFromValue = getGuessedTypeFromValue;
34
- function getGuessedTypeFromPrimitive(obj) {
35
- switch (typeof obj) {
36
- case 'number':
37
- return getSpecificNumericType(obj);
38
- case 'string':
39
- return platform_client_1.FieldTypes.STRING;
40
- default:
41
- return platform_client_1.FieldTypes.STRING;
42
- }
43
- }
44
- function getGuessedTypeFromObject(obj) {
45
- const initialType = acceptedAllTypeEvolutions[0];
46
- const fallbackType = platform_client_1.FieldTypes.STRING;
47
- if (obj === null) {
48
- return fallbackType;
49
- }
50
- const array = Array.isArray(obj) ? obj : Object.values(obj);
51
- return (array.reduce((previous, current) => getMostEnglobingType(previous, getGuessedTypeFromPrimitive(current), acceptedAllTypeEvolutions), initialType) || fallbackType);
52
- }
53
- function getSpecificNumericType(number) {
54
- const is32BitInteger = (x) => (x | 0) === x;
55
- if (Number.isInteger(number)) {
56
- return is32BitInteger(number) ? platform_client_1.FieldTypes.LONG : platform_client_1.FieldTypes.LONG_64;
57
- }
58
- else {
59
- return platform_client_1.FieldTypes.DOUBLE;
60
- }
61
- }
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getGuessedTypeFromValue = exports.getMostEnglobingType = void 0;
4
+ const platform_client_1 = require("@coveo/platform-client");
5
+ const acceptedNumericalTypeEvolutions = [
6
+ platform_client_1.FieldTypes.LONG,
7
+ platform_client_1.FieldTypes.LONG_64,
8
+ platform_client_1.FieldTypes.DOUBLE,
9
+ ];
10
+ const acceptedAllTypeEvolutions = [
11
+ ...acceptedNumericalTypeEvolutions,
12
+ platform_client_1.FieldTypes.STRING,
13
+ ];
14
+ function getMostEnglobingType(possibleType1, possibleType2, acceptedTypeEvolution = acceptedNumericalTypeEvolutions) {
15
+ if (possibleType1 === possibleType2) {
16
+ return possibleType1;
17
+ }
18
+ if (acceptedTypeEvolution.includes(possibleType1) &&
19
+ acceptedTypeEvolution.includes(possibleType2)) {
20
+ const idx1 = acceptedTypeEvolution.indexOf(possibleType1);
21
+ const idx2 = acceptedTypeEvolution.indexOf(possibleType2);
22
+ return acceptedTypeEvolution[Math.max(idx1, idx2)];
23
+ }
24
+ return null;
25
+ }
26
+ exports.getMostEnglobingType = getMostEnglobingType;
27
+ function getGuessedTypeFromValue(obj) {
28
+ if (typeof obj === 'object') {
29
+ return getGuessedTypeFromObject(obj);
30
+ }
31
+ return getGuessedTypeFromPrimitive(obj);
32
+ }
33
+ exports.getGuessedTypeFromValue = getGuessedTypeFromValue;
34
+ function getGuessedTypeFromPrimitive(obj) {
35
+ switch (typeof obj) {
36
+ case 'number':
37
+ return getSpecificNumericType(obj);
38
+ case 'string':
39
+ return platform_client_1.FieldTypes.STRING;
40
+ default:
41
+ return platform_client_1.FieldTypes.STRING;
42
+ }
43
+ }
44
+ function getGuessedTypeFromObject(obj) {
45
+ const initialType = acceptedAllTypeEvolutions[0];
46
+ const fallbackType = platform_client_1.FieldTypes.STRING;
47
+ if (obj === null) {
48
+ return fallbackType;
49
+ }
50
+ const array = Array.isArray(obj) ? obj : Object.values(obj);
51
+ return (array.reduce((previous, current) => getMostEnglobingType(previous, getGuessedTypeFromPrimitive(current), acceptedAllTypeEvolutions), initialType) || fallbackType);
52
+ }
53
+ function getSpecificNumericType(number) {
54
+ const is32BitInteger = (x) => (x | 0) === x;
55
+ if (Number.isInteger(number)) {
56
+ return is32BitInteger(number) ? platform_client_1.FieldTypes.LONG : platform_client_1.FieldTypes.LONG_64;
57
+ }
58
+ else {
59
+ return platform_client_1.FieldTypes.DOUBLE;
60
+ }
61
+ }
62
62
  //# sourceMappingURL=typeUtils.js.map