@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,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ListFacetFilter = void 0;
4
+ /**
5
+ * Creates ListFacetFilter object.
6
+ */
7
+ class ListFacetFilter {
8
+ /**
9
+ * @param operator - The operator to be applied on attribute.
10
+ * @param values - The values to check against of.
11
+ */
12
+ constructor(operator, values) {
13
+ this._operator = operator;
14
+ this._values = values;
15
+ }
16
+ /**
17
+ * @returns The DTO representation of the filter.
18
+ */
19
+ toDTO() {
20
+ return {
21
+ type: this._operator,
22
+ values: this._values
23
+ };
24
+ }
25
+ }
26
+ exports.ListFacetFilter = ListFacetFilter;
@@ -0,0 +1,19 @@
1
+ import type { FacetFilter } from '../../widgets/interfaces';
2
+ import type { LogicalOperators } from '../interfaces';
3
+ import type { FacetFilterBase, LogicalFacetFilterDTO } from './interfaces';
4
+ /**
5
+ * Creates LogicalFacetFilter object.
6
+ */
7
+ export declare class LogicalFacetFilter implements FacetFilterBase {
8
+ private _operator;
9
+ private _value;
10
+ /**
11
+ * @param operator - The operator to be applied on attribute.
12
+ * @param value - The value to check against of.
13
+ */
14
+ constructor(operator: Exclude<LogicalOperators, 'not'>, value: Array<FacetFilter>);
15
+ /**
16
+ * @returns The DTO representation of the filter.
17
+ */
18
+ toDTO(): LogicalFacetFilterDTO;
19
+ }
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LogicalFacetFilter = void 0;
4
+ /**
5
+ * Creates LogicalFacetFilter object.
6
+ */
7
+ class LogicalFacetFilter {
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
+ filters: this._value.map((filter) => filter.toDTO()),
22
+ type: this._operator
23
+ };
24
+ }
25
+ }
26
+ exports.LogicalFacetFilter = LogicalFacetFilter;
@@ -0,0 +1,7 @@
1
+ import type { FacetFilter } from '../../widgets/interfaces';
2
+ import type { FacetFilterBase, NotFacetFilterDTO } from './interfaces';
3
+ export declare class NotFacetFilter implements FacetFilterBase {
4
+ private _value;
5
+ constructor(value: string | FacetFilter);
6
+ toDTO(): NotFacetFilterDTO;
7
+ }
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NotFacetFilter = void 0;
4
+ class NotFacetFilter {
5
+ constructor(value) {
6
+ this._value = value;
7
+ }
8
+ toDTO() {
9
+ /**
10
+ * If the value is a string, it probably means that it is a facet filter id.
11
+ * Otherwise, it is a facet filter object, so we need to convert it to DTO.
12
+ * @example facetid_eyJ0eXBlIjoiZXEiLCJuYW1lIjoicHJvZHVjdCIsInZhbHVlIjoiQ0RQIn0=
13
+ * @example \{"type": "not", "filter": \{ "type": "eq", "value": "test" \}\}
14
+ */
15
+ const filter = typeof this._value === 'string' ? this._value : this._value.toDTO();
16
+ return {
17
+ filter,
18
+ type: 'not'
19
+ };
20
+ }
21
+ }
22
+ exports.NotFacetFilter = NotFacetFilter;
@@ -0,0 +1,19 @@
1
+ import { BaseFilter } from './base-filter';
2
+ import type { GeoFilterData, GeoFilterDTO } from './interfaces';
3
+ export declare const GEO_FILTER_TYPE = "geoDistance";
4
+ /**
5
+ * Creates a GeoFilter object which denotes the base of each filter.
6
+ */
7
+ export declare class GeoFilter extends BaseFilter {
8
+ private _attributeName;
9
+ /**
10
+ * @param attributeName - The name of the attribute to filter.
11
+ * @param geoFilterData - The geo filter data like location and distance.
12
+ */
13
+ constructor(attributeName: string, geoFilterData?: GeoFilterData);
14
+ private _validateLocation;
15
+ /**
16
+ * @returns The DTO representation of the filter.
17
+ */
18
+ toDTO(): GeoFilterDTO;
19
+ }
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GeoFilter = exports.GEO_FILTER_TYPE = 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
+ const base_filter_1 = require("./base-filter");
8
+ exports.GEO_FILTER_TYPE = 'geoDistance';
9
+ /**
10
+ * Creates a GeoFilter object which denotes the base of each filter.
11
+ */
12
+ class GeoFilter extends base_filter_1.BaseFilter {
13
+ /**
14
+ * @param attributeName - The name of the attribute to filter.
15
+ * @param geoFilterData - The geo filter data like location and distance.
16
+ */
17
+ constructor(attributeName, geoFilterData) {
18
+ super(exports.GEO_FILTER_TYPE, geoFilterData);
19
+ if (geoFilterData?.location)
20
+ this._validateLocation(geoFilterData.location);
21
+ this._attributeName = attributeName;
22
+ }
23
+ _validateLocation(location) {
24
+ const result = (0, utils_1.isValidLocation)(location);
25
+ if (!result.latitude)
26
+ throw new Error(consts_1.ErrorMessages.IV_0012);
27
+ if (!result.longitude)
28
+ throw new Error(consts_1.ErrorMessages.IV_0013);
29
+ }
30
+ /**
31
+ * @returns The DTO representation of the filter.
32
+ */
33
+ toDTO() {
34
+ const dto = {
35
+ name: this._attributeName,
36
+ type: exports.GEO_FILTER_TYPE
37
+ };
38
+ if (this.value && this.value.distance)
39
+ dto.distance = this.value.distance;
40
+ if (this.value && this.value.location) {
41
+ /* eslint-disable @typescript-eslint/no-non-null-assertion */
42
+ dto.lat = this.value.location.latitude;
43
+ dto.lon = this.value.location.longitude;
44
+ /* eslint-enable @typescript-eslint/no-non-null-assertion */
45
+ }
46
+ return dto;
47
+ }
48
+ }
49
+ exports.GeoFilter = GeoFilter;
@@ -0,0 +1,19 @@
1
+ import { BaseFilter } from './base-filter';
2
+ import type { GeoWithinFilterData, GeoWithinFilterDTO } from './interfaces';
3
+ export declare const GEO_FILTER_TYPE = "geoWithin";
4
+ /**
5
+ * Creates a GeoWithinFilter object which denotes the base of each filter.
6
+ */
7
+ export declare class GeoWithinFilter extends BaseFilter {
8
+ private _attributeName;
9
+ /**
10
+ * @param attributeName - The name of the attribute to filter.
11
+ * @param geoWithinFilterData - The geo within filter data. Array of location objects.
12
+ */
13
+ constructor(attributeName: string, geoWithinFilterData: GeoWithinFilterData);
14
+ private _validateLocation;
15
+ /**
16
+ * @returns The DTO representation of the filter.
17
+ */
18
+ toDTO(): GeoWithinFilterDTO;
19
+ }
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GeoWithinFilter = exports.GEO_FILTER_TYPE = 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
+ const base_filter_1 = require("./base-filter");
8
+ exports.GEO_FILTER_TYPE = 'geoWithin';
9
+ /**
10
+ * Creates a GeoWithinFilter object which denotes the base of each filter.
11
+ */
12
+ class GeoWithinFilter extends base_filter_1.BaseFilter {
13
+ /**
14
+ * @param attributeName - The name of the attribute to filter.
15
+ * @param geoWithinFilterData - The geo within filter data. Array of location objects.
16
+ */
17
+ constructor(attributeName, geoWithinFilterData) {
18
+ super(exports.GEO_FILTER_TYPE, geoWithinFilterData);
19
+ geoWithinFilterData.forEach((location) => this._validateLocation(location));
20
+ this._attributeName = attributeName;
21
+ }
22
+ _validateLocation(location) {
23
+ const result = (0, utils_1.isValidLocation)(location);
24
+ if (!result.latitude)
25
+ throw new Error(consts_1.ErrorMessages.IV_0012);
26
+ if (!result.longitude)
27
+ throw new Error(consts_1.ErrorMessages.IV_0013);
28
+ }
29
+ /**
30
+ * @returns The DTO representation of the filter.
31
+ */
32
+ toDTO() {
33
+ const dto = {
34
+ coordinates: this.value.map((location) => ({
35
+ lat: location.latitude,
36
+ lon: location.longitude
37
+ })),
38
+ name: this._attributeName,
39
+ type: exports.GEO_FILTER_TYPE
40
+ };
41
+ return dto;
42
+ }
43
+ }
44
+ exports.GeoWithinFilter = GeoWithinFilter;
@@ -0,0 +1,66 @@
1
+ import type { LocationData } from '../context/interfaces';
2
+ import type { BaseFilter } from './base-filter';
3
+ import type { ComparisonFilter } from './comparison-filter';
4
+ import type { GeoFilter } from './geo-filter';
5
+ import type { GeoWithinFilter } from './geo-within-filter';
6
+ import type { ListFilter } from './list-filter';
7
+ import type { LogicalFilter } from './logical-filter';
8
+ export type Filter = LogicalFilter<keyof LogicalFilterValues> | GeoFilter | ComparisonFilter | ListFilter | GeoWithinFilter;
9
+ export type FilterDTO = LogicalFilterDTO | NotFilterDTO | GeoFilterDTO | ComparisonFilterDTO | ListFilterDTO | GeoWithinFilterDTO;
10
+ export interface ComparisonFilterDTO {
11
+ name: string;
12
+ type: string;
13
+ value: unknown;
14
+ }
15
+ export interface ListFilterDTO {
16
+ name: string;
17
+ type: string;
18
+ values: unknown[];
19
+ }
20
+ export interface LogicalFilterDTO {
21
+ filters: ArrayOfAtLeastTwo<ComparisonFilterDTO | LogicalFilterDTO | NotFilterDTO>;
22
+ type: string;
23
+ }
24
+ export interface GeoFilterData {
25
+ distance?: DistanceString;
26
+ location?: LocationData;
27
+ }
28
+ export type GeoWithinFilterData = ArrayOfAtLeastThree<LocationData>;
29
+ export interface GeoFilterDTO {
30
+ distance?: DistanceString;
31
+ name: string;
32
+ type: GeoOperator;
33
+ lat?: number;
34
+ lon?: number;
35
+ }
36
+ export interface LocationDTO {
37
+ lat: number;
38
+ lon: number;
39
+ }
40
+ export interface GeoWithinFilterDTO {
41
+ name: string;
42
+ type: GeoWithinOperator;
43
+ coordinates: ArrayOfAtLeastThree<LocationDTO>;
44
+ }
45
+ export type DistanceString = `${number}${DistanceUnits}`;
46
+ type DistanceUnits = 'in' | 'ft' | 'yd' | 'nmi' | 'km' | 'm' | 'cm' | 'mm';
47
+ export interface NotFilterDTO {
48
+ type: string;
49
+ filter: ComparisonFilterDTO | LogicalFilterDTO;
50
+ }
51
+ export type ComparisonOperators = 'eq' | 'gt' | 'gte' | 'lt' | 'lte';
52
+ export type LogicalOperators = 'and' | 'or' | 'not';
53
+ export type ListOperators = 'allOf' | 'anyOf';
54
+ export type GeoOperator = 'geoDistance';
55
+ export type GeoWithinOperator = 'geoWithin';
56
+ export type Operators = ComparisonOperators | LogicalOperators | GeoOperator | GeoWithinOperator | ListOperators;
57
+ export interface LogicalFilterValues {
58
+ not: BaseFilter;
59
+ or: ArrayOfAtLeastTwo<BaseFilter>;
60
+ and: ArrayOfAtLeastTwo<BaseFilter>;
61
+ }
62
+ export type ArrayOfAtLeastOne<T> = [T, ...T[]];
63
+ export type ArrayOfAtLeastTwo<T> = [T, T, ...T[]];
64
+ export type ArrayOfAtLeastThree<T> = [T, T, T, ...T[]];
65
+ export type PickLogicalDTO<T extends keyof LogicalFilterValues> = T extends 'not' ? NotFilterDTO : LogicalFilterDTO;
66
+ export {};
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,18 @@
1
+ import { BaseFilter } from './base-filter';
2
+ import type { ListFilterDTO, ListOperators } from './interfaces';
3
+ /**
4
+ * Creates ListFilter object which denotes the base of each filter.
5
+ */
6
+ export declare class ListFilter 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: ListOperators, value: unknown[]);
14
+ /**
15
+ * @returns The DTO representation of the filter.
16
+ */
17
+ toDTO(): ListFilterDTO;
18
+ }
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ListFilter = 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 ListFilter object which denotes the base of each filter.
8
+ */
9
+ class ListFilter 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
+ values: this.value
27
+ };
28
+ }
29
+ }
30
+ exports.ListFilter = ListFilter;
@@ -0,0 +1,16 @@
1
+ import { BaseFilter } from './base-filter';
2
+ import type { LogicalFilterValues, PickLogicalDTO } from './interfaces';
3
+ /**
4
+ * Creates a LogicalFilter object which denotes the base of each filter.
5
+ */
6
+ export declare class LogicalFilter<T extends keyof LogicalFilterValues> extends BaseFilter {
7
+ /**
8
+ * @param operator - The operator to be applied on attribute.
9
+ * @param value - The value to check against. Using "and" or the "or" filter, you must include minimum 2 filters.
10
+ */
11
+ constructor(operator: T, value: LogicalFilterValues[T]);
12
+ /**
13
+ * @returns The DTO representation of the filter.
14
+ */
15
+ toDTO(): PickLogicalDTO<T>;
16
+ }
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LogicalFilter = 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 a LogicalFilter object which denotes the base of each filter.
8
+ */
9
+ class LogicalFilter extends base_filter_1.BaseFilter {
10
+ /**
11
+ * @param operator - The operator to be applied on attribute.
12
+ * @param value - The value to check against. Using "and" or the "or" filter, you must include minimum 2 filters.
13
+ */
14
+ constructor(operator, value) {
15
+ super(operator, value);
16
+ }
17
+ /**
18
+ * @returns The DTO representation of the filter.
19
+ */
20
+ toDTO() {
21
+ if (this.operator === 'not')
22
+ return {
23
+ filter: this.value.toDTO(),
24
+ type: this.operator
25
+ };
26
+ return {
27
+ filters: this.value.map((filter) => filter.toDTO()),
28
+ type: this.operator
29
+ };
30
+ }
31
+ }
32
+ exports.LogicalFilter = LogicalFilter;