diff --git a/package-lock.json b/package-lock.json index fdaf789..a0138f8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,9 @@ "name": "@pushrocks/smarturl", "version": "3.0.0", "license": "MIT", + "dependencies": { + "parse-url": "^6.0.5" + }, "devDependencies": { "@gitzone/tsbuild": "^2.1.63", "@gitzone/tstest": "^1.0.72", @@ -2909,7 +2912,6 @@ "version": "1.0.2", "resolved": "https://verdaccio.lossless.one/call-bind/-/call-bind-1.0.2.tgz", "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, "license": "MIT", "dependencies": { "function-bind": "^1.1.1", @@ -3559,6 +3561,15 @@ } } }, + "node_modules/decode-uri-component": { + "version": "0.2.0", + "resolved": "https://verdaccio.lossless.one/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, "node_modules/decompress-response": { "version": "3.3.0", "resolved": "https://verdaccio.lossless.one/decompress-response/-/decompress-response-3.3.0.tgz", @@ -4627,6 +4638,15 @@ "node": ">=8" } }, + "node_modules/filter-obj": { + "version": "1.1.0", + "resolved": "https://verdaccio.lossless.one/filter-obj/-/filter-obj-1.1.0.tgz", + "integrity": "sha1-mzERErxsYSehbgFsbF1/GeCAXFs=", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/finalhandler": { "version": "1.2.0", "resolved": "https://verdaccio.lossless.one/finalhandler/-/finalhandler-1.2.0.tgz", @@ -4821,7 +4841,6 @@ "version": "1.1.1", "resolved": "https://verdaccio.lossless.one/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true, "license": "MIT" }, "node_modules/get-caller-file": { @@ -4838,7 +4857,6 @@ "version": "1.1.1", "resolved": "https://verdaccio.lossless.one/get-intrinsic/-/get-intrinsic-1.1.1.tgz", "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, "license": "MIT", "dependencies": { "function-bind": "^1.1.1", @@ -4964,7 +4982,6 @@ "version": "1.0.3", "resolved": "https://verdaccio.lossless.one/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, "license": "MIT", "dependencies": { "function-bind": "^1.1.1" @@ -4987,7 +5004,6 @@ "version": "1.0.2", "resolved": "https://verdaccio.lossless.one/has-symbols/-/has-symbols-1.0.2.tgz", "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.4" @@ -5414,6 +5430,21 @@ "dev": true, "license": "MIT" }, + "node_modules/is-ssh": { + "version": "1.4.0", + "resolved": "https://verdaccio.lossless.one/is-ssh/-/is-ssh-1.4.0.tgz", + "integrity": "sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ==", + "license": "MIT", + "dependencies": { + "protocols": "^2.0.1" + } + }, + "node_modules/is-ssh/node_modules/protocols": { + "version": "2.0.1", + "resolved": "https://verdaccio.lossless.one/protocols/-/protocols-2.0.1.tgz", + "integrity": "sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==", + "license": "MIT" + }, "node_modules/is-stream": { "version": "2.0.1", "resolved": "https://verdaccio.lossless.one/is-stream/-/is-stream-2.0.1.tgz", @@ -6381,7 +6412,6 @@ "version": "1.12.2", "resolved": "https://verdaccio.lossless.one/object-inspect/-/object-inspect-1.12.2.tgz", "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", - "dev": true, "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" @@ -6573,6 +6603,42 @@ "node": ">=6" } }, + "node_modules/parse-path": { + "version": "4.0.4", + "resolved": "https://verdaccio.lossless.one/parse-path/-/parse-path-4.0.4.tgz", + "integrity": "sha512-Z2lWUis7jlmXC1jeOG9giRO2+FsuyNipeQ43HAjqAZjwSe3SEf+q/84FGPHoso3kyntbxa4c4i77t3m6fGf8cw==", + "license": "MIT", + "dependencies": { + "is-ssh": "^1.3.0", + "protocols": "^1.4.0", + "qs": "^6.9.4", + "query-string": "^6.13.8" + } + }, + "node_modules/parse-url": { + "version": "6.0.5", + "resolved": "https://verdaccio.lossless.one/parse-url/-/parse-url-6.0.5.tgz", + "integrity": "sha512-e35AeLTSIlkw/5GFq70IN7po8fmDUjpDPY1rIK+VubRfsUvBonjQ+PBZG+vWMACnQSmNlvl524IucoDmcioMxA==", + "license": "MIT", + "dependencies": { + "is-ssh": "^1.3.0", + "normalize-url": "^6.1.0", + "parse-path": "^4.0.0", + "protocols": "^1.4.0" + } + }, + "node_modules/parse-url/node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://verdaccio.lossless.one/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/parse5": { "version": "6.0.1", "resolved": "https://verdaccio.lossless.one/parse5/-/parse5-6.0.1.tgz", @@ -6770,6 +6836,12 @@ "node": ">=0.4.0" } }, + "node_modules/protocols": { + "version": "1.4.8", + "resolved": "https://verdaccio.lossless.one/protocols/-/protocols-1.4.8.tgz", + "integrity": "sha512-IgjKyaUSjsROSO8/D49Ab7hP8mJgTYcqApOqdPhLoPxAplXmkp+zRvsrSQjFn5by0rhm4VH0GAUELIPpx7B1yg==", + "license": "MIT" + }, "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://verdaccio.lossless.one/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -6885,7 +6957,6 @@ "version": "6.10.3", "resolved": "https://verdaccio.lossless.one/qs/-/qs-6.10.3.tgz", "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", - "dev": true, "license": "BSD-3-Clause", "dependencies": { "side-channel": "^1.0.4" @@ -6897,6 +6968,24 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/query-string": { + "version": "6.14.1", + "resolved": "https://verdaccio.lossless.one/query-string/-/query-string-6.14.1.tgz", + "integrity": "sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw==", + "license": "MIT", + "dependencies": { + "decode-uri-component": "^0.2.0", + "filter-obj": "^1.1.0", + "split-on-first": "^1.0.0", + "strict-uri-encode": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/querystring": { "version": "0.2.0", "resolved": "https://verdaccio.lossless.one/querystring/-/querystring-0.2.0.tgz", @@ -7338,7 +7427,6 @@ "version": "1.0.4", "resolved": "https://verdaccio.lossless.one/side-channel/-/side-channel-1.0.4.tgz", "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.0", @@ -7518,6 +7606,15 @@ "which": "bin/which" } }, + "node_modules/split-on-first": { + "version": "1.1.0", + "resolved": "https://verdaccio.lossless.one/split-on-first/-/split-on-first-1.1.0.tgz", + "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://verdaccio.lossless.one/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -7535,6 +7632,15 @@ "node": ">= 0.8" } }, + "node_modules/strict-uri-encode": { + "version": "2.0.0", + "resolved": "https://verdaccio.lossless.one/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", + "integrity": "sha1-ucczDHBChi9rFC3CdLvMWGbONUY=", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://verdaccio.lossless.one/string_decoder/-/string_decoder-1.3.0.tgz", @@ -10836,7 +10942,6 @@ "version": "1.0.2", "resolved": "https://verdaccio.lossless.one/call-bind/-/call-bind-1.0.2.tgz", "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, "requires": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" @@ -11308,6 +11413,11 @@ "ms": "2.1.2" } }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://verdaccio.lossless.one/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + }, "decompress-response": { "version": "3.3.0", "resolved": "https://verdaccio.lossless.one/decompress-response/-/decompress-response-3.3.0.tgz", @@ -11946,6 +12056,11 @@ "to-regex-range": "^5.0.1" } }, + "filter-obj": { + "version": "1.1.0", + "resolved": "https://verdaccio.lossless.one/filter-obj/-/filter-obj-1.1.0.tgz", + "integrity": "sha1-mzERErxsYSehbgFsbF1/GeCAXFs=" + }, "finalhandler": { "version": "1.2.0", "resolved": "https://verdaccio.lossless.one/finalhandler/-/finalhandler-1.2.0.tgz", @@ -12099,8 +12214,7 @@ "function-bind": { "version": "1.1.1", "resolved": "https://verdaccio.lossless.one/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "get-caller-file": { "version": "2.0.5", @@ -12112,7 +12226,6 @@ "version": "1.1.1", "resolved": "https://verdaccio.lossless.one/get-intrinsic/-/get-intrinsic-1.1.1.tgz", "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -12202,7 +12315,6 @@ "version": "1.0.3", "resolved": "https://verdaccio.lossless.one/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, "requires": { "function-bind": "^1.1.1" } @@ -12216,8 +12328,7 @@ "has-symbols": { "version": "1.0.2", "resolved": "https://verdaccio.lossless.one/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" }, "has-tostringtag": { "version": "1.0.0", @@ -12499,6 +12610,21 @@ "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", "dev": true }, + "is-ssh": { + "version": "1.4.0", + "resolved": "https://verdaccio.lossless.one/is-ssh/-/is-ssh-1.4.0.tgz", + "integrity": "sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ==", + "requires": { + "protocols": "^2.0.1" + }, + "dependencies": { + "protocols": { + "version": "2.0.1", + "resolved": "https://verdaccio.lossless.one/protocols/-/protocols-2.0.1.tgz", + "integrity": "sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==" + } + } + }, "is-stream": { "version": "2.0.1", "resolved": "https://verdaccio.lossless.one/is-stream/-/is-stream-2.0.1.tgz", @@ -13200,8 +13326,7 @@ "object-inspect": { "version": "1.12.2", "resolved": "https://verdaccio.lossless.one/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", - "dev": true + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" }, "object-keys": { "version": "1.1.1", @@ -13326,6 +13451,35 @@ "integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==", "dev": true }, + "parse-path": { + "version": "4.0.4", + "resolved": "https://verdaccio.lossless.one/parse-path/-/parse-path-4.0.4.tgz", + "integrity": "sha512-Z2lWUis7jlmXC1jeOG9giRO2+FsuyNipeQ43HAjqAZjwSe3SEf+q/84FGPHoso3kyntbxa4c4i77t3m6fGf8cw==", + "requires": { + "is-ssh": "^1.3.0", + "protocols": "^1.4.0", + "qs": "^6.9.4", + "query-string": "^6.13.8" + } + }, + "parse-url": { + "version": "6.0.5", + "resolved": "https://verdaccio.lossless.one/parse-url/-/parse-url-6.0.5.tgz", + "integrity": "sha512-e35AeLTSIlkw/5GFq70IN7po8fmDUjpDPY1rIK+VubRfsUvBonjQ+PBZG+vWMACnQSmNlvl524IucoDmcioMxA==", + "requires": { + "is-ssh": "^1.3.0", + "normalize-url": "^6.1.0", + "parse-path": "^4.0.0", + "protocols": "^1.4.0" + }, + "dependencies": { + "normalize-url": { + "version": "6.1.0", + "resolved": "https://verdaccio.lossless.one/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" + } + } + }, "parse5": { "version": "6.0.1", "resolved": "https://verdaccio.lossless.one/parse5/-/parse5-6.0.1.tgz", @@ -13457,6 +13611,11 @@ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true }, + "protocols": { + "version": "1.4.8", + "resolved": "https://verdaccio.lossless.one/protocols/-/protocols-1.4.8.tgz", + "integrity": "sha512-IgjKyaUSjsROSO8/D49Ab7hP8mJgTYcqApOqdPhLoPxAplXmkp+zRvsrSQjFn5by0rhm4VH0GAUELIPpx7B1yg==" + }, "proxy-addr": { "version": "2.0.7", "resolved": "https://verdaccio.lossless.one/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -13539,11 +13698,21 @@ "version": "6.10.3", "resolved": "https://verdaccio.lossless.one/qs/-/qs-6.10.3.tgz", "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", - "dev": true, "requires": { "side-channel": "^1.0.4" } }, + "query-string": { + "version": "6.14.1", + "resolved": "https://verdaccio.lossless.one/query-string/-/query-string-6.14.1.tgz", + "integrity": "sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw==", + "requires": { + "decode-uri-component": "^0.2.0", + "filter-obj": "^1.1.0", + "split-on-first": "^1.0.0", + "strict-uri-encode": "^2.0.0" + } + }, "querystring": { "version": "0.2.0", "resolved": "https://verdaccio.lossless.one/querystring/-/querystring-0.2.0.tgz", @@ -13863,7 +14032,6 @@ "version": "1.0.4", "resolved": "https://verdaccio.lossless.one/side-channel/-/side-channel-1.0.4.tgz", "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, "requires": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", @@ -13997,6 +14165,11 @@ } } }, + "split-on-first": { + "version": "1.1.0", + "resolved": "https://verdaccio.lossless.one/split-on-first/-/split-on-first-1.1.0.tgz", + "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==" + }, "sprintf-js": { "version": "1.0.3", "resolved": "https://verdaccio.lossless.one/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -14009,6 +14182,11 @@ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true }, + "strict-uri-encode": { + "version": "2.0.0", + "resolved": "https://verdaccio.lossless.one/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", + "integrity": "sha1-ucczDHBChi9rFC3CdLvMWGbONUY=" + }, "string_decoder": { "version": "1.3.0", "resolved": "https://verdaccio.lossless.one/string_decoder/-/string_decoder-1.3.0.tgz", diff --git a/package.json b/package.json index df0ebdb..1b2b438 100644 --- a/package.json +++ b/package.json @@ -33,5 +33,8 @@ ], "browserslist": [ "last 1 chrome versions" - ] + ], + "dependencies": { + "parse-url": "^6.0.5" + } } diff --git a/ts/00_commitinfo_data.ts b/ts/00_commitinfo_data.ts index 64d1ed6..253c5b1 100644 --- a/ts/00_commitinfo_data.ts +++ b/ts/00_commitinfo_data.ts @@ -3,6 +3,6 @@ */ export const commitinfo = { name: '@pushrocks/smarturl', - version: '3.0.0', + version: '3.0.1', description: 'a url parsing lib' } diff --git a/ts/smarturl.classes.smarturl.ts b/ts/smarturl.classes.smarturl.ts index b79fcea..ee3eba7 100644 --- a/ts/smarturl.classes.smarturl.ts +++ b/ts/smarturl.classes.smarturl.ts @@ -27,13 +27,22 @@ export class Smarturl implements IUrlObject { searchParams?: ISearchParams; } ): Smarturl { - const parsedUrlInstance = new plugins.url.URL(urlArg); + const parsedUrlInstance = plugins.url(urlArg); const searchParams: ISearchParams = {}; // enrichment - const searchParamKeys = parsedUrlInstance.searchParams.keys(); - for (const key of searchParamKeys) { - searchParams[key] = parsedUrlInstance.searchParams.get(key); + const searchParamPairs = parsedUrlInstance.search + .replace('?', '') + .split('&') + .map((searchParamPair) => { + return { + key: searchParamPair.split('=')[0], + value: searchParamPair.split('=')[1], + }; + }); + + for (const searchParamPair of searchParamPairs) { + searchParams[searchParamPair.key] = searchParamPair.value; } if (optionsArg?.searchParams) { for (const key of Object.keys(optionsArg.searchParams)) { @@ -57,12 +66,12 @@ export class Smarturl implements IUrlObject { const parsedUrl: IUrlObject = { href: parsedUrlInstance.href, - origin: parsedUrlInstance.origin, + origin: `${parsedUrlInstance.protocol}://${parsedUrlInstance.resource}`, protocol: parsedUrlInstance.protocol, - username: parsedUrlInstance.username, - password: parsedUrlInstance.password, - host: parsedUrlInstance.host, - hostname: parsedUrlInstance.hostname, + username: parsedUrlInstance.user.split(':')[0], + password: parsedUrlInstance.user.split(':')[1] || '', + host: `${parsedUrlInstance.resource}:${parsedUrlInstance.port}`, + hostname: parsedUrlInstance.resource, port: parsedUrlInstance.port, path, pathname: parsedUrlInstance.pathname, diff --git a/ts/smarturl.plugins.ts b/ts/smarturl.plugins.ts index 6bc180a..a514329 100644 --- a/ts/smarturl.plugins.ts +++ b/ts/smarturl.plugins.ts @@ -1,4 +1,4 @@ // node native -import * as url from 'url'; +import { default as url } from 'parse-url'; export { url }; diff --git a/tsconfig.json b/tsconfig.json index 0e331cc..d7c6a1b 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -5,6 +5,6 @@ "target": "ES2022", "module": "ES2022", "moduleResolution": "nodenext", - "esModuleInterop": true + "esModuleInterop": true, } }