generate-ip 2.4.8 → 2.4.9
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 +8 -8
- package/dist/cli/index.min.js +8 -17
- package/dist/cli/lib/data.min.js +2 -2
- package/dist/cli/lib/language.min.js +2 -2
- package/dist/cli/lib/print.min.js +16 -0
- package/dist/generate-ip.min.js +3 -3
- package/docs/README.md +8 -8
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -10,12 +10,12 @@
|
|
|
10
10
|
|
|
11
11
|
<a href="#%EF%B8%8F-mit-license">
|
|
12
12
|
<img height=31 src="https://img.shields.io/badge/License-MIT-orange.svg?logo=internetarchive&logoColor=white&labelColor=464646&style=for-the-badge"></a>
|
|
13
|
-
<a href="https://github.com/adamlui/js-utils/releases/tag/generate-ip-2.4.
|
|
14
|
-
<img height=31 src="https://img.shields.io/badge/Latest_Build-2.4.
|
|
13
|
+
<a href="https://github.com/adamlui/js-utils/releases/tag/generate-ip-2.4.9">
|
|
14
|
+
<img height=31 src="https://img.shields.io/badge/Latest_Build-2.4.9-44cc11.svg?logo=icinga&logoColor=white&labelColor=464646&style=for-the-badge"></a>
|
|
15
15
|
<a href="https://www.npmjs.com/package/generate-ip?activeTab=code">
|
|
16
16
|
<img height=31 src="https://img.shields.io/npm/unpacked-size/generate-ip?style=for-the-badge&logo=ebox&logoColor=white&labelColor=464646&color=blue"></a>
|
|
17
|
-
<a href="https://github.com/adamlui/js-utils/blob/generate-ip-2.4.
|
|
18
|
-
<img height=31 src="https://img.shields.io/github/size/adamlui/js-utils/generate-ip/dist/generate-ip.min.js?branch=generate-ip-2.4.
|
|
17
|
+
<a href="https://github.com/adamlui/js-utils/blob/generate-ip-2.4.9/generate-ip/dist/generate-ip.min.js">
|
|
18
|
+
<img height=31 src="https://img.shields.io/github/size/adamlui/js-utils/generate-ip/dist/generate-ip.min.js?branch=generate-ip-2.4.9&label=Minified%20Size&logo=databricks&logoColor=white&labelColor=464646&color=ff69b4&style=for-the-badge"></a>
|
|
19
19
|
<a href="https://sonarcloud.io/component_measures?metric=new_vulnerabilities&id=adamlui_js-utils:generate-ip/src/generate-ip.js">
|
|
20
20
|
<img height=31 src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fsonarcloud.io%2Fapi%2Fmeasures%2Fcomponent%3Fcomponent%3Dadamlui_js-utils%3Agenerate-ip%2Fsrc%2Fgenerate-ip.js%26metricKeys%3Dvulnerabilities&query=%24.component.measures.0.value&style=for-the-badge&logo=sonarcloud&logoColor=white&labelColor=464646&label=Vulnerabilities&color=gold"></a>
|
|
21
21
|
<a href="https://github.com/toolleeo/cli-apps#networking">
|
|
@@ -87,14 +87,14 @@ const { ipv4, ipv6, mac } = require('generate-ip')
|
|
|
87
87
|
#### <> HTML script tag:
|
|
88
88
|
|
|
89
89
|
```html
|
|
90
|
-
<script src="https://cdn.jsdelivr.net/npm/generate-ip@2.4.
|
|
90
|
+
<script src="https://cdn.jsdelivr.net/npm/generate-ip@2.4.9/dist/generate-ip.min.js"></script>
|
|
91
91
|
```
|
|
92
92
|
|
|
93
93
|
#### ES6:
|
|
94
94
|
|
|
95
95
|
```js
|
|
96
96
|
(async () => {
|
|
97
|
-
await import('https://cdn.jsdelivr.net/npm/generate-ip@2.4.
|
|
97
|
+
await import('https://cdn.jsdelivr.net/npm/generate-ip@2.4.9/dist/generate-ip.min.js')
|
|
98
98
|
// Your code here...
|
|
99
99
|
})()
|
|
100
100
|
```
|
|
@@ -103,7 +103,7 @@ const { ipv4, ipv6, mac } = require('generate-ip')
|
|
|
103
103
|
|
|
104
104
|
```js
|
|
105
105
|
...
|
|
106
|
-
// @require https://cdn.jsdelivr.net/npm/generate-ip@2.4.
|
|
106
|
+
// @require https://cdn.jsdelivr.net/npm/generate-ip@2.4.9/dist/generate-ip.min.js
|
|
107
107
|
// ==/UserScript==
|
|
108
108
|
|
|
109
109
|
// Your code here...
|
|
@@ -111,7 +111,7 @@ const { ipv4, ipv6, mac } = require('generate-ip')
|
|
|
111
111
|
|
|
112
112
|
<br>
|
|
113
113
|
|
|
114
|
-
📝 **Note:** To always import the latest version (not recommended in production!) remove the `@2.4.
|
|
114
|
+
📝 **Note:** To always import the latest version (not recommended in production!) remove the `@2.4.9` version tag from the jsDelivr URL: `https://cdn.jsdelivr.net/npm/generate-ip/dist/generate-ip.min.js`
|
|
115
115
|
|
|
116
116
|
<br>
|
|
117
117
|
|
package/dist/cli/index.min.js
CHANGED
|
@@ -1,21 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
3
|
* © 2024–2026 Adam Lui & contributors under the MIT license.
|
|
4
|
-
* Source: https://
|
|
5
|
-
* Documentation: https://
|
|
4
|
+
* Source: https://github.com/adamlui/js-utils/tree/main/generate-ip/src
|
|
5
|
+
* Documentation: https://github.com/adamlui/js-utils/tree/main/generate-ip/docs
|
|
6
6
|
*/
|
|
7
|
-
(async()=>{globalThis.env={devMode:__dirname.match(/[\\/]src/)};
|
|
8
|
-
${
|
|
9
|
-
${
|
|
10
|
-
|
|
11
|
-
${
|
|
12
|
-
${app.msgs.
|
|
13
|
-
${app.msgs.info_copying}...`,app.config.quietMode||console.info(a),e.writeSync(Array.isArray(s)?s.join("\n"):s)}function f(){console.info(`
|
|
14
|
-
${app.msgs.info_moreHelp}, ${app.msgs.info_type} ${app.name} --help' ${app.msgs.info_or} ${app.msgs.info_visit}
|
|
15
|
-
${g}${app.urls.docs}[0m`)}function l(e=["header","usage","paramOptions","flags","infoCmds"]){app.prefix=`[106m[30m ${app.name} [0m `;let p={header:[`
|
|
16
|
-
├ ${app.prefix}${app.msgs.appCopyright||`© ${app.copyrightYear} ${app.author} under the ${app.license} license`}.`,""+app.prefix+app.msgs.prefix_source+": "+app.urls.src],usage:[`
|
|
17
|
-
${g}o ${app.msgs.helpSection_usage}:[0m`,` ${g}» [1;92m${app.cmdFormat}[0m`],paramOptions:[`
|
|
18
|
-
${g}o ${app.msgs.helpSection_paramOptions}:[0m`,` --qty=n ${app.msgs.optionDesc_qty}.`],flags:[`
|
|
19
|
-
${g}o ${app.msgs.helpSection_flags}:[0m`,` -6, --ipv6 ${app.msgs.optionDesc_ipv6}.`,` -m, --mac ${app.msgs.optionDesc_mac}.`,` -q, --quiet ${app.msgs.optionDesc_quiet}.`],infoCmds:[`
|
|
20
|
-
${g}o ${app.msgs.helpSection_infoCmds}:[0m`," -h, --help "+app.msgs.optionDesc_help,` -v, --version ${app.msgs.optionDesc_version}.`]};e.forEach(i=>p[i]?.forEach(p=>{{var r=/header|usage/.test(i)?1:29;let s=process.stdout.columns||80,o=[],e=p.match(/\S+|\s+/g),a="";e.forEach(e=>{var p=s-(o.length?r:0);a.length+"| ".length+e.length>p&&(o.push(o.length?a.trimStart():a),a=""),a+=e}),o.push(o.length?a.trimStart():a),o.forEach((e,p)=>console.info("| "+(0==p?e:" ".repeat(r)+e)))}})),console.info(`
|
|
21
|
-
${app.msgs.info_moreHelp}, ${app.msgs.info_visit}: ${g}${app.urls.docs}[0m`)}})();
|
|
7
|
+
(async()=>{globalThis.env={devMode:__dirname.match(/[\\/]src/)};let e=require("node-clipboardy"),{getMsgs:p,getSysLang:o}=require(`./lib/language${env.devMode?"":".min"}.js`),{ipv4:r,ipv6:s,mac:a}=require(`../generate-ip${env.devMode?"":".min"}.js`),i=require(`./lib/print${env.devMode?"":".min"}.js`);var n;Object.assign(globalThis.app??={},require(`../${env.devMode?"../":"./data/"}app.json`)),app.urls.docs+="/#-command-line-usage",app.msgs=await p(o()),app.colors={nc:"[0m",br:"[1;91m",by:"[1;33m",bg:"[1;92m",bw:"[1;97m",blk:"[30m",tlBG:"[106m"},app.regex={paramOptions:{qty:/^--?qu?a?n?ti?t?y(?:=.*|$)/},flags:{ipv6mode:/^--?(?:ip)?v?6(?:-?mode)?$/,macMode:/^--?m(?:ac)?(?:-?mode)?$/,quietMode:/^--?q(?:uiet)?(?:-?mode)?$/},infoCmds:{help:/^--?h(?:elp)?$/,version:/^--?ve?r?s?i?o?n?$/},version:/^[~^>=]?\d+\.\d+\.\d+$/},app.config={},process.argv.forEach(p=>{var e,o,r;p.startsWith("-")&&(e=Object.keys(app.regex.paramOptions).find(e=>app.regex.paramOptions[e].test(p)),r=Object.keys(app.regex.flags).find(e=>app.regex.flags[e].test(p)),o=Object.keys(app.regex.infoCmds).find(e=>app.regex.infoCmds[e].test(p)),r?app.config[r]=!0:e?(/=.+/.test(p)||(console.error(`
|
|
8
|
+
${app.colors.br}${app.msgs.prefix_error}: Arg [--${p.replace(/-/g,"")}] ${app.msgs.error_noEqual}.`+app.colors.nc),i.helpCmdAndDocURL(),process.exit(1)),r=p.split("=")[1],app.config[e]=parseInt(r)||r):o||/ipv4/.test(p)||(console.error(`
|
|
9
|
+
${app.colors.br}${app.msgs.prefix_error}: Arg [${p}] ${app.msgs.error_notRecognized}.`+app.colors.nc),console.info(`
|
|
10
|
+
${app.colors.by}${app.msgs.info_validArgs}.`+app.colors.nc),i.help(["paramOptions","flags","infoCmds"]),process.exit(1)))}),app.config.qty&&(isNaN(app.config.qty)||app.config.qty<1)&&(console.error(`
|
|
11
|
+
${app.colors.br}${app.msgs.prefix_error}: [qty] ${app.msgs.error_nonPositiveNum}.`+app.colors.nc),i.helpCmdAndDocURL(),process.exit(1)),process.argv.some(e=>app.regex.infoCmds.help.test(e))?i.help():process.argv.some(e=>app.regex.infoCmds.version.test(e))?i.version():(n={qty:app.config.qty||1,verbose:!app.config.quietMode},n=(app.config.ipv6mode?s:app.config.macMode?a:r).generate(n),i.ifNotQuiet(`
|
|
12
|
+
${app.msgs.info_copying}...`),e.writeSync([].concat(n).join("\n")))})();
|
package/dist/cli/lib/data.min.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* © 2024–2026 Adam Lui & contributors under the MIT license.
|
|
3
|
-
* Source: https://
|
|
4
|
-
* Documentation: https://
|
|
3
|
+
* Source: https://github.com/adamlui/js-utils/tree/main/generate-ip/src
|
|
4
|
+
* Documentation: https://github.com/adamlui/js-utils/tree/main/generate-ip/docs
|
|
5
5
|
*/
|
|
6
6
|
module.exports={fetch(n){return new Promise((t,e)=>{var r=n.match(/^([^:]+):\/\//)[1];/^https?$/.test(r)||e(new Error(app.msgs.error_invalidURL+".")),require(r).get(n,e=>{let r="";e.on("data",e=>r+=e),e.on("end",()=>t({json:()=>JSON.parse(r)}))}).on("error",e)})},flatten(e,{key:r="message"}={}){var t,n={};for(t in e)n[t]="object"==typeof e[t]&&r in e[t]?e[t][r]:e[t];return n}};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* © 2024–2026 Adam Lui & contributors under the MIT license.
|
|
3
|
-
* Source: https://
|
|
4
|
-
* Documentation: https://
|
|
3
|
+
* Source: https://github.com/adamlui/js-utils/tree/main/generate-ip/src
|
|
4
|
+
* Documentation: https://github.com/adamlui/js-utils/tree/main/generate-ip/docs
|
|
5
5
|
*/
|
|
6
6
|
module.exports={async getMsgs(r="en"){var e=require(`./data${env.devMode?"":".min"}.js`);let t=e.flatten(require(`../../${env.devMode?"../_locales/en/":"data/"}messages.json`),{key:"message"});if(!r.startsWith("en")){var n=`${app.urls.jsdelivr}@${app.commitHashes.locales}/${app.name}/_locales/`;let s=n+`${r?r.replace("-","_"):"en"}/`+"messages.json",a=0;for(;a<3;)try{t=e.flatten(await(await e.fetch(s)).json(),{key:"message"});break}catch(e){if(3==++a)break;s=r.includes("-")&&1==a?s.replace(/([^_]*)_[^/]*(\/.*)/,"$1$2"):n+"en/messages.json"}}return t},getSysLang(){var e;if("win32"!=process.platform)return((e=process.env).LANG||e.LANGUAGE||e.LC_ALL||e.LC_MESSAGES||e.LC_NAME||"en").split(".")[0];try{return require("child_process").execSync("(Get-Culture).TwoLetterISOLanguageName",{shell:"powershell",encoding:"utf-8"}).trim()}catch(e){return console.error("ERROR loading system language:",e.message),"en"}}};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* © 2024–2026 Adam Lui & contributors under the MIT license.
|
|
3
|
+
* Source: https://github.com/adamlui/js-utils/tree/main/generate-ip/src
|
|
4
|
+
* Documentation: https://github.com/adamlui/js-utils/tree/main/generate-ip/docs
|
|
5
|
+
*/
|
|
6
|
+
module.exports={helpCmdAndDocURL(){console.info(`
|
|
7
|
+
${app.msgs.info_moreHelp}, ${app.msgs.info_type} ${app.name} --help' ${app.msgs.info_or} ${app.msgs.info_visit}
|
|
8
|
+
`+app.colors.bw+app.urls.docs+app.colors.nc)},help(p=["header","usage","paramOptions","flags","infoCmds"]){app.prefix=""+app.colors.tlBG+app.colors.blk+`[30m ${app.name} ${app.colors.nc} `;let o={header:[`
|
|
9
|
+
├ ${app.prefix}${app.msgs.appCopyright||`© ${app.copyrightYear} ${app.author} under the ${app.license} license`}.`,""+app.prefix+app.msgs.prefix_source+": "+app.urls.src],usage:[`
|
|
10
|
+
${app.colors.bw}o ${app.msgs.helpSection_usage}:`+app.colors.nc,` ${app.colors.bw}» `+app.colors.bg+app.cmdFormat+app.colors.nc],paramOptions:[`
|
|
11
|
+
${app.colors.bw}o ${app.msgs.helpSection_paramOptions}:`+app.colors.nc,` --qty=n ${app.msgs.optionDesc_qty}.`],flags:[`
|
|
12
|
+
${app.colors.bw}o ${app.msgs.helpSection_flags}:`+app.colors.nc,` -6, --ipv6 ${app.msgs.optionDesc_ipv6}.`,` -m, --mac ${app.msgs.optionDesc_mac}.`,` -q, --quiet ${app.msgs.optionDesc_quiet}.`],infoCmds:[`
|
|
13
|
+
${app.colors.bw}o ${app.msgs.helpSection_infoCmds}:`+app.colors.nc," -h, --help "+app.msgs.optionDesc_help,` -v, --version ${app.msgs.optionDesc_version}.`]};p.forEach(n=>o[n]?.forEach(o=>{{var r=/header|usage/.test(n)?1:29;let s=process.stdout.columns||80,e=[],p=o.match(/\S+|\s+/g),a="";p.forEach(p=>{var o=s-(e.length?r:0);a.length+"| ".length+p.length>o&&(e.push(e.length?a.trimStart():a),a=""),a+=p}),e.push(e.length?a.trimStart():a),e.forEach((p,o)=>console.info("| "+(0==o?p:" ".repeat(r)+p)))}})),console.info(`
|
|
14
|
+
${app.msgs.info_moreHelp}, ${app.msgs.info_visit}: `+app.colors.bw+app.urls.docs+app.colors.nc)},ifNotQuiet(p){app.config.quietMode||console.info(p)},version(){var p=require("path"),o=require("child_process").execSync(`npm view ${JSON.stringify(app.name)} version`).toString().trim()||"none";let s,e=process.cwd();for(;"/"!=e;){var a=p.join(e,"package.json");if(require("fs").existsSync(a)){a=require(a);s=(a.dependencies?.[app.name]||a.devDependencies?.[app.name])?.match(/^[~^>=]?\d+\.\d+\.\d+$/)?.[1]||"none";break}e=p.dirname(e)}console.info(`
|
|
15
|
+
${app.msgs.prefix_globalVer}: ${o}
|
|
16
|
+
${app.msgs.prefix_localVer}: `+s)}};
|
package/dist/generate-ip.min.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* © 2024–2026 Adam Lui & contributors under the MIT license.
|
|
3
|
-
* Source: https://
|
|
4
|
-
* Documentation: https://
|
|
3
|
+
* Source: https://github.com/adamlui/js-utils/tree/main/generate-ip/src
|
|
4
|
+
* Documentation: https://github.com/adamlui/js-utils/tree/main/generate-ip/docs
|
|
5
5
|
*/
|
|
6
|
-
let ipv4={generate
|
|
6
|
+
Object.assign(globalThis.app??={},{name:"generate-ip",aliases:{ipv4:["ipV4","IPv4","IPV4","Ipv4","IpV4","ip","IP","Ip"],ipv6:["ipV6","IPv6","IPV6","Ipv6","IpV6"],mac:["MAC","Mac","ethernet","Ethernet"]}});let ipv4={generate(t={}){var e={verbose:!0,qty:1};if(log.prefix="ipv4.generate()",validateOptions({options:t,defaultOptions:e,helpURL:"https://github.com/adamlui/js-utils/tree/main/generate-ip/docs/#ipv4generateoptions",exampleCall:"ipv4.generate({ verbose: false, qty: 3 })"})){(t={...e,...t}).verbose&&log.info(`Generating IPv4 address${1<t.qty?"es":""}...`);var o=[];if(1<t.qty)for(let e=0;e<t.qty;e++)o.push(this.generate({...t,qty:1,verbose:!1}));else{var i=[];for(let e=0;e<4;e++)i.push(random.int(0,256));o.push(i.join("."))}e=1<t.qty?o:o[0];return t.verbose&&(log.info(`IPv4 address${1<t.qty?"es":""} generated!`),log.info(1==t.qty?e:e.join(", "))),e}},validate(e,t={}){var o="https://github.com/adamlui/js-utils/tree/main/generate-ip/docs/#ipv4validateaddress-options",i={verbose:!0};return log.prefix="ipv4.validate()","string"!=typeof e?(log.error("1st arg <address> must be a string."),log.helpURL(o)):validateOptions({options:t,defaultOptions:i,helpURL:o,exampleCall:"ipv4.validate('0.0.255.255', { verbose: false })"})?((t={...i,...t}).verbose&&log.info(`Validating ${e}...`),i=!(4!=(o=e.split(".")).length||o.some(e=>!/^\d+$/.test(e)||parseInt(e,10)<0||255<parseInt(e,10))),t.verbose&&log.info(`IP is ${i?"":"in"}valid IPv4 address!`),i):void 0}},ipv6={generate(i={}){var e={verbose:!0,qty:1,leadingZeros:!1,doubleColon:!0};if(log.prefix="ipv6.generate()",validateOptions({options:i,defaultOptions:e,helpURL:"https://github.com/adamlui/js-utils/tree/main/generate-ip/docs/#ipv6generateoptions",exampleCall:"ipv6.generate({ leadingZeros: true, qty: 5 })"})){(i={...e,...i}).verbose&&log.info(`Generating IPv6 address${1<i.qty?"es":""}...`);var r=[];if(1<i.qty)for(let e=0;e<i.qty;e++)r.push(this.generate({...i,qty:1,verbose:!1}));else{let t=[],{qty:e,...o}=i;for(let e=0;e<8;e++)t.push(random.hex(4));r.push(this.format(t.join(":"),{...o,verbose:!1}))}e=1<i.qty?r:r[0];return i.verbose&&(log.info(`IPv6 address${1<i.qty?"es":""} generated!`),log.info(1==i.qty?e:e.join(", "))),e}},format(t,o={}){var i="https://github.com/adamlui/js-utils/tree/main/generate-ip/docs/#ipv6formatipv6address-options",r={verbose:!0,leadingZeros:!1,doubleColon:!0};if(log.prefix="ipv6.format()","string"!=typeof t)return log.error("1st arg <ipv6address> must be a string."),log.helpURL(i);if(!this.validate(t,{verbose:!1}))return log.error(t+" is not a valid IPv6 address."),log.helpURL(i);if(validateOptions({options:o,defaultOptions:r,helpURL:i,exampleCall:"ipv6.format('0d::ffff:192.1.56.10/96', { leadingZeros: true, doubleColon: false })"})){o={...r,...o};let e=t;if(e=o.doubleColon?(o.verbose&&log.info("Replacing zero series w/ '::'..."),e.replace(/:(?:0+:)+/,"::")):(o.verbose&&log.info("Expanding '::' into zero series..."),i=e.split(":").filter(Boolean).length,r=o.leadingZeros?"0000":"0",i=Array(8-i).fill(r).join(":"),e.replace("::",`:${i}:`)),o.leadingZeros){o.verbose&&log.info("Adding leading zeros...");var a=e.split(":");for(let e=0;e<a.length;e++)for(;a[e].length<4;)a[e]="0"+a[e];e=a.join(":")}else o.verbose&&log.info("Stripping leading zeros..."),e=t.replace(/(^|(?<=:))0+(?!:)/g,"$1");return o.verbose&&(e!=t?log.info("IP formatted successfully!"):log.info("IP already formatted to specs."),log.info(e)),e}},validate(o,i={}){var r="https://github.com/adamlui/js-utils/tree/main/generate-ip/docs/#ipv6validateaddress-options",a={verbose:!0};if(log.prefix="ipv6.validate()","string"!=typeof o)return log.error("1st arg <address> must be a string."),log.helpURL(r);if(validateOptions({options:i,defaultOptions:a,helpURL:r,exampleCall:"ipv6.validate('0:0:0:0:0:ffff:192.1.56.10/96', { verbose: false })"})){(i={...a,...i}).verbose&&log.info(`Validating ${o}...`);let e=o.split(/::?/),t=e[e.length-1];r=!(o.includes("::")&&2<o.split("::").length||/:{3,}/.test(o)||e.length<2||8<e.length||e.some(e=>!(/^[\da-f]{1,4}$/i.test(e)||e==t&&ipv4.validate(t.replace(/\/(?:12[0-8]|[1-9]?\d)$/,""),{verbose:!1}))));return i.verbose&&log.info(`IP is ${r?"":"in"}valid IPv6 address!`),r}}},mac={generate(t={}){var e={verbose:!0,qty:1};if(log.prefix="mac.generate()",validateOptions({options:t,defaultOptions:e,helpURL:"https://github.com/adamlui/js-utils/tree/main/generate-ip/docs/#macgenerateoptions",exampleCall:"mac.generate({ verbose: false, qty: 2 })"})){(t={...e,...t}).verbose&&log.info(`Generating MAC address${1<t.qty?"es":""}...`);var o=[];if(1<t.qty)for(let e=0;e<t.qty;e++)o.push(this.generate({...t,qty:1,verbose:!1}));else{var[e,i]=Array.from({length:2},()=>{var t=[];for(let e=0;e<3;e++)t.push(random.hex(2));return t.join(":")});o.push(e+":"+i)}e=1<t.qty?o:o[0];return t.verbose&&(log.info(`MAC address${1<t.qty?"es":""} generated!`),log.info(1==t.qty?e:e.join(", "))),e}},validate(e,t={}){var o="https://github.com/adamlui/js-utils/tree/main/generate-ip/docs/#macvalidateaddress-options",i={verbose:!0};return log.prefix="mac.validate()","string"!=typeof e?(log.error("1st arg <address> must be a string."),log.helpURL(o)):validateOptions({options:t,defaultOptions:i,helpURL:o,exampleCall:"mac.validate('00:1A:2B:3C:4D:5E', { verbose: false })"})?((t={...i,...t}).verbose&&log.info(`Validating ${e}...`),o=/^(?:[\da-f]{2}[:-]){5}[\da-f]{2}$/i.test(e),t.verbose&&log.info(`Address is ${o?"":"in"}valid MAC address!`),o):void 0}};function validateOptions({options:e,defaultOptions:t,helpURL:o,exampleCall:i}){var r,a,s=Object.keys(t).filter(e=>"boolean"==typeof t[e]),l=Object.keys(t).filter(e=>Number.isInteger(t[e]));if("object"!=typeof e)return r=i.split(",").findIndex(e=>e.trim().startsWith("{"))+1,r+=["st","nd","rd"][r-1]||"th",log.error(`${"0th"==r?"[O":r+" arg [o"}ptions] can only be an object of key/vals.`),log.info("Example valid call:",i),log.validOptions(t),log.helpURL(o),!1;for(a in e){if(!Object.prototype.hasOwnProperty.call(t,a))return log.error(`\`${a}\` is an invalid option.`),log.validOptions(t),log.helpURL(o),!1;if(s.includes(a)&&"boolean"!=typeof e[a])return log.error(`[${a}] option can only be \`true\` or \`false\`.`),log.helpURL(o),!1;if(l.includes(a)&&(e[a]=parseInt(e[a],10),isNaN(e[a])||e[a]<1))return log.error(`[${a}] option can only be an integer > 0.`),log.helpURL(o),!1}return!0}let random={int(e,t){var o;return"undefined"==typeof require?(o=(window.crypto||window.msCrypto)?.getRandomValues(new Uint32Array(1))[0]/4294967295||Math.random(),Math.floor(o*(t-e))+e):require("crypto").randomInt(e,t)},hex(t){let o="";for(let e=0;e<t;e++)o+=random.int(0,16).toString(16);return o}},log={prefix:app.name,error(...e){console.error(this.prefix+" » ERROR:",...e)},helpURL(e=app.urls?.docs){this.info("For more help, please visit",e)},info(...e){console.info(this.prefix+" »",...e)},validOptions(e){var t=Object.keys(e).join(", "),e=JSON.stringify(e,void 0,2).replace(/"([^"]+)":/g,"$1:").replace(/"/g,"'").replace(/\n\s*/g," ");this.info(`Valid options: [${t}]`),this.info("If omitted, default settings are: "+e)}};app.exports={ipv4:ipv4,ipv6:ipv6,mac:mac};try{module.exports={...app.exports}}catch(e){}try{Object.assign(window,app.exports)}catch(e){}for(let t in app.aliases)app.aliases[t].forEach(e=>{try{module.exports[e]=module.exports[t]}catch(e){}try{window[e]=window[t]}catch(e){}});
|
package/docs/README.md
CHANGED
|
@@ -10,12 +10,12 @@
|
|
|
10
10
|
|
|
11
11
|
<a href="#%EF%B8%8F-mit-license">
|
|
12
12
|
<img height=31 src="https://img.shields.io/badge/License-MIT-orange.svg?logo=internetarchive&logoColor=white&labelColor=464646&style=for-the-badge"></a>
|
|
13
|
-
<a href="https://github.com/adamlui/js-utils/releases/tag/generate-ip-2.4.
|
|
14
|
-
<img height=31 src="https://img.shields.io/badge/Latest_Build-2.4.
|
|
13
|
+
<a href="https://github.com/adamlui/js-utils/releases/tag/generate-ip-2.4.9">
|
|
14
|
+
<img height=31 src="https://img.shields.io/badge/Latest_Build-2.4.9-44cc11.svg?logo=icinga&logoColor=white&labelColor=464646&style=for-the-badge"></a>
|
|
15
15
|
<a href="https://www.npmjs.com/package/generate-ip?activeTab=code">
|
|
16
16
|
<img height=31 src="https://img.shields.io/npm/unpacked-size/generate-ip?style=for-the-badge&logo=ebox&logoColor=white&labelColor=464646&color=blue"></a>
|
|
17
|
-
<a href="https://github.com/adamlui/js-utils/blob/generate-ip-2.4.
|
|
18
|
-
<img height=31 src="https://img.shields.io/github/size/adamlui/js-utils/generate-ip/dist/generate-ip.min.js?branch=generate-ip-2.4.
|
|
17
|
+
<a href="https://github.com/adamlui/js-utils/blob/generate-ip-2.4.9/generate-ip/dist/generate-ip.min.js">
|
|
18
|
+
<img height=31 src="https://img.shields.io/github/size/adamlui/js-utils/generate-ip/dist/generate-ip.min.js?branch=generate-ip-2.4.9&label=Minified%20Size&logo=databricks&logoColor=white&labelColor=464646&color=ff69b4&style=for-the-badge"></a>
|
|
19
19
|
<a href="https://sonarcloud.io/component_measures?metric=new_vulnerabilities&id=adamlui_js-utils:generate-ip/src/generate-ip.js">
|
|
20
20
|
<img height=31 src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fsonarcloud.io%2Fapi%2Fmeasures%2Fcomponent%3Fcomponent%3Dadamlui_js-utils%3Agenerate-ip%2Fsrc%2Fgenerate-ip.js%26metricKeys%3Dvulnerabilities&query=%24.component.measures.0.value&style=for-the-badge&logo=sonarcloud&logoColor=white&labelColor=464646&label=Vulnerabilities&color=gold"></a>
|
|
21
21
|
<a href="https://github.com/toolleeo/cli-apps#networking">
|
|
@@ -87,14 +87,14 @@ const { ipv4, ipv6, mac } = require('generate-ip')
|
|
|
87
87
|
#### <> HTML script tag:
|
|
88
88
|
|
|
89
89
|
```html
|
|
90
|
-
<script src="https://cdn.jsdelivr.net/npm/generate-ip@2.4.
|
|
90
|
+
<script src="https://cdn.jsdelivr.net/npm/generate-ip@2.4.9/dist/generate-ip.min.js"></script>
|
|
91
91
|
```
|
|
92
92
|
|
|
93
93
|
#### ES6:
|
|
94
94
|
|
|
95
95
|
```js
|
|
96
96
|
(async () => {
|
|
97
|
-
await import('https://cdn.jsdelivr.net/npm/generate-ip@2.4.
|
|
97
|
+
await import('https://cdn.jsdelivr.net/npm/generate-ip@2.4.9/dist/generate-ip.min.js')
|
|
98
98
|
// Your code here...
|
|
99
99
|
})()
|
|
100
100
|
```
|
|
@@ -103,7 +103,7 @@ const { ipv4, ipv6, mac } = require('generate-ip')
|
|
|
103
103
|
|
|
104
104
|
```js
|
|
105
105
|
...
|
|
106
|
-
// @require https://cdn.jsdelivr.net/npm/generate-ip@2.4.
|
|
106
|
+
// @require https://cdn.jsdelivr.net/npm/generate-ip@2.4.9/dist/generate-ip.min.js
|
|
107
107
|
// ==/UserScript==
|
|
108
108
|
|
|
109
109
|
// Your code here...
|
|
@@ -111,7 +111,7 @@ const { ipv4, ipv6, mac } = require('generate-ip')
|
|
|
111
111
|
|
|
112
112
|
<br>
|
|
113
113
|
|
|
114
|
-
📝 **Note:** To always import the latest version (not recommended in production!) remove the `@2.4.
|
|
114
|
+
📝 **Note:** To always import the latest version (not recommended in production!) remove the `@2.4.9` version tag from the jsDelivr URL: `https://cdn.jsdelivr.net/npm/generate-ip/dist/generate-ip.min.js`
|
|
115
115
|
|
|
116
116
|
<br>
|
|
117
117
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "generate-ip",
|
|
3
|
-
"version": "2.4.
|
|
3
|
+
"version": "2.4.9",
|
|
4
4
|
"description": "Randomly generate, format, and validate IPv4 + IPv6 + MAC addresses.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Adam Lui",
|
|
@@ -66,6 +66,6 @@
|
|
|
66
66
|
"node-clipboardy": "^1.0.3"
|
|
67
67
|
},
|
|
68
68
|
"devDependencies": {
|
|
69
|
-
"@adamlui/minify.js": "^2.1.
|
|
69
|
+
"@adamlui/minify.js": "^2.1.4"
|
|
70
70
|
}
|
|
71
71
|
}
|