@kwiz/common 1.0.4 → 1.0.6

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 (71) hide show
  1. package/dist/helpers/base64.js +10 -21
  2. package/dist/helpers/base64.js.map +1 -1
  3. package/dist/helpers/browser.d.ts +13 -5
  4. package/dist/helpers/browser.js +61 -39
  5. package/dist/helpers/browser.js.map +1 -1
  6. package/dist/helpers/collections.base.js +46 -65
  7. package/dist/helpers/collections.base.js.map +1 -1
  8. package/dist/helpers/collections.js +4 -1
  9. package/dist/helpers/collections.js.map +1 -1
  10. package/dist/helpers/date.d.ts +2 -1
  11. package/dist/helpers/date.js +22 -3
  12. package/dist/helpers/date.js.map +1 -1
  13. package/dist/helpers/debug.js +9 -20
  14. package/dist/helpers/debug.js.map +1 -1
  15. package/dist/helpers/objects.js +2 -11
  16. package/dist/helpers/objects.js.map +1 -1
  17. package/dist/helpers/promises.js +28 -41
  18. package/dist/helpers/promises.js.map +1 -1
  19. package/dist/helpers/strings.js +2 -1
  20. package/dist/helpers/strings.js.map +1 -1
  21. package/dist/utils/base64.js +18 -29
  22. package/dist/utils/base64.js.map +1 -1
  23. package/dist/utils/consolelogger.js +16 -27
  24. package/dist/utils/consolelogger.js.map +1 -1
  25. package/dist/utils/emails.js +5 -2
  26. package/dist/utils/emails.js.map +1 -1
  27. package/dist/utils/knownscript.js +4 -15
  28. package/dist/utils/knownscript.js.map +1 -1
  29. package/dist/utils/localstoragecache.js +3 -3
  30. package/dist/utils/localstoragecache.js.map +1 -1
  31. package/dist/utils/rest.d.ts +2 -0
  32. package/dist/utils/rest.js +18 -5
  33. package/dist/utils/rest.js.map +1 -1
  34. package/dist/utils/script.js +25 -40
  35. package/dist/utils/script.js.map +1 -1
  36. package/dist/utils/sharepoint.rest/file.folder.d.ts +2 -0
  37. package/dist/utils/sharepoint.rest/file.folder.js +123 -123
  38. package/dist/utils/sharepoint.rest/file.folder.js.map +1 -1
  39. package/dist/utils/sharepoint.rest/item.d.ts +10 -0
  40. package/dist/utils/sharepoint.rest/item.js +233 -237
  41. package/dist/utils/sharepoint.rest/item.js.map +1 -1
  42. package/dist/utils/sharepoint.rest/list.d.ts +30 -1
  43. package/dist/utils/sharepoint.rest/list.js +296 -289
  44. package/dist/utils/sharepoint.rest/list.js.map +1 -1
  45. package/dist/utils/sharepoint.rest/listutils/GetListItemsByCaml.js +352 -360
  46. package/dist/utils/sharepoint.rest/listutils/GetListItemsByCaml.js.map +1 -1
  47. package/dist/utils/sharepoint.rest/listutils/GetListItemsById.js +47 -58
  48. package/dist/utils/sharepoint.rest/listutils/GetListItemsById.js.map +1 -1
  49. package/dist/utils/sharepoint.rest/user-search.d.ts +5 -10
  50. package/dist/utils/sharepoint.rest/user-search.js +129 -148
  51. package/dist/utils/sharepoint.rest/user-search.js.map +1 -1
  52. package/dist/utils/sharepoint.rest/user.d.ts +1 -0
  53. package/dist/utils/sharepoint.rest/user.js +200 -169
  54. package/dist/utils/sharepoint.rest/user.js.map +1 -1
  55. package/dist/utils/sharepoint.rest/web.d.ts +10 -1
  56. package/dist/utils/sharepoint.rest/web.js +381 -401
  57. package/dist/utils/sharepoint.rest/web.js.map +1 -1
  58. package/dist/utils/sod.js +8 -19
  59. package/dist/utils/sod.js.map +1 -1
  60. package/package.json +5 -4
  61. package/src/helpers/browser.ts +56 -13
  62. package/src/helpers/date.ts +23 -1
  63. package/src/helpers/strings.test.js +14 -2
  64. package/src/helpers/strings.ts +2 -1
  65. package/src/utils/rest.ts +7 -0
  66. package/src/utils/sharepoint.rest/file.folder.ts +18 -1
  67. package/src/utils/sharepoint.rest/item.ts +54 -1
  68. package/src/utils/sharepoint.rest/list.ts +144 -0
  69. package/src/utils/sharepoint.rest/user-search.ts +10 -14
  70. package/src/utils/sharepoint.rest/user.ts +49 -3
  71. package/src/utils/sharepoint.rest/web.ts +23 -1
@@ -1,15 +1,6 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.RemoveWebPermission = exports.AssignWebPermission = exports.BreakWebPermissionInheritance = exports.WebHasUniquePermissions = exports.ensureLegacyProps = exports.getFormDigest = exports.GetWebPropertyByName = exports.GetAllWebProperties = exports.GetRegionalSettings = exports.GetUserCustomActions = exports.GetContextWebInformationSync = exports.SPServerLocalTime = exports.SPServerLocalTimeSync = exports.UTCToSPServerLocalTimeSync = exports.UTCToSPServerLocalTime = exports.SPServerLocalTimeToUTCSync = exports.SPServerLocalTimeToUTC = exports.SPServerLocalTimeToUTCDateSync = exports.SPServerLocalTimeToUTCDate = exports.GetServerTimeZone = exports.GetAppTilesSync = exports.GetAppTiles = exports.GetSubWebs = exports.GetWebRoleDefinitions = exports.GetWebInfoSync = exports.GetWebInfo = exports.__getSubSites = exports.GetAllSubWebs = exports.GetListsSync = exports.GetLists = exports.GetContentTypesSync = exports.GetContentTypes = exports.UserHasManageSitePermissions = exports.UserHasAllPermissions = exports.IsRootWeb = exports.GetWebIdSync = exports.GetWebId = exports.GetWebTitle = exports.GetRootWebInfo = exports.GetSiteIdSync = exports.GetSiteId = exports.GetSiteInfoSync = exports.GetSiteInfo = void 0;
3
+ exports.SetUserAsSiteAdmin = exports.RemoveWebPermission = exports.AssignWebPermission = exports.BreakWebPermissionInheritance = exports.WebHasUniquePermissions = exports.ensureLegacyProps = exports.getFormDigest = exports.GetWebPropertyByName = exports.GetAllWebProperties = exports.GetRegionalSettings = exports.GetUserCustomActions = exports.GetContextWebInformationSync = exports.SPServerLocalTime = exports.SPServerLocalTimeSync = exports.UTCToSPServerLocalTimeSync = exports.UTCToSPServerLocalTime = exports.SPServerLocalTimeToUTCSync = exports.SPServerLocalTimeToUTC = exports.SPServerLocalTimeToUTCDateSync = exports.SPServerLocalTimeToUTCDate = exports.GetServerTimeZone = exports.GetAppTilesSync = exports.GetAppTiles = exports.GetSubWebs = exports.GetRoleAssignments = exports.GetWebRoleDefinitions = exports.GetWebInfoSync = exports.GetWebInfo = exports.__getSubSites = exports.GetAllSubWebs = exports.GetListsSync = exports.GetLists = exports.GetContentTypesSync = exports.GetContentTypes = exports.UserHasManageSitePermissions = exports.UserHasAllPermissions = exports.IsRootWeb = exports.GetWebIdSync = exports.GetWebId = exports.GetWebTitle = exports.GetRootWebInfo = exports.GetSiteIdSync = exports.GetSiteId = exports.GetSiteInfoSync = exports.GetSiteInfo = void 0;
13
4
  const _dependencies_1 = require("../_dependencies");
14
5
  const consolelogger_1 = require("../consolelogger");
15
6
  const date_1 = require("../date");
@@ -19,7 +10,7 @@ const list_1 = require("./list");
19
10
  const logger = consolelogger_1.ConsoleLogger.get("SharePoint.Rest.Web");
