@coveo/push-api-client 3.0.117 → 3.0.122

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 (130) hide show
  1. package/dist/APICore.js +47 -47
  2. package/dist/APICore.js.map +1 -1
  3. package/dist/definitions/APICore.d.ts +18 -18
  4. package/dist/definitions/document.d.ts +124 -124
  5. package/dist/definitions/documentBuilder.d.ts +168 -168
  6. package/dist/definitions/documentBuilder.spec.d.ts +1 -1
  7. package/dist/definitions/environment.d.ts +16 -16
  8. package/dist/definitions/errors/baseError.d.ts +4 -4
  9. package/dist/definitions/errors/fieldErrors.d.ts +18 -18
  10. package/dist/definitions/errors/index.d.ts +3 -3
  11. package/dist/definitions/errors/privilegeError.d.ts +6 -6
  12. package/dist/definitions/errors/validatorErrors.d.ts +20 -20
  13. package/dist/definitions/fieldAnalyser/fieldAnalyser.d.ts +36 -36
  14. package/dist/definitions/fieldAnalyser/fieldAnalyser.spec.d.ts +1 -1
  15. package/dist/definitions/fieldAnalyser/fieldStore.d.ts +5 -5
  16. package/dist/definitions/fieldAnalyser/fieldUtils.d.ts +6 -6
  17. package/dist/definitions/fieldAnalyser/fieldsUtils.spec.d.ts +1 -1
  18. package/dist/definitions/fieldAnalyser/inconsistencies.d.ts +5 -5
  19. package/dist/definitions/fieldAnalyser/inconsistencies.spec.d.ts +1 -1
  20. package/dist/definitions/fieldAnalyser/typeUtils.d.ts +3 -3
  21. package/dist/definitions/fieldAnalyser/typeUtils.spec.d.ts +1 -1
  22. package/dist/definitions/help/file.d.ts +3 -3
  23. package/dist/definitions/help/file.spec.d.ts +1 -1
  24. package/dist/definitions/help/fileConsumer.d.ts +31 -31
  25. package/dist/definitions/help/fileConsumer.spec.d.ts +1 -1
  26. package/dist/definitions/help/fileContainer.d.ts +8 -8
  27. package/dist/definitions/help/fileContainer.spec.d.ts +1 -1
  28. package/dist/definitions/help/function.d.ts +1 -1
  29. package/dist/definitions/help/generator.d.ts +11 -11
  30. package/dist/definitions/help/generator.spec.d.ts +1 -1
  31. package/dist/definitions/help/urlUtils.d.ts +27 -27
  32. package/dist/definitions/help/urlUtils.spec.d.ts +1 -1
  33. package/dist/definitions/index.d.ts +14 -14
  34. package/dist/definitions/interfaces.d.ts +70 -70
  35. package/dist/definitions/localtest.d.ts +1 -1
  36. package/dist/definitions/permissionSetBuilder.d.ts +34 -34
  37. package/dist/definitions/permissionSetBuilder.spec.d.ts +1 -1
  38. package/dist/definitions/securityIdentityBuilder.d.ts +105 -105
  39. package/dist/definitions/securityIdentityBuilder.spec.d.ts +1 -1
  40. package/dist/definitions/source/batchUploadDocumentsFromFile.d.ts +11 -11
  41. package/dist/definitions/source/batchUploadDocumentsFromFile.spec.d.ts +1 -1
  42. package/dist/definitions/source/catalog.d.ts +70 -70
  43. package/dist/definitions/source/catalog.spec.d.ts +1 -1
  44. package/dist/definitions/source/documentUploader.d.ts +11 -11
  45. package/dist/definitions/source/documentUploader.spec.d.ts +1 -1
  46. package/dist/definitions/source/push.d.ts +87 -87
  47. package/dist/definitions/source/push.spec.d.ts +1 -1
  48. package/dist/definitions/source/securityIdenty.d.ts +43 -43
  49. package/dist/definitions/uploadStrategy/fileContainerStrategy.d.ts +23 -23
  50. package/dist/definitions/uploadStrategy/fileContainerStrategy.spec.d.ts +1 -1
  51. package/dist/definitions/uploadStrategy/index.d.ts +3 -3
  52. package/dist/definitions/uploadStrategy/strategy.d.ts +23 -23
  53. package/dist/definitions/uploadStrategy/streamChunkStrategy.d.ts +28 -28
  54. package/dist/definitions/uploadStrategy/streamChunkStrategy.spec.d.ts +1 -1
  55. package/dist/definitions/validation/caseInsensitiveDocument.d.ts +13 -13
  56. package/dist/definitions/validation/knownKey.d.ts +10 -10
  57. package/dist/definitions/validation/parseFile.d.ts +4 -4
  58. package/dist/definitions/validation/parseFile.spec.d.ts +1 -1
  59. package/dist/definitions/validation/parsePermissions.d.ts +5 -5
  60. package/dist/definitions/validation/parsePermissions.spec.d.ts +1 -1
  61. package/dist/definitions/validation/preconditions/apiKeyPrivilege.d.ts +3 -3
  62. package/dist/definitions/validation/preconditions/apiKeyPrivilege.spec.d.ts +1 -1
  63. package/dist/definitions/validation/preconditions/platformPrivilege.d.ts +7 -7
  64. package/dist/definitions/validation/requiredKeyValidator.d.ts +17 -17
  65. package/dist/definitions/validation/transformers/transformer.d.ts +31 -31
  66. package/dist/definitions/validation/transformers/transformer.spec.d.ts +1 -1
  67. package/dist/document.js +2 -2
  68. package/dist/documentBuilder.js +292 -292
  69. package/dist/documentBuilder.spec.js +191 -191
  70. package/dist/environment.js +41 -41
  71. package/dist/errors/baseError.js +10 -10
  72. package/dist/errors/fieldErrors.js +42 -42
  73. package/dist/errors/index.js +19 -19
  74. package/dist/errors/privilegeError.js +12 -12
  75. package/dist/errors/validatorErrors.js +40 -40
  76. package/dist/fieldAnalyser/fieldAnalyser.js +95 -95
  77. package/dist/fieldAnalyser/fieldAnalyser.spec.js +230 -230
  78. package/dist/fieldAnalyser/fieldStore.js +21 -21
  79. package/dist/fieldAnalyser/fieldUtils.js +41 -41
  80. package/dist/fieldAnalyser/fieldsUtils.spec.js +116 -116
  81. package/dist/fieldAnalyser/inconsistencies.js +14 -14
  82. package/dist/fieldAnalyser/inconsistencies.spec.js +40 -40
  83. package/dist/fieldAnalyser/typeUtils.js +61 -61
  84. package/dist/fieldAnalyser/typeUtils.spec.js +142 -142
  85. package/dist/help/file.js +37 -37
  86. package/dist/help/file.spec.js +67 -67
  87. package/dist/help/fileConsumer.js +150 -150
  88. package/dist/help/fileConsumer.spec.js +153 -153
  89. package/dist/help/fileContainer.js +48 -48
  90. package/dist/help/fileContainer.spec.js +65 -65
  91. package/dist/help/function.js +5 -5
  92. package/dist/help/generator.js +32 -32
  93. package/dist/help/generator.spec.js +82 -82
  94. package/dist/help/urlUtils.js +42 -42
  95. package/dist/help/urlUtils.spec.js +41 -41
  96. package/dist/index.js +38 -38
  97. package/dist/interfaces.js +2 -2
  98. package/dist/localtest.js +55 -55
  99. package/dist/permissionSetBuilder.js +58 -58
  100. package/dist/permissionSetBuilder.spec.js +68 -68
  101. package/dist/securityIdentityBuilder.js +128 -128
  102. package/dist/securityIdentityBuilder.spec.js +50 -50
  103. package/dist/source/batchUploadDocumentsFromFile.js +46 -46
  104. package/dist/source/batchUploadDocumentsFromFile.spec.js +145 -145
  105. package/dist/source/catalog.js +111 -111
  106. package/dist/source/catalog.spec.js +64 -64
  107. package/dist/source/documentUploader.js +45 -45
  108. package/dist/source/documentUploader.spec.js +118 -118
  109. package/dist/source/push.js +140 -140
  110. package/dist/source/push.spec.js +152 -152
  111. package/dist/source/securityIdenty.js +57 -57
  112. package/dist/uploadStrategy/fileContainerStrategy.js +32 -32
  113. package/dist/uploadStrategy/fileContainerStrategy.spec.js +86 -86
  114. package/dist/uploadStrategy/index.js +19 -19
  115. package/dist/uploadStrategy/strategy.js +2 -2
  116. package/dist/uploadStrategy/streamChunkStrategy.js +52 -52
  117. package/dist/uploadStrategy/streamChunkStrategy.spec.js +77 -77
  118. package/dist/validation/caseInsensitiveDocument.js +31 -31
  119. package/dist/validation/knownKey.js +37 -37
  120. package/dist/validation/parseFile.js +120 -120
  121. package/dist/validation/parseFile.spec.js +96 -96
  122. package/dist/validation/parsePermissions.js +118 -118
  123. package/dist/validation/parsePermissions.spec.js +86 -86
  124. package/dist/validation/preconditions/apiKeyPrivilege.js +20 -20
  125. package/dist/validation/preconditions/apiKeyPrivilege.spec.js +66 -66
  126. package/dist/validation/preconditions/platformPrivilege.js +32 -32
  127. package/dist/validation/requiredKeyValidator.js +61 -61
  128. package/dist/validation/transformers/transformer.js +51 -51
  129. package/dist/validation/transformers/transformer.spec.js +21 -21
  130. package/package.json +11 -11
@@ -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