@gjsify/os 0.51.1 → 0.53.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/lib/esm/darwin.js CHANGED
@@ -1,3 +1,3 @@
1
- import"./_virtual/_rolldown/runtime.js";import{createSubnet as e}from"./createSubnet.js";import{cli as t}from"@gjsify/utils";const n=e(128,16,16,`:`),parseInterfaces=function(e){if(e=e.trim(),e.length<1||!/\binet6?\b/.test(e))return;let t=e.split(`
2
- `),r=[],i=t.length,a=`00:00:00:00:00:00`,o=/<[^>]*\bLOOPBACK\b[^>]*>/.test(t[0]??``);for(let e,s=0;s<i;s++)switch(e=t[s],!0){case/ether\s+((?:\S{2}:)+\S{2})/.test(e):a=RegExp.$1;break;case/inet\s+(\d+\.\d+\.\d+\.\d+)\s+netmask\s+0x(.{2})(.{2})(.{2})(.{2})/.test(e):r.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:a,internal:o});break;case/inet6\s+([^\s%]+)(?:%\S+)?\s+prefixlen\s+(\d+)/.test(e):r.push({address:RegExp.$1,netmask:n(RegExp.$2),family:`IPv6`,mac:a,internal:o});break}this[e.slice(0,e.indexOf(`:`))]=r},sysctl=e=>{try{let n=t(`sysctl -n ${e}`).trim();return n.length>0?n:null}catch{return null}},r=Object.freeze({user:0,nice:0,sys:0,idle:0,irq:0}),cpus=()=>{let e=parseFloat(t(`sysctl -n hw.ncpu`)),n=sysctl(`machdep.cpu.brand_string`)?.replace(/\s+/g,` `)??`unknown`,i=sysctl(`hw.cpufrequency`),a=i?parseFloat(i)/1e3/1e3:0,o=[];for(let t=0;t<e;t++)o.push({model:n,speed:a,times:{...r}});return o},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)]:[0,0,0],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};
1
+ import"./_virtual/_rolldown/runtime.js";import{createSubnet as e}from"./createSubnet.js";import{cli as t}from"@gjsify/utils";const n=`/usr/sbin/sysctl`,r=`/usr/bin/uptime`,i=e(128,16,16,`:`),parseInterfaces=function(e){if(e=e.trim(),e.length<1||!/\binet6?\b/.test(e))return;let t=e.split(`
2
+ `),n=[],r=t.length,a=`00:00:00:00:00:00`,o=/<[^>]*\bLOOPBACK\b[^>]*>/.test(t[0]??``);for(let e,s=0;s<r;s++)switch(e=t[s],!0){case/ether\s+((?:\S{2}:)+\S{2})/.test(e):a=RegExp.$1;break;case/inet\s+(\d+\.\d+\.\d+\.\d+)\s+netmask\s+0x(.{2})(.{2})(.{2})(.{2})/.test(e):n.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:a,internal:o});break;case/inet6\s+([^\s%]+)(?:%\S+)?\s+prefixlen\s+(\d+)/.test(e):n.push({address:RegExp.$1,netmask:i(RegExp.$2),family:`IPv6`,mac:a,internal:o});break}this[e.slice(0,e.indexOf(`:`))]=n},sysctl=e=>{try{let r=t(`${n} -n ${e}`).trim();return r.length>0?r:null}catch{return null}},a=Object.freeze({user:0,nice:0,sys:0,idle:0,irq:0}),cpus=()=>{let e=parseFloat(t(`${n} -n hw.ncpu`)),r=sysctl(`machdep.cpu.brand_string`)?.replace(/\s+/g,` `)??`unknown`,i=sysctl(`hw.cpufrequency`),o=i?parseFloat(i)/1e3/1e3:0,s=[];for(let t=0;t<e;t++)s.push({model:r,speed:o,times:{...a}});return s},endianness=()=>`LE`,freemem=()=>{try{let e=t(`/usr/bin/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(`${n} -n hw.memsize`))-parseFloat(t(`${n} -n hw.physmem`))}catch{return 0}},loadavg=()=>/load\s+averages:\s+(\d+(?:\.\d+)?)\s+(\d+(?:\.\d+)?)\s+(\d+(?:\.\d+)?)/.test(t(r))?[parseFloat(RegExp.$1),parseFloat(RegExp.$2),parseFloat(RegExp.$3)]:[0,0,0],networkInterfaces=()=>{let e={},n=[],r=t(`/sbin/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(`${n} -n hw.memsize`))}catch{return 0}},uptime=()=>{try{let e=t(`${n} -n kern.boottime`),r=/sec\s*=\s*(\d+)/.exec(e);if(r){let e=parseInt(r[1],10);return Math.floor(Date.now()/1e3)-e}}catch{}let e=t(r),i=/up\s+([^,]+)?,/.test(e)&&RegExp.$1;switch(!0){case/^(\d+):(\d+)$/.test(i):return(parseInt(RegExp.$1,10)*60+parseInt(RegExp.$2,10))*60;case/^(\d+)\s+mins?$/.test(i):return parseInt(RegExp.$1,10)*60;case/^(\d+)\s+days?$/.test(i):{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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gjsify/os",
3
- "version": "0.51.1",
3
+ "version": "0.53.0",
4
4
  "description": "Node.js os module for Gjs",
5
5
  "module": "lib/esm/index.js",
6
6
  "types": "lib/types/index.d.ts",
@@ -38,13 +38,13 @@
38
38
  "os"
39
39
  ],
40
40
  "dependencies": {
41
- "@girs/gio-2.0": "5.0.0",
42
- "@girs/glib-2.0": "5.0.0",
43
- "@gjsify/utils": "^0.51.1"
41
+ "@girs/gio-2.0": "5.4.0",
42
+ "@girs/glib-2.0": "5.4.0",
43
+ "@gjsify/utils": "^0.53.0"
44
44
  },
45
45
  "devDependencies": {
46
- "@gjsify/cli": "^0.51.1",
47
- "@gjsify/unit": "^0.51.1",
46
+ "@gjsify/cli": "^0.53.0",
47
+ "@gjsify/unit": "^0.53.0",
48
48
  "@types/node": "^25.9.2",
49
49
  "typescript": "^6.0.3"
50
50
  },