20
11
  function GetSiteInfo(siteUrl) {
21
12
  siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
22
- return (0, rest_1.GetJson)((0, common_1.GetRestBaseUrl)(siteUrl) + "/site?$select=id,serverRelativeUrl", null, Object.assign({}, rest_1.longLocalCache))
13
+ return (0, rest_1.GetJson)((0, common_1.GetRestBaseUrl)(siteUrl) + "/site?$select=id,serverRelativeUrl", null, { ...rest_1.longLocalCache })
23
14
  .then(r => {
24
15
  var id = (0, _dependencies_1.normalizeGuid)(r.d.Id);
25
16
  var serverRelativeUrl = (0, _dependencies_1.normalizeUrl)(r.d.ServerRelativeUrl);
@@ -33,7 +24,7 @@ function GetSiteInfo(siteUrl) {
33
24
  exports.GetSiteInfo = GetSiteInfo;
34
25
  function GetSiteInfoSync(siteUrl) {
35
26
  siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
36
- let result = (0, rest_1.GetJsonSync)((0, common_1.GetRestBaseUrl)(siteUrl) + "/site?$select=id,serverRelativeUrl", null, Object.assign({}, rest_1.longLocalCache));
27
+ let result = (0, rest_1.GetJsonSync)((0, common_1.GetRestBaseUrl)(siteUrl) + "/site?$select=id,serverRelativeUrl", null, { ...rest_1.longLocalCache });
37
28
  if (result.success) {
38
29
  var id = (0, _dependencies_1.normalizeGuid)(result.result.d.Id);
39
30
  var serverRelativeUrl = (0, _dependencies_1.normalizeUrl)(result.result.d.ServerRelativeUrl);
@@ -67,20 +58,18 @@ function _getSiteIdFromContext(siteUrl) {
67
58
  return null;
68
59
  }
69
60
  /** Get site id lower case no {} */
70
- function GetSiteId(siteUrl) {
71
- return __awaiter(this, void 0, void 0, function* () {
72
- let siteId = _getSiteIdFromContext(siteUrl);
73
- if (!(0, _dependencies_1.isNullOrEmptyString)(siteId)) {
74
- return siteId;
61
+ async function GetSiteId(siteUrl) {
62
+ let siteId = _getSiteIdFromContext(siteUrl);
63
+ if (!(0, _dependencies_1.isNullOrEmptyString)(siteId)) {
64
+ return siteId;
65
+ }
66
+ return GetSiteInfo(siteUrl).then((info) => {
67
+ if (!(0, _dependencies_1.isNullOrUndefined)(info) && !(0, _dependencies_1.isNullOrEmptyString)(info.Id)) {
68
+ return (0, _dependencies_1.normalizeGuid)(info.Id);
75
69
  }
76
- return GetSiteInfo(siteUrl).then((info) => {
77
- if (!(0, _dependencies_1.isNullOrUndefined)(info) && !(0, _dependencies_1.isNullOrEmptyString)(info.Id)) {
78
- return (0, _dependencies_1.normalizeGuid)(info.Id);
79
- }
80
- return null;
81
- }).catch(() => {
82
- return null;
83
- });
70
+ return null;
71
+ }).catch(() => {
72
+ return null;
84
73
  });
85
74
  }
86
75
  exports.GetSiteId = GetSiteId;
@@ -97,7 +86,7 @@ exports.GetSiteIdSync = GetSiteIdSync;
97
86
  /** Get root web id lower case no {} */
98
87
  function GetRootWebInfo(siteUrl) {
99
88
  siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
100
- return (0, rest_1.GetJson)((0, common_1.GetRestBaseUrl)(siteUrl) + "/site/rootWeb?$select=id,serverRelativeUrl", null, Object.assign({}, rest_1.longLocalCache))
89
+ return (0, rest_1.GetJson)((0, common_1.GetRestBaseUrl)(siteUrl) + "/site/rootWeb?$select=id,serverRelativeUrl", null, { ...rest_1.longLocalCache })
101
90
  .then(r => {
102
91
  var id = (0, _dependencies_1.normalizeGuid)(r.d.Id);
103
92
  var serverRelativeUrl = (0, _dependencies_1.normalizeUrl)(r.d.ServerRelativeUrl);
@@ -110,7 +99,7 @@ exports.GetRootWebInfo = GetRootWebInfo;
110
99
  /** Return the web Title */
111
100
  function GetWebTitle(siteUrl) {
112
101
  siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
113
- return (0, rest_1.GetJson)((0, common_1.GetRestBaseUrl)(siteUrl) + `/web/Title`, null, Object.assign({}, rest_1.shortLocalCache))
102
+ return (0, rest_1.GetJson)((0, common_1.GetRestBaseUrl)(siteUrl) + `/web/Title`, null, { ...rest_1.shortLocalCache })
114
103
  .then(r => {
115
104
  return r.d.Title;
116
105
  })
@@ -122,7 +111,7 @@ function _getWebIdRequestUrl(siteUrl) {
122
111
  }
123
112
  /** Return the web id */
124
113
  function GetWebId(siteUrl) {
125
- return (0, rest_1.GetJson)(_getWebIdRequestUrl(siteUrl), null, Object.assign({}, rest_1.longLocalCache))
114
+ return (0, rest_1.GetJson)(_getWebIdRequestUrl(siteUrl), null, { ...rest_1.longLocalCache })
126
115
  .then(r => {
127
116
  return (0, _dependencies_1.normalizeGuid)(r.d.Id);
128
117
  })
@@ -131,7 +120,7 @@ function GetWebId(siteUrl) {
131
120
  exports.GetWebId = GetWebId;
132
121
  /** Return the web id */
133
122
  function GetWebIdSync(siteUrl) {
134
- let syncResult = (0, rest_1.GetJsonSync)(_getWebIdRequestUrl(siteUrl), null, Object.assign({}, rest_1.longLocalCache));
123
+ let syncResult = (0, rest_1.GetJsonSync)(_getWebIdRequestUrl(siteUrl), null, { ...rest_1.longLocalCache });
135
124
  if (syncResult.success)
136
125
  return syncResult.result.d.Id;
137
126
  else
@@ -139,18 +128,16 @@ function GetWebIdSync(siteUrl) {
139
128
  }
140
129
  exports.GetWebIdSync = GetWebIdSync;
141
130
  /** Return the web id */
142
- function IsRootWeb(siteUrl) {
143
- return __awaiter(this, void 0, void 0, function* () {
144
- siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
145
- let webId = yield GetWebId(siteUrl);
146
- let rootWeb = yield GetRootWebInfo(siteUrl);
147
- return webId === rootWeb.Id;
148
- });
131
+ async function IsRootWeb(siteUrl) {
132
+ siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
133
+ let webId = await GetWebId(siteUrl);
134
+ let rootWeb = await GetRootWebInfo(siteUrl);
135
+ return webId === rootWeb.Id;
149
136
  }
150
137
  exports.IsRootWeb = IsRootWeb;
151
138
  function UserHasAllPermissions(siteUrl, permissions) {
152
139
  siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
153
- return (0, rest_1.GetJson)((0, common_1.GetRestBaseUrl)(siteUrl) + `/web/EffectiveBasePermissions`, null, Object.assign({}, rest_1.shortLocalCache))
140
+ return (0, rest_1.GetJson)((0, common_1.GetRestBaseUrl)(siteUrl) + `/web/EffectiveBasePermissions`, null, { ...rest_1.shortLocalCache })
154
141
  .then(r => {
155
142
  var effectivePermissions = new _dependencies_1.SPBasePermissions(r.d.EffectiveBasePermissions);
156
143
  return permissions.every((perm) => {
@@ -162,7 +149,7 @@ function UserHasAllPermissions(siteUrl, permissions) {
162
149
  exports.UserHasAllPermissions = UserHasAllPermissions;
163
150
  function UserHasManageSitePermissions(siteUrl) {
164
151
  siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
165
- return (0, rest_1.GetJson)((0, common_1.GetRestBaseUrl)(siteUrl) + `/web/EffectiveBasePermissions`, null, Object.assign({}, rest_1.shortLocalCache))
152
+ return (0, rest_1.GetJson)((0, common_1.GetRestBaseUrl)(siteUrl) + `/web/EffectiveBasePermissions`, null, { ...rest_1.shortLocalCache })
166
153
  .then(r => {
167
154
  return new _dependencies_1.SPBasePermissions(r.d.EffectiveBasePermissions).has(_dependencies_1.SPBasePermissionKind.ManageWeb);
168
155
  })
@@ -207,22 +194,20 @@ function _postProcessGetContentTypes(contentTypes, options = {}, allListFields)
207
194
  }
208
195
  return null;
209
196
  }
210
- function GetContentTypes(siteUrl, options = {}) {
211
- return __awaiter(this, void 0, void 0, function* () {
212
- let url = _getContentTypesRequestUrl(siteUrl, options);
213
- let allListFields = null;
214
- if (options.includeFields) {
215
- allListFields = yield (0, list_1.GetListFields)(siteUrl, options.listIdOrTitle);
197
+ async function GetContentTypes(siteUrl, options = {}) {
198
+ let url = _getContentTypesRequestUrl(siteUrl, options);
199
+ let allListFields = null;
200
+ if (options.includeFields) {
201
+ allListFields = await (0, list_1.GetListFields)(siteUrl, options.listIdOrTitle);
202
+ }
203
+ return (0, rest_1.GetJson)(url, null, { allowCache: true, jsonMetadata: _dependencies_1.jsonTypes.nometadata })
204
+ .then(result => {
205
+ if (!(0, _dependencies_1.isNullOrUndefined)(result)) {
206
+ return _postProcessGetContentTypes(result.value, options, allListFields);
216
207
  }
217
- return (0, rest_1.GetJson)(url, null, { allowCache: true, jsonMetadata: _dependencies_1.jsonTypes.nometadata })
218
- .then(result => {
219
- if (!(0, _dependencies_1.isNullOrUndefined)(result)) {
220
- return _postProcessGetContentTypes(result.value, options, allListFields);
221
- }
222
- return null;
223
- })
224
- .catch(() => null);
225
- });
208
+ return null;
209
+ })
210
+ .catch(() => null);
226
211
  }
227
212
  exports.GetContentTypes = GetContentTypes;
228
213
  function GetContentTypesSync(siteUrl, options = {}) {
@@ -283,7 +268,7 @@ function GetLists(siteUrl, options = {}) {
283
268
  exports.GetLists = GetLists;
284
269
  function GetListsSync(siteUrl, options = {}) {
285
270
  let url = _getListsRequestUrl(siteUrl, options);
286
- let response = (0, rest_1.GetJsonSync)(url, null, Object.assign(Object.assign({}, rest_1.shortLocalCache), { jsonMetadata: _dependencies_1.jsonTypes.nometadata }));
271
+ let response = (0, rest_1.GetJsonSync)(url, null, { ...rest_1.shortLocalCache, jsonMetadata: _dependencies_1.jsonTypes.nometadata });
287
272
  if (response && response.success && response.result && (0, _dependencies_1.isNotEmptyArray)(response.result.value)) {
288
273
  return _postProcessGetLists(response.result.value, options);
289
274
  }
@@ -295,169 +280,165 @@ exports.GetListsSync = GetListsSync;
295
280
  * @param siteUrl the starting URL you want to get the sites for
296
281
  * @param allowAppWebs send true if you would like to inlucde app webs as well
297
282
  */
298
- function GetAllSubWebs(siteUrl, options) {
299
- return __awaiter(this, void 0, void 0, function* () {
300
- siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
301
- let sites = [];
302
- options = options || {};
303
- var currentSite;
304
- var queryFailed = false;
305
- try {
306
- currentSite = yield GetWebInfo(siteUrl);
307
- let queryFilter = '';
308
- if (!options.allSiteCollections) {
309
- //filter by site id
310
- let siteId = yield GetSiteId(siteUrl);
311
- queryFilter = `SiteId:${siteId}`;
312
- }
313
- //Issue 6735 missing WebId for some customer (US, government GCC tenant will not return WebId)
314
- let queryUrl = `${(0, common_1.GetRestBaseUrl)(siteUrl)}/search/query?querytext=%27${queryFilter}(contentclass:STS_Site)%20(contentclass:STS_Web)%27&trimduplicates=false&rowlimit=5000&selectproperties=%27Title,Url,WebTemplate,WebId%27`;
315
- let response = yield (0, rest_1.GetJson)(queryUrl, null, Object.assign({}, rest_1.shortLocalCache));
316
- let results = response && response.d && response.d.query && response.d.query.PrimaryQueryResult;
317
- let addedSites = [];
318
- if (results && results.RelevantResults.RowCount >= 0) {
319
- let allPropsFound = false;
320
- results.RelevantResults.Table.Rows.results.forEach(row => {
321
- let Title = null;
322
- let Url = null;
323
- let WebId = null;
324
- let WebTemplate = null;
325
- let skip = false;
326
- for (var i = 0; i < row.Cells.results.length; i++) {
327
- let cell = row.Cells.results[i];
328
- let value = (0, _dependencies_1.isNullOrEmptyString)(cell.Value) ? "" : cell.Value;
329
- switch (cell.Key) {
330
- case "WebTemplate":
331
- WebTemplate = value;
332
- if (!options.allowAppWebs && value === "APP")
333
- skip = true;
334
- break;
335
- case "Title":
336
- Title = value;
337
- break;
338
- case "WebId":
339
- WebId = (0, _dependencies_1.normalizeGuid)(value);
340
- break;
341
- case "Url":
342
- if (addedSites.indexOf(value.toLowerCase()) >= 0) {
343
- //duplicate, skip
344
- skip = true;
345
- }
346
- else {
347
- Url = value;
348
- }
349
- break;
350
- }
351
- if (skip)
352
- break; //stop the cells loop
353
- allPropsFound =
354
- Title !== null &&
355
- Url !== null &&
356
- WebId !== null &&
357
- WebTemplate !== null;
358
- if (allPropsFound)
283
+ async function GetAllSubWebs(siteUrl, options) {
284
+ siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
285
+ let sites = [];
286
+ options = options || {};
287
+ var currentSite;
288
+ var queryFailed = false;
289
+ try {
290
+ currentSite = await GetWebInfo(siteUrl);
291
+ let queryFilter = '';
292
+ if (!options.allSiteCollections) {
293
+ //filter by site id
294
+ let siteId = await GetSiteId(siteUrl);
295
+ queryFilter = `SiteId:${siteId}`;
296
+ }
297
+ //Issue 6735 missing WebId for some customer (US, government GCC tenant will not return WebId)
298
+ let queryUrl = `${(0, common_1.GetRestBaseUrl)(siteUrl)}/search/query?querytext=%27${queryFilter}(contentclass:STS_Site)%20(contentclass:STS_Web)%27&trimduplicates=false&rowlimit=5000&selectproperties=%27Title,Url,WebTemplate,WebId%27`;
299
+ let response = await (0, rest_1.GetJson)(queryUrl, null, { ...rest_1.shortLocalCache });
300
+ let results = response && response.d && response.d.query && response.d.query.PrimaryQueryResult;
301
+ let addedSites = [];
302
+ if (results && results.RelevantResults.RowCount >= 0) {
303
+ let allPropsFound = false;
304
+ results.RelevantResults.Table.Rows.results.forEach(row => {
305
+ let Title = null;
306
+ let Url = null;
307
+ let WebId = null;
308
+ let WebTemplate = null;
309
+ let skip = false;
310
+ for (var i = 0; i < row.Cells.results.length; i++) {
311
+ let cell = row.Cells.results[i];
312
+ let value = (0, _dependencies_1.isNullOrEmptyString)(cell.Value) ? "" : cell.Value;
313
+ switch (cell.Key) {
314
+ case "WebTemplate":
315
+ WebTemplate = value;
316
+ if (!options.allowAppWebs && value === "APP")
317
+ skip = true;
318
+ break;
319
+ case "Title":
320
+ Title = value;
321
+ break;
322
+ case "WebId":
323
+ WebId = (0, _dependencies_1.normalizeGuid)(value);
324
+ break;
325
+ case "Url":
326
+ if (addedSites.indexOf(value.toLowerCase()) >= 0) {
327
+ //duplicate, skip
328
+ skip = true;
329
+ }
330
+ else {
331
+ Url = value;
332
+ }
359
333
  break;
360
334
  }
361
- if (!skip && allPropsFound) //don't skip, and we found all needed props
362
- {
363
- sites.push({
364
- Title: Title,
365
- ServerRelativeUrl: (0, _dependencies_1.makeServerRelativeUrl)(Url),
366
- WebId: WebId,
367
- WebTemplate: WebTemplate,
368
- WebType: WebTemplate === "APP" ? _dependencies_1.WebTypes.App :
369
- WebTemplate === "GROUP" ? _dependencies_1.WebTypes.Group :
370
- WebTemplate === "STS" ? _dependencies_1.WebTypes.Team :
371
- _dependencies_1.WebTypes.Other
372
- });
373
- }
374
- });
375
- }
376
- //Issue 7161
377
- if (sites.length === 1 || (!(0, _dependencies_1.isNullOrUndefined)(currentSite) && !sites.filter((site) => {
378
- return site.WebId !== currentSite.WebId;
379
- })[0])) {
380
- queryFailed = true;
381
- }
335
+ if (skip)
336
+ break; //stop the cells loop
337
+ allPropsFound =
338
+ Title !== null &&
339
+ Url !== null &&
340
+ WebId !== null &&
341
+ WebTemplate !== null;
342
+ if (allPropsFound)
343
+ break;
344
+ }
345
+ if (!skip && allPropsFound) //don't skip, and we found all needed props
346
+ {
347
+ sites.push({
348
+ Title: Title,
349
+ ServerRelativeUrl: (0, _dependencies_1.makeServerRelativeUrl)(Url),
350
+ WebId: WebId,
351
+ WebTemplate: WebTemplate,
352
+ WebType: WebTemplate === "APP" ? _dependencies_1.WebTypes.App :
353
+ WebTemplate === "GROUP" ? _dependencies_1.WebTypes.Group :
354
+ WebTemplate === "STS" ? _dependencies_1.WebTypes.Team :
355
+ _dependencies_1.WebTypes.Other
356
+ });
357
+ }
358
+ });
382
359
  }
383
- catch (e) {
360
+ //Issue 7161
361
+ if (sites.length === 1 || (!(0, _dependencies_1.isNullOrUndefined)(currentSite) && !sites.filter((site) => {
362
+ return site.WebId !== currentSite.WebId;
363
+ })[0])) {
384
364
  queryFailed = true;
385
365
  }
386
- if (queryFailed) {
387
- // Igor: Issue #7702
388
- if (_spPageContextInfo && _spPageContextInfo.siteServerRelativeUrl.toLowerCase() !== siteUrl.toLowerCase()) {
389
- //siteUrl = _spPageContextInfo.siteServerRelativeUrl;
390
- //currentSite = await GetWebInfo(siteUrl);
391
- //Kevin: Issue 1028
392
- //The user may not have permission to the site collection root web. Instead of overwirting the currentSite/siteUrl,
393
- //we make a request for the site collection root web. If we get a valid response, replace currentSite/siteUrl with
394
- //the site collection root web info.
395
- let currentSiteCollection = yield GetWebInfo(_spPageContextInfo.siteServerRelativeUrl);
396
- if (currentSiteCollection && !(0, _dependencies_1.isNullOrEmptyString)(currentSiteCollection.ServerRelativeUrl)) {
397
- currentSite = currentSiteCollection;
398
- siteUrl = _spPageContextInfo.siteServerRelativeUrl;
399
- }
400
- }
401
- //add current site
402
- if (currentSite && (options.allowAppWebs || currentSite.WebType !== _dependencies_1.WebTypes.App)) {
403
- sites.push(currentSite);
404
- }
405
- //Issue 6651
406
- //add sub sites
407
- //if the query failed, we can't rely on search to get the subwebs
408
- var currentSiteSubSites = yield __getSubSites(siteUrl, options.allowAppWebs);
409
- if ((0, _dependencies_1.isNotEmptyArray)(currentSiteSubSites)) {
410
- sites = [...sites, ...currentSiteSubSites];
366
+ }
367
+ catch (e) {
368
+ queryFailed = true;
369
+ }
370
+ if (queryFailed) {
371
+ // Igor: Issue #7702
372
+ if (_spPageContextInfo && _spPageContextInfo.siteServerRelativeUrl.toLowerCase() !== siteUrl.toLowerCase()) {
373
+ //siteUrl = _spPageContextInfo.siteServerRelativeUrl;
374
+ //currentSite = await GetWebInfo(siteUrl);
375
+ //Kevin: Issue 1028
376
+ //The user may not have permission to the site collection root web. Instead of overwirting the currentSite/siteUrl,
377
+ //we make a request for the site collection root web. If we get a valid response, replace currentSite/siteUrl with
378
+ //the site collection root web info.
379
+ let currentSiteCollection = await GetWebInfo(_spPageContextInfo.siteServerRelativeUrl);
380
+ if (currentSiteCollection && !(0, _dependencies_1.isNullOrEmptyString)(currentSiteCollection.ServerRelativeUrl)) {
381
+ currentSite = currentSiteCollection;
382
+ siteUrl = _spPageContextInfo.siteServerRelativeUrl;
411
383
  }
412
384
  }
413
- var webIds = [];
414
- var filteredSites = [];
415
- for (let site of sites) {
416
- if (webIds.indexOf(site.WebId) === -1) {
417
- webIds.push(site.WebId);
418
- filteredSites.push(site);
419
- }
385
+ //add current site
386
+ if (currentSite && (options.allowAppWebs || currentSite.WebType !== _dependencies_1.WebTypes.App)) {
387
+ sites.push(currentSite);
420
388
  }
421
- (0, _dependencies_1.sortArray)(filteredSites, s => s.ServerRelativeUrl);
422
- return filteredSites;
423
- });
389
+ //Issue 6651
390
+ //add sub sites
391
+ //if the query failed, we can't rely on search to get the subwebs
392
+ var currentSiteSubSites = await __getSubSites(siteUrl, options.allowAppWebs);
393
+ if ((0, _dependencies_1.isNotEmptyArray)(currentSiteSubSites)) {
394
+ sites = [...sites, ...currentSiteSubSites];
395
+ }
396
+ }
397
+ var webIds = [];
398
+ var filteredSites = [];
399
+ for (let site of sites) {
400
+ if (webIds.indexOf(site.WebId) === -1) {
401
+ webIds.push(site.WebId);
402
+ filteredSites.push(site);
403
+ }
404
+ }
405
+ (0, _dependencies_1.sortArray)(filteredSites, s => s.ServerRelativeUrl);
406
+ return filteredSites;
424
407
  }
425
408
  exports.GetAllSubWebs = GetAllSubWebs;
426
- function __getSubSites(siteUrl, allowAppWebs) {
427
- return __awaiter(this, void 0, void 0, function* () {
428
- siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
429
- let sites = [];
430
- //try {
431
- //maybe search is not wokring? use regular REST API
432
- let restUrl = `${(0, common_1.GetRestBaseUrl)(siteUrl)}/web/getsubwebsfilteredforcurrentuser(nwebtemplatefilter=-1,nconfigurationfilter=0)?$Select=Title,ServerRelativeUrl,Id,WebTemplate`;
433
- let result = yield (0, rest_1.GetJson)(restUrl, null, Object.assign({}, rest_1.shortLocalCache));
434
- if (result && result.d && (0, _dependencies_1.isNotEmptyArray)(result.d.results)) {
435
- let results = (allowAppWebs) ? result.d.results : result.d.results.filter(s => s.WebTemplate !== "APP");
436
- let promises = [];
437
- results.forEach(s => {
438
- sites.push({
439
- Title: s.Title,
440
- ServerRelativeUrl: s.ServerRelativeUrl,
441
- WebId: s.Id,
442
- WebTemplate: s.WebTemplate,
443
- WebType: s.WebTemplate === "APP" ? _dependencies_1.WebTypes.App :
444
- s.WebTemplate === "GROUP" ? _dependencies_1.WebTypes.Group :
445
- s.WebTemplate === "STS" ? _dependencies_1.WebTypes.Team :
446
- _dependencies_1.WebTypes.Other
447
- });
448
- promises.push(__getSubSites(s.ServerRelativeUrl, allowAppWebs));
449
- });
450
- //loop and add all sub sites
451
- let allSubs = yield Promise.all(promises);
452
- allSubs.forEach(subSubs => {
453
- sites.push(...subSubs);
409
+ async function __getSubSites(siteUrl, allowAppWebs) {
410
+ siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
411
+ let sites = [];
412
+ //try {
413
+ //maybe search is not wokring? use regular REST API
414
+ let restUrl = `${(0, common_1.GetRestBaseUrl)(siteUrl)}/web/getsubwebsfilteredforcurrentuser(nwebtemplatefilter=-1,nconfigurationfilter=0)?$Select=Title,ServerRelativeUrl,Id,WebTemplate`;
415
+ let result = await (0, rest_1.GetJson)(restUrl, null, { ...rest_1.shortLocalCache });
416
+ if (result && result.d && (0, _dependencies_1.isNotEmptyArray)(result.d.results)) {
417
+ let results = (allowAppWebs) ? result.d.results : result.d.results.filter(s => s.WebTemplate !== "APP");
418
+ let promises = [];
419
+ results.forEach(s => {
420
+ sites.push({
421
+ Title: s.Title,
422
+ ServerRelativeUrl: s.ServerRelativeUrl,
423
+ WebId: s.Id,
424
+ WebTemplate: s.WebTemplate,
425
+ WebType: s.WebTemplate === "APP" ? _dependencies_1.WebTypes.App :
426
+ s.WebTemplate === "GROUP" ? _dependencies_1.WebTypes.Group :
427
+ s.WebTemplate === "STS" ? _dependencies_1.WebTypes.Team :
428
+ _dependencies_1.WebTypes.Other
454
429
  });
455
- }
456
- //}
457
- //catch {
458
- //}
459
- return sites;
460
- });
430
+ promises.push(__getSubSites(s.ServerRelativeUrl, allowAppWebs));
431
+ });
432
+ //loop and add all sub sites
433
+ let allSubs = await Promise.all(promises);
434
+ allSubs.forEach(subSubs => {
435
+ sites.push(...subSubs);
436
+ });
437
+ }
438
+ //}
439
+ //catch {
440
+ //}
441
+ return sites;
461
442
  }
462
443
  exports.__getSubSites = __getSubSites;
463
444
  function _getWebInfoByIdRequestUrl(siteUrl, webId) {
@@ -480,26 +461,32 @@ function _postProcessGetWebInfo(webInfo) {
480
461
  }
481
462
  return null;
482
463
  }
483
- function GetWebInfo(siteUrl, webId, refreshCache) {
484
- return __awaiter(this, void 0, void 0, function* () {
485
- let webInfoResponse = null;
486
- try {
487
- if (!(0, _dependencies_1.isNullOrEmptyString)(webId) && (0, _dependencies_1.isValidGuid)(webId)) {
488
- webId = (0, _dependencies_1.normalizeGuid)(webId);
489
- let currentWebId = yield GetWebId(siteUrl);
490
- if (currentWebId !== webId) {
491
- let url = _getWebInfoByIdRequestUrl(siteUrl, webId);
492
- webInfoResponse = yield (0, rest_1.GetJson)(url, null, Object.assign(Object.assign({ method: "POST", spWebUrl: (0, common_1.GetSiteUrl)(siteUrl) }, rest_1.shortLocalCache), { jsonMetadata: _dependencies_1.jsonTypes.nometadata, allowCache: refreshCache !== true }));
493
- }
494
- }
495
- if ((0, _dependencies_1.isNullOrUndefined)(webInfoResponse)) {
496
- let url = _getCurrentWebInfoRequestUrl(siteUrl);
497
- webInfoResponse = yield (0, rest_1.GetJson)(url, null, Object.assign(Object.assign({}, rest_1.shortLocalCache), { jsonMetadata: _dependencies_1.jsonTypes.nometadata, allowCache: refreshCache !== true }));
464
+ async function GetWebInfo(siteUrl, webId, refreshCache) {
465
+ let webInfoResponse = null;
466
+ try {
467
+ if (!(0, _dependencies_1.isNullOrEmptyString)(webId) && (0, _dependencies_1.isValidGuid)(webId)) {
468
+ webId = (0, _dependencies_1.normalizeGuid)(webId);
469
+ let currentWebId = await GetWebId(siteUrl);
470
+ if (currentWebId !== webId) {
471
+ let url = _getWebInfoByIdRequestUrl(siteUrl, webId);
472
+ webInfoResponse = await (0, rest_1.GetJson)(url, null, {
473
+ method: "POST", spWebUrl: (0, common_1.GetSiteUrl)(siteUrl), ...rest_1.shortLocalCache,
474
+ jsonMetadata: _dependencies_1.jsonTypes.nometadata,
475
+ allowCache: refreshCache !== true
476
+ });
498
477
  }
499
478
  }
500
- catch (e) { }
501
- return _postProcessGetWebInfo(webInfoResponse);
502
- });
479
+ if ((0, _dependencies_1.isNullOrUndefined)(webInfoResponse)) {
480
+ let url = _getCurrentWebInfoRequestUrl(siteUrl);
481
+ webInfoResponse = await (0, rest_1.GetJson)(url, null, {
482
+ ...rest_1.shortLocalCache,
483
+ jsonMetadata: _dependencies_1.jsonTypes.nometadata,
484
+ allowCache: refreshCache !== true
485
+ });
486
+ }
487
+ }
488
+ catch (e) { }
489
+ return _postProcessGetWebInfo(webInfoResponse);
503
490
  }
504
491
  exports.GetWebInfo = GetWebInfo;
505
492
  function GetWebInfoSync(siteUrl, webId) {
@@ -509,7 +496,10 @@ function GetWebInfoSync(siteUrl, webId) {
509
496
  let currentWebId = GetWebIdSync(siteUrl);
510
497
  if (currentWebId !== webId) {
511
498
  let url = _getWebInfoByIdRequestUrl(siteUrl, webId);
512
- let syncResult = (0, rest_1.GetJsonSync)(url, null, Object.assign(Object.assign({ method: "POST", spWebUrl: (0, common_1.GetSiteUrl)(siteUrl) }, rest_1.shortLocalCache), { jsonMetadata: _dependencies_1.jsonTypes.nometadata }));
499
+ let syncResult = (0, rest_1.GetJsonSync)(url, null, {
500
+ method: "POST", spWebUrl: (0, common_1.GetSiteUrl)(siteUrl), ...rest_1.shortLocalCache,
501
+ jsonMetadata: _dependencies_1.jsonTypes.nometadata
502
+ });
513
503
  if (syncResult.success) {
514
504
  webInfoResponse = syncResult.result;
515
505
  }
@@ -517,7 +507,10 @@ function GetWebInfoSync(siteUrl, webId) {
517
507
  }
518
508
  if ((0, _dependencies_1.isNullOrUndefined)(webInfoResponse)) {
519
509
  let url = _getCurrentWebInfoRequestUrl(siteUrl);
520
- let syncResult = (0, rest_1.GetJsonSync)(url, null, Object.assign(Object.assign({}, rest_1.shortLocalCache), { jsonMetadata: _dependencies_1.jsonTypes.nometadata }));
510
+ let syncResult = (0, rest_1.GetJsonSync)(url, null, {
511
+ ...rest_1.shortLocalCache,
512
+ jsonMetadata: _dependencies_1.jsonTypes.nometadata
513
+ });
521
514
  if (syncResult.success) {
522
515
  webInfoResponse = syncResult.result;
523
516
  }
@@ -525,46 +518,48 @@ function GetWebInfoSync(siteUrl, webId) {
525
518
  return _postProcessGetWebInfo(webInfoResponse);
526
519
  }
527
520
  exports.GetWebInfoSync = GetWebInfoSync;
528
- function GetWebRoleDefinitions(siteUrl) {
529
- return __awaiter(this, void 0, void 0, function* () {
530
- return (0, rest_1.GetJson)((0, common_1.GetRestBaseUrl)(siteUrl) + `/web/RoleDefinitions?filter=Hidden ne true`, null, Object.assign({}, rest_1.longLocalCache))
531
- .then(r => {
532
- return r.d.results || [];
533
- })
534
- .catch(() => []);
535
- });
521
+ async function GetWebRoleDefinitions(siteUrl) {
522
+ return (0, rest_1.GetJson)((0, common_1.GetRestBaseUrl)(siteUrl) + `/web/RoleDefinitions?filter=Hidden ne true`, null, { ...rest_1.longLocalCache })
523
+ .then(r => {
524
+ return r.d.results || [];
525
+ })
526
+ .catch(() => []);
536
527
  }
537
528
  exports.GetWebRoleDefinitions = GetWebRoleDefinitions;
529
+ ;
530
+ /** get roles for site or list */
531
+ async function GetRoleAssignments(siteUrl, listIdOrTitle) {
532
+ const url = `${(0, _dependencies_1.isNullOrEmptyString)(listIdOrTitle) ? (0, common_1.GetRestBaseUrl)(siteUrl) + "/web" : (0, list_1.GetListRestUrl)(siteUrl, listIdOrTitle)}/roleassignments?$expand=Member/users,RoleDefinitionBindings`;
533
+ const result = await (0, rest_1.GetJson)(url, undefined, { jsonMetadata: _dependencies_1.jsonTypes.nometadata });
534
+ return result.value;
535
+ }
536
+ exports.GetRoleAssignments = GetRoleAssignments;
538
537
  /** Web sub webs for the selected site */
539
- function GetSubWebs(siteUrl, options) {
540
- return __awaiter(this, void 0, void 0, function* () {
541
- return (0, rest_1.GetJson)((0, common_1.GetRestBaseUrl)(siteUrl) + `/web/webs${options && options.allowAppWebs ? "" : "&$filter=WebTemplate ne 'APP'"}`, null, Object.assign({}, rest_1.shortLocalCache))
542
- .then(r => {
543
- return r.d.results;
544
- })
545
- .catch(() => []);
546
- });
538
+ async function GetSubWebs(siteUrl, options) {
539
+ return (0, rest_1.GetJson)((0, common_1.GetRestBaseUrl)(siteUrl) + `/web/webs${options && options.allowAppWebs ? "" : "&$filter=WebTemplate ne 'APP'"}`, null, { ...rest_1.shortLocalCache })
540
+ .then(r => {
541
+ return r.d.results;
542
+ })
543
+ .catch(() => []);
547
544
  }
548
545
  exports.GetSubWebs = GetSubWebs;
549
546
  /** Web sub webs for the selected site */
550
- function GetAppTiles(siteUrl) {
551
- return __awaiter(this, void 0, void 0, function* () {
552
- //Issue 933 this api does not work in a classic app web
553
- if ((0, common_1.hasGlobalContext)() && _spPageContextInfo.isAppWeb) {
554
- logger.warn('GetAppTiles does not work in an app web');
555
- return null;
556
- }
557
- return (0, rest_1.GetJson)((0, common_1.GetRestBaseUrl)(siteUrl) + "/web/AppTiles?$filter=AppType%20eq%203&$select=Title,ProductId", null, Object.assign(Object.assign({}, rest_1.shortLocalCache), { jsonMetadata: _dependencies_1.jsonTypes.nometadata }))
558
- .then(r => {
559
- return (0, _dependencies_1.isNotEmptyArray)(r.value) ? r.value.map(t => {
560
- return {
561
- Title: t.Title,
562
- ProductId: (0, _dependencies_1.normalizeGuid)(t.ProductId)
563
- };
564
- }) : [];
565
- })
566
- .catch(() => []);
567
- });
547
+ async function GetAppTiles(siteUrl) {
548
+ //Issue 933 this api does not work in a classic app web
549
+ if ((0, common_1.hasGlobalContext)() && _spPageContextInfo.isAppWeb) {
550
+ logger.warn('GetAppTiles does not work in an app web');
551
+ return null;
552
+ }
553
+ return (0, rest_1.GetJson)((0, common_1.GetRestBaseUrl)(siteUrl) + "/web/AppTiles?$filter=AppType%20eq%203&$select=Title,ProductId", null, { ...rest_1.shortLocalCache, jsonMetadata: _dependencies_1.jsonTypes.nometadata })
554
+ .then(r => {
555
+ return (0, _dependencies_1.isNotEmptyArray)(r.value) ? r.value.map(t => {
556
+ return {
557
+ Title: t.Title,
558
+ ProductId: (0, _dependencies_1.normalizeGuid)(t.ProductId)
559
+ };
560
+ }) : [];
561
+ })
562
+ .catch(() => []);
568
563
  }
569
564
  exports.GetAppTiles = GetAppTiles;
570
565
  /** Web sub webs for the selected site */
@@ -575,7 +570,7 @@ function GetAppTilesSync(siteUrl) {
575
570
  logger.warn('GetAppTiles does not work in an app web');
576
571
  return null;
577
572
  }
578
- let r = (0, rest_1.GetJsonSync)((0, common_1.GetRestBaseUrl)(siteUrl) + "/web/AppTiles?$filter=AppType%20eq%203&$select=Title,ProductId", null, Object.assign(Object.assign({}, rest_1.shortLocalCache), { jsonMetadata: _dependencies_1.jsonTypes.nometadata }));
573
+ let r = (0, rest_1.GetJsonSync)((0, common_1.GetRestBaseUrl)(siteUrl) + "/web/AppTiles?$filter=AppType%20eq%203&$select=Title,ProductId", null, { ...rest_1.shortLocalCache, jsonMetadata: _dependencies_1.jsonTypes.nometadata });
579
574
  return r.success && r.result && (0, _dependencies_1.isNotEmptyArray)(r.result.value) ? r.result.value.map(t => {
580
575
  return {
581
576
  Title: t.Title,
@@ -590,17 +585,15 @@ function GetWebType(WebTemplate) {
590
585
  WebTemplate === "STS" ? _dependencies_1.WebTypes.Team :
591
586
  _dependencies_1.WebTypes.Other;
592
587
  }
593
- function GetServerTimeZone(siteUrl) {
594
- return __awaiter(this, void 0, void 0, function* () {
595
- siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
596
- let getTimeZoneUrl = `${(0, common_1.GetRestBaseUrl)(siteUrl)}/web/regionalSettings/timeZone`;
597
- let result = yield (0, rest_1.GetJson)(getTimeZoneUrl, null, Object.assign({}, rest_1.longLocalCache));
598
- if (result && result.d && !(0, _dependencies_1.isNullOrUndefined)(result.d)) {
599
- return result.d;
600
- }
601
- else
602
- return null;
603
- });
588
+ async function GetServerTimeZone(siteUrl) {
589
+ siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
590
+ let getTimeZoneUrl = `${(0, common_1.GetRestBaseUrl)(siteUrl)}/web/regionalSettings/timeZone`;
591
+ let result = await (0, rest_1.GetJson)(getTimeZoneUrl, null, { ...rest_1.longLocalCache });
592
+ if (result && result.d && !(0, _dependencies_1.isNullOrUndefined)(result.d)) {
593
+ return result.d;
594
+ }
595
+ else
596
+ return null;
604
597
  }
605
598
  exports.GetServerTimeZone = GetServerTimeZone;
606
599
  /**
@@ -611,20 +604,18 @@ exports.GetServerTimeZone = GetServerTimeZone;
611
604
  * We must send a date in, since places like Israel have different offset for specific dates (GMT+2 or GMT+3)
612
605
  * or just call SPServerLocalTimeToUTCDate
613
606
  */
614
- function GetServerTimeOffset(siteUrl, date) {
615
- return __awaiter(this, void 0, void 0, function* () {
616
- siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
617
- let dateStr = (0, date_1.toIsoDateFormat)(date, { zeroTime: true, omitZ: true });
618
- let inputDate = new Date(dateStr);
619
- let getTimeZoneOffsetUrl = `${(0, common_1.GetRestBaseUrl)(siteUrl)}/web/regionalSettings/timeZone/localTimeToUTC(@date)?@date='${encodeURIComponent(dateStr)}'`;
620
- let result = yield (0, rest_1.GetJson)(getTimeZoneOffsetUrl, null, Object.assign(Object.assign({}, rest_1.weeekLongLocalCache), { jsonMetadata: _dependencies_1.jsonTypes.nometadata }));
621
- if (result && !(0, _dependencies_1.isNullOrEmptyString)(result.value)) {
622
- let resultDate = new Date(result.value.slice(0, result.value.length - 1)); //remove Z and get as date.
623
- return (resultDate.getTime() - inputDate.getTime());
624
- }
625
- else
626
- return 0;
627
- });
607
+ async function GetServerTimeOffset(siteUrl, date) {
608
+ siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
609
+ let dateStr = (0, date_1.toIsoDateFormat)(date, { zeroTime: true, omitZ: true });
610
+ let inputDate = new Date(dateStr);
611
+ let getTimeZoneOffsetUrl = `${(0, common_1.GetRestBaseUrl)(siteUrl)}/web/regionalSettings/timeZone/localTimeToUTC(@date)?@date='${encodeURIComponent(dateStr)}'`;
612
+ let result = await (0, rest_1.GetJson)(getTimeZoneOffsetUrl, null, { ...rest_1.weeekLongLocalCache, jsonMetadata: _dependencies_1.jsonTypes.nometadata });
613
+ if (result && !(0, _dependencies_1.isNullOrEmptyString)(result.value)) {
614
+ let resultDate = new Date(result.value.slice(0, result.value.length - 1)); //remove Z and get as date.
615
+ return (resultDate.getTime() - inputDate.getTime());
616
+ }
617
+ else
618
+ return 0;
628
619
  }
629
620
  /**
630
621
  * to be used when parsing string date to date object in JavaScript like so:
@@ -639,7 +630,7 @@ function GetServerTimeOffsetSync(siteUrl, date) {
639
630
  let dateStr = (0, date_1.toIsoDateFormat)(date, { zeroTime: true, omitZ: true });
640
631
  let inputDate = new Date(dateStr);
641
632
  let getTimeZoneOffsetUrl = `${(0, common_1.GetRestBaseUrl)(siteUrl)}/web/regionalSettings/timeZone/localTimeToUTC(@date)?@date='${encodeURIComponent(dateStr)}'`;
642
- let result = (0, rest_1.GetJsonSync)(getTimeZoneOffsetUrl, null, Object.assign(Object.assign({}, rest_1.weeekLongLocalCache), { jsonMetadata: _dependencies_1.jsonTypes.nometadata }));
633
+ let result = (0, rest_1.GetJsonSync)(getTimeZoneOffsetUrl, null, { ...rest_1.weeekLongLocalCache, jsonMetadata: _dependencies_1.jsonTypes.nometadata });
643
634
  if (result && result.success && !(0, _dependencies_1.isNullOrEmptyString)(result.result.value)) {
644
635
  let resultDate = new Date(result.result.value.slice(0, result.result.value.length - 1)); //remove Z and get as date.
645
636
  return (resultDate.getTime() - inputDate.getTime());
@@ -648,17 +639,15 @@ function GetServerTimeOffsetSync(siteUrl, date) {
648
639
  return 0;
649
640
  }
650
641
  /** get date yyyy:MM:ddTHH:mm:ss NO ZED, or a date object created in the server local time, and return a date object of the corrected UTC time */
651
- function SPServerLocalTimeToUTCDate(siteUrl, date) {
652
- return __awaiter(this, void 0, void 0, function* () {
653
- //used in 7700
654
- if ((0, _dependencies_1.isNullOrEmptyString)(date))
655
- return null;
656
- siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
657
- if (!(0, _dependencies_1.isDate)(date))
658
- date = new Date(date);
659
- let serverTimeOffset = yield GetServerTimeOffset(siteUrl, date);
660
- return _SPServerLocalTimeToUTCDate(date, serverTimeOffset);
661
- });
642
+ async function SPServerLocalTimeToUTCDate(siteUrl, date) {
643
+ //used in 7700
644
+ if ((0, _dependencies_1.isNullOrEmptyString)(date))
645
+ return null;
646
+ siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
647
+ if (!(0, _dependencies_1.isDate)(date))
648
+ date = new Date(date);
649
+ let serverTimeOffset = await GetServerTimeOffset(siteUrl, date);
650
+ return _SPServerLocalTimeToUTCDate(date, serverTimeOffset);
662
651
  }
663
652
  exports.SPServerLocalTimeToUTCDate = SPServerLocalTimeToUTCDate;
664
653
  /** get date yyyy:MM:ddTHH:mm:ss NO ZED, or a date object created in the server local time, and return a date object of the corrected UTC time */
@@ -682,16 +671,14 @@ function _SPServerLocalTimeToUTCDate(date, serverTimeOffset) {
682
671
  * expensive, but works. for faster bulk parsing use toIsoDateFormat(new Date(GetServerTimeOffset + date.getTime()))
683
672
  * or: SPServerLocalTimeToUTCDate
684
673
  */
685
- function SPServerLocalTimeToUTC(siteUrl, date) {
686
- return __awaiter(this, void 0, void 0, function* () {
687
- siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
688
- if ((0, _dependencies_1.isDate)(date)) {
689
- date = (0, date_1.toIsoDateFormat)(date, { omitZ: true });
690
- }
691
- let restUrl = `${(0, common_1.GetRestBaseUrl)(siteUrl)}/web/regionalSettings/timeZone/localTimeToUTC(@date)?@date='${encodeURIComponent(date)}'`;
692
- let result = yield (0, rest_1.GetJson)(restUrl, null, Object.assign(Object.assign({}, rest_1.weeekLongLocalCache), { jsonMetadata: _dependencies_1.jsonTypes.nometadata }));
693
- return result && result.value || null;
694
- });
674
+ async function SPServerLocalTimeToUTC(siteUrl, date) {
675
+ siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
676
+ if ((0, _dependencies_1.isDate)(date)) {
677
+ date = (0, date_1.toIsoDateFormat)(date, { omitZ: true });
678
+ }
679
+ let restUrl = `${(0, common_1.GetRestBaseUrl)(siteUrl)}/web/regionalSettings/timeZone/localTimeToUTC(@date)?@date='${encodeURIComponent(date)}'`;
680
+ let result = await (0, rest_1.GetJson)(restUrl, null, { ...rest_1.weeekLongLocalCache, jsonMetadata: _dependencies_1.jsonTypes.nometadata });
681
+ return result && result.value || null;
695
682
  }
696
683
  exports.SPServerLocalTimeToUTC = SPServerLocalTimeToUTC;
697
684
  /**
@@ -706,7 +693,7 @@ function SPServerLocalTimeToUTCSync(siteUrl, date) {
706
693
  date = (0, date_1.toIsoDateFormat)(date, { omitZ: true });
707
694
  }
708
695
  let restUrl = `${(0, common_1.GetRestBaseUrl)(siteUrl)}/web/regionalSettings/timeZone/localTimeToUTC(@date)?@date='${encodeURIComponent(date)}'`;
709
- let result = (0, rest_1.GetJsonSync)(restUrl, null, Object.assign(Object.assign({}, rest_1.weeekLongLocalCache), { jsonMetadata: _dependencies_1.jsonTypes.nometadata }));
696
+ let result = (0, rest_1.GetJsonSync)(restUrl, null, { ...rest_1.weeekLongLocalCache, jsonMetadata: _dependencies_1.jsonTypes.nometadata });
710
697
  return result.success && result.result.value || null;
711
698
  }
712
699
  exports.SPServerLocalTimeToUTCSync = SPServerLocalTimeToUTCSync;
@@ -714,16 +701,14 @@ exports.SPServerLocalTimeToUTCSync = SPServerLocalTimeToUTCSync;
714
701
  * returns yyyy:MM:ddTHH:mm:ss NO ZED
715
702
  * expensive, but works. for faster bulk parsing use toIsoDateFormat(new Date(date.getTime()-GetServerTimeOffset,{omitZ:true}))
716
703
  */
717
- function UTCToSPServerLocalTime(siteUrl, date) {
718
- return __awaiter(this, void 0, void 0, function* () {
719
- siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
720
- if ((0, _dependencies_1.isDate)(date)) {
721
- date = (0, date_1.toIsoDateFormat)(date);
722
- }
723
- let restUrl = `${(0, common_1.GetRestBaseUrl)(siteUrl)}/web/regionalSettings/timeZone/utcToLocalTime(@date)?@date='${encodeURIComponent(date)}'`;
724
- let result = yield (0, rest_1.GetJson)(restUrl, null, Object.assign(Object.assign({}, rest_1.longLocalCache), { jsonMetadata: _dependencies_1.jsonTypes.nometadata }));
725
- return result && result.value || null;
726
- });
704
+ async function UTCToSPServerLocalTime(siteUrl, date) {
705
+ siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
706
+ if ((0, _dependencies_1.isDate)(date)) {
707
+ date = (0, date_1.toIsoDateFormat)(date);
708
+ }
709
+ let restUrl = `${(0, common_1.GetRestBaseUrl)(siteUrl)}/web/regionalSettings/timeZone/utcToLocalTime(@date)?@date='${encodeURIComponent(date)}'`;
710
+ let result = await (0, rest_1.GetJson)(restUrl, null, { ...rest_1.longLocalCache, jsonMetadata: _dependencies_1.jsonTypes.nometadata });
711
+ return result && result.value || null;
727
712
  }
728
713
  exports.UTCToSPServerLocalTime = UTCToSPServerLocalTime;
729
714
  /** get utc date yyyy:MM:ddTHH:mm:ssZ
@@ -736,7 +721,7 @@ function UTCToSPServerLocalTimeSync(siteUrl, date) {
736
721
  date = (0, date_1.toIsoDateFormat)(date);
737
722
  }
738
723
  let restUrl = `${(0, common_1.GetRestBaseUrl)(siteUrl)}/web/regionalSettings/timeZone/utcToLocalTime(@date)?@date='${encodeURIComponent(date)}'`;
739
- let result = (0, rest_1.GetJsonSync)(restUrl, null, Object.assign(Object.assign({}, rest_1.longLocalCache), { jsonMetadata: _dependencies_1.jsonTypes.nometadata }));
724
+ let result = (0, rest_1.GetJsonSync)(restUrl, null, { ...rest_1.longLocalCache, jsonMetadata: _dependencies_1.jsonTypes.nometadata });
740
725
  return result.success && result.result.value || null;
741
726
  }
742
727
  exports.UTCToSPServerLocalTimeSync = UTCToSPServerLocalTimeSync;
@@ -754,20 +739,18 @@ function SPServerLocalTimeSync(siteUrl) {
754
739
  return (0, date_1.toIsoDateFormat)(newdate, { omitZ: true });
755
740
  }
756
741
  exports.SPServerLocalTimeSync = SPServerLocalTimeSync;
757
- function SPServerLocalTime(siteUrl) {
758
- return __awaiter(this, void 0, void 0, function* () {
759
- siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
760
- var clientNowServerDeltas = (0, _dependencies_1.getGlobal)("ClientNowServerDeltas");
761
- var clientNowServerDelta = clientNowServerDeltas[siteUrl];
762
- var now = new Date();
763
- if ((0, _dependencies_1.isNullOrUndefined)(clientNowServerDelta)) {
764
- var local = yield UTCToSPServerLocalTime(siteUrl, now.toISOString());
765
- clientNowServerDelta = (+now - +(new Date(local)));
766
- clientNowServerDeltas[siteUrl] = clientNowServerDelta;
767
- }
768
- var newdate = new Date(+now - clientNowServerDelta);
769
- return (0, date_1.toIsoDateFormat)(newdate, { omitZ: true });
770
- });
742
+ async function SPServerLocalTime(siteUrl) {
743
+ siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
744
+ var clientNowServerDeltas = (0, _dependencies_1.getGlobal)("ClientNowServerDeltas");
745
+ var clientNowServerDelta = clientNowServerDeltas[siteUrl];
746
+ var now = new Date();
747
+ if ((0, _dependencies_1.isNullOrUndefined)(clientNowServerDelta)) {
748
+ var local = await UTCToSPServerLocalTime(siteUrl, now.toISOString());
749
+ clientNowServerDelta = (+now - +(new Date(local)));
750
+ clientNowServerDeltas[siteUrl] = clientNowServerDelta;
751
+ }
752
+ var newdate = new Date(+now - clientNowServerDelta);
753
+ return (0, date_1.toIsoDateFormat)(newdate, { omitZ: true });
771
754
  }
772
755
  exports.SPServerLocalTime = SPServerLocalTime;
773
756
  function GetContextWebInformationSync(siteUrl) {
@@ -799,62 +782,57 @@ function GetContextWebInformationSync(siteUrl) {
799
782
  }
800
783
  exports.GetContextWebInformationSync = GetContextWebInformationSync;
801
784
  /** Get UserCustomActions for web */
802
- function GetUserCustomActions(siteUrl, allowCache = true) {
803
- return __awaiter(this, void 0, void 0, function* () {
804
- siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
805
- let restUrl = `${(0, common_1.GetRestBaseUrl)(siteUrl)}/web/UserCustomActions?&select=Name,ScriptSrc,Title`;
806
- let cacheOptions = allowCache === true ? rest_1.shortLocalCache : { allowCache: false };
807
- let restOptions = Object.assign({ jsonMetadata: _dependencies_1.jsonTypes.nometadata }, cacheOptions);
808
- let result = yield (0, rest_1.GetJson)(restUrl, null, restOptions);
809
- return result && result.value || null;
810
- });
785
+ async function GetUserCustomActions(siteUrl, allowCache = true) {
786
+ siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
787
+ let restUrl = `${(0, common_1.GetRestBaseUrl)(siteUrl)}/web/UserCustomActions?&select=Name,ScriptSrc,Title`;
788
+ let cacheOptions = allowCache === true ? rest_1.shortLocalCache : { allowCache: false };
789
+ let restOptions = {
790
+ jsonMetadata: _dependencies_1.jsonTypes.nometadata,
791
+ ...cacheOptions
792
+ };
793
+ let result = await (0, rest_1.GetJson)(restUrl, null, restOptions);
794
+ return result && result.value || null;
811
795
  }
812
796
  exports.GetUserCustomActions = GetUserCustomActions;
813
797
  /** Get web regional settings */
814
- function GetRegionalSettings(siteUrl) {
815
- return __awaiter(this, void 0, void 0, function* () {
816
- siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
817
- let restUrl = `${(0, common_1.GetRestBaseUrl)(siteUrl)}/web/regionalSettings`;
818
- try {
819
- let result = yield (0, rest_1.GetJson)(restUrl, null, Object.assign(Object.assign({}, rest_1.mediumLocalCache), { jsonMetadata: _dependencies_1.jsonTypes.nometadata }));
820
- return result;
821
- }
822
- catch (_a) {
823
- }
824
- return null;
825
- });
798
+ async function GetRegionalSettings(siteUrl) {
799
+ siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
800
+ let restUrl = `${(0, common_1.GetRestBaseUrl)(siteUrl)}/web/regionalSettings`;
801
+ try {
802
+ let result = await (0, rest_1.GetJson)(restUrl, null, { ...rest_1.mediumLocalCache, jsonMetadata: _dependencies_1.jsonTypes.nometadata });
803
+ return result;
804
+ }
805
+ catch {
806
+ }
807
+ return null;
826
808
  }
827
809
  exports.GetRegionalSettings = GetRegionalSettings;
828
810
  /** Get all web properties */
829
- function GetAllWebProperties(siteUrl) {
830
- return __awaiter(this, void 0, void 0, function* () {
831
- siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
832
- let restUrl = `${(0, common_1.GetRestBaseUrl)(siteUrl)}/web/AllProperties`;
833
- try {
834
- let result = yield (0, rest_1.GetJson)(restUrl, null, Object.assign(Object.assign({}, rest_1.shortLocalCache), { jsonMetadata: _dependencies_1.jsonTypes.nometadata }));
835
- return result;
836
- }
837
- catch (_a) {
838
- }
839
- return null;
840
- });
811
+ async function GetAllWebProperties(siteUrl) {
812
+ siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
813
+ let restUrl = `${(0, common_1.GetRestBaseUrl)(siteUrl)}/web/AllProperties`;
814
+ try {
815
+ let result = await (0, rest_1.GetJson)(restUrl, null, { ...rest_1.shortLocalCache, jsonMetadata: _dependencies_1.jsonTypes.nometadata });
816
+ return result;
817
+ }
818
+ catch {
819
+ }
820
+ return null;
841
821
  }
842
822
  exports.GetAllWebProperties = GetAllWebProperties;
843
823
  /** Get web property by name */
844
- function GetWebPropertyByName(name, siteUrl) {
845
- return __awaiter(this, void 0, void 0, function* () {
846
- siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
847
- let restUrl = `${(0, common_1.GetRestBaseUrl)(siteUrl)}/web/AllProperties?$select=${name}`;
848
- try {
849
- let result = yield (0, rest_1.GetJson)(restUrl, null, Object.assign(Object.assign({}, rest_1.shortLocalCache), { jsonMetadata: _dependencies_1.jsonTypes.nometadata }));
850
- if (!(0, _dependencies_1.isNullOrUndefined)(result) && !(0, _dependencies_1.isNullOrUndefined)(result[name])) {
851
- return result[name];
852
- }
853
- }
854
- catch (_a) {
824
+ async function GetWebPropertyByName(name, siteUrl) {
825
+ siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
826
+ let restUrl = `${(0, common_1.GetRestBaseUrl)(siteUrl)}/web/AllProperties?$select=${name}`;
827
+ try {
828
+ let result = await (0, rest_1.GetJson)(restUrl, null, { ...rest_1.shortLocalCache, jsonMetadata: _dependencies_1.jsonTypes.nometadata });
829
+ if (!(0, _dependencies_1.isNullOrUndefined)(result) && !(0, _dependencies_1.isNullOrUndefined)(result[name])) {
830
+ return result[name];
855
831
  }
856
- return null;
857
- });
832
+ }
833
+ catch {
834
+ }
835
+ return null;
858
836
  }
859
837
  exports.GetWebPropertyByName = GetWebPropertyByName;
860
838
  function getFormDigest(serverRelativeWebUrl) {
@@ -897,33 +875,35 @@ function ensureLegacyProps(pageContext) {
897
875
  }
898
876
  }
899
877
  exports.ensureLegacyProps = ensureLegacyProps;
900
- function WebHasUniquePermissions(siteUrl) {
901
- return __awaiter(this, void 0, void 0, function* () {
902
- let url = `${(0, common_1.GetRestBaseUrl)(siteUrl)}/web?$select=hasuniqueroleassignments`;
903
- let has = yield (0, rest_1.GetJson)(url, undefined, { allowCache: false, jsonMetadata: _dependencies_1.jsonTypes.nometadata });
904
- return has.HasUniqueRoleAssignments === true;
905
- });
878
+ async function WebHasUniquePermissions(siteUrl) {
879
+ let url = `${(0, common_1.GetRestBaseUrl)(siteUrl)}/web?$select=hasuniqueroleassignments`;
880
+ let has = await (0, rest_1.GetJson)(url, undefined, { allowCache: false, jsonMetadata: _dependencies_1.jsonTypes.nometadata });
881
+ return has.HasUniqueRoleAssignments === true;
906
882
  }
907
883
  exports.WebHasUniquePermissions = WebHasUniquePermissions;
908
- function BreakWebPermissionInheritance(siteUrl, clear = true) {
909
- return __awaiter(this, void 0, void 0, function* () {
910
- let url = `${(0, common_1.GetRestBaseUrl)(siteUrl)}/web/breakroleinheritance(copyRoleAssignments=${clear ? 'false' : 'true'}, clearSubscopes=true)`;
911
- yield (0, rest_1.GetJson)(url, undefined, { method: "POST", allowCache: false, jsonMetadata: _dependencies_1.jsonTypes.nometadata });
912
- });
884
+ async function BreakWebPermissionInheritance(siteUrl, clear = true) {
885
+ let url = `${(0, common_1.GetRestBaseUrl)(siteUrl)}/web/breakroleinheritance(copyRoleAssignments=${clear ? 'false' : 'true'}, clearSubscopes=true)`;
886
+ await (0, rest_1.GetJson)(url, undefined, { method: "POST", allowCache: false, jsonMetadata: _dependencies_1.jsonTypes.nometadata });
913
887
  }
914
888
  exports.BreakWebPermissionInheritance = BreakWebPermissionInheritance;
915
- function AssignWebPermission(siteUrl, principalId, roleId) {
916
- return __awaiter(this, void 0, void 0, function* () {
917
- let url = `${(0, common_1.GetRestBaseUrl)(siteUrl)}/web/roleassignments/addroleassignment(principalid=${principalId},roleDefId=${roleId})`;
918
- yield (0, rest_1.GetJson)(url, undefined, { method: "POST", allowCache: false, jsonMetadata: _dependencies_1.jsonTypes.nometadata });
919
- });
889
+ async function AssignWebPermission(siteUrl, principalId, roleId) {
890
+ let url = `${(0, common_1.GetRestBaseUrl)(siteUrl)}/web/roleassignments/addroleassignment(principalid=${principalId},roleDefId=${roleId})`;
891
+ await (0, rest_1.GetJson)(url, undefined, { method: "POST", allowCache: false, jsonMetadata: _dependencies_1.jsonTypes.nometadata });
920
892
  }
921
893
  exports.AssignWebPermission = AssignWebPermission;
922
- function RemoveWebPermission(siteUrl, principalId, roleId) {
923
- return __awaiter(this, void 0, void 0, function* () {
924
- let url = `${(0, common_1.GetRestBaseUrl)(siteUrl)}/web/roleassignments/removeroleassignment(principalid=${principalId},roleDefId=${roleId})`;
925
- yield (0, rest_1.GetJson)(url, undefined, { method: "POST", allowCache: false, jsonMetadata: _dependencies_1.jsonTypes.nometadata });
926
- });
894
+ async function RemoveWebPermission(siteUrl, principalId, roleId) {
895
+ let url = `${(0, common_1.GetRestBaseUrl)(siteUrl)}/web/roleassignments/removeroleassignment(principalid=${principalId},roleDefId=${roleId})`;
896
+ await (0, rest_1.GetJson)(url, undefined, { method: "POST", allowCache: false, jsonMetadata: _dependencies_1.jsonTypes.nometadata });
927
897
  }
928
898
  exports.RemoveWebPermission = RemoveWebPermission;
899
+ /** set a user as site admin - rejects/throws if not successful */
900
+ async function SetUserAsSiteAdmin(siteUrl, userId) {
901
+ const url = `${(0, common_1.GetRestBaseUrl)(siteUrl)}/web/getuserbyid(${userId})`;
902
+ await (0, rest_1.GetJson)(url, (0, _dependencies_1.jsonStringify)({
903
+ "__metadata": { "type": "SP.User" },
904
+ "IsSiteAdmin": true
905
+ }), { method: 'POST', xHttpMethod: 'MERGE' });
906
+ return true;
907
+ }
908
+ exports.SetUserAsSiteAdmin = SetUserAsSiteAdmin;
929
909
  //# sourceMappingURL=web.js.map