@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
@@ -0,0 +1,141 @@
1
+ import type { BrowserData, CampaignData, ContextData, ContextDTO, GeoData, LocaleData, PageData, StoreData, UserData } from './interfaces';
2
+ /**
3
+ * Create context object.
4
+ * @param context - The context object.
5
+ * @returns the validated and mapped context object
6
+ */
7
+ export declare class Context {
8
+ private _campaign?;
9
+ private _locale?;
10
+ private _page?;
11
+ private _store?;
12
+ private _geo?;
13
+ private _user?;
14
+ private _browser?;
15
+ /**
16
+ * @param context - The context object.
17
+ * @returns the validated and mapped context object
18
+ */
19
+ constructor(context: ContextData);
20
+ /**
21
+ * Sets the campaign data.
22
+ * @param campaign - The new value to set.
23
+ *
24
+ */
25
+ set campaign(campaign: CampaignData);
26
+ /**
27
+ * @returns The campaign data.
28
+ */
29
+ get campaign(): CampaignData | undefined;
30
+ /**
31
+ * Sets the campaign data to undefined
32
+ */
33
+ removeCampaign(): void;
34
+ /**
35
+ * Sets the locale data.
36
+ * @param locale - The new value to set.
37
+ *
38
+ */
39
+ set locale(locale: LocaleData);
40
+ /**
41
+ * @returns The locale data.
42
+ */
43
+ get locale(): LocaleData | undefined;
44
+ /**
45
+ * Sets the campaign data to undefined
46
+ */
47
+ removeLocale(): void;
48
+ /**
49
+ * Sets the page data.
50
+ * @param page - The new value to set.
51
+ *
52
+ */
53
+ set page(page: PageData);
54
+ /**
55
+ * @returns The page data.
56
+ */
57
+ get page(): PageData | undefined;
58
+ /**
59
+ * Sets the page data to undefined
60
+ */
61
+ removePage(): void;
62
+ /**
63
+ * Validate context locale object.
64
+ */
65
+ private _validateContextLocale;
66
+ /**
67
+ * Sets the store data.
68
+ * @param store - The new value to set.
69
+ *
70
+ */
71
+ set store(store: StoreData);
72
+ /**
73
+ * @returns The store data.
74
+ */
75
+ get store(): StoreData | undefined;
76
+ /**
77
+ * Sets the store data to undefined
78
+ */
79
+ removeStore(): void;
80
+ /**
81
+ * Sets the geo data.
82
+ * @param geo - The new value to set.
83
+ *
84
+ */
85
+ set geo(geo: GeoData);
86
+ /**
87
+ * @returns The geo data.
88
+ */
89
+ get geo(): GeoData | undefined;
90
+ /**
91
+ * Sets the geo data to undefined
92
+ */
93
+ removeGeo(): void;
94
+ /**
95
+ * Validate location object.
96
+ */
97
+ private _validateLocation;
98
+ /**
99
+ * Sets the user data.
100
+ * @param user - The new value to set.
101
+ */
102
+ set user(user: UserData | undefined);
103
+ /**
104
+ * @returns The user data.
105
+ */
106
+ get user(): UserData | undefined;
107
+ /** Simply removes the user data from the context */
108
+ removeUser(): void;
109
+ /**
110
+ * Validate user object, which is part of the context object.
111
+ * We need to ensure that the user object has `userId` or `uuid`, but not neither.
112
+ * @param user - The user object to validate.
113
+ */
114
+ private _validateUser;
115
+ /**
116
+ * Sets the browser data
117
+ */
118
+ set browser(browser: BrowserData);
119
+ /**
120
+ * @returns The browser data.
121
+ */
122
+ get browser(): BrowserData | undefined;
123
+ /**
124
+ * Sets the browser dta to undefined.
125
+ */
126
+ removeBrowser(): void;
127
+ /**
128
+ * Validate context object.
129
+ */
130
+ private _validateContext;
131
+ /**
132
+ * Validate the `page` object which required a `uri` property.
133
+ * @param page - The page object to validate.
134
+ */
135
+ private _validatePage;
136
+ /**
137
+ * Map context object to DTO.
138
+ * @returns The DTO representation of the filter.
139
+ */
140
+ toDTO(): ContextDTO;
141
+ }
@@ -0,0 +1,273 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Context = void 0;
4
+ // © Sitecore Corporation A/S. All rights reserved. Sitecore® is a registered trademark of Sitecore Corporation A/S.
5
+ const utils_1 = require("@sitecore-cloudsdk/utils");
6
+ const consts_1 = require("../../consts");
7
+ /**
8
+ * Create context object.
9
+ * @param context - The context object.
10
+ * @returns the validated and mapped context object
11
+ */
12
+ class Context {
13
+ /**
14
+ * @param context - The context object.
15
+ * @returns the validated and mapped context object
16
+ */
17
+ constructor(context) {
18
+ this._validateContext(context);
19
+ this._campaign = context.campaign;
20
+ this._locale = context.locale;
21
+ this._page = context.page;
22
+ this._store = context.store;
23
+ this._geo = context.geo;
24
+ this._browser = context.browser;
25
+ this._user = context.user;
26
+ }
27
+ /**
28
+ * Sets the campaign data.
29
+ * @param campaign - The new value to set.
30
+ *
31
+ */
32
+ set campaign(campaign) {
33
+ this._campaign = campaign;
34
+ }
35
+ /**
36
+ * @returns The campaign data.
37
+ */
38
+ get campaign() {
39
+ return this._campaign;
40
+ }
41
+ /**
42
+ * Sets the campaign data to undefined
43
+ */
44
+ removeCampaign() {
45
+ this._campaign = undefined;
46
+ }
47
+ /**
48
+ * Sets the locale data.
49
+ * @param locale - The new value to set.
50
+ *
51
+ */
52
+ set locale(locale) {
53
+ this._validateContextLocale(locale);
54
+ this._locale = locale;
55
+ }
56
+ /**
57
+ * @returns The locale data.
58
+ */
59
+ get locale() {
60
+ return this._locale;
61
+ }
62
+ /**
63
+ * Sets the campaign data to undefined
64
+ */
65
+ removeLocale() {
66
+ this._locale = undefined;
67
+ }
68
+ /**
69
+ * Sets the page data.
70
+ * @param page - The new value to set.
71
+ *
72
+ */
73
+ set page(page) {
74
+ this._validatePage(page);
75
+ this._page = page;
76
+ }
77
+ /**
78
+ * @returns The page data.
79
+ */
80
+ get page() {
81
+ return this._page;
82
+ }
83
+ /**
84
+ * Sets the page data to undefined
85
+ */
86
+ removePage() {
87
+ this._page = undefined;
88
+ }
89
+ /**
90
+ * Validate context locale object.
91
+ */
92
+ _validateContextLocale(locale) {
93
+ if (!locale)
94
+ return;
95
+ if (locale.country.length !== 2)
96
+ throw new Error(consts_1.ErrorMessages.IV_0010);
97
+ if (locale.language.length !== 2)
98
+ throw new Error(consts_1.ErrorMessages.IV_0011);
99
+ }
100
+ /**
101
+ * Sets the store data.
102
+ * @param store - The new value to set.
103
+ *
104
+ */
105
+ set store(store) {
106
+ this._store = store;
107
+ }
108
+ /**
109
+ * @returns The store data.
110
+ */
111
+ get store() {
112
+ return this._store;
113
+ }
114
+ /**
115
+ * Sets the store data to undefined
116
+ */
117
+ removeStore() {
118
+ this._store = undefined;
119
+ }
120
+ /**
121
+ * Sets the geo data.
122
+ * @param geo - The new value to set.
123
+ *
124
+ */
125
+ set geo(geo) {
126
+ if (geo.location)
127
+ this._validateLocation(geo.location);
128
+ this._geo = geo;
129
+ }
130
+ /**
131
+ * @returns The geo data.
132
+ */
133
+ get geo() {
134
+ return this._geo;
135
+ }
136
+ /**
137
+ * Sets the geo data to undefined
138
+ */
139
+ removeGeo() {
140
+ this._geo = undefined;
141
+ }
142
+ /**
143
+ * Validate location object.
144
+ */
145
+ _validateLocation(location) {
146
+ const result = (0, utils_1.isValidLocation)(location);
147
+ if (!result.latitude)
148
+ throw new Error(consts_1.ErrorMessages.IV_0012);
149
+ if (!result.longitude)
150
+ throw new Error(consts_1.ErrorMessages.IV_0013);
151
+ }
152
+ /**
153
+ * Sets the user data.
154
+ * @param user - The new value to set.
155
+ */
156
+ set user(user) {
157
+ this._validateUser(user);
158
+ this._user = user;
159
+ }
160
+ /**
161
+ * @returns The user data.
162
+ */
163
+ get user() {
164
+ return this._user;
165
+ }
166
+ /** Simply removes the user data from the context */
167
+ removeUser() {
168
+ this._user = undefined;
169
+ }
170
+ /**
171
+ * Validate user object, which is part of the context object.
172
+ * We need to ensure that the user object has `userId` or `uuid`, but not neither.
173
+ * @param user - The user object to validate.
174
+ */
175
+ _validateUser(user) {
176
+ if (typeof user !== 'undefined' && !user.userId && !user.uuid)
177
+ throw new Error(consts_1.ErrorMessages.MV_0013);
178
+ }
179
+ /**
180
+ * Sets the browser data
181
+ */
182
+ set browser(browser) {
183
+ this._browser = browser;
184
+ }
185
+ /**
186
+ * @returns The browser data.
187
+ */
188
+ get browser() {
189
+ return this._browser;
190
+ }
191
+ /**
192
+ * Sets the browser dta to undefined.
193
+ */
194
+ removeBrowser() {
195
+ this._browser = undefined;
196
+ }
197
+ /**
198
+ * Validate context object.
199
+ */
200
+ _validateContext(context) {
201
+ this._validateContextLocale(context.locale);
202
+ this._validateUser(context.user);
203
+ this._validatePage(context.page);
204
+ if (context.store && ((context.store.groupId && !context.store.id) || (!context.store.groupId && context.store.id)))
205
+ throw new Error(consts_1.ErrorMessages.MV_0009);
206
+ if (context.geo && context.geo.location)
207
+ this._validateLocation(context.geo.location);
208
+ }
209
+ /**
210
+ * Validate the `page` object which required a `uri` property.
211
+ * @param page - The page object to validate.
212
+ */
213
+ _validatePage(page) {
214
+ if (!page)
215
+ return;
216
+ if (!page.uri || typeof page.uri !== 'string' || !page.uri.trim())
217
+ throw new Error(consts_1.ErrorMessages.IV_0025);
218
+ }
219
+ /**
220
+ * Map context object to DTO.
221
+ * @returns The DTO representation of the filter.
222
+ */
223
+ toDTO() {
224
+ /* eslint-disable @typescript-eslint/naming-convention */
225
+ const dto = {
226
+ context: {
227
+ page: this._page
228
+ }
229
+ };
230
+ if (this._browser)
231
+ dto.context.browser = {
232
+ app_type: this._browser.appType,
233
+ device: this._browser.device,
234
+ user_agent: this._browser.userAgent
235
+ };
236
+ if (this._locale)
237
+ dto.context.locale = {
238
+ country: this._locale.country.toLowerCase(),
239
+ language: this._locale.language.toLowerCase()
240
+ };
241
+ if (this._store)
242
+ dto.context.store = {
243
+ group_id: this._store && this._store.groupId,
244
+ id: this._store && this._store.id
245
+ };
246
+ if (this._geo?.ip)
247
+ dto.context.geo = {
248
+ ip: this._geo.ip
249
+ };
250
+ if (this._user?.userId || this._user?.uuid)
251
+ dto.context.user = {
252
+ custom: this._user.custom,
253
+ groups: this._user.groups,
254
+ user_id: this._user.userId,
255
+ uuid: this._user.uuid
256
+ };
257
+ if (this._geo?.location)
258
+ dto.context.geo = {
259
+ ...dto.context.geo,
260
+ location: { lat: this._geo.location.latitude, lon: this._geo.location.longitude }
261
+ };
262
+ if (this._campaign)
263
+ dto.context.campaign = {
264
+ utm_campaign: this._campaign.campaign,
265
+ utm_content: this._campaign.content,
266
+ utm_medium: this._campaign.medium,
267
+ utm_source: this._campaign.source,
268
+ utm_term: this._campaign.term
269
+ };
270
+ return dto;
271
+ }
272
+ }
273
+ exports.Context = Context;
@@ -0,0 +1,106 @@
1
+ import type { ArrayOfAtLeastOne } from '../filters/interfaces';
2
+ export interface BrowserData {
3
+ appType?: string;
4
+ device?: string;
5
+ userAgent: string;
6
+ }
7
+ export interface LocaleData {
8
+ country: string;
9
+ language: string;
10
+ }
11
+ export interface PageData {
12
+ uri: string;
13
+ }
14
+ export interface UserData {
15
+ custom?: {
16
+ [key: string]: unknown;
17
+ };
18
+ groups?: string[];
19
+ userId?: string;
20
+ uuid?: string;
21
+ }
22
+ export interface StoreData {
23
+ groupId: string;
24
+ id: string;
25
+ }
26
+ export interface IdsDTO {
27
+ [key: string]: ArrayOfAtLeastOne<string>;
28
+ }
29
+ export interface ContextData {
30
+ locale?: LocaleData;
31
+ page?: PageData;
32
+ user?: UserData;
33
+ store?: StoreData;
34
+ campaign?: CampaignData;
35
+ geo?: GeoData;
36
+ browser?: BrowserData;
37
+ }
38
+ export interface BrowserDTO {
39
+ app_type?: string;
40
+ device?: string;
41
+ user_agent: string;
42
+ }
43
+ export interface LocaleDTO {
44
+ country?: string;
45
+ language?: string;
46
+ }
47
+ export interface PageDTO {
48
+ custom?: {
49
+ [key: string]: unknown;
50
+ };
51
+ uri?: string;
52
+ }
53
+ export interface StoreDTO {
54
+ group_id?: string;
55
+ id?: string;
56
+ }
57
+ export interface UserDTO {
58
+ custom?: {
59
+ [key: string]: unknown;
60
+ };
61
+ groups?: string[];
62
+ user_id?: string;
63
+ uuid?: string;
64
+ }
65
+ export interface ContextDTO {
66
+ context: {
67
+ locale?: LocaleDTO;
68
+ page?: PageDTO;
69
+ store?: StoreDTO;
70
+ campaign?: CampaignDTO;
71
+ geo?: GeoDTO;
72
+ user?: UserDTO;
73
+ browser?: BrowserDTO;
74
+ ids?: IdsDTO;
75
+ };
76
+ }
77
+ export interface CampaignData {
78
+ source?: string;
79
+ medium?: string;
80
+ campaign?: string;
81
+ term?: string;
82
+ content?: string;
83
+ }
84
+ export interface CampaignDTO {
85
+ utm_source?: string;
86
+ utm_medium?: string;
87
+ utm_campaign?: string;
88
+ utm_term?: string;
89
+ utm_content?: string;
90
+ }
91
+ export interface LocationData {
92
+ latitude: number;
93
+ longitude: number;
94
+ }
95
+ interface GeoDTO {
96
+ ip?: string;
97
+ location?: {
98
+ lat: number;
99
+ lon: number;
100
+ };
101
+ }
102
+ export interface GeoData {
103
+ ip?: string;
104
+ location?: LocationData;
105
+ }
106
+ export {};
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,17 @@
1
+ import type { Operators } from './interfaces';
2
+ /**
3
+ * Creates BaseFilter object which ComparisonFilter inherits.
4
+ */
5
+ export declare abstract class BaseFilter {
6
+ protected operator: Operators;
7
+ protected value: unknown;
8
+ /**
9
+ * @param operator - The operator to be applied on attribute.
10
+ * @param value - The value to check against of.
11
+ */
12
+ constructor(operator: Operators, value: unknown);
13
+ /**
14
+ * @returns The DTO representation of the filter.
15
+ */
16
+ abstract toDTO(): unknown;
17
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseFilter = void 0;
4
+ /**
5
+ * Creates BaseFilter object which ComparisonFilter inherits.
6
+ */
7
+ class BaseFilter {
8
+ /**
9
+ * @param operator - The operator to be applied on attribute.
10
+ * @param value - The value to check against of.
11
+ */
12
+ constructor(operator, value) {
13
+ this.operator = operator;
14
+ this.value = value;
15
+ }
16
+ }
17
+ exports.BaseFilter = BaseFilter;
@@ -0,0 +1,18 @@
1
+ import { BaseFilter } from './base-filter';
2
+ import type { ComparisonFilterDTO, ComparisonOperators } from './interfaces';
3
+ /**
4
+ * Creates ComparisonFilter object which denotes the base of each filter.
5
+ */
6
+ export declare class ComparisonFilter extends BaseFilter {
7
+ private _attributeName;
8
+ /**
9
+ * @param attributeName - The name of the attribute to filter.
10
+ * @param operator - The operator to be applied on attribute.
11
+ * @param value - The value to check against of.
12
+ */
13
+ constructor(attributeName: string, operator: ComparisonOperators, value: unknown);
14
+ /**
15
+ * @returns The DTO representation of the filter.
16
+ */
17
+ toDTO(): ComparisonFilterDTO;
18
+ }
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ComparisonFilter = void 0;
4
+ // © Sitecore Corporation A/S. All rights reserved. Sitecore® is a registered trademark of Sitecore Corporation A/S.
5
+ const base_filter_1 = require("./base-filter");
6
+ /**
7
+ * Creates ComparisonFilter object which denotes the base of each filter.
8
+ */
9
+ class ComparisonFilter extends base_filter_1.BaseFilter {
10
+ /**
11
+ * @param attributeName - The name of the attribute to filter.
12
+ * @param operator - The operator to be applied on attribute.
13
+ * @param value - The value to check against of.
14
+ */
15
+ constructor(attributeName, operator, value) {
16
+ super(operator, value);
17
+ this._attributeName = attributeName;
18
+ }
19
+ /**
20
+ * @returns The DTO representation of the filter.
21
+ */
22
+ toDTO() {
23
+ return {
24
+ name: this._attributeName,
25
+ type: this.operator,
26
+ value: this.value
27
+ };
28
+ }
29
+ }
30
+ exports.ComparisonFilter = ComparisonFilter;
@@ -0,0 +1,18 @@
1
+ import type { ComparisonOperators } from '../interfaces';
2
+ import type { ComparisonFacetFilterDTO, FacetFilterBase } from './interfaces';
3
+ /**
4
+ * Creates ComparisonFacetFilter object.
5
+ */
6
+ export declare class ComparisonFacetFilter implements FacetFilterBase {
7
+ private _operator;
8
+ private _value;
9
+ /**
10
+ * @param operator - The operator to be applied on attribute.
11
+ * @param value - The value to check against of.
12
+ */
13
+ constructor(operator: ComparisonOperators, value: string);
14
+ /**
15
+ * @returns The DTO representation of the filter.
16
+ */
17
+ toDTO(): ComparisonFacetFilterDTO;
18
+ }
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ComparisonFacetFilter = void 0;
4
+ /**
5
+ * Creates ComparisonFacetFilter object.
6
+ */
7
+ class ComparisonFacetFilter {
8
+ /**
9
+ * @param operator - The operator to be applied on attribute.
10
+ * @param value - The value to check against of.
11
+ */
12
+ constructor(operator, value) {
13
+ this._operator = operator;
14
+ this._value = value;
15
+ }
16
+ /**
17
+ * @returns The DTO representation of the filter.
18
+ */
19
+ toDTO() {
20
+ return {
21
+ type: this._operator,
22
+ value: this._value
23
+ };
24
+ }
25
+ }
26
+ exports.ComparisonFacetFilter = ComparisonFacetFilter;
@@ -0,0 +1,21 @@
1
+ import type { FacetFilterDTO } from '../../widgets/interfaces';
2
+ import type { ArrayOfAtLeastOne, ListOperators, LogicalOperators } from '../interfaces';
3
+ export interface FacetFilterBase {
4
+ toDTO: () => unknown;
5
+ }
6
+ export interface ComparisonFacetFilterDTO {
7
+ type: string;
8
+ value: string;
9
+ }
10
+ export interface ListFacetFilterDTO {
11
+ type: ListOperators;
12
+ values: ArrayOfAtLeastOne<string>;
13
+ }
14
+ export interface NotFacetFilterDTO {
15
+ type: 'not';
16
+ filter: string | FacetFilterDTO;
17
+ }
18
+ export interface LogicalFacetFilterDTO {
19
+ type: Exclude<LogicalOperators, 'not'>;
20
+ filters: ArrayOfAtLeastOne<FacetFilterDTO>;
21
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,18 @@
1
+ import type { ArrayOfAtLeastOne, ListOperators } from '../interfaces';
2
+ import type { FacetFilterBase, ListFacetFilterDTO } from './interfaces';
3
+ /**
4
+ * Creates ListFacetFilter object.
5
+ */
6
+ export declare class ListFacetFilter implements FacetFilterBase {
7
+ private _operator;
8
+ private _values;
9
+ /**
10
+ * @param operator - The operator to be applied on attribute.
11
+ * @param values - The values to check against of.
12
+ */
13
+ constructor(operator: ListOperators, values: ArrayOfAtLeastOne<string>);
14
+ /**
15
+ * @returns The DTO representation of the filter.
16
+ */
17
+ toDTO(): ListFacetFilterDTO;
18
+ }