@adviser/cement 0.4.33 → 0.4.34
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/cjs/cli/patch-version-cmd.cjs +1 -1
- package/cjs/cli/patch-version-cmd.cjs.map +1 -1
- package/cjs/index.cjs +1 -0
- package/cjs/index.cjs.map +1 -1
- package/cjs/index.d.ts +1 -0
- package/cjs/index.d.ts.map +1 -1
- package/cjs/load-asset.cjs +6 -5
- package/cjs/load-asset.cjs.map +1 -1
- package/cjs/load-asset.d.ts.map +1 -1
- package/cjs/logger.cjs +2 -2
- package/cjs/logger.cjs.map +1 -1
- package/cjs/logger.d.ts.map +1 -1
- package/cjs/logger.test.cjs +1 -1
- package/cjs/logger.test.cjs.map +1 -1
- package/cjs/mutable-url.cjs +281 -0
- package/cjs/mutable-url.cjs.map +1 -0
- package/cjs/mutable-url.d.ts +72 -0
- package/cjs/mutable-url.d.ts.map +1 -0
- package/cjs/mutable-url.test.cjs +452 -0
- package/cjs/mutable-url.test.cjs.map +1 -0
- package/cjs/mutable-url.test.d.ts +2 -0
- package/cjs/mutable-url.test.d.ts.map +1 -0
- package/cjs/uri.cjs +32 -161
- package/cjs/uri.cjs.map +1 -1
- package/cjs/uri.d.ts +4 -30
- package/cjs/uri.d.ts.map +1 -1
- package/cjs/uri.test.cjs +24 -36
- package/cjs/uri.test.cjs.map +1 -1
- package/cjs/utils/coerce-uint8.cjs.map +1 -1
- package/cjs/utils/coerce-uint8.d.ts.map +1 -1
- package/cjs/version.cjs +1 -1
- package/deno.json +1 -1
- package/esm/cli/patch-version-cmd.js +1 -1
- package/esm/cli/patch-version-cmd.js.map +1 -1
- package/esm/index.d.ts +1 -0
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +1 -0
- package/esm/index.js.map +1 -1
- package/esm/load-asset.d.ts.map +1 -1
- package/esm/load-asset.js +7 -6
- package/esm/load-asset.js.map +1 -1
- package/esm/logger.d.ts.map +1 -1
- package/esm/logger.js +2 -2
- package/esm/logger.js.map +1 -1
- package/esm/logger.test.js +2 -2
- package/esm/logger.test.js.map +1 -1
- package/esm/mutable-url.d.ts +72 -0
- package/esm/mutable-url.d.ts.map +1 -0
- package/esm/mutable-url.js +275 -0
- package/esm/mutable-url.js.map +1 -0
- package/esm/mutable-url.test.d.ts +2 -0
- package/esm/mutable-url.test.d.ts.map +1 -0
- package/esm/mutable-url.test.js +450 -0
- package/esm/mutable-url.test.js.map +1 -0
- package/esm/uri.d.ts +4 -30
- package/esm/uri.d.ts.map +1 -1
- package/esm/uri.js +26 -154
- package/esm/uri.js.map +1 -1
- package/esm/uri.test.js +25 -37
- package/esm/uri.test.js.map +1 -1
- package/esm/utils/coerce-uint8.d.ts.map +1 -1
- package/esm/utils/coerce-uint8.js.map +1 -1
- package/esm/version.js +1 -1
- package/package.json +2 -1
- package/src/cli/patch-version-cmd.ts +1 -1
- package/src/index.ts +1 -0
- package/src/load-asset.ts +7 -6
- package/src/logger.ts +3 -2
- package/src/mutable-url.ts +365 -0
- package/src/uri.ts +51 -195
- package/src/utils/coerce-uint8.ts +1 -2
- package/ts/cjs/cli/patch-version-cmd.js +1 -1
- package/ts/cjs/cli/patch-version-cmd.js.map +1 -1
- package/ts/cjs/index.d.ts +1 -0
- package/ts/cjs/index.d.ts.map +1 -1
- package/ts/cjs/index.js +1 -0
- package/ts/cjs/index.js.map +1 -1
- package/ts/cjs/load-asset.d.ts.map +1 -1
- package/ts/cjs/load-asset.js +6 -5
- package/ts/cjs/load-asset.js.map +1 -1
- package/ts/cjs/logger.d.ts.map +1 -1
- package/ts/cjs/logger.js +2 -2
- package/ts/cjs/logger.js.map +1 -1
- package/ts/cjs/logger.test.js +1 -1
- package/ts/cjs/logger.test.js.map +1 -1
- package/ts/cjs/mutable-url.d.ts +72 -0
- package/ts/cjs/mutable-url.d.ts.map +1 -0
- package/ts/cjs/mutable-url.js +281 -0
- package/ts/cjs/mutable-url.js.map +1 -0
- package/ts/cjs/mutable-url.test.d.ts +2 -0
- package/ts/cjs/mutable-url.test.d.ts.map +1 -0
- package/ts/cjs/mutable-url.test.js +452 -0
- package/ts/cjs/mutable-url.test.js.map +1 -0
- package/ts/cjs/uri.d.ts +4 -30
- package/ts/cjs/uri.d.ts.map +1 -1
- package/ts/cjs/uri.js +32 -161
- package/ts/cjs/uri.js.map +1 -1
- package/ts/cjs/uri.test.js +24 -36
- package/ts/cjs/uri.test.js.map +1 -1
- package/ts/cjs/utils/coerce-uint8.d.ts.map +1 -1
- package/ts/cjs/utils/coerce-uint8.js.map +1 -1
- package/ts/cjs/version.js +1 -1
- package/ts/esm/cli/patch-version-cmd.js +1 -1
- package/ts/esm/cli/patch-version-cmd.js.map +1 -1
- package/ts/esm/index.d.ts +1 -0
- package/ts/esm/index.d.ts.map +1 -1
- package/ts/esm/index.js +1 -0
- package/ts/esm/index.js.map +1 -1
- package/ts/esm/load-asset.d.ts.map +1 -1
- package/ts/esm/load-asset.js +7 -6
- package/ts/esm/load-asset.js.map +1 -1
- package/ts/esm/logger.d.ts.map +1 -1
- package/ts/esm/logger.js +2 -2
- package/ts/esm/logger.js.map +1 -1
- package/ts/esm/logger.test.js +2 -2
- package/ts/esm/logger.test.js.map +1 -1
- package/ts/esm/mutable-url.d.ts +72 -0
- package/ts/esm/mutable-url.d.ts.map +1 -0
- package/ts/esm/mutable-url.js +275 -0
- package/ts/esm/mutable-url.js.map +1 -0
- package/ts/esm/mutable-url.test.d.ts +2 -0
- package/ts/esm/mutable-url.test.d.ts.map +1 -0
- package/ts/esm/mutable-url.test.js +450 -0
- package/ts/esm/mutable-url.test.js.map +1 -0
- package/ts/esm/uri.d.ts +4 -30
- package/ts/esm/uri.d.ts.map +1 -1
- package/ts/esm/uri.js +26 -154
- package/ts/esm/uri.js.map +1 -1
- package/ts/esm/uri.test.js +25 -37
- package/ts/esm/uri.test.js.map +1 -1
- package/ts/esm/utils/coerce-uint8.d.ts.map +1 -1
- package/ts/esm/utils/coerce-uint8.js.map +1 -1
- package/ts/esm/version.js +1 -1
@@ -0,0 +1,450 @@
|
|
1
|
+
import { ReadonlyURL, WritableURL, URLSearchParamsEntries } from "./mutable-url.js";
|
2
|
+
describe("URLSearchParamsEntries", () => {
|
3
|
+
it("should iterate over URLSearchParams entries", () => {
|
4
|
+
const params = new URLSearchParams();
|
5
|
+
params.set("key1", "value1");
|
6
|
+
params.set("key2", "value2");
|
7
|
+
const entries = Array.from(URLSearchParamsEntries(params));
|
8
|
+
expect(entries).toEqual([
|
9
|
+
["key1", "value1"],
|
10
|
+
["key2", "value2"],
|
11
|
+
]);
|
12
|
+
});
|
13
|
+
it("should handle empty URLSearchParams", () => {
|
14
|
+
const params = new URLSearchParams();
|
15
|
+
const entries = Array.from(URLSearchParamsEntries(params));
|
16
|
+
expect(entries).toEqual([]);
|
17
|
+
});
|
18
|
+
it("should handle multiple values for same key", () => {
|
19
|
+
const params = new URLSearchParams();
|
20
|
+
params.append("key", "value1");
|
21
|
+
params.append("key", "value2");
|
22
|
+
const entries = Array.from(URLSearchParamsEntries(params));
|
23
|
+
expect(entries.length).toBeGreaterThan(0);
|
24
|
+
expect(entries.some(([k, v]) => k === "key" && (v === "value1" || v === "value2"))).toBe(true);
|
25
|
+
});
|
26
|
+
});
|
27
|
+
describe("ReadonlyURL", () => {
|
28
|
+
describe("constructor and basic properties", () => {
|
29
|
+
it("should create ReadonlyURL with http protocol", () => {
|
30
|
+
const url = ReadonlyURL.fromThrow("http://example.com/path");
|
31
|
+
expect(url.protocol).toBe("http:");
|
32
|
+
expect(url.hostname).toBe("example.com");
|
33
|
+
expect(url.pathname).toBe("/path");
|
34
|
+
});
|
35
|
+
it("should create ReadonlyURL with https protocol", () => {
|
36
|
+
const url = ReadonlyURL.fromThrow("https://example.com:8080/path");
|
37
|
+
expect(url.protocol).toBe("https:");
|
38
|
+
expect(url.hostname).toBe("example.com");
|
39
|
+
expect(url.port).toBe("8080");
|
40
|
+
expect(url.pathname).toBe("/path");
|
41
|
+
});
|
42
|
+
it("should create ReadonlyURL with custom protocol without host part", () => {
|
43
|
+
const url = ReadonlyURL.fromThrow("file://path/to/file");
|
44
|
+
expect(url.protocol).toBe("file:");
|
45
|
+
expect(url.pathname).toBe("path/to/file");
|
46
|
+
});
|
47
|
+
it("should throw error for invalid URL", () => {
|
48
|
+
expect(() => ReadonlyURL.fromThrow("invalid-url")).toThrow();
|
49
|
+
});
|
50
|
+
});
|
51
|
+
describe("readonly setters", () => {
|
52
|
+
let url;
|
53
|
+
beforeEach(() => {
|
54
|
+
url = ReadonlyURL.fromThrow("http://example.com/path");
|
55
|
+
});
|
56
|
+
it("should throw error when setting origin", () => {
|
57
|
+
expect(() => {
|
58
|
+
url.origin = "http://other.com";
|
59
|
+
}).toThrow("origin is readonly");
|
60
|
+
});
|
61
|
+
it("should throw error when setting href", () => {
|
62
|
+
expect(() => {
|
63
|
+
url.href = "http://other.com";
|
64
|
+
}).toThrow("href is readonly");
|
65
|
+
});
|
66
|
+
it("should throw error when setting password", () => {
|
67
|
+
expect(() => {
|
68
|
+
url.password = "pass";
|
69
|
+
}).toThrow("password is readonly");
|
70
|
+
});
|
71
|
+
it("should throw error when setting username", () => {
|
72
|
+
expect(() => {
|
73
|
+
url.username = "user";
|
74
|
+
}).toThrow("username is readonly");
|
75
|
+
});
|
76
|
+
it("should throw error when setting hash", () => {
|
77
|
+
expect(() => {
|
78
|
+
url.hash = "#test";
|
79
|
+
}).toThrow("hash is readonly");
|
80
|
+
});
|
81
|
+
it("should throw error when setting host", () => {
|
82
|
+
expect(() => {
|
83
|
+
url.host = "other.com";
|
84
|
+
}).toThrow("host is readonly");
|
85
|
+
});
|
86
|
+
it("should throw error when setting hostname", () => {
|
87
|
+
expect(() => {
|
88
|
+
url.hostname = "other.com";
|
89
|
+
}).toThrow("hostname is readonly");
|
90
|
+
});
|
91
|
+
it("should throw error when setting pathname", () => {
|
92
|
+
expect(() => {
|
93
|
+
url.pathname = "/other";
|
94
|
+
}).toThrow("pathname is readonly");
|
95
|
+
});
|
96
|
+
it("should throw error when setting port", () => {
|
97
|
+
expect(() => {
|
98
|
+
url.port = "8080";
|
99
|
+
}).toThrow("port is readonly");
|
100
|
+
});
|
101
|
+
it("should throw error when setting protocol", () => {
|
102
|
+
expect(() => {
|
103
|
+
url.protocol = "https:";
|
104
|
+
}).toThrow("protocol is readonly");
|
105
|
+
});
|
106
|
+
it("should throw error when setting search", () => {
|
107
|
+
expect(() => {
|
108
|
+
url.search = "?test=1";
|
109
|
+
}).toThrow("search is readonly");
|
110
|
+
});
|
111
|
+
it("should throw error when setting searchParams", () => {
|
112
|
+
expect(() => {
|
113
|
+
url.searchParams = new URLSearchParams();
|
114
|
+
}).toThrow("searchParams is readonly");
|
115
|
+
});
|
116
|
+
});
|
117
|
+
describe("host-related properties for non-host protocols", () => {
|
118
|
+
let url;
|
119
|
+
beforeEach(() => {
|
120
|
+
url = ReadonlyURL.fromThrow("file://path/to/file");
|
121
|
+
});
|
122
|
+
it("should throw error when accessing host for non-host protocol", () => {
|
123
|
+
expect(() => url.host).toThrow("you can use hostname only if protocol is");
|
124
|
+
});
|
125
|
+
it("should throw error when accessing hostname for non-host protocol", () => {
|
126
|
+
expect(() => url.hostname).toThrow("you can use hostname only if protocol is");
|
127
|
+
});
|
128
|
+
it("should throw error when accessing port for non-host protocol", () => {
|
129
|
+
expect(() => url.port).toThrow("you can use hostname only if protocol is");
|
130
|
+
});
|
131
|
+
});
|
132
|
+
describe("search and searchParams", () => {
|
133
|
+
it("should handle empty search params", () => {
|
134
|
+
const url = ReadonlyURL.fromThrow("http://example.com/path");
|
135
|
+
expect(url.search).toBe("");
|
136
|
+
});
|
137
|
+
it("should handle search params", () => {
|
138
|
+
const url = ReadonlyURL.fromThrow("http://example.com/path?b=2&a=1");
|
139
|
+
expect(url.search).toBe("?a=1&b=2");
|
140
|
+
});
|
141
|
+
it("should encode search param values", () => {
|
142
|
+
const url = ReadonlyURL.fromThrow("http://example.com/path");
|
143
|
+
url.searchParams.set("key", "value with spaces");
|
144
|
+
expect(url.search).toBe("?key=value%20with%20spaces");
|
145
|
+
});
|
146
|
+
});
|
147
|
+
describe("toString", () => {
|
148
|
+
it("should return correct string for host-based URL", () => {
|
149
|
+
const url = ReadonlyURL.fromThrow("http://example.com:8080/path?a=1#hash");
|
150
|
+
expect(url.toString()).toBe("http://example.com:8080/path?a=1#hash");
|
151
|
+
});
|
152
|
+
it("should return correct string for non-host URL", () => {
|
153
|
+
const url = ReadonlyURL.fromThrow("file://path/to/file");
|
154
|
+
expect(url.toString()).toBe("file://path/to/file");
|
155
|
+
});
|
156
|
+
it("should handle URL without leading slash in pathname", () => {
|
157
|
+
const url = ReadonlyURL.fromThrow("http://example.com");
|
158
|
+
expect(url.toString()).toContain("http://example.com/");
|
159
|
+
});
|
160
|
+
});
|
161
|
+
describe("utility methods", () => {
|
162
|
+
let url;
|
163
|
+
beforeEach(() => {
|
164
|
+
url = ReadonlyURL.fromThrow("http://example.com/path");
|
165
|
+
});
|
166
|
+
it("test serialization", () => {
|
167
|
+
const url = ReadonlyURL.fromThrow("http://example.com/path");
|
168
|
+
expect(JSON.stringify(url)).toBe(`"${url.toString()}"`);
|
169
|
+
});
|
170
|
+
it("should return JSON string", () => {
|
171
|
+
expect(url.toJSON()).toBe(url.toString());
|
172
|
+
});
|
173
|
+
it("should return string for custom inspect", () => {
|
174
|
+
const customInspectSymbol = Symbol.for("nodejs.util.inspect.custom");
|
175
|
+
expect(url[customInspectSymbol]()).toBe(url.toString());
|
176
|
+
});
|
177
|
+
it("should clone and return same instance", () => {
|
178
|
+
const cloned = url.clone();
|
179
|
+
expect(cloned).toBe(url);
|
180
|
+
});
|
181
|
+
});
|
182
|
+
});
|
183
|
+
describe("WritableURL", () => {
|
184
|
+
describe("static factory methods", () => {
|
185
|
+
it("should create WritableURL with fromThrow", () => {
|
186
|
+
const url = WritableURL.fromThrow("http://example.com/path");
|
187
|
+
expect(url).toBeInstanceOf(WritableURL);
|
188
|
+
expect(url.toString()).toBe("http://example.com/path");
|
189
|
+
});
|
190
|
+
it("should throw error with fromThrow for invalid URL", () => {
|
191
|
+
expect(() => WritableURL.fromThrow("invalid-url")).toThrow();
|
192
|
+
});
|
193
|
+
it("should create Result.Ok with from for valid URL", () => {
|
194
|
+
const result = WritableURL.from("http://example.com/path");
|
195
|
+
expect(result.isOk()).toBe(true);
|
196
|
+
expect(result.Ok()).toBeInstanceOf(WritableURL);
|
197
|
+
});
|
198
|
+
it("should create Result.Err with from for invalid URL", () => {
|
199
|
+
const result = WritableURL.from("invalid-url");
|
200
|
+
expect(result.isErr()).toBe(true);
|
201
|
+
expect(result.Err().message).toContain("Invalid URL");
|
202
|
+
});
|
203
|
+
});
|
204
|
+
describe("mutable setters", () => {
|
205
|
+
let url;
|
206
|
+
beforeEach(() => {
|
207
|
+
url = WritableURL.fromThrow("http://example.com/path");
|
208
|
+
});
|
209
|
+
it("should throw error when setting origin", () => {
|
210
|
+
expect(() => {
|
211
|
+
url.origin = "http://other.com";
|
212
|
+
}).toThrow("don't use origin");
|
213
|
+
});
|
214
|
+
it("should set href", () => {
|
215
|
+
expect(() => {
|
216
|
+
url.href = "http://other.com/other";
|
217
|
+
}).toThrow("don't use href");
|
218
|
+
});
|
219
|
+
it("should set password", () => {
|
220
|
+
url.password = "newpass";
|
221
|
+
expect(url.password).toBe("newpass");
|
222
|
+
});
|
223
|
+
it("should set username", () => {
|
224
|
+
url.username = "newuser";
|
225
|
+
expect(url.username).toBe("newuser");
|
226
|
+
});
|
227
|
+
it("should set hash", () => {
|
228
|
+
url.hash = "#newhash";
|
229
|
+
expect(url.hash).toBe("#newhash");
|
230
|
+
});
|
231
|
+
it("should set host", () => {
|
232
|
+
url.host = "other.com:9000";
|
233
|
+
expect(url.host).toBe("other.com:9000");
|
234
|
+
});
|
235
|
+
it("should set hostname", () => {
|
236
|
+
url.hostname = "other.com";
|
237
|
+
expect(url.hostname).toBe("other.com");
|
238
|
+
});
|
239
|
+
it("should set pathname", () => {
|
240
|
+
url.pathname = "/newpath";
|
241
|
+
expect(url.pathname).toBe("/newpath");
|
242
|
+
});
|
243
|
+
it("should set port", () => {
|
244
|
+
url.port = "9000";
|
245
|
+
expect(url.port).toBe("9000");
|
246
|
+
});
|
247
|
+
it("should set protocol with colon", () => {
|
248
|
+
url.protocol = "https:";
|
249
|
+
expect(url.protocol).toBe("https:");
|
250
|
+
});
|
251
|
+
it("should set protocol without colon", () => {
|
252
|
+
url.protocol = "https";
|
253
|
+
expect(url.protocol).toBe("https:");
|
254
|
+
});
|
255
|
+
it("should set search", () => {
|
256
|
+
url.search = "?new=param";
|
257
|
+
expect(url.search).toBe("?new=param");
|
258
|
+
});
|
259
|
+
it("should verify state change when setting username and password", () => {
|
260
|
+
url.username = "testuser";
|
261
|
+
url.password = "testpass";
|
262
|
+
expect(url.username).toBe("testuser");
|
263
|
+
expect(url.password).toBe("testpass");
|
264
|
+
expect(url.href).toContain("testuser:testpass@");
|
265
|
+
});
|
266
|
+
it("should verify state change when setting empty values", () => {
|
267
|
+
url.hash = "#test";
|
268
|
+
url.search = "?test=value";
|
269
|
+
expect(url.hash).toBe("#test");
|
270
|
+
expect(url.search).toBe("?test=value");
|
271
|
+
url.hash = "";
|
272
|
+
url.search = "";
|
273
|
+
expect(url.hash).toBe("");
|
274
|
+
expect(url.search).toBe("");
|
275
|
+
});
|
276
|
+
});
|
277
|
+
describe("host-related setters for non-host protocols", () => {
|
278
|
+
let url;
|
279
|
+
beforeEach(() => {
|
280
|
+
url = WritableURL.fromThrow("file://path/to/file");
|
281
|
+
});
|
282
|
+
it("should throw error when setting hostname for non-host protocol", () => {
|
283
|
+
expect(() => {
|
284
|
+
url.hostname = "example.com";
|
285
|
+
}).toThrow("you can use hostname only if protocol is");
|
286
|
+
});
|
287
|
+
it("should throw error when setting port for non-host protocol", () => {
|
288
|
+
expect(() => {
|
289
|
+
url.port = "8080";
|
290
|
+
}).toThrow("you can use port only if protocol is");
|
291
|
+
});
|
292
|
+
});
|
293
|
+
describe("searchParams setter", () => {
|
294
|
+
let url;
|
295
|
+
beforeEach(() => {
|
296
|
+
url = WritableURL.fromThrow("http://example.com/path?existing=param");
|
297
|
+
});
|
298
|
+
it("should replace searchParams completely", () => {
|
299
|
+
const originalSearch = url.search;
|
300
|
+
const newParams = new URLSearchParams();
|
301
|
+
newParams.set("new", "value");
|
302
|
+
newParams.set("another", "param");
|
303
|
+
url.searchParams = newParams;
|
304
|
+
expect(url.searchParams.get("new")).toBe("value");
|
305
|
+
expect(url.searchParams.get("another")).toBe("param");
|
306
|
+
expect(url.searchParams.get("existing")).toBeNull();
|
307
|
+
expect(url.search).not.toBe(originalSearch);
|
308
|
+
expect(url.search).toContain("new=value");
|
309
|
+
expect(url.search).toContain("another=param");
|
310
|
+
});
|
311
|
+
it("should handle empty searchParams", () => {
|
312
|
+
const originalSearch = url.search;
|
313
|
+
url.searchParams = new URLSearchParams();
|
314
|
+
expect(url.search).toBe("");
|
315
|
+
expect(url.search).not.toBe(originalSearch);
|
316
|
+
expect(url.searchParams.toString()).toBe("");
|
317
|
+
});
|
318
|
+
});
|
319
|
+
describe("comprehensive state change verification", () => {
|
320
|
+
let url;
|
321
|
+
beforeEach(() => {
|
322
|
+
url = WritableURL.fromThrow("http://example.com/path?existing=param");
|
323
|
+
});
|
324
|
+
it("should verify all mutable setters change state correctly", () => {
|
325
|
+
const originalHash = url.hash;
|
326
|
+
const originalHost = url.host;
|
327
|
+
const originalHostname = url.hostname;
|
328
|
+
const originalPathname = url.pathname;
|
329
|
+
const originalPort = url.port;
|
330
|
+
const originalProtocol = url.protocol;
|
331
|
+
const originalSearch = url.search;
|
332
|
+
const originalUsername = url.username;
|
333
|
+
const originalPassword = url.password;
|
334
|
+
url.hash = "#newHash";
|
335
|
+
url.host = "newhost.com:8080";
|
336
|
+
url.pathname = "/newpath";
|
337
|
+
url.protocol = "https";
|
338
|
+
url.search = "?new=value";
|
339
|
+
url.username = "newuser";
|
340
|
+
url.password = "newpass";
|
341
|
+
expect(url.hash).toBe("#newHash");
|
342
|
+
expect(url.hash).not.toBe(originalHash);
|
343
|
+
expect(url.host).toBe("newhost.com:8080");
|
344
|
+
expect(url.host).not.toBe(originalHost);
|
345
|
+
expect(url.hostname).toBe("newhost.com");
|
346
|
+
expect(url.hostname).not.toBe(originalHostname);
|
347
|
+
expect(url.pathname).toBe("/newpath");
|
348
|
+
expect(url.pathname).not.toBe(originalPathname);
|
349
|
+
expect(url.port).toBe("8080");
|
350
|
+
expect(url.port).not.toBe(originalPort);
|
351
|
+
expect(url.protocol).toBe("https:");
|
352
|
+
expect(url.protocol).not.toBe(originalProtocol);
|
353
|
+
expect(url.search).toBe("?new=value");
|
354
|
+
expect(url.search).not.toBe(originalSearch);
|
355
|
+
expect(url.username).toBe("newuser");
|
356
|
+
expect(url.username).not.toBe(originalUsername);
|
357
|
+
expect(url.password).toBe("newpass");
|
358
|
+
expect(url.password).not.toBe(originalPassword);
|
359
|
+
expect(url.toString()).toContain("https://");
|
360
|
+
expect(url.toString()).toContain("newuser:newpass@");
|
361
|
+
expect(url.toString()).toContain("newhost.com:8080");
|
362
|
+
expect(url.toString()).toContain("/newpath");
|
363
|
+
expect(url.toString()).toContain("?new=value");
|
364
|
+
expect(url.toString()).toContain("#newHash");
|
365
|
+
});
|
366
|
+
});
|
367
|
+
describe("clone method", () => {
|
368
|
+
it("should create new instance with same URL", () => {
|
369
|
+
const url = WritableURL.fromThrow("http://example.com/path?param=value#hash");
|
370
|
+
const cloned = url.clone();
|
371
|
+
expect(cloned).toBeInstanceOf(WritableURL);
|
372
|
+
expect(cloned).not.toBe(url);
|
373
|
+
expect(cloned.toString()).toBe(url.toString());
|
374
|
+
});
|
375
|
+
});
|
376
|
+
describe("utility methods", () => {
|
377
|
+
let url;
|
378
|
+
beforeEach(() => {
|
379
|
+
url = WritableURL.fromThrow("http://example.com/path");
|
380
|
+
});
|
381
|
+
it("test serialization", () => {
|
382
|
+
const url = WritableURL.fromThrow("http://example.com/path");
|
383
|
+
expect(JSON.stringify(url)).toBe(`"${url.toString()}"`);
|
384
|
+
});
|
385
|
+
it("should return JSON string", () => {
|
386
|
+
expect(url.toJSON()).toBe(url.toString());
|
387
|
+
});
|
388
|
+
it("should return string for custom inspect", () => {
|
389
|
+
const customInspectSymbol = Symbol.for("nodejs.util.inspect.custom");
|
390
|
+
expect(url[customInspectSymbol]()).toBe(url.toString());
|
391
|
+
});
|
392
|
+
});
|
393
|
+
});
|
394
|
+
describe("ReadonlyURL.from", () => {
|
395
|
+
it("should return Ok for valid url with protocol", () => {
|
396
|
+
const result = ReadonlyURL.from("http://example.com/foo");
|
397
|
+
expect(result.isOk()).toBe(true);
|
398
|
+
expect(result.Ok().toString()).toBe("http://example.com/foo");
|
399
|
+
});
|
400
|
+
it("should return Err for invalid url", () => {
|
401
|
+
const result = ReadonlyURL.from("not-a-url");
|
402
|
+
expect(result.isErr()).toBe(true);
|
403
|
+
});
|
404
|
+
it("should return Err for invalid url 1", () => {
|
405
|
+
const result = ReadonlyURL.from("not-a-url:");
|
406
|
+
expect(result.isErr()).toBe(true);
|
407
|
+
});
|
408
|
+
it("should return Err for invalid url 2", () => {
|
409
|
+
const result = ReadonlyURL.from("not-a-url:/");
|
410
|
+
expect(result.isErr()).toBe(true);
|
411
|
+
});
|
412
|
+
it("should return Err for invalid urll 3", () => {
|
413
|
+
const result = ReadonlyURL.from("not-a-url://kdkkef/df:dkdkfkdk");
|
414
|
+
expect(result.isErr()).toBe(true);
|
415
|
+
});
|
416
|
+
it("should return Ok for custom protocol", () => {
|
417
|
+
const result = ReadonlyURL.from("b0lix://foo/bar");
|
418
|
+
expect(result.isOk()).toBe(true);
|
419
|
+
expect(result.Ok().toString()).toBe("b0lix://foo/bar");
|
420
|
+
});
|
421
|
+
});
|
422
|
+
describe("WritableURL.from", () => {
|
423
|
+
it("should return Ok for valid url with protocol", () => {
|
424
|
+
const result = WritableURL.from("http://example.com/foo");
|
425
|
+
expect(result.isOk()).toBe(true);
|
426
|
+
expect(result.Ok().toString()).toBe("http://example.com/foo");
|
427
|
+
});
|
428
|
+
it("should return Err for invalid url", () => {
|
429
|
+
const result = WritableURL.from("not-a-url");
|
430
|
+
expect(result.isErr()).toBe(true);
|
431
|
+
});
|
432
|
+
it("should return Err for invalid url 1", () => {
|
433
|
+
const result = WritableURL.from("not-a-url:");
|
434
|
+
expect(result.isErr()).toBe(true);
|
435
|
+
});
|
436
|
+
it("should return Err for invalid url 2", () => {
|
437
|
+
const result = WritableURL.from("not-a-url:/");
|
438
|
+
expect(result.isErr()).toBe(true);
|
439
|
+
});
|
440
|
+
it("should return Err for invalid urll 3", () => {
|
441
|
+
const result = WritableURL.from("not-a-url://kdkkef/df:dkdkfkdk");
|
442
|
+
expect(result.isErr()).toBe(true);
|
443
|
+
});
|
444
|
+
it("should return Ok for custom protocol", () => {
|
445
|
+
const result = WritableURL.from("b0lix://foo/bar");
|
446
|
+
expect(result.isOk()).toBe(true);
|
447
|
+
expect(result.Ok().toString()).toBe("b0lix://foo/bar");
|
448
|
+
});
|
449
|
+
});
|
450
|
+
//# sourceMappingURL=mutable-url.test.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"mutable-url.test.js","sourceRoot":"","sources":["../../../src/mutable-url.test.ts"],"names":[],"mappings":"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"}
|
package/esm/uri.d.ts
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
import { Result } from "./result.js";
|
2
2
|
import { KeysParam } from "./utils/get-params-result.js";
|
3
3
|
import { StripCommand } from "./utils/stripper.js";
|
4
|
+
import { ReadonlyURL, WritableURL } from "./mutable-url.js";
|
4
5
|
type NullOrUndef = null | undefined;
|
5
6
|
type OneKey<K extends string, V = string> = Record<K, V>;
|
6
7
|
export interface IsURIResult {
|
@@ -44,35 +45,8 @@ export interface HostURIObject extends URIObject {
|
|
44
45
|
readonly port: string;
|
45
46
|
}
|
46
47
|
export declare function isURL(value: unknown): value is URL;
|
47
|
-
declare const customInspectSymbol: unique symbol;
|
48
|
-
export declare class MutableURL extends URL {
|
49
|
-
private readonly _sysURL;
|
50
|
-
private _protocol;
|
51
|
-
private _pathname;
|
52
|
-
private _hasHostpart;
|
53
|
-
static fromThrow(urlStr: string): MutableURL;
|
54
|
-
static from(urlStr: string): Result<MutableURL>;
|
55
|
-
private constructor();
|
56
|
-
toJSON(): string;
|
57
|
-
[customInspectSymbol](): string;
|
58
|
-
clone(): MutableURL;
|
59
|
-
get host(): string;
|
60
|
-
get port(): string;
|
61
|
-
set port(p: string);
|
62
|
-
get hostname(): string;
|
63
|
-
set hostname(h: string);
|
64
|
-
set pathname(p: string);
|
65
|
-
get pathname(): string;
|
66
|
-
get protocol(): string;
|
67
|
-
set protocol(p: string);
|
68
|
-
get hash(): string;
|
69
|
-
set hash(h: string);
|
70
|
-
get searchParams(): URLSearchParams;
|
71
|
-
get search(): string;
|
72
|
-
toString(): string;
|
73
|
-
}
|
74
48
|
export declare class BuildURI implements URIInterface<BuildURI> {
|
75
|
-
_url:
|
49
|
+
_url: WritableURL;
|
76
50
|
private constructor();
|
77
51
|
static is(value: unknown): value is BuildURI;
|
78
52
|
static from(strURLUri?: CoerceURI, defaultProtocol?: string): BuildURI;
|
@@ -105,7 +79,7 @@ export declare class BuildURI implements URIInterface<BuildURI> {
|
|
105
79
|
get withoutHostAndSchema(): string;
|
106
80
|
URI(): URI;
|
107
81
|
}
|
108
|
-
export type CoerceURI = string | URI |
|
82
|
+
export type CoerceURI = string | URI | ReadonlyURL | WritableURL | URL | BuildURI | NullOrUndef;
|
109
83
|
export declare function isCoerceURI(value: unknown): value is CoerceURI;
|
110
84
|
export declare const hasHostPartProtocols: Set<string>;
|
111
85
|
export declare class URI implements URIInterface<URI> {
|
@@ -115,7 +89,7 @@ export declare class URI implements URIInterface<URI> {
|
|
115
89
|
static is(value: unknown): value is URI;
|
116
90
|
static from(strURLUri?: CoerceURI, defaultProtocol?: string): URI;
|
117
91
|
static fromResult(strURLUri?: CoerceURI, defaultProtocol?: string): Result<URI>;
|
118
|
-
readonly _url:
|
92
|
+
readonly _url: ReadonlyURL;
|
119
93
|
private constructor();
|
120
94
|
build(): BuildURI;
|
121
95
|
get hostname(): string;
|
package/esm/uri.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"uri.d.ts","sourceRoot":"","sources":["../../../src/uri.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,MAAM,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAmB,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAE1E,OAAO,EAAE,YAAY,EAAY,MAAM,qBAAqB,CAAC;
|
1
|
+
{"version":3,"file":"uri.d.ts","sourceRoot":"","sources":["../../../src/uri.ts"],"names":[],"mappings":"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"}
|