@sitecore-cloudsdk/search 0.5.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (224) hide show
  1. package/README.md +95 -0
  2. package/browser.cjs +3 -0
  3. package/browser.d.ts +2 -0
  4. package/browser.js +3 -0
  5. package/dist/cjs/package.json +40 -0
  6. package/dist/cjs/src/browser.d.ts +32 -0
  7. package/dist/cjs/src/browser.js +53 -0
  8. package/dist/cjs/src/lib/consts.d.ts +38 -0
  9. package/dist/cjs/src/lib/consts.js +49 -0
  10. package/dist/cjs/src/lib/events/entity-view-event.d.ts +22 -0
  11. package/dist/cjs/src/lib/events/entity-view-event.js +51 -0
  12. package/dist/cjs/src/lib/events/interfaces.d.ts +135 -0
  13. package/dist/cjs/src/lib/events/interfaces.js +3 -0
  14. package/dist/cjs/src/lib/events/widget-facet-click-event.d.ts +30 -0
  15. package/dist/cjs/src/lib/events/widget-facet-click-event.js +92 -0
  16. package/dist/cjs/src/lib/events/widget-item-click-event.d.ts +28 -0
  17. package/dist/cjs/src/lib/events/widget-item-click-event.js +72 -0
  18. package/dist/cjs/src/lib/events/widget-navigation-click-event.d.ts +26 -0
  19. package/dist/cjs/src/lib/events/widget-navigation-click-event.js +49 -0
  20. package/dist/cjs/src/lib/events/widget-suggestion-click-event.d.ts +29 -0
  21. package/dist/cjs/src/lib/events/widget-suggestion-click-event.js +75 -0
  22. package/dist/cjs/src/lib/events/widget-view-event.d.ts +28 -0
  23. package/dist/cjs/src/lib/events/widget-view-event.js +75 -0
  24. package/dist/cjs/src/lib/initializer/browser/initializer.d.ts +23 -0
  25. package/dist/cjs/src/lib/initializer/browser/initializer.js +44 -0
  26. package/dist/cjs/src/lib/initializer/server/initializer.d.ts +21 -0
  27. package/dist/cjs/src/lib/initializer/server/initializer.js +39 -0
  28. package/dist/cjs/src/lib/request-entities/context/context.d.ts +141 -0
  29. package/dist/cjs/src/lib/request-entities/context/context.js +273 -0
  30. package/dist/cjs/src/lib/request-entities/context/interfaces.d.ts +106 -0
  31. package/dist/cjs/src/lib/request-entities/context/interfaces.js +2 -0
  32. package/dist/cjs/src/lib/request-entities/filters/base-filter.d.ts +17 -0
  33. package/dist/cjs/src/lib/request-entities/filters/base-filter.js +17 -0
  34. package/dist/cjs/src/lib/request-entities/filters/comparison-filter.d.ts +18 -0
  35. package/dist/cjs/src/lib/request-entities/filters/comparison-filter.js +30 -0
  36. package/dist/cjs/src/lib/request-entities/filters/facet/comparison-facet-filter.d.ts +18 -0
  37. package/dist/cjs/src/lib/request-entities/filters/facet/comparison-facet-filter.js +26 -0
  38. package/dist/cjs/src/lib/request-entities/filters/facet/interfaces.d.ts +21 -0
  39. package/dist/cjs/src/lib/request-entities/filters/facet/interfaces.js +2 -0
  40. package/dist/cjs/src/lib/request-entities/filters/facet/list-facet-filter.d.ts +18 -0
  41. package/dist/cjs/src/lib/request-entities/filters/facet/list-facet-filter.js +26 -0
  42. package/dist/cjs/src/lib/request-entities/filters/facet/logical-facet-filter.d.ts +19 -0
  43. package/dist/cjs/src/lib/request-entities/filters/facet/logical-facet-filter.js +26 -0
  44. package/dist/cjs/src/lib/request-entities/filters/facet/not-facet-filter.d.ts +7 -0
  45. package/dist/cjs/src/lib/request-entities/filters/facet/not-facet-filter.js +22 -0
  46. package/dist/cjs/src/lib/request-entities/filters/geo-filter.d.ts +19 -0
  47. package/dist/cjs/src/lib/request-entities/filters/geo-filter.js +49 -0
  48. package/dist/cjs/src/lib/request-entities/filters/geo-within-filter.d.ts +19 -0
  49. package/dist/cjs/src/lib/request-entities/filters/geo-within-filter.js +44 -0
  50. package/dist/cjs/src/lib/request-entities/filters/interfaces.d.ts +66 -0
  51. package/dist/cjs/src/lib/request-entities/filters/interfaces.js +2 -0
  52. package/dist/cjs/src/lib/request-entities/filters/list-filter.d.ts +18 -0
  53. package/dist/cjs/src/lib/request-entities/filters/list-filter.js +30 -0
  54. package/dist/cjs/src/lib/request-entities/filters/logical-filter.d.ts +16 -0
  55. package/dist/cjs/src/lib/request-entities/filters/logical-filter.js +32 -0
  56. package/dist/cjs/src/lib/request-entities/widgets/interfaces.d.ts +372 -0
  57. package/dist/cjs/src/lib/request-entities/widgets/interfaces.js +2 -0
  58. package/dist/cjs/src/lib/request-entities/widgets/questions-answers-widget-item.d.ts +62 -0
  59. package/dist/cjs/src/lib/request-entities/widgets/questions-answers-widget-item.js +117 -0
  60. package/dist/cjs/src/lib/request-entities/widgets/recommendation-widget-item.d.ts +39 -0
  61. package/dist/cjs/src/lib/request-entities/widgets/recommendation-widget-item.js +84 -0
  62. package/dist/cjs/src/lib/request-entities/widgets/results-widget-item.d.ts +76 -0
  63. package/dist/cjs/src/lib/request-entities/widgets/results-widget-item.js +126 -0
  64. package/dist/cjs/src/lib/request-entities/widgets/rule-widget-item.d.ts +14 -0
  65. package/dist/cjs/src/lib/request-entities/widgets/rule-widget-item.js +71 -0
  66. package/dist/cjs/src/lib/request-entities/widgets/search-widget-item.d.ts +167 -0
  67. package/dist/cjs/src/lib/request-entities/widgets/search-widget-item.js +353 -0
  68. package/dist/cjs/src/lib/request-entities/widgets/utils.d.ts +8 -0
  69. package/dist/cjs/src/lib/request-entities/widgets/utils.js +14 -0
  70. package/dist/cjs/src/lib/request-entities/widgets/widget-item.d.ts +64 -0
  71. package/dist/cjs/src/lib/request-entities/widgets/widget-item.js +114 -0
  72. package/dist/cjs/src/lib/request-entities/widgets/widget-request-data.d.ts +15 -0
  73. package/dist/cjs/src/lib/request-entities/widgets/widget-request-data.js +30 -0
  74. package/dist/cjs/src/lib/requests/browser/entity-view-event.d.ts +6 -0
  75. package/dist/cjs/src/lib/requests/browser/entity-view-event.js +17 -0
  76. package/dist/cjs/src/lib/requests/browser/get-page-widget-data.d.ts +15 -0
  77. package/dist/cjs/src/lib/requests/browser/get-page-widget-data.js +25 -0
  78. package/dist/cjs/src/lib/requests/browser/get-widget-data.d.ts +9 -0
  79. package/dist/cjs/src/lib/requests/browser/get-widget-data.js +21 -0
  80. package/dist/cjs/src/lib/requests/browser/widget-facet-click-event.d.ts +7 -0
  81. package/dist/cjs/src/lib/requests/browser/widget-facet-click-event.js +18 -0
  82. package/dist/cjs/src/lib/requests/browser/widget-item-click-event.d.ts +7 -0
  83. package/dist/cjs/src/lib/requests/browser/widget-item-click-event.js +18 -0
  84. package/dist/cjs/src/lib/requests/browser/widget-navigation-click-event.d.ts +7 -0
  85. package/dist/cjs/src/lib/requests/browser/widget-navigation-click-event.js +18 -0
  86. package/dist/cjs/src/lib/requests/browser/widget-suggestion-click-event.d.ts +7 -0
  87. package/dist/cjs/src/lib/requests/browser/widget-suggestion-click-event.js +18 -0
  88. package/dist/cjs/src/lib/requests/browser/widget-view-event.d.ts +6 -0
  89. package/dist/cjs/src/lib/requests/browser/widget-view-event.js +17 -0
  90. package/dist/cjs/src/lib/requests/post-request.d.ts +57 -0
  91. package/dist/cjs/src/lib/requests/post-request.js +26 -0
  92. package/dist/cjs/src/lib/requests/server/entity-view-event-server.d.ts +8 -0
  93. package/dist/cjs/src/lib/requests/server/entity-view-event-server.js +18 -0
  94. package/dist/cjs/src/lib/requests/server/get-page-widget-data-server.d.ts +15 -0
  95. package/dist/cjs/src/lib/requests/server/get-page-widget-data-server.js +25 -0
  96. package/dist/cjs/src/lib/requests/server/get-widget-data-server.d.ts +8 -0
  97. package/dist/cjs/src/lib/requests/server/get-widget-data-server.js +19 -0
  98. package/dist/cjs/src/lib/requests/server/widget-facet-click-event-server.d.ts +9 -0
  99. package/dist/cjs/src/lib/requests/server/widget-facet-click-event-server.js +19 -0
  100. package/dist/cjs/src/lib/requests/server/widget-item-click-event-server.d.ts +9 -0
  101. package/dist/cjs/src/lib/requests/server/widget-item-click-event-server.js +19 -0
  102. package/dist/cjs/src/lib/requests/server/widget-navigation-click-event-server.d.ts +9 -0
  103. package/dist/cjs/src/lib/requests/server/widget-navigation-click-event-server.js +19 -0
  104. package/dist/cjs/src/lib/requests/server/widget-suggestion-click-event-server.d.ts +9 -0
  105. package/dist/cjs/src/lib/requests/server/widget-suggestion-click-event-server.js +19 -0
  106. package/dist/cjs/src/lib/requests/server/widget-view-event-server.d.ts +9 -0
  107. package/dist/cjs/src/lib/requests/server/widget-view-event-server.js +19 -0
  108. package/dist/cjs/src/lib/types.d.ts +14 -0
  109. package/dist/cjs/src/lib/types.js +2 -0
  110. package/dist/cjs/src/server.d.ts +32 -0
  111. package/dist/cjs/src/server.js +55 -0
  112. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -0
  113. package/dist/esm/package.json +40 -0
  114. package/dist/esm/src/browser.d.ts +32 -0
  115. package/dist/esm/src/browser.js +26 -0
  116. package/dist/esm/src/lib/consts.d.ts +38 -0
  117. package/dist/esm/src/lib/consts.js +43 -0
  118. package/dist/esm/src/lib/events/entity-view-event.d.ts +22 -0
  119. package/dist/esm/src/lib/events/entity-view-event.js +47 -0
  120. package/dist/esm/src/lib/events/interfaces.d.ts +135 -0
  121. package/dist/esm/src/lib/events/interfaces.js +2 -0
  122. package/dist/esm/src/lib/events/widget-facet-click-event.d.ts +30 -0
  123. package/dist/esm/src/lib/events/widget-facet-click-event.js +88 -0
  124. package/dist/esm/src/lib/events/widget-item-click-event.d.ts +28 -0
  125. package/dist/esm/src/lib/events/widget-item-click-event.js +68 -0
  126. package/dist/esm/src/lib/events/widget-navigation-click-event.d.ts +26 -0
  127. package/dist/esm/src/lib/events/widget-navigation-click-event.js +45 -0
  128. package/dist/esm/src/lib/events/widget-suggestion-click-event.d.ts +29 -0
  129. package/dist/esm/src/lib/events/widget-suggestion-click-event.js +71 -0
  130. package/dist/esm/src/lib/events/widget-view-event.d.ts +28 -0
  131. package/dist/esm/src/lib/events/widget-view-event.js +71 -0
  132. package/dist/esm/src/lib/initializer/browser/initializer.d.ts +23 -0
  133. package/dist/esm/src/lib/initializer/browser/initializer.js +38 -0
  134. package/dist/esm/src/lib/initializer/server/initializer.d.ts +21 -0
  135. package/dist/esm/src/lib/initializer/server/initializer.js +33 -0
  136. package/dist/esm/src/lib/request-entities/context/context.d.ts +141 -0
  137. package/dist/esm/src/lib/request-entities/context/context.js +269 -0
  138. package/dist/esm/src/lib/request-entities/context/interfaces.d.ts +106 -0
  139. package/dist/esm/src/lib/request-entities/context/interfaces.js +1 -0
  140. package/dist/esm/src/lib/request-entities/filters/base-filter.d.ts +17 -0
  141. package/dist/esm/src/lib/request-entities/filters/base-filter.js +13 -0
  142. package/dist/esm/src/lib/request-entities/filters/comparison-filter.d.ts +18 -0
  143. package/dist/esm/src/lib/request-entities/filters/comparison-filter.js +26 -0
  144. package/dist/esm/src/lib/request-entities/filters/facet/comparison-facet-filter.d.ts +18 -0
  145. package/dist/esm/src/lib/request-entities/filters/facet/comparison-facet-filter.js +22 -0
  146. package/dist/esm/src/lib/request-entities/filters/facet/interfaces.d.ts +21 -0
  147. package/dist/esm/src/lib/request-entities/filters/facet/interfaces.js +1 -0
  148. package/dist/esm/src/lib/request-entities/filters/facet/list-facet-filter.d.ts +18 -0
  149. package/dist/esm/src/lib/request-entities/filters/facet/list-facet-filter.js +22 -0
  150. package/dist/esm/src/lib/request-entities/filters/facet/logical-facet-filter.d.ts +19 -0
  151. package/dist/esm/src/lib/request-entities/filters/facet/logical-facet-filter.js +22 -0
  152. package/dist/esm/src/lib/request-entities/filters/facet/not-facet-filter.d.ts +7 -0
  153. package/dist/esm/src/lib/request-entities/filters/facet/not-facet-filter.js +18 -0
  154. package/dist/esm/src/lib/request-entities/filters/geo-filter.d.ts +19 -0
  155. package/dist/esm/src/lib/request-entities/filters/geo-filter.js +45 -0
  156. package/dist/esm/src/lib/request-entities/filters/geo-within-filter.d.ts +19 -0
  157. package/dist/esm/src/lib/request-entities/filters/geo-within-filter.js +40 -0
  158. package/dist/esm/src/lib/request-entities/filters/interfaces.d.ts +66 -0
  159. package/dist/esm/src/lib/request-entities/filters/interfaces.js +1 -0
  160. package/dist/esm/src/lib/request-entities/filters/list-filter.d.ts +18 -0
  161. package/dist/esm/src/lib/request-entities/filters/list-filter.js +26 -0
  162. package/dist/esm/src/lib/request-entities/filters/logical-filter.d.ts +16 -0
  163. package/dist/esm/src/lib/request-entities/filters/logical-filter.js +28 -0
  164. package/dist/esm/src/lib/request-entities/widgets/interfaces.d.ts +372 -0
  165. package/dist/esm/src/lib/request-entities/widgets/interfaces.js +1 -0
  166. package/dist/esm/src/lib/request-entities/widgets/questions-answers-widget-item.d.ts +62 -0
  167. package/dist/esm/src/lib/request-entities/widgets/questions-answers-widget-item.js +113 -0
  168. package/dist/esm/src/lib/request-entities/widgets/recommendation-widget-item.d.ts +39 -0
  169. package/dist/esm/src/lib/request-entities/widgets/recommendation-widget-item.js +80 -0
  170. package/dist/esm/src/lib/request-entities/widgets/results-widget-item.d.ts +76 -0
  171. package/dist/esm/src/lib/request-entities/widgets/results-widget-item.js +122 -0
  172. package/dist/esm/src/lib/request-entities/widgets/rule-widget-item.d.ts +14 -0
  173. package/dist/esm/src/lib/request-entities/widgets/rule-widget-item.js +67 -0
  174. package/dist/esm/src/lib/request-entities/widgets/search-widget-item.d.ts +167 -0
  175. package/dist/esm/src/lib/request-entities/widgets/search-widget-item.js +349 -0
  176. package/dist/esm/src/lib/request-entities/widgets/utils.d.ts +8 -0
  177. package/dist/esm/src/lib/request-entities/widgets/utils.js +10 -0
  178. package/dist/esm/src/lib/request-entities/widgets/widget-item.d.ts +64 -0
  179. package/dist/esm/src/lib/request-entities/widgets/widget-item.js +110 -0
  180. package/dist/esm/src/lib/request-entities/widgets/widget-request-data.d.ts +15 -0
  181. package/dist/esm/src/lib/request-entities/widgets/widget-request-data.js +26 -0
  182. package/dist/esm/src/lib/requests/browser/entity-view-event.d.ts +6 -0
  183. package/dist/esm/src/lib/requests/browser/entity-view-event.js +13 -0
  184. package/dist/esm/src/lib/requests/browser/get-page-widget-data.d.ts +15 -0
  185. package/dist/esm/src/lib/requests/browser/get-page-widget-data.js +21 -0
  186. package/dist/esm/src/lib/requests/browser/get-widget-data.d.ts +9 -0
  187. package/dist/esm/src/lib/requests/browser/get-widget-data.js +18 -0
  188. package/dist/esm/src/lib/requests/browser/widget-facet-click-event.d.ts +7 -0
  189. package/dist/esm/src/lib/requests/browser/widget-facet-click-event.js +14 -0
  190. package/dist/esm/src/lib/requests/browser/widget-item-click-event.d.ts +7 -0
  191. package/dist/esm/src/lib/requests/browser/widget-item-click-event.js +14 -0
  192. package/dist/esm/src/lib/requests/browser/widget-navigation-click-event.d.ts +7 -0
  193. package/dist/esm/src/lib/requests/browser/widget-navigation-click-event.js +14 -0
  194. package/dist/esm/src/lib/requests/browser/widget-suggestion-click-event.d.ts +7 -0
  195. package/dist/esm/src/lib/requests/browser/widget-suggestion-click-event.js +14 -0
  196. package/dist/esm/src/lib/requests/browser/widget-view-event.d.ts +6 -0
  197. package/dist/esm/src/lib/requests/browser/widget-view-event.js +13 -0
  198. package/dist/esm/src/lib/requests/post-request.d.ts +57 -0
  199. package/dist/esm/src/lib/requests/post-request.js +22 -0
  200. package/dist/esm/src/lib/requests/server/entity-view-event-server.d.ts +8 -0
  201. package/dist/esm/src/lib/requests/server/entity-view-event-server.js +14 -0
  202. package/dist/esm/src/lib/requests/server/get-page-widget-data-server.d.ts +15 -0
  203. package/dist/esm/src/lib/requests/server/get-page-widget-data-server.js +21 -0
  204. package/dist/esm/src/lib/requests/server/get-widget-data-server.d.ts +8 -0
  205. package/dist/esm/src/lib/requests/server/get-widget-data-server.js +15 -0
  206. package/dist/esm/src/lib/requests/server/widget-facet-click-event-server.d.ts +9 -0
  207. package/dist/esm/src/lib/requests/server/widget-facet-click-event-server.js +15 -0
  208. package/dist/esm/src/lib/requests/server/widget-item-click-event-server.d.ts +9 -0
  209. package/dist/esm/src/lib/requests/server/widget-item-click-event-server.js +15 -0
  210. package/dist/esm/src/lib/requests/server/widget-navigation-click-event-server.d.ts +9 -0
  211. package/dist/esm/src/lib/requests/server/widget-navigation-click-event-server.js +15 -0
  212. package/dist/esm/src/lib/requests/server/widget-suggestion-click-event-server.d.ts +9 -0
  213. package/dist/esm/src/lib/requests/server/widget-suggestion-click-event-server.js +15 -0
  214. package/dist/esm/src/lib/requests/server/widget-view-event-server.d.ts +9 -0
  215. package/dist/esm/src/lib/requests/server/widget-view-event-server.js +15 -0
  216. package/dist/esm/src/lib/types.d.ts +14 -0
  217. package/dist/esm/src/lib/types.js +1 -0
  218. package/dist/esm/src/server.d.ts +32 -0
  219. package/dist/esm/src/server.js +28 -0
  220. package/dist/esm/tsconfig.tsbuildinfo +1 -0
  221. package/package.json +40 -0
  222. package/server.cjs +3 -0
  223. package/server.d.ts +2 -0
  224. package/server.js +3 -0
