@revenexx/sdk 0.0.2

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 (182) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +148 -0
  3. package/dist/cjs/package.json +3 -0
  4. package/dist/cjs/sdk.js +16340 -0
  5. package/dist/cjs/sdk.js.map +1 -0
  6. package/dist/esm/package.json +3 -0
  7. package/dist/esm/sdk.js +16250 -0
  8. package/dist/esm/sdk.js.map +1 -0
  9. package/dist/iife/sdk.js +20101 -0
  10. package/package.json +56 -0
  11. package/src/channel.ts +158 -0
  12. package/src/client.ts +950 -0
  13. package/src/enums/adapter.ts +4 -0
  14. package/src/enums/attribute-boolean-status.ts +7 -0
  15. package/src/enums/attribute-datetime-status.ts +7 -0
  16. package/src/enums/attribute-email-status.ts +7 -0
  17. package/src/enums/attribute-enum-status.ts +7 -0
  18. package/src/enums/attribute-float-status.ts +7 -0
  19. package/src/enums/attribute-integer-status.ts +7 -0
  20. package/src/enums/attribute-ip-status.ts +7 -0
  21. package/src/enums/attribute-line-status.ts +7 -0
  22. package/src/enums/attribute-longtext-status.ts +7 -0
  23. package/src/enums/attribute-mediumtext-status.ts +7 -0
  24. package/src/enums/attribute-point-status.ts +7 -0
  25. package/src/enums/attribute-polygon-status.ts +7 -0
  26. package/src/enums/attribute-relationship-status.ts +7 -0
  27. package/src/enums/attribute-string-status.ts +7 -0
  28. package/src/enums/attribute-text-status.ts +7 -0
  29. package/src/enums/attribute-url-status.ts +7 -0
  30. package/src/enums/attribute-varchar-status.ts +7 -0
  31. package/src/enums/build-runtime.ts +73 -0
  32. package/src/enums/code.ts +16 -0
  33. package/src/enums/collection.ts +4 -0
  34. package/src/enums/column-boolean-status.ts +7 -0
  35. package/src/enums/column-datetime-status.ts +7 -0
  36. package/src/enums/column-email-status.ts +7 -0
  37. package/src/enums/column-enum-status.ts +7 -0
  38. package/src/enums/column-float-status.ts +7 -0
  39. package/src/enums/column-integer-status.ts +7 -0
  40. package/src/enums/column-ip-status.ts +7 -0
  41. package/src/enums/column-line-status.ts +7 -0
  42. package/src/enums/column-longtext-status.ts +7 -0
  43. package/src/enums/column-mediumtext-status.ts +7 -0
  44. package/src/enums/column-point-status.ts +7 -0
  45. package/src/enums/column-polygon-status.ts +7 -0
  46. package/src/enums/column-relationship-status.ts +7 -0
  47. package/src/enums/column-string-status.ts +7 -0
  48. package/src/enums/column-text-status.ts +7 -0
  49. package/src/enums/column-url-status.ts +7 -0
  50. package/src/enums/column-varchar-status.ts +7 -0
  51. package/src/enums/compression.ts +5 -0
  52. package/src/enums/database-type.ts +4 -0
  53. package/src/enums/deployment-status.ts +8 -0
  54. package/src/enums/execution-status.ts +7 -0
  55. package/src/enums/execution-trigger.ts +5 -0
  56. package/src/enums/framework.ts +17 -0
  57. package/src/enums/gravity.ts +11 -0
  58. package/src/enums/health-antivirus-status.ts +5 -0
  59. package/src/enums/health-status-status.ts +4 -0
  60. package/src/enums/index-status.ts +7 -0
  61. package/src/enums/message-status.ts +7 -0
  62. package/src/enums/method.ts +9 -0
  63. package/src/enums/output.ts +9 -0
  64. package/src/enums/permissions.ts +22 -0
  65. package/src/enums/priority.ts +4 -0
  66. package/src/enums/range.ts +5 -0
  67. package/src/enums/runtime.ts +73 -0
  68. package/src/enums/runtimes.ts +73 -0
  69. package/src/enums/scopes.ts +57 -0
  70. package/src/enums/theme.ts +4 -0
  71. package/src/enums/timezone.ts +421 -0
  72. package/src/enums/type.ts +5 -0
  73. package/src/enums/use-cases.ts +9 -0
  74. package/src/id.ts +47 -0
  75. package/src/index.ts +92 -0
  76. package/src/models.ts +6013 -0
  77. package/src/operator.ts +308 -0
  78. package/src/permission.ts +57 -0
  79. package/src/query.ts +576 -0
  80. package/src/role.ts +100 -0
  81. package/src/service.ts +30 -0
  82. package/src/services/apps.ts +2473 -0
  83. package/src/services/avatars.ts +744 -0
  84. package/src/services/carts.ts +1057 -0
  85. package/src/services/channels.ts +227 -0
  86. package/src/services/customers.ts +729 -0
  87. package/src/services/greetings.ts +294 -0
  88. package/src/services/locale.ts +198 -0
  89. package/src/services/markets.ts +796 -0
  90. package/src/services/messaging.ts +3463 -0
  91. package/src/services/products.ts +3100 -0
  92. package/src/services/realtime.ts +537 -0
  93. package/src/services/search.ts +346 -0
  94. package/src/services/sites.ts +1847 -0
  95. package/src/services/storage.ts +1076 -0
  96. package/src/services/tokens.ts +314 -0
  97. package/types/channel.d.ts +74 -0
  98. package/types/client.d.ts +211 -0
  99. package/types/enums/adapter.d.ts +4 -0
  100. package/types/enums/attribute-boolean-status.d.ts +7 -0
  101. package/types/enums/attribute-datetime-status.d.ts +7 -0
  102. package/types/enums/attribute-email-status.d.ts +7 -0
  103. package/types/enums/attribute-enum-status.d.ts +7 -0
  104. package/types/enums/attribute-float-status.d.ts +7 -0
  105. package/types/enums/attribute-integer-status.d.ts +7 -0
  106. package/types/enums/attribute-ip-status.d.ts +7 -0
  107. package/types/enums/attribute-line-status.d.ts +7 -0
  108. package/types/enums/attribute-longtext-status.d.ts +7 -0
  109. package/types/enums/attribute-mediumtext-status.d.ts +7 -0
  110. package/types/enums/attribute-point-status.d.ts +7 -0
  111. package/types/enums/attribute-polygon-status.d.ts +7 -0
  112. package/types/enums/attribute-relationship-status.d.ts +7 -0
  113. package/types/enums/attribute-string-status.d.ts +7 -0
  114. package/types/enums/attribute-text-status.d.ts +7 -0
  115. package/types/enums/attribute-url-status.d.ts +7 -0
  116. package/types/enums/attribute-varchar-status.d.ts +7 -0
  117. package/types/enums/build-runtime.d.ts +73 -0
  118. package/types/enums/code.d.ts +16 -0
  119. package/types/enums/collection.d.ts +4 -0
  120. package/types/enums/column-boolean-status.d.ts +7 -0
  121. package/types/enums/column-datetime-status.d.ts +7 -0
  122. package/types/enums/column-email-status.d.ts +7 -0
  123. package/types/enums/column-enum-status.d.ts +7 -0
  124. package/types/enums/column-float-status.d.ts +7 -0
  125. package/types/enums/column-integer-status.d.ts +7 -0
  126. package/types/enums/column-ip-status.d.ts +7 -0
  127. package/types/enums/column-line-status.d.ts +7 -0
  128. package/types/enums/column-longtext-status.d.ts +7 -0
  129. package/types/enums/column-mediumtext-status.d.ts +7 -0
  130. package/types/enums/column-point-status.d.ts +7 -0
  131. package/types/enums/column-polygon-status.d.ts +7 -0
  132. package/types/enums/column-relationship-status.d.ts +7 -0
  133. package/types/enums/column-string-status.d.ts +7 -0
  134. package/types/enums/column-text-status.d.ts +7 -0
  135. package/types/enums/column-url-status.d.ts +7 -0
  136. package/types/enums/column-varchar-status.d.ts +7 -0
  137. package/types/enums/compression.d.ts +5 -0
  138. package/types/enums/database-type.d.ts +4 -0
  139. package/types/enums/deployment-status.d.ts +8 -0
  140. package/types/enums/execution-status.d.ts +7 -0
  141. package/types/enums/execution-trigger.d.ts +5 -0
  142. package/types/enums/framework.d.ts +17 -0
  143. package/types/enums/gravity.d.ts +11 -0
  144. package/types/enums/health-antivirus-status.d.ts +5 -0
  145. package/types/enums/health-status-status.d.ts +4 -0
  146. package/types/enums/index-status.d.ts +7 -0
  147. package/types/enums/message-status.d.ts +7 -0
  148. package/types/enums/method.d.ts +9 -0
  149. package/types/enums/output.d.ts +9 -0
  150. package/types/enums/permissions.d.ts +22 -0
  151. package/types/enums/priority.d.ts +4 -0
  152. package/types/enums/range.d.ts +5 -0
  153. package/types/enums/runtime.d.ts +73 -0
  154. package/types/enums/runtimes.d.ts +73 -0
  155. package/types/enums/scopes.d.ts +57 -0
  156. package/types/enums/theme.d.ts +4 -0
  157. package/types/enums/timezone.d.ts +421 -0
  158. package/types/enums/type.d.ts +5 -0
  159. package/types/enums/use-cases.d.ts +9 -0
  160. package/types/id.d.ts +20 -0
  161. package/types/index.d.ts +92 -0
  162. package/types/models.d.ts +5830 -0
  163. package/types/operator.d.ts +180 -0
  164. package/types/permission.d.ts +43 -0
  165. package/types/query.d.ts +442 -0
  166. package/types/role.d.ts +70 -0
  167. package/types/service.d.ts +11 -0
  168. package/types/services/apps.d.ts +932 -0
  169. package/types/services/avatars.d.ts +318 -0
  170. package/types/services/carts.d.ts +352 -0
  171. package/types/services/channels.d.ts +75 -0
  172. package/types/services/customers.d.ts +231 -0
  173. package/types/services/greetings.d.ts +101 -0
  174. package/types/services/locale.d.ts +64 -0
  175. package/types/services/markets.d.ts +274 -0
  176. package/types/services/messaging.d.ts +1324 -0
  177. package/types/services/products.d.ts +1014 -0
  178. package/types/services/realtime.d.ts +134 -0
  179. package/types/services/search.d.ts +131 -0
  180. package/types/services/sites.d.ts +689 -0
  181. package/types/services/storage.d.ts +421 -0
  182. package/types/services/tokens.d.ts +119 -0
