exacturi 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/README.md +1 -0
  2. package/dist/cjs/errors.d.ts.map +1 -1
  3. package/dist/cjs/errors.js.map +1 -1
  4. package/dist/cjs/exacturi.d.ts +10 -13
  5. package/dist/cjs/exacturi.d.ts.map +1 -1
  6. package/dist/cjs/exacturi.js +10 -13
  7. package/dist/cjs/exacturi.js.map +1 -1
  8. package/dist/cjs/index.d.ts +6 -4
  9. package/dist/cjs/index.d.ts.map +1 -1
  10. package/dist/cjs/index.js +1 -0
  11. package/dist/cjs/index.js.map +1 -1
  12. package/dist/cjs/package.json +1 -0
  13. package/dist/cjs/parts.d.ts +1 -3
  14. package/dist/cjs/parts.d.ts.map +1 -1
  15. package/dist/cjs/utils.js.map +1 -1
  16. package/dist/esm/errors.d.ts.map +1 -1
  17. package/dist/esm/errors.js.map +1 -1
  18. package/dist/esm/exacturi.d.ts +10 -13
  19. package/dist/esm/exacturi.d.ts.map +1 -1
  20. package/dist/esm/exacturi.js +10 -13
  21. package/dist/esm/exacturi.js.map +1 -1
  22. package/dist/esm/index.d.ts +6 -4
  23. package/dist/esm/index.d.ts.map +1 -1
  24. package/dist/esm/index.js +1 -0
  25. package/dist/esm/index.js.map +1 -1
  26. package/dist/esm/package.json +1 -0
  27. package/dist/esm/parts.d.ts +1 -3
  28. package/dist/esm/parts.d.ts.map +1 -1
  29. package/dist/esm/utils.js.map +1 -1
  30. package/package.json +3 -3
  31. package/src/errors.ts +8 -8
  32. package/src/exacturi.ts +158 -161
  33. package/src/index.ts +15 -13
  34. package/src/parts.ts +10 -12
  35. package/src/utils.ts +16 -16
  36. package/dist/cjs/reuri.d.ts +0 -92
  37. package/dist/cjs/reuri.d.ts.map +0 -1
  38. package/dist/cjs/reuri.js +0 -345
  39. package/dist/cjs/reuri.js.map +0 -1
  40. package/dist/esm/reuri.d.ts +0 -92
  41. package/dist/esm/reuri.d.ts.map +0 -1
  42. package/dist/esm/reuri.js +0 -341
  43. package/dist/esm/reuri.js.map +0 -1
  44. package/dist/lib/errors.d.ts +0 -14
  45. package/dist/lib/errors.d.ts.map +0 -1
  46. package/dist/lib/errors.js +0 -52
  47. package/dist/lib/index.d.ts +0 -31
  48. package/dist/lib/index.d.ts.map +0 -1
  49. package/dist/lib/index.js +0 -20
  50. package/dist/lib/parts.d.ts +0 -18
  51. package/dist/lib/parts.d.ts.map +0 -1
  52. package/dist/lib/parts.js +0 -3
  53. package/dist/lib/payload.d.ts +0 -17
  54. package/dist/lib/payload.d.ts.map +0 -1
  55. package/dist/lib/payload.js +0 -126
  56. package/dist/lib/reuri.d.ts +0 -127
  57. package/dist/lib/reuri.d.ts.map +0 -1
  58. package/dist/lib/reuri.js +0 -457
  59. package/dist/lib/utils.d.ts +0 -2
  60. package/dist/lib/utils.d.ts.map +0 -1
  61. package/dist/lib/utils.js +0 -26
  62. package/dist/test/basic.test.js +0 -319
  63. package/dist/test/basic.test.js.map +0 -1
  64. package/dist/test/extras.test.js +0 -77
  65. package/dist/test/extras.test.js.map +0 -1
  66. package/dist/test/matching.test.js +0 -80
  67. package/dist/test/matching.test.js.map +0 -1
