🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

@jsonjoy.com/fs-core

Package Overview
Dependencies
Maintainers
2
Versions
30
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@jsonjoy.com/fs-core - npm Package Compare versions

Comparing version
4.66.0
to
4.66.1
+1
-1
lib/constants.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":""}
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"","sourcesContent":["export const enum ERROR_CODE {\n EPERM = 'EPERM',\n ENOENT = 'ENOENT',\n EBADF = 'EBADF',\n EINVAL = 'EINVAL',\n EEXIST = 'EEXIST',\n ENOTDIR = 'ENOTDIR',\n EMFILE = 'EMFILE',\n EACCES = 'EACCES',\n EISDIR = 'EISDIR',\n ENOTEMPTY = 'ENOTEMPTY',\n ENOSYS = 'ENOSYS',\n ERR_FS_EISDIR = 'ERR_FS_EISDIR',\n ERR_OUT_OF_RANGE = 'ERR_OUT_OF_RANGE',\n}\n"]}

@@ -1,1 +0,1 @@

{"version":3,"file":"encoding.js","sourceRoot":"","sources":["../src/encoding.ts"],"names":[],"mappings":";;;AAQA,wCAEC;AAED,sCAIC;AAhBD,8EAA2E;AAC3E,4EAA4E;AAK/D,QAAA,aAAa,GAAmB,MAAM,CAAC;AAEpD,SAAgB,cAAc,CAAC,QAA4B;IACzD,IAAI,QAAQ,IAAI,CAAC,eAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,gCAAgC,EAAE,QAAQ,CAAC,CAAC;AACvH,CAAC;AAED,SAAgB,aAAa,CAAC,GAAW,EAAE,QAA4B;IACrE,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,qBAAa;QAAE,OAAO,GAAG,CAAC,CAAC,QAAQ;IACjE,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,IAAI,eAAM,CAAC,GAAG,CAAC,CAAC,CAAC,oBAAoB;IACvE,OAAO,IAAI,eAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,kBAAkB;AAC/D,CAAC"}
{"version":3,"file":"encoding.js","sourceRoot":"","sources":["../src/encoding.ts"],"names":[],"mappings":";;;AAQA,wCAEC;AAED,sCAIC;AAhBD,8EAA2E;AAC3E,4EAA4E;AAK/D,QAAA,aAAa,GAAmB,MAAM,CAAC;AAEpD,SAAgB,cAAc,CAAC,QAA4B;IACzD,IAAI,QAAQ,IAAI,CAAC,eAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,gCAAgC,EAAE,QAAQ,CAAC,CAAC;AACvH,CAAC;AAED,SAAgB,aAAa,CAAC,GAAW,EAAE,QAA4B;IACrE,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,qBAAa;QAAE,OAAO,GAAG,CAAC,CAAC,QAAQ;IACjE,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,IAAI,eAAM,CAAC,GAAG,CAAC,CAAC,CAAC,oBAAoB;IACvE,OAAO,IAAI,eAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,kBAAkB;AAC/D,CAAC","sourcesContent":["import { Buffer } from '@jsonjoy.com/fs-node-builtins/lib/internal/buffer';\nimport * as errors from '@jsonjoy.com/fs-node-builtins/lib/internal/errors';\n\nexport type TDataOut = string | Buffer; // Data formats we give back to users.\nexport type TEncodingExtended = BufferEncoding | 'buffer';\n\nexport const ENCODING_UTF8: BufferEncoding = 'utf8';\n\nexport function assertEncoding(encoding: string | undefined) {\n if (encoding && !Buffer.isEncoding(encoding)) throw new errors.TypeError('ERR_INVALID_OPT_VALUE_ENCODING', encoding);\n}\n\nexport function strToEncoding(str: string, encoding?: TEncodingExtended): TDataOut {\n if (!encoding || encoding === ENCODING_UTF8) return str; // UTF-8\n if (encoding === 'buffer') return new Buffer(str); // `buffer` encoding\n return new Buffer(str).toString(encoding); // Custom encoding\n}\n"]}

@@ -1,1 +0,1 @@

{"version":3,"file":"File.js","sourceRoot":"","sources":["../src/File.ts"],"names":[],"mappings":";;;AAAA,8DAAuD;AAKvD,MAAM,EAAE,QAAQ,EAAE,GAAG,yBAAS,CAAC;AAE/B;;;;GAIG;AACH,MAAa,IAAI;IAOf;;;;;;;OAOG;IACH,YACkB,IAAU,EACV,IAAU,EACnB,KAAa,EACb,EAAU;QAHD,SAAI,GAAJ,IAAI,CAAM;QACV,SAAI,GAAJ,IAAI,CAAM;QACnB,UAAK,GAAL,KAAK,CAAQ;QACb,OAAE,GAAF,EAAE,CAAQ;QAEjB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClB,IAAI,IAAI,CAAC,KAAK,GAAG,QAAQ;YAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAC5D,CAAC;IAED,SAAS,CAAC,QAAQ,GAAG,MAAM;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;IAC/B,CAAC;IAED,SAAS,CAAC,GAAW;QACnB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;IAC/B,CAAC;IAED,SAAS,CAAC,GAAW;QACnB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,QAAQ,CAAC,GAAY;QACnB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM,CAAC,QAAgB;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,GAAW,EAAE,SAAiB,CAAC,EAAE,SAAiB,GAAG,CAAC,MAAM,EAAE,QAAwB;QAC1F,IAAI,OAAO,QAAQ,KAAK,QAAQ;YAAE,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC7D,IAAI,CAAC,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC;QACjC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CACF,GAAwC,EACxC,SAAiB,CAAC,EAClB,SAAiB,GAAG,CAAC,UAAU,EAC/B,QAAiB;QAEjB,IAAI,OAAO,QAAQ,KAAK,QAAQ;YAAE,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC5D,IAAI,CAAC,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC;QACjC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,IAAY;QAChB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,GAAW,EAAE,GAAW;QAC5B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC5B,CAAC;CACF;AA/ED,oBA+EC"}
{"version":3,"file":"File.js","sourceRoot":"","sources":["../src/File.ts"],"names":[],"mappings":";;;AAAA,8DAAuD;AAKvD,MAAM,EAAE,QAAQ,EAAE,GAAG,yBAAS,CAAC;AAE/B;;;;GAIG;AACH,MAAa,IAAI;IAOf;;;;;;;OAOG;IACH,YACkB,IAAU,EACV,IAAU,EACnB,KAAa,EACb,EAAU;QAHD,SAAI,GAAJ,IAAI,CAAM;QACV,SAAI,GAAJ,IAAI,CAAM;QACnB,UAAK,GAAL,KAAK,CAAQ;QACb,OAAE,GAAF,EAAE,CAAQ;QAEjB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClB,IAAI,IAAI,CAAC,KAAK,GAAG,QAAQ;YAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAC5D,CAAC;IAED,SAAS,CAAC,QAAQ,GAAG,MAAM;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;IAC/B,CAAC;IAED,SAAS,CAAC,GAAW;QACnB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;IAC/B,CAAC;IAED,SAAS,CAAC,GAAW;QACnB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,QAAQ,CAAC,GAAY;QACnB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM,CAAC,QAAgB;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,GAAW,EAAE,SAAiB,CAAC,EAAE,SAAiB,GAAG,CAAC,MAAM,EAAE,QAAwB;QAC1F,IAAI,OAAO,QAAQ,KAAK,QAAQ;YAAE,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC7D,IAAI,CAAC,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC;QACjC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CACF,GAAwC,EACxC,SAAiB,CAAC,EAClB,SAAiB,GAAG,CAAC,UAAU,EAC/B,QAAiB;QAEjB,IAAI,OAAO,QAAQ,KAAK,QAAQ;YAAE,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC5D,IAAI,CAAC,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC;QACjC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,IAAY;QAChB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,GAAW,EAAE,GAAW;QAC5B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC5B,CAAC;CACF;AA/ED,oBA+EC","sourcesContent":["import { constants } from '@jsonjoy.com/fs-node-utils';\nimport { Buffer } from '@jsonjoy.com/fs-node-builtins/lib/internal/buffer';\nimport type { Link } from './Link';\nimport type { Node } from './Node';\n\nconst { O_APPEND } = constants;\n\n/**\n * Represents an open file (file descriptor) that points to a `Link` (Hard-link) and a `Node`.\n *\n * @todo Rename to `OpenFile`.\n */\nexport class File {\n /**\n * A cursor/offset position in a file, where data will be written on write.\n * User can \"seek\" this position.\n */\n position: number;\n\n /**\n * Open a Link-Node pair. `node` is provided separately as that might be a different node\n * rather the one `link` points to, because it might be a symlink.\n * @param link\n * @param node\n * @param flags\n * @param fd\n */\n constructor(\n public readonly link: Link,\n public readonly node: Node,\n public flags: number,\n public fd: number,\n ) {\n this.position = 0;\n if (this.flags & O_APPEND) this.position = this.getSize();\n }\n\n getString(encoding = 'utf8'): string {\n return this.node.getString();\n }\n\n setString(str: string) {\n this.node.setString(str);\n }\n\n getBuffer(): Buffer {\n return this.node.getBuffer();\n }\n\n setBuffer(buf: Buffer) {\n this.node.setBuffer(buf);\n }\n\n getSize(): number {\n return this.node.getSize();\n }\n\n truncate(len?: number) {\n this.node.truncate(len);\n }\n\n seekTo(position: number) {\n this.position = position;\n }\n\n write(buf: Buffer, offset: number = 0, length: number = buf.length, position?: number | null): number {\n if (typeof position !== 'number') position = this.position;\n const bytes = this.node.write(buf, offset, length, position);\n this.position = position + bytes;\n return bytes;\n }\n\n read(\n buf: Buffer | ArrayBufferView | DataView,\n offset: number = 0,\n length: number = buf.byteLength,\n position?: number,\n ): number {\n if (typeof position !== 'number') position = this.position;\n const bytes = this.node.read(buf, offset, length, position);\n this.position = position + bytes;\n return bytes;\n }\n\n chmod(perm: number) {\n this.node.chmod(perm);\n }\n\n chown(uid: number, gid: number) {\n this.node.chown(uid, gid);\n }\n}\n"]}

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAAA,kDAAwB;AACxB,iDAAuB;AACvB,sDAA4B;AAC5B,mDAAyB;AACzB,+BAA8C;AAArC,4FAAA,IAAI,OAAA;AACb,+BAA8C;AAArC,4FAAA,IAAI,OAAA;AACb,+BAA8B;AAArB,4FAAA,IAAI,OAAA;AACb,2CAA0C;AAAjC,wGAAA,UAAU,OAAA;AACnB,0DAAgC;AAChC,8DAAoC;AAEpC,+BASgB;AARd,oGAAA,YAAY,OAAA;AACZ,uGAAA,eAAe,OAAA;AACf,4FAAA,IAAI,OAAA;AACJ,kGAAA,UAAU,OAAA;AACV,mGAAA,WAAW,OAAA;AACX,uGAAA,eAAe,OAAA;AACf,sGAAA,cAAc,OAAA;AACd,+FAAA,OAAO,OAAA"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAAA,kDAAwB;AACxB,iDAAuB;AACvB,sDAA4B;AAC5B,mDAAyB;AACzB,+BAA8C;AAArC,4FAAA,IAAI,OAAA;AACb,+BAA8C;AAArC,4FAAA,IAAI,OAAA;AACb,+BAA8B;AAArB,4FAAA,IAAI,OAAA;AACb,2CAA0C;AAAjC,wGAAA,UAAU,OAAA;AACnB,0DAAgC;AAChC,8DAAoC;AAEpC,+BASgB;AARd,oGAAA,YAAY,OAAA;AACZ,uGAAA,eAAe,OAAA;AACf,4FAAA,IAAI,OAAA;AACJ,kGAAA,UAAU,OAAA;AACV,mGAAA,WAAW,OAAA;AACX,uGAAA,eAAe,OAAA;AACf,sGAAA,cAAc,OAAA;AACd,+FAAA,OAAO,OAAA","sourcesContent":["export * from './types';\nexport * from './json';\nexport * from './constants';\nexport * from './result';\nexport { Node, type NodeEvent } from './Node';\nexport { Link, type LinkEvent } from './Link';\nexport { File } from './File';\nexport { Superblock } from './Superblock';\nexport * from './watch/FsEvent';\nexport * from './watch/CoreWatcher';\nexport type { IProcess } from './process';\nexport {\n dataToBuffer,\n filenameToSteps,\n isFd,\n validateFd,\n createError,\n createStatError,\n pathToFilename,\n resolve,\n} from './util';\n"]}