@@ -0,0 +1,346 @@
1
+ import { Service } from '../service';
2
+ import { RevenexxException, Client, type Payload, UploadProgress } from '../client';
3
+ import type { Models } from '../models';
4
+
5
+ import { Collection } from '../enums/collection';
6
+
7
+ export class Search {
8
+ client: Client;
9
+
10
+ constructor(client: Client) {
11
+ this.client = client;
12
+ }
13
+
14
+ /**
15
+ * The collections the tenant's installed apps have provisioned.
16
+ *
17
+ * @throws {RevenexxException}
18
+ * @returns {Promise<{}>}
19
+ */
20
+ searchListCollections(): Promise<{}> {
21
+
22
+ const apiPath = '/v1/search/collections';
23
+ const payload: Payload = {};
24
+ const uri = new URL(this.client.config.endpoint + apiPath);
25
+
26
+ const apiHeaders: { [header: string]: string } = {
27
+ }
28
+
29
+ return this.client.call(
30
+ 'get',
31
+ uri,
32
+ apiHeaders,
33
+ payload
34
+ );
35
+ }
36
+
37
+ /**
38
+ * Full-text search within one collection using Typesense query parameters as the query string.
39
+ *
40
+ * @param {Collection} params.collection - Collection key (one the tenant has installed).
41
+ * @param {string} params.q - Query text. Use `*` to match all.
42
+ * @param {string} params.queryBy - Comma-separated fields to search.
43
+ * @param {string} params.filterBy - Filter expression.
44
+ * @param {string} params.sortBy - Sort expression.
45
+ * @param {number} params.page - 1-based page.
46
+ * @param {number} params.perPage - Hits per page (max 250).
47
+ * @throws {RevenexxException}
48
+ * @returns {Promise<{}>}
49
+ */
50
+ searchSearchDocumentsGet(params: { collection: Collection, q?: string, queryBy?: string, filterBy?: string, sortBy?: string, page?: number, perPage?: number }): Promise<{}>;
51
+ /**
52
+ * Full-text search within one collection using Typesense query parameters as the query string.
53
+ *
54
+ * @param {Collection} collection - Collection key (one the tenant has installed).
55
+ * @param {string} q - Query text. Use `*` to match all.
56
+ * @param {string} queryBy - Comma-separated fields to search.
57
+ * @param {string} filterBy - Filter expression.
58
+ * @param {string} sortBy - Sort expression.
59
+ * @param {number} page - 1-based page.
60
+ * @param {number} perPage - Hits per page (max 250).
61
+ * @throws {RevenexxException}
62
+ * @returns {Promise<{}>}
63
+ * @deprecated Use the object parameter style method for a better developer experience.
64
+ */
65
+ searchSearchDocumentsGet(collection: Collection, q?: string, queryBy?: string, filterBy?: string, sortBy?: string, page?: number, perPage?: number): Promise<{}>;
66
+ searchSearchDocumentsGet(
67
+ paramsOrFirst: { collection: Collection, q?: string, queryBy?: string, filterBy?: string, sortBy?: string, page?: number, perPage?: number } | Collection,
68
+ ...rest: [(string)?, (string)?, (string)?, (string)?, (number)?, (number)?]
69
+ ): Promise<{}> {
70
+ let params: { collection: Collection, q?: string, queryBy?: string, filterBy?: string, sortBy?: string, page?: number, perPage?: number };
71
+
72
+ if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('collection' in paramsOrFirst || 'q' in paramsOrFirst || 'queryBy' in paramsOrFirst || 'filterBy' in paramsOrFirst || 'sortBy' in paramsOrFirst || 'page' in paramsOrFirst || 'perPage' in paramsOrFirst))) {
73
+ params = (paramsOrFirst || {}) as { collection: Collection, q?: string, queryBy?: string, filterBy?: string, sortBy?: string, page?: number, perPage?: number };
74
+ } else {
75
+ params = {
76
+ collection: paramsOrFirst as Collection,
77
+ q: rest[0] as string,
78
+ queryBy: rest[1] as string,
79
+ filterBy: rest[2] as string,
80
+ sortBy: rest[3] as string,
81
+ page: rest[4] as number,
82
+ perPage: rest[5] as number
83
+ };
84
+ }
85
+
86
+ const collection = params.collection;
87
+ const q = params.q;
88
+ const queryBy = params.queryBy;
89
+ const filterBy = params.filterBy;
90
+ const sortBy = params.sortBy;
91
+ const page = params.page;
92
+ const perPage = params.perPage;
93
+
94
+ if (typeof collection === 'undefined') {
95
+ throw new RevenexxException('Missing required parameter: "collection"');
96
+ }
97
+
98
+ const apiPath = '/v1/search/collections/{collection}/documents/search'.replace('{collection}', collection);
99
+ const payload: Payload = {};
100
+ if (typeof q !== 'undefined') {
101
+ payload['q'] = q;
102
+ }
103
+ if (typeof queryBy !== 'undefined') {
104
+ payload['query_by'] = queryBy;
105
+ }
106
+ if (typeof filterBy !== 'undefined') {
107
+ payload['filter_by'] = filterBy;
108
+ }
109
+ if (typeof sortBy !== 'undefined') {
110
+ payload['sort_by'] = sortBy;
111
+ }
112
+ if (typeof page !== 'undefined') {
113
+ payload['page'] = page;
114
+ }
115
+ if (typeof perPage !== 'undefined') {
116
+ payload['per_page'] = perPage;
117
+ }
118
+ const uri = new URL(this.client.config.endpoint + apiPath);
119
+
120
+ const apiHeaders: { [header: string]: string } = {
121
+ }
122
+
123
+ return this.client.call(
124
+ 'get',
125
+ uri,
126
+ apiHeaders,
127
+ payload
128
+ );
129
+ }
130
+
131
+ /**
132
+ * Full-text search within one collection. The body holds Typesense search parameters.
133
+ *
134
+ * @param {Collection} params.collection - Collection key (one the tenant has installed).
135
+ * @param {string} params.facetBy - Comma-separated fields to facet on.
136
+ * @param {string} params.filterBy - Filter expression, e.g. `in_stock:=true`.
137
+ * @param {number} params.page -
138
+ * @param {number} params.perPage -
139
+ * @param {string} params.q - Query text. Use `*` to match all.
140
+ * @param {string} params.queryBy - Comma-separated fields to search.
141
+ * @param {string} params.sortBy - Sort expression, e.g. `price:desc`.
142
+ * @throws {RevenexxException}
143
+ * @returns {Promise<{}>}
144
+ */
145
+ searchSearchDocuments(params: { collection: Collection, facetBy?: string, filterBy?: string, page?: number, perPage?: number, q?: string, queryBy?: string, sortBy?: string }): Promise<{}>;
146
+ /**
147
+ * Full-text search within one collection. The body holds Typesense search parameters.
148
+ *
149
+ * @param {Collection} collection - Collection key (one the tenant has installed).
150
+ * @param {string} facetBy - Comma-separated fields to facet on.
151
+ * @param {string} filterBy - Filter expression, e.g. `in_stock:=true`.
152
+ * @param {number} page -
153
+ * @param {number} perPage -
154
+ * @param {string} q - Query text. Use `*` to match all.
155
+ * @param {string} queryBy - Comma-separated fields to search.
156
+ * @param {string} sortBy - Sort expression, e.g. `price:desc`.
157
+ * @throws {RevenexxException}
158
+ * @returns {Promise<{}>}
159
+ * @deprecated Use the object parameter style method for a better developer experience.
160
+ */
161
+ searchSearchDocuments(collection: Collection, facetBy?: string, filterBy?: string, page?: number, perPage?: number, q?: string, queryBy?: string, sortBy?: string): Promise<{}>;
162
+ searchSearchDocuments(
163
+ paramsOrFirst: { collection: Collection, facetBy?: string, filterBy?: string, page?: number, perPage?: number, q?: string, queryBy?: string, sortBy?: string } | Collection,
164
+ ...rest: [(string)?, (string)?, (number)?, (number)?, (string)?, (string)?, (string)?]
165
+ ): Promise<{}> {
166
+ let params: { collection: Collection, facetBy?: string, filterBy?: string, page?: number, perPage?: number, q?: string, queryBy?: string, sortBy?: string };
167
+
168
+ if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('collection' in paramsOrFirst || 'facetBy' in paramsOrFirst || 'filterBy' in paramsOrFirst || 'page' in paramsOrFirst || 'perPage' in paramsOrFirst || 'q' in paramsOrFirst || 'queryBy' in paramsOrFirst || 'sortBy' in paramsOrFirst))) {
169
+ params = (paramsOrFirst || {}) as { collection: Collection, facetBy?: string, filterBy?: string, page?: number, perPage?: number, q?: string, queryBy?: string, sortBy?: string };
170
+ } else {
171
+ params = {
172
+ collection: paramsOrFirst as Collection,
173
+ facetBy: rest[0] as string,
174
+ filterBy: rest[1] as string,
175
+ page: rest[2] as number,
176
+ perPage: rest[3] as number,
177
+ q: rest[4] as string,
178
+ queryBy: rest[5] as string,
179
+ sortBy: rest[6] as string
180
+ };
181
+ }
182
+
183
+ const collection = params.collection;
184
+ const facetBy = params.facetBy;
185
+ const filterBy = params.filterBy;
186
+ const page = params.page;
187
+ const perPage = params.perPage;
188
+ const q = params.q;
189
+ const queryBy = params.queryBy;
190
+ const sortBy = params.sortBy;
191
+
192
+ if (typeof collection === 'undefined') {
193
+ throw new RevenexxException('Missing required parameter: "collection"');
194
+ }
195
+
196
+ const apiPath = '/v1/search/collections/{collection}/documents/search'.replace('{collection}', collection);
197
+ const payload: Payload = {};
198
+ if (typeof facetBy !== 'undefined') {
199
+ payload['facet_by'] = facetBy;
200
+ }
201
+ if (typeof filterBy !== 'undefined') {
202
+ payload['filter_by'] = filterBy;
203
+ }
204
+ if (typeof page !== 'undefined') {
205
+ payload['page'] = page;
206
+ }
207
+ if (typeof perPage !== 'undefined') {
208
+ payload['per_page'] = perPage;
209
+ }
210
+ if (typeof q !== 'undefined') {
211
+ payload['q'] = q;
212
+ }
213
+ if (typeof queryBy !== 'undefined') {
214
+ payload['query_by'] = queryBy;
215
+ }
216
+ if (typeof sortBy !== 'undefined') {
217
+ payload['sort_by'] = sortBy;
218
+ }
219
+ const uri = new URL(this.client.config.endpoint + apiPath);
220
+
221
+ const apiHeaders: { [header: string]: string } = {
222
+ 'content-type': 'application/json',
223
+ }
224
+
225
+ return this.client.call(
226
+ 'post',
227
+ uri,
228
+ apiHeaders,
229
+ payload
230
+ );
231
+ }
232
+
233
+ /**
234
+ * Fetch a single document by id from a collection the tenant has installed.
235
+ *
236
+ * @param {Collection} params.collection - Collection key (one the tenant has installed).
237
+ * @param {string} params.documentId - Document id within the collection.
238
+ * @throws {RevenexxException}
239
+ * @returns {Promise<{}>}
240
+ */
241
+ searchGetDocument(params: { collection: Collection, documentId: string }): Promise<{}>;
242
+ /**
243
+ * Fetch a single document by id from a collection the tenant has installed.
244
+ *
245
+ * @param {Collection} collection - Collection key (one the tenant has installed).
246
+ * @param {string} documentId - Document id within the collection.
247
+ * @throws {RevenexxException}
248
+ * @returns {Promise<{}>}
249
+ * @deprecated Use the object parameter style method for a better developer experience.
250
+ */
251
+ searchGetDocument(collection: Collection, documentId: string): Promise<{}>;
252
+ searchGetDocument(
253
+ paramsOrFirst: { collection: Collection, documentId: string } | Collection,
254
+ ...rest: [(string)?]
255
+ ): Promise<{}> {
256
+ let params: { collection: Collection, documentId: string };
257
+
258
+ if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('collection' in paramsOrFirst || 'documentId' in paramsOrFirst))) {
259
+ params = (paramsOrFirst || {}) as { collection: Collection, documentId: string };
260
+ } else {
261
+ params = {
262
+ collection: paramsOrFirst as Collection,
263
+ documentId: rest[0] as string
264
+ };
265
+ }
266
+
267
+ const collection = params.collection;
268
+ const documentId = params.documentId;
269
+
270
+ if (typeof collection === 'undefined') {
271
+ throw new RevenexxException('Missing required parameter: "collection"');
272
+ }
273
+ if (typeof documentId === 'undefined') {
274
+ throw new RevenexxException('Missing required parameter: "documentId"');
275
+ }
276
+
277
+ const apiPath = '/v1/search/collections/{collection}/documents/{documentId}'.replace('{collection}', collection).replace('{documentId}', documentId);
278
+ const payload: Payload = {};
279
+ const uri = new URL(this.client.config.endpoint + apiPath);
280
+
281
+ const apiHeaders: { [header: string]: string } = {
282
+ }
283
+
284
+ return this.client.call(
285
+ 'get',
286
+ uri,
287
+ apiHeaders,
288
+ payload
289
+ );
290
+ }
291
+
292
+ /**
293
+ * Run several searches in one request (the InstantSearch adapter uses this). Each entry names its collection.
294
+ *
295
+ * @param {object[]} params.searches -
296
+ * @throws {RevenexxException}
297
+ * @returns {Promise<{}>}
298
+ */
299
+ searchMultiSearch(params: { searches: object[] }): Promise<{}>;
300
+ /**
301
+ * Run several searches in one request (the InstantSearch adapter uses this). Each entry names its collection.
302
+ *
303
+ * @param {object[]} searches -
304
+ * @throws {RevenexxException}
305
+ * @returns {Promise<{}>}
306
+ * @deprecated Use the object parameter style method for a better developer experience.
307
+ */
308
+ searchMultiSearch(searches: object[]): Promise<{}>;
309
+ searchMultiSearch(
310
+ paramsOrFirst: { searches: object[] } | object[]
311
+ ): Promise<{}> {
312
+ let params: { searches: object[] };
313
+
314
+ if ((paramsOrFirst && typeof paramsOrFirst === 'object' && !Array.isArray(paramsOrFirst) && ('searches' in paramsOrFirst))) {
315
+ params = (paramsOrFirst || {}) as { searches: object[] };
316
+ } else {
317
+ params = {
318
+ searches: paramsOrFirst as object[]
319
+ };
320
+ }
321
+
322
+ const searches = params.searches;
323
+
324
+ if (typeof searches === 'undefined') {
325
+ throw new RevenexxException('Missing required parameter: "searches"');
326
+ }
327
+
328
+ const apiPath = '/v1/search/multi_search';
329
+ const payload: Payload = {};
330
+ if (typeof searches !== 'undefined') {
331
+ payload['searches'] = searches;
332
+ }
333
+ const uri = new URL(this.client.config.endpoint + apiPath);
334
+
335
+ const apiHeaders: { [header: string]: string } = {
336
+ 'content-type': 'application/json',
337
+ }
338
+
339
+ return this.client.call(
340
+ 'post',
341
+ uri,
342
+ apiHeaders,
343
+ payload
344
+ );
345
+ }
346
+ }