@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.
- package/LICENSE +21 -0
- package/dist/_dependencies.d.ts +1 -0
- package/dist/_dependencies.js +8 -0
- package/dist/_dependencies.js.map +1 -0
- package/dist/helpers/Guid.d.ts +119 -0
- package/dist/helpers/Guid.js +183 -0
- package/dist/helpers/Guid.js.map +1 -0
- package/dist/helpers/_dependencies.d.ts +2 -0
- package/dist/helpers/_dependencies.js +21 -0
- package/dist/helpers/_dependencies.js.map +1 -0
- package/dist/helpers/base64.d.ts +8 -0
- package/dist/helpers/base64.js +178 -0
- package/dist/helpers/base64.js.map +1 -0
- package/dist/helpers/browser.d.ts +144 -0
- package/dist/helpers/browser.js +1200 -0
- package/dist/helpers/browser.js.map +1 -0
- package/dist/helpers/browserinfo.d.ts +23 -0
- package/dist/helpers/browserinfo.js +215 -0
- package/dist/helpers/browserinfo.js.map +1 -0
- package/dist/helpers/collections.base.d.ts +128 -0
- package/dist/helpers/collections.base.js +430 -0
- package/dist/helpers/collections.base.js.map +1 -0
- package/dist/helpers/collections.d.ts +18 -0
- package/dist/helpers/collections.js +99 -0
- package/dist/helpers/collections.js.map +1 -0
- package/dist/helpers/color.d.ts +11 -0
- package/dist/helpers/color.js +57 -0
- package/dist/helpers/color.js.map +1 -0
- package/dist/helpers/cookies.d.ts +6 -0
- package/dist/helpers/cookies.js +56 -0
- package/dist/helpers/cookies.js.map +1 -0
- package/dist/helpers/date.d.ts +43 -0
- package/dist/helpers/date.js +158 -0
- package/dist/helpers/date.js.map +1 -0
- package/dist/helpers/debug.d.ts +33 -0
- package/dist/helpers/debug.js +177 -0
- package/dist/helpers/debug.js.map +1 -0
- package/dist/helpers/emails.d.ts +2 -0
- package/dist/helpers/emails.js +10 -0
- package/dist/helpers/emails.js.map +1 -0
- package/dist/helpers/eval.d.ts +1 -0
- package/dist/helpers/eval.js +10 -0
- package/dist/helpers/eval.js.map +1 -0
- package/dist/helpers/file.d.ts +11 -0
- package/dist/helpers/file.js +55 -0
- package/dist/helpers/file.js.map +1 -0
- package/dist/helpers/flatted.d.ts +20 -0
- package/dist/helpers/flatted.js +135 -0
- package/dist/helpers/flatted.js.map +1 -0
- package/dist/helpers/functions.d.ts +4 -0
- package/dist/helpers/functions.js +17 -0
- package/dist/helpers/functions.js.map +1 -0
- package/dist/helpers/graph/calendar.types.d.ts +3 -0
- package/dist/helpers/graph/calendar.types.js +15 -0
- package/dist/helpers/graph/calendar.types.js.map +1 -0
- package/dist/helpers/http.d.ts +25 -0
- package/dist/helpers/http.js +70 -0
- package/dist/helpers/http.js.map +1 -0
- package/dist/helpers/images.d.ts +16 -0
- package/dist/helpers/images.js +21 -0
- package/dist/helpers/images.js.map +1 -0
- package/dist/helpers/index.d.ts +29 -0
- package/dist/helpers/index.js +46 -0
- package/dist/helpers/index.js.map +1 -0
- package/dist/helpers/json.d.ts +3 -0
- package/dist/helpers/json.js +44 -0
- package/dist/helpers/json.js.map +1 -0
- package/dist/helpers/md5.d.ts +5 -0
- package/dist/helpers/md5.js +172 -0
- package/dist/helpers/md5.js.map +1 -0
- package/dist/helpers/objects.d.ts +49 -0
- package/dist/helpers/objects.js +271 -0
- package/dist/helpers/objects.js.map +1 -0
- package/dist/helpers/promises.d.ts +14 -0
- package/dist/helpers/promises.js +112 -0
- package/dist/helpers/promises.js.map +1 -0
- package/dist/helpers/random.d.ts +2 -0
- package/dist/helpers/random.js +32 -0
- package/dist/helpers/random.js.map +1 -0
- package/dist/helpers/scheduler/scheduler.d.ts +39 -0
- package/dist/helpers/scheduler/scheduler.js +109 -0
- package/dist/helpers/scheduler/scheduler.js.map +1 -0
- package/dist/helpers/sharepoint.d.ts +112 -0
- package/dist/helpers/sharepoint.js +629 -0
- package/dist/helpers/sharepoint.js.map +1 -0
- package/dist/helpers/strings.d.ts +56 -0
- package/dist/helpers/strings.js +282 -0
- package/dist/helpers/strings.js.map +1 -0
- package/dist/helpers/typecheckers.d.ts +56 -0
- package/dist/helpers/typecheckers.js +274 -0
- package/dist/helpers/typecheckers.js.map +1 -0
- package/dist/helpers/url.d.ts +46 -0
- package/dist/helpers/url.js +199 -0
- package/dist/helpers/url.js.map +1 -0
- package/dist/helpers/urlhelper.d.ts +16 -0
- package/dist/helpers/urlhelper.js +96 -0
- package/dist/helpers/urlhelper.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.js +37 -0
- package/dist/index.js.map +1 -0
- package/dist/types/common.types.d.ts +19 -0
- package/dist/types/common.types.js +4 -0
- package/dist/types/common.types.js.map +1 -0
- package/dist/types/flatted.types.d.ts +49 -0
- package/dist/types/flatted.types.js +3 -0
- package/dist/types/flatted.types.js.map +1 -0
- package/dist/types/globals.types.d.ts +6 -0
- package/dist/types/globals.types.js +3 -0
- package/dist/types/globals.types.js.map +1 -0
- package/dist/types/graph/calendar.types.d.ts +79 -0
- package/dist/types/graph/calendar.types.js +3 -0
- package/dist/types/graph/calendar.types.js.map +1 -0
- package/dist/types/graph/index.d.ts +1 -0
- package/dist/types/graph/index.js +18 -0
- package/dist/types/graph/index.js.map +1 -0
- package/dist/types/index.d.ts +11 -0
- package/dist/types/index.js +28 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/knownscript.types.d.ts +22 -0
- package/dist/types/knownscript.types.js +3 -0
- package/dist/types/knownscript.types.js.map +1 -0
- package/dist/types/libs/datajs.types.d.ts +29 -0
- package/dist/types/libs/datajs.types.js +3 -0
- package/dist/types/libs/datajs.types.js.map +1 -0
- package/dist/types/libs/ics.types.d.ts +29 -0
- package/dist/types/libs/ics.types.js +3 -0
- package/dist/types/libs/ics.types.js.map +1 -0
- package/dist/types/libs/index.d.ts +3 -0
- package/dist/types/libs/index.js +20 -0
- package/dist/types/libs/index.js.map +1 -0
- package/dist/types/libs/msal.types.d.ts +33 -0
- package/dist/types/libs/msal.types.js +63 -0
- package/dist/types/libs/msal.types.js.map +1 -0
- package/dist/types/locales.d.ts +122 -0
- package/dist/types/locales.js +1 -0
- package/dist/types/locales.js.map +1 -0
- package/dist/types/localstoragecache.types.d.ts +8 -0
- package/dist/types/localstoragecache.types.js +3 -0
- package/dist/types/localstoragecache.types.js.map +1 -0
- package/dist/types/moment.d.ts +6 -0
- package/dist/types/moment.js +1 -0
- package/dist/types/moment.js.map +1 -0
- package/dist/types/regex.types.d.ts +14 -0
- package/dist/types/regex.types.js +3 -0
- package/dist/types/regex.types.js.map +1 -0
- package/dist/types/rest.types.d.ts +81 -0
- package/dist/types/rest.types.js +24 -0
- package/dist/types/rest.types.js.map +1 -0
- package/dist/types/sharepoint.types.d.ts +1432 -0
- package/dist/types/sharepoint.types.js +629 -0
- package/dist/types/sharepoint.types.js.map +1 -0
- package/dist/types/sharepoint.utils.types.d.ts +246 -0
- package/dist/types/sharepoint.utils.types.js +26 -0
- package/dist/types/sharepoint.utils.types.js.map +1 -0
- package/dist/utils/_dependencies.d.ts +3 -0
- package/dist/utils/_dependencies.js +24 -0
- package/dist/utils/_dependencies.js.map +1 -0
- package/dist/utils/base64.d.ts +2 -0
- package/dist/utils/base64.js +41 -0
- package/dist/utils/base64.js.map +1 -0
- package/dist/utils/consolelogger.d.ts +73 -0
- package/dist/utils/consolelogger.js +281 -0
- package/dist/utils/consolelogger.js.map +1 -0
- package/dist/utils/date.d.ts +10 -0
- package/dist/utils/date.js +30 -0
- package/dist/utils/date.js.map +1 -0
- package/dist/utils/emails.d.ts +2 -0
- package/dist/utils/emails.js +24 -0
- package/dist/utils/emails.js.map +1 -0
- package/dist/utils/index.d.ts +13 -0
- package/dist/utils/index.js +31 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/knownscript.d.ts +99 -0
- package/dist/utils/knownscript.js +261 -0
- package/dist/utils/knownscript.js.map +1 -0
- package/dist/utils/localstoragecache.d.ts +19 -0
- package/dist/utils/localstoragecache.js +372 -0
- package/dist/utils/localstoragecache.js.map +1 -0
- package/dist/utils/rest.d.ts +17 -0
- package/dist/utils/rest.js +402 -0
- package/dist/utils/rest.js.map +1 -0
- package/dist/utils/script.d.ts +33 -0
- package/dist/utils/script.js +169 -0
- package/dist/utils/script.js.map +1 -0
- package/dist/utils/sharepoint.rest/common.d.ts +32 -0
- package/dist/utils/sharepoint.rest/common.js +146 -0
- package/dist/utils/sharepoint.rest/common.js.map +1 -0
- package/dist/utils/sharepoint.rest/date.d.ts +2 -0
- package/dist/utils/sharepoint.rest/date.js +57 -0
- package/dist/utils/sharepoint.rest/date.js.map +1 -0
- package/dist/utils/sharepoint.rest/file.folder.d.ts +58 -0
- package/dist/utils/sharepoint.rest/file.folder.js +305 -0
- package/dist/utils/sharepoint.rest/file.folder.js.map +1 -0
- package/dist/utils/sharepoint.rest/index.d.ts +11 -0
- package/dist/utils/sharepoint.rest/index.js +28 -0
- package/dist/utils/sharepoint.rest/index.js.map +1 -0
- package/dist/utils/sharepoint.rest/item.d.ts +81 -0
- package/dist/utils/sharepoint.rest/item.js +444 -0
- package/dist/utils/sharepoint.rest/item.js.map +1 -0
- package/dist/utils/sharepoint.rest/list.d.ts +228 -0
- package/dist/utils/sharepoint.rest/list.js +868 -0
- package/dist/utils/sharepoint.rest/list.js.map +1 -0
- package/dist/utils/sharepoint.rest/listutils/GetListItemsByCaml.d.ts +19 -0
- package/dist/utils/sharepoint.rest/listutils/GetListItemsByCaml.js +629 -0
- package/dist/utils/sharepoint.rest/listutils/GetListItemsByCaml.js.map +1 -0
- package/dist/utils/sharepoint.rest/listutils/GetListItemsById.d.ts +14 -0
- package/dist/utils/sharepoint.rest/listutils/GetListItemsById.js +222 -0
- package/dist/utils/sharepoint.rest/listutils/GetListItemsById.js.map +1 -0
- package/dist/utils/sharepoint.rest/listutils/common.d.ts +3 -0
- package/dist/utils/sharepoint.rest/listutils/common.js +198 -0
- package/dist/utils/sharepoint.rest/listutils/common.js.map +1 -0
- package/dist/utils/sharepoint.rest/user-search.d.ts +76 -0
- package/dist/utils/sharepoint.rest/user-search.js +239 -0
- package/dist/utils/sharepoint.rest/user-search.js.map +1 -0
- package/dist/utils/sharepoint.rest/user.d.ts +71 -0
- package/dist/utils/sharepoint.rest/user.js +404 -0
- package/dist/utils/sharepoint.rest/user.js.map +1 -0
- package/dist/utils/sharepoint.rest/web.d.ts +107 -0
- package/dist/utils/sharepoint.rest/web.js +929 -0
- package/dist/utils/sharepoint.rest/web.js.map +1 -0
- package/dist/utils/sod.d.ts +29 -0
- package/dist/utils/sod.js +177 -0
- package/dist/utils/sod.js.map +1 -0
- package/package.json +60 -0
- package/readme.md +13 -0
- package/src/_dependencies.ts +2 -0
- package/src/helpers/Guid.ts +182 -0
- package/src/helpers/_dependencies.ts +3 -0
- package/src/helpers/base64.ts +174 -0
- package/src/helpers/browser.test.js +9 -0
- package/src/helpers/browser.ts +1299 -0
- package/src/helpers/browserinfo.ts +293 -0
- package/src/helpers/collections.base.test.js +26 -0
- package/src/helpers/collections.base.ts +439 -0
- package/src/helpers/collections.ts +108 -0
- package/src/helpers/color.ts +55 -0
- package/src/helpers/cookies.ts +55 -0
- package/src/helpers/date.test.js +97 -0
- package/src/helpers/date.ts +163 -0
- package/src/helpers/debug.ts +187 -0
- package/src/helpers/emails.ts +7 -0
- package/src/helpers/eval.ts +5 -0
- package/src/helpers/file.test.js +51 -0
- package/src/helpers/file.ts +59 -0
- package/src/helpers/flatted.ts +150 -0
- package/src/helpers/functions.ts +17 -0
- package/src/helpers/graph/calendar.types.ts +11 -0
- package/src/helpers/http.ts +70 -0
- package/src/helpers/images.ts +23 -0
- package/src/helpers/index.ts +29 -0
- package/src/helpers/json.ts +39 -0
- package/src/helpers/md5.ts +190 -0
- package/src/helpers/objects.test.js +27 -0
- package/src/helpers/objects.ts +256 -0
- package/src/helpers/promises.test.js +18 -0
- package/src/helpers/promises.ts +102 -0
- package/src/helpers/random.ts +27 -0
- package/src/helpers/scheduler/scheduler.test.js +104 -0
- package/src/helpers/scheduler/scheduler.ts +132 -0
- package/src/helpers/sharepoint.ts +681 -0
- package/src/helpers/strings.test.js +43 -0
- package/src/helpers/strings.ts +288 -0
- package/src/helpers/typecheckers.test.js +35 -0
- package/src/helpers/typecheckers.ts +263 -0
- package/src/helpers/url.test.js +18 -0
- package/src/helpers/url.ts +202 -0
- package/src/helpers/urlhelper.ts +104 -0
- package/src/index.ts +24 -0
- package/src/types/common.types.ts +16 -0
- package/src/types/flatted.types.ts +60 -0
- package/src/types/globals.types.ts +7 -0
- package/src/types/graph/calendar.types.ts +81 -0
- package/src/types/graph/index.ts +1 -0
- package/src/types/index.ts +12 -0
- package/src/types/knownscript.types.ts +19 -0
- package/src/types/libs/datajs.types.ts +29 -0
- package/src/types/libs/ics.types.ts +31 -0
- package/src/types/libs/index.ts +4 -0
- package/src/types/libs/msal.types.ts +79 -0
- package/src/types/locales.ts +125 -0
- package/src/types/localstoragecache.types.ts +9 -0
- package/src/types/moment.ts +7 -0
- package/src/types/regex.types.ts +17 -0
- package/src/types/rest.types.ts +94 -0
- package/src/types/sharepoint.types.ts +1413 -0
- package/src/types/sharepoint.utils.types.ts +246 -0
- package/src/utils/_dependencies.ts +4 -0
- package/src/utils/base64.ts +27 -0
- package/src/utils/consolelogger.ts +315 -0
- package/src/utils/date.ts +36 -0
- package/src/utils/emails.ts +25 -0
- package/src/utils/index.ts +13 -0
- package/src/utils/knownscript.ts +280 -0
- package/src/utils/localstoragecache.ts +419 -0
- package/src/utils/rest.ts +465 -0
- package/src/utils/script.ts +168 -0
- package/src/utils/sharepoint.rest/common.ts +149 -0
- package/src/utils/sharepoint.rest/date.ts +61 -0
- package/src/utils/sharepoint.rest/file.folder.ts +368 -0
- package/src/utils/sharepoint.rest/index.ts +11 -0
- package/src/utils/sharepoint.rest/item.ts +456 -0
- package/src/utils/sharepoint.rest/list.ts +1144 -0
- package/src/utils/sharepoint.rest/listutils/GetListItemsByCaml.ts +750 -0
- package/src/utils/sharepoint.rest/listutils/GetListItemsById.ts +265 -0
- package/src/utils/sharepoint.rest/listutils/common.ts +202 -0
- package/src/utils/sharepoint.rest/user-search.ts +254 -0
- package/src/utils/sharepoint.rest/user.ts +447 -0
- package/src/utils/sharepoint.rest/web.ts +1031 -0
- package/src/utils/sod.ts +193 -0
- 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
|