@@ -1,1 +0,1 @@

{"version":3,"file":"json.js","sourceRoot":"","sources":["../src/json.ts"],"names":[],"mappings":";;;AAAA,8EAA2E;AAC3E,iEAAqE;AAErE,MAAM,QAAQ,GAAG,YAAK,CAAC,CAAC,CAAC,YAAK,CAAC,IAAI,CAAC,CAAC,CAAC,WAAI,CAAC;AAWpC,MAAM,WAAW,GAAG,CAAC,UAA+B,EAAiB,EAAE;IAC5E,MAAM,QAAQ,GAAkB,EAAE,CAAC;IACnC,SAAS,OAAO,CAAC,UAAkB,EAAE,IAAyB;QAC5D,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;YACxB,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;YACjC,0DAA0D;YAC1D,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAC9C,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,aAAa,YAAY,eAAM,EAAE,CAAC;gBACzE,QAAQ,CAAC,UAAU,CAAC,GAAG,aAAa,CAAC;YACvC,CAAC;iBAAM,IACL,OAAO,aAAa,KAAK,QAAQ;gBACjC,aAAa,KAAK,IAAI;gBACtB,CAAC,CAAC,aAAa,YAAY,eAAM,CAAC;gBAClC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC,EACrC,CAAC;gBACD,yHAAyH;gBACzH,OAAO,CAAC,UAAU,EAAE,aAAsD,CAAC,CAAC;YAC9E,CAAC;iBAAM,CAAC;gBACN,oGAAoG;gBACpG,0CAA0C;gBAC1C,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;YAC9B,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;IACxB,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AA1BW,QAAA,WAAW,eA0BtB"}
{"version":3,"file":"json.js","sourceRoot":"","sources":["../src/json.ts"],"names":[],"mappings":";;;AAAA,8EAA2E;AAC3E,iEAAqE;AAErE,MAAM,QAAQ,GAAG,YAAK,CAAC,CAAC,CAAC,YAAK,CAAC,IAAI,CAAC,CAAC,CAAC,WAAI,CAAC;AAWpC,MAAM,WAAW,GAAG,CAAC,UAA+B,EAAiB,EAAE;IAC5E,MAAM,QAAQ,GAAkB,EAAE,CAAC;IACnC,SAAS,OAAO,CAAC,UAAkB,EAAE,IAAyB;QAC5D,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;YACxB,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;YACjC,0DAA0D;YAC1D,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAC9C,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,aAAa,YAAY,eAAM,EAAE,CAAC;gBACzE,QAAQ,CAAC,UAAU,CAAC,GAAG,aAAa,CAAC;YACvC,CAAC;iBAAM,IACL,OAAO,aAAa,KAAK,QAAQ;gBACjC,aAAa,KAAK,IAAI;gBACtB,CAAC,CAAC,aAAa,YAAY,eAAM,CAAC;gBAClC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC,EACrC,CAAC;gBACD,yHAAyH;gBACzH,OAAO,CAAC,UAAU,EAAE,aAAsD,CAAC,CAAC;YAC9E,CAAC;iBAAM,CAAC;gBACN,oGAAoG;gBACpG,0CAA0C;gBAC1C,QAAQ,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;YAC9B,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;IACxB,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AA1BW,QAAA,WAAW,eA0BtB","sourcesContent":["import { Buffer } from '@jsonjoy.com/fs-node-builtins/lib/internal/buffer';\nimport { join, posix } from '@jsonjoy.com/fs-node-builtins/lib/path';\n\nconst pathJoin = posix ? posix.join : join;\n\nexport type DirectoryContent = string | Buffer | null;\n\nexport interface DirectoryJSON<T extends DirectoryContent = DirectoryContent> {\n [key: string]: T;\n}\nexport interface NestedDirectoryJSON<T extends DirectoryContent = DirectoryContent> {\n [key: string]: T | NestedDirectoryJSON;\n}\n\nexport const flattenJSON = (nestedJSON: NestedDirectoryJSON): DirectoryJSON => {\n const flatJSON: DirectoryJSON = {};\n function flatten(pathPrefix: string, node: NestedDirectoryJSON) {\n for (const path in node) {\n const contentOrNode = node[path];\n // TODO: Can we avoid using `join` here? Just concatenate?\n const joinedPath = pathJoin(pathPrefix, path);\n if (typeof contentOrNode === 'string' || contentOrNode instanceof Buffer) {\n flatJSON[joinedPath] = contentOrNode;\n } else if (\n typeof contentOrNode === 'object' &&\n contentOrNode !== null &&\n !(contentOrNode instanceof Buffer) &&\n Object.keys(contentOrNode).length > 0\n ) {\n // empty directories need an explicit entry and therefore get handled in `else`, non-empty ones are implicitly considered\n flatten(joinedPath, contentOrNode as NestedDirectoryJSON<DirectoryContent>);\n } else {\n // without this branch null, empty-object or non-object entries would not be handled in the same way\n // by both fromJSON() and fromNestedJSON()\n flatJSON[joinedPath] = null;\n }\n }\n }\n flatten('', nestedJSON);\n return flatJSON;\n};\n"]}

@@ -1,1 +0,1 @@

