@pnp/sp 2.8.0 → 2.12.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 (306) 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.d.ts.map +1 -1
  6. package/appcatalog/types.js +177 -177
  7. package/appcatalog/types.js.map +1 -1
  8. package/appcatalog/web.d.ts +16 -16
  9. package/appcatalog/web.js +6 -6
  10. package/attachments/index.d.ts +2 -2
  11. package/attachments/index.js +2 -2
  12. package/attachments/item.d.ts +12 -12
  13. package/attachments/item.js +4 -4
  14. package/attachments/types.d.ts +92 -92
  15. package/attachments/types.js +240 -240
  16. package/batch.d.ts +17 -17
  17. package/batch.js +223 -223
  18. package/clientside-pages/funcs.d.ts +22 -22
  19. package/clientside-pages/funcs.js +25 -25
  20. package/clientside-pages/index.d.ts +2 -2
  21. package/clientside-pages/index.js +2 -2
  22. package/clientside-pages/types.d.ts +496 -494
  23. package/clientside-pages/types.d.ts.map +1 -1
  24. package/clientside-pages/types.js +1496 -1487
  25. package/clientside-pages/types.js.map +1 -1
  26. package/clientside-pages/web.d.ts +41 -41
  27. package/clientside-pages/web.js +57 -57
  28. package/column-defaults/folder.d.ts +27 -27
  29. package/column-defaults/folder.js +82 -82
  30. package/column-defaults/index.d.ts +3 -3
  31. package/column-defaults/index.js +2 -2
  32. package/column-defaults/list.d.ts +19 -19
  33. package/column-defaults/list.js +198 -198
  34. package/column-defaults/types.d.ts +21 -21
  35. package/column-defaults/types.js +1 -1
  36. package/comments/clientside-page.d.ts +57 -57
  37. package/comments/clientside-page.d.ts.map +1 -1
  38. package/comments/clientside-page.js +136 -136
  39. package/comments/index.d.ts +2 -2
  40. package/comments/index.js +2 -2
  41. package/comments/item.d.ts +29 -29
  42. package/comments/item.js +47 -47
  43. package/comments/item.js.map +1 -1
  44. package/comments/types.d.ts +107 -107
  45. package/comments/types.d.ts.map +1 -1
  46. package/comments/types.js +145 -145
  47. package/comments/types.js.map +1 -1
  48. package/content-types/index.d.ts +4 -4
  49. package/content-types/index.js +4 -4
  50. package/content-types/item.d.ts +12 -12
  51. package/content-types/item.js +4 -4
  52. package/content-types/list.d.ts +12 -12
  53. package/content-types/list.js +4 -4
  54. package/content-types/types.d.ts +107 -107
  55. package/content-types/types.js +166 -166
  56. package/content-types/web.d.ts +12 -12
  57. package/content-types/web.js +4 -4
  58. package/decorators.d.ts +11 -11
  59. package/decorators.js +28 -28
  60. package/features/index.d.ts +3 -3
  61. package/features/index.js +3 -3
  62. package/features/site.d.ts +12 -12
  63. package/features/site.js +4 -4
  64. package/features/types.d.ts +47 -47
  65. package/features/types.js +109 -109
  66. package/features/web.d.ts +12 -12
  67. package/features/web.js +4 -4
  68. package/fields/index.d.ts +4 -4
  69. package/fields/index.js +4 -4
  70. package/fields/list.d.ts +12 -12
  71. package/fields/list.js +4 -4
  72. package/fields/types.d.ts +368 -368
  73. package/fields/types.js +624 -624
  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.d.ts.map +1 -1
  110. package/hubsites/types.js +53 -53
  111. package/hubsites/web.d.ts +21 -21
  112. package/hubsites/web.js +23 -23
  113. package/index.d.ts +14 -14
  114. package/index.js +13 -13
  115. package/items/index.d.ts +2 -2
  116. package/items/index.js +2 -2
  117. package/items/list.d.ts +9 -9
  118. package/items/list.js +4 -4
  119. package/items/types.d.ts +226 -226
  120. package/items/types.js +549 -549
  121. package/lists/index.d.ts +2 -2
  122. package/lists/index.js +2 -2
  123. package/lists/types.d.ts +495 -495
  124. package/lists/types.js +522 -522
  125. package/lists/types.js.map +1 -1
  126. package/lists/web.d.ts +43 -43
  127. package/lists/web.js +27 -27
  128. package/navigation/index.d.ts +8 -8
  129. package/navigation/index.js +14 -14
  130. package/navigation/types.d.ts +154 -154
  131. package/navigation/types.js +219 -219
  132. package/navigation/web.d.ts +13 -13
  133. package/navigation/web.js +4 -4
  134. package/odata.d.ts +5 -5
  135. package/odata.js +90 -90
  136. package/odata.js.map +1 -1
  137. package/operations.d.ts +9 -9
  138. package/operations.js +63 -63
  139. package/package.json +4 -4
  140. package/presets/all.d.ts +72 -72
  141. package/presets/all.js +72 -72
  142. package/presets/core.d.ts +11 -11
  143. package/presets/core.js +11 -11
  144. package/profiles/index.d.ts +7 -7
  145. package/profiles/index.js +13 -13
  146. package/profiles/types.d.ts +357 -357
  147. package/profiles/types.js +454 -454
  148. package/readme.md +21 -21
  149. package/regional-settings/content-type.d.ts +7 -7
  150. package/regional-settings/content-type.js +4 -4
  151. package/regional-settings/field.d.ts +7 -7
  152. package/regional-settings/field.js +4 -4
  153. package/regional-settings/funcs.d.ts +2 -2
  154. package/regional-settings/funcs.js +8 -8
  155. package/regional-settings/index.d.ts +6 -6
  156. package/regional-settings/index.js +6 -6
  157. package/regional-settings/list.d.ts +7 -7
  158. package/regional-settings/list.js +4 -4
  159. package/regional-settings/types.d.ts +111 -111
  160. package/regional-settings/types.js +159 -159
  161. package/regional-settings/user-custom-actions.d.ts +7 -7
  162. package/regional-settings/user-custom-actions.js +4 -4
  163. package/regional-settings/web.d.ts +12 -12
  164. package/regional-settings/web.js +7 -7
  165. package/related-items/index.d.ts +1 -1
  166. package/related-items/index.js +1 -1
  167. package/related-items/types.d.ts +76 -76
  168. package/related-items/types.js +103 -103
  169. package/related-items/web.d.ts +12 -12
  170. package/related-items/web.js +9 -9
  171. package/rest.d.ts +44 -44
  172. package/rest.js +72 -72
  173. package/search/index.d.ts +30 -30
  174. package/search/index.js +25 -25
  175. package/search/query.d.ts +62 -62
  176. package/search/query.js +302 -302
  177. package/search/suggest.d.ts +76 -76
  178. package/search/suggest.js +66 -66
  179. package/search/types.d.ts +426 -426
  180. package/search/types.js +57 -57
  181. package/security/funcs.d.ts +43 -43
  182. package/security/funcs.js +142 -142
  183. package/security/index.d.ts +4 -4
  184. package/security/index.js +4 -4
  185. package/security/item.d.ts +7 -7
  186. package/security/item.js +14 -14
  187. package/security/list.d.ts +7 -7
  188. package/security/list.js +14 -14
  189. package/security/types.d.ts +318 -318
  190. package/security/types.js +399 -399
  191. package/security/web.d.ts +9 -9
  192. package/security/web.js +15 -15
  193. package/sharepointqueryable.d.ts +135 -135
  194. package/sharepointqueryable.js +265 -265
  195. package/sharing/file.d.ts +18 -18
  196. package/sharing/file.js +116 -116
  197. package/sharing/folder.d.ts +9 -9
  198. package/sharing/folder.js +136 -136
  199. package/sharing/funcs.d.ts +62 -62
  200. package/sharing/funcs.js +239 -239
  201. package/sharing/funcs.js.map +1 -1
  202. package/sharing/index.d.ts +5 -5
  203. package/sharing/index.js +5 -5
  204. package/sharing/item.d.ts +16 -16
  205. package/sharing/item.js +15 -15
  206. package/sharing/types.d.ts +583 -583
  207. package/sharing/types.js +113 -113
  208. package/sharing/web.d.ts +19 -19
  209. package/sharing/web.js +76 -76
  210. package/site-designs/index.d.ts +8 -8
  211. package/site-designs/index.js +14 -14
  212. package/site-designs/types.d.ts +319 -319
  213. package/site-designs/types.js +203 -203
  214. package/site-designs/web.d.ts +25 -25
  215. package/site-designs/web.js +11 -11
  216. package/site-groups/index.d.ts +2 -2
  217. package/site-groups/index.js +2 -2
  218. package/site-groups/types.d.ts +89 -89
  219. package/site-groups/types.js +125 -125
  220. package/site-groups/web.d.ts +40 -40
  221. package/site-groups/web.js +30 -30
  222. package/site-scripts/index.d.ts +9 -9
  223. package/site-scripts/index.js +15 -15
  224. package/site-scripts/list.d.ts +12 -12
  225. package/site-scripts/list.js +24 -24
  226. package/site-scripts/types.d.ts +183 -183
  227. package/site-scripts/types.js +141 -141
  228. package/site-scripts/web.d.ts +13 -13
  229. package/site-scripts/web.js +5 -5
  230. package/site-users/index.d.ts +2 -2
  231. package/site-users/index.js +2 -2
  232. package/site-users/types.d.ts +138 -138
  233. package/site-users/types.js +122 -122
  234. package/site-users/web.d.ts +31 -31
  235. package/site-users/web.js +27 -27
  236. package/sites/index.d.ts +7 -7
  237. package/sites/index.js +13 -13
  238. package/sites/types.d.ts +147 -147
  239. package/sites/types.js +321 -321
  240. package/social/index.d.ts +10 -10
  241. package/social/index.js +13 -13
  242. package/social/types.d.ts +309 -309
  243. package/social/types.js +322 -322
  244. package/sphttpclient.d.ts +18 -18
  245. package/sphttpclient.js +189 -189
  246. package/splibconfig.d.ts +22 -22
  247. package/splibconfig.js +13 -13
  248. package/sputilities/index.d.ts +7 -7
  249. package/sputilities/index.js +13 -13
  250. package/sputilities/types.d.ts +130 -130
  251. package/sputilities/types.js +118 -118
  252. package/subscriptions/index.d.ts +2 -2
  253. package/subscriptions/index.js +2 -2
  254. package/subscriptions/list.d.ts +13 -13
  255. package/subscriptions/list.js +4 -4
  256. package/subscriptions/types.d.ts +54 -54
  257. package/subscriptions/types.js +111 -111
  258. package/taxonomy/index.d.ts +7 -7
  259. package/taxonomy/index.js +13 -13
  260. package/taxonomy/types.d.ts +200 -200
  261. package/taxonomy/types.js +347 -347
  262. package/taxonomy/types.js.map +1 -1
  263. package/telemetry.d.ts +12 -12
  264. package/telemetry.js +48 -48
  265. package/types.d.ts +218 -218
  266. package/types.js +79 -79
  267. package/user-custom-actions/index.d.ts +4 -4
  268. package/user-custom-actions/index.js +4 -4
  269. package/user-custom-actions/list.d.ts +12 -12
  270. package/user-custom-actions/list.js +4 -4
  271. package/user-custom-actions/site.d.ts +12 -12
  272. package/user-custom-actions/site.js +4 -4
  273. package/user-custom-actions/types.d.ts +82 -82
  274. package/user-custom-actions/types.js +93 -93
  275. package/user-custom-actions/web.d.ts +15 -15
  276. package/user-custom-actions/web.js +4 -4
  277. package/utils/escapeQueryStrValue.d.ts +1 -1
  278. package/utils/escapeQueryStrValue.js +19 -19
  279. package/utils/extractweburl.d.ts +1 -1
  280. package/utils/extractweburl.js +15 -15
  281. package/utils/file-names.d.ts +17 -17
  282. package/utils/file-names.js +38 -38
  283. package/utils/metadata.d.ts +5 -5
  284. package/utils/metadata.js +5 -5
  285. package/utils/objectToSPKeyValueCollection.d.ts +20 -20
  286. package/utils/objectToSPKeyValueCollection.js +16 -16
  287. package/utils/toResourcePath.d.ts +7 -7
  288. package/utils/toResourcePath.js +6 -6
  289. package/utils/toabsoluteurl.d.ts +7 -7
  290. package/utils/toabsoluteurl.js +61 -61
  291. package/views/index.d.ts +2 -2
  292. package/views/index.js +2 -2
  293. package/views/list.d.ts +23 -23
  294. package/views/list.js +8 -8
  295. package/views/types.d.ts +140 -140
  296. package/views/types.js +184 -184
  297. package/webparts/file.d.ts +15 -15
  298. package/webparts/file.js +6 -6
  299. package/webparts/index.d.ts +2 -2
  300. package/webparts/index.js +2 -2
  301. package/webparts/types.d.ts +83 -83
  302. package/webparts/types.js +117 -117
  303. package/webs/index.d.ts +16 -16
  304. package/webs/index.js +16 -16
  305. package/webs/types.d.ts +210 -210
  306. 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