@gjsify/os 0.3.19 → 0.3.21
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/lib/esm/createSubnet.js +1 -1
- package/lib/esm/darwin.js +3 -3
- package/lib/esm/index.js +2 -2
- package/lib/esm/linux.js +5 -5
- package/package.json +4 -4
package/lib/esm/createSubnet.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function createSubnet(e,t,n,r){let i=`0`.repeat(e);return a=>{let o=(`1`.repeat(parseInt(a,10))+i).slice(0,e),s=[];for(let r=0;r<e;r+=t)s.push(parseInt(o.substr(r,t),2).toString(n));return s.join(r)}}var e={createSubnet};export{createSubnet,e as default};
|
package/lib/esm/darwin.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{createSubnet as e}from"./createSubnet.js";import{cli as t}from"@gjsify/utils";const n=`00:00:00:00:00:00`,r=e(128,16,16,`:`),
|
|
2
|
-
`),i=[],a=t.length,o=n;for(let e,s=0;s<a;s++)switch(e=t[s],!0){case/ether\s+((?:\S{2}:)+\S{2})/.test(e):o=RegExp.$1;break;case/inet\s+(\d+\.\d+\.\d+\.\d+)\s+netmask\s+0x(.{2})(.{2})(.{2})(.{2})/.test(e):i.push({address:RegExp.$1,netmask:[parseInt(RegExp.$2,16),parseInt(RegExp.$3,16),parseInt(RegExp.$4,16),parseInt(RegExp.$5,16)].join(`.`),family:`IPv4`,mac:o,internal:RegExp.$1===`127.0.0.1`});break;case/inet6\s+((?:\S{0,4}:)+\S{1,4}).+?prefixlen\s+(\d+)/.test(e):i.push({address:RegExp.$1,netmask:r(RegExp.$2),family:`IPv6`,mac:o,internal:o!==n});break}this[e.slice(0,e.indexOf(`:`))]=i},
|
|
3
|
-
`))}return n.forEach(
|
|
1
|
+
import{createSubnet as e}from"./createSubnet.js";import{cli as t}from"@gjsify/utils";const n=`00:00:00:00:00:00`,r=e(128,16,16,`:`),parseInterfaces=function(e){if(e=e.trim(),e.length<1||!/\binet\b/.test(e))return;let t=e.split(`
|
|
2
|
+
`),i=[],a=t.length,o=n;for(let e,s=0;s<a;s++)switch(e=t[s],!0){case/ether\s+((?:\S{2}:)+\S{2})/.test(e):o=RegExp.$1;break;case/inet\s+(\d+\.\d+\.\d+\.\d+)\s+netmask\s+0x(.{2})(.{2})(.{2})(.{2})/.test(e):i.push({address:RegExp.$1,netmask:[parseInt(RegExp.$2,16),parseInt(RegExp.$3,16),parseInt(RegExp.$4,16),parseInt(RegExp.$5,16)].join(`.`),family:`IPv4`,mac:o,internal:RegExp.$1===`127.0.0.1`});break;case/inet6\s+((?:\S{0,4}:)+\S{1,4}).+?prefixlen\s+(\d+)/.test(e):i.push({address:RegExp.$1,netmask:r(RegExp.$2),family:`IPv6`,mac:o,internal:o!==n});break}this[e.slice(0,e.indexOf(`:`))]=i},cpus=()=>{let e=parseFloat(t(`sysctl -n hw.ncpu`)),n=[];for(;e--;)n.push({model:t(`sysctl -n machdep.cpu.brand_string`).replace(/\s+/g,` `),speed:parseFloat(t(`sysctl -n hw.cpufrequency`))/1e3/1e3,get times(){return console.warn(`cpus.times is not supported`),{}}});return n},endianness=()=>`LE`,freemem=()=>{try{let e=t(`vm_stat`),n=/page size of (\d+) bytes/.exec(e),r=n?parseInt(n[1],10):16384,i=0,a=/Pages free:\s+(\d+)/.exec(e);a&&(i+=parseInt(a[1],10));let o=/Pages speculative:\s+(\d+)/.exec(e);o&&(i+=parseInt(o[1],10));let s=/Pages purgeable:\s+(\d+)/.exec(e);if(s&&(i+=parseInt(s[1],10)),i>0)return i*r}catch{}try{return parseFloat(t(`sysctl -n hw.memsize`))-parseFloat(t(`sysctl -n hw.physmem`))}catch{return 0}},loadavg=()=>/load\s+averages:\s+(\d+(?:\.\d+))\s+(\d+(?:\.\d+))\s+(\d+(?:\.\d+))/.test(t(`uptime`))&&[parseFloat(RegExp.$1),parseFloat(RegExp.$2),parseFloat(RegExp.$3)],networkInterfaces=()=>{let e={},n=[],r=t(`ifconfig`).split(/\r\n|\n/),i=r.length;for(let e=[],t=/^\S+?:/,a=0;a<i;a++){if(t.test(r[a])){for(e=[r[a]];++a<i&&!t.test(r[a]);)e.push(r[a]);--a}n.push(e.join(`
|
|
3
|
+
`))}return n.forEach(parseInterfaces,e),e},totalmem=()=>{try{return parseFloat(t(`sysctl -n hw.memsize`))}catch{return 0}},uptime=()=>{try{let e=t(`sysctl -n kern.boottime`),n=/sec\s*=\s*(\d+)/.exec(e);if(n){let e=parseInt(n[1],10);return Math.floor(Date.now()/1e3)-e}}catch{}let e=t(`uptime`),n=/up\s+([^,]+)?,/.test(e)&&RegExp.$1;switch(!0){case/^(\d+):(\d+)$/.test(n):return(parseInt(RegExp.$1,10)*60+parseInt(RegExp.$2,10))*60;case/^(\d+)\s+mins?$/.test(n):return parseInt(RegExp.$1,10)*60;case/^(\d+)\s+days?$/.test(n):{let t=parseInt(RegExp.$1,10)*86400,n=/days?,\s+(\d+):(\d+)/.exec(e);return n?t+(parseInt(n[1],10)*60+parseInt(n[2],10))*60:t}}return 0};export{cpus,endianness,freemem,loadavg,networkInterfaces,totalmem,uptime};
|
package/lib/esm/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import e from"./constants.js";import{cpus as t,endianness as n,freemem as r,loadavg as i,networkInterfaces as a,totalmem as o,uptime as s}from"./darwin.js";import{cpus as c,endianness as l,freemem as u,loadavg as d,networkInterfaces as f,totalmem as p,uptime as m}from"./linux.js";import{cli as h,getPathSeparator as g}from"@gjsify/utils";import _ from"@girs/gio-2.0";import v from"@girs/glib-2.0";let y=``;const
|
|
1
|
+
import e from"./constants.js";import{cpus as t,endianness as n,freemem as r,loadavg as i,networkInterfaces as a,totalmem as o,uptime as s}from"./darwin.js";import{cpus as c,endianness as l,freemem as u,loadavg as d,networkInterfaces as f,totalmem as p,uptime as m}from"./linux.js";import{cli as h,getPathSeparator as g}from"@gjsify/utils";import _ from"@girs/gio-2.0";import v from"@girs/glib-2.0";let y=``;const getOs=()=>{if(y)return y;let e=h(`uname -o`).trim();return/\bDarwin\b/i.test(e)?(y=`darwin`,y):/\bLinux\b/i.test(e)?(y=`linux`,y):(y=`win32`,y)};let b=0;const getPid=()=>(b||=new _.Credentials().get_unix_pid(),b),x=g()===`/`?`
|
|
2
2
|
`:`\r
|
|
3
|
-
`,
|
|
3
|
+
`,S=g()===`/`?`/dev/null`:`\\\\.\\nul`,homedir=()=>v.get_home_dir(),hostname=()=>v.get_host_name(),release=()=>h(`uname -r`).trim(),tmpdir=()=>v.get_tmp_dir(),type=()=>h(`uname`).trim(),platform=()=>h(`uname -s`).trim().toLowerCase(),arch=()=>{let e=h(`uname -m`).trim();return e===`x86_64`||e===`amd64`?`x64`:e===`aarch64`||e===`arm64`?`arm64`:e===`i686`||e===`i386`?`ia32`:e.startsWith(`arm`)?`arm`:e},machine=()=>h(`uname -m`).trim(),version=()=>h(`uname -v`).trim(),uptime=()=>{switch(getOs()){case`darwin`:return s();case`linux`:return m();default:return 0}},totalmem=()=>{switch(getOs()){case`darwin`:return o();case`linux`:return p();default:return 0}},availableParallelism=()=>{let e=cpus();return e?e.length:1},userInfo=()=>{let e=1e3,t=100,n=``;try{e=parseInt(h(`id -u`),10),t=parseInt(h(`id -g`),10),n=v.getenv(`SHELL`)||``}catch{}return{uid:e,gid:t,username:v.get_user_name(),homedir:v.get_home_dir(),shell:n}},cpus=()=>{let e=getOs();switch(e){case`darwin`:return t();case`linux`:return c();default:console.warn(`${e} is not supported!`);break}},endianness=()=>{let e=getOs();switch(e){case`darwin`:return n();case`linux`:return l();default:console.warn(`${e} is not supported!`);break}},freemem=()=>{let e=getOs();switch(e){case`darwin`:return r();case`linux`:return u();default:console.warn(`${e} is not supported!`);break}},loadavg=()=>{let e=getOs();switch(e){case`darwin`:return i();case`linux`:return d();default:console.warn(`${e} is not supported!`);break}},networkInterfaces=()=>{let e=getOs();switch(e){case`darwin`:return a();case`linux`:return f();default:console.warn(`${e} is not supported!`);break}},getPriority=e=>{let t=e===void 0||e===0?getPid():e;try{let e=h(`ps -o ni= -p ${t}`).trim(),n=parseInt(e,10);if(!isNaN(n))return n}catch{}return 0},setPriority=(e,t)=>{let n,r;if(t===void 0?(r=e,n=0):(n=e,r=t),typeof n!=`number`||!Number.isInteger(n))throw TypeError(`The "pid" argument must be an integer`);if(typeof r!=`number`||!Number.isInteger(r)||r<-20||r>19)throw RangeError(`The "priority" argument must be an integer between -20 and 19`);try{let e=n===0?getPid():n;h(`renice -n ${r} -p ${e}`)}catch{let e=Error(`A system error occurred: priority could not be set`);throw e.code=`ERR_SYSTEM_ERROR`,e}};var C={EOL:x,arch,availableParallelism,constants:e,cpus,devNull:S,endianness,freemem,getPriority,homedir,hostname,loadavg,machine,networkInterfaces,platform,release,setPriority,tmpdir,totalmem,type,uptime,userInfo,version};export{x as EOL,arch,availableParallelism,e as constants,cpus,C as default,S as devNull,endianness,freemem,getPriority,homedir,hostname,loadavg,machine,networkInterfaces,platform,release,setPriority,tmpdir,totalmem,type,uptime,userInfo,version};
|
package/lib/esm/linux.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import{createSubnet as e}from"./createSubnet.js";import{cli as t}from"@gjsify/utils";import n from"@girs/glib-2.0";const r=imports.byteArray,i=/\r\n|\n/;function
|
|
2
|
-
`)){let e=/^MemAvailable:\s+(\d+)\s+kB/.exec(n);if(e)return parseInt(e[1],10)*1024;let r=/^MemFree:\s+(\d+)\s+kB/.exec(n);r&&(t=parseInt(r[1],10)*1024)}return t},
|
|
3
|
-
`).slice(2)){let n=r.split(`:`)[0]?.trim();if(n){e[n]=[];try{t[n]=
|
|
4
|
-
`)){let n=r.trim().split(/\s+/);if(n.length<6)continue;let[i,,a,,,
|
|
5
|
-
`)){let e=/^MemTotal:\s+(\d+)\s+kB/.exec(t);if(e)return parseInt(e[1],10)*1024}return 0},
|
|
1
|
+
import{createSubnet as e}from"./createSubnet.js";import{cli as t}from"@gjsify/utils";import n from"@girs/glib-2.0";const r=imports.byteArray,i=/\r\n|\n/;function readTextFile(e){let[t,i]=n.file_get_contents(e);return!t||!i?``:r.toString(i)}const a=e(32,8,10,`.`),o=e(128,16,16,`:`);function parseInterfaces(e){if(e=e.trim(),e.length<1)return;let t=[],n;for(let r,s=e.split(i),c=0;c<s.length;c++)switch(r=s[c],!0){case/link\/\S+\s+((?:\S{2}:)+\S{2})/.test(r):n=RegExp.$1;break;case/inet(\d*)\s+(\S+)/.test(r):let e=RegExp.$2.split(`/`),i=RegExp.$1||`4`;t.push({address:e[0],netmask:(i===`4`?a:o)(e[1]),family:`IPv`+i,mac:n,internal:e[0]===`127.0.0.1`});break}n&&(this[e.slice(0,e.indexOf(`:`))]=t)}const cpus=()=>{let e=/^processor\s*:\s*(\d+)/i,t=/^model[\s_]+name\s*:([^\r\n]+)/i,n=/^cpu[\s_]+MHz\s*:\s*(\d+)/i,r=[],a;readTextFile(`/proc/cpuinfo`).split(i).forEach(i=>{switch(!0){case e.test(i):r[RegExp.$1.trim()]=a={model:``,speed:0,times:{user:0,nice:0,sys:0,idle:0,irq:0}};break;case t.test(i):a.model=RegExp.$1.trim();break;case n.test(i):a.speed=parseFloat(RegExp.$1.trim());break}});try{let e=readTextFile(`/proc/stat`).split(i);for(let t of e){let e=/^cpu(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+\d+\s+(\d+)/.exec(t);e&&r[parseInt(e[1],10)]&&(r[parseInt(e[1],10)].times={user:parseInt(e[2],10)*10,nice:parseInt(e[3],10)*10,sys:parseInt(e[4],10)*10,idle:parseInt(e[5],10)*10,irq:parseInt(e[6],10)*10})}}catch{}return r},endianness=()=>`LE`,freemem=()=>{let e=readTextFile(`/proc/meminfo`),t=0;for(let n of e.split(`
|
|
2
|
+
`)){let e=/^MemAvailable:\s+(\d+)\s+kB/.exec(n);if(e)return parseInt(e[1],10)*1024;let r=/^MemFree:\s+(\d+)\s+kB/.exec(n);r&&(t=parseInt(r[1],10)*1024)}return t},loadavg=()=>/(\d+(?:\.\d+))\s+(\d+(?:\.\d+))\s+(\d+(?:\.\d+))/.test(readTextFile(`/proc/loadavg`))&&[parseFloat(RegExp.$1),parseFloat(RegExp.$2),parseFloat(RegExp.$3)],networkInterfaces=()=>{try{let e={};return t(`ip addr`).split(/^\d+:\s+/m).forEach(parseInterfaces,e),e}catch{return readNetworkInterfacesFromProc()}};function readNetworkInterfacesFromProc(){let e={},t={};try{let n=readTextFile(`/proc/net/dev`);for(let r of n.split(`
|
|
3
|
+
`).slice(2)){let n=r.split(`:`)[0]?.trim();if(n){e[n]=[];try{t[n]=readTextFile(`/sys/class/net/${n}/address`).trim()}catch{t[n]=`00:00:00:00:00:00`}}}}catch{return e}try{let n=readTextFile(`/proc/net/if_inet6`);for(let r of n.split(`
|
|
4
|
+
`)){let n=r.trim().split(/\s+/);if(n.length<6)continue;let[i,,a,,,s]=n,c=i.match(/.{4}/g);!c||!e[s]||e[s].push({address:c.join(`:`),netmask:o(a),family:`IPv6`,mac:t[s]||`00:00:00:00:00:00`,internal:s===`lo`})}}catch{}e.lo&&e.lo.unshift({address:`127.0.0.1`,netmask:`255.0.0.0`,family:`IPv4`,mac:t.lo||`00:00:00:00:00:00`,internal:!0});for(let t of Object.keys(e))e[t].length===0&&delete e[t];return e}const totalmem=()=>{let e=readTextFile(`/proc/meminfo`);for(let t of e.split(`
|
|
5
|
+
`)){let e=/^MemTotal:\s+(\d+)\s+kB/.exec(t);if(e)return parseInt(e[1],10)*1024}return 0},uptime=()=>{let e=readTextFile(`/proc/uptime`).trim();return parseFloat(e.split(` `)[0])||0};export{cpus,endianness,freemem,loadavg,networkInterfaces,totalmem,uptime};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gjsify/os",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.21",
|
|
4
4
|
"description": "Node.js os module for Gjs",
|
|
5
5
|
"module": "lib/esm/index.js",
|
|
6
6
|
"types": "lib/types/index.d.ts",
|
|
@@ -32,11 +32,11 @@
|
|
|
32
32
|
"dependencies": {
|
|
33
33
|
"@girs/gio-2.0": "2.88.0-4.0.0-rc.14",
|
|
34
34
|
"@girs/glib-2.0": "2.88.0-4.0.0-rc.14",
|
|
35
|
-
"@gjsify/utils": "^0.3.
|
|
35
|
+
"@gjsify/utils": "^0.3.21"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
|
-
"@gjsify/cli": "^0.3.
|
|
39
|
-
"@gjsify/unit": "^0.3.
|
|
38
|
+
"@gjsify/cli": "^0.3.21",
|
|
39
|
+
"@gjsify/unit": "^0.3.21",
|
|
40
40
|
"@types/node": "^25.6.2",
|
|
41
41
|
"typescript": "^6.0.3"
|
|
42
42
|
}
|