{"version":3,"file":"Link.js","sourceRoot":"","sources":["../src/Link.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"Link.js","sourceRoot":"","sources":["../src/Link.ts"],"names":[],"mappings":"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","sourcesContent":["import { constants, PATH } from '@jsonjoy.com/fs-node-utils';\nimport { FanOut } from 'thingies/lib/fanout';\nimport type { Node } from './Node';\nimport type { Superblock } from './Superblock';\n\nexport type LinkEventChildAdd = [type: 'child:add', link: Link, parent: Link];\n\nexport type LinkEventChildDelete = [type: 'child:del', link: Link, parent: Link];\n\nexport type LinkEvent = LinkEventChildAdd | LinkEventChildDelete;\n\nconst { S_IFREG } = constants;\n\n/**\n * Represents a hard link that points to an i-node `node`.\n */\nexport class Link {\n /**\n * @deprecated Subscribe to the volume-level `Superblock.changes` bus or use\n * `CoreWatcher` instead.\n */\n public readonly changes = new FanOut<LinkEvent>();\n\n vol: Superblock;\n\n parent: Link | undefined;\n\n children = new Map<string, Link | undefined>();\n\n // Path to this node as Array: ['usr', 'bin', 'node'].\n private _steps: string[] = [];\n\n // \"i-node\" of this hard link.\n node: Node;\n\n // \"i-node\" number of the node.\n ino: number = 0;\n\n // Number of children.\n length: number = 0;\n\n name: string;\n\n get steps() {\n return this._steps;\n }\n\n // Recursively sync children steps, e.g. in case of dir rename\n set steps(val) {\n this._steps = val;\n for (const [child, link] of this.children.entries()) {\n if (child === '.' || child === '..') {\n continue;\n }\n link?.syncSteps();\n }\n }\n\n constructor(vol: Superblock, parent: Link | undefined, name: string) {\n this.vol = vol;\n this.parent = parent;\n this.name = name;\n this.syncSteps();\n }\n\n setNode(node: Node) {\n this.node = node;\n this.ino = node.ino;\n }\n\n getNode(): Node {\n return this.node;\n }\n\n createChild(name: string, node: Node = this.vol.createNode(S_IFREG | 0o666)): Link {\n const link = new Link(this.vol, this, name);\n link.setNode(node);\n\n if (node.isDirectory()) {\n link.children.set('.', link);\n link.getNode().nlink++;\n }\n\n this.setChild(name, link);\n\n return link;\n }\n\n setChild(name: string, link: Link = new Link(this.vol, this, name)): Link {\n this.children.set(name, link);\n link.parent = this;\n this.length++;\n\n const node = link.getNode();\n if (node.isDirectory()) {\n link.children.set('..', this);\n this.getNode().nlink++;\n }\n\n this.getNode().mtime = new Date();\n this.changes.emit(['child:add', link, this]);\n\n return link;\n }\n\n deleteChild(link: Link) {\n const node = link.getNode();\n if (node.isDirectory()) {\n link.children.delete('..');\n this.getNode().nlink--;\n }\n this.children.delete(link.getName());\n this.length--;\n\n this.getNode().mtime = new Date();\n this.changes.emit(['child:del', link, this]);\n }\n\n getChild(name: string): Link | undefined {\n this.getNode().atime = new Date();\n return this.children.get(name);\n }\n\n getPath(): string {\n return this.steps.join(PATH.SEP);\n }\n\n getParentPath(): string {\n const parent = this.steps.slice(0, -1).join(PATH.SEP);\n return parent ? parent : PATH.SEP;\n }\n\n getName(): string {\n return this.steps[this.steps.length - 1];\n }\n\n toJSON() {\n return {\n steps: this.steps,\n ino: this.ino,\n children: Array.from(this.children.keys()),\n };\n }\n\n syncSteps() {\n this.steps = this.parent ? this.parent.steps.concat([this.name]) : [this.name];\n }\n}\n"]}

@@ -1,1 +0,1 @@

{"version":3,"file":"Node.js","sourceRoot":"","sources":["../src/Node.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"Node.js","sourceRoot":"","sources":["../src/Node.ts"],"names":[],"mappings":"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","sourcesContent":["import { FanOut } from 'thingies/lib/fanout';\nimport process from './process';\nimport { Buffer, bufferAllocUnsafe, bufferFrom } from '@jsonjoy.com/fs-node-builtins/lib/internal/buffer';\nimport { constants, S } from '@jsonjoy.com/fs-node-utils';\n\nexport type NodeEventModify = [type: 'modify'];\n\nexport type NodeEventDelete = [type: 'delete'];\n\nexport type NodeEvent = NodeEventModify | NodeEventDelete;\n\nconst { S_IFMT, S_IFDIR, S_IFREG, S_IFLNK, S_IFCHR } = constants;\nconst getuid = (): number => process.getuid?.() ?? 0;\nconst getgid = (): number => process.getgid?.() ?? 0;\nconst EMPTY_BUFFER = bufferAllocUnsafe(0);\n\n/**\n * Node in a file system (like i-node, v-node).\n */\nexport class Node {\n /**\n * @deprecated Subscribe to the volume-level `Superblock.changes` bus or use\n * `CoreWatcher` instead.\n */\n public readonly changes = new FanOut<NodeEvent>();\n\n // i-node number.\n ino: number;\n\n // User ID and group ID.\n private _uid: number = getuid();\n private _gid: number = getgid();\n\n private _atime = new Date();\n private _mtime = new Date();\n private _ctime = new Date();\n\n buf: Buffer = EMPTY_BUFFER;\n\n /** Total allocated memory capacity for this node. */\n private capacity: number = 0;\n\n /** Actually used bytes to store content. */\n private size: number = 0;\n\n rdev: number = 0;\n\n mode: number; // S_IFDIR, S_IFREG, etc..\n\n // Number of hard links pointing at this Node.\n private _nlink = 1;\n\n // Path to another node, if this is a symlink.\n symlink: string;\n\n constructor(ino: number, mode: number = 0o666, uid: number = getuid(), gid: number = getgid()) {\n this.mode = mode;\n this.ino = ino;\n this._uid = uid;\n this._gid = gid;\n }\n\n public set ctime(ctime: Date) {\n this._ctime = ctime;\n }\n\n public get ctime(): Date {\n return this._ctime;\n }\n\n public set uid(uid: number) {\n this._uid = uid;\n this.ctime = new Date();\n }\n\n public get uid(): number {\n return this._uid;\n }\n\n public set gid(gid: number) {\n this._gid = gid;\n this.ctime = new Date();\n }\n\n public get gid(): number {\n return this._gid;\n }\n\n public set atime(atime: Date) {\n this._atime = atime;\n }\n\n public get atime(): Date {\n return this._atime;\n }\n\n public set mtime(mtime: Date) {\n this._mtime = mtime;\n this.ctime = new Date();\n }\n\n public get mtime(): Date {\n return this._mtime;\n }\n\n public get perm(): number {\n return this.mode & ~S_IFMT;\n }\n\n public set perm(perm: number) {\n this.mode = (this.mode & S_IFMT) | (perm & ~S_IFMT);\n this.ctime = new Date();\n }\n\n public set nlink(nlink: number) {\n this._nlink = nlink;\n this.ctime = new Date();\n }\n\n public get nlink(): number {\n return this._nlink;\n }\n\n getString(encoding: BufferEncoding = 'utf8'): string {\n this.atime = new Date();\n return this.getBuffer().toString(encoding);\n }\n\n setString(str: string) {\n this._setBuf(bufferFrom(str, 'utf8'));\n }\n\n getBuffer(): Buffer {\n this.atime = new Date();\n if (!this.buf) this.buf = bufferAllocUnsafe(0);\n return bufferFrom(this.buf.subarray(0, this.size)); // Return a copy of used portion.\n }\n\n setBuffer(buf: Buffer) {\n const copy = bufferFrom(buf); // Creates a copy of data.\n this._setBuf(copy);\n }\n\n private _setBuf(buf: Buffer): void {\n const size = buf.length;\n this.buf = buf;\n this.capacity = size;\n this.size = size;\n this.touch();\n }\n\n getSize(): number {\n return this.size;\n }\n\n setModeProperty(property: number) {\n this.mode = property;\n }\n\n isFile() {\n return (this.mode & S_IFMT) === S_IFREG;\n }\n\n isDirectory() {\n return (this.mode & S_IFMT) === S_IFDIR;\n }\n\n isSymlink() {\n // return !!this.symlink;\n return (this.mode & S_IFMT) === S_IFLNK;\n }\n\n isCharacterDevice() {\n return (this.mode & S_IFMT) === S_IFCHR;\n }\n\n makeSymlink(symlink: string) {\n this.mode = S_IFLNK | 0o666;\n this.symlink = symlink;\n }\n\n write(buf: Buffer, off: number = 0, len: number = buf.length, pos: number = 0): number {\n const bufLength = buf.length;\n if (off + len > bufLength) len = bufLength - off;\n if (len <= 0) return 0;\n const requiredSize = pos + len;\n if (requiredSize > this.capacity) {\n let newCapacity = Math.max(this.capacity * 2, 64);\n while (newCapacity < requiredSize) newCapacity *= 2;\n const newBuf = bufferAllocUnsafe(newCapacity);\n if (this.size > 0) this.buf.copy(newBuf, 0, 0, this.size);\n this.buf = newBuf;\n this.capacity = newCapacity;\n }\n if (pos > this.size) this.buf.fill(0, this.size, pos);\n buf.copy(this.buf, pos, off, off + len);\n if (requiredSize > this.size) this.size = requiredSize;\n this.touch();\n return len;\n }\n\n /**\n * Read data from the file.\n *\n * @param buf Buffer to read data into.\n * @param off Offset int the `buf` where to start writing data.\n * @param len How many bytes to read. Equals to `buf.byteLength` by default.\n * @param pos Position offset in file where to start reading. Defaults to `0`.\n * @returns Returns the number of bytes read.\n */\n read(\n buf: Buffer | ArrayBufferView | DataView,\n off: number = 0,\n len: number = buf.byteLength,\n pos: number = 0,\n ): number {\n this.atime = new Date();\n if (pos >= this.size) return 0;\n let actualLen = len;\n if (actualLen > buf.byteLength) actualLen = buf.byteLength;\n if (actualLen + pos > this.size) actualLen = this.size - pos;\n if (actualLen <= 0) return 0;\n const buf2 = buf instanceof Buffer ? buf : Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength);\n this.buf.copy(buf2, off, pos, pos + actualLen);\n return actualLen;\n }\n\n truncate(len: number = 0) {\n // A negative length is clamped to zero, matching Node.js `fs.truncate`,\n // which truncates to an empty file rather than producing a negative size.\n // Without this, `this.size` becomes negative and `getBuffer()`'s\n // `subarray(0, this.size)` reads past the used region, exposing\n // uninitialized heap memory from the unsafe-allocated backing buffer.\n if (len <= 0) {\n this.buf = EMPTY_BUFFER;\n this.capacity = 0;\n this.size = 0;\n this.touch();\n return;\n }\n if (len <= this.size) this.size = len;\n else {\n if (len > this.capacity) {\n let newCapacity = Math.max(this.capacity * 2, 64);\n while (newCapacity < len) newCapacity *= 2;\n const buf = bufferAllocUnsafe(newCapacity);\n if (this.size > 0) this.buf.copy(buf, 0, 0, this.size);\n buf.fill(0, this.size, len);\n this.buf = buf;\n this.capacity = newCapacity;\n } else this.buf.fill(0, this.size, len);\n this.size = len;\n }\n this.touch();\n }\n\n chmod(perm: number) {\n this.mode = (this.mode & S_IFMT) | (perm & ~S_IFMT);\n this.touch();\n }\n\n chown(uid: number, gid: number) {\n this.uid = uid;\n this.gid = gid;\n this.touch();\n }\n\n touch() {\n this.mtime = new Date();\n this.changes.emit(['modify']);\n }\n\n canRead(uid: number = getuid(), gid: number = getgid()): boolean {\n if (this.perm & S.IROTH) {\n return true;\n }\n\n if (gid === this.gid) {\n if (this.perm & S.IRGRP) {\n return true;\n }\n }\n\n if (uid === this.uid) {\n if (this.perm & S.IRUSR) {\n return true;\n }\n }\n\n return false;\n }\n\n canWrite(uid: number = getuid(), gid: number = getgid()): boolean {\n if (this.perm & S.IWOTH) {\n return true;\n }\n\n if (gid === this.gid) {\n if (this.perm & S.IWGRP) {\n return true;\n }\n }\n\n if (uid === this.uid) {\n if (this.perm & S.IWUSR) {\n return true;\n }\n }\n\n return false;\n }\n\n canExecute(uid: number = getuid(), gid: number = getgid()): boolean {\n if (this.perm & S.IXOTH) {\n return true;\n }\n\n if (gid === this.gid) {\n if (this.perm & S.IXGRP) {\n return true;\n }\n }\n\n if (uid === this.uid) {\n if (this.perm & S.IXUSR) {\n return true;\n }\n }\n\n return false;\n }\n\n del() {\n this.changes.emit(['delete']);\n }\n\n toJSON() {\n return {\n ino: this.ino,\n uid: this.uid,\n gid: this.gid,\n atime: this.atime.getTime(),\n mtime: this.mtime.getTime(),\n ctime: this.ctime.getTime(),\n perm: this.perm,\n mode: this.mode,\n nlink: this.nlink,\n symlink: this.symlink,\n data: this.getString(),\n };\n }\n}\n"]}

@@ -1,1 +0,1 @@

{"version":3,"file":"process.js","sourceRoot":"","sources":["../src/process.ts"],"names":[],"mappings":";AAAA,uFAAuF;;AAgCvF,sCAUC;AA/BD;;;;;;;;;GASG;AACH,MAAM,kBAAkB,GAAG,GAAyB,EAAE;IACpD,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;QACnC,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,CAAC;QACH,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC,CAAC;AAEF,SAAgB,aAAa;IAC3B,MAAM,CAAC,GAAa,kBAAkB,EAAE,IAAK,EAAe,CAAC;IAC7D,IAAI,CAAC,CAAC,CAAC,GAAG;QAAE,CAAC,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;IAC9B,IAAI,CAAC,CAAC,CAAC,WAAW;QAChB,CAAC,CAAC,WAAW,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;YAChC,sCAAsC;YACtC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;QACvD,CAAC,CAAC;IACJ,IAAI,CAAC,CAAC,CAAC,GAAG;QAAE,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC;IACvB,OAAO,CAAC,CAAC;AACX,CAAC;AAED,kBAAe,aAAa,EAAE,CAAC"}
{"version":3,"file":"process.js","sourceRoot":"","sources":["../src/process.ts"],"names":[],"mappings":";AAAA,uFAAuF;;AAgCvF,sCAUC;AA/BD;;;;;;;;;GASG;AACH,MAAM,kBAAkB,GAAG,GAAyB,EAAE;IACpD,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;QACnC,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,CAAC;QACH,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC,CAAC;AAEF,SAAgB,aAAa;IAC3B,MAAM,CAAC,GAAa,kBAAkB,EAAE,IAAK,EAAe,CAAC;IAC7D,IAAI,CAAC,CAAC,CAAC,GAAG;QAAE,CAAC,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;IAC9B,IAAI,CAAC,CAAC,CAAC,WAAW;QAChB,CAAC,CAAC,WAAW,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;YAChC,sCAAsC;YACtC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;QACvD,CAAC,CAAC;IACJ,IAAI,CAAC,CAAC,CAAC,GAAG;QAAE,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC;IACvB,OAAO,CAAC,CAAC;AACX,CAAC;AAED,kBAAe,aAAa,EAAE,CAAC","sourcesContent":["// Here we mock the global `process` variable in case we are not in Node's environment.\n\nexport interface IProcess {\n getuid?(): number;\n getgid?(): number;\n cwd(): string;\n platform: string;\n emitWarning: (message: string, type: string) => void;\n env: Record<string, string | undefined>;\n}\n\n/**\n * Looks to return a `process` object, if one is available.\n *\n * The global `process` is returned if defined;\n * otherwise `require('process')` is attempted.\n *\n * If that fails, `undefined` is returned.\n *\n * @return {IProcess | undefined}\n */\nconst maybeReturnProcess = (): IProcess | undefined => {\n if (typeof process !== 'undefined') {\n return process;\n }\n try {\n return require('process');\n } catch {\n return undefined;\n }\n};\n\nexport function createProcess(): IProcess {\n const p: IProcess = maybeReturnProcess() || ({} as IProcess);\n if (!p.cwd) p.cwd = () => '/';\n if (!p.emitWarning)\n p.emitWarning = (message, type) => {\n // tslint:disable-next-line:no-console\n console.warn(`${type}${type ? ': ' : ''}${message}`);\n };\n if (!p.env) p.env = {};\n return p;\n}\n\nexport default createProcess();\n"]}

@@ -1,1 +0,1 @@

{"version":3,"file":"result.js","sourceRoot":"","sources":["../src/result.ts"],"names":[],"mappings":";;AAYA,gBAEC;AAED,kBAEC;AAND,SAAgB,EAAE,CAAI,KAAQ;IAC5B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAC7B,CAAC;AAED,SAAgB,GAAG,CAAI,GAAM;IAC3B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AAC5B,CAAC"}
{"version":3,"file":"result.js","sourceRoot":"","sources":["../src/result.ts"],"names":[],"mappings":";;AAYA,gBAEC;AAED,kBAEC;AAND,SAAgB,EAAE,CAAI,KAAQ;IAC5B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAC7B,CAAC;AAED,SAAgB,GAAG,CAAI,GAAM;IAC3B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AAC5B,CAAC","sourcesContent":["export interface Ok<T> {\n ok: true;\n value: T;\n}\n\nexport interface Err<E> {\n ok: false;\n err: E;\n}\n\nexport type Result<T, E> = Ok<T> | Err<E>;\n\nexport function Ok<T>(value: T): Ok<T> {\n return { ok: true, value };\n}\n\nexport function Err<E>(err: E): Err<E> {\n return { ok: false, err };\n}\n"]}

@@ -1,1 +0,1 @@

{"version":3,"file":"Superblock.js","sourceRoot":"","sources":["../src/Superblock.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"Superblock.js","sourceRoot":"","sources":["../src/Superblock.ts"],"names":[],"mappings":"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","sourcesContent":["import { sep, relative, join, dirname, isAbsolute, basename, posix } from '@jsonjoy.com/fs-node-builtins/lib/path';\nimport { Node } from './Node';\nimport { Link } from './Link';\nimport { File } from './File';\nimport { Buffer } from '@jsonjoy.com/fs-node-builtins/lib/internal/buffer';\nimport defaultProcess, { type IProcess } from './process';\nimport { constants } from '@jsonjoy.com/fs-node-utils';\nimport { ERRSTR, FLAGS, MODE } from '@jsonjoy.com/fs-node-utils';\nimport {\n pathToFilename,\n createError,\n createStatError,\n dataToBuffer,\n filenameToSteps,\n isFd,\n resolve,\n validateFd,\n} from './util';\nimport { DirectoryJSON, flattenJSON, NestedDirectoryJSON } from './json';\nimport type { PathLike } from '@jsonjoy.com/fs-node-utils/lib/types/misc';\nimport { ERROR_CODE } from './constants';\nimport { TFileId, StatError } from './types';\nimport { Err, Ok, Result } from './result';\nimport { FanOut } from 'thingies/lib/fanout';\nimport { FsEvent, FsEventType } from './watch/FsEvent';\n\nconst pathSep = posix ? posix.sep : sep;\nconst pathRelative = posix ? posix.relative : relative;\nconst pathJoin = posix ? posix.join : join;\n\nconst { O_RDONLY, O_WRONLY, O_RDWR, O_CREAT, O_EXCL, O_TRUNC, O_APPEND, O_DIRECTORY } = constants;\n\n/**\n * Represents a filesystem superblock, which is the root of a virtual\n * filesystem in Linux.\n * @see https://lxr.linux.no/linux+v3.11.2/include/linux/fs.h#L1242\n */\nexport class Superblock {\n static fromJSON(json: DirectoryJSON, cwd?: string, opts?: { process?: IProcess }): Superblock {\n const vol = new Superblock(opts);\n vol.fromJSON(json, cwd);\n return vol;\n }\n\n static fromNestedJSON(json: NestedDirectoryJSON, cwd?: string, opts?: { process?: IProcess }): Superblock {\n const vol = new Superblock(opts);\n vol.fromNestedJSON(json, cwd);\n return vol;\n }\n\n /**\n * Global file descriptor counter. UNIX file descriptors start from 0 and go sequentially\n * up, so here, in order not to conflict with them, we choose some big number and descrease\n * the file descriptor of every new opened file.\n * @type {number}\n * @todo This should not be static, right?\n */\n static fd: number = 0x7fffffff;\n\n // Constructor function used to create new nodes.\n // NodeClass: new (...args) => TNode = Node as new (...args) => TNode;\n\n // Hard link to the root of this volume.\n // root: Node = new (this.NodeClass)(null, '', true);\n root: Link;\n\n // I-node number counter.\n ino: number = 0;\n\n // A mapping for i-node numbers to i-nodes (`Node`);\n inodes: { [ino: number]: Node } = {};\n\n // List of released i-node numbers, for reuse.\n releasedInos: number[] = [];\n\n // A mapping for file descriptors to `File`s.\n fds: { [fd: number]: File } = {};\n\n // A list of reusable (opened and closed) file descriptors, that should be\n // used first before creating a new file descriptor.\n releasedFds: number[] = [];\n\n // Max number of open files.\n maxFiles = 10000;\n\n // Current number of open files.\n openFiles = 0;\n\n /** The `process`-like object used by this filesystem instance. */\n readonly process: IProcess;\n\n constructor(opts: { process?: IProcess } = {}) {\n this.process = opts.process ?? defaultProcess;\n const root = this.createLink();\n root.setNode(this.createNode(constants.S_IFDIR | 0o777));\n\n root.setChild('.', root);\n root.getNode().nlink++;\n\n root.setChild('..', root);\n root.getNode().nlink++;\n\n this.root = root;\n }\n\n /** Fan-out of file system change events. Multiple consumers may subscribe. */\n public readonly changes = new FanOut<FsEvent>();\n\n protected emit(change: FsEvent) {\n this.changes.emit(change);\n }\n\n createLink(): Link;\n createLink(parent: Link, name: string, isDirectory?: boolean, mode?: number): Link;\n createLink(parent?: Link, name?: string, isDirectory: boolean = false, mode?: number): Link {\n if (!parent) {\n return new Link(this, void 0, '');\n }\n\n if (!name) {\n throw new Error('createLink: name cannot be empty');\n }\n\n // If no explicit permission is provided, use defaults based on type\n const finalPerm = mode ?? (isDirectory ? 0o777 : 0o666);\n // To prevent making a breaking change, `mode` can also just be a permission number\n // and the file type is set based on `isDirectory`\n const hasFileType = mode && mode & constants.S_IFMT;\n const modeType = hasFileType ? mode & constants.S_IFMT : isDirectory ? constants.S_IFDIR : constants.S_IFREG;\n const finalMode = (finalPerm & ~constants.S_IFMT) | modeType;\n return parent.createChild(name, this.createNode(finalMode));\n }\n\n deleteLink(link: Link): boolean {\n const parent = link.parent;\n if (parent) {\n parent.deleteChild(link);\n\n return true;\n }\n return false;\n }\n\n private _emitDeleteRecursive(link: Link) {\n if (link.getNode().isDirectory()) {\n for (const [name, child] of link.children.entries()) {\n if (child && name !== '.' && name !== '..') {\n this._emitDeleteRecursive(child);\n }\n }\n }\n this.emit(new FsEvent(FsEventType.DELETE, link.steps, link.getNode(), link));\n }\n\n private newInoNumber(): number {\n const releasedFd = this.releasedInos.pop();\n\n if (releasedFd) return releasedFd;\n else {\n this.ino = (this.ino + 1) % 0xffffffff;\n return this.ino;\n }\n }\n\n private newFdNumber(): number {\n const releasedFd = this.releasedFds.pop();\n return typeof releasedFd === 'number' ? releasedFd : Superblock.fd--;\n }\n\n createNode(mode: number): Node {\n const uid = this.process.getuid?.() ?? 0;\n const gid = this.process.getgid?.() ?? 0;\n const node = new Node(this.newInoNumber(), mode, uid, gid);\n this.inodes[node.ino] = node;\n return node;\n }\n\n deleteNode(node: Node) {\n node.del();\n delete this.inodes[node.ino];\n this.releasedInos.push(node.ino);\n }\n\n walk(\n steps: string[],\n resolveSymlinks: boolean,\n checkExistence: boolean,\n checkAccess: boolean,\n funcName?: string,\n ): Result<Link | null, StatError>;\n walk(\n filename: string,\n resolveSymlinks: boolean,\n checkExistence: boolean,\n checkAccess: boolean,\n funcName?: string,\n ): Result<Link | null, StatError>;\n walk(\n link: Link,\n resolveSymlinks: boolean,\n checkExistence: boolean,\n checkAccess: boolean,\n funcName?: string,\n ): Result<Link | null, StatError>;\n walk(\n stepsOrFilenameOrLink: string[] | string | Link,\n resolveSymlinks: boolean,\n checkExistence: boolean,\n checkAccess: boolean,\n funcName?: string,\n ): Result<Link | null, StatError>;\n walk(\n stepsOrFilenameOrLink: string[] | string | Link,\n resolveSymlinks: boolean = false,\n checkExistence: boolean = false,\n checkAccess: boolean = false,\n funcName?: string,\n ): Result<Link | null, StatError> {\n let steps: string[];\n let filename: string;\n if (stepsOrFilenameOrLink instanceof Link) {\n steps = stepsOrFilenameOrLink.steps;\n filename = pathSep + steps.join(pathSep);\n } else if (typeof stepsOrFilenameOrLink === 'string') {\n steps = filenameToSteps(stepsOrFilenameOrLink);\n filename = stepsOrFilenameOrLink;\n } else {\n steps = stepsOrFilenameOrLink;\n filename = pathSep + steps.join(pathSep);\n }\n\n let curr: Link | null = this.root;\n let i = 0;\n const uid = this.process.getuid?.() ?? 0;\n const gid = this.process.getgid?.() ?? 0;\n while (i < steps.length) {\n let node: Node = curr.getNode();\n // Check access permissions if current link is a directory\n if (node.isDirectory()) {\n if (checkAccess && !node.canExecute(uid, gid)) {\n return Err(createStatError(ERROR_CODE.EACCES, funcName, filename));\n }\n } else {\n if (i < steps.length - 1) {\n return Err(createStatError(ERROR_CODE.ENOTDIR, funcName, filename));\n }\n }\n\n curr = curr.getChild(steps[i]) ?? null;\n\n // Check existence of current link\n if (!curr)\n if (checkExistence) {\n return Err(createStatError(ERROR_CODE.ENOENT, funcName, filename));\n } else {\n return Ok(null);\n }\n\n node = curr?.getNode();\n\n // Resolve symlink if we're resolving all symlinks OR if this is an intermediate path component\n // This allows lstat to traverse through symlinks in intermediate directories while not resolving the final component\n if (node.isSymlink() && (resolveSymlinks || i < steps.length - 1)) {\n const resolvedPath = isAbsolute(node.symlink) ? node.symlink : pathJoin(dirname(curr.getPath()), node.symlink); // Relative to symlink's parent\n\n steps = filenameToSteps(resolvedPath).concat(steps.slice(i + 1));\n curr = this.root;\n i = 0;\n continue;\n }\n\n // After resolving symlinks, check if it's not a directory and we still have more steps\n // This handles the case where we try to traverse through a file\n // Only do this check when we're doing filesystem operations (checkExistence = true)\n if (checkExistence && !node.isDirectory() && i < steps.length - 1) {\n // On Windows, use ENOENT for consistency with Node.js behavior\n // On other platforms, use ENOTDIR which is more semantically correct\n const errorCode = this.process.platform === 'win32' ? ERROR_CODE.ENOENT : ERROR_CODE.ENOTDIR;\n return Err(createStatError(errorCode, funcName, filename));\n }\n\n i++;\n }\n\n return Ok(curr);\n }\n\n // Returns a `Link` (hard link) referenced by path \"split\" into steps.\n getLink(steps: string[]): Link | null {\n const result = this.walk(steps, false, false, false);\n if (result.ok) {\n return result.value;\n }\n throw result.err.toError();\n }\n\n // Just link `getLink`, but throws a correct user error, if link to found.\n getLinkOrThrow(filename: string, funcName?: string): Link {\n const result = this.walk(filename, false, true, true, funcName);\n if (result.ok) {\n return result.value!;\n }\n throw result.err.toError();\n }\n\n // Just like `getLink`, but also dereference/resolves symbolic links.\n getResolvedLink(filenameOrSteps: string | string[]): Link | null {\n const result = this.walk(filenameOrSteps, true, false, false);\n if (result.ok) {\n return result.value;\n }\n throw result.err.toError();\n }\n\n /**\n * Just like `getLinkOrThrow`, but also dereference/resolves symbolic links.\n */\n getResolvedLinkOrThrow(filename: string, funcName?: string): Link {\n const result = this.walk(filename, true, true, true, funcName);\n if (result.ok) {\n return result.value!;\n }\n throw result.err.toError();\n }\n\n getResolvedLinkResult(filename: string, funcName?: string): Result<Link, StatError> {\n const result = this.walk(filename, true, true, true, funcName);\n if (result.ok) {\n return Ok(result.value!);\n }\n return result;\n }\n\n resolveSymlinks(link: Link): Link | null {\n return this.getResolvedLink(link.steps.slice(1));\n }\n\n /**\n * Just like `getLinkOrThrow`, but also verifies that the link is a directory.\n */\n getLinkAsDirOrThrow(filename: string, funcName?: string): Link {\n const link = this.getLinkOrThrow(filename, funcName)!;\n if (!link.getNode().isDirectory()) throw createError(ERROR_CODE.ENOTDIR, funcName, filename);\n return link;\n }\n\n // Get the immediate parent directory of the link.\n getLinkParent(steps: string[]): Link | null {\n return this.getLink(steps.slice(0, -1));\n }\n\n getLinkParentAsDirOrThrow(filenameOrSteps: string | string[], funcName?: string): Link {\n const steps: string[] = (\n filenameOrSteps instanceof Array ? filenameOrSteps : filenameToSteps(filenameOrSteps)\n ).slice(0, -1);\n const filename: string = pathSep + steps.join(pathSep);\n const link = this.getLinkOrThrow(filename, funcName);\n if (!link.getNode().isDirectory()) throw createError(ERROR_CODE.ENOTDIR, funcName, filename);\n return link;\n }\n\n getFileByFd(fd: number): File {\n return this.fds[String(fd)];\n }\n\n getFileByFdOrThrow(fd: number, funcName?: string): File {\n if (!isFd(fd)) throw TypeError(ERRSTR.FD);\n const file = this.getFileByFd(fd);\n if (!file) throw createError(ERROR_CODE.EBADF, funcName);\n return file;\n }\n\n _toJSON(link = this.root, json = {}, path?: string, asBuffer?: boolean): DirectoryJSON<string | null> {\n let isEmpty = true;\n\n let children = link.children;\n\n if (link.getNode().isFile()) {\n children = new Map([[link.getName(), link.parent!.getChild(link.getName())]]);\n link = link.parent!;\n }\n\n for (const name of children.keys()) {\n if (name === '.' || name === '..') {\n continue;\n }\n isEmpty = false;\n\n const child = link.getChild(name);\n\n if (!child) {\n throw new Error('_toJSON: unexpected undefined');\n }\n const node = child.getNode();\n if (node.isFile()) {\n let filename = child.getPath();\n if (path) filename = pathRelative(path, filename);\n json[filename] = asBuffer ? node.getBuffer() : node.getString();\n } else if (node.isDirectory()) {\n this._toJSON(child, json, path, asBuffer);\n }\n }\n\n let dirPath = link.getPath();\n\n if (path) dirPath = pathRelative(path, dirPath);\n\n if (dirPath && isEmpty) {\n json[dirPath] = null;\n }\n\n return json;\n }\n\n toJSON(paths?: PathLike | PathLike[], json = {}, isRelative = false, asBuffer = false): DirectoryJSON<string | null> {\n const links: Link[] = [];\n\n if (paths) {\n if (!Array.isArray(paths)) paths = [paths];\n for (const path of paths) {\n const filename = pathToFilename(path);\n const link = this.getResolvedLink(filename);\n if (!link) continue;\n links.push(link);\n }\n } else {\n links.push(this.root);\n }\n\n if (!links.length) return json;\n for (const link of links) this._toJSON(link, json, isRelative ? link.getPath() : '', asBuffer);\n return json;\n }\n\n fromJSON(json: DirectoryJSON, cwd: string = this.process.cwd()) {\n for (let filename in json) {\n const data = json[filename];\n filename = resolve(filename, cwd);\n if (typeof data === 'string' || data instanceof Buffer) {\n const dir = dirname(filename);\n this.mkdirp(dir, MODE.DIR);\n const buffer = dataToBuffer(data);\n this.writeFile(filename, buffer, FLAGS.w, MODE.DEFAULT);\n } else {\n this.mkdirp(filename, MODE.DIR);\n }\n }\n }\n\n fromNestedJSON(json: NestedDirectoryJSON, cwd?: string) {\n this.fromJSON(flattenJSON(json), cwd);\n }\n\n reset() {\n this.ino = 0;\n this.inodes = {};\n this.releasedInos = [];\n this.fds = {};\n this.releasedFds = [];\n this.openFiles = 0;\n\n this.root = this.createLink();\n this.root.setNode(this.createNode(constants.S_IFDIR | 0o777));\n }\n\n // Legacy interface\n mountSync(mountpoint: string, json: DirectoryJSON) {\n this.fromJSON(json, mountpoint);\n }\n\n openLink(link: Link, flagsNum: number, resolveSymlinks: boolean = true): File {\n if (this.openFiles >= this.maxFiles) {\n // Too many open files.\n throw createError(ERROR_CODE.EMFILE, 'open', link.getPath());\n }\n\n // Resolve symlinks.\n //\n // @TODO: This should be superfluous. This method is only ever called by openFile(), which does its own symlink resolution\n // prior to calling.\n let realLink: Link | null = link;\n if (resolveSymlinks) realLink = this.getResolvedLinkOrThrow(link.getPath(), 'open');\n\n const node = realLink.getNode();\n\n // Check whether node is a directory\n if (node.isDirectory()) {\n if ((flagsNum & (O_RDONLY | O_RDWR | O_WRONLY)) !== O_RDONLY)\n throw createError(ERROR_CODE.EISDIR, 'open', link.getPath());\n } else {\n if (flagsNum & O_DIRECTORY) throw createError(ERROR_CODE.ENOTDIR, 'open', link.getPath());\n }\n\n // Check node permissions\n // For read access: check if flags are O_RDONLY or O_RDWR (i.e., not only O_WRONLY)\n if ((flagsNum & (O_RDONLY | O_RDWR | O_WRONLY)) !== O_WRONLY) {\n if (!node.canRead()) {\n throw createError(ERROR_CODE.EACCES, 'open', link.getPath());\n }\n }\n // For write access: check if flags are O_WRONLY or O_RDWR\n if (flagsNum & (O_WRONLY | O_RDWR)) {\n if (!node.canWrite()) {\n throw createError(ERROR_CODE.EACCES, 'open', link.getPath());\n }\n }\n\n const file = new File(link, node, flagsNum, this.newFdNumber());\n this.fds[file.fd] = file;\n this.openFiles++;\n\n if (flagsNum & O_TRUNC) {\n const hadContent = file.node.getSize() > 0;\n file.truncate();\n if (hadContent) this.emit(new FsEvent(FsEventType.MODIFY, file.link.steps, file.node, file.link));\n }\n\n return file;\n }\n\n protected openFile(\n filename: string,\n flagsNum: number,\n modeNum: number | undefined,\n resolveSymlinks: boolean = true,\n ): File {\n const steps = filenameToSteps(filename);\n let link: Link | null;\n try {\n link = resolveSymlinks ? this.getResolvedLinkOrThrow(filename, 'open') : this.getLinkOrThrow(filename, 'open');\n\n // Check if file already existed when trying to create it exclusively (O_CREAT and O_EXCL flags are set).\n // This is an error, see https://pubs.opengroup.org/onlinepubs/009695399/functions/open.html:\n // \"If O_CREAT and O_EXCL are set, open() shall fail if the file exists.\"\n if (link && flagsNum & O_CREAT && flagsNum & O_EXCL) throw createError(ERROR_CODE.EEXIST, 'open', filename);\n } catch (err) {\n // Try creating a new file, if it does not exist and O_CREAT flag is set.\n // Note that this will still throw if the ENOENT came from one of the\n // intermediate directories instead of the file itself.\n if (err.code === ERROR_CODE.ENOENT && flagsNum & O_CREAT) {\n const dirName = dirname(filename);\n const dirLink = this.getResolvedLinkOrThrow(dirName);\n const dirNode = dirLink.getNode();\n\n // Check that the place we create the new file is actually a directory and that we are allowed to do so:\n if (!dirNode.isDirectory()) throw createError(ERROR_CODE.ENOTDIR, 'open', filename);\n if (!dirNode.canExecute() || !dirNode.canWrite()) throw createError(ERROR_CODE.EACCES, 'open', filename);\n\n // This is a difference to the original implementation, which would simply not create a file unless modeNum was specified.\n // However, current Node versions will default to 0o666.\n modeNum ??= 0o666;\n\n link = this.createLink(dirLink, steps[steps.length - 1], false, modeNum);\n this.emit(new FsEvent(FsEventType.CREATE, link.steps, link.getNode(), link));\n } else throw err;\n }\n\n if (link) return this.openLink(link, flagsNum, resolveSymlinks);\n throw createError(ERROR_CODE.ENOENT, 'open', filename);\n }\n\n public readonly open = (\n filename: string,\n flagsNum: number,\n modeNum: number,\n resolveSymlinks: boolean = true,\n ): number => {\n const file = this.openFile(filename, flagsNum, modeNum, resolveSymlinks);\n if (!file) throw createError(ERROR_CODE.ENOENT, 'open', filename);\n return file.fd;\n };\n\n public readonly writeFile = (id: TFileId, buf: Buffer, flagsNum: number, modeNum: number) => {\n const isUserFd = typeof id === 'number';\n let fd: number;\n if (isUserFd) fd = id as number;\n else fd = this.open(pathToFilename(id as PathLike), flagsNum, modeNum);\n let offset = 0;\n let length = buf.length;\n let position = flagsNum & O_APPEND ? undefined : 0;\n try {\n while (length > 0) {\n const written = this.write(fd, buf, offset, length, position);\n offset += written;\n length -= written;\n if (position !== undefined) position += written;\n }\n } finally {\n if (!isUserFd) this.close(fd);\n }\n };\n\n public readonly read = (\n fd: number,\n buffer: Buffer | ArrayBufferView | DataView,\n offset: number,\n length: number,\n position: number | null,\n ): number => {\n if (buffer.byteLength < length) {\n throw createError(ERROR_CODE.ERR_OUT_OF_RANGE, 'read', undefined, undefined, RangeError);\n }\n const file = this.getFileByFdOrThrow(fd);\n if (file.node.isSymlink()) {\n throw createError(ERROR_CODE.EPERM, 'read', file.link.getPath());\n }\n return file.read(\n buffer,\n Number(offset),\n Number(length),\n position === -1 || typeof position !== 'number' ? undefined : position,\n );\n };\n\n public readonly readv = (fd: number, buffers: ArrayBufferView[], position: number | null): number => {\n const file = this.getFileByFdOrThrow(fd);\n let p = position ?? undefined;\n if (p === -1) p = undefined;\n let bytesRead = 0;\n for (const buffer of buffers) {\n const bytes = file.read(buffer, 0, buffer.byteLength, p);\n p = undefined;\n bytesRead += bytes;\n if (bytes < buffer.byteLength) break;\n }\n return bytesRead;\n };\n\n public readonly link = (filename1: string, filename2: string) => {\n let link1: Link;\n try {\n link1 = this.getLinkOrThrow(filename1, 'link');\n } catch (err) {\n if (err.code) err = createError(err.code, 'link', filename1, filename2);\n throw err;\n }\n const dirname2 = dirname(filename2);\n let dir2: Link;\n try {\n dir2 = this.getLinkOrThrow(dirname2, 'link');\n } catch (err) {\n // Augment error with filename1\n if (err.code) err = createError(err.code, 'link', filename1, filename2);\n throw err;\n }\n const name = basename(filename2);\n if (dir2.getChild(name)) throw createError(ERROR_CODE.EEXIST, 'link', filename1, filename2);\n const node = link1.getNode();\n node.nlink++;\n const newLink = dir2.createChild(name, node);\n this.emit(new FsEvent(FsEventType.CREATE, newLink.steps, node, newLink));\n };\n\n public readonly unlink = (filename: string) => {\n const link: Link = this.getLinkOrThrow(filename, 'unlink');\n // TODO: Check if it is file, dir, other...\n if (link.length) throw Error('Dir not empty...');\n this._emitDeleteRecursive(link);\n this.deleteLink(link);\n const node = link.getNode();\n node.nlink--;\n // When all hard links to i-node are deleted, remove the i-node, too.\n if (node.nlink <= 0) {\n this.deleteNode(node);\n }\n };\n\n public readonly symlink = (targetFilename: string, pathFilename: string): Link => {\n const pathSteps = filenameToSteps(pathFilename);\n // Check if directory exists, where we about to create a symlink.\n let dirLink;\n try {\n dirLink = this.getLinkParentAsDirOrThrow(pathSteps);\n } catch (err) {\n // Catch error to populate with the correct fields - getLinkParentAsDirOrThrow won't be aware of the second path\n if (err.code) err = createError(err.code, 'symlink', targetFilename, pathFilename);\n throw err;\n }\n const name = pathSteps[pathSteps.length - 1];\n // Check if new file already exists.\n if (dirLink.getChild(name)) throw createError(ERROR_CODE.EEXIST, 'symlink', targetFilename, pathFilename);\n // Check permissions on the path where we are creating the symlink.\n // Note we're not checking permissions on the target path: It is not an error to create a symlink to a\n // non-existent or inaccessible target\n const node = dirLink.getNode();\n if (!node.canExecute() || !node.canWrite())\n throw createError(ERROR_CODE.EACCES, 'symlink', targetFilename, pathFilename);\n // Create symlink.\n const symlink: Link = dirLink.createChild(name);\n symlink.getNode().makeSymlink(targetFilename);\n this.emit(new FsEvent(FsEventType.CREATE, symlink.steps, symlink.getNode(), symlink));\n return symlink;\n };\n\n public readonly rename = (oldPathFilename: string, newPathFilename: string) => {\n let link: Link;\n try {\n link = this.getResolvedLinkOrThrow(oldPathFilename);\n } catch (err) {\n // Augment err with newPathFilename\n if (err.code) err = createError(err.code, 'rename', oldPathFilename, newPathFilename);\n throw err;\n }\n\n // TODO: Check if it is directory, if non-empty, we cannot move it, right?\n\n // Check directory exists for the new location.\n let newPathDirLink: Link;\n try {\n newPathDirLink = this.getLinkParentAsDirOrThrow(newPathFilename);\n } catch (err) {\n // Augment error with oldPathFilename\n if (err.code) err = createError(err.code, 'rename', oldPathFilename, newPathFilename);\n throw err;\n }\n\n // TODO: Also treat cases with directories and symbolic links.\n // TODO: See: http://man7.org/linux/man-pages/man2/rename.2.html\n\n // Remove hard link from old folder.\n const oldLinkParent = link.parent;\n if (!oldLinkParent) throw createError(ERROR_CODE.EINVAL, 'rename', oldPathFilename, newPathFilename);\n\n // Check we have access and write permissions in both places\n const oldParentNode: Node = oldLinkParent.getNode();\n const newPathDirNode: Node = newPathDirLink.getNode();\n if (\n !oldParentNode.canExecute() ||\n !oldParentNode.canWrite() ||\n !newPathDirNode.canExecute() ||\n !newPathDirNode.canWrite()\n ) {\n throw createError(ERROR_CODE.EACCES, 'rename', oldPathFilename, newPathFilename);\n }\n\n oldLinkParent.deleteChild(link);\n\n // Rename should overwrite the new path, if that exists.\n const name = basename(newPathFilename);\n const oldSteps = link.steps;\n link.name = name;\n link.steps = [...newPathDirLink.steps, name];\n newPathDirLink.setChild(link.getName(), link);\n this.emit(new FsEvent(FsEventType.MOVE, link.steps, link.getNode(), link, oldSteps));\n };\n\n public readonly mkdir = (filename: string, modeNum: number): void => {\n const steps = filenameToSteps(filename);\n // This will throw if user tries to create root dir `fs.mkdirSync('/')`.\n if (!steps.length) throw createError(ERROR_CODE.EEXIST, 'mkdir', filename);\n const dir = this.getLinkParentAsDirOrThrow(filename, 'mkdir');\n // Check path already exists.\n const name = steps[steps.length - 1];\n if (dir.getChild(name)) throw createError(ERROR_CODE.EEXIST, 'mkdir', filename);\n const node = dir.getNode();\n if (!node.canWrite() || !node.canExecute()) throw createError(ERROR_CODE.EACCES, 'mkdir', filename);\n const child = dir.createChild(name, this.createNode(constants.S_IFDIR | modeNum));\n this.emit(new FsEvent(FsEventType.CREATE, child.steps, child.getNode(), child));\n };\n\n /**\n * Creates directory tree recursively.\n */\n public readonly mkdirp = (filename: string, modeNum: number): string | undefined => {\n let created = false;\n const steps = filenameToSteps(filename);\n let curr: Link | null = null;\n let i = steps.length;\n // Find the longest subpath of filename that still exists:\n for (i = steps.length; i >= 0; i--) {\n curr = this.getResolvedLink(steps.slice(0, i));\n if (curr) break;\n }\n if (!curr) {\n curr = this.root;\n i = 0;\n }\n // curr is now the last directory that still exists.\n // (If none of them existed, curr is the root.)\n // Check access the lazy way:\n curr = this.getResolvedLinkOrThrow(sep + steps.slice(0, i).join(sep), 'mkdir');\n // Start creating directories:\n for (i; i < steps.length; i++) {\n const node = curr.getNode();\n if (node.isDirectory()) {\n // Check we have permissions\n if (!node.canExecute() || !node.canWrite()) throw createError(ERROR_CODE.EACCES, 'mkdir', filename);\n } else {\n throw createError(ERROR_CODE.ENOTDIR, 'mkdir', filename);\n }\n created = true;\n curr = curr.createChild(steps[i], this.createNode(constants.S_IFDIR | modeNum));\n this.emit(new FsEvent(FsEventType.CREATE, curr.steps, curr.getNode(), curr));\n }\n return created ? filename : undefined;\n };\n\n public readonly rmdir = (filename: string, recursive: boolean = false) => {\n const link = this.getLinkAsDirOrThrow(filename, 'rmdir');\n if (link.length && !recursive) throw createError(ERROR_CODE.ENOTEMPTY, 'rmdir', filename);\n this._emitDeleteRecursive(link);\n this.deleteLink(link);\n };\n\n public readonly rm = (filename: string, force: boolean = false, recursive: boolean = false): void => {\n // \"stat\" is used to match Node's native error message.\n let link: Link;\n try {\n link = this.getResolvedLinkOrThrow(filename, 'stat');\n } catch (err) {\n // Silently ignore missing paths if force option is true\n if (err.code === ERROR_CODE.ENOENT && force) return;\n else throw err;\n }\n if (link.getNode().isDirectory() && !recursive) throw createError(ERROR_CODE.ERR_FS_EISDIR, 'rm', filename);\n if (!link.parent?.getNode().canWrite()) throw createError(ERROR_CODE.EACCES, 'rm', filename);\n this._emitDeleteRecursive(link);\n this.deleteLink(link);\n };\n\n protected closeFile(file: File) {\n if (!this.fds[file.fd]) return;\n this.openFiles--;\n delete this.fds[file.fd];\n this.releasedFds.push(file.fd);\n }\n\n public readonly close = (fd: number) => {\n validateFd(fd);\n const file = this.getFileByFdOrThrow(fd, 'close');\n this.closeFile(file);\n };\n\n write(fd: number, buf: Buffer, offset?: number, length?: number, position?: number | null): number {\n const file = this.getFileByFdOrThrow(fd, 'write');\n if (file.node.isSymlink()) {\n throw createError(ERROR_CODE.EBADF, 'write', file.link.getPath());\n }\n const bytes = file.write(\n buf,\n offset,\n length,\n position === -1 || typeof position !== 'number' ? undefined : position,\n );\n if (bytes > 0) this.emit(new FsEvent(FsEventType.MODIFY, file.link.steps, file.node, file.link));\n return bytes;\n }\n\n public readonly ftruncate = (fd: number, len?: number): void => {\n const file = this.getFileByFdOrThrow(fd, 'ftruncate');\n file.truncate(len);\n this.emit(new FsEvent(FsEventType.MODIFY, file.link.steps, file.node, file.link));\n };\n\n public readonly fchmod = (fd: number, modeNum: number): void => {\n const file = this.getFileByFdOrThrow(fd, 'fchmod');\n file.chmod(modeNum);\n this.emit(new FsEvent(FsEventType.ATTRIB, file.link.steps, file.node, file.link));\n };\n\n public readonly chmod = (filename: string, modeNum: number): void => {\n const link = this.getResolvedLinkOrThrow(filename, 'chmod');\n link.getNode().chmod(modeNum);\n this.emit(new FsEvent(FsEventType.ATTRIB, link.steps, link.getNode(), link));\n };\n\n public readonly lchmod = (filename: string, modeNum: number): void => {\n const link = this.getLinkOrThrow(filename, 'lchmod');\n link.getNode().chmod(modeNum);\n this.emit(new FsEvent(FsEventType.ATTRIB, link.steps, link.getNode(), link));\n };\n\n public readonly fchown = (fd: number, uid: number, gid: number): void => {\n const file = this.getFileByFdOrThrow(fd, 'fchown');\n file.chown(uid, gid);\n this.emit(new FsEvent(FsEventType.ATTRIB, file.link.steps, file.node, file.link));\n };\n\n public readonly chown = (filename: string, uid: number, gid: number): void => {\n const link = this.getResolvedLinkOrThrow(filename, 'chown');\n link.getNode().chown(uid, gid);\n this.emit(new FsEvent(FsEventType.ATTRIB, link.steps, link.getNode(), link));\n };\n\n public readonly lchown = (filename: string, uid: number, gid: number): void => {\n const link = this.getLinkOrThrow(filename, 'lchown');\n link.getNode().chown(uid, gid);\n this.emit(new FsEvent(FsEventType.ATTRIB, link.steps, link.getNode(), link));\n };\n\n public readonly futimes = (fd: number, atime: number, mtime: number): void => {\n const file = this.getFileByFdOrThrow(fd, 'futimes');\n const node = file.node;\n node.atime = new Date(atime * 1000);\n node.mtime = new Date(mtime * 1000);\n this.emit(new FsEvent(FsEventType.ATTRIB, file.link.steps, file.node, file.link));\n };\n\n public readonly utimes = (filename: string, atime: number, mtime: number, followSymlinks: boolean = true): void => {\n const link = followSymlinks\n ? this.getResolvedLinkOrThrow(filename, 'utimes')\n : this.getLinkOrThrow(filename, 'lutimes');\n const node = link.getNode();\n node.atime = new Date(atime * 1000);\n node.mtime = new Date(mtime * 1000);\n this.emit(new FsEvent(FsEventType.ATTRIB, link.steps, node, link));\n };\n}\n"]}

@@ -1,1 +0,1 @@

{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { PathLike } from '@jsonjoy.com/fs-node-utils/lib/types/misc';\n\nexport type TFileId = PathLike | number; // Number is used as a file descriptor.\n\nexport interface StatError {\n code: string;\n message: string;\n path?: string;\n toError(): Error;\n}\n"]}

@@ -1,1 +0,1 @@

{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;;AA4DA,oBAEC;AAED,gCAEC;AAED,oCAKC;AAED,8BASC;AAmBD,wCAeC;AAuDD,kCAOC;AAED,0CAcC;AApMD,iEAA4F;AAC5F,8EAAuF;AACvF,4EAA4E;AAC5E,uCAAgC;AAChC,yCAAwE;AACxE,8DAAoD;AAIvC,QAAA,KAAK,GAAG,iBAAO,CAAC,QAAQ,KAAK,OAAO,CAAC;AAElD,MAAM,oBAAoB,GAAG,cAAW,CAAC;AACzC,MAAM,OAAO,GAAG,YAAK,CAAC,CAAC,CAAC,YAAK,CAAC,GAAG,CAAC,CAAC,CAAC,UAAG,CAAC;AAIxC,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;IAC7B,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAClB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,aAAK,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC;AAC7D,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAAG,CAAC,GAAW,EAAU,EAAE;IACtD,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;IACvB,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IACtB,OAAO,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC;QAAE,CAAC,EAAE,CAAC;IAChC,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9B,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,aAAa,EAAU,EAAE;IACnD,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,MAAM,IAAI,SAAS,CAAC,mBAAmB,CAAC,CAAC;IACtE,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IACnC,IAAI,aAAa,KAAK,KAAK;QAAE,GAAG,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC;IAChE,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEK,MAAM,OAAO,GAAG,CAAC,QAAgB,EAAE,gBAAyB,IAAI,EAAU,EAAE;IACjF,IAAI,aAAK,EAAE,CAAC;QACV,QAAQ,GAAG,aAAa,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QAClD,OAAO,QAAQ,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AANW,QAAA,OAAO,WAMlB;AAIF,IAAI,OAAO,GAAa,CAAC,QAAQ,EAAE,IAAI,GAAG,iBAAO,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAMxF,0BAAO;AALhB,IAAI,aAAK,EAAE,CAAC;IACV,MAAM,QAAQ,GAAG,OAAO,CAAC;IACzB,kBAAA,OAAO,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,IAAA,eAAO,EAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;AAClE,CAAC;AAIM,MAAM,eAAe,GAAG,CAAC,QAAgB,EAAE,IAAa,EAAY,EAAE;IAC3E,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACzC,MAAM,iBAAiB,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAChD,IAAI,CAAC,iBAAiB;QAAE,OAAO,EAAE,CAAC;IAClC,OAAO,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC1C,CAAC,CAAC;AALW,QAAA,eAAe,mBAK1B;AAEF,SAAgB,IAAI,CAAC,IAAI;IACvB,OAAO,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC;AAC7B,CAAC;AAED,SAAgB,UAAU,CAAC,EAAE;IAC3B,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAAE,MAAM,SAAS,CAAC,sBAAM,CAAC,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED,SAAgB,YAAY,CAAC,IAAW,EAAE,WAA8B,wBAAa;IACnF,IAAI,eAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;SAClC,IAAI,IAAI,YAAY,UAAU;QAAE,OAAO,IAAA,mBAAU,EAAC,IAAI,CAAC,CAAC;SACxD,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,IAAA,mBAAU,EAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;;QACnE,OAAO,IAAA,mBAAU,EAAC,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;AACjD,CAAC;AAED,SAAgB,SAAS,CAAC,IAAI,EAAE,QAAS;IACvC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QACzC,MAAM,EAAE,GAAG,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAChE,EAAU,CAAC,IAAI,GAAG,QAAQ,CAAC;QAC5B,IAAI,OAAO,QAAQ,KAAK,UAAU;YAAE,MAAM,EAAE,CAAC;QAC7C,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3C,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAG;IAC9B,IAAI,GAAG,CAAC,QAAQ,KAAK,EAAE,EAAE,CAAC;QACxB,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,2BAA2B,EAAE,iBAAO,CAAC,QAAQ,CAAC,CAAC;IAC5E,CAAC;IACD,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;IAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;YACjD,IAAI,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;gBAC7C,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,2BAA2B,EAAE,uCAAuC,CAAC,CAAC;YACnG,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC9C,OAAO,aAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AACrE,CAAC;AAED,SAAgB,cAAc,CAAC,IAAmB;IAChD,IAAI,IAAI,YAAY,UAAU,EAAE,CAAC;QAC/B,IAAI,GAAG,IAAA,mBAAU,EAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IACD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,eAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACvD,IAAI,CAAC;YACH,IAAI,CAAC,CAAC,IAAI,YAAY,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC;gBAAE,MAAM,IAAI,SAAS,CAAC,sBAAM,CAAC,QAAQ,CAAC,CAAC;QAClF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,SAAS,CAAC,sBAAM,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC;QACD,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAChC,SAAS,CAAC,UAAU,CAAC,CAAC;IACtB,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,MAAM,GAAG,QAAQ,CAAC;AACxB,MAAM,KAAK,GAAG,OAAO,CAAC;AACtB,MAAM,MAAM,GAAG,QAAQ,CAAC;AACxB,MAAM,KAAK,GAAG,OAAO,CAAC;AACtB,MAAM,MAAM,GAAG,QAAQ,CAAC;AACxB,MAAM,MAAM,GAAG,QAAQ,CAAC;AACxB,MAAM,OAAO,GAAG,SAAS,CAAC;AAC1B,MAAM,MAAM,GAAG,QAAQ,CAAC;AACxB,MAAM,MAAM,GAAG,QAAQ,CAAC;AACxB,MAAM,MAAM,GAAG,QAAQ,CAAC;AACxB,MAAM,SAAS,GAAG,WAAW,CAAC;AAC9B,MAAM,MAAM,GAAG,QAAQ,CAAC;AACxB,MAAM,aAAa,GAAG,eAAe,CAAC;AACtC,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AAE5C,SAAS,WAAW,CAAC,SAAiB,EAAE,IAAI,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE;IACtE,IAAI,aAAa,GAAG,EAAE,CAAC;IACvB,IAAI,IAAI;QAAE,aAAa,GAAG,KAAK,IAAI,GAAG,CAAC;IACvC,IAAI,KAAK;QAAE,aAAa,IAAI,QAAQ,KAAK,GAAG,CAAC;IAC7C,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,MAAM;YACT,OAAO,sCAAsC,IAAI,GAAG,aAAa,EAAE,CAAC;QACtE,KAAK,KAAK;YACR,OAAO,+BAA+B,IAAI,GAAG,aAAa,EAAE,CAAC;QAC/D,KAAK,MAAM;YACT,OAAO,6BAA6B,IAAI,GAAG,aAAa,EAAE,CAAC;QAC7D,KAAK,KAAK;YACR,OAAO,mCAAmC,IAAI,GAAG,aAAa,EAAE,CAAC;QACnE,KAAK,MAAM;YACT,OAAO,2BAA2B,IAAI,GAAG,aAAa,EAAE,CAAC;QAC3D,KAAK,MAAM;YACT,OAAO,gCAAgC,IAAI,GAAG,aAAa,EAAE,CAAC;QAChE,KAAK,OAAO;YACV,OAAO,6BAA6B,IAAI,GAAG,aAAa,EAAE,CAAC;QAC7D,KAAK,MAAM;YACT,OAAO,6CAA6C,IAAI,GAAG,aAAa,EAAE,CAAC;QAC7E,KAAK,MAAM;YACT,OAAO,8BAA8B,IAAI,GAAG,aAAa,EAAE,CAAC;QAC9D,KAAK,SAAS;YACZ,OAAO,mCAAmC,IAAI,GAAG,aAAa,EAAE,CAAC;QACnE,KAAK,MAAM;YACT,OAAO,gCAAgC,IAAI,GAAG,aAAa,EAAE,CAAC;QAChE,KAAK,MAAM;YACT,OAAO,qCAAqC,IAAI,GAAG,aAAa,EAAE,CAAC;QACrE,KAAK,aAAa;YAChB,OAAO,yCAAyC,IAAI,qCAAqC,IAAI,EAAE,CAAC;QAClG,KAAK,gBAAgB;YACnB,OAAO,2CAA2C,IAAI,GAAG,aAAa,EAAE,CAAC;QAC3E;YACE,OAAO,GAAG,SAAS,qBAAqB,IAAI,GAAG,aAAa,EAAE,CAAC;IACnE,CAAC;AACH,CAAC;AAED,SAAgB,WAAW,CAAC,SAAiB,EAAE,IAAI,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,WAAW,GAAG,KAAK;IAClG,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IACxE,KAAa,CAAC,IAAI,GAAG,SAAS,CAAC;IAChC,IAAI,IAAI,EAAE,CAAC;QACR,KAAa,CAAC,IAAI,GAAG,IAAI,CAAC;IAC7B,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAgB,eAAe,CAAC,SAAiB,EAAE,IAAI,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE;IACjF,OAAO;QACL,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,WAAW,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;QAClD,IAAI;QACJ,OAAO;YACL,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACrC,KAAa,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YAChC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACb,KAAa,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YAClC,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;KACW,CAAC;AACjB,CAAC","sourcesContent":["import { resolve as pathResolve, sep, posix } from '@jsonjoy.com/fs-node-builtins/lib/path';\nimport { Buffer, bufferFrom } from '@jsonjoy.com/fs-node-builtins/lib/internal/buffer';\nimport * as errors from '@jsonjoy.com/fs-node-builtins/lib/internal/errors';\nimport process from './process';\nimport { TDataOut, TEncodingExtended, ENCODING_UTF8 } from './encoding';\nimport { ERRSTR } from '@jsonjoy.com/fs-node-utils';\nimport type * as misc from '@jsonjoy.com/fs-node-utils/lib/types/misc';\nimport type { StatError } from './types';\n\nexport const isWin = process.platform === 'win32';\n\nconst resolveCrossPlatform = pathResolve;\nconst pathSep = posix ? posix.sep : sep;\n\ntype TData = TDataOut | ArrayBufferView | DataView; // Data formats users can give us.\n\nconst isSeparator = (str, i) => {\n let char = str[i];\n return i > 0 && (char === '/' || (isWin && char === '\\\\'));\n};\n\nconst removeTrailingSeparator = (str: string): string => {\n let i = str.length - 1;\n if (i < 2) return str;\n while (isSeparator(str, i)) i--;\n return str.substr(0, i + 1);\n};\n\nconst normalizePath = (str, stripTrailing): string => {\n if (typeof str !== 'string') throw new TypeError('expected a string');\n str = str.replace(/[\\\\\\/]+/g, '/');\n if (stripTrailing !== false) str = removeTrailingSeparator(str);\n return str;\n};\n\nexport const unixify = (filepath: string, stripTrailing: boolean = true): string => {\n if (isWin) {\n filepath = normalizePath(filepath, stripTrailing);\n return filepath.replace(/^([a-zA-Z]+:|\\.\\/)/, '');\n }\n return filepath;\n};\n\ntype TResolve = (filename: string, base?: string) => string;\n\nlet resolve: TResolve = (filename, base = process.cwd()) => resolveCrossPlatform(base, filename);\nif (isWin) {\n const _resolve = resolve;\n resolve = (filename, base) => unixify(_resolve(filename, base));\n}\n\nexport { resolve };\n\nexport const filenameToSteps = (filename: string, base?: string): string[] => {\n const fullPath = resolve(filename, base);\n const fullPathSansSlash = fullPath.substring(1);\n if (!fullPathSansSlash) return [];\n return fullPathSansSlash.split(pathSep);\n};\n\nexport function isFd(path): boolean {\n return path >>> 0 === path;\n}\n\nexport function validateFd(fd) {\n if (!isFd(fd)) throw TypeError(ERRSTR.FD);\n}\n\nexport function dataToBuffer(data: TData, encoding: TEncodingExtended = ENCODING_UTF8): Buffer {\n if (Buffer.isBuffer(data)) return data;\n else if (data instanceof Uint8Array) return bufferFrom(data);\n else if (encoding === 'buffer') return bufferFrom(String(data), 'utf8');\n else return bufferFrom(String(data), encoding);\n}\n\nexport function nullCheck(path, callback?) {\n if (('' + path).indexOf('\\u0000') !== -1) {\n const er = new Error('Path must be a string without null bytes');\n (er as any).code = 'ENOENT';\n if (typeof callback !== 'function') throw er;\n Promise.resolve().then(() => callback(er));\n return false;\n }\n return true;\n}\n\nfunction getPathFromURLPosix(url): string {\n if (url.hostname !== '') {\n throw new errors.TypeError('ERR_INVALID_FILE_URL_HOST', process.platform);\n }\n const pathname = url.pathname;\n for (let n = 0; n < pathname.length; n++) {\n if (pathname[n] === '%') {\n const third = pathname.codePointAt(n + 2) | 0x20;\n if (pathname[n + 1] === '2' && third === 102) {\n throw new errors.TypeError('ERR_INVALID_FILE_URL_PATH', 'must not include encoded / characters');\n }\n }\n }\n const filepath = decodeURIComponent(pathname);\n return isWin ? filepath.replace(/^\\/([a-zA-Z]:)/, '$1') : filepath;\n}\n\nexport function pathToFilename(path: misc.PathLike): string {\n if (path instanceof Uint8Array) {\n path = bufferFrom(path);\n }\n if (typeof path !== 'string' && !Buffer.isBuffer(path)) {\n try {\n if (!(path instanceof require('url').URL)) throw new TypeError(ERRSTR.PATH_STR);\n } catch (err) {\n throw new TypeError(ERRSTR.PATH_STR);\n }\n path = getPathFromURLPosix(path);\n }\n const pathString = String(path);\n nullCheck(pathString);\n return pathString;\n}\n\nconst ENOENT = 'ENOENT';\nconst EBADF = 'EBADF';\nconst EINVAL = 'EINVAL';\nconst EPERM = 'EPERM';\nconst EPROTO = 'EPROTO';\nconst EEXIST = 'EEXIST';\nconst ENOTDIR = 'ENOTDIR';\nconst EMFILE = 'EMFILE';\nconst EACCES = 'EACCES';\nconst EISDIR = 'EISDIR';\nconst ENOTEMPTY = 'ENOTEMPTY';\nconst ENOSYS = 'ENOSYS';\nconst ERR_FS_EISDIR = 'ERR_FS_EISDIR';\nconst ERR_OUT_OF_RANGE = 'ERR_OUT_OF_RANGE';\n\nfunction formatError(errorCode: string, func = '', path = '', path2 = '') {\n let pathFormatted = '';\n if (path) pathFormatted = ` '${path}'`;\n if (path2) pathFormatted += ` -> '${path2}'`;\n switch (errorCode) {\n case ENOENT:\n return `ENOENT: no such file or directory, ${func}${pathFormatted}`;\n case EBADF:\n return `EBADF: bad file descriptor, ${func}${pathFormatted}`;\n case EINVAL:\n return `EINVAL: invalid argument, ${func}${pathFormatted}`;\n case EPERM:\n return `EPERM: operation not permitted, ${func}${pathFormatted}`;\n case EPROTO:\n return `EPROTO: protocol error, ${func}${pathFormatted}`;\n case EEXIST:\n return `EEXIST: file already exists, ${func}${pathFormatted}`;\n case ENOTDIR:\n return `ENOTDIR: not a directory, ${func}${pathFormatted}`;\n case EISDIR:\n return `EISDIR: illegal operation on a directory, ${func}${pathFormatted}`;\n case EACCES:\n return `EACCES: permission denied, ${func}${pathFormatted}`;\n case ENOTEMPTY:\n return `ENOTEMPTY: directory not empty, ${func}${pathFormatted}`;\n case EMFILE:\n return `EMFILE: too many open files, ${func}${pathFormatted}`;\n case ENOSYS:\n return `ENOSYS: function not implemented, ${func}${pathFormatted}`;\n case ERR_FS_EISDIR:\n return `[ERR_FS_EISDIR]: Path is a directory: ${func} returned EISDIR (is a directory) ${path}`;\n case ERR_OUT_OF_RANGE:\n return `[ERR_OUT_OF_RANGE]: value out of range, ${func}${pathFormatted}`;\n default:\n return `${errorCode}: error occurred, ${func}${pathFormatted}`;\n }\n}\n\nexport function createError(errorCode: string, func = '', path = '', path2 = '', Constructor = Error) {\n const error = new Constructor(formatError(errorCode, func, path, path2));\n (error as any).code = errorCode;\n if (path) {\n (error as any).path = path;\n }\n return error;\n}\n\nexport function createStatError(errorCode: string, func = '', path = '', path2 = ''): StatError {\n return {\n code: errorCode,\n message: formatError(errorCode, func, path, path2),\n path,\n toError() {\n const error = new Error(this.message);\n (error as any).code = this.code;\n if (this.path) {\n (error as any).path = this.path;\n }\n return error;\n },\n } as StatError;\n}\n"]}

@@ -1,1 +0,1 @@

{"version":3,"file":"CoreWatcher.js","sourceRoot":"","sources":["../../src/watch/CoreWatcher.ts"],"names":[],"mappings":";;;AAAA,gDAA6C;AAqB7C;;;;GAIG;AACH,MAAa,cAAc;IACzB,YACkB,IAAiB;IACjC,0EAA0E;IAC1D,KAAe,EACf,IAAU,EACV,IAAU;IAC1B,2EAA2E;IAC3D,WAAiC,KAAK,CAAC;QANvC,SAAI,GAAJ,IAAI,CAAa;QAEjB,UAAK,GAAL,KAAK,CAAU;QACf,SAAI,GAAJ,IAAI,CAAM;QACV,SAAI,GAAJ,IAAI,CAAM;QAEV,aAAQ,GAAR,QAAQ,CAA+B;IACtD,CAAC;CACL;AAVD,wCAUC;AAED;;;;;;;;;;;;GAYG;AACH,MAAa,WAAW;IAUtB,uEAAuE;IACvE,YAAY,IAAgB,EAAE,IAAY,EAAE,OAAyB,EAAE;QANvE,yEAAyE;QACzD,YAAO,GAAG,IAAI,eAAM,EAAkB,CAAC;QAMrD,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACpH,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAChC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,IAAW,MAAM;QACf,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;IACrB,CAAC;IAEO,OAAO,CAAC,KAAc;QAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAC1C,MAAM,MAAM,GACV,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI;YACxB,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,+BAAuB,IAAI,KAAK,CAAC,IAAI,+BAAuB,CAAC,CAAC,CAAC;QACzG,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAC7E,IAAI,KAAK,CAAC,IAAI,+BAAuB;gBAAE,IAAI,CAAC,KAAK,EAAE,CAAC;YACpD,OAAO;QACT,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,6BAAqB,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC3G,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACjF,IAAI,IAAI,IAAI,EAAE;gBAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,cAAc,2BAAmB,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;iBACrG,IAAI,IAAI;gBAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,cAAc,6BAAqB,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;iBAClG,IAAI,EAAE;gBAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,cAAc,6BAAqB,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YACnG,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;YAC3B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7G,CAAC;IAEO,OAAO,CAAC,KAAe;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QAC7B,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC9C,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QACtE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE;YAAE,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAC;QAC7E,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mEAAmE;IAC5D,KAAK;QACV,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;QACf,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;IACzB,CAAC;CACF;AAzDD,kCAyDC"}
{"version":3,"file":"CoreWatcher.js","sourceRoot":"","sources":["../../src/watch/CoreWatcher.ts"],"names":[],"mappings":"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","sourcesContent":["import { FanOut } from 'thingies/lib/fanout';\nimport { FsEvent, FsEventType } from './FsEvent';\nimport type { Link } from '../Link';\nimport type { Node } from '../Node';\nimport type { Superblock } from '../Superblock';\n\nexport interface CoreWatchOptions {\n /**\n * When `true`, the whole subtree of the watch target is observed. Otherwise\n * only the target itself and its direct children are (FSA depth-1 and inotify\n * semantics).\n */\n recursive?: boolean;\n\n /**\n * Resolve symlinks when locating the watch target, like `fs.watch` does.\n * When `false`, the symlink itself is watched. Default `true`.\n */\n follow?: boolean;\n}\n\n/**\n * A change event scoped to a {@link CoreWatcher} watch root. Unlike the\n * volume-global {@link FsEvent}, `steps` (and `oldSteps`) are relative to the\n * watch root; an empty `steps` array means the watch target itself changed.\n */\nexport class CoreWatchEvent {\n constructor(\n public readonly type: FsEventType,\n /** Path relative to the watch root, empty for the watch target itself. */\n public readonly steps: string[],\n public readonly node: Node,\n public readonly link: Link,\n /** Former path relative to the watch root, set only for in-scope moves. */\n public readonly oldSteps: string[] | undefined = void 0,\n ) {}\n}\n\n/**\n * Subscribes to a {@link Superblock} change stream and re-emits only the\n * events that fall within the scope of one watched file or directory, with\n * paths rewritten to be relative to the watch root.\n *\n * Scope-boundary crossing moves are translated: a move into scope is emitted\n * as `CREATE`, a move out of scope as `DELETE`, and a move within scope stays\n * a `MOVE` carrying relative `oldSteps`. A `MOVE` with empty `steps` means the\n * watch target itself was renamed; watching continues at the new location\n * (the current absolute path is always `watcher.link.steps`). A `DELETE` with\n * empty `steps` is terminal: the watch target is gone and the watcher closes\n * itself after delivering it.\n */\nexport class CoreWatcher {\n /** The link of the watch target; `link.steps` stays current across renames. */\n public readonly link: Link;\n /** The node the watch target pointed to when watching started. */\n public readonly node: Node;\n /** Fan-out of scoped change events. Multiple consumers may subscribe. */\n public readonly changes = new FanOut<CoreWatchEvent>();\n private readonly recursive: boolean;\n private unsub: (() => void) | undefined;\n\n /** @throws ENOENT-style error when the watch target does not exist. */\n constructor(core: Superblock, path: string, opts: CoreWatchOptions = {}) {\n this.link = (opts.follow ?? true) ? core.getResolvedLinkOrThrow(path, 'watch') : core.getLinkOrThrow(path, 'watch');\n this.node = this.link.getNode();\n this.recursive = !!opts.recursive;\n this.unsub = core.changes.listen(event => this.onEvent(event));\n }\n\n public get closed(): boolean {\n return !this.unsub;\n }\n\n private onEvent(event: FsEvent): void {\n const rootLength = this.link.steps.length;\n const isSelf =\n event.link === this.link ||\n (event.node === this.node && (event.type === FsEventType.MODIFY || event.type === FsEventType.ATTRIB));\n if (isSelf) {\n this.changes.emit(new CoreWatchEvent(event.type, [], event.node, this.link));\n if (event.type === FsEventType.DELETE) this.close();\n return;\n }\n if (event.type === FsEventType.MOVE) {\n const from = event.oldSteps && this.inScope(event.oldSteps) ? event.oldSteps.slice(rootLength) : undefined;\n const to = this.inScope(event.steps) ? event.steps.slice(rootLength) : undefined;\n if (from && to) this.changes.emit(new CoreWatchEvent(FsEventType.MOVE, to, event.node, event.link, from));\n else if (from) this.changes.emit(new CoreWatchEvent(FsEventType.DELETE, from, event.node, event.link));\n else if (to) this.changes.emit(new CoreWatchEvent(FsEventType.CREATE, to, event.node, event.link));\n return;\n }\n if (this.inScope(event.steps))\n this.changes.emit(new CoreWatchEvent(event.type, event.steps.slice(rootLength), event.node, event.link));\n }\n\n private inScope(steps: string[]): boolean {\n const root = this.link.steps;\n if (steps.length <= root.length) return false;\n if (!this.recursive && steps.length !== root.length + 1) return false;\n for (let i = 0; i < root.length; i++) if (steps[i] !== root[i]) return false;\n return true;\n }\n\n /** Stop watching and unsubscribe from the volume change stream. */\n public close(): void {\n this.unsub?.();\n this.unsub = undefined;\n }\n}\n"]}

@@ -1,1 +0,1 @@

{"version":3,"file":"FsEvent.js","sourceRoot":"","sources":["../../src/watch/FsEvent.ts"],"names":[],"mappings":";;;AAgBA,MAAa,OAAO;IAClB,YACkB,IAAiB,EACjB,KAAe,EACf,IAAU,EACV,IAAU,EACV,WAAiC,KAAK,CAAC;QAJvC,SAAI,GAAJ,IAAI,CAAa;QACjB,UAAK,GAAL,KAAK,CAAU;QACf,SAAI,GAAJ,IAAI,CAAM;QACV,SAAI,GAAJ,IAAI,CAAM;QACV,aAAQ,GAAR,QAAQ,CAA+B;IACtD,CAAC;CACL;AARD,0BAQC"}
{"version":3,"file":"FsEvent.js","sourceRoot":"","sources":["../../src/watch/FsEvent.ts"],"names":[],"mappings":";;;AAgBA,MAAa,OAAO;IAClB,YACkB,IAAiB,EACjB,KAAe,EACf,IAAU,EACV,IAAU,EACV,WAAiC,KAAK,CAAC;QAJvC,SAAI,GAAJ,IAAI,CAAa;QACjB,UAAK,GAAL,KAAK,CAAU;QACf,SAAI,GAAJ,IAAI,CAAM;QACV,SAAI,GAAJ,IAAI,CAAM;QACV,aAAQ,GAAR,QAAQ,CAA+B;IACtD,CAAC;CACL;AARD,0BAQC","sourcesContent":["import type { Node } from '../Node';\nimport type { Link } from '../Link';\n\nexport const enum FsEventType {\n /** A directory entry appeared: file, directory, symlink, or new hard link. */\n CREATE,\n /** A directory entry was removed. */\n DELETE,\n /** File content changed (write, truncate). */\n MODIFY,\n /** File metadata changed: permissions, ownership, or timestamps. */\n ATTRIB,\n /** An entry was renamed/moved within the tree. */\n MOVE,\n}\n\nexport class FsEvent {\n constructor(\n public readonly type: FsEventType,\n public readonly steps: string[],\n public readonly node: Node,\n public readonly link: Link,\n public readonly oldSteps: string[] | undefined = void 0,\n ) {}\n}\n"]}

@@ -6,3 +6,3 @@ {

},
"version": "4.66.0",
"version": "4.66.1",
"description": "Core filesystem primitives: Node, Link, File, Superblock",

@@ -84,6 +84,6 @@ "author": {

"dependencies": {
"@jsonjoy.com/fs-node-builtins": "4.66.0",
"@jsonjoy.com/fs-node-utils": "4.66.0",
"@jsonjoy.com/fs-node-builtins": "4.66.1",
"@jsonjoy.com/fs-node-utils": "4.66.1",
"thingies": "^2.5.0"
}
}