PluginProbe
Gutenberg / 22.9.0
Gutenberg v22.9.0
23.9.1 23.9.0 23.8.0 23.7.2 23.7.1 23.7.0 23.6.1 23.6.2 23.6.0 23.5.3 23.5.2 23.5.1 23.5.0 23.4.0 23.3.2 23.3.1 23.3.0 23.2.0 23.2.1 23.2.2 23.1.1 23.1.0 23.0.1 12.6.0 7.4.0 All 402 releases
gutenberg / build / scripts / url / index.js

index.js in Gutenberg 22.9.0, at build/scripts/url/index.js

881 lines 23.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 "use strict";
2 var wp;
3 (wp ||= {}).url = (() => {
4 var __create = Object.create;
5 var __defProp = Object.defineProperty;
6 var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7 var __getOwnPropNames = Object.getOwnPropertyNames;
8 var __getProtoOf = Object.getPrototypeOf;
9 var __hasOwnProp = Object.prototype.hasOwnProperty;
10 var __commonJS = (cb, mod) => function __require() {
11 return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
12 };
13 var __export = (target, all) => {
14 for (var name in all)
15 __defProp(target, name, { get: all[name], enumerable: true });
16 };
17 var __copyProps = (to, from, except, desc) => {
18 if (from && typeof from === "object" || typeof from === "function") {
19 for (let key of __getOwnPropNames(from))
20 if (!__hasOwnProp.call(to, key) && key !== except)
21 __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
22 }
23 return to;
24 };
25 var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
26 // If the importer is in node compatibility mode or this is not an ESM
27 // file that has been converted to a CommonJS file using a Babel-
28 // compatible transform (i.e. "__esModule" has not been set), then set
29 // "default" to the CommonJS "module.exports" for node compatibility.
30 isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
31 mod
32 ));
33 var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
34
35 // node_modules/remove-accents/index.js
36 var require_remove_accents = __commonJS({
37 "node_modules/remove-accents/index.js"(exports, module) {
38 var characterMap = {
39 "\xC0": "A",
40 "\xC1": "A",
41 "\xC2": "A",
42 "\xC3": "A",
43 "\xC4": "A",
44 "\xC5": "A",
45 "\u1EA4": "A",
46 "\u1EAE": "A",
47 "\u1EB2": "A",
48 "\u1EB4": "A",
49 "\u1EB6": "A",
50 "\xC6": "AE",
51 "\u1EA6": "A",
52 "\u1EB0": "A",
53 "\u0202": "A",
54 "\u1EA2": "A",
55 "\u1EA0": "A",
56 "\u1EA8": "A",
57 "\u1EAA": "A",
58 "\u1EAC": "A",
59 "\xC7": "C",
60 "\u1E08": "C",
61 "\xC8": "E",
62 "\xC9": "E",
63 "\xCA": "E",
64 "\xCB": "E",
65 "\u1EBE": "E",
66 "\u1E16": "E",
67 "\u1EC0": "E",
68 "\u1E14": "E",
69 "\u1E1C": "E",
70 "\u0206": "E",
71 "\u1EBA": "E",
72 "\u1EBC": "E",
73 "\u1EB8": "E",
74 "\u1EC2": "E",
75 "\u1EC4": "E",
76 "\u1EC6": "E",
77 "\xCC": "I",
78 "\xCD": "I",
79 "\xCE": "I",
80 "\xCF": "I",
81 "\u1E2E": "I",
82 "\u020A": "I",
83 "\u1EC8": "I",
84 "\u1ECA": "I",
85 "\xD0": "D",
86 "\xD1": "N",
87 "\xD2": "O",
88 "\xD3": "O",
89 "\xD4": "O",
90 "\xD5": "O",
91 "\xD6": "O",
92 "\xD8": "O",
93 "\u1ED0": "O",
94 "\u1E4C": "O",
95 "\u1E52": "O",
96 "\u020E": "O",
97 "\u1ECE": "O",
98 "\u1ECC": "O",
99 "\u1ED4": "O",
100 "\u1ED6": "O",
101 "\u1ED8": "O",
102 "\u1EDC": "O",
103 "\u1EDE": "O",
104 "\u1EE0": "O",
105 "\u1EDA": "O",
106 "\u1EE2": "O",
107 "\xD9": "U",
108 "\xDA": "U",
109 "\xDB": "U",
110 "\xDC": "U",
111 "\u1EE6": "U",
112 "\u1EE4": "U",
113 "\u1EEC": "U",
114 "\u1EEE": "U",
115 "\u1EF0": "U",
116 "\xDD": "Y",
117 "\xE0": "a",
118 "\xE1": "a",
119 "\xE2": "a",
120 "\xE3": "a",
121 "\xE4": "a",
122 "\xE5": "a",
123 "\u1EA5": "a",
124 "\u1EAF": "a",
125 "\u1EB3": "a",
126 "\u1EB5": "a",
127 "\u1EB7": "a",
128 "\xE6": "ae",
129 "\u1EA7": "a",
130 "\u1EB1": "a",
131 "\u0203": "a",
132 "\u1EA3": "a",
133 "\u1EA1": "a",
134 "\u1EA9": "a",
135 "\u1EAB": "a",
136 "\u1EAD": "a",
137 "\xE7": "c",
138 "\u1E09": "c",
139 "\xE8": "e",
140 "\xE9": "e",
141 "\xEA": "e",
142 "\xEB": "e",
143 "\u1EBF": "e",
144 "\u1E17": "e",
145 "\u1EC1": "e",
146 "\u1E15": "e",
147 "\u1E1D": "e",
148 "\u0207": "e",
149 "\u1EBB": "e",
150 "\u1EBD": "e",
151 "\u1EB9": "e",
152 "\u1EC3": "e",
153 "\u1EC5": "e",
154 "\u1EC7": "e",
155 "\xEC": "i",
156 "\xED": "i",
157 "\xEE": "i",
158 "\xEF": "i",
159 "\u1E2F": "i",
160 "\u020B": "i",
161 "\u1EC9": "i",
162 "\u1ECB": "i",
163 "\xF0": "d",
164 "\xF1": "n",
165 "\xF2": "o",
166 "\xF3": "o",
167 "\xF4": "o",
168 "\xF5": "o",
169 "\xF6": "o",
170 "\xF8": "o",
171 "\u1ED1": "o",
172 "\u1E4D": "o",
173 "\u1E53": "o",
174 "\u020F": "o",
175 "\u1ECF": "o",
176 "\u1ECD": "o",
177 "\u1ED5": "o",
178 "\u1ED7": "o",
179 "\u1ED9": "o",
180 "\u1EDD": "o",
181 "\u1EDF": "o",
182 "\u1EE1": "o",
183 "\u1EDB": "o",
184 "\u1EE3": "o",
185 "\xF9": "u",
186 "\xFA": "u",
187 "\xFB": "u",
188 "\xFC": "u",
189 "\u1EE7": "u",
190 "\u1EE5": "u",
191 "\u1EED": "u",
192 "\u1EEF": "u",
193 "\u1EF1": "u",
194 "\xFD": "y",
195 "\xFF": "y",
196 "\u0100": "A",
197 "\u0101": "a",
198 "\u0102": "A",
199 "\u0103": "a",
200 "\u0104": "A",
201 "\u0105": "a",
202 "\u0106": "C",
203 "\u0107": "c",
204 "\u0108": "C",
205 "\u0109": "c",
206 "\u010A": "C",
207 "\u010B": "c",
208 "\u010C": "C",
209 "\u010D": "c",
210 "C\u0306": "C",
211 "c\u0306": "c",
212 "\u010E": "D",
213 "\u010F": "d",
214 "\u0110": "D",
215 "\u0111": "d",
216 "\u0112": "E",
217 "\u0113": "e",
218 "\u0114": "E",
219 "\u0115": "e",
220 "\u0116": "E",
221 "\u0117": "e",
222 "\u0118": "E",
223 "\u0119": "e",
224 "\u011A": "E",
225 "\u011B": "e",
226 "\u011C": "G",
227 "\u01F4": "G",
228 "\u011D": "g",
229 "\u01F5": "g",
230 "\u011E": "G",
231 "\u011F": "g",
232 "\u0120": "G",
233 "\u0121": "g",
234 "\u0122": "G",
235 "\u0123": "g",
236 "\u0124": "H",
237 "\u0125": "h",
238 "\u0126": "H",
239 "\u0127": "h",
240 "\u1E2A": "H",
241 "\u1E2B": "h",
242 "\u0128": "I",
243 "\u0129": "i",
244 "\u012A": "I",
245 "\u012B": "i",
246 "\u012C": "I",
247 "\u012D": "i",
248 "\u012E": "I",
249 "\u012F": "i",
250 "\u0130": "I",
251 "\u0131": "i",
252 "\u0132": "IJ",
253 "\u0133": "ij",
254 "\u0134": "J",
255 "\u0135": "j",
256 "\u0136": "K",
257 "\u0137": "k",
258 "\u1E30": "K",
259 "\u1E31": "k",
260 "K\u0306": "K",
261 "k\u0306": "k",
262 "\u0139": "L",
263 "\u013A": "l",
264 "\u013B": "L",
265 "\u013C": "l",
266 "\u013D": "L",
267 "\u013E": "l",
268 "\u013F": "L",
269 "\u0140": "l",
270 "\u0141": "l",
271 "\u0142": "l",
272 "\u1E3E": "M",
273 "\u1E3F": "m",
274 "M\u0306": "M",
275 "m\u0306": "m",
276 "\u0143": "N",
277 "\u0144": "n",
278 "\u0145": "N",
279 "\u0146": "n",
280 "\u0147": "N",
281 "\u0148": "n",
282 "\u0149": "n",
283 "N\u0306": "N",
284 "n\u0306": "n",
285 "\u014C": "O",
286 "\u014D": "o",
287 "\u014E": "O",
288 "\u014F": "o",
289 "\u0150": "O",
290 "\u0151": "o",
291 "\u0152": "OE",
292 "\u0153": "oe",
293 "P\u0306": "P",
294 "p\u0306": "p",
295 "\u0154": "R",
296 "\u0155": "r",
297 "\u0156": "R",
298 "\u0157": "r",
299 "\u0158": "R",
300 "\u0159": "r",
301 "R\u0306": "R",
302 "r\u0306": "r",
303 "\u0212": "R",
304 "\u0213": "r",
305 "\u015A": "S",
306 "\u015B": "s",
307 "\u015C": "S",
308 "\u015D": "s",
309 "\u015E": "S",
310 "\u0218": "S",
311 "\u0219": "s",
312 "\u015F": "s",
313 "\u0160": "S",
314 "\u0161": "s",
315 "\u0162": "T",
316 "\u0163": "t",
317 "\u021B": "t",
318 "\u021A": "T",
319 "\u0164": "T",
320 "\u0165": "t",
321 "\u0166": "T",
322 "\u0167": "t",
323 "T\u0306": "T",
324 "t\u0306": "t",
325 "\u0168": "U",
326 "\u0169": "u",
327 "\u016A": "U",
328 "\u016B": "u",
329 "\u016C": "U",
330 "\u016D": "u",
331 "\u016E": "U",
332 "\u016F": "u",
333 "\u0170": "U",
334 "\u0171": "u",
335 "\u0172": "U",
336 "\u0173": "u",
337 "\u0216": "U",
338 "\u0217": "u",
339 "V\u0306": "V",
340 "v\u0306": "v",
341 "\u0174": "W",
342 "\u0175": "w",
343 "\u1E82": "W",
344 "\u1E83": "w",
345 "X\u0306": "X",
346 "x\u0306": "x",
347 "\u0176": "Y",
348 "\u0177": "y",
349 "\u0178": "Y",
350 "Y\u0306": "Y",
351 "y\u0306": "y",
352 "\u0179": "Z",
353 "\u017A": "z",
354 "\u017B": "Z",
355 "\u017C": "z",
356 "\u017D": "Z",
357 "\u017E": "z",
358 "\u017F": "s",
359 "\u0192": "f",
360 "\u01A0": "O",
361 "\u01A1": "o",
362 "\u01AF": "U",
363 "\u01B0": "u",
364 "\u01CD": "A",
365 "\u01CE": "a",
366 "\u01CF": "I",
367 "\u01D0": "i",
368 "\u01D1": "O",
369 "\u01D2": "o",
370 "\u01D3": "U",
371 "\u01D4": "u",
372 "\u01D5": "U",
373 "\u01D6": "u",
374 "\u01D7": "U",
375 "\u01D8": "u",
376 "\u01D9": "U",
377 "\u01DA": "u",
378 "\u01DB": "U",
379 "\u01DC": "u",
380 "\u1EE8": "U",
381 "\u1EE9": "u",
382 "\u1E78": "U",
383 "\u1E79": "u",
384 "\u01FA": "A",
385 "\u01FB": "a",
386 "\u01FC": "AE",
387 "\u01FD": "ae",
388 "\u01FE": "O",
389 "\u01FF": "o",
390 "\xDE": "TH",
391 "\xFE": "th",
392 "\u1E54": "P",
393 "\u1E55": "p",
394 "\u1E64": "S",
395 "\u1E65": "s",
396 "X\u0301": "X",
397 "x\u0301": "x",
398 "\u0403": "\u0413",
399 "\u0453": "\u0433",
400 "\u040C": "\u041A",
401 "\u045C": "\u043A",
402 "A\u030B": "A",
403 "a\u030B": "a",
404 "E\u030B": "E",
405 "e\u030B": "e",
406 "I\u030B": "I",
407 "i\u030B": "i",
408 "\u01F8": "N",
409 "\u01F9": "n",
410 "\u1ED2": "O",
411 "\u1ED3": "o",
412 "\u1E50": "O",
413 "\u1E51": "o",
414 "\u1EEA": "U",
415 "\u1EEB": "u",
416 "\u1E80": "W",
417 "\u1E81": "w",
418 "\u1EF2": "Y",
419 "\u1EF3": "y",
420 "\u0200": "A",
421 "\u0201": "a",
422 "\u0204": "E",
423 "\u0205": "e",
424 "\u0208": "I",
425 "\u0209": "i",
426 "\u020C": "O",
427 "\u020D": "o",
428 "\u0210": "R",
429 "\u0211": "r",
430 "\u0214": "U",
431 "\u0215": "u",
432 "B\u030C": "B",
433 "b\u030C": "b",
434 "\u010C\u0323": "C",
435 "\u010D\u0323": "c",
436 "\xCA\u030C": "E",
437 "\xEA\u030C": "e",
438 "F\u030C": "F",
439 "f\u030C": "f",
440 "\u01E6": "G",
441 "\u01E7": "g",
442 "\u021E": "H",
443 "\u021F": "h",
444 "J\u030C": "J",
445 "\u01F0": "j",
446 "\u01E8": "K",
447 "\u01E9": "k",
448 "M\u030C": "M",
449 "m\u030C": "m",
450 "P\u030C": "P",
451 "p\u030C": "p",
452 "Q\u030C": "Q",
453 "q\u030C": "q",
454 "\u0158\u0329": "R",
455 "\u0159\u0329": "r",
456 "\u1E66": "S",
457 "\u1E67": "s",
458 "V\u030C": "V",
459 "v\u030C": "v",
460 "W\u030C": "W",
461 "w\u030C": "w",
462 "X\u030C": "X",
463 "x\u030C": "x",
464 "Y\u030C": "Y",
465 "y\u030C": "y",
466 "A\u0327": "A",
467 "a\u0327": "a",
468 "B\u0327": "B",
469 "b\u0327": "b",
470 "\u1E10": "D",
471 "\u1E11": "d",
472 "\u0228": "E",
473 "\u0229": "e",
474 "\u0190\u0327": "E",
475 "\u025B\u0327": "e",
476 "\u1E28": "H",
477 "\u1E29": "h",
478 "I\u0327": "I",
479 "i\u0327": "i",
480 "\u0197\u0327": "I",
481 "\u0268\u0327": "i",
482 "M\u0327": "M",
483 "m\u0327": "m",
484 "O\u0327": "O",
485 "o\u0327": "o",
486 "Q\u0327": "Q",
487 "q\u0327": "q",
488 "U\u0327": "U",
489 "u\u0327": "u",
490 "X\u0327": "X",
491 "x\u0327": "x",
492 "Z\u0327": "Z",
493 "z\u0327": "z",
494 "\u0439": "\u0438",
495 "\u0419": "\u0418",
496 "\u0451": "\u0435",
497 "\u0401": "\u0415"
498 };
499 var chars = Object.keys(characterMap).join("|");
500 var allAccents = new RegExp(chars, "g");
501 var firstAccent = new RegExp(chars, "");
502 function matcher(match) {
503 return characterMap[match];
504 }
505 var removeAccents2 = function(string) {
506 return string.replace(allAccents, matcher);
507 };
508 var hasAccents = function(string) {
509 return !!string.match(firstAccent);
510 };
511 module.exports = removeAccents2;
512 module.exports.has = hasAccents;
513 module.exports.remove = removeAccents2;
514 }
515 });
516
517 // packages/url/build-module/index.mjs
518 var index_exports = {};
519 __export(index_exports, {
520 addQueryArgs: () => addQueryArgs,
521 buildQueryString: () => buildQueryString,
522 cleanForSlug: () => cleanForSlug,
523 filterURLForDisplay: () => filterURLForDisplay,
524 getAuthority: () => getAuthority,
525 getFilename: () => getFilename,
526 getFragment: () => getFragment,
527 getPath: () => getPath,
528 getPathAndQueryString: () => getPathAndQueryString,
529 getProtocol: () => getProtocol,
530 getQueryArg: () => getQueryArg,
531 getQueryArgs: () => getQueryArgs,
532 getQueryString: () => getQueryString,
533 hasQueryArg: () => hasQueryArg,
534 isEmail: () => isEmail,
535 isPhoneNumber: () => isPhoneNumber,
536 isURL: () => isURL,
537 isValidAuthority: () => isValidAuthority,
538 isValidFragment: () => isValidFragment,
539 isValidPath: () => isValidPath,
540 isValidProtocol: () => isValidProtocol,
541 isValidQueryString: () => isValidQueryString,
542 normalizePath: () => normalizePath,
543 prependHTTP: () => prependHTTP,
544 prependHTTPS: () => prependHTTPS,
545 removeQueryArgs: () => removeQueryArgs,
546 safeDecodeURI: () => safeDecodeURI,
547 safeDecodeURIComponent: () => safeDecodeURIComponent
548 });
549
550 // packages/url/build-module/is-url.mjs
551 function isURL(url) {
552 try {
553 new URL(url);
554 return true;
555 } catch {
556 return false;
557 }
558 }
559
560 // packages/url/build-module/is-email.mjs
561 var EMAIL_REGEXP = /^(mailto:)?[a-z0-9._%+-]+@[a-z0-9][a-z0-9.-]*\.[a-z]{2,63}$/i;
562 function isEmail(email) {
563 return EMAIL_REGEXP.test(email);
564 }
565
566 // packages/url/build-module/is-phone-number.mjs
567 var PHONE_REGEXP = /^(tel:)?(\+)?\d{6,15}$/;
568 function isPhoneNumber(phoneNumber) {
569 phoneNumber = phoneNumber.replace(/[-.() ]/g, "");
570 return PHONE_REGEXP.test(phoneNumber);
571 }
572
573 // packages/url/build-module/get-protocol.mjs
574 function getProtocol(url) {
575 const matches = /^([^\s:]+:)/.exec(url);
576 if (matches) {
577 return matches[1];
578 }
579 }
580
581 // packages/url/build-module/is-valid-protocol.mjs
582 function isValidProtocol(protocol) {
583 if (!protocol) {
584 return false;
585 }
586 return /^[a-z\-.\+]+[0-9]*:$/i.test(protocol);
587 }
588
589 // packages/url/build-module/get-authority.mjs
590 function getAuthority(url) {
591 const matches = /^[^\/\s:]+:(?:\/\/)?\/?([^\/\s#?]+)[\/#?]{0,1}\S*$/.exec(
592 url
593 );
594 if (matches) {
595 return matches[1];
596 }
597 }
598
599 // packages/url/build-module/is-valid-authority.mjs
600 function isValidAuthority(authority) {
601 if (!authority) {
602 return false;
603 }
604 return /^[^\s#?]+$/.test(authority);
605 }
606
607 // packages/url/build-module/get-path.mjs
608 function getPath(url) {
609 const matches = /^[^\/\s:]+:(?:\/\/)?[^\/\s#?]+[\/]([^\s#?]+)[#?]{0,1}\S*$/.exec(url);
610 if (matches) {
611 return matches[1];
612 }
613 }
614
615 // packages/url/build-module/is-valid-path.mjs
616 function isValidPath(path) {
617 if (!path) {
618 return false;
619 }
620 return /^[^\s#?]+$/.test(path);
621 }
622
623 // packages/url/build-module/get-query-string.mjs
624 function getQueryString(url) {
625 let query;
626 try {
627 query = new URL(url, "http://example.com").search.substring(1);
628 } catch (error) {
629 }
630 if (query) {
631 return query;
632 }
633 }
634
635 // packages/url/build-module/build-query-string.mjs
636 function buildQueryString(data) {
637 let string = "";
638 const stack = Object.entries(data);
639 let pair;
640 while (pair = stack.shift()) {
641 let [key, value] = pair;
642 const hasNestedData = Array.isArray(value) || value && value.constructor === Object;
643 if (hasNestedData) {
644 const valuePairs = Object.entries(value).reverse();
645 for (const [member, memberValue] of valuePairs) {
646 stack.unshift([`${key}[${member}]`, memberValue]);
647 }
648 } else if (value !== void 0) {
649 if (value === null) {
650 value = "";
651 }
652 string += "&" + [key, String(value)].map(encodeURIComponent).join("=");
653 }
654 }
655 return string.substr(1);
656 }
657
658 // packages/url/build-module/is-valid-query-string.mjs
659 function isValidQueryString(queryString) {
660 if (!queryString) {
661 return false;
662 }
663 return /^[^\s#?\/]+$/.test(queryString);
664 }
665
666 // packages/url/build-module/get-path-and-query-string.mjs
667 function getPathAndQueryString(url) {
668 const path = getPath(url);
669 const queryString = getQueryString(url);
670 let value = "/";
671 if (path) {
672 value += path;
673 }
674 if (queryString) {
675 value += `?${queryString}`;
676 }
677 return value;
678 }
679
680 // packages/url/build-module/get-fragment.mjs
681 function getFragment(url) {
682 const matches = /^\S+?(#[^\s\?]*)/.exec(url);
683 if (matches) {
684 return matches[1];
685 }
686 }
687
688 // packages/url/build-module/is-valid-fragment.mjs
689 function isValidFragment(fragment) {
690 if (!fragment) {
691 return false;
692 }
693 return /^#[^\s#?\/]*$/.test(fragment);
694 }
695
696 // packages/url/build-module/safe-decode-uri-component.mjs
697 function safeDecodeURIComponent(uriComponent) {
698 try {
699 return decodeURIComponent(uriComponent);
700 } catch (uriComponentError) {
701 return uriComponent;
702 }
703 }
704
705 // packages/url/build-module/get-query-args.mjs
706 function setPath(object, path, value) {
707 const length = path.length;
708 const lastIndex = length - 1;
709 for (let i = 0; i < length; i++) {
710 let key = path[i];
711 if (!key && Array.isArray(object)) {
712 key = object.length.toString();
713 }
714 key = ["__proto__", "constructor", "prototype"].includes(key) ? key.toUpperCase() : key;
715 const isNextKeyArrayIndex = !isNaN(Number(path[i + 1]));
716 object[key] = i === lastIndex ? (
717 // If at end of path, assign the intended value.
718 value
719 ) : (
720 // Otherwise, advance to the next object in the path, creating
721 // it if it does not yet exist.
722 object[key] || (isNextKeyArrayIndex ? [] : {})
723 );
724 if (Array.isArray(object[key]) && !isNextKeyArrayIndex) {
725 object[key] = { ...object[key] };
726 }
727 object = object[key];
728 }
729 }
730 function getQueryArgs(url) {
731 return (getQueryString(url) || "").replace(/\+/g, "%20").split("&").reduce((accumulator, keyValue) => {
732 const [key, value = ""] = keyValue.split("=").filter(Boolean).map(safeDecodeURIComponent);
733 if (key) {
734 const segments = key.replace(/\]/g, "").split("[");
735 setPath(accumulator, segments, value);
736 }
737 return accumulator;
738 }, /* @__PURE__ */ Object.create(null));
739 }
740
741 // packages/url/build-module/add-query-args.mjs
742 function addQueryArgs(url = "", args) {
743 if (!args || !Object.keys(args).length) {
744 return url;
745 }
746 const fragment = getFragment(url) || "";
747 let baseUrl = url.replace(fragment, "");
748 const queryStringIndex = url.indexOf("?");
749 if (queryStringIndex !== -1) {
750 args = Object.assign(getQueryArgs(url), args);
751 baseUrl = baseUrl.substr(0, queryStringIndex);
752 }
753 return baseUrl + "?" + buildQueryString(args) + fragment;
754 }
755
756 // packages/url/build-module/get-query-arg.mjs
757 function getQueryArg(url, arg) {
758 return getQueryArgs(url)[arg];
759 }
760
761 // packages/url/build-module/has-query-arg.mjs
762 function hasQueryArg(url, arg) {
763 return getQueryArg(url, arg) !== void 0;
764 }
765
766 // packages/url/build-module/remove-query-args.mjs
767 function removeQueryArgs(url, ...args) {
768 const fragment = url.replace(/^[^#]*/, "");
769 url = url.replace(/#.*/, "");
770 const queryStringIndex = url.indexOf("?");
771 if (queryStringIndex === -1) {
772 return url + fragment;
773 }
774 const query = getQueryArgs(url);
775 const baseURL = url.substr(0, queryStringIndex);
776 args.forEach((arg) => delete query[arg]);
777 const queryString = buildQueryString(query);
778 const updatedUrl = queryString ? baseURL + "?" + queryString : baseURL;
779 return updatedUrl + fragment;
780 }
781
782 // packages/url/build-module/prepend-http.mjs
783 var USABLE_HREF_REGEXP = /^(?:[a-z]+:|#|\?|\.|\/)/i;
784 function prependHTTP(url) {
785 if (!url) {
786 return url;
787 }
788 url = url.trim();
789 if (!USABLE_HREF_REGEXP.test(url) && !isEmail(url)) {
790 return "http://" + url;
791 }
792 return url;
793 }
794
795 // packages/url/build-module/safe-decode-uri.mjs
796 function safeDecodeURI(uri) {
797 try {
798 return decodeURI(uri);
799 } catch (uriError) {
800 return uri;
801 }
802 }
803
804 // packages/url/build-module/filter-url-for-display.mjs
805 function filterURLForDisplay(url, maxLength = null) {
806 if (!url) {
807 return "";
808 }
809 let filteredURL = url.replace(/^[a-z\-.\+]+[0-9]*:(\/\/)?/i, "").replace(/^www\./i, "");
810 if (filteredURL.match(/^[^\/]+\/$/)) {
811 filteredURL = filteredURL.replace("/", "");
812 }
813 const fileRegexp = /\/([^\/?]+)\.(?:[\w]+)(?=\?|$)/;
814 if (!maxLength || filteredURL.length <= maxLength || !filteredURL.match(fileRegexp)) {
815 return filteredURL;
816 }
817 filteredURL = filteredURL.split("?")[0];
818 const urlPieces = filteredURL.split("/");
819 const file = urlPieces[urlPieces.length - 1];
820 if (file.length <= maxLength) {
821 return "\u2026" + filteredURL.slice(-maxLength);
822 }
823 const index = file.lastIndexOf(".");
824 const [fileName, extension] = [
825 file.slice(0, index),
826 file.slice(index + 1)
827 ];
828 const truncatedFile = fileName.slice(-3) + "." + extension;
829 return file.slice(0, maxLength - truncatedFile.length - 1) + "\u2026" + truncatedFile;
830 }
831
832 // packages/url/build-module/clean-for-slug.mjs
833 var import_remove_accents = __toESM(require_remove_accents(), 1);
834 function cleanForSlug(string) {
835 if (!string) {
836 return "";
837 }
838 return (0, import_remove_accents.default)(string).replace(/(&nbsp;|&ndash;|&mdash;)/g, "-").replace(/[\s\./]+/g, "-").replace(/&\S+?;/g, "").replace(/[^\p{L}\p{N}_-]+/gu, "").toLowerCase().replace(/-+/g, "-").replace(/(^-+)|(-+$)/g, "");
839 }
840
841 // packages/url/build-module/get-filename.mjs
842 function getFilename(url) {
843 let filename;
844 if (!url) {
845 return;
846 }
847 try {
848 filename = new URL(url, "http://example.com").pathname.split("/").pop();
849 } catch (error) {
850 }
851 if (filename) {
852 return filename;
853 }
854 }
855
856 // packages/url/build-module/normalize-path.mjs
857 function normalizePath(path) {
858 const split = path.split("?");
859 const query = split[1];
860 const base = split[0];
861 if (!query) {
862 return base;
863 }
864 return base + "?" + query.split("&").map((entry) => entry.split("=")).map((pair) => pair.map(decodeURIComponent)).sort((a, b) => a[0].localeCompare(b[0])).map((pair) => pair.map(encodeURIComponent)).map((pair) => pair.join("=")).join("&");
865 }
866
867 // packages/url/build-module/prepend-https.mjs
868 function prependHTTPS(url) {
869 if (!url) {
870 return url;
871 }
872 if (url.startsWith("http://")) {
873 return url;
874 }
875 url = prependHTTP(url);
876 return url.replace(/^http:/, "https:");
877 }
878 return __toCommonJS(index_exports);
879 })();
880 //# sourceMappingURL=index.js.map
881