@pnp/sp 2.8.0 → 2.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +25 -25
- package/appcatalog/index.d.ts +8 -8
- package/appcatalog/index.js +30 -30
- package/appcatalog/types.d.ts +81 -81
- package/appcatalog/types.d.ts.map +1 -1
- package/appcatalog/types.js +177 -177
- package/appcatalog/types.js.map +1 -1
- package/appcatalog/web.d.ts +16 -16
- package/appcatalog/web.js +6 -6
- package/attachments/index.d.ts +2 -2
- package/attachments/index.js +2 -2
- package/attachments/item.d.ts +12 -12
- package/attachments/item.js +4 -4
- package/attachments/types.d.ts +92 -92
- package/attachments/types.js +240 -240
- package/batch.d.ts +17 -17
- package/batch.js +223 -223
- package/clientside-pages/funcs.d.ts +22 -22
- package/clientside-pages/funcs.js +25 -25
- package/clientside-pages/index.d.ts +2 -2
- package/clientside-pages/index.js +2 -2
- package/clientside-pages/types.d.ts +496 -494
- package/clientside-pages/types.d.ts.map +1 -1
- package/clientside-pages/types.js +1496 -1487
- package/clientside-pages/types.js.map +1 -1
- package/clientside-pages/web.d.ts +41 -41
- package/clientside-pages/web.js +57 -57
- package/column-defaults/folder.d.ts +27 -27
- package/column-defaults/folder.js +82 -82
- package/column-defaults/index.d.ts +3 -3
- package/column-defaults/index.js +2 -2
- package/column-defaults/list.d.ts +19 -19
- package/column-defaults/list.js +198 -198
- package/column-defaults/types.d.ts +21 -21
- package/column-defaults/types.js +1 -1
- package/comments/clientside-page.d.ts +57 -57
- package/comments/clientside-page.d.ts.map +1 -1
- package/comments/clientside-page.js +136 -136
- package/comments/index.d.ts +2 -2
- package/comments/index.js +2 -2
- package/comments/item.d.ts +29 -29
- package/comments/item.js +47 -47
- package/comments/item.js.map +1 -1
- package/comments/types.d.ts +107 -107
- package/comments/types.d.ts.map +1 -1
- package/comments/types.js +145 -145
- package/comments/types.js.map +1 -1
- package/content-types/index.d.ts +4 -4
- package/content-types/index.js +4 -4
- package/content-types/item.d.ts +12 -12
- package/content-types/item.js +4 -4
- package/content-types/list.d.ts +12 -12
- package/content-types/list.js +4 -4
- package/content-types/types.d.ts +107 -107
- package/content-types/types.js +166 -166
- package/content-types/web.d.ts +12 -12
- package/content-types/web.js +4 -4
- package/decorators.d.ts +11 -11
- package/decorators.js +28 -28
- package/features/index.d.ts +3 -3
- package/features/index.js +3 -3
- package/features/site.d.ts +12 -12
- package/features/site.js +4 -4
- package/features/types.d.ts +47 -47
- package/features/types.js +109 -109
- package/features/web.d.ts +12 -12
- package/features/web.js +4 -4
- package/fields/index.d.ts +4 -4
- package/fields/index.js +4 -4
- package/fields/list.d.ts +12 -12
- package/fields/list.js +4 -4
- package/fields/types.d.ts +368 -368
- package/fields/types.js +624 -624
- package/fields/web.d.ts +17 -17
- package/fields/web.js +5 -5
- package/files/folder.d.ts +12 -12
- package/files/folder.js +4 -4
- package/files/index.d.ts +4 -4
- package/files/index.js +4 -4
- package/files/item.d.ts +12 -12
- package/files/item.js +4 -4
- package/files/types.d.ts +421 -421
- package/files/types.js +853 -853
- package/files/types.js.map +1 -1
- package/files/web.d.ts +35 -35
- package/files/web.js +15 -15
- package/folders/index.d.ts +4 -4
- package/folders/index.js +4 -4
- package/folders/item.d.ts +9 -9
- package/folders/item.js +4 -4
- package/folders/list.d.ts +12 -12
- package/folders/list.js +4 -4
- package/folders/types.d.ts +207 -207
- package/folders/types.js +433 -433
- package/folders/types.js.map +1 -1
- package/folders/web.d.ts +39 -39
- package/folders/web.js +15 -15
- package/forms/index.d.ts +2 -2
- package/forms/index.js +2 -2
- package/forms/list.d.ts +9 -9
- package/forms/list.js +4 -4
- package/forms/types.d.ts +35 -35
- package/forms/types.js +41 -41
- package/hubsites/index.d.ts +12 -12
- package/hubsites/index.js +15 -15
- package/hubsites/site.d.ts +26 -26
- package/hubsites/site.js +39 -39
- package/hubsites/types.d.ts +55 -55
- package/hubsites/types.d.ts.map +1 -1
- package/hubsites/types.js +53 -53
- package/hubsites/web.d.ts +21 -21
- package/hubsites/web.js +23 -23
- package/index.d.ts +14 -14
- package/index.js +13 -13
- package/items/index.d.ts +2 -2
- package/items/index.js +2 -2
- package/items/list.d.ts +9 -9
- package/items/list.js +4 -4
- package/items/types.d.ts +226 -226
- package/items/types.js +549 -549
- package/lists/index.d.ts +2 -2
- package/lists/index.js +2 -2
- package/lists/types.d.ts +495 -495
- package/lists/types.js +522 -522
- package/lists/types.js.map +1 -1
- package/lists/web.d.ts +43 -43
- package/lists/web.js +27 -27
- package/navigation/index.d.ts +8 -8
- package/navigation/index.js +14 -14
- package/navigation/types.d.ts +154 -154
- package/navigation/types.js +219 -219
- package/navigation/web.d.ts +13 -13
- package/navigation/web.js +4 -4
- package/odata.d.ts +5 -5
- package/odata.js +90 -90
- package/odata.js.map +1 -1
- package/operations.d.ts +9 -9
- package/operations.js +63 -63
- package/package.json +4 -4
- package/presets/all.d.ts +72 -72
- package/presets/all.js +72 -72
- package/presets/core.d.ts +11 -11
- package/presets/core.js +11 -11
- package/profiles/index.d.ts +7 -7
- package/profiles/index.js +13 -13
- package/profiles/types.d.ts +357 -357
- package/profiles/types.js +454 -454
- package/readme.md +21 -21
- package/regional-settings/content-type.d.ts +7 -7
- package/regional-settings/content-type.js +4 -4
- package/regional-settings/field.d.ts +7 -7
- package/regional-settings/field.js +4 -4
- package/regional-settings/funcs.d.ts +2 -2
- package/regional-settings/funcs.js +8 -8
- package/regional-settings/index.d.ts +6 -6
- package/regional-settings/index.js +6 -6
- package/regional-settings/list.d.ts +7 -7
- package/regional-settings/list.js +4 -4
- package/regional-settings/types.d.ts +111 -111
- package/regional-settings/types.js +159 -159
- package/regional-settings/user-custom-actions.d.ts +7 -7
- package/regional-settings/user-custom-actions.js +4 -4
- package/regional-settings/web.d.ts +12 -12
- package/regional-settings/web.js +7 -7
- package/related-items/index.d.ts +1 -1
- package/related-items/index.js +1 -1
- package/related-items/types.d.ts +76 -76
- package/related-items/types.js +103 -103
- package/related-items/web.d.ts +12 -12
- package/related-items/web.js +9 -9
- package/rest.d.ts +44 -44
- package/rest.js +72 -72
- package/search/index.d.ts +30 -30
- package/search/index.js +25 -25
- package/search/query.d.ts +62 -62
- package/search/query.js +302 -302
- package/search/suggest.d.ts +76 -76
- package/search/suggest.js +66 -66
- package/search/types.d.ts +426 -426
- package/search/types.js +57 -57
- package/security/funcs.d.ts +43 -43
- package/security/funcs.js +142 -142
- package/security/index.d.ts +4 -4
- package/security/index.js +4 -4
- package/security/item.d.ts +7 -7
- package/security/item.js +14 -14
- package/security/list.d.ts +7 -7
- package/security/list.js +14 -14
- package/security/types.d.ts +318 -318
- package/security/types.js +399 -399
- package/security/web.d.ts +9 -9
- package/security/web.js +15 -15
- package/sharepointqueryable.d.ts +135 -135
- package/sharepointqueryable.js +265 -265
- package/sharing/file.d.ts +18 -18
- package/sharing/file.js +116 -116
- package/sharing/folder.d.ts +9 -9
- package/sharing/folder.js +136 -136
- package/sharing/funcs.d.ts +62 -62
- package/sharing/funcs.js +239 -239
- package/sharing/funcs.js.map +1 -1
- package/sharing/index.d.ts +5 -5
- package/sharing/index.js +5 -5
- package/sharing/item.d.ts +16 -16
- package/sharing/item.js +15 -15
- package/sharing/types.d.ts +583 -583
- package/sharing/types.js +113 -113
- package/sharing/web.d.ts +19 -19
- package/sharing/web.js +76 -76
- package/site-designs/index.d.ts +8 -8
- package/site-designs/index.js +14 -14
- package/site-designs/types.d.ts +319 -319
- package/site-designs/types.js +203 -203
- package/site-designs/web.d.ts +25 -25
- package/site-designs/web.js +11 -11
- package/site-groups/index.d.ts +2 -2
- package/site-groups/index.js +2 -2
- package/site-groups/types.d.ts +89 -89
- package/site-groups/types.js +125 -125
- package/site-groups/web.d.ts +40 -40
- package/site-groups/web.js +30 -30
- package/site-scripts/index.d.ts +9 -9
- package/site-scripts/index.js +15 -15
- package/site-scripts/list.d.ts +12 -12
- package/site-scripts/list.js +24 -24
- package/site-scripts/types.d.ts +183 -183
- package/site-scripts/types.js +141 -141
- package/site-scripts/web.d.ts +13 -13
- package/site-scripts/web.js +5 -5
- package/site-users/index.d.ts +2 -2
- package/site-users/index.js +2 -2
- package/site-users/types.d.ts +138 -138
- package/site-users/types.js +122 -122
- package/site-users/web.d.ts +31 -31
- package/site-users/web.js +27 -27
- package/sites/index.d.ts +7 -7
- package/sites/index.js +13 -13
- package/sites/types.d.ts +147 -147
- package/sites/types.js +321 -321
- package/social/index.d.ts +10 -10
- package/social/index.js +13 -13
- package/social/types.d.ts +309 -309
- package/social/types.js +322 -322
- package/sphttpclient.d.ts +18 -18
- package/sphttpclient.js +189 -189
- package/splibconfig.d.ts +22 -22
- package/splibconfig.js +13 -13
- package/sputilities/index.d.ts +7 -7
- package/sputilities/index.js +13 -13
- package/sputilities/types.d.ts +130 -130
- package/sputilities/types.js +118 -118
- package/subscriptions/index.d.ts +2 -2
- package/subscriptions/index.js +2 -2
- package/subscriptions/list.d.ts +13 -13
- package/subscriptions/list.js +4 -4
- package/subscriptions/types.d.ts +54 -54
- package/subscriptions/types.js +111 -111
- package/taxonomy/index.d.ts +7 -7
- package/taxonomy/index.js +13 -13
- package/taxonomy/types.d.ts +200 -200
- package/taxonomy/types.js +347 -347
- package/taxonomy/types.js.map +1 -1
- package/telemetry.d.ts +12 -12
- package/telemetry.js +48 -48
- package/types.d.ts +218 -218
- package/types.js +79 -79
- package/user-custom-actions/index.d.ts +4 -4
- package/user-custom-actions/index.js +4 -4
- package/user-custom-actions/list.d.ts +12 -12
- package/user-custom-actions/list.js +4 -4
- package/user-custom-actions/site.d.ts +12 -12
- package/user-custom-actions/site.js +4 -4
- package/user-custom-actions/types.d.ts +82 -82
- package/user-custom-actions/types.js +93 -93
- package/user-custom-actions/web.d.ts +15 -15
- package/user-custom-actions/web.js +4 -4
- package/utils/escapeQueryStrValue.d.ts +1 -1
- package/utils/escapeQueryStrValue.js +19 -19
- package/utils/extractweburl.d.ts +1 -1
- package/utils/extractweburl.js +15 -15
- package/utils/file-names.d.ts +17 -17
- package/utils/file-names.js +38 -38
- package/utils/metadata.d.ts +5 -5
- package/utils/metadata.js +5 -5
- package/utils/objectToSPKeyValueCollection.d.ts +20 -20
- package/utils/objectToSPKeyValueCollection.js +16 -16
- package/utils/toResourcePath.d.ts +7 -7
- package/utils/toResourcePath.js +6 -6
- package/utils/toabsoluteurl.d.ts +7 -7
- package/utils/toabsoluteurl.js +61 -61
- package/views/index.d.ts +2 -2
- package/views/index.js +2 -2
- package/views/list.d.ts +23 -23
- package/views/list.js +8 -8
- package/views/types.d.ts +140 -140
- package/views/types.js +184 -184
- package/webparts/file.d.ts +15 -15
- package/webparts/file.js +6 -6
- package/webparts/index.d.ts +2 -2
- package/webparts/index.js +2 -2
- package/webparts/types.d.ts +83 -83
- package/webparts/types.js +117 -117
- package/webs/index.d.ts +16 -16
- package/webs/index.js +16 -16
- package/webs/types.d.ts +210 -210
- package/webs/types.js +295 -295
package/batch.d.ts
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import { Batch } from "@pnp/odata";
|
|
2
|
-
import { Runtime } from "@pnp/common";
|
|
3
|
-
/**
|
|
4
|
-
* Manages a batch of OData operations
|
|
5
|
-
*/
|
|
6
|
-
export declare class SPBatch extends Batch {
|
|
7
|
-
private url;
|
|
8
|
-
private runtime;
|
|
9
|
-
constructor(url: string, runtime?: Runtime);
|
|
10
|
-
/**
|
|
11
|
-
* Parses the response from a batch request into an array of Response instances
|
|
12
|
-
*
|
|
13
|
-
* @param body Text body of the response from the batch request
|
|
14
|
-
*/
|
|
15
|
-
static ParseResponse(body: string): Response[];
|
|
16
|
-
protected executeImpl(): Promise<void>;
|
|
17
|
-
}
|
|
1
|
+
import { Batch } from "@pnp/odata";
|
|
2
|
+
import { Runtime } from "@pnp/common";
|
|
3
|
+
/**
|
|
4
|
+
* Manages a batch of OData operations
|
|
5
|
+
*/
|
|
6
|
+
export declare class SPBatch extends Batch {
|
|
7
|
+
private url;
|
|
8
|
+
private runtime;
|
|
9
|
+
constructor(url: string, runtime?: Runtime);
|
|
10
|
+
/**
|
|
11
|
+
* Parses the response from a batch request into an array of Response instances
|
|
12
|
+
*
|
|
13
|
+
* @param body Text body of the response from the batch request
|
|
14
|
+
*/
|
|
15
|
+
static ParseResponse(body: string): Response[];
|
|
16
|
+
protected executeImpl(): Promise<void>;
|
|
17
|
+
}
|
|
18
18
|
//# sourceMappingURL=batch.d.ts.map
|
package/batch.js
CHANGED
|
@@ -1,224 +1,224 @@
|
|
|
1
|
-
import { __awaiter, __extends, __generator } from "tslib";
|
|
2
|
-
import { Batch, HttpRequestError } from "@pnp/odata";
|
|
3
|
-
import { getGUID, isUrlAbsolute, combine, mergeHeaders, hOP, DefaultRuntime } from "@pnp/common";
|
|
4
|
-
import { Logger } from "@pnp/logging";
|
|
5
|
-
import { SPHttpClient } from "./sphttpclient.js";
|
|
6
|
-
import { toAbsoluteUrl } from "./utils/toabsoluteurl.js";
|
|
7
|
-
/**
|
|
8
|
-
* Manages a batch of OData operations
|
|
9
|
-
*/
|
|
10
|
-
var SPBatch = /** @class */ (function (_super) {
|
|
11
|
-
__extends(SPBatch, _super);
|
|
12
|
-
function SPBatch(url, runtime) {
|
|
13
|
-
if (runtime === void 0) { runtime = DefaultRuntime; }
|
|
14
|
-
var _this = _super.call(this) || this;
|
|
15
|
-
_this.url = url;
|
|
16
|
-
_this.runtime = runtime;
|
|
17
|
-
return _this;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Parses the response from a batch request into an array of Response instances
|
|
21
|
-
*
|
|
22
|
-
* @param body Text body of the response from the batch request
|
|
23
|
-
*/
|
|
24
|
-
SPBatch.ParseResponse = function (body) {
|
|
25
|
-
var responses = [];
|
|
26
|
-
var header = "--batchresponse_";
|
|
27
|
-
// Ex. "HTTP/1.1 500 Internal Server Error"
|
|
28
|
-
var statusRegExp = new RegExp("^HTTP/[0-9.]+ +([0-9]+) +(.*)", "i");
|
|
29
|
-
var lines = body.split("\n");
|
|
30
|
-
var state = "batch";
|
|
31
|
-
var status;
|
|
32
|
-
var statusText;
|
|
33
|
-
for (var i = 0; i < lines.length; ++i) {
|
|
34
|
-
var line = lines[i];
|
|
35
|
-
switch (state) {
|
|
36
|
-
case "batch":
|
|
37
|
-
if (line.substr(0, header.length) === header) {
|
|
38
|
-
state = "batchHeaders";
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
if (line.trim() !== "") {
|
|
42
|
-
throw Error("Invalid response, line " + i);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
break;
|
|
46
|
-
case "batchHeaders":
|
|
47
|
-
if (line.trim() === "") {
|
|
48
|
-
state = "status";
|
|
49
|
-
}
|
|
50
|
-
break;
|
|
51
|
-
case "status": {
|
|
52
|
-
var parts = statusRegExp.exec(line);
|
|
53
|
-
if (parts.length !== 3) {
|
|
54
|
-
throw Error("Invalid status, line " + i);
|
|
55
|
-
}
|
|
56
|
-
status = parseInt(parts[1], 10);
|
|
57
|
-
statusText = parts[2];
|
|
58
|
-
state = "statusHeaders";
|
|
59
|
-
break;
|
|
60
|
-
}
|
|
61
|
-
case "statusHeaders":
|
|
62
|
-
if (line.trim() === "") {
|
|
63
|
-
state = "body";
|
|
64
|
-
}
|
|
65
|
-
break;
|
|
66
|
-
case "body":
|
|
67
|
-
responses.push((status === 204) ? new Response() : new Response(line, { status: status, statusText: statusText }));
|
|
68
|
-
state = "batch";
|
|
69
|
-
break;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
if (state !== "status") {
|
|
73
|
-
throw Error("Unexpected end of input");
|
|
74
|
-
}
|
|
75
|
-
return responses;
|
|
76
|
-
};
|
|
77
|
-
SPBatch.prototype.executeImpl = function () {
|
|
78
|
-
var _a;
|
|
79
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
80
|
-
var client, absoluteRequestUrl, batchBody, currentChangeSetId, i, reqInfo, headers, url, method, castHeaders, batchOptions, fetchResponse, text, responses;
|
|
81
|
-
var _this = this;
|
|
82
|
-
return __generator(this, function (_b) {
|
|
83
|
-
switch (_b.label) {
|
|
84
|
-
case 0:
|
|
85
|
-
Logger.write("[" + this.batchId + "] (" + (new Date()).getTime() + ") Executing batch with " + this.requests.length + " requests.", 1 /* Info */);
|
|
86
|
-
// if we don't have any requests, don't bother sending anything
|
|
87
|
-
// this could be due to caching further upstream, or just an empty batch
|
|
88
|
-
if (this.requests.length < 1) {
|
|
89
|
-
Logger.write("Resolving empty batch.", 1 /* Info */);
|
|
90
|
-
return [2 /*return*/];
|
|
91
|
-
}
|
|
92
|
-
client = new SPHttpClient(this.runtime);
|
|
93
|
-
return [4 /*yield*/, toAbsoluteUrl(this.url, this.runtime)];
|
|
94
|
-
case 1:
|
|
95
|
-
absoluteRequestUrl = _b.sent();
|
|
96
|
-
batchBody = [];
|
|
97
|
-
currentChangeSetId = "";
|
|
98
|
-
for (i = 0; i < this.requests.length; i++) {
|
|
99
|
-
reqInfo = this.requests[i];
|
|
100
|
-
if (reqInfo.method === "GET") {
|
|
101
|
-
if (currentChangeSetId.length > 0) {
|
|
102
|
-
// end an existing change set
|
|
103
|
-
batchBody.push("--changeset_" + currentChangeSetId + "--\n\n");
|
|
104
|
-
currentChangeSetId = "";
|
|
105
|
-
}
|
|
106
|
-
batchBody.push("--batch_" + this.batchId + "\n");
|
|
107
|
-
}
|
|
108
|
-
else {
|
|
109
|
-
if (currentChangeSetId.length < 1) {
|
|
110
|
-
// start new change set
|
|
111
|
-
currentChangeSetId = getGUID();
|
|
112
|
-
batchBody.push("--batch_" + this.batchId + "\n");
|
|
113
|
-
batchBody.push("Content-Type: multipart/mixed; boundary=\"changeset_" + currentChangeSetId + "\"\n\n");
|
|
114
|
-
}
|
|
115
|
-
batchBody.push("--changeset_" + currentChangeSetId + "\n");
|
|
116
|
-
}
|
|
117
|
-
// common batch part prefix
|
|
118
|
-
batchBody.push("Content-Type: application/http\n");
|
|
119
|
-
batchBody.push("Content-Transfer-Encoding: binary\n\n");
|
|
120
|
-
headers = new Headers();
|
|
121
|
-
url = isUrlAbsolute(reqInfo.url) ? reqInfo.url : combine(absoluteRequestUrl, reqInfo.url);
|
|
122
|
-
Logger.write("[" + this.batchId + "] (" + (new Date()).getTime() + ") Adding request " + reqInfo.method + " " + url + " to batch.", 0 /* Verbose */);
|
|
123
|
-
if (reqInfo.method !== "GET") {
|
|
124
|
-
method = reqInfo.method;
|
|
125
|
-
castHeaders = reqInfo.options.headers;
|
|
126
|
-
if (hOP(reqInfo, "options") && hOP(reqInfo.options, "headers") && castHeaders["X-HTTP-Method"] !== undefined) {
|
|
127
|
-
method = castHeaders["X-HTTP-Method"];
|
|
128
|
-
delete castHeaders["X-HTTP-Method"];
|
|
129
|
-
}
|
|
130
|
-
batchBody.push(method + " " + url + " HTTP/1.1\n");
|
|
131
|
-
headers.set("Content-Type", "application/json;odata=verbose;charset=utf-8");
|
|
132
|
-
}
|
|
133
|
-
else {
|
|
134
|
-
batchBody.push(reqInfo.method + " " + url + " HTTP/1.1\n");
|
|
135
|
-
}
|
|
136
|
-
// merge global config headers
|
|
137
|
-
mergeHeaders(headers, (_a = this.runtime.get("sp")) === null || _a === void 0 ? void 0 : _a.headers);
|
|
138
|
-
// merge per-request headers
|
|
139
|
-
if (reqInfo.options) {
|
|
140
|
-
mergeHeaders(headers, reqInfo.options.headers);
|
|
141
|
-
}
|
|
142
|
-
// lastly we apply any default headers we need that may not exist
|
|
143
|
-
if (!headers.has("Accept")) {
|
|
144
|
-
headers.append("Accept", "application/json");
|
|
145
|
-
}
|
|
146
|
-
if (!headers.has("Content-Type")) {
|
|
147
|
-
headers.append("Content-Type", "application/json;odata=verbose;charset=utf-8");
|
|
148
|
-
}
|
|
149
|
-
if (!headers.has("X-ClientService-ClientTag")) {
|
|
150
|
-
headers.append("X-ClientService-ClientTag", "PnPCoreJS:@pnp-2.
|
|
151
|
-
}
|
|
152
|
-
// write headers into batch body
|
|
153
|
-
headers.forEach(function (value, name) {
|
|
154
|
-
batchBody.push(name + ": " + value + "\n");
|
|
155
|
-
});
|
|
156
|
-
batchBody.push("\n");
|
|
157
|
-
if (reqInfo.options.body) {
|
|
158
|
-
batchBody.push(reqInfo.options.body + "\n\n");
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
if (currentChangeSetId.length > 0) {
|
|
162
|
-
// Close the changeset
|
|
163
|
-
batchBody.push("--changeset_" + currentChangeSetId + "--\n\n");
|
|
164
|
-
currentChangeSetId = "";
|
|
165
|
-
}
|
|
166
|
-
batchBody.push("--batch_" + this.batchId + "--\n");
|
|
167
|
-
batchOptions = {
|
|
168
|
-
"body": batchBody.join(""),
|
|
169
|
-
"headers": {
|
|
170
|
-
"Content-Type": "multipart/mixed; boundary=batch_" + this.batchId,
|
|
171
|
-
},
|
|
172
|
-
"method": "POST",
|
|
173
|
-
};
|
|
174
|
-
Logger.write("[" + this.batchId + "] (" + (new Date()).getTime() + ") Sending batch request.", 1 /* Info */);
|
|
175
|
-
return [4 /*yield*/, client.fetch(combine(absoluteRequestUrl, "/_api/$batch"), batchOptions)];
|
|
176
|
-
case 2:
|
|
177
|
-
fetchResponse = _b.sent();
|
|
178
|
-
if (!!fetchResponse.ok) return [3 /*break*/, 4];
|
|
179
|
-
return [4 /*yield*/, HttpRequestError.init(fetchResponse)];
|
|
180
|
-
case 3:
|
|
181
|
-
// the entire batch resulted in an error and we need to handle that better #1356
|
|
182
|
-
// things consistently with the rest of the http errors
|
|
183
|
-
throw (_b.sent());
|
|
184
|
-
case 4: return [4 /*yield*/, fetchResponse.text()];
|
|
185
|
-
case 5:
|
|
186
|
-
text = _b.sent();
|
|
187
|
-
responses = SPBatch.ParseResponse(text);
|
|
188
|
-
if (responses.length !== this.requests.length) {
|
|
189
|
-
throw Error("Could not properly parse responses to match requests in batch.");
|
|
190
|
-
}
|
|
191
|
-
Logger.write("[" + this.batchId + "] (" + (new Date()).getTime() + ") Resolving batched requests.", 1 /* Info */);
|
|
192
|
-
// this structure ensures that we resolve the batched requests in the order we expect
|
|
193
|
-
// using async this is not guaranteed depending on the requests
|
|
194
|
-
return [2 /*return*/, responses.reduce(function (p, response, index) { return p.then(function () { return __awaiter(_this, void 0, void 0, function () {
|
|
195
|
-
var request, _a, _b, e_1;
|
|
196
|
-
return __generator(this, function (_c) {
|
|
197
|
-
switch (_c.label) {
|
|
198
|
-
case 0:
|
|
199
|
-
request = this.requests[index];
|
|
200
|
-
Logger.write("[" + request.id + "] (" + (new Date()).getTime() + ") Resolving request in batch " + this.batchId + ".", 1 /* Info */);
|
|
201
|
-
_c.label = 1;
|
|
202
|
-
case 1:
|
|
203
|
-
_c.trys.push([1, 3, , 4]);
|
|
204
|
-
_b = (_a = request).resolve;
|
|
205
|
-
return [4 /*yield*/, request.parser.parse(response)];
|
|
206
|
-
case 2:
|
|
207
|
-
_b.apply(_a, [_c.sent()]);
|
|
208
|
-
return [3 /*break*/, 4];
|
|
209
|
-
case 3:
|
|
210
|
-
e_1 = _c.sent();
|
|
211
|
-
request.reject(e_1);
|
|
212
|
-
return [3 /*break*/, 4];
|
|
213
|
-
case 4: return [2 /*return*/];
|
|
214
|
-
}
|
|
215
|
-
});
|
|
216
|
-
}); }); }, Promise.resolve(void (0)))];
|
|
217
|
-
}
|
|
218
|
-
});
|
|
219
|
-
});
|
|
220
|
-
};
|
|
221
|
-
return SPBatch;
|
|
222
|
-
}(Batch));
|
|
223
|
-
export { SPBatch };
|
|
1
|
+
import { __awaiter, __extends, __generator } from "tslib";
|
|
2
|
+
import { Batch, HttpRequestError } from "@pnp/odata";
|
|
3
|
+
import { getGUID, isUrlAbsolute, combine, mergeHeaders, hOP, DefaultRuntime } from "@pnp/common";
|
|
4
|
+
import { Logger } from "@pnp/logging";
|
|
5
|
+
import { SPHttpClient } from "./sphttpclient.js";
|
|
6
|
+
import { toAbsoluteUrl } from "./utils/toabsoluteurl.js";
|
|
7
|
+
/**
|
|
8
|
+
* Manages a batch of OData operations
|
|
9
|
+
*/
|
|
10
|
+
var SPBatch = /** @class */ (function (_super) {
|
|
11
|
+
__extends(SPBatch, _super);
|
|
12
|
+
function SPBatch(url, runtime) {
|
|
13
|
+
if (runtime === void 0) { runtime = DefaultRuntime; }
|
|
14
|
+
var _this = _super.call(this) || this;
|
|
15
|
+
_this.url = url;
|
|
16
|
+
_this.runtime = runtime;
|
|
17
|
+
return _this;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Parses the response from a batch request into an array of Response instances
|
|
21
|
+
*
|
|
22
|
+
* @param body Text body of the response from the batch request
|
|
23
|
+
*/
|
|
24
|
+
SPBatch.ParseResponse = function (body) {
|
|
25
|
+
var responses = [];
|
|
26
|
+
var header = "--batchresponse_";
|
|
27
|
+
// Ex. "HTTP/1.1 500 Internal Server Error"
|
|
28
|
+
var statusRegExp = new RegExp("^HTTP/[0-9.]+ +([0-9]+) +(.*)", "i");
|
|
29
|
+
var lines = body.split("\n");
|
|
30
|
+
var state = "batch";
|
|
31
|
+
var status;
|
|
32
|
+
var statusText;
|
|
33
|
+
for (var i = 0; i < lines.length; ++i) {
|
|
34
|
+
var line = lines[i];
|
|
35
|
+
switch (state) {
|
|
36
|
+
case "batch":
|
|
37
|
+
if (line.substr(0, header.length) === header) {
|
|
38
|
+
state = "batchHeaders";
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
if (line.trim() !== "") {
|
|
42
|
+
throw Error("Invalid response, line " + i);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
break;
|
|
46
|
+
case "batchHeaders":
|
|
47
|
+
if (line.trim() === "") {
|
|
48
|
+
state = "status";
|
|
49
|
+
}
|
|
50
|
+
break;
|
|
51
|
+
case "status": {
|
|
52
|
+
var parts = statusRegExp.exec(line);
|
|
53
|
+
if (parts.length !== 3) {
|
|
54
|
+
throw Error("Invalid status, line " + i);
|
|
55
|
+
}
|
|
56
|
+
status = parseInt(parts[1], 10);
|
|
57
|
+
statusText = parts[2];
|
|
58
|
+
state = "statusHeaders";
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
case "statusHeaders":
|
|
62
|
+
if (line.trim() === "") {
|
|
63
|
+
state = "body";
|
|
64
|
+
}
|
|
65
|
+
break;
|
|
66
|
+
case "body":
|
|
67
|
+
responses.push((status === 204) ? new Response() : new Response(line, { status: status, statusText: statusText }));
|
|
68
|
+
state = "batch";
|
|
69
|
+
break;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
if (state !== "status") {
|
|
73
|
+
throw Error("Unexpected end of input");
|
|
74
|
+
}
|
|
75
|
+
return responses;
|
|
76
|
+
};
|
|
77
|
+
SPBatch.prototype.executeImpl = function () {
|
|
78
|
+
var _a;
|
|
79
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
80
|
+
var client, absoluteRequestUrl, batchBody, currentChangeSetId, i, reqInfo, headers, url, method, castHeaders, batchOptions, fetchResponse, text, responses;
|
|
81
|
+
var _this = this;
|
|
82
|
+
return __generator(this, function (_b) {
|
|
83
|
+
switch (_b.label) {
|
|
84
|
+
case 0:
|
|
85
|
+
Logger.write("[" + this.batchId + "] (" + (new Date()).getTime() + ") Executing batch with " + this.requests.length + " requests.", 1 /* Info */);
|
|
86
|
+
// if we don't have any requests, don't bother sending anything
|
|
87
|
+
// this could be due to caching further upstream, or just an empty batch
|
|
88
|
+
if (this.requests.length < 1) {
|
|
89
|
+
Logger.write("Resolving empty batch.", 1 /* Info */);
|
|
90
|
+
return [2 /*return*/];
|
|
91
|
+
}
|
|
92
|
+
client = new SPHttpClient(this.runtime);
|
|
93
|
+
return [4 /*yield*/, toAbsoluteUrl(this.url, this.runtime)];
|
|
94
|
+
case 1:
|
|
95
|
+
absoluteRequestUrl = _b.sent();
|
|
96
|
+
batchBody = [];
|
|
97
|
+
currentChangeSetId = "";
|
|
98
|
+
for (i = 0; i < this.requests.length; i++) {
|
|
99
|
+
reqInfo = this.requests[i];
|
|
100
|
+
if (reqInfo.method === "GET") {
|
|
101
|
+
if (currentChangeSetId.length > 0) {
|
|
102
|
+
// end an existing change set
|
|
103
|
+
batchBody.push("--changeset_" + currentChangeSetId + "--\n\n");
|
|
104
|
+
currentChangeSetId = "";
|
|
105
|
+
}
|
|
106
|
+
batchBody.push("--batch_" + this.batchId + "\n");
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
if (currentChangeSetId.length < 1) {
|
|
110
|
+
// start new change set
|
|
111
|
+
currentChangeSetId = getGUID();
|
|
112
|
+
batchBody.push("--batch_" + this.batchId + "\n");
|
|
113
|
+
batchBody.push("Content-Type: multipart/mixed; boundary=\"changeset_" + currentChangeSetId + "\"\n\n");
|
|
114
|
+
}
|
|
115
|
+
batchBody.push("--changeset_" + currentChangeSetId + "\n");
|
|
116
|
+
}
|
|
117
|
+
// common batch part prefix
|
|
118
|
+
batchBody.push("Content-Type: application/http\n");
|
|
119
|
+
batchBody.push("Content-Transfer-Encoding: binary\n\n");
|
|
120
|
+
headers = new Headers();
|
|
121
|
+
url = isUrlAbsolute(reqInfo.url) ? reqInfo.url : combine(absoluteRequestUrl, reqInfo.url);
|
|
122
|
+
Logger.write("[" + this.batchId + "] (" + (new Date()).getTime() + ") Adding request " + reqInfo.method + " " + url + " to batch.", 0 /* Verbose */);
|
|
123
|
+
if (reqInfo.method !== "GET") {
|
|
124
|
+
method = reqInfo.method;
|
|
125
|
+
castHeaders = reqInfo.options.headers;
|
|
126
|
+
if (hOP(reqInfo, "options") && hOP(reqInfo.options, "headers") && castHeaders["X-HTTP-Method"] !== undefined) {
|
|
127
|
+
method = castHeaders["X-HTTP-Method"];
|
|
128
|
+
delete castHeaders["X-HTTP-Method"];
|
|
129
|
+
}
|
|
130
|
+
batchBody.push(method + " " + url + " HTTP/1.1\n");
|
|
131
|
+
headers.set("Content-Type", "application/json;odata=verbose;charset=utf-8");
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
batchBody.push(reqInfo.method + " " + url + " HTTP/1.1\n");
|
|
135
|
+
}
|
|
136
|
+
// merge global config headers
|
|
137
|
+
mergeHeaders(headers, (_a = this.runtime.get("sp")) === null || _a === void 0 ? void 0 : _a.headers);
|
|
138
|
+
// merge per-request headers
|
|
139
|
+
if (reqInfo.options) {
|
|
140
|
+
mergeHeaders(headers, reqInfo.options.headers);
|
|
141
|
+
}
|
|
142
|
+
// lastly we apply any default headers we need that may not exist
|
|
143
|
+
if (!headers.has("Accept")) {
|
|
144
|
+
headers.append("Accept", "application/json");
|
|
145
|
+
}
|
|
146
|
+
if (!headers.has("Content-Type")) {
|
|
147
|
+
headers.append("Content-Type", "application/json;odata=verbose;charset=utf-8");
|
|
148
|
+
}
|
|
149
|
+
if (!headers.has("X-ClientService-ClientTag")) {
|
|
150
|
+
headers.append("X-ClientService-ClientTag", "PnPCoreJS:@pnp-2.12.0:batch");
|
|
151
|
+
}
|
|
152
|
+
// write headers into batch body
|
|
153
|
+
headers.forEach(function (value, name) {
|
|
154
|
+
batchBody.push(name + ": " + value + "\n");
|
|
155
|
+
});
|
|
156
|
+
batchBody.push("\n");
|
|
157
|
+
if (reqInfo.options.body) {
|
|
158
|
+
batchBody.push(reqInfo.options.body + "\n\n");
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
if (currentChangeSetId.length > 0) {
|
|
162
|
+
// Close the changeset
|
|
163
|
+
batchBody.push("--changeset_" + currentChangeSetId + "--\n\n");
|
|
164
|
+
currentChangeSetId = "";
|
|
165
|
+
}
|
|
166
|
+
batchBody.push("--batch_" + this.batchId + "--\n");
|
|
167
|
+
batchOptions = {
|
|
168
|
+
"body": batchBody.join(""),
|
|
169
|
+
"headers": {
|
|
170
|
+
"Content-Type": "multipart/mixed; boundary=batch_" + this.batchId,
|
|
171
|
+
},
|
|
172
|
+
"method": "POST",
|
|
173
|
+
};
|
|
174
|
+
Logger.write("[" + this.batchId + "] (" + (new Date()).getTime() + ") Sending batch request.", 1 /* Info */);
|
|
175
|
+
return [4 /*yield*/, client.fetch(combine(absoluteRequestUrl, "/_api/$batch"), batchOptions)];
|
|
176
|
+
case 2:
|
|
177
|
+
fetchResponse = _b.sent();
|
|
178
|
+
if (!!fetchResponse.ok) return [3 /*break*/, 4];
|
|
179
|
+
return [4 /*yield*/, HttpRequestError.init(fetchResponse)];
|
|
180
|
+
case 3:
|
|
181
|
+
// the entire batch resulted in an error and we need to handle that better #1356
|
|
182
|
+
// things consistently with the rest of the http errors
|
|
183
|
+
throw (_b.sent());
|
|
184
|
+
case 4: return [4 /*yield*/, fetchResponse.text()];
|
|
185
|
+
case 5:
|
|
186
|
+
text = _b.sent();
|
|
187
|
+
responses = SPBatch.ParseResponse(text);
|
|
188
|
+
if (responses.length !== this.requests.length) {
|
|
189
|
+
throw Error("Could not properly parse responses to match requests in batch.");
|
|
190
|
+
}
|
|
191
|
+
Logger.write("[" + this.batchId + "] (" + (new Date()).getTime() + ") Resolving batched requests.", 1 /* Info */);
|
|
192
|
+
// this structure ensures that we resolve the batched requests in the order we expect
|
|
193
|
+
// using async this is not guaranteed depending on the requests
|
|
194
|
+
return [2 /*return*/, responses.reduce(function (p, response, index) { return p.then(function () { return __awaiter(_this, void 0, void 0, function () {
|
|
195
|
+
var request, _a, _b, e_1;
|
|
196
|
+
return __generator(this, function (_c) {
|
|
197
|
+
switch (_c.label) {
|
|
198
|
+
case 0:
|
|
199
|
+
request = this.requests[index];
|
|
200
|
+
Logger.write("[" + request.id + "] (" + (new Date()).getTime() + ") Resolving request in batch " + this.batchId + ".", 1 /* Info */);
|
|
201
|
+
_c.label = 1;
|
|
202
|
+
case 1:
|
|
203
|
+
_c.trys.push([1, 3, , 4]);
|
|
204
|
+
_b = (_a = request).resolve;
|
|
205
|
+
return [4 /*yield*/, request.parser.parse(response)];
|
|
206
|
+
case 2:
|
|
207
|
+
_b.apply(_a, [_c.sent()]);
|
|
208
|
+
return [3 /*break*/, 4];
|
|
209
|
+
case 3:
|
|
210
|
+
e_1 = _c.sent();
|
|
211
|
+
request.reject(e_1);
|
|
212
|
+
return [3 /*break*/, 4];
|
|
213
|
+
case 4: return [2 /*return*/];
|
|
214
|
+
}
|
|
215
|
+
});
|
|
216
|
+
}); }); }, Promise.resolve(void (0)))];
|
|
217
|
+
}
|
|
218
|
+
});
|
|
219
|
+
});
|
|
220
|
+
};
|
|
221
|
+
return SPBatch;
|
|
222
|
+
}(Batch));
|
|
223
|
+
export { SPBatch };
|
|
224
224
|
//# sourceMappingURL=batch.js.map
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Gets the next order value 1 based for the provided collection
|
|
3
|
-
*
|
|
4
|
-
* @param collection Collection of orderable things
|
|
5
|
-
*/
|
|
6
|
-
export declare function getNextOrder(collection: {
|
|
7
|
-
order: number;
|
|
8
|
-
}[]): number;
|
|
9
|
-
/**
|
|
10
|
-
* Normalizes the order value for all the sections, columns, and controls to be 1 based and stepped (1, 2, 3...)
|
|
11
|
-
*
|
|
12
|
-
* @param collection The collection to normalize
|
|
13
|
-
*/
|
|
14
|
-
export declare function reindex(collection: {
|
|
15
|
-
order: number;
|
|
16
|
-
columns?: {
|
|
17
|
-
order: number;
|
|
18
|
-
}[];
|
|
19
|
-
controls?: {
|
|
20
|
-
order: number;
|
|
21
|
-
}[];
|
|
22
|
-
}[]): void;
|
|
1
|
+
/**
|
|
2
|
+
* Gets the next order value 1 based for the provided collection
|
|
3
|
+
*
|
|
4
|
+
* @param collection Collection of orderable things
|
|
5
|
+
*/
|
|
6
|
+
export declare function getNextOrder(collection: {
|
|
7
|
+
order: number;
|
|
8
|
+
}[]): number;
|
|
9
|
+
/**
|
|
10
|
+
* Normalizes the order value for all the sections, columns, and controls to be 1 based and stepped (1, 2, 3...)
|
|
11
|
+
*
|
|
12
|
+
* @param collection The collection to normalize
|
|
13
|
+
*/
|
|
14
|
+
export declare function reindex(collection: {
|
|
15
|
+
order: number;
|
|
16
|
+
columns?: {
|
|
17
|
+
order: number;
|
|
18
|
+
}[];
|
|
19
|
+
controls?: {
|
|
20
|
+
order: number;
|
|
21
|
+
}[];
|
|
22
|
+
}[]): void;
|
|
23
23
|
//# sourceMappingURL=funcs.d.ts.map
|
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
import { hOP } from "@pnp/common";
|
|
2
|
-
/**
|
|
3
|
-
* Gets the next order value 1 based for the provided collection
|
|
4
|
-
*
|
|
5
|
-
* @param collection Collection of orderable things
|
|
6
|
-
*/
|
|
7
|
-
export function getNextOrder(collection) {
|
|
8
|
-
return collection.length < 1 ? 1 : (Math.max.apply(null, collection.map(function (i) { return i.order; })) + 1);
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Normalizes the order value for all the sections, columns, and controls to be 1 based and stepped (1, 2, 3...)
|
|
12
|
-
*
|
|
13
|
-
* @param collection The collection to normalize
|
|
14
|
-
*/
|
|
15
|
-
export function reindex(collection) {
|
|
16
|
-
for (var i = 0; i < collection.length; i++) {
|
|
17
|
-
collection[i].order = i + 1;
|
|
18
|
-
if (hOP(collection[i], "columns")) {
|
|
19
|
-
reindex(collection[i].columns);
|
|
20
|
-
}
|
|
21
|
-
else if (hOP(collection[i], "controls")) {
|
|
22
|
-
reindex(collection[i].controls);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
}
|
|
1
|
+
import { hOP } from "@pnp/common";
|
|
2
|
+
/**
|
|
3
|
+
* Gets the next order value 1 based for the provided collection
|
|
4
|
+
*
|
|
5
|
+
* @param collection Collection of orderable things
|
|
6
|
+
*/
|
|
7
|
+
export function getNextOrder(collection) {
|
|
8
|
+
return collection.length < 1 ? 1 : (Math.max.apply(null, collection.map(function (i) { return i.order; })) + 1);
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Normalizes the order value for all the sections, columns, and controls to be 1 based and stepped (1, 2, 3...)
|
|
12
|
+
*
|
|
13
|
+
* @param collection The collection to normalize
|
|
14
|
+
*/
|
|
15
|
+
export function reindex(collection) {
|
|
16
|
+
for (var i = 0; i < collection.length; i++) {
|
|
17
|
+
collection[i].order = i + 1;
|
|
18
|
+
if (hOP(collection[i], "columns")) {
|
|
19
|
+
reindex(collection[i].columns);
|
|
20
|
+
}
|
|
21
|
+
else if (hOP(collection[i], "controls")) {
|
|
22
|
+
reindex(collection[i].controls);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
26
|
//# sourceMappingURL=funcs.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import "./web.js";
|
|
2
|
-
export { IClientsidePage, ClientsidePageFromFile, CreateClientsidePage, CanvasColumn, CanvasColumnFactor, CanvasSection, IClientsidePageComponent, ClientsidePageLayoutType, ClientsideText, ClientsideWebpart, ColumnControl, ICanvasControlBaseData, IClientControlEmphasis, IClientsideControlBaseData, IClientsidePageColumnData, IClientsidePageSettingsSlice, IClientsideTextData, IClientsideWebPartData, IPageData, LayoutType, PromotedState, TextAlignment, IBannerImageProps, } from "./types.js";
|
|
1
|
+
import "./web.js";
|
|
2
|
+
export { IClientsidePage, ClientsidePageFromFile, CreateClientsidePage, CanvasColumn, CanvasColumnFactor, CanvasSection, IClientsidePageComponent, ClientsidePageLayoutType, ClientsideText, ClientsideWebpart, ColumnControl, ICanvasControlBaseData, IClientControlEmphasis, IClientsideControlBaseData, IClientsidePageColumnData, IClientsidePageSettingsSlice, IClientsideTextData, IClientsideWebPartData, IPageData, LayoutType, PromotedState, TextAlignment, IBannerImageProps, } from "./types.js";
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import "./web.js";
|
|
2
|
-
export { ClientsidePageFromFile, CreateClientsidePage, CanvasColumn, CanvasSection, ClientsideText, ClientsideWebpart, ColumnControl, PromotedState, } from "./types.js";
|
|
1
|
+
import "./web.js";
|
|
2
|
+
export { ClientsidePageFromFile, CreateClientsidePage, CanvasColumn, CanvasSection, ClientsideText, ClientsideWebpart, ColumnControl, PromotedState, } from "./types.js";
|
|
3
3
|
//# sourceMappingURL=index.js.map
|