exacturi 1.0.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.md +7 -0
- package/README.md +2 -0
- package/dist/cjs/errors.d.ts +11 -0
- package/dist/cjs/errors.d.ts.map +1 -0
- package/dist/cjs/errors.js +39 -0
- package/dist/cjs/errors.js.map +1 -0
- package/dist/cjs/exacturi.d.ts +91 -0
- package/dist/cjs/exacturi.d.ts.map +1 -0
- package/dist/cjs/exacturi.js +332 -0
- package/dist/cjs/exacturi.js.map +1 -0
- package/dist/cjs/index.d.ts +29 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +19 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/parts.d.ts +15 -0
- package/dist/cjs/parts.d.ts.map +1 -0
- package/dist/cjs/parts.js +3 -0
- package/dist/cjs/parts.js.map +1 -0
- package/dist/cjs/reuri.d.ts +92 -0
- package/dist/cjs/reuri.d.ts.map +1 -0
- package/dist/cjs/reuri.js +345 -0
- package/dist/cjs/reuri.js.map +1 -0
- package/dist/cjs/utils.d.ts +3 -0
- package/dist/cjs/utils.d.ts.map +1 -0
- package/dist/cjs/utils.js +45 -0
- package/dist/cjs/utils.js.map +1 -0
- package/dist/esm/errors.d.ts +11 -0
- package/dist/esm/errors.d.ts.map +1 -0
- package/dist/esm/errors.js +28 -0
- package/dist/esm/errors.js.map +1 -0
- package/dist/esm/exacturi.d.ts +91 -0
- package/dist/esm/exacturi.d.ts.map +1 -0
- package/dist/esm/exacturi.js +328 -0
- package/dist/esm/exacturi.js.map +1 -0
- package/dist/esm/index.d.ts +29 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +13 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/parts.d.ts +15 -0
- package/dist/esm/parts.d.ts.map +1 -0
- package/dist/esm/parts.js +2 -0
- package/dist/esm/parts.js.map +1 -0
- package/dist/esm/reuri.d.ts +92 -0
- package/dist/esm/reuri.d.ts.map +1 -0
- package/dist/esm/reuri.js +341 -0
- package/dist/esm/reuri.js.map +1 -0
- package/dist/esm/utils.d.ts +3 -0
- package/dist/esm/utils.d.ts.map +1 -0
- package/dist/esm/utils.js +41 -0
- package/dist/esm/utils.js.map +1 -0
- package/dist/lib/errors.d.ts +14 -0
- package/dist/lib/errors.d.ts.map +1 -0
- package/dist/lib/errors.js +52 -0
- package/dist/lib/index.d.ts +31 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +20 -0
- package/dist/lib/parts.d.ts +18 -0
- package/dist/lib/parts.d.ts.map +1 -0
- package/dist/lib/parts.js +3 -0
- package/dist/lib/payload.d.ts +17 -0
- package/dist/lib/payload.d.ts.map +1 -0
- package/dist/lib/payload.js +126 -0
- package/dist/lib/reuri.d.ts +127 -0
- package/dist/lib/reuri.d.ts.map +1 -0
- package/dist/lib/reuri.js +457 -0
- package/dist/lib/utils.d.ts +2 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +26 -0
- package/dist/test/basic.test.js +319 -0
- package/dist/test/basic.test.js.map +1 -0
- package/dist/test/extras.test.js +77 -0
- package/dist/test/extras.test.js.map +1 -0
- package/dist/test/matching.test.js +80 -0
- package/dist/test/matching.test.js.map +1 -0
- package/package.json +101 -0
- package/src/errors.ts +31 -0
- package/src/exacturi.ts +444 -0
- package/src/index.ts +37 -0
- package/src/parts.ts +29 -0
- package/src/utils.ts +42 -0
|
@@ -0,0 +1,341 @@
|
|
|
1
|
+
import { ExactUriError, inputMustBeString, inputMustBeUrl, portMustBeNumeric } from "./errors.js";
|
|
2
|
+
import { hostnameContains } from "./utils.js";
|
|
3
|
+
/**
|
|
4
|
+
* Represents a URI and allows performing operations and inspecting it.
|
|
5
|
+
*
|
|
6
|
+
* This class is immutable.
|
|
7
|
+
*/
|
|
8
|
+
export class ExactUri {
|
|
9
|
+
// Lots of params needed here
|
|
10
|
+
// eslint-disable-next-line max-params
|
|
11
|
+
constructor(_protocol, _hostname, _path, _query, _hash, _parsed, _port) {
|
|
12
|
+
this._protocol = _protocol;
|
|
13
|
+
this._hostname = _hostname;
|
|
14
|
+
this._path = _path;
|
|
15
|
+
this._query = _query;
|
|
16
|
+
this._hash = _hash;
|
|
17
|
+
this._parsed = _parsed;
|
|
18
|
+
this._port = _port;
|
|
19
|
+
if (_hostname) {
|
|
20
|
+
this._hostname = _hostname.replace("_", ".");
|
|
21
|
+
if (this._hostname.includes("_")) {
|
|
22
|
+
console.warn(`The hostname contains multiple underscores, which might not be intended. Current hostname: ${this._hostname}`);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
this[0] = this._print();
|
|
26
|
+
}
|
|
27
|
+
static isExactUri(other) {
|
|
28
|
+
return !!(other &&
|
|
29
|
+
typeof other === "object" &&
|
|
30
|
+
other.constructor &&
|
|
31
|
+
"__isExactUri" in other.constructor);
|
|
32
|
+
}
|
|
33
|
+
segments(overwrite) {
|
|
34
|
+
if (arguments.length === 0) {
|
|
35
|
+
return this._path.split("/");
|
|
36
|
+
}
|
|
37
|
+
const clone = this._noCopyClone();
|
|
38
|
+
clone._path = overwrite.join("/");
|
|
39
|
+
return clone;
|
|
40
|
+
}
|
|
41
|
+
merge(other) {
|
|
42
|
+
if (typeof other === "string") {
|
|
43
|
+
return this.merge(ExactUri.parse(other));
|
|
44
|
+
}
|
|
45
|
+
return this.parts({
|
|
46
|
+
hash: other._hash || this._hash,
|
|
47
|
+
hostname: other._hostname || this._hostname,
|
|
48
|
+
path: other._path || this._path,
|
|
49
|
+
port: other._port || this._port,
|
|
50
|
+
protocol: other._protocol || this._protocol,
|
|
51
|
+
query: other._query || this._query
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
pick(...keys) {
|
|
55
|
+
let result = ExactUri.empty();
|
|
56
|
+
for (const key of keys) {
|
|
57
|
+
result = result.part(key, this.part(key));
|
|
58
|
+
}
|
|
59
|
+
return result;
|
|
60
|
+
}
|
|
61
|
+
parts(overwrite) {
|
|
62
|
+
if (arguments.length === 0) {
|
|
63
|
+
return {
|
|
64
|
+
protocol: this._protocol,
|
|
65
|
+
hostname: this._hostname,
|
|
66
|
+
port: this._port,
|
|
67
|
+
path: this._path,
|
|
68
|
+
query: this._query,
|
|
69
|
+
hash: this._hash
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
if (!overwrite) {
|
|
73
|
+
return this;
|
|
74
|
+
}
|
|
75
|
+
const clone = this._noCopyClone();
|
|
76
|
+
clone._protocol = "protocol" in overwrite ? overwrite.protocol : clone._protocol;
|
|
77
|
+
clone._hostname = "hostname" in overwrite ? overwrite.hostname : clone._hostname;
|
|
78
|
+
clone._port = "port" in overwrite ? overwrite.port : clone._port;
|
|
79
|
+
clone._path = "path" in overwrite ? overwrite.path : clone._path;
|
|
80
|
+
clone._query = "query" in overwrite ? overwrite.query : clone._query;
|
|
81
|
+
clone._hash = "hash" in overwrite ? overwrite.hash : clone._hash;
|
|
82
|
+
return clone;
|
|
83
|
+
}
|
|
84
|
+
part(key, value) {
|
|
85
|
+
if (arguments.length === 1) {
|
|
86
|
+
const result = this[key]();
|
|
87
|
+
return result != null ? String(result) : undefined;
|
|
88
|
+
}
|
|
89
|
+
return this[key](value);
|
|
90
|
+
}
|
|
91
|
+
address(address) {
|
|
92
|
+
if (arguments.length === 1) {
|
|
93
|
+
const parsed = ExactUri.parse(address);
|
|
94
|
+
return parsed.parts({
|
|
95
|
+
protocol: this._protocol
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
return this.parts({
|
|
99
|
+
protocol: undefined
|
|
100
|
+
}).href;
|
|
101
|
+
}
|
|
102
|
+
resource(resource) {
|
|
103
|
+
if (arguments.length === 1) {
|
|
104
|
+
const parsed = ExactUri.parse(resource);
|
|
105
|
+
return parsed.parts({
|
|
106
|
+
protocol: this._protocol,
|
|
107
|
+
hostname: this._hostname,
|
|
108
|
+
port: this._port
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
return this.parts({
|
|
112
|
+
protocol: undefined,
|
|
113
|
+
hostname: undefined,
|
|
114
|
+
port: undefined
|
|
115
|
+
}).href;
|
|
116
|
+
}
|
|
117
|
+
origin(origin) {
|
|
118
|
+
if (arguments.length === 1) {
|
|
119
|
+
const parsed = ExactUri.parse(origin);
|
|
120
|
+
return this.parts({
|
|
121
|
+
protocol: parsed._protocol,
|
|
122
|
+
hostname: parsed._hostname,
|
|
123
|
+
port: parsed._port
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
const parts = this.parts();
|
|
127
|
+
return (ExactUri.empty().parts({
|
|
128
|
+
protocol: parts.protocol,
|
|
129
|
+
hostname: parts.hostname,
|
|
130
|
+
port: parts.port
|
|
131
|
+
}).href || undefined);
|
|
132
|
+
}
|
|
133
|
+
segment(index, value) {
|
|
134
|
+
if (arguments.length === 0) {
|
|
135
|
+
throw new ExactUriError(`You must provide an index.`);
|
|
136
|
+
}
|
|
137
|
+
if (arguments.length === 1) {
|
|
138
|
+
return this._path.split("/")[index];
|
|
139
|
+
}
|
|
140
|
+
const segments = this.segments();
|
|
141
|
+
segments[index] = value;
|
|
142
|
+
return this.segments(segments);
|
|
143
|
+
}
|
|
144
|
+
path(path) {
|
|
145
|
+
if (arguments.length === 0) {
|
|
146
|
+
return this._path;
|
|
147
|
+
}
|
|
148
|
+
const clone = this._noCopyClone();
|
|
149
|
+
clone._path = path ?? "";
|
|
150
|
+
return clone;
|
|
151
|
+
}
|
|
152
|
+
port(port) {
|
|
153
|
+
if (arguments.length === 0) {
|
|
154
|
+
return this._port != null ? Number(this._port) : undefined;
|
|
155
|
+
}
|
|
156
|
+
if (port === true) {
|
|
157
|
+
return this._port;
|
|
158
|
+
}
|
|
159
|
+
const clone = this._noCopyClone();
|
|
160
|
+
clone._port = port != null ? String(port) : undefined;
|
|
161
|
+
return clone;
|
|
162
|
+
}
|
|
163
|
+
protocol(proto) {
|
|
164
|
+
if (arguments.length === 0) {
|
|
165
|
+
return this._protocol;
|
|
166
|
+
}
|
|
167
|
+
const clone = this._noCopyClone();
|
|
168
|
+
clone._protocol = proto ?? undefined;
|
|
169
|
+
return clone;
|
|
170
|
+
}
|
|
171
|
+
host(host) {
|
|
172
|
+
if (arguments.length === 0) {
|
|
173
|
+
return (ExactUri.empty().hostname(this._hostname).port(this._port).href.slice(2) ||
|
|
174
|
+
undefined);
|
|
175
|
+
}
|
|
176
|
+
if (host == null) {
|
|
177
|
+
return this.hostname(null).port(null);
|
|
178
|
+
}
|
|
179
|
+
const parsed = ExactUri.parse(`//${host}`);
|
|
180
|
+
return this.hostname(parsed._hostname).port(parsed._port);
|
|
181
|
+
}
|
|
182
|
+
hostname(hostname) {
|
|
183
|
+
if (arguments.length === 0) {
|
|
184
|
+
return this._hostname;
|
|
185
|
+
}
|
|
186
|
+
const clone = this._noCopyClone();
|
|
187
|
+
clone._hostname = hostname ?? undefined;
|
|
188
|
+
return clone;
|
|
189
|
+
}
|
|
190
|
+
query(query) {
|
|
191
|
+
if (arguments.length === 0) {
|
|
192
|
+
return this._query;
|
|
193
|
+
}
|
|
194
|
+
const clone = this._noCopyClone();
|
|
195
|
+
clone._query = query ?? undefined;
|
|
196
|
+
return clone;
|
|
197
|
+
}
|
|
198
|
+
hash(hash) {
|
|
199
|
+
if (arguments.length === 0) {
|
|
200
|
+
return this._hash;
|
|
201
|
+
}
|
|
202
|
+
const clone = this._noCopyClone();
|
|
203
|
+
clone._hash = hash ?? undefined;
|
|
204
|
+
return clone;
|
|
205
|
+
}
|
|
206
|
+
_noCopyClone() {
|
|
207
|
+
return new ExactUri(this._protocol, this._hostname, this._path, this._query, this._hash, this._parsed, this._port);
|
|
208
|
+
}
|
|
209
|
+
// Does this URL have a web protocol?
|
|
210
|
+
get isWeb() {
|
|
211
|
+
return !!this._protocol && webProtocols.has(this._protocol);
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Gets a clone of this instance.
|
|
215
|
+
*/
|
|
216
|
+
clone() {
|
|
217
|
+
return new ExactUri(this._protocol, this._hostname, this._path, this._query, this._hash, this._parsed, this._port);
|
|
218
|
+
}
|
|
219
|
+
static empty() {
|
|
220
|
+
return new ExactUri(undefined, undefined, "", undefined, undefined, undefined, undefined);
|
|
221
|
+
}
|
|
222
|
+
static parse(input) {
|
|
223
|
+
if (input == null) {
|
|
224
|
+
return ExactUri.empty();
|
|
225
|
+
}
|
|
226
|
+
if (input instanceof ExactUri) {
|
|
227
|
+
return input;
|
|
228
|
+
}
|
|
229
|
+
if (typeof input === "object") {
|
|
230
|
+
return ExactUri.empty().parts(input);
|
|
231
|
+
}
|
|
232
|
+
if (typeof input !== "string") {
|
|
233
|
+
throw inputMustBeString(input);
|
|
234
|
+
}
|
|
235
|
+
const r = urlRegexp.exec(input);
|
|
236
|
+
if (!r) {
|
|
237
|
+
throw inputMustBeUrl(input);
|
|
238
|
+
}
|
|
239
|
+
const [, proto, hostname, port, path, query, fragment] = r;
|
|
240
|
+
if (port != null && (Number.isNaN(+port) || port === "")) {
|
|
241
|
+
throw portMustBeNumeric(input);
|
|
242
|
+
}
|
|
243
|
+
return new ExactUri(proto?.trim(), hostname?.trim(), path?.trim() ?? "", query?.trim(), fragment?.trim(), input, port);
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Checks if this URI (CHILD) matches another URI (PARENT). The parent can be a string,
|
|
247
|
+
* an {@link ExactUri}, or an object describing the parts of a URI -- an {@link ExactUriParts}.
|
|
248
|
+
*
|
|
249
|
+
* CHILD is considered to be a child of PARENT if:
|
|
250
|
+
* 1. If PARENT has a protocol, it must equal CHILD protocol.
|
|
251
|
+
* 2. If PARENT has a hostname, it must be a parent of CHILD's hostname.
|
|
252
|
+
* 3. If PARENT has a port, it must equal CHILD's port.
|
|
253
|
+
* 4. If PARENT has a path, it must be a parent of CHILD's path.
|
|
254
|
+
* 5. If PARENT has a query, it must equal CHILD's query.
|
|
255
|
+
* 6. If PARENT has a hash, it must equal CHILD's hash.
|
|
256
|
+
* @param parent The parent URI to check against.
|
|
257
|
+
*/
|
|
258
|
+
matches(parent) {
|
|
259
|
+
parent = ExactUri.parse(parent);
|
|
260
|
+
if (parent._protocol && parent._protocol !== this._protocol) {
|
|
261
|
+
return false;
|
|
262
|
+
}
|
|
263
|
+
if (parent._hostname && !hostnameContains(this._hostname, parent._hostname)) {
|
|
264
|
+
return false;
|
|
265
|
+
}
|
|
266
|
+
if (parent._port && parent._port !== this._port) {
|
|
267
|
+
return false;
|
|
268
|
+
}
|
|
269
|
+
if (parent._query && parent._query !== this._query) {
|
|
270
|
+
return false;
|
|
271
|
+
}
|
|
272
|
+
if (parent._hash && parent._hash !== this._hash) {
|
|
273
|
+
return false;
|
|
274
|
+
}
|
|
275
|
+
const parentSegments = parent.segments();
|
|
276
|
+
const childSegments = this.segments();
|
|
277
|
+
for (let i = 0; i < parentSegments.length; i++) {
|
|
278
|
+
if (parentSegments[i] !== childSegments[i]) {
|
|
279
|
+
return false;
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
return true;
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* Checks if this URI equals another URI, which can be given as a string, an
|
|
286
|
+
* {@link ExactUri}, or an object describing the parts of a URI -- an {@link ExactUriParts}.
|
|
287
|
+
* @param other The other URI to check against.
|
|
288
|
+
*/
|
|
289
|
+
equal(other) {
|
|
290
|
+
if (this === other) {
|
|
291
|
+
return true;
|
|
292
|
+
}
|
|
293
|
+
other = ExactUri.parse(other);
|
|
294
|
+
const myParts = this.parts();
|
|
295
|
+
const otherParts = other.parts();
|
|
296
|
+
for (const key of ["protocol", "hostname", "port", "path", "query", "hash"]) {
|
|
297
|
+
if (myParts[key] !== otherParts[key]) {
|
|
298
|
+
return false;
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
return true;
|
|
302
|
+
}
|
|
303
|
+
// An artificial URI is one that can't have been parsed from a string due to an invalid combination of components.
|
|
304
|
+
get isArtificial() {
|
|
305
|
+
return !ExactUri.parse(this._print()).equal(this);
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* Does this URL have a non-web protocol?
|
|
309
|
+
*/
|
|
310
|
+
get isNonWeb() {
|
|
311
|
+
return !!this._protocol && !webProtocols.has(this._protocol);
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* Gets the full URI.
|
|
315
|
+
*/
|
|
316
|
+
get href() {
|
|
317
|
+
return this._print();
|
|
318
|
+
}
|
|
319
|
+
_print() {
|
|
320
|
+
let { _protocol, _hostname, _query, _hash } = this;
|
|
321
|
+
const { _port } = this;
|
|
322
|
+
_protocol = _protocol != null ? `${_protocol}:` : _protocol;
|
|
323
|
+
_hostname = _hostname != null ? `//${_hostname}` : "";
|
|
324
|
+
_query = _query != null ? `?${_query}` : "";
|
|
325
|
+
_hash = _hash != null ? `#${_hash}` : "";
|
|
326
|
+
const strPort = _port != null ? `:${_port}` : "";
|
|
327
|
+
return [_protocol, _hostname, strPort, this._path, _query, _hash].join("");
|
|
328
|
+
}
|
|
329
|
+
get [Symbol.toStringTag]() {
|
|
330
|
+
return this.href;
|
|
331
|
+
}
|
|
332
|
+
toString() {
|
|
333
|
+
return this.href;
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
const urlRegexp = /^(?:([a-zA-Z][A-Za-z\d+-.]*):)?(?:\/\/([^/?#:]*)(?::([^/?#]*))?)?([^?#]*)?(?:\?([^#]*))?(?:#(.*))?$/;
|
|
337
|
+
const webProtocols = new Set(["http", "ws", "https", "wss"]);
|
|
338
|
+
Object.defineProperty(ExactUri, "__isExactUri", {
|
|
339
|
+
value: true
|
|
340
|
+
});
|
|
341
|
+
//# sourceMappingURL=reuri.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reuri.js","sourceRoot":"","sources":["../../src/reuri.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,WAmBzE;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,OAAO,CAoB7C"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export function hostnameContains(child, parent) {
|
|
2
|
+
if (!child) {
|
|
3
|
+
return false;
|
|
4
|
+
}
|
|
5
|
+
const parentParts = parent.split(".").reverse();
|
|
6
|
+
const childParts = child.split(".").reverse();
|
|
7
|
+
if (parentParts.length > childParts.length) {
|
|
8
|
+
return false;
|
|
9
|
+
}
|
|
10
|
+
for (let i = 0; i < parentParts.length; i++) {
|
|
11
|
+
if (!parentParts[i]) {
|
|
12
|
+
continue;
|
|
13
|
+
}
|
|
14
|
+
if (childParts[i] !== parentParts[i]) {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
export function equal(a, b) {
|
|
21
|
+
if (!a || typeof a !== "object" || !b || typeof b !== "object") {
|
|
22
|
+
return a === b;
|
|
23
|
+
}
|
|
24
|
+
const aProto = Object.getPrototypeOf(a);
|
|
25
|
+
const bProto = Object.getPrototypeOf(b);
|
|
26
|
+
if (aProto !== bProto) {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
const aKeys = Object.keys(a);
|
|
30
|
+
const bKeys = Object.keys(b);
|
|
31
|
+
if (aKeys.length !== bKeys.length) {
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
for (const key of aKeys) {
|
|
35
|
+
if (a[key] !== b[key]) {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,gBAAgB,CAAC,KAAyB,EAAE,MAAc;IACtE,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IAChD,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IAC9C,IAAI,WAAW,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;QACzC,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;YAClB,SAAS;QACb,CAAC;QACD,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;YACnC,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,CAAM,EAAE,CAAM;IAChC,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC7D,OAAO,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IACxC,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACpB,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7B,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare class ReUriError extends Error {
|
|
2
|
+
name: string;
|
|
3
|
+
}
|
|
4
|
+
export declare function badInputError(input: any, reason: string): ReUriError;
|
|
5
|
+
export declare function tooManyPayloads(input: string, n: number): ReUriError;
|
|
6
|
+
export declare function payloadMustBeObject(payload: any): ReUriError;
|
|
7
|
+
export declare function inputMustBeString(input: unknown): ReUriError;
|
|
8
|
+
export declare function cantSerializeArtificialUrl(url: string): ReUriError;
|
|
9
|
+
export declare function invalidCharacter(input: string, char: string, reason: string): ReUriError;
|
|
10
|
+
export declare function portMustBeNumeric(input: string): ReUriError;
|
|
11
|
+
export declare function inputMustBeUrl(input: string): ReUriError;
|
|
12
|
+
export declare function payloadBadValueType(key: string, value: unknown): ReUriError;
|
|
13
|
+
export declare function cantCompareType(value: unknown): ReUriError;
|
|
14
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/lib/errors.ts"],"names":[],"mappings":"AAEA,qBAAa,UAAW,SAAQ,KAAK;IACjC,IAAI,SAAgB;CACvB;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,cAEvD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,cAEvD;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,GAAG,cAE/C;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,cAE/C;AAED,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,cAErD;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,cAK3E;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,cAE9C;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,cAE3C;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,cAI9D;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,cAE7C"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cantCompareType = exports.payloadBadValueType = exports.inputMustBeUrl = exports.portMustBeNumeric = exports.invalidCharacter = exports.cantSerializeArtificialUrl = exports.inputMustBeString = exports.payloadMustBeObject = exports.tooManyPayloads = exports.badInputError = exports.ReUriError = void 0;
|
|
4
|
+
const text_1 = require("@reflectiz/text");
|
|
5
|
+
class ReUriError extends Error {
|
|
6
|
+
constructor() {
|
|
7
|
+
super(...arguments);
|
|
8
|
+
this.name = "ReuriError";
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.ReUriError = ReUriError;
|
|
12
|
+
function badInputError(input, reason) {
|
|
13
|
+
return new ReUriError(`Received bad input ${input}. ${reason}`);
|
|
14
|
+
}
|
|
15
|
+
exports.badInputError = badInputError;
|
|
16
|
+
function tooManyPayloads(input, n) {
|
|
17
|
+
return badInputError(input, (0, text_1.prettyline) `Received ${n} payloads. Cannot receive more than 1.`);
|
|
18
|
+
}
|
|
19
|
+
exports.tooManyPayloads = tooManyPayloads;
|
|
20
|
+
function payloadMustBeObject(payload) {
|
|
21
|
+
return new ReUriError((0, text_1.prettyline) `Payload must be an object, but it was a ${typeof payload}.`);
|
|
22
|
+
}
|
|
23
|
+
exports.payloadMustBeObject = payloadMustBeObject;
|
|
24
|
+
function inputMustBeString(input) {
|
|
25
|
+
return badInputError(input, (0, text_1.prettyline) `Input must be a string, but was a ${typeof input}`);
|
|
26
|
+
}
|
|
27
|
+
exports.inputMustBeString = inputMustBeString;
|
|
28
|
+
function cantSerializeArtificialUrl(url) {
|
|
29
|
+
return new ReUriError(`This URL is artificial and can't be serialized. Looks like: ${url}`);
|
|
30
|
+
}
|
|
31
|
+
exports.cantSerializeArtificialUrl = cantSerializeArtificialUrl;
|
|
32
|
+
function invalidCharacter(input, char, reason) {
|
|
33
|
+
return badInputError(input, (0, text_1.prettyline) `The character ${char} was unexpected because ${reason}.`);
|
|
34
|
+
}
|
|
35
|
+
exports.invalidCharacter = invalidCharacter;
|
|
36
|
+
function portMustBeNumeric(input) {
|
|
37
|
+
return badInputError(input, "Port must be numeric.");
|
|
38
|
+
}
|
|
39
|
+
exports.portMustBeNumeric = portMustBeNumeric;
|
|
40
|
+
function inputMustBeUrl(input) {
|
|
41
|
+
return badInputError(input, "Input failed to parse.");
|
|
42
|
+
}
|
|
43
|
+
exports.inputMustBeUrl = inputMustBeUrl;
|
|
44
|
+
function payloadBadValueType(key, value) {
|
|
45
|
+
return new ReUriError((0, text_1.prettyline) `Payload values can be true or string, but ${key} is a ${typeof value}.`);
|
|
46
|
+
}
|
|
47
|
+
exports.payloadBadValueType = payloadBadValueType;
|
|
48
|
+
function cantCompareType(value) {
|
|
49
|
+
return new ReUriError((0, text_1.prettyline) `Can't compare this URI to a value ${value}`);
|
|
50
|
+
}
|
|
51
|
+
exports.cantCompareType = cantCompareType;
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMENBQTZDO0FBRTdDLE1BQWEsVUFBVyxTQUFRLEtBQUs7SUFBckM7O1FBQ0ksU0FBSSxHQUFHLFlBQVksQ0FBQztJQUN4QixDQUFDO0NBQUE7QUFGRCxnQ0FFQztBQUVELFNBQWdCLGFBQWEsQ0FBQyxLQUFVLEVBQUUsTUFBYztJQUNwRCxPQUFPLElBQUksVUFBVSxDQUFDLHNCQUFzQixLQUFLLEtBQUssTUFBTSxFQUFFLENBQUMsQ0FBQztBQUNwRSxDQUFDO0FBRkQsc0NBRUM7QUFFRCxTQUFnQixlQUFlLENBQUMsS0FBYSxFQUFFLENBQVM7SUFDcEQsT0FBTyxhQUFhLENBQUMsS0FBSyxFQUFFLElBQUEsaUJBQVUsRUFBQSxZQUFZLENBQUMsd0NBQXdDLENBQUMsQ0FBQztBQUNqRyxDQUFDO0FBRkQsMENBRUM7QUFFRCxTQUFnQixtQkFBbUIsQ0FBQyxPQUFZO0lBQzVDLE9BQU8sSUFBSSxVQUFVLENBQUMsSUFBQSxpQkFBVSxFQUFBLDJDQUEyQyxPQUFPLE9BQU8sR0FBRyxDQUFDLENBQUM7QUFDbEcsQ0FBQztBQUZELGtEQUVDO0FBRUQsU0FBZ0IsaUJBQWlCLENBQUMsS0FBYztJQUM1QyxPQUFPLGFBQWEsQ0FBQyxLQUFLLEVBQUUsSUFBQSxpQkFBVSxFQUFBLHFDQUFxQyxPQUFPLEtBQUssRUFBRSxDQUFDLENBQUM7QUFDL0YsQ0FBQztBQUZELDhDQUVDO0FBRUQsU0FBZ0IsMEJBQTBCLENBQUMsR0FBVztJQUNsRCxPQUFPLElBQUksVUFBVSxDQUFDLCtEQUErRCxHQUFHLEVBQUUsQ0FBQyxDQUFDO0FBQ2hHLENBQUM7QUFGRCxnRUFFQztBQUVELFNBQWdCLGdCQUFnQixDQUFDLEtBQWEsRUFBRSxJQUFZLEVBQUUsTUFBYztJQUN4RSxPQUFPLGFBQWEsQ0FDaEIsS0FBSyxFQUNMLElBQUEsaUJBQVUsRUFBQSxpQkFBaUIsSUFBSSwyQkFBMkIsTUFBTSxHQUFHLENBQ3RFLENBQUM7QUFDTixDQUFDO0FBTEQsNENBS0M7QUFFRCxTQUFnQixpQkFBaUIsQ0FBQyxLQUFhO0lBQzNDLE9BQU8sYUFBYSxDQUFDLEtBQUssRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO0FBQ3pELENBQUM7QUFGRCw4Q0FFQztBQUVELFNBQWdCLGNBQWMsQ0FBQyxLQUFhO0lBQ3hDLE9BQU8sYUFBYSxDQUFDLEtBQUssRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO0FBQzFELENBQUM7QUFGRCx3Q0FFQztBQUVELFNBQWdCLG1CQUFtQixDQUFDLEdBQVcsRUFBRSxLQUFjO0lBQzNELE9BQU8sSUFBSSxVQUFVLENBQ2pCLElBQUEsaUJBQVUsRUFBQSw2Q0FBNkMsR0FBRyxTQUFTLE9BQU8sS0FBSyxHQUFHLENBQ3JGLENBQUM7QUFDTixDQUFDO0FBSkQsa0RBSUM7QUFFRCxTQUFnQixlQUFlLENBQUMsS0FBYztJQUMxQyxPQUFPLElBQUksVUFBVSxDQUFDLElBQUEsaUJBQVUsRUFBQSxxQ0FBcUMsS0FBSyxFQUFFLENBQUMsQ0FBQztBQUNsRixDQUFDO0FBRkQsMENBRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwcmV0dHlsaW5lIH0gZnJvbSBcIkByZWZsZWN0aXovdGV4dFwiO1xuXG5leHBvcnQgY2xhc3MgUmVVcmlFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICBuYW1lID0gXCJSZXVyaUVycm9yXCI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBiYWRJbnB1dEVycm9yKGlucHV0OiBhbnksIHJlYXNvbjogc3RyaW5nKSB7XG4gICAgcmV0dXJuIG5ldyBSZVVyaUVycm9yKGBSZWNlaXZlZCBiYWQgaW5wdXQgJHtpbnB1dH0uICR7cmVhc29ufWApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9vTWFueVBheWxvYWRzKGlucHV0OiBzdHJpbmcsIG46IG51bWJlcikge1xuICAgIHJldHVybiBiYWRJbnB1dEVycm9yKGlucHV0LCBwcmV0dHlsaW5lYFJlY2VpdmVkICR7bn0gcGF5bG9hZHMuIENhbm5vdCByZWNlaXZlIG1vcmUgdGhhbiAxLmApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGF5bG9hZE11c3RCZU9iamVjdChwYXlsb2FkOiBhbnkpIHtcbiAgICByZXR1cm4gbmV3IFJlVXJpRXJyb3IocHJldHR5bGluZWBQYXlsb2FkIG11c3QgYmUgYW4gb2JqZWN0LCBidXQgaXQgd2FzIGEgJHt0eXBlb2YgcGF5bG9hZH0uYCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnB1dE11c3RCZVN0cmluZyhpbnB1dDogdW5rbm93bikge1xuICAgIHJldHVybiBiYWRJbnB1dEVycm9yKGlucHV0LCBwcmV0dHlsaW5lYElucHV0IG11c3QgYmUgYSBzdHJpbmcsIGJ1dCB3YXMgYSAke3R5cGVvZiBpbnB1dH1gKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNhbnRTZXJpYWxpemVBcnRpZmljaWFsVXJsKHVybDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIG5ldyBSZVVyaUVycm9yKGBUaGlzIFVSTCBpcyBhcnRpZmljaWFsIGFuZCBjYW4ndCBiZSBzZXJpYWxpemVkLiBMb29rcyBsaWtlOiAke3VybH1gKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGludmFsaWRDaGFyYWN0ZXIoaW5wdXQ6IHN0cmluZywgY2hhcjogc3RyaW5nLCByZWFzb246IHN0cmluZykge1xuICAgIHJldHVybiBiYWRJbnB1dEVycm9yKFxuICAgICAgICBpbnB1dCxcbiAgICAgICAgcHJldHR5bGluZWBUaGUgY2hhcmFjdGVyICR7Y2hhcn0gd2FzIHVuZXhwZWN0ZWQgYmVjYXVzZSAke3JlYXNvbn0uYFxuICAgICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwb3J0TXVzdEJlTnVtZXJpYyhpbnB1dDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJhZElucHV0RXJyb3IoaW5wdXQsIFwiUG9ydCBtdXN0IGJlIG51bWVyaWMuXCIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5wdXRNdXN0QmVVcmwoaW5wdXQ6IHN0cmluZykge1xuICAgIHJldHVybiBiYWRJbnB1dEVycm9yKGlucHV0LCBcIklucHV0IGZhaWxlZCB0byBwYXJzZS5cIik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXlsb2FkQmFkVmFsdWVUeXBlKGtleTogc3RyaW5nLCB2YWx1ZTogdW5rbm93bikge1xuICAgIHJldHVybiBuZXcgUmVVcmlFcnJvcihcbiAgICAgICAgcHJldHR5bGluZWBQYXlsb2FkIHZhbHVlcyBjYW4gYmUgdHJ1ZSBvciBzdHJpbmcsIGJ1dCAke2tleX0gaXMgYSAke3R5cGVvZiB2YWx1ZX0uYFxuICAgICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjYW50Q29tcGFyZVR5cGUodmFsdWU6IHVua25vd24pIHtcbiAgICByZXR1cm4gbmV3IFJlVXJpRXJyb3IocHJldHR5bGluZWBDYW4ndCBjb21wYXJlIHRoaXMgVVJJIHRvIGEgdmFsdWUgJHt2YWx1ZX1gKTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { ReUri } from "./reuri";
|
|
2
|
+
import { Payload } from "./payload";
|
|
3
|
+
import { ReUriParts } from "./parts";
|
|
4
|
+
export { ReUri, DEBUG } from "./reuri";
|
|
5
|
+
/**
|
|
6
|
+
* Creates an empty ReUri object with no payload.
|
|
7
|
+
*/
|
|
8
|
+
export declare function reuri(): ReUri<undefined>;
|
|
9
|
+
/**
|
|
10
|
+
* Creates a ReUri object from a {@link ReUriParts} describing the parts of the URI.
|
|
11
|
+
* @param parts The parts of the URI.
|
|
12
|
+
*/
|
|
13
|
+
export declare function reuri<TPay extends Payload | undefined>(parts: Partial<ReUriParts<TPay>>): ReUri<TPay>;
|
|
14
|
+
/**
|
|
15
|
+
* Returns the same ReUri object that was passed in.
|
|
16
|
+
* @param uri
|
|
17
|
+
*/
|
|
18
|
+
export declare function reuri<TPay extends Payload | undefined>(uri: ReUri<TPay>): ReUri<TPay>;
|
|
19
|
+
/**
|
|
20
|
+
* Parses a string into a ReUri object.
|
|
21
|
+
* @param uri The string to parse.
|
|
22
|
+
*/
|
|
23
|
+
export declare function reuri<TPay extends Payload | undefined>(uri: string): ReUri<TPay>;
|
|
24
|
+
/**
|
|
25
|
+
* Returns true if the given value is a ReUri object.
|
|
26
|
+
* @param uri The value to check.
|
|
27
|
+
*/
|
|
28
|
+
export declare function isReuri(uri: unknown): uri is ReUri<Payload | undefined>;
|
|
29
|
+
export { Payload } from "./payload";
|
|
30
|
+
export { Protocol } from "./parts";
|
|
31
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEvC;;GAEG;AACH,wBAAgB,KAAK,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;AAC1C;;;GAGG;AACH,wBAAgB,KAAK,CAAC,IAAI,SAAS,OAAO,GAAG,SAAS,EAClD,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GACjC,KAAK,CAAC,IAAI,CAAC,CAAC;AACf;;;GAGG;AACH,wBAAgB,KAAK,CAAC,IAAI,SAAS,OAAO,GAAG,SAAS,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;AACvF;;;GAGG;AACH,wBAAgB,KAAK,CAAC,IAAI,SAAS,OAAO,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;AAOlF;;;GAGG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC,CAEvE;AACD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isReuri = exports.reuri = exports.DEBUG = exports.ReUri = void 0;
|
|
4
|
+
const reuri_1 = require("./reuri");
|
|
5
|
+
var reuri_2 = require("./reuri");
|
|
6
|
+
Object.defineProperty(exports, "ReUri", { enumerable: true, get: function () { return reuri_2.ReUri; } });
|
|
7
|
+
Object.defineProperty(exports, "DEBUG", { enumerable: true, get: function () { return reuri_2.DEBUG; } });
|
|
8
|
+
function reuri(uri) {
|
|
9
|
+
return reuri_1.ReUri.parse(uri);
|
|
10
|
+
}
|
|
11
|
+
exports.reuri = reuri;
|
|
12
|
+
/**
|
|
13
|
+
* Returns true if the given value is a ReUri object.
|
|
14
|
+
* @param uri The value to check.
|
|
15
|
+
*/
|
|
16
|
+
function isReuri(uri) {
|
|
17
|
+
return reuri_1.ReUri.isReuri(uri);
|
|
18
|
+
}
|
|
19
|
+
exports.isReuri = isReuri;
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1DQUFnQztBQUtoQyxpQ0FBdUM7QUFBOUIsOEZBQUEsS0FBSyxPQUFBO0FBQUUsOEZBQUEsS0FBSyxPQUFBO0FBdUJyQixTQUFnQixLQUFLLENBQ2pCLEdBQXNEO0lBRXRELE9BQU8sYUFBSyxDQUFDLEtBQUssQ0FBTyxHQUFVLENBQUMsQ0FBQztBQUN6QyxDQUFDO0FBSkQsc0JBSUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixPQUFPLENBQUMsR0FBWTtJQUNoQyxPQUFPLGFBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDOUIsQ0FBQztBQUZELDBCQUVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVVcmkgfSBmcm9tIFwiLi9yZXVyaVwiO1xuaW1wb3J0IHsgUGF5bG9hZCB9IGZyb20gXCIuL3BheWxvYWRcIjtcblxuaW1wb3J0IHsgUmVVcmlQYXJ0cyB9IGZyb20gXCIuL3BhcnRzXCI7XG5cbmV4cG9ydCB7IFJlVXJpLCBERUJVRyB9IGZyb20gXCIuL3JldXJpXCI7XG5cbi8qKlxuICogQ3JlYXRlcyBhbiBlbXB0eSBSZVVyaSBvYmplY3Qgd2l0aCBubyBwYXlsb2FkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmV1cmkoKTogUmVVcmk8dW5kZWZpbmVkPjtcbi8qKlxuICogQ3JlYXRlcyBhIFJlVXJpIG9iamVjdCBmcm9tIGEge0BsaW5rIFJlVXJpUGFydHN9IGRlc2NyaWJpbmcgdGhlIHBhcnRzIG9mIHRoZSBVUkkuXG4gKiBAcGFyYW0gcGFydHMgVGhlIHBhcnRzIG9mIHRoZSBVUkkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXVyaTxUUGF5IGV4dGVuZHMgUGF5bG9hZCB8IHVuZGVmaW5lZD4oXG4gICAgcGFydHM6IFBhcnRpYWw8UmVVcmlQYXJ0czxUUGF5Pj5cbik6IFJlVXJpPFRQYXk+O1xuLyoqXG4gKiBSZXR1cm5zIHRoZSBzYW1lIFJlVXJpIG9iamVjdCB0aGF0IHdhcyBwYXNzZWQgaW4uXG4gKiBAcGFyYW0gdXJpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXVyaTxUUGF5IGV4dGVuZHMgUGF5bG9hZCB8IHVuZGVmaW5lZD4odXJpOiBSZVVyaTxUUGF5Pik6IFJlVXJpPFRQYXk+O1xuLyoqXG4gKiBQYXJzZXMgYSBzdHJpbmcgaW50byBhIFJlVXJpIG9iamVjdC5cbiAqIEBwYXJhbSB1cmkgVGhlIHN0cmluZyB0byBwYXJzZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJldXJpPFRQYXkgZXh0ZW5kcyBQYXlsb2FkIHwgdW5kZWZpbmVkPih1cmk6IHN0cmluZyk6IFJlVXJpPFRQYXk+O1xuZXhwb3J0IGZ1bmN0aW9uIHJldXJpPFRQYXkgZXh0ZW5kcyBQYXlsb2FkPihcbiAgICB1cmk/OiBSZVVyaTxUUGF5PiB8IHN0cmluZyB8IFBhcnRpYWw8UmVVcmlQYXJ0czxUUGF5Pj5cbik6IFJlVXJpPFRQYXk+IHtcbiAgICByZXR1cm4gUmVVcmkucGFyc2U8VFBheT4odXJpIGFzIGFueSk7XG59XG5cbi8qKlxuICogUmV0dXJucyB0cnVlIGlmIHRoZSBnaXZlbiB2YWx1ZSBpcyBhIFJlVXJpIG9iamVjdC5cbiAqIEBwYXJhbSB1cmkgVGhlIHZhbHVlIHRvIGNoZWNrLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNSZXVyaSh1cmk6IHVua25vd24pOiB1cmkgaXMgUmVVcmk8UGF5bG9hZCB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiBSZVVyaS5pc1JldXJpKHVyaSk7XG59XG5leHBvcnQgeyBQYXlsb2FkIH0gZnJvbSBcIi4vcGF5bG9hZFwiO1xuZXhwb3J0IHsgUHJvdG9jb2wgfSBmcm9tIFwiLi9wYXJ0c1wiO1xuIl19
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Payload } from "./payload";
|
|
2
|
+
export declare type Protocol = "http" | "https" | "ws" | "wss" | "about" | "chrome" | "chrome-extension" | "data" | "blob" | "javascript" | "file" | "ftp" | string;
|
|
3
|
+
export declare type ReUriCompoundNames = "host" | "origin" | "resource" | "address";
|
|
4
|
+
export declare type ReUriPathKey = keyof ReUriParts | ReUriCompoundNames;
|
|
5
|
+
/**
|
|
6
|
+
* Describes the parts of a URI.
|
|
7
|
+
*/
|
|
8
|
+
export interface ReUriParts<TPay extends Payload | undefined = undefined> {
|
|
9
|
+
protocol?: Protocol;
|
|
10
|
+
hostname?: string;
|
|
11
|
+
port?: string;
|
|
12
|
+
path: string;
|
|
13
|
+
query?: string;
|
|
14
|
+
hash?: string;
|
|
15
|
+
payload?: TPay;
|
|
16
|
+
trace?: Payload;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=parts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parts.d.ts","sourceRoot":"","sources":["../../src/lib/parts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,oBAAY,QAAQ,GACd,MAAM,GACN,OAAO,GACP,IAAI,GACJ,KAAK,GACL,OAAO,GACP,QAAQ,GACR,kBAAkB,GAClB,MAAM,GACN,MAAM,GACN,YAAY,GACZ,MAAM,GACN,KAAK,GACL,MAAM,CAAC;AACb,oBAAY,kBAAkB,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;AAC5E,oBAAY,YAAY,GAAG,MAAM,UAAU,GAAG,kBAAkB,CAAC;AAEjE;;GAEG;AACH,MAAM,WAAW,UAAU,CAAC,IAAI,SAAS,OAAO,GAAG,SAAS,GAAG,SAAS;IACpE,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL3BhcnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBQb3NzaWJsZSBVUkwgcHJvdG9jb2xzLlxuaW1wb3J0IHsgUGF5bG9hZCB9IGZyb20gXCIuL3BheWxvYWRcIjtcblxuZXhwb3J0IHR5cGUgUHJvdG9jb2wgPVxuICAgIHwgXCJodHRwXCJcbiAgICB8IFwiaHR0cHNcIlxuICAgIHwgXCJ3c1wiXG4gICAgfCBcIndzc1wiXG4gICAgfCBcImFib3V0XCJcbiAgICB8IFwiY2hyb21lXCJcbiAgICB8IFwiY2hyb21lLWV4dGVuc2lvblwiXG4gICAgfCBcImRhdGFcIlxuICAgIHwgXCJibG9iXCJcbiAgICB8IFwiamF2YXNjcmlwdFwiXG4gICAgfCBcImZpbGVcIlxuICAgIHwgXCJmdHBcIlxuICAgIHwgc3RyaW5nO1xuZXhwb3J0IHR5cGUgUmVVcmlDb21wb3VuZE5hbWVzID0gXCJob3N0XCIgfCBcIm9yaWdpblwiIHwgXCJyZXNvdXJjZVwiIHwgXCJhZGRyZXNzXCI7XG5leHBvcnQgdHlwZSBSZVVyaVBhdGhLZXkgPSBrZXlvZiBSZVVyaVBhcnRzIHwgUmVVcmlDb21wb3VuZE5hbWVzO1xuXG4vKipcbiAqIERlc2NyaWJlcyB0aGUgcGFydHMgb2YgYSBVUkkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVVcmlQYXJ0czxUUGF5IGV4dGVuZHMgUGF5bG9hZCB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZD4ge1xuICAgIHByb3RvY29sPzogUHJvdG9jb2w7XG4gICAgaG9zdG5hbWU/OiBzdHJpbmc7XG4gICAgcG9ydD86IHN0cmluZztcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgcXVlcnk/OiBzdHJpbmc7XG4gICAgaGFzaD86IHN0cmluZztcbiAgICBwYXlsb2FkPzogVFBheTtcbiAgICB0cmFjZT86IFBheWxvYWQ7XG59XG4iXX0=
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export declare const and = ",,", eq = "-_-", payloadMarker = "~ri~", traceFlag = "t~";
|
|
2
|
+
export declare type Payload = Record<string, string | boolean | undefined> & {
|
|
3
|
+
__trim?: true;
|
|
4
|
+
} & object;
|
|
5
|
+
export declare type PayloadOrDefault<TPayload> = TPayload extends undefined ? Payload : TPayload;
|
|
6
|
+
export declare function payloadContains(child: Payload | undefined, parent: Payload): boolean;
|
|
7
|
+
export declare function hostnameContains(child: string | undefined, parent: string): boolean;
|
|
8
|
+
export declare function decodePayload(suffix: string): Payload;
|
|
9
|
+
export declare function mustValidatePayload(payload: Payload): void;
|
|
10
|
+
export declare function encodePayload(data: Payload, flag?: string): string;
|
|
11
|
+
export declare function extractPayload<TPay>(pathWithPayloads?: string): {
|
|
12
|
+
path: string;
|
|
13
|
+
payload: TPay | undefined;
|
|
14
|
+
tracePayload: Payload | undefined;
|
|
15
|
+
};
|
|
16
|
+
export declare function getEncodedPath(path: string, payload?: Payload, trace?: Payload): string;
|
|
17
|
+
//# sourceMappingURL=payload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payload.d.ts","sourceRoot":"","sources":["../../src/lib/payload.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,GAAG,OAAO,EACnB,EAAE,QAAQ,EACV,aAAa,SAAS,EACtB,SAAS,OAAO,CAAC;AAErB,oBAAY,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,GAAG;IACjE,MAAM,CAAC,EAAE,IAAI,CAAC;CACjB,GAAG,MAAM,CAAC;AACX,oBAAY,gBAAgB,CAAC,QAAQ,IAAI,QAAQ,SAAS,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEzF,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,EAAE,MAAM,EAAE,OAAO,WAU1E;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,WAmBzE;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAQrD;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,QAMnD;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,SAAK,UAWrD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,gBAAgB,CAAC,EAAE,MAAM;;;;EA6B7D;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,OAAO,UAmB9E"}
|