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