@tarojs/runtime 4.1.4 → 4.1.5-beta.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/dist/bom/URL.js CHANGED
@@ -181,7 +181,7 @@ function parseUrl(url = '') {
181
181
  result.search = matches[10] || '';
182
182
  result.hash = matches[12] || '';
183
183
  result.href = url;
184
- result.origin = result.protocol + '//' + result.hostname;
184
+ result.origin = result.protocol + '//' + result.hostname + (result.port ? `:${result.port}` : '');
185
185
  result.host = result.hostname + (result.port ? `:${result.port}` : '');
186
186
  return result;
187
187
  }
@@ -1 +1 @@
1
- {"version":3,"file":"URL.js","sources":["../../../src/bom/URL.ts"],"sourcesContent":["import { isString, isUndefined } from '@tarojs/shared'\n\nimport env from '../env'\nimport { URLSearchParams } from './URLSearchParams'\n\nclass TaroURL {\n static createObjectURL () {\n throw new Error('Oops, not support URL.createObjectURL() in miniprogram.')\n }\n\n static revokeObjectURL () {\n throw new Error('Oops, not support URL.revokeObjectURL() in miniprogram.')\n }\n\n /* private property */\n #hash = ''\n #hostname = ''\n #pathname = ''\n #port = ''\n #protocol = ''\n #search: URLSearchParams\n\n constructor (url: string, base?: string) {\n if (!isString(url)) url = String(url)\n\n const parseResult = parseUrlBase(url, base)\n const { hash, hostname, pathname, port, protocol, search } = parseResult\n\n this.#hash = hash\n this.#hostname = hostname\n this.#pathname = pathname || '/'\n this.#port = port\n this.#protocol = protocol\n this.#search = new URLSearchParams(search)\n }\n\n /* public property */\n get protocol () {\n return this.#protocol\n }\n\n set protocol (val: string) {\n isString(val) && (this.#protocol = val.trim())\n }\n\n get host () {\n return this.hostname + (this.port ? ':' + this.port : '')\n }\n\n set host (val: string) {\n if (val && isString(val)) {\n val = val.trim()\n const { hostname, port } = parseUrl(`//${val}`)\n this.hostname = hostname\n this.port = port\n }\n }\n\n get hostname () {\n return this.#hostname\n }\n\n set hostname (val: string) {\n val && isString(val) && (this.#hostname = val.trim())\n }\n\n get port () {\n return this.#port\n }\n\n set port (val: string) {\n isString(val) && (this.#port = val.trim())\n }\n\n get pathname () {\n return this.#pathname\n }\n\n set pathname (val: string) {\n if (isString(val)) {\n val = val.trim()\n const HEAD_REG = /^(\\/|\\.\\/|\\.\\.\\/)/\n let temp = val\n while (HEAD_REG.test(temp)) {\n temp = temp.replace(HEAD_REG, '')\n }\n if (temp) this.#pathname = '/' + temp\n else this.#pathname = '/'\n }\n }\n\n get search () {\n const val = this.#search.toString()\n return (val.length === 0 || val.startsWith('?')) ? val : `?${val}`\n }\n\n set search (val: string) {\n if (isString(val)) {\n val = val.trim()\n this.#search = new URLSearchParams(val)\n }\n }\n\n get hash () {\n return this.#hash\n }\n\n set hash (val: string) {\n if (isString(val)) {\n val = val.trim()\n if (val) this.#hash = val.startsWith('#') ? val : `#${val}`\n else this.#hash = ''\n }\n }\n\n get href () {\n return `${this.protocol}//${this.host}${this.pathname}${this.search}${this.hash}`\n }\n\n set href (val: string) {\n if (val && isString(val)) {\n val = val.trim()\n const { protocol, hostname, port, hash, search, pathname } = parseUrl(val)\n this.protocol = protocol\n this.hostname = hostname\n this.pathname = pathname\n this.port = port\n this.hash = hash\n this.search = search\n }\n }\n\n get origin () {\n return `${this.protocol}//${this.host}`\n }\n\n set origin (val: string) {\n if (val && isString(val)) {\n val = val.trim()\n const { protocol, hostname, port } = parseUrl(val)\n this.protocol = protocol\n this.hostname = hostname\n this.port = port\n }\n }\n\n get searchParams () {\n return this.#search\n }\n\n // public method\n toString () {\n return this.href\n }\n\n toJSON () {\n return this.toString()\n }\n\n // convenient for deconstructor\n _toRaw () {\n return {\n protocol: this.protocol,\n port: this.port,\n host: this.host,\n hostname: this.hostname,\n pathname: this.pathname,\n hash: this.hash,\n search: this.search,\n origin: this.origin,\n href: this.href,\n }\n }\n}\n\nexport type { TaroURL }\n\n// Note: 小程序端 vite 打包成 commonjs,const URL = xxx 会报错,所以把 URL 改为 TaroURLProvider\nexport const TaroURLProvider: typeof TaroURL = process.env.TARO_PLATFORM === 'web' ? env.window.URL : TaroURL\n\nexport function parseUrl (url = '') {\n const result = {\n href: '',\n origin: '',\n protocol: '',\n hostname: '',\n host: '',\n port: '',\n pathname: '',\n search: '',\n hash: ''\n }\n if (!url || !isString(url)) return result\n\n url = url.trim()\n const PATTERN = /^(([^:/?#]+):)?\\/\\/(([^/?#]+):(.+)@)?([^/?#:]*)(:(\\d+))?([^?#]*)(\\?([^#]*))?(#(.*))?/\n const matches = url.match(PATTERN)\n\n if (!matches) return result\n\n // TODO: username & password ?\n result.protocol = matches[1] || 'https:'\n result.hostname = matches[6] || 'taro.com'\n result.port = matches[8] || ''\n result.pathname = matches[9] || '/'\n result.search = matches[10] || ''\n result.hash = matches[12] || ''\n result.href = url\n result.origin = result.protocol + '//' + result.hostname\n result.host = result.hostname + (result.port ? `:${result.port}` : '')\n\n return result\n}\n\nfunction parseUrlBase (url: string, base?: string) {\n const VALID_URL = /^(https?:)\\/\\//i\n\n let fullUrl = ''\n let parsedBase: ReturnType<typeof parseUrl> | null = null\n\n if (!isUndefined(base)) {\n base = String(base).trim()\n if (!VALID_URL.test(base)) throw new TypeError(`Failed to construct 'URL': Invalid base URL`)\n parsedBase = parseUrl(base)\n }\n\n url = String(url).trim()\n\n if (VALID_URL.test(url)) {\n fullUrl = url\n } else if (parsedBase) {\n if (url) {\n if (url.startsWith('//')) {\n fullUrl = parsedBase.protocol + url\n } else {\n fullUrl = parsedBase.origin + (url.startsWith('/') ? url : `/${url}`)\n }\n } else {\n fullUrl = parsedBase.href\n }\n } else {\n throw new TypeError(`Failed to construct 'URL': Invalid URL`)\n }\n\n return parseUrl(fullUrl)\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"URL.js","sources":["../../../src/bom/URL.ts"],"sourcesContent":["import { isString, isUndefined } from '@tarojs/shared'\n\nimport env from '../env'\nimport { URLSearchParams } from './URLSearchParams'\n\nclass TaroURL {\n static createObjectURL () {\n throw new Error('Oops, not support URL.createObjectURL() in miniprogram.')\n }\n\n static revokeObjectURL () {\n throw new Error('Oops, not support URL.revokeObjectURL() in miniprogram.')\n }\n\n /* private property */\n #hash = ''\n #hostname = ''\n #pathname = ''\n #port = ''\n #protocol = ''\n #search: URLSearchParams\n\n constructor (url: string, base?: string) {\n if (!isString(url)) url = String(url)\n\n const parseResult = parseUrlBase(url, base)\n const { hash, hostname, pathname, port, protocol, search } = parseResult\n\n this.#hash = hash\n this.#hostname = hostname\n this.#pathname = pathname || '/'\n this.#port = port\n this.#protocol = protocol\n this.#search = new URLSearchParams(search)\n }\n\n /* public property */\n get protocol () {\n return this.#protocol\n }\n\n set protocol (val: string) {\n isString(val) && (this.#protocol = val.trim())\n }\n\n get host () {\n return this.hostname + (this.port ? ':' + this.port : '')\n }\n\n set host (val: string) {\n if (val && isString(val)) {\n val = val.trim()\n const { hostname, port } = parseUrl(`//${val}`)\n this.hostname = hostname\n this.port = port\n }\n }\n\n get hostname () {\n return this.#hostname\n }\n\n set hostname (val: string) {\n val && isString(val) && (this.#hostname = val.trim())\n }\n\n get port () {\n return this.#port\n }\n\n set port (val: string) {\n isString(val) && (this.#port = val.trim())\n }\n\n get pathname () {\n return this.#pathname\n }\n\n set pathname (val: string) {\n if (isString(val)) {\n val = val.trim()\n const HEAD_REG = /^(\\/|\\.\\/|\\.\\.\\/)/\n let temp = val\n while (HEAD_REG.test(temp)) {\n temp = temp.replace(HEAD_REG, '')\n }\n if (temp) this.#pathname = '/' + temp\n else this.#pathname = '/'\n }\n }\n\n get search () {\n const val = this.#search.toString()\n return (val.length === 0 || val.startsWith('?')) ? val : `?${val}`\n }\n\n set search (val: string) {\n if (isString(val)) {\n val = val.trim()\n this.#search = new URLSearchParams(val)\n }\n }\n\n get hash () {\n return this.#hash\n }\n\n set hash (val: string) {\n if (isString(val)) {\n val = val.trim()\n if (val) this.#hash = val.startsWith('#') ? val : `#${val}`\n else this.#hash = ''\n }\n }\n\n get href () {\n return `${this.protocol}//${this.host}${this.pathname}${this.search}${this.hash}`\n }\n\n set href (val: string) {\n if (val && isString(val)) {\n val = val.trim()\n const { protocol, hostname, port, hash, search, pathname } = parseUrl(val)\n this.protocol = protocol\n this.hostname = hostname\n this.pathname = pathname\n this.port = port\n this.hash = hash\n this.search = search\n }\n }\n\n get origin () {\n return `${this.protocol}//${this.host}`\n }\n\n set origin (val: string) {\n if (val && isString(val)) {\n val = val.trim()\n const { protocol, hostname, port } = parseUrl(val)\n this.protocol = protocol\n this.hostname = hostname\n this.port = port\n }\n }\n\n get searchParams () {\n return this.#search\n }\n\n // public method\n toString () {\n return this.href\n }\n\n toJSON () {\n return this.toString()\n }\n\n // convenient for deconstructor\n _toRaw () {\n return {\n protocol: this.protocol,\n port: this.port,\n host: this.host,\n hostname: this.hostname,\n pathname: this.pathname,\n hash: this.hash,\n search: this.search,\n origin: this.origin,\n href: this.href,\n }\n }\n}\n\nexport type { TaroURL }\n\n// Note: 小程序端 vite 打包成 commonjs,const URL = xxx 会报错,所以把 URL 改为 TaroURLProvider\nexport const TaroURLProvider: typeof TaroURL = process.env.TARO_PLATFORM === 'web' ? env.window.URL : TaroURL\n\nexport function parseUrl (url = '') {\n const result = {\n href: '',\n origin: '',\n protocol: '',\n hostname: '',\n host: '',\n port: '',\n pathname: '',\n search: '',\n hash: ''\n }\n if (!url || !isString(url)) return result\n\n url = url.trim()\n const PATTERN = /^(([^:/?#]+):)?\\/\\/(([^/?#]+):(.+)@)?([^/?#:]*)(:(\\d+))?([^?#]*)(\\?([^#]*))?(#(.*))?/\n const matches = url.match(PATTERN)\n\n if (!matches) return result\n\n // TODO: username & password ?\n result.protocol = matches[1] || 'https:'\n result.hostname = matches[6] || 'taro.com'\n result.port = matches[8] || ''\n result.pathname = matches[9] || '/'\n result.search = matches[10] || ''\n result.hash = matches[12] || ''\n result.href = url\n result.origin = result.protocol + '//' + result.hostname + (result.port ? `:${result.port}` : '')\n result.host = result.hostname + (result.port ? `:${result.port}` : '')\n\n return result\n}\n\nfunction parseUrlBase (url: string, base?: string) {\n const VALID_URL = /^(https?:)\\/\\//i\n\n let fullUrl = ''\n let parsedBase: ReturnType<typeof parseUrl> | null = null\n\n if (!isUndefined(base)) {\n base = String(base).trim()\n if (!VALID_URL.test(base)) throw new TypeError(`Failed to construct 'URL': Invalid base URL`)\n parsedBase = parseUrl(base)\n }\n\n url = String(url).trim()\n\n if (VALID_URL.test(url)) {\n fullUrl = url\n } else if (parsedBase) {\n if (url) {\n if (url.startsWith('//')) {\n fullUrl = parsedBase.protocol + url\n } else {\n fullUrl = parsedBase.origin + (url.startsWith('/') ? url : `/${url}`)\n }\n } else {\n fullUrl = parsedBase.href\n }\n } else {\n throw new TypeError(`Failed to construct 'URL': Invalid URL`)\n }\n\n return parseUrl(fullUrl)\n}\n"],"names":[],"mappings":"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"}
package/dist/index.cjs.js CHANGED
@@ -690,7 +690,7 @@ function parseUrl(url = '') {
690
690
  result.search = matches[10] || '';
691
691
  result.hash = matches[12] || '';
692
692
  result.href = url;
693
- result.origin = result.protocol + '//' + result.hostname;
693
+ result.origin = result.protocol + '//' + result.hostname + (result.port ? `:${result.port}` : '');
694
694
  result.host = result.hostname + (result.port ? `:${result.port}` : '');
695
695
  return result;
696
696
  }