bruce-models 7.1.117 → 7.1.118
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/dist/bruce-models.es5.js +60 -1
- package/dist/bruce-models.es5.js.map +1 -1
- package/dist/bruce-models.umd.js +60 -1
- package/dist/bruce-models.umd.js.map +1 -1
- package/dist/lib/bruce-models.js +1 -1
- package/dist/lib/util/url-utils.js +59 -0
- package/dist/lib/util/url-utils.js.map +1 -1
- package/dist/types/bruce-models.d.ts +1 -1
- package/dist/types/util/url-utils.d.ts +21 -0
- package/package.json +1 -1
package/dist/lib/bruce-models.js
CHANGED
|
@@ -140,5 +140,5 @@ __exportStar(require("./workflow/workflow-item"), exports);
|
|
|
140
140
|
__exportStar(require("./workflow/workflow-schedule"), exports);
|
|
141
141
|
__exportStar(require("./workflow/workflow-type"), exports);
|
|
142
142
|
// This is updated with the package.json version on build.
|
|
143
|
-
exports.VERSION = "7.1.
|
|
143
|
+
exports.VERSION = "7.1.118";
|
|
144
144
|
//# sourceMappingURL=bruce-models.js.map
|
|
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.UrlUtils = void 0;
|
|
4
4
|
var UrlUtils;
|
|
5
5
|
(function (UrlUtils) {
|
|
6
|
+
// The "S:{expires}.{signature}/" segment the API puts in the path of URLs it signs.
|
|
7
|
+
const SIGNED_SEGMENT = /\/S:(\d+)\.[A-Za-z0-9_-]+\//;
|
|
6
8
|
/**
|
|
7
9
|
* Returns a url-safe string that is human readable.
|
|
8
10
|
* Eg: 'My Project View!' into 'My-Project-View'.
|
|
@@ -32,6 +34,52 @@ var UrlUtils;
|
|
|
32
34
|
return urlObj.toString();
|
|
33
35
|
}
|
|
34
36
|
UrlUtils.AddQueryParam = AddQueryParam;
|
|
37
|
+
/**
|
|
38
|
+
* Removes every occurrence of a query parameter from a url.
|
|
39
|
+
* Eg: RemoveQueryParam('http://example.com/?key=value&other=1', 'key') => 'http://example.com/?other=1'
|
|
40
|
+
* @param url absolute or relative url.
|
|
41
|
+
* @param key decoded name of the parameter to remove.
|
|
42
|
+
* @returns
|
|
43
|
+
*/
|
|
44
|
+
function RemoveQueryParam(url, key) {
|
|
45
|
+
if (!url) {
|
|
46
|
+
return url;
|
|
47
|
+
}
|
|
48
|
+
const hashStart = url.indexOf("#");
|
|
49
|
+
const hash = hashStart === -1 ? "" : url.substring(hashStart);
|
|
50
|
+
const beforeHash = hashStart === -1 ? url : url.substring(0, hashStart);
|
|
51
|
+
const queryStart = beforeHash.indexOf("?");
|
|
52
|
+
if (queryStart === -1) {
|
|
53
|
+
return url;
|
|
54
|
+
}
|
|
55
|
+
// Works on the raw string so the parameters that stay keep their exact encoding, which a signed query depends on.
|
|
56
|
+
const kept = beforeHash.substring(queryStart + 1).split("&").filter(pair => {
|
|
57
|
+
return decodeQueryName(pair.split("=")[0]) !== key;
|
|
58
|
+
});
|
|
59
|
+
const query = kept.length ? "?" + kept.join("&") : "";
|
|
60
|
+
return beforeHash.substring(0, queryStart) + query + hash;
|
|
61
|
+
}
|
|
62
|
+
UrlUtils.RemoveQueryParam = RemoveQueryParam;
|
|
63
|
+
/**
|
|
64
|
+
* Returns true when the url carries an API signature that has not expired, so it authorises itself.
|
|
65
|
+
* @param url
|
|
66
|
+
* @returns
|
|
67
|
+
*/
|
|
68
|
+
function IsSignedUrl(url) {
|
|
69
|
+
const match = url === null || url === void 0 ? void 0 : url.match(SIGNED_SEGMENT);
|
|
70
|
+
return !!match && Number(match[1]) * 1000 > Date.now();
|
|
71
|
+
}
|
|
72
|
+
UrlUtils.IsSignedUrl = IsSignedUrl;
|
|
73
|
+
/**
|
|
74
|
+
* Removes the API signature from a url.
|
|
75
|
+
* Eg: comparing two urls for the same file that were signed at different times, or a link leaving the app that should grant no more than the reader's own access.
|
|
76
|
+
* @param url
|
|
77
|
+
* @returns
|
|
78
|
+
*/
|
|
79
|
+
function RemoveSignature(url) {
|
|
80
|
+
return url ? url.replace(SIGNED_SEGMENT, "/") : url;
|
|
81
|
+
}
|
|
82
|
+
UrlUtils.RemoveSignature = RemoveSignature;
|
|
35
83
|
/**
|
|
36
84
|
* Returns a url with the provided url appended to the provided existing url.
|
|
37
85
|
* @param params
|
|
@@ -84,5 +132,16 @@ var UrlUtils;
|
|
|
84
132
|
return full;
|
|
85
133
|
}
|
|
86
134
|
UrlUtils.ConstructUrl = ConstructUrl;
|
|
135
|
+
/**
|
|
136
|
+
* Decodes a query parameter name the way URLSearchParams does, keeping the raw name when it is malformed.
|
|
137
|
+
*/
|
|
138
|
+
function decodeQueryName(name) {
|
|
139
|
+
try {
|
|
140
|
+
return decodeURIComponent(name.replace(/\+/g, " "));
|
|
141
|
+
}
|
|
142
|
+
catch (_a) {
|
|
143
|
+
return name;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
87
146
|
})(UrlUtils = exports.UrlUtils || (exports.UrlUtils = {}));
|
|
88
147
|
//# sourceMappingURL=url-utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"url-utils.js","sourceRoot":"","sources":["../../../src/util/url-utils.ts"],"names":[],"mappings":";;;AAEA,IAAiB,QAAQ,
|
|
1
|
+
{"version":3,"file":"url-utils.js","sourceRoot":"","sources":["../../../src/util/url-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -122,4 +122,4 @@ export * from "./util/url-utils";
|
|
|
122
122
|
export * from "./workflow/workflow-item";
|
|
123
123
|
export * from "./workflow/workflow-schedule";
|
|
124
124
|
export * from "./workflow/workflow-type";
|
|
125
|
-
export declare const VERSION = "7.1.
|
|
125
|
+
export declare const VERSION = "7.1.118";
|
|
@@ -16,6 +16,27 @@ export declare namespace UrlUtils {
|
|
|
16
16
|
* @returns
|
|
17
17
|
*/
|
|
18
18
|
function AddQueryParam(url: string, key: string, value: string): string;
|
|
19
|
+
/**
|
|
20
|
+
* Removes every occurrence of a query parameter from a url.
|
|
21
|
+
* Eg: RemoveQueryParam('http://example.com/?key=value&other=1', 'key') => 'http://example.com/?other=1'
|
|
22
|
+
* @param url absolute or relative url.
|
|
23
|
+
* @param key decoded name of the parameter to remove.
|
|
24
|
+
* @returns
|
|
25
|
+
*/
|
|
26
|
+
function RemoveQueryParam(url: string, key: string): string;
|
|
27
|
+
/**
|
|
28
|
+
* Returns true when the url carries an API signature that has not expired, so it authorises itself.
|
|
29
|
+
* @param url
|
|
30
|
+
* @returns
|
|
31
|
+
*/
|
|
32
|
+
function IsSignedUrl(url: string): boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Removes the API signature from a url.
|
|
35
|
+
* Eg: comparing two urls for the same file that were signed at different times, or a link leaving the app that should grant no more than the reader's own access.
|
|
36
|
+
* @param url
|
|
37
|
+
* @returns
|
|
38
|
+
*/
|
|
39
|
+
function RemoveSignature(url: string): string;
|
|
19
40
|
/**
|
|
20
41
|
* Returns a url with the provided url appended to the provided existing url.
|
|
21
42
|
* @param params
|