You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
	
	
		
			191 lines
		
	
	
		
			7.1 KiB
		
	
	
	
		
			JavaScript
		
	
		
		
			
		
	
	
			191 lines
		
	
	
		
			7.1 KiB
		
	
	
	
		
			JavaScript
		
	
| 
											9 months ago
										 | "use strict"; | ||
|  | Object.defineProperty(exports, "__esModule", { | ||
|  |     value: true | ||
|  | }); | ||
|  | Object.defineProperty(exports, "NextURL", { | ||
|  |     enumerable: true, | ||
|  |     get: function() { | ||
|  |         return NextURL; | ||
|  |     } | ||
|  | }); | ||
|  | const _detectdomainlocale = require("../../shared/lib/i18n/detect-domain-locale"); | ||
|  | const _formatnextpathnameinfo = require("../../shared/lib/router/utils/format-next-pathname-info"); | ||
|  | const _gethostname = require("../../shared/lib/get-hostname"); | ||
|  | const _getnextpathnameinfo = require("../../shared/lib/router/utils/get-next-pathname-info"); | ||
|  | const REGEX_LOCALHOST_HOSTNAME = /(?!^https?:\/\/)(127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}|\[::1\]|localhost)/; | ||
|  | function parseURL(url, base) { | ||
|  |     return new URL(String(url).replace(REGEX_LOCALHOST_HOSTNAME, "localhost"), base && String(base).replace(REGEX_LOCALHOST_HOSTNAME, "localhost")); | ||
|  | } | ||
|  | const Internal = Symbol("NextURLInternal"); | ||
|  | class NextURL { | ||
|  |     constructor(input, baseOrOpts, opts){ | ||
|  |         let base; | ||
|  |         let options; | ||
|  |         if (typeof baseOrOpts === "object" && "pathname" in baseOrOpts || typeof baseOrOpts === "string") { | ||
|  |             base = baseOrOpts; | ||
|  |             options = opts || {}; | ||
|  |         } else { | ||
|  |             options = opts || baseOrOpts || {}; | ||
|  |         } | ||
|  |         this[Internal] = { | ||
|  |             url: parseURL(input, base ?? options.base), | ||
|  |             options: options, | ||
|  |             basePath: "" | ||
|  |         }; | ||
|  |         this.analyze(); | ||
|  |     } | ||
|  |     analyze() { | ||
|  |         var _this_Internal_options_nextConfig_i18n, _this_Internal_options_nextConfig, _this_Internal_domainLocale, _this_Internal_options_nextConfig_i18n1, _this_Internal_options_nextConfig1; | ||
|  |         const info = (0, _getnextpathnameinfo.getNextPathnameInfo)(this[Internal].url.pathname, { | ||
|  |             nextConfig: this[Internal].options.nextConfig, | ||
|  |             parseData: !process.env.__NEXT_NO_MIDDLEWARE_URL_NORMALIZE, | ||
|  |             i18nProvider: this[Internal].options.i18nProvider | ||
|  |         }); | ||
|  |         const hostname = (0, _gethostname.getHostname)(this[Internal].url, this[Internal].options.headers); | ||
|  |         this[Internal].domainLocale = this[Internal].options.i18nProvider ? this[Internal].options.i18nProvider.detectDomainLocale(hostname) : (0, _detectdomainlocale.detectDomainLocale)((_this_Internal_options_nextConfig = this[Internal].options.nextConfig) == null ? void 0 : (_this_Internal_options_nextConfig_i18n = _this_Internal_options_nextConfig.i18n) == null ? void 0 : _this_Internal_options_nextConfig_i18n.domains, hostname); | ||
|  |         const defaultLocale = ((_this_Internal_domainLocale = this[Internal].domainLocale) == null ? void 0 : _this_Internal_domainLocale.defaultLocale) || ((_this_Internal_options_nextConfig1 = this[Internal].options.nextConfig) == null ? void 0 : (_this_Internal_options_nextConfig_i18n1 = _this_Internal_options_nextConfig1.i18n) == null ? void 0 : _this_Internal_options_nextConfig_i18n1.defaultLocale); | ||
|  |         this[Internal].url.pathname = info.pathname; | ||
|  |         this[Internal].defaultLocale = defaultLocale; | ||
|  |         this[Internal].basePath = info.basePath ?? ""; | ||
|  |         this[Internal].buildId = info.buildId; | ||
|  |         this[Internal].locale = info.locale ?? defaultLocale; | ||
|  |         this[Internal].trailingSlash = info.trailingSlash; | ||
|  |     } | ||
|  |     formatPathname() { | ||
|  |         return (0, _formatnextpathnameinfo.formatNextPathnameInfo)({ | ||
|  |             basePath: this[Internal].basePath, | ||
|  |             buildId: this[Internal].buildId, | ||
|  |             defaultLocale: !this[Internal].options.forceLocale ? this[Internal].defaultLocale : undefined, | ||
|  |             locale: this[Internal].locale, | ||
|  |             pathname: this[Internal].url.pathname, | ||
|  |             trailingSlash: this[Internal].trailingSlash | ||
|  |         }); | ||
|  |     } | ||
|  |     formatSearch() { | ||
|  |         return this[Internal].url.search; | ||
|  |     } | ||
|  |     get buildId() { | ||
|  |         return this[Internal].buildId; | ||
|  |     } | ||
|  |     set buildId(buildId) { | ||
|  |         this[Internal].buildId = buildId; | ||
|  |     } | ||
|  |     get locale() { | ||
|  |         return this[Internal].locale ?? ""; | ||
|  |     } | ||
|  |     set locale(locale) { | ||
|  |         var _this_Internal_options_nextConfig_i18n, _this_Internal_options_nextConfig; | ||
|  |         if (!this[Internal].locale || !((_this_Internal_options_nextConfig = this[Internal].options.nextConfig) == null ? void 0 : (_this_Internal_options_nextConfig_i18n = _this_Internal_options_nextConfig.i18n) == null ? void 0 : _this_Internal_options_nextConfig_i18n.locales.includes(locale))) { | ||
|  |             throw new TypeError(`The NextURL configuration includes no locale "${locale}"`); | ||
|  |         } | ||
|  |         this[Internal].locale = locale; | ||
|  |     } | ||
|  |     get defaultLocale() { | ||
|  |         return this[Internal].defaultLocale; | ||
|  |     } | ||
|  |     get domainLocale() { | ||
|  |         return this[Internal].domainLocale; | ||
|  |     } | ||
|  |     get searchParams() { | ||
|  |         return this[Internal].url.searchParams; | ||
|  |     } | ||
|  |     get host() { | ||
|  |         return this[Internal].url.host; | ||
|  |     } | ||
|  |     set host(value) { | ||
|  |         this[Internal].url.host = value; | ||
|  |     } | ||
|  |     get hostname() { | ||
|  |         return this[Internal].url.hostname; | ||
|  |     } | ||
|  |     set hostname(value) { | ||
|  |         this[Internal].url.hostname = value; | ||
|  |     } | ||
|  |     get port() { | ||
|  |         return this[Internal].url.port; | ||
|  |     } | ||
|  |     set port(value) { | ||
|  |         this[Internal].url.port = value; | ||
|  |     } | ||
|  |     get protocol() { | ||
|  |         return this[Internal].url.protocol; | ||
|  |     } | ||
|  |     set protocol(value) { | ||
|  |         this[Internal].url.protocol = value; | ||
|  |     } | ||
|  |     get href() { | ||
|  |         const pathname = this.formatPathname(); | ||
|  |         const search = this.formatSearch(); | ||
|  |         return `${this.protocol}//${this.host}${pathname}${search}${this.hash}`; | ||
|  |     } | ||
|  |     set href(url) { | ||
|  |         this[Internal].url = parseURL(url); | ||
|  |         this.analyze(); | ||
|  |     } | ||
|  |     get origin() { | ||
|  |         return this[Internal].url.origin; | ||
|  |     } | ||
|  |     get pathname() { | ||
|  |         return this[Internal].url.pathname; | ||
|  |     } | ||
|  |     set pathname(value) { | ||
|  |         this[Internal].url.pathname = value; | ||
|  |     } | ||
|  |     get hash() { | ||
|  |         return this[Internal].url.hash; | ||
|  |     } | ||
|  |     set hash(value) { | ||
|  |         this[Internal].url.hash = value; | ||
|  |     } | ||
|  |     get search() { | ||
|  |         return this[Internal].url.search; | ||
|  |     } | ||
|  |     set search(value) { | ||
|  |         this[Internal].url.search = value; | ||
|  |     } | ||
|  |     get password() { | ||
|  |         return this[Internal].url.password; | ||
|  |     } | ||
|  |     set password(value) { | ||
|  |         this[Internal].url.password = value; | ||
|  |     } | ||
|  |     get username() { | ||
|  |         return this[Internal].url.username; | ||
|  |     } | ||
|  |     set username(value) { | ||
|  |         this[Internal].url.username = value; | ||
|  |     } | ||
|  |     get basePath() { | ||
|  |         return this[Internal].basePath; | ||
|  |     } | ||
|  |     set basePath(value) { | ||
|  |         this[Internal].basePath = value.startsWith("/") ? value : `/${value}`; | ||
|  |     } | ||
|  |     toString() { | ||
|  |         return this.href; | ||
|  |     } | ||
|  |     toJSON() { | ||
|  |         return this.href; | ||
|  |     } | ||
|  |     [Symbol.for("edge-runtime.inspect.custom")]() { | ||
|  |         return { | ||
|  |             href: this.href, | ||
|  |             origin: this.origin, | ||
|  |             protocol: this.protocol, | ||
|  |             username: this.username, | ||
|  |             password: this.password, | ||
|  |             host: this.host, | ||
|  |             hostname: this.hostname, | ||
|  |             port: this.port, | ||
|  |             pathname: this.pathname, | ||
|  |             search: this.search, | ||
|  |             searchParams: this.searchParams, | ||
|  |             hash: this.hash | ||
|  |         }; | ||
|  |     } | ||
|  |     clone() { | ||
|  |         return new NextURL(String(this), this[Internal].options); | ||
|  |     } | ||
|  | } | ||
|  | 
 | ||
|  | //# sourceMappingURL=next-url.js.map
 |