@@ -1,126 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getEncodedPath = exports.extractPayload = exports.encodePayload = exports.mustValidatePayload = exports.decodePayload = exports.hostnameContains = exports.payloadContains = exports.traceFlag = exports.payloadMarker = exports.eq = exports.and = void 0;
4
- // A payload that can be encoded into a URL.
5
- const errors_1 = require("./errors");
6
- exports.and = ",,", exports.eq = "-_-", exports.payloadMarker = "~ri~", exports.traceFlag = "t~";
7
- function payloadContains(child, parent) {
8
- if (!child) {
9
- return false;
10
- }
11
- for (const [key, value] of Object.entries(parent)) {
12
- if (value !== child[key]) {
13
- return false;
14
- }
15
- }
16
- return true;
17
- }
18
- exports.payloadContains = payloadContains;
19
- function hostnameContains(child, parent) {
20
- if (!child) {
21
- return false;
22
- }
23
- const parentParts = parent.split(".").reverse();
24
- const childParts = child.split(".").reverse();
25
- if (parentParts.length > childParts.length) {
26
- return false;
27
- }
28
- for (let i = 0; i < parentParts.length; i++) {
29
- if (!parentParts[i]) {
30
- continue;
31
- }
32
- if (childParts[i] !== parentParts[i]) {
33
- return false;
34
- }
35
- }
36
- return true;
37
- }
38
- exports.hostnameContains = hostnameContains;
39
- function decodePayload(suffix) {
40
- const kvps = suffix.split(exports.and);
41
- const pairs = kvps.map(x => x.split(exports.eq));
42
- const obj = Object.create(null);
43
- for (const [k, v] of pairs) {
44
- obj[k] = v == null ? true : decodeURIComponent(v);
45
- }
46
- return obj;
47
- }
48
- exports.decodePayload = decodePayload;
49
- function mustValidatePayload(payload) {
50
- for (const [k, v] of Object.entries(payload)) {
51
- if (typeof v !== "string" && typeof v !== "boolean" && v !== undefined) {
52
- throw (0, errors_1.payloadBadValueType)(k, v);
53
- }
54
- }
55
- }
56
- exports.mustValidatePayload = mustValidatePayload;
57
- function encodePayload(data, flag = "") {
58
- const args = [];
59
- for (const [k, v] of Object.entries(data)) {
60
- if (v === true) {
61
- args.push([k]);
62
- }
63
- else if (v != null && v !== false) {
64
- args.push([k, encodeURIComponent(v)]);
65
- }
66
- }
67
- const payload = args.map(pair => pair.join(exports.eq)).join(exports.and);
68
- return `${exports.payloadMarker}${flag}${payload}${exports.payloadMarker}`;
69
- }
70
- exports.encodePayload = encodePayload;
71
- function extractPayload(pathWithPayloads) {
72
- const pathSections = pathWithPayloads?.split(exports.payloadMarker) ?? [];
73
- let path = "";
74
- /*
75
- * This is a shorthand for URL decoding.
76
- * Basically an encoded payload is between two `infix`.
77
- * So if we split by `infix`:
78
- * address = slice[0] + slice[2] + slice[4] + ...
79
- * encoded = [decode(slice[1]), decode(slice[3])]
80
- */
81
- let payload;
82
- let tracePayload;
83
- for (let i = 0; i < pathSections.length; i++) {
84
- const cur = pathSections[i];
85
- if (i % 2 === 0) {
86
- path += cur;
87
- }
88
- else if (cur.startsWith(exports.traceFlag) && !tracePayload) {
89
- tracePayload = decodePayload(cur.slice(2));
90
- }
91
- else if (!payload) {
92
- payload = decodePayload(cur);
93
- }
94
- else {
95
- throw (0, errors_1.tooManyPayloads)(pathWithPayloads, 2);
96
- }
97
- }
98
- return {
99
- path,
100
- payload,
101
- tracePayload
102
- };
103
- }
104
- exports.extractPayload = extractPayload;
105
- function getEncodedPath(path, payload, trace) {
106
- const somePayload = trace || payload;
107
- if (!somePayload) {
108
- return path;
109
- }
110
- if (!path) {
111
- somePayload.__trim = true;
112
- path = "/";
113
- }
114
- const parts = path.split("/");
115
- let suffix = "";
116
- if (payload) {
117
- suffix += encodePayload(payload);
118
- }
119
- if (trace) {
120
- suffix += encodePayload(trace, exports.traceFlag);
121
- }
122
- parts[parts.length - 1] += suffix;
123
- return parts.join("/");
124
- }
125
- exports.getEncodedPath = getEncodedPath;
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bG9hZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvcGF5bG9hZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw0Q0FBNEM7QUFDNUMscUNBQWdFO0FBRW5ELFFBQUEsR0FBRyxHQUFHLElBQUksRUFDbkIsUUFBQSxFQUFFLEdBQUcsS0FBSyxFQUNWLFFBQUEsYUFBYSxHQUFHLE1BQU0sRUFDdEIsUUFBQSxTQUFTLEdBQUcsSUFBSSxDQUFDO0FBT3JCLFNBQWdCLGVBQWUsQ0FBQyxLQUEwQixFQUFFLE1BQWU7SUFDdkUsSUFBSSxDQUFDLEtBQUssRUFBRTtRQUNSLE9BQU8sS0FBSyxDQUFDO0tBQ2hCO0lBQ0QsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDL0MsSUFBSSxLQUFLLEtBQUssS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3RCLE9BQU8sS0FBSyxDQUFDO1NBQ2hCO0tBQ0o7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDO0FBVkQsMENBVUM7QUFFRCxTQUFnQixnQkFBZ0IsQ0FBQyxLQUF5QixFQUFFLE1BQWM7SUFDdEUsSUFBSSxDQUFDLEtBQUssRUFBRTtRQUNSLE9BQU8sS0FBSyxDQUFDO0tBQ2hCO0lBQ0QsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNoRCxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzlDLElBQUksV0FBVyxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFO1FBQ3hDLE9BQU8sS0FBSyxDQUFDO0tBQ2hCO0lBRUQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFdBQVcsQ0FB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S0FBSyxFQUFFLGlCQUFTLENBQUMsQ0FBQztLQUM3QztJQUNELEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQztJQUNsQyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDM0IsQ0FBQztBQW5CRCx3Q0FtQkMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBIHBheWxvYWQgdGhhdCBjYW4gYmUgZW5jb2RlZCBpbnRvIGEgVVJMLlxuaW1wb3J0IHsgcGF5bG9hZEJhZFZhbHVlVHlwZSwgdG9vTWFueVBheWxvYWRzIH0gZnJvbSBcIi4vZXJyb3JzXCI7XG5cbmV4cG9ydCBjb25zdCBhbmQgPSBcIiwsXCIsXG4gICAgZXEgPSBcIi1fLVwiLFxuICAgIHBheWxvYWRNYXJrZXIgPSBcIn5yaX5cIixcbiAgICB0cmFjZUZsYWcgPSBcInR+XCI7XG5cbmV4cG9ydCB0eXBlIFBheWxvYWQgPSBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBib29sZWFuIHwgdW5kZWZpbmVkPiAmIHtcbiAgICBfX3RyaW0/OiB0cnVlO1xufSAmIG9iamVjdDtcbmV4cG9ydCB0eXBlIFBheWxvYWRPckRlZmF1bHQ8VFBheWxvYWQ+ID0gVFBheWxvYWQgZXh0ZW5kcyB1bmRlZmluZWQgPyBQYXlsb2FkIDogVFBheWxvYWQ7XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXlsb2FkQ29udGFpbnMoY2hpbGQ6IFBheWxvYWQgfCB1bmRlZmluZWQsIHBhcmVudDogUGF5bG9hZCkge1xuICAgIGlmICghY2hpbGQpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhwYXJlbnQpKSB7XG4gICAgICAgIGlmICh2YWx1ZSAhPT0gY2hpbGRba2V5XSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaG9zdG5hbWVDb250YWlucyhjaGlsZDogc3RyaW5nIHwgdW5kZWZpbmVkLCBwYXJlbnQ6IHN0cmluZykge1xuICAgIGlmICghY2hpbGQpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCBwYXJlbnRQYXJ0cyA9IHBhcmVudC5zcGxpdChcIi5cIikucmV2ZXJzZSgpO1xuICAgIGNvbnN0IGNoaWxkUGFydHMgPSBjaGlsZC5zcGxpdChcIi5cIikucmV2ZXJzZSgpO1xuICAgIGlmIChwYXJlbnRQYXJ0cy5sZW5ndGggPiBjaGlsZFBhcnRzLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYXJlbnRQYXJ0cy5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoIXBhcmVudFBhcnRzW2ldKSB7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2hpbGRQYXJ0c1tpXSAhPT0gcGFyZW50UGFydHNbaV0pIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZVBheWxvYWQoc3VmZml4OiBzdHJpbmcpOiBQYXlsb2FkIHtcbiAgICBjb25zdCBrdnBzID0gc3VmZml4LnNwbGl0KGFuZCk7XG4gICAgY29uc3QgcGFpcnMgPSBrdnBzLm1hcCh4ID0+IHguc3BsaXQoZXEpKTtcbiAgICBjb25zdCBvYmogPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIHBhaXJzKSB7XG4gICAgICAgIG9ialtrXSA9IHYgPT0gbnVsbCA/IHRydWUgOiBkZWNvZGVVUklDb21wb25lbnQodik7XG4gICAgfVxuICAgIHJldHVybiBvYmo7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtdXN0VmFsaWRhdGVQYXlsb2FkKHBheWxvYWQ6IFBheWxvYWQpIHtcbiAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyhwYXlsb2FkKSkge1xuICAgICAgICBpZiAodHlwZW9mIHYgIT09IFwic3RyaW5nXCIgJiYgdHlwZW9mIHYgIT09IFwiYm9vbGVhblwiICYmIHYgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgcGF5bG9hZEJhZFZhbHVlVHlwZShrLCB2KTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVuY29kZVBheWxvYWQoZGF0YTogUGF5bG9hZCwgZmxhZyA9IFwiXCIpIHtcbiAgICBjb25zdCBhcmdzID0gW10gYXMgW3N0cmluZywgc3RyaW5nP11bXTtcbiAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyhkYXRhKSkge1xuICAgICAgICBpZiAodiA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgYXJncy5wdXNoKFtrXSk7XG4gICAgICAgIH0gZWxzZSBpZiAodiAhPSBudWxsICYmIHYgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICBhcmdzLnB1c2goW2ssIGVuY29kZVVSSUNvbXBvbmVudCh2KV0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHBheWxvYWQgPSBhcmdzLm1hcChwYWlyID0+IHBhaXIuam9pbihlcSkpLmpvaW4oYW5kKTtcbiAgICByZXR1cm4gYCR7cGF5bG9hZE1hcmtlcn0ke2ZsYWd9JHtwYXlsb2FkfSR7cGF5bG9hZE1hcmtlcn1gO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdFBheWxvYWQ8VFBheT4ocGF0aFdpdGhQYXlsb2Fkcz86IHN0cmluZykge1xuICAgIGNvbnN0IHBhdGhTZWN0aW9ucyA9IHBhdGhXaXRoUGF5bG9hZHM/LnNwbGl0KHBheWxvYWRNYXJrZXIpID8/IFtdO1xuICAgIGxldCBwYXRoID0gXCJcIjtcbiAgICAvKlxuICAgICAqIFRoaXMgaXMgYSBzaG9ydGhhbmQgZm9yIFVSTCBkZWNvZGluZy5cbiAgICAgKiBCYXNpY2FsbHkgYW4gZW5jb2RlZCBwYXlsb2FkIGlzIGJldHdlZW4gdHdvIGBpbmZpeGAuXG4gICAgICogU28gaWYgd2Ugc3BsaXQgYnkgYGluZml4YDpcbiAgICAgKiAgYWRkcmVzcyA9IHNsaWNlWzBdICsgc2xpY2VbMl0gKyBzbGljZVs0XSArIC4uLlxuICAgICAqICBlbmNvZGVkID0gW2RlY29kZShzbGljZVsxXSksIGRlY29kZShzbGljZVszXSldXG4gICAgICovXG4gICAgbGV0IHBheWxvYWQ6IFRQYXkgfCB1bmRlZmluZWQ7XG4gICAgbGV0IHRyYWNlUGF5bG9hZDogUGF5bG9hZCB8IHVuZGVmaW5lZDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBhdGhTZWN0aW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBjdXIgPSBwYXRoU2VjdGlvbnNbaV07XG4gICAgICAgIGlmIChpICUgMiA9PT0gMCkge1xuICAgICAgICAgICAgcGF0aCArPSBjdXI7XG4gICAgICAgIH0gZWxzZSBpZiAoY3VyLnN0YXJ0c1dpdGgodHJhY2VGbGFnKSAmJiAhdHJhY2VQYXlsb2FkKSB7XG4gICAgICAgICAgICB0cmFjZVBheWxvYWQgPSBkZWNvZGVQYXlsb2FkKGN1ci5zbGljZSgyKSk7XG4gICAgICAgIH0gZWxzZSBpZiAoIXBheWxvYWQpIHtcbiAgICAgICAgICAgIHBheWxvYWQgPSBkZWNvZGVQYXlsb2FkKGN1cikgYXMgYW55O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgdG9vTWFueVBheWxvYWRzKHBhdGhXaXRoUGF5bG9hZHMgYXMgc3RyaW5nLCAyKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgICBwYXRoLFxuICAgICAgICBwYXlsb2FkLFxuICAgICAgICB0cmFjZVBheWxvYWRcbiAgICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RW5jb2RlZFBhdGgocGF0aDogc3RyaW5nLCBwYXlsb2FkPzogUGF5bG9hZCwgdHJhY2U/OiBQYXlsb2FkKSB7XG4gICAgY29uc3Qgc29tZVBheWxvYWQgPSB0cmFjZSB8fCBwYXlsb2FkO1xuICAgIGlmICghc29tZVBheWxvYWQpIHtcbiAgICAgICAgcmV0dXJuIHBhdGg7XG4gICAgfVxuICAgIGlmICghcGF0aCkge1xuICAgICAgICBzb21lUGF5bG9hZC5fX3RyaW0gPSB0cnVlO1xuICAgICAgICBwYXRoID0gXCIvXCI7XG4gICAgfVxuICAgIGNvbnN0IHBhcnRzID0gcGF0aC5zcGxpdChcIi9cIik7XG4gICAgbGV0IHN1ZmZpeCA9IFwiXCI7XG4gICAgaWYgKHBheWxvYWQpIHtcbiAgICAgICAgc3VmZml4ICs9IGVuY29kZVBheWxvYWQocGF5bG9hZCk7XG4gICAgfVxuICAgIGlmICh0cmFjZSkge1xuICAgICAgICBzdWZmaXggKz0gZW5jb2RlUGF5bG9hZCh0cmFjZSwgdHJhY2VGbGFnKTtcbiAgICB9XG4gICAgcGFydHNbcGFydHMubGVuZ3RoIC0gMV0gKz0gc3VmZml4O1xuICAgIHJldHVybiBwYXJ0cy5qb2luKFwiL1wiKTtcbn1cbiJdfQ==
@@ -1,127 +0,0 @@
1
- import { Payload, PayloadOrDefault } from "./payload";
2
- import { Protocol, ReUriParts, ReUriPathKey } from "./parts";
3
- export interface ReUriDebugOptions {
4
- dontEncodePayloads?: boolean;
5
- }
6
- export declare const DEBUG: unique symbol;
7
- /**
8
- * Represents a URI and allows performing operations and inspecting it.
9
- *
10
- * This class is immutable.
11
- */
12
- export declare class ReUri<TPay extends Payload | undefined = undefined> {
13
- private _protocol;
14
- private _hostname;
15
- private _path;
16
- private _query;
17
- private _hash;
18
- private _payload;
19
- private _trace;
20
- private _parsed;
21
- private _port;
22
- static readonly [DEBUG]: ReUriDebugOptions;
23
- private 0;
24
- constructor(_protocol: Protocol | undefined, _hostname: string | undefined, _path: string, _query: string | undefined, _hash: string | undefined, _payload: TPay, _trace: Payload | undefined, _parsed: string | undefined, _port: string | undefined);
25
- static isReuri(other: unknown): boolean;
26
- segments(): string[];
27
- segments(overwrite: string[]): ReUri<TPay>;
28
- merge(other: string): ReUri<TPay>;
29
- merge(other: ReUri<any>): ReUri<TPay>;
30
- pick(...keys: ReUriPathKey[]): ReUri<TPay>;
31
- parts(): ReUriParts<TPay>;
32
- parts<TPay2 extends Payload | undefined = TPay>(overwrite: Partial<ReUriParts<Payload>>): ReUri<TPay2>;
33
- part(key: "payload"): TPay;
34
- part(key: "payload", value: TPay): ReUri<TPay>;
35
- part(key: "trace", value: Payload): ReUri<TPay>;
36
- part(key: "trace"): Payload;
37
- part(key: Exclude<ReUriPathKey, "payload" | "trace">): string | undefined;
38
- part(key: ReUriPathKey, value: string | undefined): ReUri<TPay>;
39
- address(address: string | undefined | null): ReUri<TPay>;
40
- address(): string | undefined;
41
- resource(resource: string | undefined | null): ReUri<TPay>;
42
- resource(): string | undefined;
43
- origin(origin: string | undefined | null): ReUri<TPay>;
44
- origin(): string | undefined;
45
- segment(index: number): string;
46
- segment(index: number, value: string): ReUri<TPay>;
47
- path(): string;
48
- path(path: string | undefined | null): ReUri<TPay>;
49
- port(): number | undefined;
50
- port(raw: true): string | undefined;
51
- port(port: number | undefined | string | null): ReUri<TPay>;
52
- protocol(): Protocol | undefined;
53
- protocol(proto: Protocol | null | undefined): ReUri<TPay>;
54
- host(): string | undefined;
55
- host(host: string | undefined | null): ReUri<TPay>;
56
- hostname(): string | undefined;
57
- hostname(hostname: string | undefined | null): ReUri<TPay>;
58
- query(): string | undefined;
59
- query(query: string | null | undefined): ReUri<TPay>;
60
- hash(): string;
61
- hash(hash: string | null | undefined): ReUri<TPay>;
62
- private _getEncodedPath;
63
- private _noCopyClone;
64
- get isWeb(): boolean;
65
- /**
66
- * Gets a clone of this instance. The payload is also cloned.
67
- */
68
- clone(): ReUri<TPay>;
69
- static empty(): ReUri<undefined>;
70
- static empty<TPay extends Payload>(payload: TPay): ReUri<TPay>;
71
- static parse(input: null | undefined): ReUri<undefined>;
72
- static parse<TPay extends Payload | undefined>(input: string | ReUri<TPay> | Partial<ReUriParts<Payload>>): ReUri<TPay>;
73
- payloadMerge<TMore extends Payload>(this: ReUri<undefined>, more: TMore): ReUri<TMore>;
74
- payloadMerge<TMore extends Payload>(this: ReUri<TPay>, more: TMore): ReUri<TMore & TPay>;
75
- trace(): Payload;
76
- trace(payloadOwner: ReUri<any>): ReUri<TPay>;
77
- trace(tracePayload: Payload): ReUri<TPay>;
78
- /**
79
- * Checks if this URI (CHILD) matches another URI (PARENT). The parent can be a string,
80
- * a {@link ReUri} or, or an object describing the parts of a URI -- a {@link ReUriParts}.
81
- *
82
- * CHILD is considered to be a child of PARENT if:
83
- * 1. If PARENT has a protocol, it must equal CHILD protocol.
84
- * 2. If PARENT has a hostname, it must be a parent of CHILD's hostname.
85
- * 3. If PARENT has a port, it must equal CHILD's port.
86
- * 4. If PARENT has a path, it must be a parent of CHILD's path.
87
- * 5. If PARENT has a query, it must equal CHILD's query.
88
- * 6. If PARENT has a hash, it must equal CHILD's hash.
89
- * 7. If PARENT has a payload, its properties must match CHILD's payload.
90
- * 8. The trace payload is ignored.
91
- * @param parent The parent URI to check against.
92
- *
93
- */
94
- matches(parent: Partial<ReUriParts<Payload | undefined>> | ReUri<Payload | undefined> | string): boolean;
95
- /**
96
- * Checks if this URI equals another URI, which can be given as a string, a {@link ReUri} or, or an object describing the parts of a URI -- a
97
- * {@link ReUriParts}.
98
- * @param other The other URI to check against.
99
- * @param skipPayload If true, the payload is ignored.
100
- */
101
- equal(other: string | ReUri<Payload | undefined> | Partial<ReUriParts<Payload | undefined>>, skipPayload?: boolean): boolean;
102
- get isArtificial(): boolean;
103
- payload(): TPay;
104
- payload(payload: null | undefined): ReUri<undefined>;
105
- payload<TOther extends Payload | undefined = PayloadOrDefault<TPay>>(payload: TOther): ReUri<TOther>;
106
- payload<TOther extends Payload | undefined = PayloadOrDefault<TPay>>(otherReuri: ReUri<TOther>): ReUri<TOther>;
107
- private _print;
108
- /**
109
- * Is this a fake URL generated by reflectiz?
110
- */
111
- get isReflectiz(): boolean;
112
- /**
113
- * Does this URL have a non-web protocol?
114
- */
115
- get isNonWeb(): boolean;
116
- /**
117
- * Gets the full URI, including the payload.
118
- */
119
- get href(): string;
120
- /**
121
- * Gets the full URI, minus the payload.
122
- */
123
- get canonical(): string;
124
- get [Symbol.toStringTag](): string;
125
- toString(): string;
126
- }
127
- //# sourceMappingURL=reuri.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reuri.d.ts","sourceRoot":"","sources":["../../src/lib/reuri.ts"],"names":[],"mappings":"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"}