@pnp/sp 2.7.0 → 2.11.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 (309) hide show
  1. package/LICENSE +25 -25
  2. package/appcatalog/index.d.ts +8 -8
  3. package/appcatalog/index.js +30 -30
  4. package/appcatalog/types.d.ts +81 -81
  5. package/appcatalog/types.js +177 -177
  6. package/appcatalog/web.d.ts +16 -16
  7. package/appcatalog/web.js +6 -6
  8. package/attachments/index.d.ts +2 -2
  9. package/attachments/index.js +2 -2
  10. package/attachments/item.d.ts +12 -12
  11. package/attachments/item.js +4 -4
  12. package/attachments/types.d.ts +92 -92
  13. package/attachments/types.js +240 -240
  14. package/batch.d.ts +17 -17
  15. package/batch.js +223 -223
  16. package/batch.js.map +1 -1
  17. package/clientside-pages/funcs.d.ts +22 -22
  18. package/clientside-pages/funcs.js +25 -25
  19. package/clientside-pages/index.d.ts +2 -2
  20. package/clientside-pages/index.js +2 -2
  21. package/clientside-pages/types.d.ts +496 -494
  22. package/clientside-pages/types.d.ts.map +1 -1
  23. package/clientside-pages/types.js +1496 -1485
  24. package/clientside-pages/types.js.map +1 -1
  25. package/clientside-pages/web.d.ts +41 -41
  26. package/clientside-pages/web.js +57 -57
  27. package/column-defaults/folder.d.ts +27 -27
  28. package/column-defaults/folder.js +82 -82
  29. package/column-defaults/index.d.ts +3 -3
  30. package/column-defaults/index.js +2 -2
  31. package/column-defaults/list.d.ts +19 -19
  32. package/column-defaults/list.js +198 -198
  33. package/column-defaults/types.d.ts +21 -21
  34. package/column-defaults/types.js +1 -1
  35. package/comments/clientside-page.d.ts +57 -57
  36. package/comments/clientside-page.d.ts.map +1 -1
  37. package/comments/clientside-page.js +136 -136
  38. package/comments/index.d.ts +2 -2
  39. package/comments/index.js +2 -2
  40. package/comments/item.d.ts +29 -29
  41. package/comments/item.js +47 -47
  42. package/comments/types.d.ts +107 -107
  43. package/comments/types.d.ts.map +1 -1
  44. package/comments/types.js +145 -145
  45. package/comments/types.js.map +1 -1
  46. package/content-types/index.d.ts +4 -4
  47. package/content-types/index.js +4 -4
  48. package/content-types/item.d.ts +12 -12
  49. package/content-types/item.js +4 -4
  50. package/content-types/list.d.ts +12 -12
  51. package/content-types/list.js +4 -4
  52. package/content-types/types.d.ts +107 -107
  53. package/content-types/types.js +166 -166
  54. package/content-types/web.d.ts +12 -12
  55. package/content-types/web.js +4 -4
  56. package/decorators.d.ts +11 -11
  57. package/decorators.js +28 -28
  58. package/features/index.d.ts +3 -3
  59. package/features/index.js +3 -3
  60. package/features/site.d.ts +12 -12
  61. package/features/site.js +4 -4
  62. package/features/types.d.ts +47 -47
  63. package/features/types.js +109 -109
  64. package/features/web.d.ts +12 -12
  65. package/features/web.js +4 -4
  66. package/fields/index.d.ts +4 -4
  67. package/fields/index.js +4 -4
  68. package/fields/list.d.ts +12 -12
  69. package/fields/list.js +4 -4
  70. package/fields/types.d.ts +368 -361
  71. package/fields/types.d.ts.map +1 -1
  72. package/fields/types.js +624 -609
  73. package/fields/types.js.map +1 -1
  74. package/fields/web.d.ts +17 -17
  75. package/fields/web.js +5 -5
  76. package/files/folder.d.ts +12 -12
  77. package/files/folder.js +4 -4
  78. package/files/index.d.ts +4 -4
  79. package/files/index.js +4 -4
  80. package/files/item.d.ts +12 -12
  81. package/files/item.js +4 -4
  82. package/files/types.d.ts +421 -421
  83. package/files/types.js +853 -853
  84. package/files/types.js.map +1 -1
  85. package/files/web.d.ts +35 -35
  86. package/files/web.js +15 -15
  87. package/folders/index.d.ts +4 -4
  88. package/folders/index.js +4 -4
  89. package/folders/item.d.ts +9 -9
  90. package/folders/item.js +4 -4
  91. package/folders/list.d.ts +12 -12
  92. package/folders/list.js +4 -4
  93. package/folders/types.d.ts +207 -207
  94. package/folders/types.js +433 -433
  95. package/folders/types.js.map +1 -1
  96. package/folders/web.d.ts +39 -39
  97. package/folders/web.js +15 -15
  98. package/forms/index.d.ts +2 -2
  99. package/forms/index.js +2 -2
  100. package/forms/list.d.ts +9 -9
  101. package/forms/list.js +4 -4
  102. package/forms/types.d.ts +35 -35
  103. package/forms/types.js +41 -41
  104. package/hubsites/index.d.ts +12 -12
  105. package/hubsites/index.js +15 -15
  106. package/hubsites/site.d.ts +26 -26
  107. package/hubsites/site.js +39 -39
  108. package/hubsites/types.d.ts +55 -55
  109. package/hubsites/types.js +53 -53
  110. package/hubsites/web.d.ts +21 -21
  111. package/hubsites/web.js +23 -23
  112. package/index.d.ts +14 -14
  113. package/index.js +13 -13
  114. package/items/index.d.ts +2 -2
  115. package/items/index.js +2 -2
  116. package/items/list.d.ts +9 -9
  117. package/items/list.js +4 -4
  118. package/items/types.d.ts +226 -219
  119. package/items/types.d.ts.map +1 -1
  120. package/items/types.js +549 -511
  121. package/items/types.js.map +1 -1
  122. package/lists/index.d.ts +2 -2
  123. package/lists/index.js +2 -2
  124. package/lists/types.d.ts +495 -495
  125. package/lists/types.js +522 -522
  126. package/lists/types.js.map +1 -1
  127. package/lists/web.d.ts +43 -43
  128. package/lists/web.js +27 -27
  129. package/navigation/index.d.ts +8 -8
  130. package/navigation/index.js +14 -14
  131. package/navigation/types.d.ts +154 -154
  132. package/navigation/types.js +219 -219
  133. package/navigation/web.d.ts +13 -13
  134. package/navigation/web.js +4 -4
  135. package/odata.d.ts +5 -5
  136. package/odata.js +90 -90
  137. package/odata.js.map +1 -1
  138. package/operations.d.ts +9 -9
  139. package/operations.js +63 -63
  140. package/package.json +4 -4
  141. package/presets/all.d.ts +72 -72
  142. package/presets/all.js +72 -72
  143. package/presets/core.d.ts +11 -11
  144. package/presets/core.js +11 -11
  145. package/profiles/index.d.ts +7 -7
  146. package/profiles/index.js +13 -13
  147. package/profiles/types.d.ts +357 -357
  148. package/profiles/types.js +454 -454
  149. package/readme.md +21 -21
  150. package/regional-settings/content-type.d.ts +7 -7
  151. package/regional-settings/content-type.js +4 -4
  152. package/regional-settings/field.d.ts +7 -7
  153. package/regional-settings/field.js +4 -4
  154. package/regional-settings/funcs.d.ts +2 -2
  155. package/regional-settings/funcs.js +8 -8
  156. package/regional-settings/index.d.ts +6 -6
  157. package/regional-settings/index.js +6 -6
  158. package/regional-settings/list.d.ts +7 -7
  159. package/regional-settings/list.js +4 -4
  160. package/regional-settings/types.d.ts +111 -111
  161. package/regional-settings/types.js +159 -159
  162. package/regional-settings/user-custom-actions.d.ts +7 -7
  163. package/regional-settings/user-custom-actions.js +4 -4
  164. package/regional-settings/web.d.ts +12 -12
  165. package/regional-settings/web.js +7 -7
  166. package/related-items/index.d.ts +1 -1
  167. package/related-items/index.js +1 -1
  168. package/related-items/types.d.ts +76 -76
  169. package/related-items/types.js +103 -103
  170. package/related-items/web.d.ts +12 -12
  171. package/related-items/web.js +9 -9
  172. package/rest.d.ts +44 -44
  173. package/rest.js +72 -72
  174. package/search/index.d.ts +30 -30
  175. package/search/index.js +25 -25
  176. package/search/query.d.ts +62 -62
  177. package/search/query.js +302 -302
  178. package/search/suggest.d.ts +76 -76
  179. package/search/suggest.js +66 -66
  180. package/search/types.d.ts +426 -426
  181. package/search/types.js +57 -57
  182. package/security/funcs.d.ts +43 -43
  183. package/security/funcs.js +142 -142
  184. package/security/index.d.ts +4 -4
  185. package/security/index.js +4 -4
  186. package/security/item.d.ts +7 -7
  187. package/security/item.js +14 -14
  188. package/security/list.d.ts +7 -7
  189. package/security/list.js +14 -14
  190. package/security/types.d.ts +318 -318
  191. package/security/types.js +399 -399
  192. package/security/web.d.ts +9 -9
  193. package/security/web.js +15 -15
  194. package/sharepointqueryable.d.ts +135 -135
  195. package/sharepointqueryable.js +265 -265
  196. package/sharing/file.d.ts +18 -18
  197. package/sharing/file.d.ts.map +1 -1
  198. package/sharing/file.js +116 -15
  199. package/sharing/file.js.map +1 -1
  200. package/sharing/folder.d.ts +9 -9
  201. package/sharing/folder.js +136 -136
  202. package/sharing/funcs.d.ts +62 -62
  203. package/sharing/funcs.js +239 -239
  204. package/sharing/funcs.js.map +1 -1
  205. package/sharing/index.d.ts +5 -5
  206. package/sharing/index.js +5 -5
  207. package/sharing/item.d.ts +16 -16
  208. package/sharing/item.js +15 -15
  209. package/sharing/types.d.ts +583 -583
  210. package/sharing/types.js +113 -113
  211. package/sharing/web.d.ts +19 -19
  212. package/sharing/web.js +76 -76
  213. package/site-designs/index.d.ts +8 -8
  214. package/site-designs/index.js +14 -14
  215. package/site-designs/types.d.ts +319 -319
  216. package/site-designs/types.js +203 -203
  217. package/site-designs/web.d.ts +25 -25
  218. package/site-designs/web.js +11 -11
  219. package/site-groups/index.d.ts +2 -2
  220. package/site-groups/index.js +2 -2
  221. package/site-groups/types.d.ts +89 -89
  222. package/site-groups/types.js +125 -125
  223. package/site-groups/web.d.ts +40 -40
  224. package/site-groups/web.js +30 -30
  225. package/site-scripts/index.d.ts +9 -9
  226. package/site-scripts/index.js +15 -15
  227. package/site-scripts/list.d.ts +12 -12
  228. package/site-scripts/list.js +24 -24
  229. package/site-scripts/types.d.ts +183 -183
  230. package/site-scripts/types.js +141 -141
  231. package/site-scripts/web.d.ts +13 -13
  232. package/site-scripts/web.js +5 -5
  233. package/site-users/index.d.ts +2 -2
  234. package/site-users/index.js +2 -2
  235. package/site-users/types.d.ts +138 -138
  236. package/site-users/types.js +122 -122
  237. package/site-users/web.d.ts +31 -31
  238. package/site-users/web.js +27 -27
  239. package/sites/index.d.ts +7 -7
  240. package/sites/index.js +13 -13
  241. package/sites/types.d.ts +147 -147
  242. package/sites/types.js +321 -321
  243. package/social/index.d.ts +10 -10
  244. package/social/index.js +13 -13
  245. package/social/types.d.ts +309 -309
  246. package/social/types.js +322 -322
  247. package/sphttpclient.d.ts +18 -18
  248. package/sphttpclient.js +189 -189
  249. package/splibconfig.d.ts +22 -22
  250. package/splibconfig.js +13 -13
  251. package/sputilities/index.d.ts +7 -7
  252. package/sputilities/index.js +13 -13
  253. package/sputilities/types.d.ts +130 -130
  254. package/sputilities/types.js +118 -118
  255. package/subscriptions/index.d.ts +2 -2
  256. package/subscriptions/index.js +2 -2
  257. package/subscriptions/list.d.ts +13 -13
  258. package/subscriptions/list.js +4 -4
  259. package/subscriptions/types.d.ts +54 -54
  260. package/subscriptions/types.js +111 -111
  261. package/taxonomy/index.d.ts +7 -7
  262. package/taxonomy/index.js +13 -13
  263. package/taxonomy/types.d.ts +200 -200
  264. package/taxonomy/types.js +347 -347
  265. package/taxonomy/types.js.map +1 -1
  266. package/telemetry.d.ts +12 -12
  267. package/telemetry.js +48 -48
  268. package/types.d.ts +218 -218
  269. package/types.js +79 -79
  270. package/user-custom-actions/index.d.ts +4 -4
  271. package/user-custom-actions/index.js +4 -4
  272. package/user-custom-actions/list.d.ts +12 -12
  273. package/user-custom-actions/list.js +4 -4
  274. package/user-custom-actions/site.d.ts +12 -12
  275. package/user-custom-actions/site.js +4 -4
  276. package/user-custom-actions/types.d.ts +82 -82
  277. package/user-custom-actions/types.js +93 -93
  278. package/user-custom-actions/web.d.ts +15 -15
  279. package/user-custom-actions/web.js +4 -4
  280. package/utils/escapeQueryStrValue.d.ts +1 -1
  281. package/utils/escapeQueryStrValue.js +19 -19
  282. package/utils/extractweburl.d.ts +1 -1
  283. package/utils/extractweburl.js +15 -15
  284. package/utils/file-names.d.ts +17 -17
  285. package/utils/file-names.js +38 -38
  286. package/utils/metadata.d.ts +5 -5
  287. package/utils/metadata.js +5 -5
  288. package/utils/objectToSPKeyValueCollection.d.ts +20 -20
  289. package/utils/objectToSPKeyValueCollection.js +16 -16
  290. package/utils/toResourcePath.d.ts +7 -7
  291. package/utils/toResourcePath.js +6 -6
  292. package/utils/toabsoluteurl.d.ts +7 -7
  293. package/utils/toabsoluteurl.js +61 -61
  294. package/views/index.d.ts +2 -2
  295. package/views/index.js +2 -2
  296. package/views/list.d.ts +23 -23
  297. package/views/list.js +8 -8
  298. package/views/types.d.ts +140 -140
  299. package/views/types.js +184 -184
  300. package/webparts/file.d.ts +15 -15
  301. package/webparts/file.js +6 -6
  302. package/webparts/index.d.ts +2 -2
  303. package/webparts/index.js +2 -2
  304. package/webparts/types.d.ts +83 -83
  305. package/webparts/types.js +117 -117
  306. package/webs/index.d.ts +16 -16
  307. package/webs/index.js +16 -16
  308. package/webs/types.d.ts +210 -210
  309. package/webs/types.js +295 -295
