@jsonjoy.com/fs-node
Advanced tools
+9
-11
@@ -12,3 +12,3 @@ "use strict"; | ||
| const stats = new Stats(); | ||
| const { uid, gid, atime, mtime, ctime } = node; | ||
| const { uid, gid, atime, mtime, ctime, btime } = node; | ||
| const getStatNumber = !bigint ? number => number : number => BigInt(number); | ||
@@ -25,17 +25,15 @@ // Copy all values on Stats from Node, so that if Node values | ||
| stats.blocks = getStatNumber(1); | ||
| stats.atime = atime; | ||
| stats.mtime = mtime; | ||
| stats.ctime = ctime; | ||
| stats.birthtime = ctime; | ||
| stats.atime = new Date(atime.getTime()); | ||
| stats.mtime = new Date(mtime.getTime()); | ||
| stats.ctime = new Date(ctime.getTime()); | ||
| stats.birthtime = new Date(btime.getTime()); | ||
| stats.atimeMs = getStatNumber(atime.getTime()); | ||
| stats.mtimeMs = getStatNumber(mtime.getTime()); | ||
| const ctimeMs = getStatNumber(ctime.getTime()); | ||
| stats.ctimeMs = ctimeMs; | ||
| stats.birthtimeMs = ctimeMs; | ||
| stats.ctimeMs = getStatNumber(ctime.getTime()); | ||
| stats.birthtimeMs = getStatNumber(btime.getTime()); | ||
| if (bigint) { | ||
| stats.atimeNs = BigInt(atime.getTime()) * BigInt(1000000); | ||
| stats.mtimeNs = BigInt(mtime.getTime()) * BigInt(1000000); | ||
| const ctimeNs = BigInt(ctime.getTime()) * BigInt(1000000); | ||
| stats.ctimeNs = ctimeNs; | ||
| stats.birthtimeNs = ctimeNs; | ||
| stats.ctimeNs = BigInt(ctime.getTime()) * BigInt(1000000); | ||
| stats.birthtimeNs = BigInt(btime.getTime()) * BigInt(1000000); | ||
| } | ||
@@ -42,0 +40,0 @@ stats.dev = getStatNumber(0); |
+1
-1
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"Stats.js","sourceRoot":"","sources":["../src/Stats.ts"],"names":[],"mappings":"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","sourcesContent":["import { Node } from '@jsonjoy.com/fs-core';\nimport { constants } from '@jsonjoy.com/fs-node-utils';\n\nconst { S_IFMT, S_IFDIR, S_IFREG, S_IFBLK, S_IFCHR, S_IFLNK, S_IFIFO, S_IFSOCK } = constants;\n\nexport type TStatNumber = number | bigint;\n\n/**\n * Statistics about a file/directory, like `fs.Stats`.\n */\nexport class Stats<T = TStatNumber> {\n static build(node: Node, bigint: false): Stats<number>;\n static build(node: Node, bigint: true): Stats<bigint>;\n static build(node: Node, bigint?: boolean): Stats<TStatNumber>;\n static build(node: Node, bigint: boolean = false): Stats<TStatNumber> {\n const stats = new Stats<TStatNumber>();\n const { uid, gid, atime, mtime, ctime } = node;\n\n const getStatNumber = !bigint ? number => number : number => BigInt(number);\n\n // Copy all values on Stats from Node, so that if Node values\n // change, values on Stats would still be the old ones,\n // just like in Node fs.\n\n stats.uid = getStatNumber(uid);\n stats.gid = getStatNumber(gid);\n\n stats.rdev = getStatNumber(node.rdev);\n stats.blksize = getStatNumber(4096);\n stats.ino = getStatNumber(node.ino);\n stats.size = getStatNumber(node.getSize());\n stats.blocks = getStatNumber(1);\n\n stats.atime = atime;\n stats.mtime = mtime;\n stats.ctime = ctime;\n stats.birthtime = ctime;\n\n stats.atimeMs = getStatNumber(atime.getTime());\n stats.mtimeMs = getStatNumber(mtime.getTime());\n const ctimeMs = getStatNumber(ctime.getTime());\n stats.ctimeMs = ctimeMs;\n stats.birthtimeMs = ctimeMs;\n\n if (bigint) {\n stats.atimeNs = BigInt(atime.getTime()) * BigInt(1000000);\n stats.mtimeNs = BigInt(mtime.getTime()) * BigInt(1000000);\n const ctimeNs = BigInt(ctime.getTime()) * BigInt(1000000);\n stats.ctimeNs = ctimeNs;\n stats.birthtimeNs = ctimeNs;\n }\n\n stats.dev = getStatNumber(0);\n stats.mode = getStatNumber(node.mode);\n stats.nlink = getStatNumber(node.nlink);\n\n return stats;\n }\n\n uid: T;\n gid: T;\n\n rdev: T;\n blksize: T;\n ino: T;\n size: T;\n blocks: T;\n\n atime: Date;\n mtime: Date;\n ctime: Date;\n birthtime: Date;\n\n atimeMs: T;\n mtimeMs: T;\n ctimeMs: T;\n birthtimeMs: T;\n\n // additional properties that exist when bigint is true\n atimeNs: T extends bigint ? T : undefined;\n mtimeNs: T extends bigint ? T : undefined;\n ctimeNs: T extends bigint ? T : undefined;\n birthtimeNs: T extends bigint ? T : undefined;\n\n dev: T;\n mode: T;\n nlink: T;\n\n private _checkModeProperty(property: number): boolean {\n return (Number(this.mode) & S_IFMT) === property;\n }\n\n isDirectory(): boolean {\n return this._checkModeProperty(S_IFDIR);\n }\n\n isFile(): boolean {\n return this._checkModeProperty(S_IFREG);\n }\n\n isBlockDevice(): boolean {\n return this._checkModeProperty(S_IFBLK);\n }\n\n isCharacterDevice(): boolean {\n return this._checkModeProperty(S_IFCHR);\n }\n\n isSymbolicLink(): boolean {\n return this._checkModeProperty(S_IFLNK);\n }\n\n isFIFO(): boolean {\n return this._checkModeProperty(S_IFIFO);\n }\n\n isSocket(): boolean {\n return this._checkModeProperty(S_IFSOCK);\n }\n}\n\nexport default Stats;\n"]} | ||
| {"version":3,"file":"Stats.js","sourceRoot":"","sources":["../src/Stats.ts"],"names":[],"mappings":";;;AACA,8DAAuD;AAEvD,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,yBAAS,CAAC;AAI7F;;GAEG;AACH,MAAa,KAAK;IAIhB,MAAM,CAAC,KAAK,CAAC,IAAU,EAAE,SAAkB,KAAK;QAC9C,MAAM,KAAK,GAAG,IAAI,KAAK,EAAe,CAAC;QACvC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QAEtD,MAAM,aAAa,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAE5E,6DAA6D;QAC7D,uDAAuD;QACvD,wBAAwB;QAExB,KAAK,CAAC,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;QAC/B,KAAK,CAAC,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;QAE/B,KAAK,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtC,KAAK,CAAC,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACpC,KAAK,CAAC,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpC,KAAK,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3C,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAEhC,KAAK,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACxC,KAAK,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACxC,KAAK,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACxC,KAAK,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAE5C,KAAK,CAAC,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/C,KAAK,CAAC,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/C,KAAK,CAAC,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/C,KAAK,CAAC,WAAW,GAAG,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAEnD,IAAI,MAAM,EAAE,CAAC;YACX,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;YAC1D,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;YAC1D,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;YAC1D,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAChE,CAAC;QAED,KAAK,CAAC,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAC7B,KAAK,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtC,KAAK,CAAC,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAExC,OAAO,KAAK,CAAC;IACf,CAAC;IA+BO,kBAAkB,CAAC,QAAgB;QACzC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,QAAQ,CAAC;IACnD,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;CACF;AA3GD,sBA2GC;AAED,kBAAe,KAAK,CAAC","sourcesContent":["import { Node } from '@jsonjoy.com/fs-core';\nimport { constants } from '@jsonjoy.com/fs-node-utils';\n\nconst { S_IFMT, S_IFDIR, S_IFREG, S_IFBLK, S_IFCHR, S_IFLNK, S_IFIFO, S_IFSOCK } = constants;\n\nexport type TStatNumber = number | bigint;\n\n/**\n * Statistics about a file/directory, like `fs.Stats`.\n */\nexport class Stats<T = TStatNumber> {\n static build(node: Node, bigint: false): Stats<number>;\n static build(node: Node, bigint: true): Stats<bigint>;\n static build(node: Node, bigint?: boolean): Stats<TStatNumber>;\n static build(node: Node, bigint: boolean = false): Stats<TStatNumber> {\n const stats = new Stats<TStatNumber>();\n const { uid, gid, atime, mtime, ctime, btime } = node;\n\n const getStatNumber = !bigint ? number => number : number => BigInt(number);\n\n // Copy all values on Stats from Node, so that if Node values\n // change, values on Stats would still be the old ones,\n // just like in Node fs.\n\n stats.uid = getStatNumber(uid);\n stats.gid = getStatNumber(gid);\n\n stats.rdev = getStatNumber(node.rdev);\n stats.blksize = getStatNumber(4096);\n stats.ino = getStatNumber(node.ino);\n stats.size = getStatNumber(node.getSize());\n stats.blocks = getStatNumber(1);\n\n stats.atime = new Date(atime.getTime());\n stats.mtime = new Date(mtime.getTime());\n stats.ctime = new Date(ctime.getTime());\n stats.birthtime = new Date(btime.getTime());\n\n stats.atimeMs = getStatNumber(atime.getTime());\n stats.mtimeMs = getStatNumber(mtime.getTime());\n stats.ctimeMs = getStatNumber(ctime.getTime());\n stats.birthtimeMs = getStatNumber(btime.getTime());\n\n if (bigint) {\n stats.atimeNs = BigInt(atime.getTime()) * BigInt(1000000);\n stats.mtimeNs = BigInt(mtime.getTime()) * BigInt(1000000);\n stats.ctimeNs = BigInt(ctime.getTime()) * BigInt(1000000);\n stats.birthtimeNs = BigInt(btime.getTime()) * BigInt(1000000);\n }\n\n stats.dev = getStatNumber(0);\n stats.mode = getStatNumber(node.mode);\n stats.nlink = getStatNumber(node.nlink);\n\n return stats;\n }\n\n uid: T;\n gid: T;\n\n rdev: T;\n blksize: T;\n ino: T;\n size: T;\n blocks: T;\n\n atime: Date;\n mtime: Date;\n ctime: Date;\n birthtime: Date;\n\n atimeMs: T;\n mtimeMs: T;\n ctimeMs: T;\n birthtimeMs: T;\n\n // additional properties that exist when bigint is true\n atimeNs: T extends bigint ? T : undefined;\n mtimeNs: T extends bigint ? T : undefined;\n ctimeNs: T extends bigint ? T : undefined;\n birthtimeNs: T extends bigint ? T : undefined;\n\n dev: T;\n mode: T;\n nlink: T;\n\n private _checkModeProperty(property: number): boolean {\n return (Number(this.mode) & S_IFMT) === property;\n }\n\n isDirectory(): boolean {\n return this._checkModeProperty(S_IFDIR);\n }\n\n isFile(): boolean {\n return this._checkModeProperty(S_IFREG);\n }\n\n isBlockDevice(): boolean {\n return this._checkModeProperty(S_IFBLK);\n }\n\n isCharacterDevice(): boolean {\n return this._checkModeProperty(S_IFCHR);\n }\n\n isSymbolicLink(): boolean {\n return this._checkModeProperty(S_IFLNK);\n }\n\n isFIFO(): boolean {\n return this._checkModeProperty(S_IFIFO);\n }\n\n isSocket(): boolean {\n return this._checkModeProperty(S_IFSOCK);\n }\n}\n\nexport default Stats;\n"]} |
+6
-6
@@ -6,3 +6,3 @@ { | ||
| }, | ||
| "version": "4.67.0", | ||
| "version": "4.68.0", | ||
| "description": "In-memory filesystem with Node.js fs-compatible API", | ||
@@ -82,7 +82,7 @@ "author": { | ||
| "dependencies": { | ||
| "@jsonjoy.com/fs-core": "4.67.0", | ||
| "@jsonjoy.com/fs-node-builtins": "4.67.0", | ||
| "@jsonjoy.com/fs-node-utils": "4.67.0", | ||
| "@jsonjoy.com/fs-print": "4.67.0", | ||
| "@jsonjoy.com/fs-snapshot": "4.67.0", | ||
| "@jsonjoy.com/fs-core": "4.68.0", | ||
| "@jsonjoy.com/fs-node-builtins": "4.68.0", | ||
| "@jsonjoy.com/fs-node-utils": "4.68.0", | ||
| "@jsonjoy.com/fs-print": "4.68.0", | ||
| "@jsonjoy.com/fs-snapshot": "4.68.0", | ||
| "glob-to-regex.js": "^1.0.0", | ||
@@ -89,0 +89,0 @@ "thingies": "^2.5.0" |
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
437897
0.08%4063
-0.05%+ Added
+ Added
+ Added
+ Added
+ Added
- Removed
- Removed
- Removed
- Removed
- Removed
Updated
Updated