@kwiz/common 1.0.1

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 (310) hide show
  1. package/LICENSE +21 -0
  2. package/dist/_dependencies.d.ts +1 -0
  3. package/dist/_dependencies.js +8 -0
  4. package/dist/_dependencies.js.map +1 -0
  5. package/dist/helpers/Guid.d.ts +119 -0
  6. package/dist/helpers/Guid.js +183 -0
  7. package/dist/helpers/Guid.js.map +1 -0
  8. package/dist/helpers/_dependencies.d.ts +2 -0
  9. package/dist/helpers/_dependencies.js +21 -0
  10. package/dist/helpers/_dependencies.js.map +1 -0
  11. package/dist/helpers/base64.d.ts +8 -0
  12. package/dist/helpers/base64.js +178 -0
  13. package/dist/helpers/base64.js.map +1 -0
  14. package/dist/helpers/browser.d.ts +144 -0
  15. package/dist/helpers/browser.js +1200 -0
  16. package/dist/helpers/browser.js.map +1 -0
  17. package/dist/helpers/browserinfo.d.ts +23 -0
  18. package/dist/helpers/browserinfo.js +215 -0
  19. package/dist/helpers/browserinfo.js.map +1 -0
  20. package/dist/helpers/collections.base.d.ts +128 -0
  21. package/dist/helpers/collections.base.js +430 -0
  22. package/dist/helpers/collections.base.js.map +1 -0
  23. package/dist/helpers/collections.d.ts +18 -0
  24. package/dist/helpers/collections.js +99 -0
  25. package/dist/helpers/collections.js.map +1 -0
  26. package/dist/helpers/color.d.ts +11 -0
  27. package/dist/helpers/color.js +57 -0
  28. package/dist/helpers/color.js.map +1 -0
  29. package/dist/helpers/cookies.d.ts +6 -0
  30. package/dist/helpers/cookies.js +56 -0
  31. package/dist/helpers/cookies.js.map +1 -0
  32. package/dist/helpers/date.d.ts +43 -0
  33. package/dist/helpers/date.js +158 -0
  34. package/dist/helpers/date.js.map +1 -0
  35. package/dist/helpers/debug.d.ts +33 -0
  36. package/dist/helpers/debug.js +177 -0
  37. package/dist/helpers/debug.js.map +1 -0
  38. package/dist/helpers/emails.d.ts +2 -0
  39. package/dist/helpers/emails.js +10 -0
  40. package/dist/helpers/emails.js.map +1 -0
  41. package/dist/helpers/eval.d.ts +1 -0
  42. package/dist/helpers/eval.js +10 -0
  43. package/dist/helpers/eval.js.map +1 -0
  44. package/dist/helpers/file.d.ts +11 -0
  45. package/dist/helpers/file.js +55 -0
  46. package/dist/helpers/file.js.map +1 -0
  47. package/dist/helpers/flatted.d.ts +20 -0
  48. package/dist/helpers/flatted.js +135 -0
  49. package/dist/helpers/flatted.js.map +1 -0
  50. package/dist/helpers/functions.d.ts +4 -0
  51. package/dist/helpers/functions.js +17 -0
  52. package/dist/helpers/functions.js.map +1 -0
  53. package/dist/helpers/graph/calendar.types.d.ts +3 -0
  54. package/dist/helpers/graph/calendar.types.js +15 -0
  55. package/dist/helpers/graph/calendar.types.js.map +1 -0
  56. package/dist/helpers/http.d.ts +25 -0
  57. package/dist/helpers/http.js +70 -0
  58. package/dist/helpers/http.js.map +1 -0
  59. package/dist/helpers/images.d.ts +16 -0
  60. package/dist/helpers/images.js +21 -0
  61. package/dist/helpers/images.js.map +1 -0
  62. package/dist/helpers/index.d.ts +29 -0
  63. package/dist/helpers/index.js +46 -0
  64. package/dist/helpers/index.js.map +1 -0
  65. package/dist/helpers/json.d.ts +3 -0
  66. package/dist/helpers/json.js +44 -0
  67. package/dist/helpers/json.js.map +1 -0
  68. package/dist/helpers/md5.d.ts +5 -0
  69. package/dist/helpers/md5.js +172 -0
  70. package/dist/helpers/md5.js.map +1 -0
  71. package/dist/helpers/objects.d.ts +49 -0
  72. package/dist/helpers/objects.js +271 -0
  73. package/dist/helpers/objects.js.map +1 -0
  74. package/dist/helpers/promises.d.ts +14 -0
  75. package/dist/helpers/promises.js +112 -0
  76. package/dist/helpers/promises.js.map +1 -0
  77. package/dist/helpers/random.d.ts +2 -0
  78. package/dist/helpers/random.js +32 -0
  79. package/dist/helpers/random.js.map +1 -0
  80. package/dist/helpers/scheduler/scheduler.d.ts +39 -0
  81. package/dist/helpers/scheduler/scheduler.js +109 -0
  82. package/dist/helpers/scheduler/scheduler.js.map +1 -0
  83. package/dist/helpers/sharepoint.d.ts +112 -0
  84. package/dist/helpers/sharepoint.js +629 -0
  85. package/dist/helpers/sharepoint.js.map +1 -0
  86. package/dist/helpers/strings.d.ts +56 -0
  87. package/dist/helpers/strings.js +282 -0
  88. package/dist/helpers/strings.js.map +1 -0
  89. package/dist/helpers/typecheckers.d.ts +56 -0
  90. package/dist/helpers/typecheckers.js +274 -0
  91. package/dist/helpers/typecheckers.js.map +1 -0
  92. package/dist/helpers/url.d.ts +46 -0
  93. package/dist/helpers/url.js +199 -0
  94. package/dist/helpers/url.js.map +1 -0
  95. package/dist/helpers/urlhelper.d.ts +16 -0
  96. package/dist/helpers/urlhelper.js +96 -0
  97. package/dist/helpers/urlhelper.js.map +1 -0
  98. package/dist/index.d.ts +15 -0
  99. package/dist/index.js +37 -0
  100. package/dist/index.js.map +1 -0
  101. package/dist/types/common.types.d.ts +19 -0
  102. package/dist/types/common.types.js +4 -0
  103. package/dist/types/common.types.js.map +1 -0
  104. package/dist/types/flatted.types.d.ts +49 -0
  105. package/dist/types/flatted.types.js +3 -0
  106. package/dist/types/flatted.types.js.map +1 -0
  107. package/dist/types/globals.types.d.ts +6 -0
  108. package/dist/types/globals.types.js +3 -0
  109. package/dist/types/globals.types.js.map +1 -0
  110. package/dist/types/graph/calendar.types.d.ts +79 -0
  111. package/dist/types/graph/calendar.types.js +3 -0
  112. package/dist/types/graph/calendar.types.js.map +1 -0
  113. package/dist/types/graph/index.d.ts +1 -0
  114. package/dist/types/graph/index.js +18 -0
  115. package/dist/types/graph/index.js.map +1 -0
  116. package/dist/types/index.d.ts +11 -0
  117. package/dist/types/index.js +28 -0
  118. package/dist/types/index.js.map +1 -0
  119. package/dist/types/knownscript.types.d.ts +22 -0
  120. package/dist/types/knownscript.types.js +3 -0
  121. package/dist/types/knownscript.types.js.map +1 -0
  122. package/dist/types/libs/datajs.types.d.ts +29 -0
  123. package/dist/types/libs/datajs.types.js +3 -0
  124. package/dist/types/libs/datajs.types.js.map +1 -0
  125. package/dist/types/libs/ics.types.d.ts +29 -0
  126. package/dist/types/libs/ics.types.js +3 -0
  127. package/dist/types/libs/ics.types.js.map +1 -0
  128. package/dist/types/libs/index.d.ts +3 -0
  129. package/dist/types/libs/index.js +20 -0
  130. package/dist/types/libs/index.js.map +1 -0
  131. package/dist/types/libs/msal.types.d.ts +33 -0
  132. package/dist/types/libs/msal.types.js +63 -0
  133. package/dist/types/libs/msal.types.js.map +1 -0
  134. package/dist/types/locales.d.ts +122 -0
  135. package/dist/types/locales.js +1 -0
  136. package/dist/types/locales.js.map +1 -0
  137. package/dist/types/localstoragecache.types.d.ts +8 -0
  138. package/dist/types/localstoragecache.types.js +3 -0
  139. package/dist/types/localstoragecache.types.js.map +1 -0
  140. package/dist/types/moment.d.ts +6 -0
  141. package/dist/types/moment.js +1 -0
  142. package/dist/types/moment.js.map +1 -0
  143. package/dist/types/regex.types.d.ts +14 -0
  144. package/dist/types/regex.types.js +3 -0
  145. package/dist/types/regex.types.js.map +1 -0
  146. package/dist/types/rest.types.d.ts +81 -0
  147. package/dist/types/rest.types.js +24 -0
  148. package/dist/types/rest.types.js.map +1 -0
  149. package/dist/types/sharepoint.types.d.ts +1432 -0
  150. package/dist/types/sharepoint.types.js +629 -0
  151. package/dist/types/sharepoint.types.js.map +1 -0
  152. package/dist/types/sharepoint.utils.types.d.ts +246 -0
  153. package/dist/types/sharepoint.utils.types.js +26 -0
  154. package/dist/types/sharepoint.utils.types.js.map +1 -0
  155. package/dist/utils/_dependencies.d.ts +3 -0
  156. package/dist/utils/_dependencies.js +24 -0
  157. package/dist/utils/_dependencies.js.map +1 -0
  158. package/dist/utils/base64.d.ts +2 -0
  159. package/dist/utils/base64.js +41 -0
  160. package/dist/utils/base64.js.map +1 -0
  161. package/dist/utils/consolelogger.d.ts +73 -0
  162. package/dist/utils/consolelogger.js +281 -0
  163. package/dist/utils/consolelogger.js.map +1 -0
  164. package/dist/utils/date.d.ts +10 -0
  165. package/dist/utils/date.js +30 -0
  166. package/dist/utils/date.js.map +1 -0
  167. package/dist/utils/emails.d.ts +2 -0
  168. package/dist/utils/emails.js +24 -0
  169. package/dist/utils/emails.js.map +1 -0
  170. package/dist/utils/index.d.ts +13 -0
  171. package/dist/utils/index.js +31 -0
  172. package/dist/utils/index.js.map +1 -0
  173. package/dist/utils/knownscript.d.ts +99 -0
  174. package/dist/utils/knownscript.js +261 -0
  175. package/dist/utils/knownscript.js.map +1 -0
  176. package/dist/utils/localstoragecache.d.ts +19 -0
  177. package/dist/utils/localstoragecache.js +372 -0
  178. package/dist/utils/localstoragecache.js.map +1 -0
  179. package/dist/utils/rest.d.ts +17 -0
  180. package/dist/utils/rest.js +402 -0
  181. package/dist/utils/rest.js.map +1 -0
  182. package/dist/utils/script.d.ts +33 -0
  183. package/dist/utils/script.js +169 -0
  184. package/dist/utils/script.js.map +1 -0
  185. package/dist/utils/sharepoint.rest/common.d.ts +32 -0
  186. package/dist/utils/sharepoint.rest/common.js +146 -0
  187. package/dist/utils/sharepoint.rest/common.js.map +1 -0
  188. package/dist/utils/sharepoint.rest/date.d.ts +2 -0
  189. package/dist/utils/sharepoint.rest/date.js +57 -0
  190. package/dist/utils/sharepoint.rest/date.js.map +1 -0
  191. package/dist/utils/sharepoint.rest/file.folder.d.ts +58 -0
  192. package/dist/utils/sharepoint.rest/file.folder.js +305 -0
  193. package/dist/utils/sharepoint.rest/file.folder.js.map +1 -0
  194. package/dist/utils/sharepoint.rest/index.d.ts +11 -0
  195. package/dist/utils/sharepoint.rest/index.js +28 -0
  196. package/dist/utils/sharepoint.rest/index.js.map +1 -0
  197. package/dist/utils/sharepoint.rest/item.d.ts +81 -0
  198. package/dist/utils/sharepoint.rest/item.js +444 -0
  199. package/dist/utils/sharepoint.rest/item.js.map +1 -0
  200. package/dist/utils/sharepoint.rest/list.d.ts +228 -0
  201. package/dist/utils/sharepoint.rest/list.js +868 -0
  202. package/dist/utils/sharepoint.rest/list.js.map +1 -0
  203. package/dist/utils/sharepoint.rest/listutils/GetListItemsByCaml.d.ts +19 -0
  204. package/dist/utils/sharepoint.rest/listutils/GetListItemsByCaml.js +629 -0
  205. package/dist/utils/sharepoint.rest/listutils/GetListItemsByCaml.js.map +1 -0
  206. package/dist/utils/sharepoint.rest/listutils/GetListItemsById.d.ts +14 -0
  207. package/dist/utils/sharepoint.rest/listutils/GetListItemsById.js +222 -0
  208. package/dist/utils/sharepoint.rest/listutils/GetListItemsById.js.map +1 -0
  209. package/dist/utils/sharepoint.rest/listutils/common.d.ts +3 -0
  210. package/dist/utils/sharepoint.rest/listutils/common.js +198 -0
  211. package/dist/utils/sharepoint.rest/listutils/common.js.map +1 -0
  212. package/dist/utils/sharepoint.rest/user-search.d.ts +76 -0
  213. package/dist/utils/sharepoint.rest/user-search.js +239 -0
  214. package/dist/utils/sharepoint.rest/user-search.js.map +1 -0
  215. package/dist/utils/sharepoint.rest/user.d.ts +71 -0
  216. package/dist/utils/sharepoint.rest/user.js +404 -0
  217. package/dist/utils/sharepoint.rest/user.js.map +1 -0
  218. package/dist/utils/sharepoint.rest/web.d.ts +107 -0
  219. package/dist/utils/sharepoint.rest/web.js +929 -0
  220. package/dist/utils/sharepoint.rest/web.js.map +1 -0
  221. package/dist/utils/sod.d.ts +29 -0
  222. package/dist/utils/sod.js +177 -0
  223. package/dist/utils/sod.js.map +1 -0
  224. package/package.json +60 -0
  225. package/readme.md +13 -0
  226. package/src/_dependencies.ts +2 -0
  227. package/src/helpers/Guid.ts +182 -0
  228. package/src/helpers/_dependencies.ts +3 -0
  229. package/src/helpers/base64.ts +174 -0
  230. package/src/helpers/browser.test.js +9 -0
  231. package/src/helpers/browser.ts +1299 -0
  232. package/src/helpers/browserinfo.ts +293 -0
  233. package/src/helpers/collections.base.test.js +26 -0
  234. package/src/helpers/collections.base.ts +439 -0
  235. package/src/helpers/collections.ts +108 -0
  236. package/src/helpers/color.ts +55 -0
  237. package/src/helpers/cookies.ts +55 -0
  238. package/src/helpers/date.test.js +97 -0
  239. package/src/helpers/date.ts +163 -0
  240. package/src/helpers/debug.ts +187 -0
  241. package/src/helpers/emails.ts +7 -0
  242. package/src/helpers/eval.ts +5 -0
  243. package/src/helpers/file.test.js +51 -0
  244. package/src/helpers/file.ts +59 -0
  245. package/src/helpers/flatted.ts +150 -0
  246. package/src/helpers/functions.ts +17 -0
  247. package/src/helpers/graph/calendar.types.ts +11 -0
  248. package/src/helpers/http.ts +70 -0
  249. package/src/helpers/images.ts +23 -0
  250. package/src/helpers/index.ts +29 -0
  251. package/src/helpers/json.ts +39 -0
  252. package/src/helpers/md5.ts +190 -0
  253. package/src/helpers/objects.test.js +27 -0
  254. package/src/helpers/objects.ts +256 -0
  255. package/src/helpers/promises.test.js +18 -0
  256. package/src/helpers/promises.ts +102 -0
  257. package/src/helpers/random.ts +27 -0
  258. package/src/helpers/scheduler/scheduler.test.js +104 -0
  259. package/src/helpers/scheduler/scheduler.ts +132 -0
  260. package/src/helpers/sharepoint.ts +681 -0
  261. package/src/helpers/strings.test.js +43 -0
  262. package/src/helpers/strings.ts +288 -0
  263. package/src/helpers/typecheckers.test.js +35 -0
  264. package/src/helpers/typecheckers.ts +263 -0
  265. package/src/helpers/url.test.js +18 -0
  266. package/src/helpers/url.ts +202 -0
  267. package/src/helpers/urlhelper.ts +104 -0
  268. package/src/index.ts +24 -0
  269. package/src/types/common.types.ts +16 -0
  270. package/src/types/flatted.types.ts +60 -0
  271. package/src/types/globals.types.ts +7 -0
  272. package/src/types/graph/calendar.types.ts +81 -0
  273. package/src/types/graph/index.ts +1 -0
  274. package/src/types/index.ts +12 -0
  275. package/src/types/knownscript.types.ts +19 -0
  276. package/src/types/libs/datajs.types.ts +29 -0
  277. package/src/types/libs/ics.types.ts +31 -0
  278. package/src/types/libs/index.ts +4 -0
  279. package/src/types/libs/msal.types.ts +79 -0
  280. package/src/types/locales.ts +125 -0
  281. package/src/types/localstoragecache.types.ts +9 -0
  282. package/src/types/moment.ts +7 -0
  283. package/src/types/regex.types.ts +17 -0
  284. package/src/types/rest.types.ts +94 -0
  285. package/src/types/sharepoint.types.ts +1413 -0
  286. package/src/types/sharepoint.utils.types.ts +246 -0
  287. package/src/utils/_dependencies.ts +4 -0
  288. package/src/utils/base64.ts +27 -0
  289. package/src/utils/consolelogger.ts +315 -0
  290. package/src/utils/date.ts +36 -0
  291. package/src/utils/emails.ts +25 -0
  292. package/src/utils/index.ts +13 -0
  293. package/src/utils/knownscript.ts +280 -0
  294. package/src/utils/localstoragecache.ts +419 -0
  295. package/src/utils/rest.ts +465 -0
  296. package/src/utils/script.ts +168 -0
  297. package/src/utils/sharepoint.rest/common.ts +149 -0
  298. package/src/utils/sharepoint.rest/date.ts +61 -0
  299. package/src/utils/sharepoint.rest/file.folder.ts +368 -0
  300. package/src/utils/sharepoint.rest/index.ts +11 -0
  301. package/src/utils/sharepoint.rest/item.ts +456 -0
  302. package/src/utils/sharepoint.rest/list.ts +1144 -0
  303. package/src/utils/sharepoint.rest/listutils/GetListItemsByCaml.ts +750 -0
  304. package/src/utils/sharepoint.rest/listutils/GetListItemsById.ts +265 -0
  305. package/src/utils/sharepoint.rest/listutils/common.ts +202 -0
  306. package/src/utils/sharepoint.rest/user-search.ts +254 -0
  307. package/src/utils/sharepoint.rest/user.ts +447 -0
  308. package/src/utils/sharepoint.rest/web.ts +1031 -0
  309. package/src/utils/sod.ts +193 -0
  310. package/tsconfig.json +21 -0
