Son CV dans un terminal web en Javascript!
https://terminal-cv.gregandev.fr
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1 lines
71 KiB
1 lines
71 KiB
{"mappings":"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","sources":["packages/core/fs/src/index.js","packages/core/fs/src/NodeFS.browser.js","packages/core/fs/src/MemoryFS.js","packages/core/fs/package.json","node_modules/nullthrows/nullthrows.js","packages/core/fs/src/find.js","packages/core/fs/src/OverlayFS.js"],"sourcesContent":["// @flow strict-local\nimport type {FileSystem} from './types';\nimport type {FilePath} from '@parcel/types';\nimport path from 'path';\n\nexport type * from './types';\nexport * from './NodeFS';\nexport * from './MemoryFS';\nexport * from './OverlayFS';\n\n// Recursively copies a directory from the sourceFS to the destinationFS\nexport async function ncp(\n sourceFS: FileSystem,\n source: FilePath,\n destinationFS: FileSystem,\n destination: FilePath,\n) {\n await destinationFS.mkdirp(destination);\n let files = await sourceFS.readdir(source);\n for (let file of files) {\n let sourcePath = path.join(source, file);\n let destPath = path.join(destination, file);\n let stats = await sourceFS.stat(sourcePath);\n if (stats.isFile()) {\n await new Promise((resolve, reject) => {\n sourceFS\n .createReadStream(sourcePath)\n .pipe(destinationFS.createWriteStream(destPath))\n .on('finish', () => resolve())\n .on('error', reject);\n });\n } else if (stats.isDirectory()) {\n await ncp(sourceFS, sourcePath, destinationFS, destPath);\n }\n }\n}\n","// @flow\nimport type {FileSystem} from './types';\n\n// $FlowFixMe[prop-missing] handled by the throwing constructor\nexport class NodeFS implements FileSystem {\n constructor() {\n throw new Error(\"NodeFS isn't available in the browser\");\n }\n}\n","// @flow\n\nimport type {FileSystem, FileOptions, ReaddirOptions, Encoding} from './types';\nimport type {FilePath} from '@parcel/types';\nimport type {\n Event,\n Options as WatcherOptions,\n AsyncSubscription,\n} from '@parcel/watcher';\n\nimport path from 'path';\nimport {Readable, Writable} from 'stream';\nimport {registerSerializableClass} from '@parcel/core';\nimport {SharedBuffer} from '@parcel/utils';\nimport packageJSON from '../package.json';\nimport WorkerFarm, {Handle} from '@parcel/workers';\nimport nullthrows from 'nullthrows';\nimport EventEmitter from 'events';\nimport {findAncestorFile, findNodeModule, findFirstFile} from './find';\n\nconst instances: Map<number, MemoryFS> = new Map();\nlet id = 0;\n\ntype HandleFunction = (...args: Array<any>) => any;\ntype SerializedMemoryFS = {\n id: number,\n handle: any,\n dirs: Map<FilePath, Directory>,\n files: Map<FilePath, File>,\n symlinks: Map<FilePath, FilePath>,\n ...\n};\n\ntype WorkerEvent = {|\n type: 'writeFile' | 'unlink' | 'mkdir' | 'symlink',\n path: FilePath,\n entry?: Entry,\n target?: FilePath,\n|};\n\ntype ResolveFunction = () => mixed;\n\nexport class MemoryFS implements FileSystem {\n dirs: Map<FilePath, Directory>;\n files: Map<FilePath, File>;\n symlinks: Map<FilePath, FilePath>;\n watchers: Map<FilePath, Set<Watcher>>;\n events: Array<Event>;\n id: number;\n handle: Handle;\n farm: WorkerFarm;\n _cwd: FilePath;\n _eventQueue: Array<Event>;\n _watcherTimer: TimeoutID;\n _numWorkerInstances: number = 0;\n _workerHandles: Array<Handle>;\n _workerRegisterResolves: Array<ResolveFunction> = [];\n _emitter: EventEmitter = new EventEmitter();\n\n constructor(workerFarm: WorkerFarm) {\n this.farm = workerFarm;\n this.dirs = new Map([['/', new Directory()]]);\n this.files = new Map();\n this.symlinks = new Map();\n this.watchers = new Map();\n this.events = [];\n this.id = id++;\n this._cwd = '/';\n this._workerHandles = [];\n this._eventQueue = [];\n instances.set(this.id, this);\n this._emitter.on('allWorkersRegistered', () => {\n for (let resolve of this._workerRegisterResolves) {\n resolve();\n }\n this._workerRegisterResolves = [];\n });\n }\n\n static deserialize(opts: SerializedMemoryFS): MemoryFS | WorkerFS {\n let existing = instances.get(opts.id);\n if (existing != null) {\n // Correct the count of worker instances since serialization assumes a new instance is created\n WorkerFarm.getWorkerApi().runHandle(opts.handle, [\n 'decrementWorkerInstance',\n [],\n ]);\n return existing;\n }\n\n let fs = new WorkerFS(opts.id, nullthrows(opts.handle));\n fs.dirs = opts.dirs;\n fs.files = opts.files;\n fs.symlinks = opts.symlinks;\n return fs;\n }\n\n serialize(): SerializedMemoryFS {\n if (!this.handle) {\n this.handle = this.farm.createReverseHandle(\n (fn: string, args: Array<mixed>) => {\n // $FlowFixMe\n return this[fn](...args);\n },\n );\n }\n\n // If a worker instance already exists, it will decrement this number\n this._numWorkerInstances++;\n\n return {\n $$raw: false,\n id: this.id,\n handle: this.handle,\n dirs: this.dirs,\n files: this.files,\n symlinks: this.symlinks,\n };\n }\n\n decrementWorkerInstance() {\n this._numWorkerInstances--;\n if (this._numWorkerInstances === this._workerHandles.length) {\n this._emitter.emit('allWorkersRegistered');\n }\n }\n\n cwd(): FilePath {\n return this._cwd;\n }\n\n chdir(dir: FilePath) {\n this._cwd = dir;\n }\n\n _normalizePath(filePath: FilePath, realpath: boolean = true): FilePath {\n filePath = path.resolve(this.cwd(), filePath);\n\n // get realpath by following symlinks\n if (realpath) {\n let {root, dir, base} = path.parse(filePath);\n let parts = dir.slice(root.length).split(path.sep).concat(base);\n let res = root;\n for (let part of parts) {\n res = path.join(res, part);\n let symlink = this.symlinks.get(res);\n if (symlink) {\n res = symlink;\n }\n }\n\n return res;\n }\n\n return filePath;\n }\n\n async writeFile(\n filePath: FilePath,\n contents: Buffer | string,\n options?: ?FileOptions,\n ) {\n filePath = this._normalizePath(filePath);\n if (this.dirs.has(filePath)) {\n throw new FSError('EISDIR', filePath, 'is a directory');\n }\n\n let dir = path.dirname(filePath);\n if (!this.dirs.has(dir)) {\n throw new FSError('ENOENT', dir, 'does not exist');\n }\n\n let buffer = makeShared(contents);\n let file = this.files.get(filePath);\n let mode = (options && options.mode) || 0o666;\n if (file) {\n file.write(buffer, mode);\n this.files.set(filePath, file);\n } else {\n this.files.set(filePath, new File(buffer, mode));\n }\n\n await this._sendWorkerEvent({\n type: 'writeFile',\n path: filePath,\n entry: this.files.get(filePath),\n });\n\n this._triggerEvent({\n type: file ? 'update' : 'create',\n path: filePath,\n });\n }\n\n // eslint-disable-next-line require-await\n async readFile(filePath: FilePath, encoding?: Encoding): Promise<any> {\n return this.readFileSync(filePath, encoding);\n }\n\n readFileSync(filePath: FilePath, encoding?: Encoding): any {\n filePath = this._normalizePath(filePath);\n let file = this.files.get(filePath);\n if (file == null) {\n throw new FSError('ENOENT', filePath, 'does not exist');\n }\n\n let buffer = file.read();\n if (encoding) {\n return buffer.toString(encoding);\n }\n\n return buffer;\n }\n\n async copyFile(source: FilePath, destination: FilePath) {\n let contents = await this.readFile(source);\n await this.writeFile(destination, contents);\n }\n\n statSync(filePath: FilePath): Stat {\n filePath = this._normalizePath(filePath);\n\n let dir = this.dirs.get(filePath);\n if (dir) {\n return dir.stat();\n }\n\n let file = this.files.get(filePath);\n if (file == null) {\n throw new FSError('ENOENT', filePath, 'does not exist');\n }\n\n return file.stat();\n }\n\n // eslint-disable-next-line require-await\n async stat(filePath: FilePath): Promise<Stat> {\n return this.statSync(filePath);\n }\n\n readdirSync(dir: FilePath, opts?: ReaddirOptions): any {\n dir = this._normalizePath(dir);\n if (!this.dirs.has(dir)) {\n throw new FSError('ENOENT', dir, 'does not exist');\n }\n\n dir += path.sep;\n\n let res = [];\n for (let [filePath, entry] of this.dirs) {\n if (\n filePath.startsWith(dir) &&\n filePath.indexOf(path.sep, dir.length) === -1\n ) {\n let name = filePath.slice(dir.length);\n if (opts?.withFileTypes) {\n res.push(new Dirent(name, entry));\n } else {\n res.push(name);\n }\n }\n }\n\n for (let [filePath, entry] of this.files) {\n if (\n filePath.startsWith(dir) &&\n filePath.indexOf(path.sep, dir.length) === -1\n ) {\n let name = filePath.slice(dir.length);\n if (opts?.withFileTypes) {\n res.push(new Dirent(name, entry));\n } else {\n res.push(name);\n }\n }\n }\n\n for (let [from] of this.symlinks) {\n if (from.startsWith(dir) && from.indexOf(path.sep, dir.length) === -1) {\n let name = from.slice(dir.length);\n if (opts?.withFileTypes) {\n res.push(new Dirent(name, {mode: S_IFLNK}));\n } else {\n res.push(name);\n }\n }\n }\n\n return res;\n }\n\n // eslint-disable-next-line require-await\n async readdir(dir: FilePath, opts?: ReaddirOptions): Promise<any> {\n return this.readdirSync(dir, opts);\n }\n\n async unlink(filePath: FilePath): Promise<void> {\n filePath = this._normalizePath(filePath);\n if (!this.files.has(filePath) && !this.dirs.has(filePath)) {\n throw new FSError('ENOENT', filePath, 'does not exist');\n }\n\n this.files.delete(filePath);\n this.dirs.delete(filePath);\n this.watchers.delete(filePath);\n\n await this._sendWorkerEvent({\n type: 'unlink',\n path: filePath,\n });\n\n this._triggerEvent({\n type: 'delete',\n path: filePath,\n });\n\n return Promise.resolve();\n }\n\n async mkdirp(dir: FilePath): Promise<void> {\n dir = this._normalizePath(dir);\n if (this.dirs.has(dir)) {\n return Promise.resolve();\n }\n\n if (this.files.has(dir)) {\n throw new FSError('ENOENT', dir, 'is not a directory');\n }\n\n let root = path.parse(dir).root;\n while (dir !== root) {\n if (this.dirs.has(dir)) {\n break;\n }\n\n this.dirs.set(dir, new Directory());\n await this._sendWorkerEvent({\n type: 'mkdir',\n path: dir,\n });\n\n this._triggerEvent({\n type: 'create',\n path: dir,\n });\n\n dir = path.dirname(dir);\n }\n\n return Promise.resolve();\n }\n\n async rimraf(filePath: FilePath): Promise<void> {\n filePath = this._normalizePath(filePath);\n\n if (this.dirs.has(filePath)) {\n let dir = filePath + path.sep;\n for (let filePath of this.files.keys()) {\n if (filePath.startsWith(dir)) {\n this.files.delete(filePath);\n await this._sendWorkerEvent({\n type: 'unlink',\n path: filePath,\n });\n\n this._triggerEvent({\n type: 'delete',\n path: filePath,\n });\n }\n }\n\n for (let dirPath of this.dirs.keys()) {\n if (dirPath.startsWith(dir)) {\n this.dirs.delete(dirPath);\n this.watchers.delete(dirPath);\n await this._sendWorkerEvent({\n type: 'unlink',\n path: filePath,\n });\n\n this._triggerEvent({\n type: 'delete',\n path: dirPath,\n });\n }\n }\n\n for (let filePath of this.symlinks.keys()) {\n if (filePath.startsWith(dir)) {\n this.symlinks.delete(filePath);\n await this._sendWorkerEvent({\n type: 'unlink',\n path: filePath,\n });\n }\n }\n\n this.dirs.delete(filePath);\n await this._sendWorkerEvent({\n type: 'unlink',\n path: filePath,\n });\n\n this._triggerEvent({\n type: 'delete',\n path: filePath,\n });\n } else if (this.files.has(filePath)) {\n this.files.delete(filePath);\n await this._sendWorkerEvent({\n type: 'unlink',\n path: filePath,\n });\n\n this._triggerEvent({\n type: 'delete',\n path: filePath,\n });\n }\n\n return Promise.resolve();\n }\n\n async ncp(source: FilePath, destination: FilePath) {\n source = this._normalizePath(source);\n\n if (this.dirs.has(source)) {\n if (!this.dirs.has(destination)) {\n this.dirs.set(destination, new Directory());\n await this._sendWorkerEvent({\n type: 'mkdir',\n path: destination,\n });\n\n this._triggerEvent({\n type: 'create',\n path: destination,\n });\n }\n\n let dir = source + path.sep;\n for (let dirPath of this.dirs.keys()) {\n if (dirPath.startsWith(dir)) {\n let destName = path.join(destination, dirPath.slice(dir.length));\n if (!this.dirs.has(destName)) {\n this.dirs.set(destName, new Directory());\n await this._sendWorkerEvent({\n type: 'mkdir',\n path: destination,\n });\n this._triggerEvent({\n type: 'create',\n path: destName,\n });\n }\n }\n }\n\n for (let [filePath, file] of this.files) {\n if (filePath.startsWith(dir)) {\n let destName = path.join(destination, filePath.slice(dir.length));\n let exists = this.files.has(destName);\n this.files.set(destName, file);\n await this._sendWorkerEvent({\n type: 'writeFile',\n path: destName,\n entry: file,\n });\n\n this._triggerEvent({\n type: exists ? 'update' : 'create',\n path: destName,\n });\n }\n }\n } else {\n await this.copyFile(source, destination);\n }\n }\n\n createReadStream(filePath: FilePath): ReadStream {\n return new ReadStream(this, filePath);\n }\n\n createWriteStream(filePath: FilePath, options: ?FileOptions): WriteStream {\n return new WriteStream(this, filePath, options);\n }\n\n realpathSync(filePath: FilePath): FilePath {\n return this._normalizePath(filePath);\n }\n\n // eslint-disable-next-line require-await\n async realpath(filePath: FilePath): Promise<FilePath> {\n return this.realpathSync(filePath);\n }\n\n async symlink(target: FilePath, path: FilePath) {\n target = this._normalizePath(target);\n path = this._normalizePath(path);\n this.symlinks.set(path, target);\n await this._sendWorkerEvent({\n type: 'symlink',\n path,\n target,\n });\n }\n\n existsSync(filePath: FilePath): boolean {\n filePath = this._normalizePath(filePath);\n return this.files.has(filePath) || this.dirs.has(filePath);\n }\n\n // eslint-disable-next-line require-await\n async exists(filePath: FilePath): Promise<boolean> {\n return this.existsSync(filePath);\n }\n\n _triggerEvent(event: Event) {\n this.events.push(event);\n if (this.watchers.size === 0) {\n return;\n }\n\n // Batch events\n this._eventQueue.push(event);\n clearTimeout(this._watcherTimer);\n\n this._watcherTimer = setTimeout(() => {\n let events = this._eventQueue;\n this._eventQueue = [];\n\n for (let [dir, watchers] of this.watchers) {\n if (!dir.endsWith(path.sep)) {\n dir += path.sep;\n }\n\n if (event.path.startsWith(dir)) {\n for (let watcher of watchers) {\n watcher.trigger(events);\n }\n }\n }\n }, 50);\n }\n\n _registerWorker(handle: Handle) {\n this._workerHandles.push(handle);\n if (this._numWorkerInstances === this._workerHandles.length) {\n this._emitter.emit('allWorkersRegistered');\n }\n }\n\n async _sendWorkerEvent(event: WorkerEvent) {\n // Wait for worker instances to register their handles\n while (this._workerHandles.length < this._numWorkerInstances) {\n await new Promise(resolve => this._workerRegisterResolves.push(resolve));\n }\n\n await Promise.all(\n this._workerHandles.map(workerHandle =>\n this.farm.workerApi.runHandle(workerHandle, [event]),\n ),\n );\n }\n\n watch(\n dir: FilePath,\n fn: (err: ?Error, events: Array<Event>) => mixed,\n opts: WatcherOptions,\n ): Promise<AsyncSubscription> {\n dir = this._normalizePath(dir);\n let watcher = new Watcher(fn, opts);\n let watchers = this.watchers.get(dir);\n if (!watchers) {\n watchers = new Set();\n this.watchers.set(dir, watchers);\n }\n\n watchers.add(watcher);\n\n return Promise.resolve({\n unsubscribe: () => {\n watchers = nullthrows(watchers);\n watchers.delete(watcher);\n\n if (watchers.size === 0) {\n this.watchers.delete(dir);\n }\n\n return Promise.resolve();\n },\n });\n }\n\n async getEventsSince(\n dir: FilePath,\n snapshot: FilePath,\n opts: WatcherOptions,\n ): Promise<Array<Event>> {\n let contents = await this.readFile(snapshot, 'utf8');\n let len = Number(contents);\n let events = this.events.slice(len);\n let ignore = opts.ignore;\n if (ignore) {\n events = events.filter(\n event => !ignore.some(i => event.path.startsWith(i + path.sep)),\n );\n }\n\n return events;\n }\n\n async writeSnapshot(dir: FilePath, snapshot: FilePath): Promise<void> {\n await this.writeFile(snapshot, '' + this.events.length);\n }\n\n findAncestorFile(\n fileNames: Array<string>,\n fromDir: FilePath,\n root: FilePath,\n ): ?FilePath {\n return findAncestorFile(this, fileNames, fromDir, root);\n }\n\n findNodeModule(moduleName: string, fromDir: FilePath): ?FilePath {\n return findNodeModule(this, moduleName, fromDir);\n }\n\n findFirstFile(filePaths: Array<FilePath>): ?FilePath {\n return findFirstFile(this, filePaths);\n }\n}\n\nclass Watcher {\n fn: (err: ?Error, events: Array<Event>) => mixed;\n options: WatcherOptions;\n\n constructor(\n fn: (err: ?Error, events: Array<Event>) => mixed,\n options: WatcherOptions,\n ) {\n this.fn = fn;\n this.options = options;\n }\n\n trigger(events: Array<Event>) {\n let ignore = this.options.ignore;\n if (ignore) {\n events = events.filter(\n event => !ignore.some(i => event.path.startsWith(i + path.sep)),\n );\n }\n\n if (events.length > 0) {\n this.fn(null, events);\n }\n }\n}\n\nclass FSError extends Error {\n code: string;\n path: FilePath;\n constructor(code: string, path: FilePath, message: string) {\n super(`${code}: ${path} ${message}`);\n this.name = 'FSError';\n this.code = code;\n this.path = path;\n Error.captureStackTrace?.(this, this.constructor);\n }\n}\n\nclass ReadStream extends Readable {\n fs: FileSystem;\n filePath: FilePath;\n reading: boolean;\n bytesRead: number;\n constructor(fs: FileSystem, filePath: FilePath) {\n super();\n this.fs = fs;\n this.filePath = filePath;\n this.reading = false;\n this.bytesRead = 0;\n }\n\n _read() {\n if (this.reading) {\n return;\n }\n\n this.reading = true;\n this.fs.readFile(this.filePath).then(\n res => {\n this.bytesRead += res.byteLength;\n this.push(res);\n this.push(null);\n },\n err => {\n this.emit('error', err);\n },\n );\n }\n}\n\nclass WriteStream extends Writable {\n fs: FileSystem;\n filePath: FilePath;\n options: ?FileOptions;\n buffer: Buffer;\n\n constructor(fs: FileSystem, filePath: FilePath, options: ?FileOptions) {\n super({emitClose: true, autoDestroy: true});\n this.fs = fs;\n this.filePath = filePath;\n this.options = options;\n this.buffer = Buffer.alloc(0);\n }\n\n _write(\n chunk: Buffer | string,\n encoding: any,\n callback: (error?: Error) => void,\n ) {\n let c = typeof chunk === 'string' ? Buffer.from(chunk, encoding) : chunk;\n this.buffer = Buffer.concat([this.buffer, c]);\n callback();\n }\n\n _final(callback: (error?: Error) => void) {\n this.fs\n .writeFile(this.filePath, this.buffer, this.options)\n .then(callback)\n .catch(callback);\n }\n}\n\nconst S_IFREG = 0o100000;\nconst S_IFDIR = 0o040000;\nconst S_IFLNK = 0o120000;\n\nclass Entry {\n mode: number;\n atime: number;\n mtime: number;\n ctime: number;\n birthtime: number;\n constructor(mode: number) {\n this.mode = mode;\n let now = Date.now();\n this.atime = now;\n this.mtime = now;\n this.ctime = now;\n this.birthtime = now;\n }\n\n access() {\n let now = Date.now();\n this.atime = now;\n this.ctime = now;\n }\n\n modify(mode: number) {\n let now = Date.now();\n this.mtime = now;\n this.ctime = now;\n this.mode = mode;\n }\n\n getSize(): number {\n return 0;\n }\n\n stat(): Stat {\n return new Stat(this);\n }\n}\n\nclass Stat {\n dev: number = 0;\n ino: number = 0;\n mode: number;\n nlink: number = 0;\n uid: number = 0;\n gid: number = 0;\n rdev: number = 0;\n size: number;\n blksize: number = 0;\n blocks: number = 0;\n atimeMs: number;\n mtimeMs: number;\n ctimeMs: number;\n birthtimeMs: number;\n atime: Date;\n mtime: Date;\n ctime: Date;\n birthtime: Date;\n\n constructor(entry: Entry) {\n this.mode = entry.mode;\n this.size = entry.getSize();\n this.atimeMs = entry.atime;\n this.mtimeMs = entry.mtime;\n this.ctimeMs = entry.ctime;\n this.birthtimeMs = entry.birthtime;\n this.atime = new Date(entry.atime);\n this.mtime = new Date(entry.mtime);\n this.ctime = new Date(entry.ctime);\n this.birthtime = new Date(entry.birthtime);\n }\n\n isFile(): boolean {\n return Boolean(this.mode & S_IFREG);\n }\n\n isDirectory(): boolean {\n return Boolean(this.mode & S_IFDIR);\n }\n\n isBlockDevice(): boolean {\n return false;\n }\n\n isCharacterDevice(): boolean {\n return false;\n }\n\n isSymbolicLink(): boolean {\n return false;\n }\n\n isFIFO(): boolean {\n return false;\n }\n\n isSocket(): boolean {\n return false;\n }\n}\n\nclass Dirent {\n name: string;\n #mode: number;\n\n constructor(name: string, entry: interface {mode: number}) {\n this.name = name;\n this.#mode = entry.mode;\n }\n\n isFile(): boolean {\n return Boolean(this.#mode & S_IFREG);\n }\n\n isDirectory(): boolean {\n return Boolean(this.#mode & S_IFDIR);\n }\n\n isBlockDevice(): boolean {\n return false;\n }\n\n isCharacterDevice(): boolean {\n return false;\n }\n\n isSymbolicLink(): boolean {\n return Boolean(this.#mode & S_IFLNK);\n }\n\n isFIFO(): boolean {\n return false;\n }\n\n isSocket(): boolean {\n return false;\n }\n}\n\nclass File extends Entry {\n buffer: Buffer;\n constructor(buffer: Buffer, mode: number) {\n super(S_IFREG | mode);\n this.buffer = buffer;\n }\n\n read(): Buffer {\n super.access();\n return Buffer.from(this.buffer);\n }\n\n write(buffer: Buffer, mode: number) {\n super.modify(S_IFREG | mode);\n this.buffer = buffer;\n }\n\n getSize(): number {\n return this.buffer.byteLength;\n }\n}\n\nclass Directory extends Entry {\n constructor() {\n super(S_IFDIR);\n }\n}\n\nfunction makeShared(contents: Buffer | string): Buffer {\n if (typeof contents !== 'string' && contents.buffer instanceof SharedBuffer) {\n return contents;\n }\n\n let length = Buffer.byteLength(contents);\n let shared = new SharedBuffer(length);\n let buffer = Buffer.from(shared);\n if (typeof contents === 'string') {\n buffer.write(contents);\n } else {\n buffer.set(contents);\n }\n\n return buffer;\n}\n\nclass WorkerFS extends MemoryFS {\n id: number;\n handleFn: HandleFunction;\n\n constructor(id: number, handle: Handle) {\n // TODO Make this not a subclass\n // $FlowFixMe\n super();\n this.id = id;\n this.handleFn = (methodName, args) =>\n WorkerFarm.getWorkerApi().runHandle(handle, [methodName, args]);\n\n this.handleFn('_registerWorker', [\n WorkerFarm.getWorkerApi().createReverseHandle(event => {\n switch (event.type) {\n case 'writeFile':\n this.files.set(event.path, event.entry);\n break;\n case 'unlink':\n this.files.delete(event.path);\n this.dirs.delete(event.path);\n this.symlinks.delete(event.path);\n break;\n case 'mkdir':\n this.dirs.set(event.path, new Directory());\n break;\n case 'symlink':\n this.symlinks.set(event.path, event.target);\n break;\n }\n }),\n ]);\n }\n\n static deserialize(opts: SerializedMemoryFS): MemoryFS {\n return nullthrows(instances.get(opts.id));\n }\n\n serialize(): SerializedMemoryFS {\n // $FlowFixMe\n return {\n id: this.id,\n };\n }\n\n writeFile(\n filePath: FilePath,\n contents: Buffer | string,\n options: ?FileOptions,\n ): Promise<void> {\n super.writeFile(filePath, contents, options);\n let buffer = makeShared(contents);\n return this.handleFn('writeFile', [filePath, buffer, options]);\n }\n\n unlink(filePath: FilePath): Promise<void> {\n super.unlink(filePath);\n return this.handleFn('unlink', [filePath]);\n }\n\n mkdirp(dir: FilePath): Promise<void> {\n super.mkdirp(dir);\n return this.handleFn('mkdirp', [dir]);\n }\n\n rimraf(filePath: FilePath): Promise<void> {\n super.rimraf(filePath);\n return this.handleFn('rimraf', [filePath]);\n }\n\n ncp(source: FilePath, destination: FilePath): Promise<void> {\n super.ncp(source, destination);\n return this.handleFn('ncp', [source, destination]);\n }\n\n symlink(target: FilePath, path: FilePath): Promise<void> {\n super.symlink(target, path);\n return this.handleFn('symlink', [target, path]);\n }\n}\n\nregisterSerializableClass(`${packageJSON.version}:MemoryFS`, MemoryFS);\nregisterSerializableClass(`${packageJSON.version}:WorkerFS`, WorkerFS);\nregisterSerializableClass(`${packageJSON.version}:Stat`, Stat);\nregisterSerializableClass(`${packageJSON.version}:File`, File);\nregisterSerializableClass(`${packageJSON.version}:Directory`, Directory);\n","{\n \"name\": \"@parcel/fs\",\n \"version\": \"2.3.2\",\n \"description\": \"Blazing fast, zero configuration web application bundler\",\n \"license\": \"MIT\",\n \"publishConfig\": {\n \"access\": \"public\"\n },\n \"funding\": {\n \"type\": \"opencollective\",\n \"url\": \"https://opencollective.com/parcel\"\n },\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/parcel-bundler/parcel.git\"\n },\n \"main\": \"lib/index.js\",\n \"source\": \"src/index.js\",\n \"types\": \"index.d.ts\",\n \"engines\": {\n \"node\": \">= 12.0.0\"\n },\n \"targets\": {\n \"types\": false,\n \"main\": {\n \"includeNodeModules\": {\n \"@parcel/core\": false,\n \"@parcel/fs-search\": false,\n \"@parcel/types\": false,\n \"@parcel/utils\": false,\n \"@parcel/watcher\": false,\n \"@parcel/workers\": false\n }\n },\n \"browser\": {\n \"includeNodeModules\": {\n \"@parcel/core\": false,\n \"@parcel/fs-search\": false,\n \"@parcel/types\": false,\n \"@parcel/utils\": false,\n \"@parcel/watcher\": false,\n \"@parcel/workers\": false\n }\n }\n },\n \"scripts\": {\n \"build-ts\": \"mkdir -p lib && flow-to-ts src/types.js > lib/types.d.ts\",\n \"check-ts\": \"tsc --noEmit index.d.ts\"\n },\n \"dependencies\": {\n \"@parcel/fs-search\": \"2.3.2\",\n \"@parcel/types\": \"2.3.2\",\n \"@parcel/utils\": \"2.3.2\",\n \"@parcel/watcher\": \"^2.0.0\",\n \"@parcel/workers\": \"2.3.2\"\n },\n \"devDependencies\": {\n \"@parcel/fs-write-stream-atomic\": \"2.3.2\",\n \"graceful-fs\": \"^4.2.4\",\n \"ncp\": \"^2.0.0\",\n \"nullthrows\": \"^1.1.1\",\n \"utility-types\": \"^3.10.0\"\n },\n \"peerDependencies\": {\n \"@parcel/core\": \"^2.3.2\"\n },\n \"browser\": {\n \"@parcel/fs\": \"./lib/browser.js\",\n \"./src/NodeFS.js\": \"./src/NodeFS.browser.js\"\n },\n \"gitHead\": \"47379bf8fabeb2cfe03ade8802d942388b153e5b\"\n}\n","'use strict';\n\nfunction nullthrows(x, message) {\n if (x != null) {\n return x;\n }\n var error = new Error(message !== undefined ? message : 'Got unexpected ' + x);\n error.framesToPop = 1; // Skip nullthrows's own stack frame.\n throw error;\n}\n\nmodule.exports = nullthrows;\nmodule.exports.default = nullthrows;\n\nObject.defineProperty(module.exports, '__esModule', {value: true});\n","// @flow\nimport type {FilePath} from '@parcel/types';\nimport type {FileSystem} from './types';\nimport path from 'path';\n\nexport function findNodeModule(\n fs: FileSystem,\n moduleName: string,\n dir: FilePath,\n): ?FilePath {\n let {root} = path.parse(dir);\n while (dir !== root) {\n // Skip node_modules directories\n if (path.basename(dir) === 'node_modules') {\n dir = path.dirname(dir);\n }\n\n try {\n let moduleDir = path.join(dir, 'node_modules', moduleName);\n let stats = fs.statSync(moduleDir);\n if (stats.isDirectory()) {\n return moduleDir;\n }\n } catch (err) {\n // ignore\n }\n\n // Move up a directory\n dir = path.dirname(dir);\n }\n\n return null;\n}\n\nexport function findAncestorFile(\n fs: FileSystem,\n fileNames: Array<string>,\n dir: FilePath,\n root: FilePath,\n): ?FilePath {\n let {root: pathRoot} = path.parse(dir);\n // eslint-disable-next-line no-constant-condition\n while (true) {\n if (path.basename(dir) === 'node_modules') {\n return null;\n }\n\n for (const fileName of fileNames) {\n let filePath = path.join(dir, fileName);\n try {\n if (fs.statSync(filePath).isFile()) {\n return filePath;\n }\n } catch (err) {\n // ignore\n }\n }\n\n if (dir === root || dir === pathRoot) {\n break;\n }\n\n dir = path.dirname(dir);\n }\n\n return null;\n}\n\nexport function findFirstFile(\n fs: FileSystem,\n filePaths: Array<FilePath>,\n): ?FilePath {\n for (let filePath of filePaths) {\n try {\n if (fs.statSync(filePath).isFile()) {\n return filePath;\n }\n } catch (err) {\n // ignore\n }\n }\n}\n","// @flow\n\nimport type {Stats} from 'fs';\nimport type {FileSystem, ReaddirOptions} from './types';\nimport type {FilePath} from '@parcel/types';\nimport type {\n Event,\n Options as WatcherOptions,\n AsyncSubscription,\n} from '@parcel/watcher';\n\nimport {registerSerializableClass} from '@parcel/core';\nimport packageJSON from '../package.json';\nimport {findAncestorFile, findNodeModule, findFirstFile} from './find';\n\nfunction read(method) {\n return async function (...args: Array<any>) {\n try {\n return await this.writable[method](...args);\n } catch (err) {\n return this.readable[method](...args);\n }\n };\n}\n\nfunction readSync(method) {\n return function (...args: Array<any>) {\n try {\n return this.writable[method](...args);\n } catch (err) {\n return this.readable[method](...args);\n }\n };\n}\n\nfunction write(method) {\n return function (...args: Array<any>) {\n return this.writable[method](...args);\n };\n}\n\nfunction checkExists(method) {\n return function (filePath: FilePath, ...args: Array<any>) {\n if (this.writable.existsSync(filePath)) {\n return this.writable[method](filePath, ...args);\n }\n\n return this.readable[method](filePath, ...args);\n };\n}\n\nexport class OverlayFS implements FileSystem {\n writable: FileSystem;\n readable: FileSystem;\n constructor(writable: FileSystem, readable: FileSystem) {\n this.writable = writable;\n this.readable = readable;\n }\n\n static deserialize(opts: any): OverlayFS {\n return new OverlayFS(opts.writable, opts.readable);\n }\n\n serialize(): {|$$raw: boolean, readable: FileSystem, writable: FileSystem|} {\n return {\n $$raw: false,\n writable: this.writable,\n readable: this.readable,\n };\n }\n\n readFile: (...args: Array<any>) => Promise<Buffer & string & $Shape<Stats>> =\n read('readFile');\n writeFile: (...args: Array<any>) => any = write('writeFile');\n async copyFile(source: FilePath, destination: FilePath) {\n if (await this.writable.exists(source)) {\n await this.writable.writeFile(\n destination,\n await this.writable.readFile(source),\n );\n } else {\n await this.writable.writeFile(\n destination,\n await this.readable.readFile(source),\n );\n }\n }\n stat: (...args: Array<any>) => Promise<Buffer & string & $Shape<Stats>> =\n read('stat');\n unlink: (...args: Array<any>) => any = write('unlink');\n mkdirp: (...args: Array<any>) => any = write('mkdirp');\n rimraf: (...args: Array<any>) => any = write('rimraf');\n ncp: (...args: Array<any>) => any = write('ncp');\n createReadStream: (filePath: FilePath, ...args: Array<any>) => any =\n checkExists('createReadStream');\n createWriteStream: (...args: Array<any>) => any = write('createWriteStream');\n cwd: (...args: Array<any>) => any = readSync('cwd');\n chdir: (...args: Array<any>) => any = readSync('chdir');\n realpath: (filePath: FilePath, ...args: Array<any>) => any =\n checkExists('realpath');\n\n readFileSync: (...args: Array<any>) => any = readSync('readFileSync');\n statSync: (...args: Array<any>) => any = readSync('statSync');\n existsSync: (...args: Array<any>) => any = readSync('existsSync');\n realpathSync: (filePath: FilePath, ...args: Array<any>) => any =\n checkExists('realpathSync');\n\n async exists(filePath: FilePath): Promise<boolean> {\n return (\n (await this.writable.exists(filePath)) || this.readable.exists(filePath)\n );\n }\n\n async readdir(path: FilePath, opts?: ReaddirOptions): Promise<any> {\n // Read from both filesystems and merge the results\n let writable = [];\n let readable = [];\n try {\n writable = await this.writable.readdir(path, opts);\n } catch (err) {\n // do nothing\n }\n\n try {\n readable = await this.readable.readdir(path, opts);\n } catch (err) {\n // do nothing\n }\n\n return Array.from(new Set([...writable, ...readable]));\n }\n\n readdirSync(path: FilePath, opts?: ReaddirOptions): any {\n // Read from both filesystems and merge the results\n let writable = [];\n let readable = [];\n try {\n writable = this.writable.readdirSync(path, opts);\n } catch (err) {\n // do nothing\n }\n\n try {\n readable = this.readable.readdirSync(path, opts);\n } catch (err) {\n // do nothing\n }\n\n return Array.from(new Set([...writable, ...readable]));\n }\n\n async watch(\n dir: FilePath,\n fn: (err: ?Error, events: Array<Event>) => mixed,\n opts: WatcherOptions,\n ): Promise<AsyncSubscription> {\n let writableSubscription = await this.writable.watch(dir, fn, opts);\n let readableSubscription = await this.readable.watch(dir, fn, opts);\n return {\n unsubscribe: async () => {\n await writableSubscription.unsubscribe();\n await readableSubscription.unsubscribe();\n },\n };\n }\n\n async getEventsSince(\n dir: FilePath,\n snapshot: FilePath,\n opts: WatcherOptions,\n ): Promise<Array<Event>> {\n let writableEvents = await this.writable.getEventsSince(\n dir,\n snapshot,\n opts,\n );\n let readableEvents = await this.readable.getEventsSince(\n dir,\n snapshot,\n opts,\n );\n return [...writableEvents, ...readableEvents];\n }\n\n async writeSnapshot(\n dir: FilePath,\n snapshot: FilePath,\n opts: WatcherOptions,\n ): Promise<void> {\n await this.writable.writeSnapshot(dir, snapshot, opts);\n }\n\n findAncestorFile(\n fileNames: Array<string>,\n fromDir: FilePath,\n root: FilePath,\n ): ?FilePath {\n return findAncestorFile(this, fileNames, fromDir, root);\n }\n\n findNodeModule(moduleName: string, fromDir: FilePath): ?FilePath {\n return findNodeModule(this, moduleName, fromDir);\n }\n\n findFirstFile(filePaths: Array<FilePath>): ?FilePath {\n return findFirstFile(this, filePaths);\n }\n}\n\nregisterSerializableClass(`${packageJSON.version}:OverlayFS`, OverlayFS);\n"],"names":["path","ncp","sourceFS","source","destinationFS","destination","mkdirp","files","readdir","file","sourcePath","join","destPath","stats","stat","isFile","Promise","resolve","reject","createReadStream","pipe","createWriteStream","on","isDirectory","NodeFS","constructor","Error","Readable","Writable","registerSerializableClass","SharedBuffer","packageJSON","WorkerFarm","Handle","nullthrows","EventEmitter","findAncestorFile","findNodeModule","findFirstFile","instances","Map","id","MemoryFS","_numWorkerInstances","_workerRegisterResolves","_emitter","workerFarm","farm","dirs","Directory","symlinks","watchers","events","_cwd","_workerHandles","_eventQueue","set","deserialize","opts","existing","get","getWorkerApi","runHandle","handle","fs","WorkerFS","serialize","createReverseHandle","fn","args","$$raw","decrementWorkerInstance","length","emit","cwd","chdir","dir","_normalizePath","filePath","realpath","root","base","parse","parts","slice","split","sep","concat","res","part","symlink","writeFile","contents","options","has","FSError","dirname","buffer","makeShared","mode","write","File","_sendWorkerEvent","type","entry","_triggerEvent","readFile","encoding","readFileSync","read","toString","copyFile","statSync","readdirSync","startsWith","indexOf","name","withFileTypes","push","Dirent","from","S_IFLNK","unlink","delete","rimraf","keys","dirPath","destName","exists","ReadStream","WriteStream","realpathSync","target","existsSync","event","size","clearTimeout","_watcherTimer","setTimeout","endsWith","watcher","trigger","_registerWorker","all","map","workerHandle","workerApi","watch","Watcher","Set","add","unsubscribe","getEventsSince","snapshot","len","Number","ignore","filter","some","i","writeSnapshot","fileNames","fromDir","moduleName","filePaths","code","message","captureStackTrace","reading","bytesRead","_read","then","byteLength","err","emitClose","autoDestroy","Buffer","alloc","_write","chunk","callback","c","_final","catch","S_IFREG","S_IFDIR","Entry","now","Date","atime","mtime","ctime","birthtime","access","modify","getSize","Stat","dev","ino","nlink","uid","gid","rdev","blksize","blocks","atimeMs","mtimeMs","ctimeMs","birthtimeMs","Boolean","isBlockDevice","isCharacterDevice","isSymbolicLink","isFIFO","isSocket","shared","handleFn","methodName","version","module","exports","JSON","basename","moduleDir","pathRoot","fileName","method","writable","readable","readSync","checkExists","OverlayFS","Array","writableSubscription","readableSubscription","writableEvents","readableEvents"],"version":3,"file":"browser.js.map"} |