package/search/query.js CHANGED
@@ -1,303 +1,303 @@
1
- import { __awaiter, __decorate, __extends, __generator, __values } from "tslib";
2
- import { _SharePointQueryableInstance } from "../sharepointqueryable.js";
3
- import { assign, hOP, getHashCode, objectDefinedNotNull, isArray, DefaultRuntime, stringIsNullOrEmpty } from "@pnp/common";
4
- import { metadata } from "../utils/metadata.js";
5
- import { CachingOptions, body } from "@pnp/odata";
6
- import { spPost } from "../operations.js";
7
- import { defaultPath } from "../decorators.js";
8
- import { tag } from "../telemetry.js";
9
- var funcs = new Map([
10
- ["text", "Querytext"],
11
- ["template", "QueryTemplate"],
12
- ["sourceId", "SourceId"],
13
- ["trimDuplicatesIncludeId", ""],
14
- ["startRow", ""],
15
- ["rowLimit", ""],
16
- ["rankingModelId", ""],
17
- ["rowsPerPage", ""],
18
- ["selectProperties", ""],
19
- ["culture", ""],
20
- ["timeZoneId", ""],
21
- ["refinementFilters", ""],
22
- ["refiners", ""],
23
- ["hiddenConstraints", ""],
24
- ["sortList", ""],
25
- ["timeout", ""],
26
- ["hitHighlightedProperties", ""],
27
- ["clientType", ""],
28
- ["personalizationData", ""],
29
- ["resultsURL", ""],
30
- ["queryTag", ""],
31
- ["properties", ""],
32
- ["queryTemplatePropertiesUrl", ""],
33
- ["reorderingRules", ""],
34
- ["hitHighlightedMultivaluePropertyLimit", ""],
35
- ["collapseSpecification", ""],
36
- ["uiLanguage", ""],
37
- ["desiredSnippetLength", ""],
38
- ["maxSnippetLength", ""],
39
- ["summaryLength", ""],
40
- ]);
41
- var props = new Map([]);
42
- function toPropCase(str) {
43
- return str.replace(/^(.)/, function ($1) { return $1.toUpperCase(); });
44
- }
45
- /**
46
- * Creates a new instance of the SearchQueryBuilder
47
- *
48
- * @param queryText Initial query text
49
- * @param _query Any initial query configuration
50
- */
51
- export function SearchQueryBuilder(queryText, _query) {
52
- if (queryText === void 0) { queryText = ""; }
53
- if (_query === void 0) { _query = {}; }
54
- return new Proxy({
55
- query: Object.assign({
56
- Querytext: queryText,
57
- }, _query),
58
- }, {
59
- get: function (self, propertyKey, proxy) {
60
- var pk = propertyKey.toString();
61
- if (pk === "toSearchQuery") {
62
- return function () { return self.query; };
63
- }
64
- if (funcs.has(pk)) {
65
- return function () {
66
- var value = [];
67
- for (var _i = 0; _i < arguments.length; _i++) {
68
- value[_i] = arguments[_i];
69
- }
70
- var mappedPk = funcs.get(pk);
71
- self.query[mappedPk.length > 0 ? mappedPk : toPropCase(pk)] = value.length > 1 ? value : value[0];
72
- return proxy;
73
- };
74
- }
75
- var propKey = props.has(pk) ? props.get(pk) : toPropCase(pk);
76
- self.query[propKey] = true;
77
- return proxy;
78
- },
79
- });
80
- }
81
- var queryRegex = /_api\/search\/postquery$/i;
82
- /**
83
- * Describes the search API
84
- *
85
- */
86
- var _Search = /** @class */ (function (_super) {
87
- __extends(_Search, _super);
88
- function _Search() {
89
- return _super !== null && _super.apply(this, arguments) || this;
90
- }
91
- /**
92
- * @returns Promise
93
- */
94
- _Search.prototype.execute = function (queryInit) {
95
- return __awaiter(this, void 0, void 0, function () {
96
- var query, postBody, cacheKey, data;
97
- return __generator(this, function (_a) {
98
- switch (_a.label) {
99
- case 0:
100
- query = this.parseQuery(queryInit);
101
- postBody = body({
102
- request: assign(metadata("Microsoft.Office.Server.Search.REST.SearchRequest"), Object.assign({}, query, {
103
- HitHighlightedProperties: this.fixArrProp(query.HitHighlightedProperties),
104
- Properties: this.fixArrProp(query.Properties),
105
- RefinementFilters: this.fixArrProp(query.RefinementFilters),
106
- ReorderingRules: this.fixArrProp(query.ReorderingRules),
107
- SelectProperties: this.fixArrProp(query.SelectProperties),
108
- SortList: this.fixArrProp(query.SortList),
109
- })),
110
- });
111
- // if we are using caching with this search request, then we need to handle some work upfront to enable that
112
- if (this.data.useCaching) {
113
- // force use of the cache for this request if .usingCaching was called
114
- this._forceCaching = true;
115
- cacheKey = "PnPjs.SearchWithCaching(" + getHashCode(postBody.body) + ")";
116
- if (objectDefinedNotNull(this.data.cachingOptions)) {
117
- // if our key ends in the postquery url we overwrite it
118
- if (stringIsNullOrEmpty(this.data.cachingOptions.key) || queryRegex.test(this.data.cachingOptions.key)) {
119
- this.data.cachingOptions.key = cacheKey;
120
- }
121
- }
122
- else {
123
- this.data.cachingOptions = new CachingOptions(cacheKey);
124
- }
125
- }
126
- return [4 /*yield*/, spPost(this, postBody)];
127
- case 1:
128
- data = _a.sent();
129
- return [2 /*return*/, new SearchResults(data, this.toUrl(), query)];
130
- }
131
- });
132
- });
133
- };
134
- /**
135
- * Fix array property
136
- *
137
- * @param prop property to fix for container struct
138
- */
139
- _Search.prototype.fixArrProp = function (prop) {
140
- if (typeof prop === "undefined") {
141
- return ({ results: [] });
142
- }
143
- return { results: isArray(prop) ? prop : [prop] };
144
- };
145
- /**
146
- * Translates one of the query initializers into a SearchQuery instance
147
- *
148
- * @param query
149
- */
150
- _Search.prototype.parseQuery = function (query) {
151
- var finalQuery;
152
- if (typeof query === "string") {
153
- finalQuery = { Querytext: query };
154
- }
155
- else if (query.toSearchQuery) {
156
- finalQuery = query.toSearchQuery();
157
- }
158
- else {
159
- finalQuery = query;
160
- }
161
- return finalQuery;
162
- };
163
- __decorate([
164
- tag("se.execute")
165
- ], _Search.prototype, "execute", null);
166
- _Search = __decorate([
167
- defaultPath("_api/search/postquery")
168
- ], _Search);
169
- return _Search;
170
- }(_SharePointQueryableInstance));
171
- export { _Search };
172
- export var Search = function (baseUrl, options, runtime) {
173
- if (options === void 0) { options = {}; }
174
- if (runtime === void 0) { runtime = DefaultRuntime; }
175
- return function (queryInit) {
176
- return (new _Search(baseUrl)).configure(options).setRuntime(runtime).execute(queryInit);
177
- };
178
- };
179
- var SearchResults = /** @class */ (function () {
180
- function SearchResults(rawResponse, _url, _query, _raw, _primary) {
181
- if (_raw === void 0) { _raw = null; }
182
- if (_primary === void 0) { _primary = null; }
183
- this._url = _url;
184
- this._query = _query;
185
- this._raw = _raw;
186
- this._primary = _primary;
187
- this._url = this._url.replace(queryRegex, "");
188
- this._raw = rawResponse.postquery ? rawResponse.postquery : rawResponse;
189
- }
190
- Object.defineProperty(SearchResults.prototype, "ElapsedTime", {
191
- get: function () {
192
- var _a;
193
- return ((_a = this === null || this === void 0 ? void 0 : this.RawSearchResults) === null || _a === void 0 ? void 0 : _a.ElapsedTime) || 0;
194
- },
195
- enumerable: false,
196
- configurable: true
197
- });
198
- Object.defineProperty(SearchResults.prototype, "RowCount", {
199
- get: function () {
200
- var _a, _b, _c;
201
- return ((_c = (_b = (_a = this === null || this === void 0 ? void 0 : this.RawSearchResults) === null || _a === void 0 ? void 0 : _a.PrimaryQueryResult) === null || _b === void 0 ? void 0 : _b.RelevantResults) === null || _c === void 0 ? void 0 : _c.RowCount) || 0;
202
- },
203
- enumerable: false,
204
- configurable: true
205
- });
206
- Object.defineProperty(SearchResults.prototype, "TotalRows", {
207
- get: function () {
208
- var _a, _b, _c;
209
- return ((_c = (_b = (_a = this === null || this === void 0 ? void 0 : this.RawSearchResults) === null || _a === void 0 ? void 0 : _a.PrimaryQueryResult) === null || _b === void 0 ? void 0 : _b.RelevantResults) === null || _c === void 0 ? void 0 : _c.TotalRows) || 0;
210
- },
211
- enumerable: false,
212
- configurable: true
213
- });
214
- Object.defineProperty(SearchResults.prototype, "TotalRowsIncludingDuplicates", {
215
- get: function () {
216
- var _a, _b, _c;
217
- return ((_c = (_b = (_a = this === null || this === void 0 ? void 0 : this.RawSearchResults) === null || _a === void 0 ? void 0 : _a.PrimaryQueryResult) === null || _b === void 0 ? void 0 : _b.RelevantResults) === null || _c === void 0 ? void 0 : _c.TotalRowsIncludingDuplicates) || 0;
218
- },
219
- enumerable: false,
220
- configurable: true
221
- });
222
- Object.defineProperty(SearchResults.prototype, "RawSearchResults", {
223
- get: function () {
224
- return this._raw;
225
- },
226
- enumerable: false,
227
- configurable: true
228
- });
229
- Object.defineProperty(SearchResults.prototype, "PrimarySearchResults", {
230
- get: function () {
231
- var _a, _b, _c, _d;
232
- if (this._primary === null) {
233
- this._primary = this.formatSearchResults(((_d = (_c = (_b = (_a = this._raw) === null || _a === void 0 ? void 0 : _a.PrimaryQueryResult) === null || _b === void 0 ? void 0 : _b.RelevantResults) === null || _c === void 0 ? void 0 : _c.Table) === null || _d === void 0 ? void 0 : _d.Rows) || null);
234
- }
235
- return this._primary;
236
- },
237
- enumerable: false,
238
- configurable: true
239
- });
240
- /**
241
- * Gets a page of results
242
- *
243
- * @param pageNumber Index of the page to return. Used to determine StartRow
244
- * @param pageSize Optional, items per page (default = 10)
245
- */
246
- SearchResults.prototype.getPage = function (pageNumber, pageSize) {
247
- // if we got all the available rows we don't have another page
248
- if (this.TotalRows < this.RowCount) {
249
- return Promise.resolve(null);
250
- }
251
- // if pageSize is supplied, then we use that regardless of any previous values
252
- // otherwise get the previous RowLimit or default to 10
253
- var rows = pageSize !== undefined ? pageSize : hOP(this._query, "RowLimit") ? this._query.RowLimit : 10;
254
- var query = assign(this._query, {
255
- RowLimit: rows,
256
- StartRow: rows * (pageNumber - 1),
257
- });
258
- // we have reached the end
259
- if (query.StartRow > this.TotalRows) {
260
- return Promise.resolve(null);
261
- }
262
- return Search(this._url)(query);
263
- };
264
- /**
265
- * Formats a search results array
266
- *
267
- * @param rawResults The array to process
268
- */
269
- SearchResults.prototype.formatSearchResults = function (rawResults) {
270
- var e_1, _a;
271
- var results = new Array();
272
- if (typeof (rawResults) === "undefined" || rawResults == null) {
273
- return [];
274
- }
275
- var tempResults = rawResults.results ? rawResults.results : rawResults;
276
- try {
277
- for (var tempResults_1 = __values(tempResults), tempResults_1_1 = tempResults_1.next(); !tempResults_1_1.done; tempResults_1_1 = tempResults_1.next()) {
278
- var tempResult = tempResults_1_1.value;
279
- var cells = tempResult.Cells.results ? tempResult.Cells.results : tempResult.Cells;
280
- results.push(cells.reduce(function (res, cell) {
281
- Reflect.defineProperty(res, cell.Key, {
282
- configurable: false,
283
- enumerable: true,
284
- value: cell.Value,
285
- writable: false,
286
- });
287
- return res;
288
- }, {}));
289
- }
290
- }
291
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
292
- finally {
293
- try {
294
- if (tempResults_1_1 && !tempResults_1_1.done && (_a = tempResults_1.return)) _a.call(tempResults_1);
295
- }
296
- finally { if (e_1) throw e_1.error; }
297
- }
298
- return results;
299
- };
300
- return SearchResults;
301
- }());
302
- export { SearchResults };
1
+ import { __awaiter, __decorate, __extends, __generator, __values } from "tslib";
2
+ import { _SharePointQueryableInstance } from "../sharepointqueryable.js";
3
+ import { assign, hOP, getHashCode, objectDefinedNotNull, isArray, DefaultRuntime, stringIsNullOrEmpty } from "@pnp/common";
4
+ import { metadata } from "../utils/metadata.js";
5
+ import { CachingOptions, body } from "@pnp/odata";
6
+ import { spPost } from "../operations.js";
7
+ import { defaultPath } from "../decorators.js";
8
+ import { tag } from "../telemetry.js";
9
+ var funcs = new Map([
10
+ ["text", "Querytext"],
11
+ ["template", "QueryTemplate"],
12
+ ["sourceId", "SourceId"],
13
+ ["trimDuplicatesIncludeId", ""],
14
+ ["startRow", ""],
15
+ ["rowLimit", ""],
16
+ ["rankingModelId", ""],
17
+ ["rowsPerPage", ""],
18
+ ["selectProperties", ""],
19
+ ["culture", ""],
20
+ ["timeZoneId", ""],
21
+ ["refinementFilters", ""],
22
+ ["refiners", ""],
23
+ ["hiddenConstraints", ""],
24
+ ["sortList", ""],
25
+ ["timeout", ""],
26
+ ["hitHighlightedProperties", ""],
27
+ ["clientType", ""],
28
+ ["personalizationData", ""],
29
+ ["resultsURL", ""],
30
+ ["queryTag", ""],
31
+ ["properties", ""],
32
+ ["queryTemplatePropertiesUrl", ""],
33
+ ["reorderingRules", ""],
34
+ ["hitHighlightedMultivaluePropertyLimit", ""],
35
+ ["collapseSpecification", ""],
36
+ ["uiLanguage", ""],
37
+ ["desiredSnippetLength", ""],
38
+ ["maxSnippetLength", ""],
39
+ ["summaryLength", ""],
40
+ ]);
41
+ var props = new Map([]);
42
+ function toPropCase(str) {
43
+ return str.replace(/^(.)/, function ($1) { return $1.toUpperCase(); });
44
+ }
45
+ /**
46
+ * Creates a new instance of the SearchQueryBuilder
47
+ *
48
+ * @param queryText Initial query text
49
+ * @param _query Any initial query configuration
50
+ */
51
+ export function SearchQueryBuilder(queryText, _query) {
52
+ if (queryText === void 0) { queryText = ""; }
53
+ if (_query === void 0) { _query = {}; }
54
+ return new Proxy({
55
+ query: Object.assign({
56
+ Querytext: queryText,
57
+ }, _query),
58
+ }, {
59
+ get: function (self, propertyKey, proxy) {
60
+ var pk = propertyKey.toString();
61
+ if (pk === "toSearchQuery") {
62
+ return function () { return self.query; };
63
+ }
64
+ if (funcs.has(pk)) {
65
+ return function () {
66
+ var value = [];
67
+ for (var _i = 0; _i < arguments.length; _i++) {
68
+ value[_i] = arguments[_i];
69
+ }
70
+ var mappedPk = funcs.get(pk);
71
+ self.query[mappedPk.length > 0 ? mappedPk : toPropCase(pk)] = value.length > 1 ? value : value[0];
72
+ return proxy;
73
+ };
74
+ }
75
+ var propKey = props.has(pk) ? props.get(pk) : toPropCase(pk);
76
+ self.query[propKey] = true;
77
+ return proxy;
78
+ },
79
+ });
80
+ }
81
+ var queryRegex = /_api\/search\/postquery$/i;
82
+ /**
83
+ * Describes the search API
84
+ *
85
+ */
86
+ var _Search = /** @class */ (function (_super) {
87
+ __extends(_Search, _super);
88
+ function _Search() {
89
+ return _super !== null && _super.apply(this, arguments) || this;
90
+ }
91
+ /**
92
+ * @returns Promise
93
+ */
94
+ _Search.prototype.execute = function (queryInit) {
95
+ return __awaiter(this, void 0, void 0, function () {
96
+ var query, postBody, cacheKey, data;
97
+ return __generator(this, function (_a) {
98
+ switch (_a.label) {
99
+ case 0:
100
+ query = this.parseQuery(queryInit);
101
+ postBody = body({
102
+ request: assign(metadata("Microsoft.Office.Server.Search.REST.SearchRequest"), Object.assign({}, query, {
103
+ HitHighlightedProperties: this.fixArrProp(query.HitHighlightedProperties),
104
+ Properties: this.fixArrProp(query.Properties),
105
+ RefinementFilters: this.fixArrProp(query.RefinementFilters),
106
+ ReorderingRules: this.fixArrProp(query.ReorderingRules),
107
+ SelectProperties: this.fixArrProp(query.SelectProperties),
108
+ SortList: this.fixArrProp(query.SortList),
109
+ })),
110
+ });
111
+ // if we are using caching with this search request, then we need to handle some work upfront to enable that
112
+ if (this.data.useCaching) {
113
+ // force use of the cache for this request if .usingCaching was called
114
+ this._forceCaching = true;
115
+ cacheKey = "PnPjs.SearchWithCaching(" + getHashCode(postBody.body) + ")";
116
+ if (objectDefinedNotNull(this.data.cachingOptions)) {
117
+ // if our key ends in the postquery url we overwrite it
118
+ if (stringIsNullOrEmpty(this.data.cachingOptions.key) || queryRegex.test(this.data.cachingOptions.key)) {
119
+ this.data.cachingOptions.key = cacheKey;
120
+ }
121
+ }
122
+ else {
123
+ this.data.cachingOptions = new CachingOptions(cacheKey);
124
+ }
125
+ }
126
+ return [4 /*yield*/, spPost(this, postBody)];
127
+ case 1:
128
+ data = _a.sent();
129
+ return [2 /*return*/, new SearchResults(data, this.toUrl(), query)];
130
+ }
131
+ });
132
+ });
133
+ };
134
+ /**
135
+ * Fix array property
136
+ *
137
+ * @param prop property to fix for container struct
138
+ */
139
+ _Search.prototype.fixArrProp = function (prop) {
140
+ if (typeof prop === "undefined") {
141
+ return ({ results: [] });
142
+ }
143
+ return { results: isArray(prop) ? prop : [prop] };
144
+ };
145
+ /**
146
+ * Translates one of the query initializers into a SearchQuery instance
147
+ *
148
+ * @param query
149
+ */
150
+ _Search.prototype.parseQuery = function (query) {
151
+ var finalQuery;
152
+ if (typeof query === "string") {
153
+ finalQuery = { Querytext: query };
154
+ }
155
+ else if (query.toSearchQuery) {
156
+ finalQuery = query.toSearchQuery();
157
+ }
158
+ else {
159
+ finalQuery = query;
160
+ }
161
+ return finalQuery;
162
+ };
163
+ __decorate([
164
+ tag("se.execute")
165
+ ], _Search.prototype, "execute", null);
166
+ _Search = __decorate([
167
+ defaultPath("_api/search/postquery")
168
+ ], _Search);
169
+ return _Search;
170
+ }(_SharePointQueryableInstance));
171
+ export { _Search };
172
+ export var Search = function (baseUrl, options, runtime) {
173
+ if (options === void 0) { options = {}; }
174
+ if (runtime === void 0) { runtime = DefaultRuntime; }
175
+ return function (queryInit) {
176
+ return (new _Search(baseUrl)).configure(options).setRuntime(runtime).execute(queryInit);
177
+ };
178
+ };
179
+ var SearchResults = /** @class */ (function () {
180
+ function SearchResults(rawResponse, _url, _query, _raw, _primary) {
181
+ if (_raw === void 0) { _raw = null; }
182
+ if (_primary === void 0) { _primary = null; }
183
+ this._url = _url;
184
+ this._query = _query;
185
+ this._raw = _raw;
186
+ this._primary = _primary;
187
+ this._url = this._url.replace(queryRegex, "");
188
+ this._raw = rawResponse.postquery ? rawResponse.postquery : rawResponse;
189
+ }
190
+ Object.defineProperty(SearchResults.prototype, "ElapsedTime", {
191
+ get: function () {
192
+ var _a;
193
+ return ((_a = this === null || this === void 0 ? void 0 : this.RawSearchResults) === null || _a === void 0 ? void 0 : _a.ElapsedTime) || 0;
194
+ },
195
+ enumerable: false,
196
+ configurable: true
197
+ });
198
+ Object.defineProperty(SearchResults.prototype, "RowCount", {
199
+ get: function () {
200
+ var _a, _b, _c;
201
+ return ((_c = (_b = (_a = this === null || this === void 0 ? void 0 : this.RawSearchResults) === null || _a === void 0 ? void 0 : _a.PrimaryQueryResult) === null || _b === void 0 ? void 0 : _b.RelevantResults) === null || _c === void 0 ? void 0 : _c.RowCount) || 0;
202
+ },
203
+ enumerable: false,
204
+ configurable: true
205
+ });
206
+ Object.defineProperty(SearchResults.prototype, "TotalRows", {
207
+ get: function () {
208
+ var _a, _b, _c;
209
+ return ((_c = (_b = (_a = this === null || this === void 0 ? void 0 : this.RawSearchResults) === null || _a === void 0 ? void 0 : _a.PrimaryQueryResult) === null || _b === void 0 ? void 0 : _b.RelevantResults) === null || _c === void 0 ? void 0 : _c.TotalRows) || 0;
210
+ },
211
+ enumerable: false,
212
+ configurable: true
213
+ });
214
+ Object.defineProperty(SearchResults.prototype, "TotalRowsIncludingDuplicates", {
215
+ get: function () {
216
+ var _a, _b, _c;
217
+ return ((_c = (_b = (_a = this === null || this === void 0 ? void 0 : this.RawSearchResults) === null || _a === void 0 ? void 0 : _a.PrimaryQueryResult) === null || _b === void 0 ? void 0 : _b.RelevantResults) === null || _c === void 0 ? void 0 : _c.TotalRowsIncludingDuplicates) || 0;
218
+ },
219
+ enumerable: false,
220
+ configurable: true
221
+ });
222
+ Object.defineProperty(SearchResults.prototype, "RawSearchResults", {
223
+ get: function () {
224
+ return this._raw;
225
+ },
226
+ enumerable: false,
227
+ configurable: true
228
+ });
229
+ Object.defineProperty(SearchResults.prototype, "PrimarySearchResults", {
230
+ get: function () {
231
+ var _a, _b, _c, _d;
232
+ if (this._primary === null) {
233
+ this._primary = this.formatSearchResults(((_d = (_c = (_b = (_a = this._raw) === null || _a === void 0 ? void 0 : _a.PrimaryQueryResult) === null || _b === void 0 ? void 0 : _b.RelevantResults) === null || _c === void 0 ? void 0 : _c.Table) === null || _d === void 0 ? void 0 : _d.Rows) || null);
234
+ }
235
+ return this._primary;
236
+ },
237
+ enumerable: false,
238
+ configurable: true
239
+ });
240
+ /**
241
+ * Gets a page of results
242
+ *
243
+ * @param pageNumber Index of the page to return. Used to determine StartRow
244
+ * @param pageSize Optional, items per page (default = 10)
245
+ */
246
+ SearchResults.prototype.getPage = function (pageNumber, pageSize) {
247
+ // if we got all the available rows we don't have another page
248
+ if (this.TotalRows < this.RowCount) {
249
+ return Promise.resolve(null);
250
+ }
251
+ // if pageSize is supplied, then we use that regardless of any previous values
252
+ // otherwise get the previous RowLimit or default to 10
253
+ var rows = pageSize !== undefined ? pageSize : hOP(this._query, "RowLimit") ? this._query.RowLimit : 10;
254
+ var query = assign(this._query, {
255
+ RowLimit: rows,
256
+ StartRow: rows * (pageNumber - 1),
257
+ });
258
+ // we have reached the end
259
+ if (query.StartRow > this.TotalRows) {
260
+ return Promise.resolve(null);
261
+ }
262
+ return Search(this._url)(query);
263
+ };
264
+ /**
265
+ * Formats a search results array
266
+ *
267
+ * @param rawResults The array to process
268
+ */
269
+ SearchResults.prototype.formatSearchResults = function (rawResults) {
270
+ var e_1, _a;
271
+ var results = new Array();
272
+ if (typeof (rawResults) === "undefined" || rawResults == null) {
273
+ return [];
274
+ }
275
+ var tempResults = rawResults.results ? rawResults.results : rawResults;
276
+ try {
277
+ for (var tempResults_1 = __values(tempResults), tempResults_1_1 = tempResults_1.next(); !tempResults_1_1.done; tempResults_1_1 = tempResults_1.next()) {
278
+ var tempResult = tempResults_1_1.value;
279
+ var cells = tempResult.Cells.results ? tempResult.Cells.results : tempResult.Cells;
280
+ results.push(cells.reduce(function (res, cell) {
281
+ Reflect.defineProperty(res, cell.Key, {
282
+ configurable: false,
283
+ enumerable: true,
284
+ value: cell.Value,
285
+ writable: false,
286
+ });
287
+ return res;
288
+ }, {}));
289
+ }
290
+ }
291
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
292
+ finally {
293
+ try {
294
+ if (tempResults_1_1 && !tempResults_1_1.done && (_a = tempResults_1.return)) _a.call(tempResults_1);
295
+ }
296
+ finally { if (e_1) throw e_1.error; }
297
+ }
298
+ return results;
299
+ };
300
+ return SearchResults;
301
+ }());
302
+ export { SearchResults };
303
303
  //# sourceMappingURL=query.js.map