package/README.md ADDED
@@ -0,0 +1,95 @@
1
+ # search
2
+
3
+ This package provides browser- and server-side functions to ​build search experiences and capture events that occur inside them. Search experiences include search results pages, content and product recommendations, search suggestions, and more. The events that occur inside them are sent to Sitecore, and they help track the performance of your search experiences so you can refine and improve them.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @sitecore-cloudsdk/search
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ 1. Initialize the package using the `CloudSDK` function, available in the `core` package.
14
+ 2. Request search content using the `getWidgetData` function.
15
+ 3. Send events using the following functions:
16
+ - `widgetView` - send a widget view event.
17
+ - `widgetItemClick` - send widget item click event.
18
+ - `widgetFacetClick` - send a facet click event.
19
+ - `widgetNavigationClick` - send a navigation click event.
20
+ - `widgetSuggestionClick` - send a suggestion click event.
21
+ - `entityView` - send an entity view event.
22
+
23
+ The `search` package also requires that you install and initialize the `events` package.
24
+
25
+ ## Code examples
26
+
27
+ Request search content on the browser side:
28
+
29
+ ```tsx
30
+ import { Context, getWidgetData, SearchWidgetItem, WidgetRequestData } from '@sitecore-cloudsdk/search/browser';
31
+
32
+ const context = new Context({
33
+ language: 'en',
34
+ country: 'us'
35
+ });
36
+
37
+ // Create a widget request with the entity "product" and widget ID "rfkid_7":
38
+ const searchWidget = new SearchWidgetItem('product', 'rfkid_7', {
39
+ query: {
40
+ keyphrase: 'shoes'
41
+ },
42
+ content: {
43
+ fields: ['name', 'price', 'brand', 'image_url']
44
+ },
45
+ limit: 10
46
+ });
47
+
48
+ // Call the getWidgetData function with the widget request and the context to retrieve the data:
49
+ const apiData = await getWidgetData(new WidgetRequestData([searchWidget]), context);
50
+ ```
51
+
52
+ Request search content on the server side:
53
+
54
+ ```ts
55
+ import type { NextRequest } from 'next/server';
56
+ import { NextResponse } from 'next/server';
57
+ import { CloudSDK } from '@sitecore-cloudsdk/core/server';
58
+ import { Context, getWidgetData, SearchWidgetItem, WidgetRequestData } from '@sitecore-cloudsdk/search/server';
59
+
60
+ export default async function middleware(request: NextRequest) {
61
+ const response = NextResponse.next();
62
+
63
+ await CloudSDK(request, response, {
64
+ /* Initialization settings. See `core` package code examples. */
65
+ })
66
+ .addEvents()
67
+ .addSearch()
68
+ .initialize();
69
+
70
+ const context = new Context({
71
+ language: 'en',
72
+ country: 'us'
73
+ });
74
+
75
+ // Create a widget request with the entity "product" and widget ID "rfkid_7":
76
+ const searchWidget = new SearchWidgetItem('product', 'rfkid_7', {
77
+ query: {
78
+ keyphrase: 'shoes'
79
+ },
80
+ content: {
81
+ fields: ['name', 'price', 'brand', 'image_url']
82
+ },
83
+ limit: 10
84
+ });
85
+
86
+ // Call the getWidgetData function with the widget request and the context to retrieve the data:
87
+ const apiData = await getWidgetData(new WidgetRequestData([searchWidget]), context);
88
+
89
+ return response;
90
+ }
91
+ ```
92
+
93
+ ## Documentation
94
+
95
+ [Official Sitecore Cloud SDK documentation](https://doc.sitecore.com/xmc/en/developers/sdk/latest/cloud-sdk/index.html)
package/browser.cjs ADDED
@@ -0,0 +1,3 @@
1
+ // © Sitecore Corporation A/S. All rights reserved. Sitecore® is a registered trademark of Sitecore Corporation A/S.
2
+ 'use strict';
3
+ module.exports = require('./dist/cjs/src/browser');
package/browser.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ // © Sitecore Corporation A/S. All rights reserved. Sitecore® is a registered trademark of Sitecore Corporation A/S.
2
+ export * from './dist/esm/src/browser';
package/browser.js ADDED
@@ -0,0 +1,3 @@
1
+ // © Sitecore Corporation A/S. All rights reserved. Sitecore® is a registered trademark of Sitecore Corporation A/S.
2
+ 'use strict';
3
+ export * from './dist/esm/src/browser';
@@ -0,0 +1,40 @@
1
+ {
2
+ "name": "@sitecore-cloudsdk/search",
3
+ "version": "0.5.0-rc.0",
4
+ "license": "Apache-2.0",
5
+ "exports": {
6
+ "./server": {
7
+ "import": "./server.js",
8
+ "require": "./server.cjs",
9
+ "types": "./server.d.ts"
10
+ },
11
+ "./browser": {
12
+ "import": "./browser.js",
13
+ "require": "./browser.cjs",
14
+ "types": "./browser.d.ts"
15
+ }
16
+ },
17
+ "scripts": {
18
+ "build": "npm run build:cjs && npm run build:es",
19
+ "build:cjs": "tsc -b tsconfig.cjs.json",
20
+ "build:es": "tsc -b ."
21
+ },
22
+ "dependencies": {
23
+ "@sitecore-cloudsdk/core": "^0.5.0-rc.0",
24
+ "@sitecore-cloudsdk/events": "^0.5.0-rc.0",
25
+ "@sitecore-cloudsdk/utils": "^0.5.0-rc.0"
26
+ },
27
+ "files": [
28
+ "dist",
29
+ "README.md",
30
+ "browser.js",
31
+ "browser.cjs",
32
+ "browser.d.ts",
33
+ "server.cjs",
34
+ "server.js",
35
+ "server.d.ts"
36
+ ],
37
+ "engines": {
38
+ "node": ">=18"
39
+ }
40
+ }
@@ -0,0 +1,32 @@
1
+ import './lib/initializer/browser/initializer';
2
+ export { WidgetRequestData } from './lib/request-entities/widgets/widget-request-data';
3
+ export { SearchWidgetItem } from './lib/request-entities/widgets/search-widget-item';
4
+ export { RecommendationWidgetItem } from './lib/request-entities/widgets/recommendation-widget-item';
5
+ export { QuestionsAnswersWidgetItem } from './lib/request-entities/widgets/questions-answers-widget-item';
6
+ export { RuleWidgetItem } from './lib/request-entities/widgets/rule-widget-item';
7
+ export { LogicalFilter } from './lib/request-entities/filters/logical-filter';
8
+ export { ComparisonFilter } from './lib/request-entities/filters/comparison-filter';
9
+ export { ComparisonFacetFilter } from './lib/request-entities/filters/facet/comparison-facet-filter';
10
+ export { ListFacetFilter } from './lib/request-entities/filters/facet/list-facet-filter';
11
+ export { GeoFilter } from './lib/request-entities/filters/geo-filter';
12
+ export { ListFilter } from './lib/request-entities/filters/list-filter';
13
+ export { GeoWithinFilter } from './lib/request-entities/filters/geo-within-filter';
14
+ export { Context } from './lib/request-entities/context/context';
15
+ export { LogicalFacetFilter } from './lib/request-entities/filters/facet/logical-facet-filter';
16
+ export { NotFacetFilter } from './lib/request-entities/filters/facet/not-facet-filter';
17
+ export type { BrowserSettings } from './lib/types';
18
+ export type { GeoData, BrowserData, LocaleData, PageData, UserData, StoreData, ContextData, CampaignData } from './lib/request-entities/context/interfaces';
19
+ export type { FacetOptions, QueryOptions, ContentOptions, Recipe, SearchOptions, RecommendationOptions, QuestionsAnswersOptions, ExactAnswerOptions, RelatedQuestionsOptions, FacetSort, SortValue, SearchRankingOptions, SearchPersonalizationOptions, SearchSortOptions, SearchSuggestionOptions, SearchRuleOptions } from './lib/request-entities/widgets/interfaces';
20
+ export type { WidgetItem } from './lib/request-entities/widgets/widget-item';
21
+ export { getWidgetData } from './lib/requests/browser/get-widget-data';
22
+ export { getPageWidgetData } from './lib/requests/browser/get-page-widget-data';
23
+ export { widgetNavigationClick } from './lib/requests/browser/widget-navigation-click-event';
24
+ export { widgetItemClick } from './lib/requests/browser/widget-item-click-event';
25
+ export { widgetSuggestionClick } from './lib/requests/browser/widget-suggestion-click-event';
26
+ export { widgetFacetClick } from './lib/requests/browser/widget-facet-click-event';
27
+ export { widgetView } from './lib/requests/browser/widget-view-event';
28
+ export { entityView } from './lib/requests/browser/entity-view-event';
29
+ export { SEARCH_NAMESPACE } from './lib/consts';
30
+ export type { SearchEventEntity, SearchEventRequest, SuggestionFilterEventParams, FacetFilterEventParams, RangeFacetFilterEventParams, EventFilter, WidgetNavigationClickEventParams, WidgetItemClickEventParams, WidgetSuggestionClickEventParams, WidgetFacetClickEventParams, WidgetViewEventParams, EntityViewEventParams } from './lib/events/interfaces';
31
+ export type { Filter, GeoFilterData, ComparisonOperators, LogicalOperators, ListOperators, GeoOperator, GeoWithinOperator, Operators, LogicalFilterValues, DistanceString, GeoWithinFilterData } from './lib/request-entities/filters/interfaces';
32
+ export type { SearchEndpointResponse } from './lib/requests/post-request';
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SEARCH_NAMESPACE = exports.entityView = exports.widgetView = exports.widgetFacetClick = exports.widgetSuggestionClick = exports.widgetItemClick = exports.widgetNavigationClick = exports.getPageWidgetData = exports.getWidgetData = exports.NotFacetFilter = exports.LogicalFacetFilter = exports.Context = exports.GeoWithinFilter = exports.ListFilter = exports.GeoFilter = exports.ListFacetFilter = exports.ComparisonFacetFilter = exports.ComparisonFilter = exports.LogicalFilter = exports.RuleWidgetItem = exports.QuestionsAnswersWidgetItem = exports.RecommendationWidgetItem = exports.SearchWidgetItem = exports.WidgetRequestData = void 0;
4
+ // © Sitecore Corporation A/S. All rights reserved. Sitecore® is a registered trademark of Sitecore Corporation A/S.
5
+ require("./lib/initializer/browser/initializer");
6
+ var widget_request_data_1 = require("./lib/request-entities/widgets/widget-request-data");
7
+ Object.defineProperty(exports, "WidgetRequestData", { enumerable: true, get: function () { return widget_request_data_1.WidgetRequestData; } });
8
+ var search_widget_item_1 = require("./lib/request-entities/widgets/search-widget-item");
9
+ Object.defineProperty(exports, "SearchWidgetItem", { enumerable: true, get: function () { return search_widget_item_1.SearchWidgetItem; } });
10
+ var recommendation_widget_item_1 = require("./lib/request-entities/widgets/recommendation-widget-item");
11
+ Object.defineProperty(exports, "RecommendationWidgetItem", { enumerable: true, get: function () { return recommendation_widget_item_1.RecommendationWidgetItem; } });
12
+ var questions_answers_widget_item_1 = require("./lib/request-entities/widgets/questions-answers-widget-item");
13
+ Object.defineProperty(exports, "QuestionsAnswersWidgetItem", { enumerable: true, get: function () { return questions_answers_widget_item_1.QuestionsAnswersWidgetItem; } });
14
+ var rule_widget_item_1 = require("./lib/request-entities/widgets/rule-widget-item");
15
+ Object.defineProperty(exports, "RuleWidgetItem", { enumerable: true, get: function () { return rule_widget_item_1.RuleWidgetItem; } });
16
+ var logical_filter_1 = require("./lib/request-entities/filters/logical-filter");
17
+ Object.defineProperty(exports, "LogicalFilter", { enumerable: true, get: function () { return logical_filter_1.LogicalFilter; } });
18
+ var comparison_filter_1 = require("./lib/request-entities/filters/comparison-filter");
19
+ Object.defineProperty(exports, "ComparisonFilter", { enumerable: true, get: function () { return comparison_filter_1.ComparisonFilter; } });
20
+ var comparison_facet_filter_1 = require("./lib/request-entities/filters/facet/comparison-facet-filter");
21
+ Object.defineProperty(exports, "ComparisonFacetFilter", { enumerable: true, get: function () { return comparison_facet_filter_1.ComparisonFacetFilter; } });
22
+ var list_facet_filter_1 = require("./lib/request-entities/filters/facet/list-facet-filter");
23
+ Object.defineProperty(exports, "ListFacetFilter", { enumerable: true, get: function () { return list_facet_filter_1.ListFacetFilter; } });
24
+ var geo_filter_1 = require("./lib/request-entities/filters/geo-filter");
25
+ Object.defineProperty(exports, "GeoFilter", { enumerable: true, get: function () { return geo_filter_1.GeoFilter; } });
26
+ var list_filter_1 = require("./lib/request-entities/filters/list-filter");
27
+ Object.defineProperty(exports, "ListFilter", { enumerable: true, get: function () { return list_filter_1.ListFilter; } });
28
+ var geo_within_filter_1 = require("./lib/request-entities/filters/geo-within-filter");
29
+ Object.defineProperty(exports, "GeoWithinFilter", { enumerable: true, get: function () { return geo_within_filter_1.GeoWithinFilter; } });
30
+ var context_1 = require("./lib/request-entities/context/context");
31
+ Object.defineProperty(exports, "Context", { enumerable: true, get: function () { return context_1.Context; } });
32
+ var logical_facet_filter_1 = require("./lib/request-entities/filters/facet/logical-facet-filter");
33
+ Object.defineProperty(exports, "LogicalFacetFilter", { enumerable: true, get: function () { return logical_facet_filter_1.LogicalFacetFilter; } });
34
+ var not_facet_filter_1 = require("./lib/request-entities/filters/facet/not-facet-filter");
35
+ Object.defineProperty(exports, "NotFacetFilter", { enumerable: true, get: function () { return not_facet_filter_1.NotFacetFilter; } });
36
+ var get_widget_data_1 = require("./lib/requests/browser/get-widget-data");
37
+ Object.defineProperty(exports, "getWidgetData", { enumerable: true, get: function () { return get_widget_data_1.getWidgetData; } });
38
+ var get_page_widget_data_1 = require("./lib/requests/browser/get-page-widget-data");
39
+ Object.defineProperty(exports, "getPageWidgetData", { enumerable: true, get: function () { return get_page_widget_data_1.getPageWidgetData; } });
40
+ var widget_navigation_click_event_1 = require("./lib/requests/browser/widget-navigation-click-event");
41
+ Object.defineProperty(exports, "widgetNavigationClick", { enumerable: true, get: function () { return widget_navigation_click_event_1.widgetNavigationClick; } });
42
+ var widget_item_click_event_1 = require("./lib/requests/browser/widget-item-click-event");
43
+ Object.defineProperty(exports, "widgetItemClick", { enumerable: true, get: function () { return widget_item_click_event_1.widgetItemClick; } });
44
+ var widget_suggestion_click_event_1 = require("./lib/requests/browser/widget-suggestion-click-event");
45
+ Object.defineProperty(exports, "widgetSuggestionClick", { enumerable: true, get: function () { return widget_suggestion_click_event_1.widgetSuggestionClick; } });
46
+ var widget_facet_click_event_1 = require("./lib/requests/browser/widget-facet-click-event");
47
+ Object.defineProperty(exports, "widgetFacetClick", { enumerable: true, get: function () { return widget_facet_click_event_1.widgetFacetClick; } });
48
+ var widget_view_event_1 = require("./lib/requests/browser/widget-view-event");
49
+ Object.defineProperty(exports, "widgetView", { enumerable: true, get: function () { return widget_view_event_1.widgetView; } });
50
+ var entity_view_event_1 = require("./lib/requests/browser/entity-view-event");
51
+ Object.defineProperty(exports, "entityView", { enumerable: true, get: function () { return entity_view_event_1.entityView; } });
52
+ var consts_1 = require("./lib/consts");
53
+ Object.defineProperty(exports, "SEARCH_NAMESPACE", { enumerable: true, get: function () { return consts_1.SEARCH_NAMESPACE; } });
@@ -0,0 +1,38 @@
1
+ export declare const PACKAGE_NAME: string;
2
+ export declare const SEARCH_NAMESPACE = "sitecore-cloudsdk:search";
3
+ export declare enum ErrorMessages {
4
+ IE_0001 = "[IE-0001] You are trying to run a browser-side function on the server side. On the server side, run the server-side equivalent of the function, available in \"server\" modules.",
5
+ IE_0018 = "[IE-0018] You must first initialize the Cloud SDK and the \"search\" package. First, import \"CloudSDK\" from \"@sitecore-cloudsdk/core/browser\", and import \"@sitecore-cloudsdk/search/browser\". Then, run \"CloudSDK().addEvents().addSearch().initialize()\".",
6
+ IE_0019 = "[IE-0019] You must first initialize the Cloud SDK and the \"search\" package. First, import \"CloudSDK\" from \"@sitecore-cloudsdk/core/server\", and import \"@sitecore-cloudsdk/search/server\". Then, run \"await CloudSDK().addEvents().addSearch().initialize()\".",
7
+ IV_0007 = "[IV-0007] Incorrect value for \"limit\". Set the value to an integer between 1 and 100 inclusive.",
8
+ IV_0008 = "[IV-0008] Incorrect value for \"offset\". Set the value to an integer greater than or equal to 0.",
9
+ IV_0009 = "[IV-0009] Incorrect value for \"\u200Bkeyphrase\"\u200B\u200B. Set the value to a string between 1 and 100 characters inclusive.",
10
+ IV_0010 = "[IV-0010] Incorrect value for \"country\". Format the value according to ISO 3166-1 alpha-2.",
11
+ IV_0011 = "[IV-0011] Incorrect value for \"language\". Format the value according to ISO 639.",
12
+ IV_0012 = "[IV-0012] Incorrect value for \"latitude\". Set the value to an integer or decimal between -90.000000 and 90.000000 inclusive.",
13
+ IV_0013 = "[IV-0013] Incorrect value for \"longitude\". Set the value to an integer or decimal between -180.000000 and 180.000000 inclusive.",
14
+ IV_0014 = "[IV-0014] Incorrect value for \"max\"\u200B\u200B. Set the value to an integer between 1 and 100 inclusive.",
15
+ IV_0015 = "[IV-0015] Incorrect value for \"currency\". Format the value according to ISO 4217.",
16
+ IV_0016 = "[IV-0016] Incorrect value for \"name\". Set the value to a non-empty string, and do not include spaces.",
17
+ IV_0017 = "[IV-0017] Incorrect value for \"max\" in \"facet.types\". Set the value to an integer between 1 and 100 inclusive.",
18
+ IV_0018 = "[IV-0018] Incorrect value for \"keyphrase\" in \"facet.types\". Set the value to a string between 1 and 100 inclusive.",
19
+ IV_0019 = "[IV-0019] Incorrect value for \"minCount\" in \"facet.types\". Set the value to an integer between 1 and 100 inclusive.",
20
+ IV_0020 = "[IV-0020] Incorrect value for \"after\" in \"facet.types\". Set the value to a non-empty string, and do not include spaces.",
21
+ IV_0021 = "[IV-0021] You must set \u200B\"sort.name\"\u200B\u200B to \u200B\"text\"\u200B\u200B if you use \"\u200Bafter\"\u200B\u200B. ",
22
+ IV_0022 = "[IV-0022] Incorrect value for \"groupBy\". Set the value to a non-empty string.",
23
+ IV_0023 = "[IV-0023] Incorrect value for recipe \"id\". Set the value to a non-empty string.",
24
+ IV_0024 = "[IV-0024] Incorrect value for recipe \"version\". Set the value to an integer greater than or equal to 1.",
25
+ IV_0025 = "[IV-0025] Incorrect value for \"uri\" in \"page\". Set the value to a relative or absolute path. Examples: \"/products\", \"https://www.example.com/products\".",
26
+ IV_0026 = "[IV-0026] Incorrect value for \"name\" in \"sortValue\". Set the value to a non-empty string.",
27
+ IV_0027 = "[IV-0027] Incorrect value for pin item \"id\". Set the value to a non-empty string.",
28
+ IV_0028 = "[IV-0028] Incorrect value for \"slot\". Set the value to an integer greater than or equal to 0.",
29
+ IV_0029 = "[IV-0029] Incorrect value for \"ranking.weight\". Set the value to an integer or float between 0.1 and 100 inclusive.",
30
+ IV_0030 = "[IV-0030] Incorrect value in \"personalization.attributes\". Set the value to a non-empty string, and do not include spaces.",
31
+ IV_0031 = "[IV-0031] Incorrect value in \"personalization.ids\". Set the value to a non-empty string.",
32
+ MV_0006 = "[MV-0006] \"context.page.uri\" is required.",
33
+ MV_0009 = "[MV-0009] You must set values for both \"groupId\" and \"id\" if you set a value for one of them.",
34
+ MV_0010 = "[MV-0010] \"entity\" is required.",
35
+ MV_0011 = "[MV-0011] \"widgetId\" is required.",
36
+ MV_0012 = "[MV-0012] The \"widgetItems\" array must contain a minimum of 1 item.",
37
+ MV_0013 = "[MV-0013] You must set a value for \"userId\" or \"uuid\"."
38
+ }
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ErrorMessages = exports.SEARCH_NAMESPACE = exports.PACKAGE_NAME = void 0;
7
+ // © Sitecore Corporation A/S. All rights reserved. Sitecore® is a registered trademark of Sitecore Corporation A/S.
8
+ const package_json_1 = __importDefault(require("../../package.json"));
9
+ exports.PACKAGE_NAME = package_json_1.default.name;
10
+ exports.SEARCH_NAMESPACE = 'sitecore-cloudsdk:search';
11
+ /* eslint-disable max-len */
12
+ var ErrorMessages;
13
+ (function (ErrorMessages) {
14
+ ErrorMessages["IE_0001"] = "[IE-0001] You are trying to run a browser-side function on the server side. On the server side, run the server-side equivalent of the function, available in \"server\" modules.";
15
+ ErrorMessages["IE_0018"] = "[IE-0018] You must first initialize the Cloud SDK and the \"search\" package. First, import \"CloudSDK\" from \"@sitecore-cloudsdk/core/browser\", and import \"@sitecore-cloudsdk/search/browser\". Then, run \"CloudSDK().addEvents().addSearch().initialize()\".";
16
+ ErrorMessages["IE_0019"] = "[IE-0019] You must first initialize the Cloud SDK and the \"search\" package. First, import \"CloudSDK\" from \"@sitecore-cloudsdk/core/server\", and import \"@sitecore-cloudsdk/search/server\". Then, run \"await CloudSDK().addEvents().addSearch().initialize()\".";
17
+ ErrorMessages["IV_0007"] = "[IV-0007] Incorrect value for \"limit\". Set the value to an integer between 1 and 100 inclusive.";
18
+ ErrorMessages["IV_0008"] = "[IV-0008] Incorrect value for \"offset\". Set the value to an integer greater than or equal to 0.";
19
+ ErrorMessages["IV_0009"] = "[IV-0009] Incorrect value for \"\u200Bkeyphrase\"\u200B\u200B. Set the value to a string between 1 and 100 characters inclusive.";
20
+ ErrorMessages["IV_0010"] = "[IV-0010] Incorrect value for \"country\". Format the value according to ISO 3166-1 alpha-2.";
21
+ ErrorMessages["IV_0011"] = "[IV-0011] Incorrect value for \"language\". Format the value according to ISO 639.";
22
+ ErrorMessages["IV_0012"] = "[IV-0012] Incorrect value for \"latitude\". Set the value to an integer or decimal between -90.000000 and 90.000000 inclusive.";
23
+ ErrorMessages["IV_0013"] = "[IV-0013] Incorrect value for \"longitude\". Set the value to an integer or decimal between -180.000000 and 180.000000 inclusive.";
24
+ ErrorMessages["IV_0014"] = "[IV-0014] Incorrect value for \"max\"\u200B\u200B. Set the value to an integer between 1 and 100 inclusive.";
25
+ ErrorMessages["IV_0015"] = "[IV-0015] Incorrect value for \"currency\". Format the value according to ISO 4217.";
26
+ ErrorMessages["IV_0016"] = "[IV-0016] Incorrect value for \"name\". Set the value to a non-empty string, and do not include spaces.";
27
+ ErrorMessages["IV_0017"] = "[IV-0017] Incorrect value for \"max\" in \"facet.types\". Set the value to an integer between 1 and 100 inclusive.";
28
+ ErrorMessages["IV_0018"] = "[IV-0018] Incorrect value for \"keyphrase\" in \"facet.types\". Set the value to a string between 1 and 100 inclusive.";
29
+ ErrorMessages["IV_0019"] = "[IV-0019] Incorrect value for \"minCount\" in \"facet.types\". Set the value to an integer between 1 and 100 inclusive.";
30
+ ErrorMessages["IV_0020"] = "[IV-0020] Incorrect value for \"after\" in \"facet.types\". Set the value to a non-empty string, and do not include spaces.";
31
+ ErrorMessages["IV_0021"] = "[IV-0021] You must set \u200B\"sort.name\"\u200B\u200B to \u200B\"text\"\u200B\u200B if you use \"\u200Bafter\"\u200B\u200B. ";
32
+ ErrorMessages["IV_0022"] = "[IV-0022] Incorrect value for \"groupBy\". Set the value to a non-empty string.";
33
+ ErrorMessages["IV_0023"] = "[IV-0023] Incorrect value for recipe \"id\". Set the value to a non-empty string.";
34
+ ErrorMessages["IV_0024"] = "[IV-0024] Incorrect value for recipe \"version\". Set the value to an integer greater than or equal to 1.";
35
+ ErrorMessages["IV_0025"] = "[IV-0025] Incorrect value for \"uri\" in \"page\". Set the value to a relative or absolute path. Examples: \"/products\", \"https://www.example.com/products\".";
36
+ ErrorMessages["IV_0026"] = "[IV-0026] Incorrect value for \"name\" in \"sortValue\". Set the value to a non-empty string.";
37
+ ErrorMessages["IV_0027"] = "[IV-0027] Incorrect value for pin item \"id\". Set the value to a non-empty string.";
38
+ ErrorMessages["IV_0028"] = "[IV-0028] Incorrect value for \"slot\". Set the value to an integer greater than or equal to 0.";
39
+ ErrorMessages["IV_0029"] = "[IV-0029] Incorrect value for \"ranking.weight\". Set the value to an integer or float between 0.1 and 100 inclusive.";
40
+ ErrorMessages["IV_0030"] = "[IV-0030] Incorrect value in \"personalization.attributes\". Set the value to a non-empty string, and do not include spaces.";
41
+ ErrorMessages["IV_0031"] = "[IV-0031] Incorrect value in \"personalization.ids\". Set the value to a non-empty string.";
42
+ ErrorMessages["MV_0006"] = "[MV-0006] \"context.page.uri\" is required.";
43
+ ErrorMessages["MV_0009"] = "[MV-0009] You must set values for both \"groupId\" and \"id\" if you set a value for one of them.";
44
+ ErrorMessages["MV_0010"] = "[MV-0010] \"entity\" is required.";
45
+ ErrorMessages["MV_0011"] = "[MV-0011] \"widgetId\" is required.";
46
+ ErrorMessages["MV_0012"] = "[MV-0012] The \"widgetItems\" array must contain a minimum of 1 item.";
47
+ ErrorMessages["MV_0013"] = "[MV-0013] You must set a value for \"userId\" or \"uuid\".";
48
+ })(ErrorMessages || (exports.ErrorMessages = ErrorMessages = {}));
49
+ /* eslint-enable max-len */
@@ -0,0 +1,22 @@
1
+ import type { NestedObject } from '@sitecore-cloudsdk/utils';
2
+ import type { EntityViewEventParams, SearchEventEntity } from './interfaces';
3
+ export declare class EntityViewEvent {
4
+ protected page?: string;
5
+ protected currency?: string;
6
+ protected language?: string;
7
+ protected pathname: string;
8
+ protected entity: SearchEventEntity;
9
+ /**
10
+ * Creates an entity view event.
11
+ * @param entityViewEventParams - An object with the entity view event params {@link EntityViewEventParams}
12
+ */
13
+ constructor({ page, currency, language, pathname, entity }: EntityViewEventParams);
14
+ private _validate;
15
+ toDTO(): {
16
+ currency: string | undefined;
17
+ language: string | undefined;
18
+ page: string | undefined;
19
+ searchData: NestedObject;
20
+ type: string;
21
+ };
22
+ }
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EntityViewEvent = void 0;
4
+ const consts_1 = require("../consts");
5
+ class EntityViewEvent {
6
+ /**
7
+ * Creates an entity view event.
8
+ * @param entityViewEventParams - An object with the entity view event params {@link EntityViewEventParams}
9
+ */
10
+ constructor({ page, currency, language, pathname, entity }) {
11
+ this._validate(currency, language);
12
+ this.page = page;
13
+ this.currency = currency;
14
+ this.language = language;
15
+ this.pathname = pathname;
16
+ this.entity = entity;
17
+ }
18
+ _validate(currency, language) {
19
+ if (currency !== undefined && currency.length !== 3)
20
+ throw new Error(consts_1.ErrorMessages.IV_0015);
21
+ if (language !== undefined && language.length !== 2)
22
+ throw new Error(consts_1.ErrorMessages.IV_0011);
23
+ }
24
+ toDTO() {
25
+ const eventEntityDTO = {
26
+ attributes: this.entity.attributes,
27
+ entity_subtype: this.entity.entityType,
28
+ entity_type: this.entity.entity,
29
+ id: this.entity.id,
30
+ source_id: this.entity.sourceId,
31
+ uri: this.entity.uri
32
+ };
33
+ return {
34
+ currency: this.currency,
35
+ language: this.language,
36
+ page: this.page,
37
+ searchData: {
38
+ value: {
39
+ context: {
40
+ page: {
41
+ uri: this.pathname
42
+ }
43
+ },
44
+ entities: [eventEntityDTO]
45
+ }
46
+ },
47
+ type: 'VIEW'
48
+ };
49
+ }
50
+ }
51
+ exports.EntityViewEvent = EntityViewEvent;
@@ -0,0 +1,135 @@
1
+ export interface SearchEventEntityDTO {
2
+ id: string;
3
+ entity_type: string;
4
+ entity_subtype?: string;
5
+ uri?: string;
6
+ attributes?: Record<string, string>;
7
+ source_id?: string;
8
+ }
9
+ export interface SearchEventEntity {
10
+ id: string;
11
+ entity: string;
12
+ entityType?: string;
13
+ uri?: string;
14
+ attributes?: Record<string, string>;
15
+ sourceId?: string;
16
+ }
17
+ export interface SearchEventRequestDTO {
18
+ keyword?: string;
19
+ advanced_query_text?: string;
20
+ modified_keyword?: string;
21
+ num_results?: number;
22
+ total_results?: number;
23
+ num_requested?: number;
24
+ page_size?: number;
25
+ page_number?: number;
26
+ redirect_url?: string;
27
+ }
28
+ export interface SearchEventRequest {
29
+ keyword?: string;
30
+ advancedQueryText?: string;
31
+ modifiedKeyword?: string;
32
+ numResults?: number;
33
+ totalResults?: number;
34
+ numRequested?: number;
35
+ pageSize?: number;
36
+ pageNumber?: number;
37
+ redirectUrl?: string;
38
+ }
39
+ export interface EventFilterDTO {
40
+ display_name?: Array<string>;
41
+ start_value?: string;
42
+ end_value?: string;
43
+ facet_position?: string;
44
+ name?: string;
45
+ title?: string;
46
+ value?: Array<string>;
47
+ value_position?: Array<string>;
48
+ }
49
+ export interface SuggestionFilterEventParams {
50
+ name: string;
51
+ title: string;
52
+ value: string;
53
+ valuePosition: number;
54
+ displayName: string;
55
+ }
56
+ export interface SuggestionFilterEventParamsDTO {
57
+ name: string;
58
+ title: string;
59
+ value: string[];
60
+ value_position: number[];
61
+ display_name: string[];
62
+ }
63
+ export interface FacetFilterEventParams extends SuggestionFilterEventParams {
64
+ facetPosition: number;
65
+ }
66
+ export interface FacetFilterEventParamsDTO extends SuggestionFilterEventParamsDTO {
67
+ facet_position: number;
68
+ }
69
+ export interface RangeFacetFilterEventParams extends SuggestionFilterEventParams {
70
+ startValue: string;
71
+ endValue: string;
72
+ }
73
+ export interface RangeFacetFilterEventParamsDTO extends SuggestionFilterEventParamsDTO {
74
+ start_value: string;
75
+ end_value: string;
76
+ facet_position: 0;
77
+ }
78
+ export type EventFilter = SuggestionFilterEventParams | FacetFilterEventParams | RangeFacetFilterEventParams;
79
+ export interface WidgetNavigationClickEventParams {
80
+ pathname: string;
81
+ page?: string;
82
+ itemPosition: number;
83
+ currency?: string;
84
+ language?: string;
85
+ channel?: string;
86
+ widgetId: string;
87
+ }
88
+ export interface WidgetItemClickEventParams {
89
+ request: SearchEventRequest;
90
+ entity: SearchEventEntity;
91
+ itemPosition: number;
92
+ pathname: string;
93
+ widgetId: string;
94
+ page?: string;
95
+ currency?: string;
96
+ language?: string;
97
+ channel?: string;
98
+ }
99
+ export interface WidgetSuggestionClickEventParams {
100
+ request: SearchEventRequest;
101
+ filters?: Array<SuggestionFilterEventParams>;
102
+ pathname: string;
103
+ widgetId: string;
104
+ page?: string;
105
+ currency?: string;
106
+ language?: string;
107
+ channel?: string;
108
+ }
109
+ export interface WidgetFacetClickEventParams {
110
+ request: SearchEventRequest;
111
+ filters: Array<FacetFilterEventParams | RangeFacetFilterEventParams>;
112
+ pathname: string;
113
+ widgetId: string;
114
+ page?: string;
115
+ currency?: string;
116
+ language?: string;
117
+ channel?: string;
118
+ }
119
+ export interface WidgetViewEventParams {
120
+ request: SearchEventRequest;
121
+ entities: Array<SearchEventEntity>;
122
+ pathname: string;
123
+ widgetId: string;
124
+ page?: string;
125
+ currency?: string;
126
+ language?: string;
127
+ channel?: string;
128
+ }
129
+ export interface EntityViewEventParams {
130
+ page?: string;
131
+ currency?: string;
132
+ language?: string;
133
+ pathname: string;
134
+ entity: SearchEventEntity;
135
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ // © Sitecore Corporation A/S. All rights reserved. Sitecore® is a registered trademark of Sitecore Corporation A/S.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,30 @@
1
+ import type { NestedObject } from '@sitecore-cloudsdk/utils';
2
+ import type { FacetFilterEventParams, RangeFacetFilterEventParams, SearchEventRequest, WidgetFacetClickEventParams } from './interfaces';
3
+ export declare class WidgetFacetClickEvent {
4
+ protected request: SearchEventRequest;
5
+ protected pathname: string;
6
+ protected widgetId: string;
7
+ protected page?: string;
8
+ protected currency?: string;
9
+ protected language?: string;
10
+ protected channel?: string;
11
+ protected filters: Array<FacetFilterEventParams | RangeFacetFilterEventParams>;
12
+ /**
13
+ * Creates a search widget facet click event.
14
+ * @param widgetFacetClickEventParams - An object with the widget facet click params
15
+ * {@link WidgetFacetClickEventParams}
16
+ */
17
+ constructor({ request, pathname, widgetId, page, currency, language, channel, filters }: WidgetFacetClickEventParams);
18
+ private _validate;
19
+ private _mapFiltersToDTO;
20
+ private _mapRequestToDTO;
21
+ private _rangeFacetFilterTypeGuard;
22
+ toDTO(): {
23
+ channel: string | undefined;
24
+ currency: string | undefined;
25
+ language: string | undefined;
26
+ page: string | undefined;
27
+ searchData: NestedObject;
28
+ type: string;
29
+ };
30
+ }