@@ -0,0 +1,929 @@
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
+ 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;
13
+ const _dependencies_1 = require("../_dependencies");
14
+ const consolelogger_1 = require("../consolelogger");
15
+ const date_1 = require("../date");
16
+ const rest_1 = require("../rest");
17
+ const common_1 = require("./common");
18
+ const list_1 = require("./list");
19
+ const logger = consolelogger_1.ConsoleLogger.get("SharePoint.Rest.Web");
20
+ function GetSiteInfo(siteUrl) {
21
+ 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))
23
+ .then(r => {
24
+ var id = (0, _dependencies_1.normalizeGuid)(r.d.Id);
25
+ var serverRelativeUrl = (0, _dependencies_1.normalizeUrl)(r.d.ServerRelativeUrl);
26
+ if ((0, _dependencies_1.isNullOrEmptyString)(serverRelativeUrl))
27
+ serverRelativeUrl = "/"; //can't return "" since it will be treated as current sub site, when tyring to access the root site from a sub-site
28
+ //console.log("site id: " + id);
29
+ return { Id: id, ServerRelativeUrl: serverRelativeUrl };
30
+ })
31
+ .catch(() => null);
32
+ }
33
+ exports.GetSiteInfo = GetSiteInfo;
34
+ function GetSiteInfoSync(siteUrl) {
35
+ 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));
37
+ if (result.success) {
38
+ var id = (0, _dependencies_1.normalizeGuid)(result.result.d.Id);
39
+ var serverRelativeUrl = (0, _dependencies_1.normalizeUrl)(result.result.d.ServerRelativeUrl);
40
+ return { Id: id, ServerRelativeUrl: serverRelativeUrl };
41
+ }
42
+ return null;
43
+ }
44
+ exports.GetSiteInfoSync = GetSiteInfoSync;
45
+ function _getSiteIdFromContext(siteUrl) {
46
+ if ((0, common_1.hasGlobalContext)()) {
47
+ //issue 7295
48
+ //make sure we return false for /sites/ab/c is not under /sites/a by adding a / at the end
49
+ let normalizedWebUrl = (0, _dependencies_1.normalizeUrl)((0, _dependencies_1.makeServerRelativeUrl)(siteUrl), true).toLowerCase();
50
+ let normalizedCurrentSiteUrl = (0, _dependencies_1.normalizeUrl)(_spPageContextInfo.siteServerRelativeUrl, true).toLowerCase();
51
+ //test cases
52
+ //if (!testSub("/", "/hello")) console.error("1");
53
+ //if (testSub("/", "/sites/hello")) console.error("2");
54
+ //if (testSub("/sites/a", "/sites/b")) console.error("3");
55
+ //if (!testSub("/sites/a", "/sites/a/b")) console.error("4");
56
+ //if (!testSub("/", "/")) console.error("5");
57
+ //if (!testSub("/sites/a", "/sites/a")) console.error("6");
58
+ //if (testSub("/sites/a", "/hello")) console.error("7");
59
+ if ((0, _dependencies_1.isNullOrUndefined)(siteUrl)
60
+ || normalizedCurrentSiteUrl === "/" && !normalizedWebUrl.startsWith("/sites")
61
+ || normalizedCurrentSiteUrl !== "/" && normalizedWebUrl.startsWith(normalizedCurrentSiteUrl)) {
62
+ if (!(0, _dependencies_1.isNullOrEmptyString)(_spPageContextInfo.siteId)) {
63
+ return (0, _dependencies_1.normalizeGuid)(_spPageContextInfo.siteId);
64
+ }
65
+ }
66
+ }
67
+ return null;
68
+ }
69
+ /** 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;
75
+ }
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
+ });
84
+ });
85
+ }
86
+ exports.GetSiteId = GetSiteId;
87
+ /** Get site id lower case no {} */
88
+ function GetSiteIdSync(siteUrl) {
89
+ let siteId = _getSiteIdFromContext(siteUrl);
90
+ if (!(0, _dependencies_1.isNullOrEmptyString)(siteId)) {
91
+ return siteId;
92
+ }
93
+ let result = GetSiteInfoSync(siteUrl);
94
+ return !(0, _dependencies_1.isNullOrUndefined)(result) ? (0, _dependencies_1.normalizeGuid)(result.Id) : null;
95
+ }
96
+ exports.GetSiteIdSync = GetSiteIdSync;
97
+ /** Get root web id lower case no {} */
98
+ function GetRootWebInfo(siteUrl) {
99
+ 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))
101
+ .then(r => {
102
+ var id = (0, _dependencies_1.normalizeGuid)(r.d.Id);
103
+ var serverRelativeUrl = (0, _dependencies_1.normalizeUrl)(r.d.ServerRelativeUrl);
104
+ //console.log("site id: " + id);
105
+ return { Id: id, ServerRelativeUrl: serverRelativeUrl };
106
+ })
107
+ .catch(() => null);
108
+ }
109
+ exports.GetRootWebInfo = GetRootWebInfo;
110
+ /** Return the web Title */
111
+ function GetWebTitle(siteUrl) {
112
+ 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))
114
+ .then(r => {
115
+ return r.d.Title;
116
+ })
117
+ .catch(() => null);
118
+ }
119
+ exports.GetWebTitle = GetWebTitle;
120
+ function _getWebIdRequestUrl(siteUrl) {
121
+ return `${(0, common_1.GetRestBaseUrl)(siteUrl)}/web/Id`;
122
+ }
123
+ /** Return the web id */
124
+ function GetWebId(siteUrl) {
125
+ return (0, rest_1.GetJson)(_getWebIdRequestUrl(siteUrl), null, Object.assign({}, rest_1.longLocalCache))
126
+ .then(r => {
127
+ return (0, _dependencies_1.normalizeGuid)(r.d.Id);
128
+ })
129
+ .catch(() => null);
130
+ }
131
+ exports.GetWebId = GetWebId;
132
+ /** Return the web id */
133
+ function GetWebIdSync(siteUrl) {
134
+ let syncResult = (0, rest_1.GetJsonSync)(_getWebIdRequestUrl(siteUrl), null, Object.assign({}, rest_1.longLocalCache));
135
+ if (syncResult.success)
136
+ return syncResult.result.d.Id;
137
+ else
138
+ return null;
139
+ }
140
+ exports.GetWebIdSync = GetWebIdSync;
141
+ /** 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
+ });
149
+ }
150
+ exports.IsRootWeb = IsRootWeb;
151
+ function UserHasAllPermissions(siteUrl, permissions) {
152
+ 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))
154
+ .then(r => {
155
+ var effectivePermissions = new _dependencies_1.SPBasePermissions(r.d.EffectiveBasePermissions);
156
+ return permissions.every((perm) => {
157
+ return effectivePermissions.has(perm);
158
+ });
159
+ })
160
+ .catch(() => null);
161
+ }
162
+ exports.UserHasAllPermissions = UserHasAllPermissions;
163
+ function UserHasManageSitePermissions(siteUrl) {
164
+ 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))
166
+ .then(r => {
167
+ return new _dependencies_1.SPBasePermissions(r.d.EffectiveBasePermissions).has(_dependencies_1.SPBasePermissionKind.ManageWeb);
168
+ })
169
+ .catch(() => null);
170
+ }
171
+ exports.UserHasManageSitePermissions = UserHasManageSitePermissions;
172
+ function _getContentTypesRequestUrl(siteUrl, options = {}) {
173
+ const { fromRootWeb, includeFields, listIdOrTitle } = options;
174
+ let query = `$select=${includeFields === true ? common_1.CONTENT_TYPES_SELECT : common_1.CONTENT_TYPES_SELECT_WITH_FIELDS}${includeFields === true ? "&$expand=Fields" : ""}`;
175
+ if (!(0, _dependencies_1.isNullOrEmptyString)(listIdOrTitle)) {
176
+ return `${(0, list_1.GetListRestUrl)(siteUrl, listIdOrTitle)}/contenttypes?${query}`;
177
+ }
178
+ else if (fromRootWeb) {
179
+ return `${(0, common_1.GetRestBaseUrl)(siteUrl)}/site/rootweb/contenttypes?${query}`;
180
+ }
181
+ else {
182
+ return `${(0, common_1.GetRestBaseUrl)(siteUrl)}/web/contenttypes?${query}`;
183
+ }
184
+ }
185
+ function _postProcessGetContentTypes(contentTypes, options = {}, allListFields) {
186
+ const { ignoreHidden, ignoreFolders, includeFields } = options;
187
+ if (!(0, _dependencies_1.isNullOrEmptyArray)(contentTypes)) {
188
+ if (ignoreFolders === true || ignoreHidden === true) {
189
+ contentTypes = contentTypes.filter(rr => {
190
+ if (options.ignoreFolders && rr.StringId.startsWith('0x0120'))
191
+ return false;
192
+ if (options.ignoreHidden && rr.Hidden)
193
+ return false;
194
+ return true;
195
+ });
196
+ }
197
+ if (includeFields === true) {
198
+ contentTypes.forEach((result) => {
199
+ if (!(0, _dependencies_1.isNullOrEmptyArray)(result.Fields)) {
200
+ result.Fields = result.Fields.map((field) => {
201
+ return (0, _dependencies_1.extendFieldInfo)(field, allListFields || result.Fields);
202
+ });
203
+ }
204
+ });
205
+ }
206
+ return contentTypes;
207
+ }
208
+ return null;
209
+ }
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);
216
+ }
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
+ });
226
+ }
227
+ exports.GetContentTypes = GetContentTypes;
228
+ function GetContentTypesSync(siteUrl, options = {}) {
229
+ let url = _getContentTypesRequestUrl(siteUrl, options);
230
+ let allListFields = null;
231
+ if (options.includeFields) {
232
+ allListFields = (0, list_1.GetListFieldsSync)(siteUrl, options.listIdOrTitle);
233
+ }
234
+ let result = (0, rest_1.GetJsonSync)(url, null, { allowCache: true, jsonMetadata: _dependencies_1.jsonTypes.nometadata });
235
+ if (!(0, _dependencies_1.isNullOrUndefined)(result) && result.success === true && !(0, _dependencies_1.isNullOrUndefined)(result.result)) {
236
+ return _postProcessGetContentTypes(result.result.value, options, allListFields);
237
+ }
238
+ return null;
239
+ }
240
+ exports.GetContentTypesSync = GetContentTypesSync;
241
+ function _getListsRequestUrl(siteUrl, options) {
242
+ let select = common_1.LIST_SELECT;
243
+ let expand = common_1.LIST_EXPAND;
244
+ if (options.includeRootFolders === true) {
245
+ select += ",RootFolder/Name,RootFolder/ServerRelativeUrl";
246
+ expand += ",RootFolder";
247
+ }
248
+ if (options.includeViews === true) {
249
+ expand += ",Views";
250
+ }
251
+ return (0, common_1.GetRestBaseUrl)(siteUrl) + `/web/lists?$select=${select}&$expand=${expand}`;
252
+ }
253
+ function _postProcessGetLists(lists, options = {}) {
254
+ lists = lists || [];
255
+ if (options && options.includeViews) {
256
+ lists.forEach(l => {
257
+ if ((0, _dependencies_1.isNullOrEmptyArray)(l.Views)) {
258
+ l.Views = [];
259
+ }
260
+ l.Views.forEach(v => { v.Id = (0, _dependencies_1.normalizeGuid)(v.Id); });
261
+ });
262
+ }
263
+ lists.forEach((list) => {
264
+ if (list.EffectiveBasePermissions
265
+ && ((0, _dependencies_1.isString)(list.EffectiveBasePermissions.High)
266
+ || (0, _dependencies_1.isString)(list.EffectiveBasePermissions.Low))) {
267
+ list.EffectiveBasePermissions = {
268
+ High: Number(list.EffectiveBasePermissions.High),
269
+ Low: Number(list.EffectiveBasePermissions.Low)
270
+ };
271
+ }
272
+ });
273
+ return lists;
274
+ }
275
+ function GetLists(siteUrl, options = {}) {
276
+ let url = _getListsRequestUrl(siteUrl, options);
277
+ return (0, rest_1.GetJson)(url, null, { allowCache: true, jsonMetadata: _dependencies_1.jsonTypes.nometadata })
278
+ .then(result => {
279
+ return _postProcessGetLists(result.value, options);
280
+ })
281
+ .catch(() => []);
282
+ }
283
+ exports.GetLists = GetLists;
284
+ function GetListsSync(siteUrl, options = {}) {
285
+ 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 }));
287
+ if (response && response.success && response.result && (0, _dependencies_1.isNotEmptyArray)(response.result.value)) {
288
+ return _postProcessGetLists(response.result.value, options);
289
+ }
290
+ return [];
291
+ }
292
+ exports.GetListsSync = GetListsSync;
293
+ /**
294
+ * Get all sub webs. Results will be cached in memory and sorted
295
+ * @param siteUrl the starting URL you want to get the sites for
296
+ * @param allowAppWebs send true if you would like to inlucde app webs as well
297
+ */
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)
359
+ break;
360
+ }
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
+ }
382
+ }
383
+ catch (e) {
384
+ queryFailed = true;
385
+ }
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];
411
+ }
412
+ }
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
+ }
420
+ }
421
+ (0, _dependencies_1.sortArray)(filteredSites, s => s.ServerRelativeUrl);
422
+ return filteredSites;
423
+ });
424
+ }
425
+ 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);
454
+ });
455
+ }
456
+ //}
457
+ //catch {
458
+ //}
459
+ return sites;
460
+ });
461
+ }
462
+ exports.__getSubSites = __getSubSites;
463
+ function _getWebInfoByIdRequestUrl(siteUrl, webId) {
464
+ return `${(0, common_1.GetRestBaseUrl)(siteUrl)}/site/openWebById('${webId}')?$Select=${common_1.WEB_SELECT}`;
465
+ }
466
+ function _getCurrentWebInfoRequestUrl(siteUrl) {
467
+ return `${(0, common_1.GetRestBaseUrl)(siteUrl)}/web?$Select=${common_1.WEB_SELECT}`;
468
+ }
469
+ function _postProcessGetWebInfo(webInfo) {
470
+ if (!(0, _dependencies_1.isNullOrUndefined)(webInfo)) {
471
+ return {
472
+ Title: webInfo.Title,
473
+ ServerRelativeUrl: webInfo.ServerRelativeUrl,
474
+ WebId: webInfo.Id,
475
+ WebTemplate: webInfo.WebTemplate,
476
+ WebType: GetWebType(webInfo.WebTemplate),
477
+ Description: webInfo.Description,
478
+ SiteLogoUrl: webInfo.SiteLogoUrl
479
+ };
480
+ }
481
+ return null;
482
+ }
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 }));
498
+ }
499
+ }
500
+ catch (e) { }
501
+ return _postProcessGetWebInfo(webInfoResponse);
502
+ });
503
+ }
504
+ exports.GetWebInfo = GetWebInfo;
505
+ function GetWebInfoSync(siteUrl, webId) {
506
+ let webInfoResponse = null;
507
+ if (!(0, _dependencies_1.isNullOrEmptyString)(webId) && (0, _dependencies_1.isValidGuid)(webId)) {
508
+ webId = (0, _dependencies_1.normalizeGuid)(webId);
509
+ let currentWebId = GetWebIdSync(siteUrl);
510
+ if (currentWebId !== webId) {
511
+ 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 }));
513
+ if (syncResult.success) {
514
+ webInfoResponse = syncResult.result;
515
+ }
516
+ }
517
+ }
518
+ if ((0, _dependencies_1.isNullOrUndefined)(webInfoResponse)) {
519
+ 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 }));
521
+ if (syncResult.success) {
522
+ webInfoResponse = syncResult.result;
523
+ }
524
+ }
525
+ return _postProcessGetWebInfo(webInfoResponse);
526
+ }
527
+ 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
+ });
536
+ }
537
+ exports.GetWebRoleDefinitions = GetWebRoleDefinitions;
538
+ /** 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
+ });
547
+ }
548
+ exports.GetSubWebs = GetSubWebs;
549
+ /** 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
+ });
568
+ }
569
+ exports.GetAppTiles = GetAppTiles;
570
+ /** Web sub webs for the selected site */
571
+ function GetAppTilesSync(siteUrl) {
572
+ siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
573
+ //Issue 933 this api does not work in a classic app web
574
+ if ((0, common_1.hasGlobalContext)() && _spPageContextInfo.isAppWeb) {
575
+ logger.warn('GetAppTiles does not work in an app web');
576
+ return null;
577
+ }
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 }));
579
+ return r.success && r.result && (0, _dependencies_1.isNotEmptyArray)(r.result.value) ? r.result.value.map(t => {
580
+ return {
581
+ Title: t.Title,
582
+ ProductId: (0, _dependencies_1.normalizeGuid)(t.ProductId)
583
+ };
584
+ }) : [];
585
+ }
586
+ exports.GetAppTilesSync = GetAppTilesSync;
587
+ function GetWebType(WebTemplate) {
588
+ return WebTemplate === "APP" ? _dependencies_1.WebTypes.App :
589
+ WebTemplate === "GROUP" ? _dependencies_1.WebTypes.Group :
590
+ WebTemplate === "STS" ? _dependencies_1.WebTypes.Team :
591
+ _dependencies_1.WebTypes.Other;
592
+ }
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
+ });
604
+ }
605
+ exports.GetServerTimeZone = GetServerTimeZone;
606
+ /**
607
+ * to be used when parsing string date to date object in JavaScript like so:
608
+ * var clientTimezoneOffset = new Date().getTimezoneOffset() * 60 * 1000;
609
+ * var clientDate = new Date(value);
610
+ * var serverDate = new Date(clientDate.getTime() + clientTimezoneOffset + GetServerTimeOffset);
611
+ * We must send a date in, since places like Israel have different offset for specific dates (GMT+2 or GMT+3)
612
+ * or just call SPServerLocalTimeToUTCDate
613
+ */
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
+ });
628
+ }
629
+ /**
630
+ * to be used when parsing string date to date object in JavaScript like so:
631
+ * var clientTimezoneOffset = new Date().getTimezoneOffset() * 60 * 1000;
632
+ * var clientDate = new Date(value);
633
+ * var serverDate = new Date(clientDate.getTime() + clientTimezoneOffset + GetServerTimeOffset);
634
+ * We must send a date in, since places like Israel have different offset for specific dates (GMT+2 or GMT+3)
635
+ * or just call SPServerLocalTimeToUTCDate
636
+ */
637
+ function GetServerTimeOffsetSync(siteUrl, date) {
638
+ siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
639
+ let dateStr = (0, date_1.toIsoDateFormat)(date, { zeroTime: true, omitZ: true });
640
+ let inputDate = new Date(dateStr);
641
+ 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 }));
643
+ if (result && result.success && !(0, _dependencies_1.isNullOrEmptyString)(result.result.value)) {
644
+ let resultDate = new Date(result.result.value.slice(0, result.result.value.length - 1)); //remove Z and get as date.
645
+ return (resultDate.getTime() - inputDate.getTime());
646
+ }
647
+ else
648
+ return 0;
649
+ }
650
+ /** 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
+ });
662
+ }
663
+ exports.SPServerLocalTimeToUTCDate = SPServerLocalTimeToUTCDate;
664
+ /** 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 */
665
+ function SPServerLocalTimeToUTCDateSync(siteUrl, date) {
666
+ //used in 7700
667
+ if ((0, _dependencies_1.isNullOrEmptyString)(date))
668
+ return null;
669
+ siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
670
+ if (!(0, _dependencies_1.isDate)(date))
671
+ date = new Date(date);
672
+ let serverTimeOffset = GetServerTimeOffsetSync(siteUrl, date);
673
+ return _SPServerLocalTimeToUTCDate(date, serverTimeOffset);
674
+ }
675
+ exports.SPServerLocalTimeToUTCDateSync = SPServerLocalTimeToUTCDateSync;
676
+ function _SPServerLocalTimeToUTCDate(date, serverTimeOffset) {
677
+ let localTimeOffset = date.getTimezoneOffset() * 60000;
678
+ return new Date(serverTimeOffset - localTimeOffset + date.getTime());
679
+ }
680
+ /** get date yyyy:MM:ddTHH:mm:ss NO ZED
681
+ * returns yyyy:MM:ddTHH:mm:ssZ
682
+ * expensive, but works. for faster bulk parsing use toIsoDateFormat(new Date(GetServerTimeOffset + date.getTime()))
683
+ * or: SPServerLocalTimeToUTCDate
684
+ */
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
+ });
695
+ }
696
+ exports.SPServerLocalTimeToUTC = SPServerLocalTimeToUTC;
697
+ /**
698
+ * convert date in ISO format (yyyy:MM:ddTHH:mm:ss) or SPServerLocalTime (5/27/2020 11:34, 5-27-2020 11:34)
699
+ * returns date in ISO UTC (yyyy:MM:ddTHH:mm:ssZ)
700
+ * expensive, but works. for faster bulk parsing use toIsoDateFormat(new Date(GetServerTimeOffset + date.getTime()))
701
+ * or: SPServerLocalTimeToUTCDateSync
702
+ */
703
+ function SPServerLocalTimeToUTCSync(siteUrl, date) {
704
+ siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
705
+ if ((0, _dependencies_1.isDate)(date)) {
706
+ date = (0, date_1.toIsoDateFormat)(date, { omitZ: true });
707
+ }
708
+ 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 }));
710
+ return result.success && result.result.value || null;
711
+ }
712
+ exports.SPServerLocalTimeToUTCSync = SPServerLocalTimeToUTCSync;
713
+ /** get utc date yyyy:MM:ddTHH:mm:ssZ
714
+ * returns yyyy:MM:ddTHH:mm:ss NO ZED
715
+ * expensive, but works. for faster bulk parsing use toIsoDateFormat(new Date(date.getTime()-GetServerTimeOffset,{omitZ:true}))
716
+ */
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
+ });
727
+ }
728
+ exports.UTCToSPServerLocalTime = UTCToSPServerLocalTime;
729
+ /** get utc date yyyy:MM:ddTHH:mm:ssZ
730
+ * returns yyyy:MM:ddTHH:mm:ss NO ZED
731
+ * expensive, but works. for faster bulk parsing use toIsoDateFormat(new Date(date.getTime()-GetServerTimeOffset,{omitZ:true}))
732
+ */
733
+ function UTCToSPServerLocalTimeSync(siteUrl, date) {
734
+ siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
735
+ if ((0, _dependencies_1.isDate)(date)) {
736
+ date = (0, date_1.toIsoDateFormat)(date);
737
+ }
738
+ 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 }));
740
+ return result.success && result.result.value || null;
741
+ }
742
+ exports.UTCToSPServerLocalTimeSync = UTCToSPServerLocalTimeSync;
743
+ function SPServerLocalTimeSync(siteUrl) {
744
+ siteUrl = (0, common_1.GetSiteUrl)(siteUrl);
745
+ var clientNowServerDeltas = (0, _dependencies_1.getGlobal)("ClientNowServerDeltas");
746
+ var clientNowServerDelta = clientNowServerDeltas[siteUrl];
747
+ var now = new Date();
748
+ if ((0, _dependencies_1.isNullOrUndefined)(clientNowServerDelta)) {
749
+ var local = UTCToSPServerLocalTimeSync(siteUrl, now.toISOString());
750
+ clientNowServerDelta = (+now - +(new Date(local)));
751
+ clientNowServerDeltas[siteUrl] = clientNowServerDelta;
752
+ }
753
+ var newdate = new Date(+now - clientNowServerDelta);
754
+ return (0, date_1.toIsoDateFormat)(newdate, { omitZ: true });
755
+ }
756
+ 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
+ });
771
+ }
772
+ exports.SPServerLocalTime = SPServerLocalTime;
773
+ function GetContextWebInformationSync(siteUrl) {
774
+ var siteId = null;
775
+ if (_spPageContextInfo && _spPageContextInfo.isAppWeb) {
776
+ //inside an app web you can't get the contextinfo for any other site
777
+ siteUrl = _spPageContextInfo.webServerRelativeUrl;
778
+ siteId = _spPageContextInfo.siteId;
779
+ }
780
+ else {
781
+ siteId = GetSiteIdSync(siteUrl);
782
+ if ((0, _dependencies_1.isNullOrEmptyString)(siteId)) {
783
+ return null;
784
+ }
785
+ }
786
+ let result = (0, rest_1.GetJsonSync)(`${(0, common_1.GetRestBaseUrl)(siteUrl)}/contextinfo`, null, {
787
+ method: "POST",
788
+ maxAge: 5 * 60,
789
+ includeDigestInPost: false,
790
+ allowCache: true,
791
+ postCacheKey: `GetContextWebInformation_${(0, _dependencies_1.normalizeGuid)(siteId)}`
792
+ });
793
+ if (result && result.success) {
794
+ return result.result.d.GetContextWebInformation;
795
+ }
796
+ else {
797
+ return null;
798
+ }
799
+ }
800
+ exports.GetContextWebInformationSync = GetContextWebInformationSync;
801
+ /** 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
+ });
811
+ }
812
+ exports.GetUserCustomActions = GetUserCustomActions;
813
+ /** 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
+ });
826
+ }
827
+ exports.GetRegionalSettings = GetRegionalSettings;
828
+ /** 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
+ });
841
+ }
842
+ exports.GetAllWebProperties = GetAllWebProperties;
843
+ /** 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) {
855
+ }
856
+ return null;
857
+ });
858
+ }
859
+ exports.GetWebPropertyByName = GetWebPropertyByName;
860
+ function getFormDigest(serverRelativeWebUrl) {
861
+ var contextWebInformation = GetContextWebInformationSync(serverRelativeWebUrl);
862
+ return contextWebInformation && contextWebInformation.FormDigestValue || null;
863
+ }
864
+ exports.getFormDigest = getFormDigest;
865
+ function ensureLegacyProps(pageContext) {
866
+ try {
867
+ let isContextOk = (ctx) => !(0, _dependencies_1.isNullOrUndefined)(ctx) && !(0, _dependencies_1.isNullOrUndefined)(ctx.webServerRelativeUrl);
868
+ let getLegacyContext = (ctx) => !(0, _dependencies_1.isNullOrUndefined)(ctx) && !(0, _dependencies_1.isNullOrUndefined)(ctx.legacyPageContext) ? ctx.legacyPageContext : null;
869
+ let getContext = (ctx) => isContextOk(ctx) ? ctx : getLegacyContext(ctx);
870
+ if ((0, _dependencies_1.isTypeofFullNameNullOrUndefined)("_spPageContextInfo") || !isContextOk(_spPageContextInfo)) {
871
+ logger.info(`_spPageContextInfo ${(0, _dependencies_1.isTypeofFullNameNullOrUndefined)("_spPageContextInfo") ? 'is missing' : 'is broken'}, wrapping with our property`);
872
+ //bug in SPFx during inplace left navigation will put an SPFx object into this global. Correct it using the setter.
873
+ let _currentContext = pageContext.legacyPageContext;
874
+ Object.defineProperty(window, "_spPageContextInfo", {
875
+ set: (newContext) => {
876
+ if (!(0, _dependencies_1.isNullOrUndefined)(newContext)) {
877
+ if (isContextOk(newContext)) {
878
+ logger.debug("Context ok");
879
+ _currentContext = newContext;
880
+ }
881
+ else {
882
+ let legacy = getLegacyContext(newContext);
883
+ if (!(0, _dependencies_1.isNullOrUndefined)(legacy)) {
884
+ logger.error("Context NOT ok - using legacy context");
885
+ _currentContext = legacy;
886
+ }
887
+ else
888
+ logger.error("Context NOT ok - no legacy context either.");
889
+ }
890
+ }
891
+ },
892
+ get: () => getContext(_currentContext)
893
+ });
894
+ }
895
+ }
896
+ catch (ex) {
897
+ }
898
+ }
899
+ 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
+ });
906
+ }
907
+ 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
+ });
913
+ }
914
+ 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
+ });
920
+ }
921
+ 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
+ });
927
+ }
928
+ exports.RemoveWebPermission = RemoveWebPermission;
929
+ //# sourceMappingURL=web.js.map