@adamlui/geolocate 2.0.0 → 2.0.2
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/README.md +19 -15
- package/dist/cli.min.js +8 -6
- package/dist/geolocate.min.js +1 -1
- package/docs/README.md +19 -15
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
### Fetch IP geolocation data from the CLI.
|
|
4
4
|
|
|
5
|
-
<a href="https://github.com/adamlui/js-utils/releases/tag/geolocate-2.0.
|
|
5
|
+
<a href="https://github.com/adamlui/js-utils/releases/tag/geolocate-2.0.2"><img height=31 src="https://img.shields.io/badge/Latest_Build-2.0.2-44cc11.svg?logo=icinga&logoColor=white&labelColor=464646&style=for-the-badge"></a>
|
|
6
6
|
<a href="https://www.npmjs.com/package/@adamlui/geolocate?activeTab=code"><img height=31 src="https://img.shields.io/npm/unpacked-size/%40adamlui%2Fgeolocate?style=for-the-badge&logo=ebox&logoColor=white&labelColor=464646&color=blue"></a>
|
|
7
|
-
<a href="https://github.com/adamlui/js-utils/blob/geolocate-2.0.
|
|
7
|
+
<a href="https://github.com/adamlui/js-utils/blob/geolocate-2.0.2/geolocate/dist/geolocate.min.js"><img height=31 src="https://img.shields.io/github/size/adamlui/js-utils/geolocate/dist/geolocate.min.js?branch=geolocate-2.0.2&label=Minified%20Size&logo=databricks&logoColor=white&labelColor=464646&color=ff69b4&style=for-the-badge"></a>
|
|
8
8
|
<a href="https://sonarcloud.io/component_measures?metric=new_vulnerabilities&id=adamlui_js-utils:geolocate/src/geolocate.js"><img height=31 src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fsonarcloud.io%2Fapi%2Fmeasures%2Fcomponent%3Fcomponent%3Dadamlui_js-utils%3Ageolocate%2Fsrc%2Fgeolocate.js%26metricKeys%3Dvulnerabilities&query=%24.component.measures.0.value&style=for-the-badge&logo=sonarcloud&logoColor=white&labelColor=464646&label=Vulnerabilities&color=gold"></a>
|
|
9
9
|
|
|
10
10
|
<br>
|
|
@@ -47,7 +47,7 @@ Sample output:
|
|
|
47
47
|
|
|
48
48
|
<img src="https://github.com/adamlui/js-utils/blob/main/geolocate/media/images/screenshots/cli-geolocate-8.8.8.8.jpg">
|
|
49
49
|
|
|
50
|
-
|
|
50
|
+
**📝 Note:** If no IPv4 address is passed, your own one will be used.
|
|
51
51
|
|
|
52
52
|
### Command line options
|
|
53
53
|
|
|
@@ -89,14 +89,14 @@ const geo = require('@adamlui/geolocate');
|
|
|
89
89
|
#### <> HTML script tag:
|
|
90
90
|
|
|
91
91
|
```html
|
|
92
|
-
<script src="https://cdn.jsdelivr.net/npm/@adamlui/geolocate@2.0.
|
|
92
|
+
<script src="https://cdn.jsdelivr.net/npm/@adamlui/geolocate@2.0.2/dist/geolocate.min.js"></script>
|
|
93
93
|
```
|
|
94
94
|
|
|
95
95
|
#### ES6:
|
|
96
96
|
|
|
97
97
|
```js
|
|
98
98
|
(async () => {
|
|
99
|
-
await import('https://cdn.jsdelivr.net/npm/@adamlui/geolocate@2.0.
|
|
99
|
+
await import('https://cdn.jsdelivr.net/npm/@adamlui/geolocate@2.0.2/dist/geolocate.min.js');
|
|
100
100
|
// Your code here...
|
|
101
101
|
})();
|
|
102
102
|
```
|
|
@@ -105,7 +105,7 @@ const geo = require('@adamlui/geolocate');
|
|
|
105
105
|
|
|
106
106
|
```js
|
|
107
107
|
...
|
|
108
|
-
// @require https://cdn.jsdelivr.net/npm/@adamlui/geolocate@2.0.
|
|
108
|
+
// @require https://cdn.jsdelivr.net/npm/@adamlui/geolocate@2.0.2/dist/geolocate.min.js
|
|
109
109
|
// ==/UserScript==
|
|
110
110
|
|
|
111
111
|
// Your code here...
|
|
@@ -113,7 +113,7 @@ const geo = require('@adamlui/geolocate');
|
|
|
113
113
|
|
|
114
114
|
<br>
|
|
115
115
|
|
|
116
|
-
|
|
116
|
+
**📝 Note:** To always import the latest version (not recommended in production!) remove the `@2.0.2` version tag from the jsDelivr URL: `https://cdn.jsdelivr.net/npm/@adamlui/geolocate/dist/geolocate.min.js`
|
|
117
117
|
|
|
118
118
|
<br>
|
|
119
119
|
|
|
@@ -123,9 +123,13 @@ const geo = require('@adamlui/geolocate');
|
|
|
123
123
|
|
|
124
124
|
### `locate([ips, options])`
|
|
125
125
|
|
|
126
|
-
Asynchronous method to fetch geolocation data for each `ip` passed in an array, returned as an array of data objects
|
|
126
|
+
💡 Asynchronous method to fetch geolocation data for each `ip` passed in an array, returned as an array of data objects.
|
|
127
|
+
|
|
128
|
+
Example:
|
|
127
129
|
|
|
128
130
|
```js
|
|
131
|
+
const geo = require('@adamlui/geolocate');
|
|
132
|
+
|
|
129
133
|
// Using await syntax
|
|
130
134
|
(async () => {
|
|
131
135
|
const location = await geo.locate('8.8.8.8');
|
|
@@ -138,7 +142,7 @@ geo.locate('8.8.8.8').then(location => {
|
|
|
138
142
|
});
|
|
139
143
|
|
|
140
144
|
/* outputs:
|
|
141
|
-
{
|
|
145
|
+
[{
|
|
142
146
|
ip: '8.8.8.8',
|
|
143
147
|
country: 'United States',
|
|
144
148
|
countryCode: 'US',
|
|
@@ -150,11 +154,11 @@ geo.locate('8.8.8.8').then(location => {
|
|
|
150
154
|
lon: -77.5,
|
|
151
155
|
timezone: 'America/New_York',
|
|
152
156
|
isp: 'Google LLC'
|
|
153
|
-
}
|
|
157
|
+
}]
|
|
154
158
|
*/
|
|
155
159
|
```
|
|
156
160
|
|
|
157
|
-
|
|
161
|
+
**📝 Note:** If no IPv4 address is passed, your own one will be used.
|
|
158
162
|
|
|
159
163
|
Available options (passed as object properties):
|
|
160
164
|
|
|
@@ -182,14 +186,14 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
|
|
|
182
186
|
|
|
183
187
|
## 🛠️ Related utilities
|
|
184
188
|
|
|
185
|
-
### <img height=
|
|
189
|
+
### <picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/adamlui/js-utils/main/generate-ip/media/images/icons/node-graph/white/icon55x49.png"><img height=21 src="https://raw.githubusercontent.com/adamlui/js-utils/main/generate-ip/media/images/icons/node-graph/black/icon55x49.png"></picture> [generate-ip](https://js-utils.com/generate-ip) <a href="https://github.com/toolleeo/cli-apps#networking"><img height=18 src="https://awesome.re/mentioned-badge.svg"></a>
|
|
186
190
|
|
|
187
191
|
> Randomly generate, format, and validate IPv4/IPv6 addresses.
|
|
188
192
|
<br>[Install](https://docs.js-utils.com/generate-ip/#-installation) /
|
|
189
193
|
[Readme](https://docs.js-utils.com/generate-ip/#readme) /
|
|
190
194
|
[API usage](https://docs.js-utils.com/generate-ip/#-api-usage) /
|
|
191
195
|
[CLI usage](https://docs.js-utils.com/generate-ip/#-command-line-usage) /
|
|
192
|
-
[Discuss](https://js-utils.com/discussions)
|
|
196
|
+
[Discuss](https://github.js-utils.com/discussions)
|
|
193
197
|
|
|
194
198
|
### [🔒 generate-pw](../generate-pw) <a href="https://github.com/toolleeo/cli-apps#password-managers"><img height=18 src="https://awesome.re/mentioned-badge.svg"></a>
|
|
195
199
|
|
|
@@ -198,12 +202,12 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
|
|
|
198
202
|
[Readme](https://docs.js-utils.com/generate-pw/#readme) /
|
|
199
203
|
[API usage](https://docs.js-utils.com/generate-pw/#-api-usage) /
|
|
200
204
|
[CLI usage](https://docs.js-utils.com/generate-pw/#-command-line-usage) /
|
|
201
|
-
[Discuss](https://js-utils.com/discussions)
|
|
205
|
+
[Discuss](https://github.js-utils.com/discussions)
|
|
202
206
|
|
|
203
207
|
<br>
|
|
204
208
|
|
|
205
209
|
<img height=6px width="100%" src="https://raw.githubusercontent.com/adamlui/js-utils/main/docs/images/aqua-separator.png">
|
|
206
210
|
|
|
207
211
|
<picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/adamlui/js-utils/main/media/images/icons/home/white/icon32x27.png"><img height=13 src="https://raw.githubusercontent.com/adamlui/js-utils/main/media/images/icons/home/dark-gray/icon32x27.png"></picture> <a href="https://js-utils.com">**More JavaScript utilities**</a> /
|
|
208
|
-
<a href="https://js-utils.com/discussions">Discuss</a> /
|
|
212
|
+
<a href="https://github.js-utils.com/discussions">Discuss</a> /
|
|
209
213
|
<a href="#-geolocate">Back to top ↑</a>
|
package/dist/cli.min.js
CHANGED
|
@@ -4,11 +4,13 @@
|
|
|
4
4
|
* Source: https://code.js-utils.com/geolocate
|
|
5
5
|
* Documentation: https://docs.js-utils.com/geolocate
|
|
6
6
|
*/
|
|
7
|
-
|
|
7
|
+
const pkgName="@adamlui/geolocate",docURL="https://docs.js-utils.com/geolocate/#-command-line-usage";(async()=>{const e=require(__dirname.match(/src/)?"./geolocate":"./geolocate.min"),s=require("fs"),n=require("path"),i=require("child_process")["execSync"],r="[0m",t="[1;33m",c="[1;97m",l={},a={flags:{quietMode:/^--?q(?:uiet)?(?:-?mode)?$/},infoCmds:{help:/^--?h(?:elp)?$/,version:/^--?ve?r?s?i?o?n?$/}};if(process.argv.forEach(o=>{var e,s;o.startsWith("-")&&(e=Object.keys(a.flags).find(e=>a.flags[e].test(o)),s=Object.keys(a.infoCmds).find(e=>a.infoCmds[e].test(o)),e?l[e]=!0:s||(console.error(`
|
|
8
8
|
[1;91mERROR: Arg [${o}] not recognized.[0m`),console.info(`
|
|
9
|
-
${t}Valid arguments are below.[0m`),
|
|
9
|
+
${t}Valid arguments are below.[0m`),d(["configOptions","infoCmds"]),console.info(`
|
|
10
10
|
${t}For more help, type 'minify-js --help' or visit
|
|
11
|
-
|
|
12
|
-
Global version: `+p),console.info("Local version: "+e)}else{var
|
|
13
|
-
IP: `+
|
|
14
|
-
${
|
|
11
|
+
`+docURL+r),process.exit(1)))}),process.argv.some(e=>a.infoCmds.help.test(e)))d();else if(process.argv.some(e=>a.infoCmds.version.test(e))){var p=i(`npm view ${pkgName} version`).toString().trim()||"none";let e,o=process.cwd();for(;"/"!=o;){var f=n.join(o,"package.json");if(s.existsSync(f)){f=require(f);e=(f.dependencies?.[pkgName]||f.devDependencies?.[pkgName])?.match(/(\d+\.\d+\.\d+)/)[0]||"none";break}o=n.dirname(o)}console.info(`
|
|
12
|
+
Global version: `+p),console.info("Local version: "+e)}else{var o,m=[];for(const h of process.argv.slice(2))h.startsWith("-")||(o=h.replace(/[[\]]/g,""),m.push(o));p=await e.locate(m,{verbose:!l.quietMode});p||process.exit(1),l.quietMode||1!=p.length||(console.info(`
|
|
13
|
+
IP: `+c+p[0].ip+r),console.info("Country: "+c+p[0].country+r),console.info("Region: "+c+p[0].regionName+r),console.info("City: "+c+p[0].city+r),console.info("Zip: "+c+p[0].zip+r),console.info("Latitude: "+c+p[0].lat+r),console.info("Longitude: "+c+p[0].lon+r),console.info("Time zone: "+c+p[0].timezone.replace(/_/g," ").replace(/\//g," / ")+r),console.info("ISP: "+c+p[0].isp+r)),l.quietMode||console.info("\nCopying to clipboard..."),g=(g=JSON.stringify(p)).replace(/\s+$/,"").replace(/"/g,'""'),"darwin"==process.platform?i(`printf "${g}" | pbcopy`):"linux"==process.platform?i(`printf "${g}" | xclip -selection clipboard`):"win32"==process.platform&&i(`Set-Clipboard -Value "${g}"`,{shell:"powershell"})}var g;function d(e=["usage","configOptions","infoCmds"]){const o={usage:[`
|
|
14
|
+
${c}Usage:[0m`," geolocate [ip1] [ip2] [...] [options|commands]"],configOptions:[`
|
|
15
|
+
${c}Config options:[0m`," -q, --quiet Suppress all logging except errors."],infoCmds:[`
|
|
16
|
+
${c}Info commands:[0m`," -h, --help Display help screen."," -v, --version Show version number."]};e.forEach(e=>{o[e]?.forEach(e=>{{const n=process.stdout.columns||80,i=[],o=e.match(/\S+|\s+/g);let s="";o.forEach(e=>{var o=n-(0==i.length?0:29);s.length+e.length>o&&(i.push(0==i.length?s:s.trimStart()),s=""),s+=e}),i.push(0==i.length?s:s.trimStart()),i.forEach((e,o)=>console.info(0==o?e:" ".repeat(29)+e))}})})}})();
|
package/dist/geolocate.min.js
CHANGED
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
* Source: https://code.js-utils.com/geolocate
|
|
4
4
|
* Documentation: https://docs.js-utils.com/geolocate
|
|
5
5
|
*/
|
|
6
|
-
async function geolocate(e,
|
|
6
|
+
async function geolocate(e,a={}){var o={verbose:!0};(e=Array.isArray(e)?e:[e])[0]=e[0]||await fetch("https://ifconfig.me/ip").then(e=>e.text()).catch(()=>fetch("http://ip-api.com/json/").then(e=>e.json()).then(e=>e.query)).catch(async()=>{try{var e=require("child_process")["exec"],o=require("util")["promisify"],{stdout:t,stderr:r}=await o(e)("curl -s ifconfig.me");return r?console.error("geolocate() »",r):t.trim()}catch(e){console.error("geolocate() »",e)}});for(const t of e){a.verbose&&console.info(`geolocate() » Validating ${t}...`);let o;try{o=require("generate-ip").ipv4.validate}catch(e){await import("https://cdn.jsdelivr.net/npm/generate-ip/dist/generate-ip.min.js"),o=ipv4.validate}if(o&&!o(t,{verbose:!1}))return console.error(`geolocate() » ERROR: ${t} is not a valid IPv4 address.`)}if(validateOptions(a,o,"https://docs.js-utils.com/geolocate/#locateip","geolocate('8.8.8.8', { verbose: false })")){a={...o,...a};try{var c=[];for(const s of e){a.verbose&&console.info(`geolocate() » Fetching geolocation data for ${s}...`);let e;if("undefined"!=typeof fetch)e=await fetch("http://ip-api.com/json/"+s);else{if("function"!=typeof require)return console.error("geolocate() » ERROR: Environment not supported.");e=await require("axios").get("http://ip-api.com/json/"+s)}let{status:o,org:t,as:r,query:i,...n}=await e.json();n={ip:s,...n},c.push(n)}return!a.verbose||"undefined"!=typeof require&&/cli(?:\.min)?\.js$/.test(require.main.filename)||console.info("geolocate() » Success! Check returned array."),c}catch(e){console.error("geolocate() »",e)}}}function validateOptions(e,o,t,r){const i=JSON.stringify(o,null,2).replace(/"([^"]+)":/g,"$1:").replace(/"/g,"'").replace(/\n\s*/g," "),n=Object.keys(o).join(", "),a=Object.keys(o).filter(e=>"boolean"==typeof o[e]);let c="validateOptions() » ";try{c=validateOptions.caller?.name+"() » "}catch(e){}var s=r.split(",").findIndex(e=>e.trim().startsWith("{"))+1,l=(s+=["st","nd","rd"][s-1]||"th",()=>{console.info(`${c}Valid options: [ ${n} ]`),console.info(c+"If omitted, default settings are: "+i)}),p=()=>{console.info(c+"For more help, please visit "+t)};if("object"!=typeof e)return console.error(c+`ERROR: ${"0th"==s?"[O":s+" arg [o"}ptions] can only be an object of key/values.`),console.info(c+"Example valid call: "+r),l(),p(),!1;for(const f in e){if(!Object.prototype.hasOwnProperty.call(o,f))return console.error(`${c}ERROR: \`${f}\` is an invalid option.`),l(),p(),!1;if(a.includes(f)&&"boolean"!=typeof e[f])return console.error(`${c}ERROR: [${f}] option can only be \`true\` or \`false\`.`),p(),!1}return!0}const apiFunctions={geolocate:geolocate,locate:geolocate};try{module.exports={...apiFunctions}}catch(e){}try{window.geo={...apiFunctions}}catch(e){}
|
package/docs/README.md
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
### Fetch IP geolocation data from the CLI.
|
|
4
4
|
|
|
5
|
-
<a href="https://github.com/adamlui/js-utils/releases/tag/geolocate-2.0.
|
|
5
|
+
<a href="https://github.com/adamlui/js-utils/releases/tag/geolocate-2.0.2"><img height=31 src="https://img.shields.io/badge/Latest_Build-2.0.2-44cc11.svg?logo=icinga&logoColor=white&labelColor=464646&style=for-the-badge"></a>
|
|
6
6
|
<a href="https://www.npmjs.com/package/@adamlui/geolocate?activeTab=code"><img height=31 src="https://img.shields.io/npm/unpacked-size/%40adamlui%2Fgeolocate?style=for-the-badge&logo=ebox&logoColor=white&labelColor=464646&color=blue"></a>
|
|
7
|
-
<a href="https://github.com/adamlui/js-utils/blob/geolocate-2.0.
|
|
7
|
+
<a href="https://github.com/adamlui/js-utils/blob/geolocate-2.0.2/geolocate/dist/geolocate.min.js"><img height=31 src="https://img.shields.io/github/size/adamlui/js-utils/geolocate/dist/geolocate.min.js?branch=geolocate-2.0.2&label=Minified%20Size&logo=databricks&logoColor=white&labelColor=464646&color=ff69b4&style=for-the-badge"></a>
|
|
8
8
|
<a href="https://sonarcloud.io/component_measures?metric=new_vulnerabilities&id=adamlui_js-utils:geolocate/src/geolocate.js"><img height=31 src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fsonarcloud.io%2Fapi%2Fmeasures%2Fcomponent%3Fcomponent%3Dadamlui_js-utils%3Ageolocate%2Fsrc%2Fgeolocate.js%26metricKeys%3Dvulnerabilities&query=%24.component.measures.0.value&style=for-the-badge&logo=sonarcloud&logoColor=white&labelColor=464646&label=Vulnerabilities&color=gold"></a>
|
|
9
9
|
|
|
10
10
|
<br>
|
|
@@ -47,7 +47,7 @@ Sample output:
|
|
|
47
47
|
|
|
48
48
|
<img src="https://github.com/adamlui/js-utils/blob/main/geolocate/media/images/screenshots/cli-geolocate-8.8.8.8.jpg">
|
|
49
49
|
|
|
50
|
-
|
|
50
|
+
**📝 Note:** If no IPv4 address is passed, your own one will be used.
|
|
51
51
|
|
|
52
52
|
### Command line options
|
|
53
53
|
|
|
@@ -89,14 +89,14 @@ const geo = require('@adamlui/geolocate');
|
|
|
89
89
|
#### <> HTML script tag:
|
|
90
90
|
|
|
91
91
|
```html
|
|
92
|
-
<script src="https://cdn.jsdelivr.net/npm/@adamlui/geolocate@2.0.
|
|
92
|
+
<script src="https://cdn.jsdelivr.net/npm/@adamlui/geolocate@2.0.2/dist/geolocate.min.js"></script>
|
|
93
93
|
```
|
|
94
94
|
|
|
95
95
|
#### ES6:
|
|
96
96
|
|
|
97
97
|
```js
|
|
98
98
|
(async () => {
|
|
99
|
-
await import('https://cdn.jsdelivr.net/npm/@adamlui/geolocate@2.0.
|
|
99
|
+
await import('https://cdn.jsdelivr.net/npm/@adamlui/geolocate@2.0.2/dist/geolocate.min.js');
|
|
100
100
|
// Your code here...
|
|
101
101
|
})();
|
|
102
102
|
```
|
|
@@ -105,7 +105,7 @@ const geo = require('@adamlui/geolocate');
|
|
|
105
105
|
|
|
106
106
|
```js
|
|
107
107
|
...
|
|
108
|
-
// @require https://cdn.jsdelivr.net/npm/@adamlui/geolocate@2.0.
|
|
108
|
+
// @require https://cdn.jsdelivr.net/npm/@adamlui/geolocate@2.0.2/dist/geolocate.min.js
|
|
109
109
|
// ==/UserScript==
|
|
110
110
|
|
|
111
111
|
// Your code here...
|
|
@@ -113,7 +113,7 @@ const geo = require('@adamlui/geolocate');
|
|
|
113
113
|
|
|
114
114
|
<br>
|
|
115
115
|
|
|
116
|
-
|
|
116
|
+
**📝 Note:** To always import the latest version (not recommended in production!) remove the `@2.0.2` version tag from the jsDelivr URL: `https://cdn.jsdelivr.net/npm/@adamlui/geolocate/dist/geolocate.min.js`
|
|
117
117
|
|
|
118
118
|
<br>
|
|
119
119
|
|
|
@@ -123,9 +123,13 @@ const geo = require('@adamlui/geolocate');
|
|
|
123
123
|
|
|
124
124
|
### `locate([ips, options])`
|
|
125
125
|
|
|
126
|
-
Asynchronous method to fetch geolocation data for each `ip` passed in an array, returned as an array of data objects
|
|
126
|
+
💡 Asynchronous method to fetch geolocation data for each `ip` passed in an array, returned as an array of data objects.
|
|
127
|
+
|
|
128
|
+
Example:
|
|
127
129
|
|
|
128
130
|
```js
|
|
131
|
+
const geo = require('@adamlui/geolocate');
|
|
132
|
+
|
|
129
133
|
// Using await syntax
|
|
130
134
|
(async () => {
|
|
131
135
|
const location = await geo.locate('8.8.8.8');
|
|
@@ -138,7 +142,7 @@ geo.locate('8.8.8.8').then(location => {
|
|
|
138
142
|
});
|
|
139
143
|
|
|
140
144
|
/* outputs:
|
|
141
|
-
{
|
|
145
|
+
[{
|
|
142
146
|
ip: '8.8.8.8',
|
|
143
147
|
country: 'United States',
|
|
144
148
|
countryCode: 'US',
|
|
@@ -150,11 +154,11 @@ geo.locate('8.8.8.8').then(location => {
|
|
|
150
154
|
lon: -77.5,
|
|
151
155
|
timezone: 'America/New_York',
|
|
152
156
|
isp: 'Google LLC'
|
|
153
|
-
}
|
|
157
|
+
}]
|
|
154
158
|
*/
|
|
155
159
|
```
|
|
156
160
|
|
|
157
|
-
|
|
161
|
+
**📝 Note:** If no IPv4 address is passed, your own one will be used.
|
|
158
162
|
|
|
159
163
|
Available options (passed as object properties):
|
|
160
164
|
|
|
@@ -182,14 +186,14 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
|
|
|
182
186
|
|
|
183
187
|
## 🛠️ Related utilities
|
|
184
188
|
|
|
185
|
-
### <img height=
|
|
189
|
+
### <picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/adamlui/js-utils/main/generate-ip/media/images/icons/node-graph/white/icon55x49.png"><img height=21 src="https://raw.githubusercontent.com/adamlui/js-utils/main/generate-ip/media/images/icons/node-graph/black/icon55x49.png"></picture> [generate-ip](https://js-utils.com/generate-ip) <a href="https://github.com/toolleeo/cli-apps#networking"><img height=18 src="https://awesome.re/mentioned-badge.svg"></a>
|
|
186
190
|
|
|
187
191
|
> Randomly generate, format, and validate IPv4/IPv6 addresses.
|
|
188
192
|
<br>[Install](https://docs.js-utils.com/generate-ip/#-installation) /
|
|
189
193
|
[Readme](https://docs.js-utils.com/generate-ip/#readme) /
|
|
190
194
|
[API usage](https://docs.js-utils.com/generate-ip/#-api-usage) /
|
|
191
195
|
[CLI usage](https://docs.js-utils.com/generate-ip/#-command-line-usage) /
|
|
192
|
-
[Discuss](https://js-utils.com/discussions)
|
|
196
|
+
[Discuss](https://github.js-utils.com/discussions)
|
|
193
197
|
|
|
194
198
|
### [🔒 generate-pw](../generate-pw) <a href="https://github.com/toolleeo/cli-apps#password-managers"><img height=18 src="https://awesome.re/mentioned-badge.svg"></a>
|
|
195
199
|
|
|
@@ -198,12 +202,12 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
|
|
|
198
202
|
[Readme](https://docs.js-utils.com/generate-pw/#readme) /
|
|
199
203
|
[API usage](https://docs.js-utils.com/generate-pw/#-api-usage) /
|
|
200
204
|
[CLI usage](https://docs.js-utils.com/generate-pw/#-command-line-usage) /
|
|
201
|
-
[Discuss](https://js-utils.com/discussions)
|
|
205
|
+
[Discuss](https://github.js-utils.com/discussions)
|
|
202
206
|
|
|
203
207
|
<br>
|
|
204
208
|
|
|
205
209
|
<img height=6px width="100%" src="https://raw.githubusercontent.com/adamlui/js-utils/main/docs/images/aqua-separator.png">
|
|
206
210
|
|
|
207
211
|
<picture><source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/adamlui/js-utils/main/media/images/icons/home/white/icon32x27.png"><img height=13 src="https://raw.githubusercontent.com/adamlui/js-utils/main/media/images/icons/home/dark-gray/icon32x27.png"></picture> <a href="https://js-utils.com">**More JavaScript utilities**</a> /
|
|
208
|
-
<a href="https://js-utils.com/discussions">Discuss</a> /
|
|
212
|
+
<a href="https://github.js-utils.com/discussions">Discuss</a> /
|
|
209
213
|
<a href="#-geolocate">Back to top ↑</a>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adamlui/geolocate",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.2",
|
|
4
4
|
"description": "Fetch IP geolocation data from the CLI.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Adam Lui",
|
|
@@ -47,9 +47,9 @@
|
|
|
47
47
|
"url": "https://github.com/adamlui/js-utils/issues"
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"generate-ip": "^2.2.
|
|
50
|
+
"generate-ip": "^2.2.8"
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
|
-
"@adamlui/minify.js": "^1.5.
|
|
53
|
+
"@adamlui/minify.js": "^1.5.5"
|
|
54
54
|
}
|
|
55
55
|
}
|