diff options
Diffstat (limited to 'sandbox/testAppNevena/Front/node_modules/mkdirp')
12 files changed, 639 insertions, 0 deletions
| diff --git a/sandbox/testAppNevena/Front/node_modules/mkdirp/CHANGELOG.md b/sandbox/testAppNevena/Front/node_modules/mkdirp/CHANGELOG.md new file mode 100644 index 00000000..81458380 --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/mkdirp/CHANGELOG.md @@ -0,0 +1,15 @@ +# Changers Lorgs! + +## 1.0 + +Full rewrite.  Essentially a brand new module. + +- Return a promise instead of taking a callback. +- Use native `fs.mkdir(path, { recursive: true })` when available. +- Drop support for outdated Node.js versions.  (Technically still works on +  Node.js v8, but only 10 and above are officially supported.) + +## 0.x + +Original and most widely used recursive directory creation implementation +in JavaScript, dating back to 2010. diff --git a/sandbox/testAppNevena/Front/node_modules/mkdirp/LICENSE b/sandbox/testAppNevena/Front/node_modules/mkdirp/LICENSE new file mode 100644 index 00000000..13fcd15f --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/mkdirp/LICENSE @@ -0,0 +1,21 @@ +Copyright James Halliday (mail@substack.net) and Isaac Z. Schlueter (i@izs.me) + +This project is free software released under the MIT license: + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/sandbox/testAppNevena/Front/node_modules/mkdirp/bin/cmd.js b/sandbox/testAppNevena/Front/node_modules/mkdirp/bin/cmd.js new file mode 100644 index 00000000..6e0aa8dc --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/mkdirp/bin/cmd.js @@ -0,0 +1,68 @@ +#!/usr/bin/env node + +const usage = () => ` +usage: mkdirp [DIR1,DIR2..] {OPTIONS} + +  Create each supplied directory including any necessary parent directories +  that don't yet exist. + +  If the directory already exists, do nothing. + +OPTIONS are: + +  -m<mode>       If a directory needs to be created, set the mode as an octal +  --mode=<mode>  permission string. + +  -v --version   Print the mkdirp version number + +  -h --help      Print this helpful banner + +  -p --print     Print the first directories created for each path provided + +  --manual       Use manual implementation, even if native is available +` + +const dirs = [] +const opts = {} +let print = false +let dashdash = false +let manual = false +for (const arg of process.argv.slice(2)) { +  if (dashdash) +    dirs.push(arg) +  else if (arg === '--') +    dashdash = true +  else if (arg === '--manual') +    manual = true +  else if (/^-h/.test(arg) || /^--help/.test(arg)) { +    console.log(usage()) +    process.exit(0) +  } else if (arg === '-v' || arg === '--version') { +    console.log(require('../package.json').version) +    process.exit(0) +  } else if (arg === '-p' || arg === '--print') { +    print = true +  } else if (/^-m/.test(arg) || /^--mode=/.test(arg)) { +    const mode = parseInt(arg.replace(/^(-m|--mode=)/, ''), 8) +    if (isNaN(mode)) { +      console.error(`invalid mode argument: ${arg}\nMust be an octal number.`) +      process.exit(1) +    } +    opts.mode = mode +  } else +    dirs.push(arg) +} + +const mkdirp = require('../') +const impl = manual ? mkdirp.manual : mkdirp +if (dirs.length === 0) +  console.error(usage()) + +Promise.all(dirs.map(dir => impl(dir, opts))) +  .then(made => print ? made.forEach(m => m && console.log(m)) : null) +  .catch(er => { +    console.error(er.message) +    if (er.code) +      console.error('  code: ' + er.code) +    process.exit(1) +  }) diff --git a/sandbox/testAppNevena/Front/node_modules/mkdirp/index.js b/sandbox/testAppNevena/Front/node_modules/mkdirp/index.js new file mode 100644 index 00000000..ad7a16c9 --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/mkdirp/index.js @@ -0,0 +1,31 @@ +const optsArg = require('./lib/opts-arg.js') +const pathArg = require('./lib/path-arg.js') + +const {mkdirpNative, mkdirpNativeSync} = require('./lib/mkdirp-native.js') +const {mkdirpManual, mkdirpManualSync} = require('./lib/mkdirp-manual.js') +const {useNative, useNativeSync} = require('./lib/use-native.js') + + +const mkdirp = (path, opts) => { +  path = pathArg(path) +  opts = optsArg(opts) +  return useNative(opts) +    ? mkdirpNative(path, opts) +    : mkdirpManual(path, opts) +} + +const mkdirpSync = (path, opts) => { +  path = pathArg(path) +  opts = optsArg(opts) +  return useNativeSync(opts) +    ? mkdirpNativeSync(path, opts) +    : mkdirpManualSync(path, opts) +} + +mkdirp.sync = mkdirpSync +mkdirp.native = (path, opts) => mkdirpNative(pathArg(path), optsArg(opts)) +mkdirp.manual = (path, opts) => mkdirpManual(pathArg(path), optsArg(opts)) +mkdirp.nativeSync = (path, opts) => mkdirpNativeSync(pathArg(path), optsArg(opts)) +mkdirp.manualSync = (path, opts) => mkdirpManualSync(pathArg(path), optsArg(opts)) + +module.exports = mkdirp diff --git a/sandbox/testAppNevena/Front/node_modules/mkdirp/lib/find-made.js b/sandbox/testAppNevena/Front/node_modules/mkdirp/lib/find-made.js new file mode 100644 index 00000000..022e492c --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/mkdirp/lib/find-made.js @@ -0,0 +1,29 @@ +const {dirname} = require('path') + +const findMade = (opts, parent, path = undefined) => { +  // we never want the 'made' return value to be a root directory +  if (path === parent) +    return Promise.resolve() + +  return opts.statAsync(parent).then( +    st => st.isDirectory() ? path : undefined, // will fail later +    er => er.code === 'ENOENT' +      ? findMade(opts, dirname(parent), parent) +      : undefined +  ) +} + +const findMadeSync = (opts, parent, path = undefined) => { +  if (path === parent) +    return undefined + +  try { +    return opts.statSync(parent).isDirectory() ? path : undefined +  } catch (er) { +    return er.code === 'ENOENT' +      ? findMadeSync(opts, dirname(parent), parent) +      : undefined +  } +} + +module.exports = {findMade, findMadeSync} diff --git a/sandbox/testAppNevena/Front/node_modules/mkdirp/lib/mkdirp-manual.js b/sandbox/testAppNevena/Front/node_modules/mkdirp/lib/mkdirp-manual.js new file mode 100644 index 00000000..2eb18cd6 --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/mkdirp/lib/mkdirp-manual.js @@ -0,0 +1,64 @@ +const {dirname} = require('path') + +const mkdirpManual = (path, opts, made) => { +  opts.recursive = false +  const parent = dirname(path) +  if (parent === path) { +    return opts.mkdirAsync(path, opts).catch(er => { +      // swallowed by recursive implementation on posix systems +      // any other error is a failure +      if (er.code !== 'EISDIR') +        throw er +    }) +  } + +  return opts.mkdirAsync(path, opts).then(() => made || path, er => { +    if (er.code === 'ENOENT') +      return mkdirpManual(parent, opts) +        .then(made => mkdirpManual(path, opts, made)) +    if (er.code !== 'EEXIST' && er.code !== 'EROFS') +      throw er +    return opts.statAsync(path).then(st => { +      if (st.isDirectory()) +        return made +      else +        throw er +    }, () => { throw er }) +  }) +} + +const mkdirpManualSync = (path, opts, made) => { +  const parent = dirname(path) +  opts.recursive = false + +  if (parent === path) { +    try { +      return opts.mkdirSync(path, opts) +    } catch (er) { +      // swallowed by recursive implementation on posix systems +      // any other error is a failure +      if (er.code !== 'EISDIR') +        throw er +      else +        return +    } +  } + +  try { +    opts.mkdirSync(path, opts) +    return made || path +  } catch (er) { +    if (er.code === 'ENOENT') +      return mkdirpManualSync(path, opts, mkdirpManualSync(parent, opts, made)) +    if (er.code !== 'EEXIST' && er.code !== 'EROFS') +      throw er +    try { +      if (!opts.statSync(path).isDirectory()) +        throw er +    } catch (_) { +      throw er +    } +  } +} + +module.exports = {mkdirpManual, mkdirpManualSync} diff --git a/sandbox/testAppNevena/Front/node_modules/mkdirp/lib/mkdirp-native.js b/sandbox/testAppNevena/Front/node_modules/mkdirp/lib/mkdirp-native.js new file mode 100644 index 00000000..c7a6b698 --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/mkdirp/lib/mkdirp-native.js @@ -0,0 +1,39 @@ +const {dirname} = require('path') +const {findMade, findMadeSync} = require('./find-made.js') +const {mkdirpManual, mkdirpManualSync} = require('./mkdirp-manual.js') + +const mkdirpNative = (path, opts) => { +  opts.recursive = true +  const parent = dirname(path) +  if (parent === path) +    return opts.mkdirAsync(path, opts) + +  return findMade(opts, path).then(made => +    opts.mkdirAsync(path, opts).then(() => made) +    .catch(er => { +      if (er.code === 'ENOENT') +        return mkdirpManual(path, opts) +      else +        throw er +    })) +} + +const mkdirpNativeSync = (path, opts) => { +  opts.recursive = true +  const parent = dirname(path) +  if (parent === path) +    return opts.mkdirSync(path, opts) + +  const made = findMadeSync(opts, path) +  try { +    opts.mkdirSync(path, opts) +    return made +  } catch (er) { +    if (er.code === 'ENOENT') +      return mkdirpManualSync(path, opts) +    else +      throw er +  } +} + +module.exports = {mkdirpNative, mkdirpNativeSync} diff --git a/sandbox/testAppNevena/Front/node_modules/mkdirp/lib/opts-arg.js b/sandbox/testAppNevena/Front/node_modules/mkdirp/lib/opts-arg.js new file mode 100644 index 00000000..2fa4833f --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/mkdirp/lib/opts-arg.js @@ -0,0 +1,23 @@ +const { promisify } = require('util') +const fs = require('fs') +const optsArg = opts => { +  if (!opts) +    opts = { mode: 0o777, fs } +  else if (typeof opts === 'object') +    opts = { mode: 0o777, fs, ...opts } +  else if (typeof opts === 'number') +    opts = { mode: opts, fs } +  else if (typeof opts === 'string') +    opts = { mode: parseInt(opts, 8), fs } +  else +    throw new TypeError('invalid options argument') + +  opts.mkdir = opts.mkdir || opts.fs.mkdir || fs.mkdir +  opts.mkdirAsync = promisify(opts.mkdir) +  opts.stat = opts.stat || opts.fs.stat || fs.stat +  opts.statAsync = promisify(opts.stat) +  opts.statSync = opts.statSync || opts.fs.statSync || fs.statSync +  opts.mkdirSync = opts.mkdirSync || opts.fs.mkdirSync || fs.mkdirSync +  return opts +} +module.exports = optsArg diff --git a/sandbox/testAppNevena/Front/node_modules/mkdirp/lib/path-arg.js b/sandbox/testAppNevena/Front/node_modules/mkdirp/lib/path-arg.js new file mode 100644 index 00000000..cc07de5a --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/mkdirp/lib/path-arg.js @@ -0,0 +1,29 @@ +const platform = process.env.__TESTING_MKDIRP_PLATFORM__ || process.platform +const { resolve, parse } = require('path') +const pathArg = path => { +  if (/\0/.test(path)) { +    // simulate same failure that node raises +    throw Object.assign( +      new TypeError('path must be a string without null bytes'), +      { +        path, +        code: 'ERR_INVALID_ARG_VALUE', +      } +    ) +  } + +  path = resolve(path) +  if (platform === 'win32') { +    const badWinChars = /[*|"<>?:]/ +    const {root} = parse(path) +    if (badWinChars.test(path.substr(root.length))) { +      throw Object.assign(new Error('Illegal characters in path.'), { +        path, +        code: 'EINVAL', +      }) +    } +  } + +  return path +} +module.exports = pathArg diff --git a/sandbox/testAppNevena/Front/node_modules/mkdirp/lib/use-native.js b/sandbox/testAppNevena/Front/node_modules/mkdirp/lib/use-native.js new file mode 100644 index 00000000..079361de --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/mkdirp/lib/use-native.js @@ -0,0 +1,10 @@ +const fs = require('fs') + +const version = process.env.__TESTING_MKDIRP_NODE_VERSION__ || process.version +const versArr = version.replace(/^v/, '').split('.') +const hasNative = +versArr[0] > 10 || +versArr[0] === 10 && +versArr[1] >= 12 + +const useNative = !hasNative ? () => false : opts => opts.mkdir === fs.mkdir +const useNativeSync = !hasNative ? () => false : opts => opts.mkdirSync === fs.mkdirSync + +module.exports = {useNative, useNativeSync} diff --git a/sandbox/testAppNevena/Front/node_modules/mkdirp/package.json b/sandbox/testAppNevena/Front/node_modules/mkdirp/package.json new file mode 100644 index 00000000..2913ed09 --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/mkdirp/package.json @@ -0,0 +1,44 @@ +{ +  "name": "mkdirp", +  "description": "Recursively mkdir, like `mkdir -p`", +  "version": "1.0.4", +  "main": "index.js", +  "keywords": [ +    "mkdir", +    "directory", +    "make dir", +    "make", +    "dir", +    "recursive", +    "native" +  ], +  "repository": { +    "type": "git", +    "url": "https://github.com/isaacs/node-mkdirp.git" +  }, +  "scripts": { +    "test": "tap", +    "snap": "tap", +    "preversion": "npm test", +    "postversion": "npm publish", +    "postpublish": "git push origin --follow-tags" +  }, +  "tap": { +    "check-coverage": true, +    "coverage-map": "map.js" +  }, +  "devDependencies": { +    "require-inject": "^1.4.4", +    "tap": "^14.10.7" +  }, +  "bin": "bin/cmd.js", +  "license": "MIT", +  "engines": { +    "node": ">=10" +  }, +  "files": [ +    "bin", +    "lib", +    "index.js" +  ] +} diff --git a/sandbox/testAppNevena/Front/node_modules/mkdirp/readme.markdown b/sandbox/testAppNevena/Front/node_modules/mkdirp/readme.markdown new file mode 100644 index 00000000..827de590 --- /dev/null +++ b/sandbox/testAppNevena/Front/node_modules/mkdirp/readme.markdown @@ -0,0 +1,266 @@ +# mkdirp + +Like `mkdir -p`, but in Node.js! + +Now with a modern API and no\* bugs! + +<small>\* may contain some bugs</small> + +# example + +## pow.js + +```js +const mkdirp = require('mkdirp') + +// return value is a Promise resolving to the first directory created +mkdirp('/tmp/foo/bar/baz').then(made => +  console.log(`made directories, starting with ${made}`)) +``` + +Output (where `/tmp/foo` already exists) + +``` +made directories, starting with /tmp/foo/bar +``` + +Or, if you don't have time to wait around for promises: + +```js +const mkdirp = require('mkdirp') + +// return value is the first directory created +const made = mkdirp.sync('/tmp/foo/bar/baz') +console.log(`made directories, starting with ${made}`) +``` + +And now /tmp/foo/bar/baz exists, huzzah! + +# methods + +```js +const mkdirp = require('mkdirp') +``` + +## mkdirp(dir, [opts]) -> Promise<String | undefined> + +Create a new directory and any necessary subdirectories at `dir` with octal +permission string `opts.mode`. If `opts` is a string or number, it will be +treated as the `opts.mode`. + +If `opts.mode` isn't specified, it defaults to `0o777 & +(~process.umask())`. + +Promise resolves to first directory `made` that had to be created, or +`undefined` if everything already exists.  Promise rejects if any errors +are encountered.  Note that, in the case of promise rejection, some +directories _may_ have been created, as recursive directory creation is not +an atomic operation. + +You can optionally pass in an alternate `fs` implementation by passing in +`opts.fs`. Your implementation should have `opts.fs.mkdir(path, opts, cb)` +and `opts.fs.stat(path, cb)`. + +You can also override just one or the other of `mkdir` and `stat` by +passing in `opts.stat` or `opts.mkdir`, or providing an `fs` option that +only overrides one of these. + +## mkdirp.sync(dir, opts) -> String|null + +Synchronously create a new directory and any necessary subdirectories at +`dir` with octal permission string `opts.mode`. If `opts` is a string or +number, it will be treated as the `opts.mode`. + +If `opts.mode` isn't specified, it defaults to `0o777 & +(~process.umask())`. + +Returns the first directory that had to be created, or undefined if +everything already exists. + +You can optionally pass in an alternate `fs` implementation by passing in +`opts.fs`. Your implementation should have `opts.fs.mkdirSync(path, mode)` +and `opts.fs.statSync(path)`. + +You can also override just one or the other of `mkdirSync` and `statSync` +by passing in `opts.statSync` or `opts.mkdirSync`, or providing an `fs` +option that only overrides one of these. + +## mkdirp.manual, mkdirp.manualSync + +Use the manual implementation (not the native one).  This is the default +when the native implementation is not available or the stat/mkdir +implementation is overridden. + +## mkdirp.native, mkdirp.nativeSync + +Use the native implementation (not the manual one).  This is the default +when the native implementation is available and stat/mkdir are not +overridden. + +# implementation + +On Node.js v10.12.0 and above, use the native `fs.mkdir(p, +{recursive:true})` option, unless `fs.mkdir`/`fs.mkdirSync` has been +overridden by an option. + +## native implementation + +- If the path is a root directory, then pass it to the underlying +  implementation and return the result/error.  (In this case, it'll either +  succeed or fail, but we aren't actually creating any dirs.) +- Walk up the path statting each directory, to find the first path that +  will be created, `made`. +- Call `fs.mkdir(path, { recursive: true })` (or `fs.mkdirSync`) +- If error, raise it to the caller. +- Return `made`. + +## manual implementation + +- Call underlying `fs.mkdir` implementation, with `recursive: false` +- If error: +  - If path is a root directory, raise to the caller and do not handle it +  - If ENOENT, mkdirp parent dir, store result as `made` +  - stat(path) +    - If error, raise original `mkdir` error +    - If directory, return `made` +    - Else, raise original `mkdir` error +- else +  - return `undefined` if a root dir, or `made` if set, or `path` + +## windows vs unix caveat + +On Windows file systems, attempts to create a root directory (ie, a drive +letter or root UNC path) will fail.  If the root directory exists, then it +will fail with `EPERM`.  If the root directory does not exist, then it will +fail with `ENOENT`. + +On posix file systems, attempts to create a root directory (in recursive +mode) will succeed silently, as it is treated like just another directory +that already exists.  (In non-recursive mode, of course, it fails with +`EEXIST`.) + +In order to preserve this system-specific behavior (and because it's not as +if we can create the parent of a root directory anyway), attempts to create +a root directory are passed directly to the `fs` implementation, and any +errors encountered are not handled. + +## native error caveat + +The native implementation (as of at least Node.js v13.4.0) does not provide +appropriate errors in some cases (see +[nodejs/node#31481](https://github.com/nodejs/node/issues/31481) and +[nodejs/node#28015](https://github.com/nodejs/node/issues/28015)). + +In order to work around this issue, the native implementation will fall +back to the manual implementation if an `ENOENT` error is encountered. + +# choosing a recursive mkdir implementation + +There are a few to choose from!  Use the one that suits your needs best :D + +## use `fs.mkdir(path, {recursive: true}, cb)` if: + +- You wish to optimize performance even at the expense of other factors. +- You don't need to know the first dir created. +- You are ok with getting `ENOENT` as the error when some other problem is +  the actual cause. +- You can limit your platforms to Node.js v10.12 and above. +- You're ok with using callbacks instead of promises. +- You don't need/want a CLI. +- You don't need to override the `fs` methods in use. + +## use this module (mkdirp 1.x) if: + +- You need to know the first directory that was created. +- You wish to use the native implementation if available, but fall back +  when it's not. +- You prefer promise-returning APIs to callback-taking APIs. +- You want more useful error messages than the native recursive mkdir +  provides (at least as of Node.js v13.4), and are ok with re-trying on +  `ENOENT` to achieve this. +- You need (or at least, are ok with) a CLI. +- You need to override the `fs` methods in use. + +## use [`make-dir`](http://npm.im/make-dir) if: + +- You do not need to know the first dir created (and wish to save a few +  `stat` calls when using the native implementation for this reason). +- You wish to use the native implementation if available, but fall back +  when it's not. +- You prefer promise-returning APIs to callback-taking APIs. +- You are ok with occasionally getting `ENOENT` errors for failures that +  are actually related to something other than a missing file system entry. +- You don't need/want a CLI. +- You need to override the `fs` methods in use. + +## use mkdirp 0.x if: + +- You need to know the first directory that was created. +- You need (or at least, are ok with) a CLI. +- You need to override the `fs` methods in use. +- You're ok with using callbacks instead of promises. +- You are not running on Windows, where the root-level ENOENT errors can +  lead to infinite regress. +- You think vinyl just sounds warmer and richer for some weird reason. +- You are supporting truly ancient Node.js versions, before even the advent +  of a `Promise` language primitive.  (Please don't.  You deserve better.) + +# cli + +This package also ships with a `mkdirp` command. + +``` +$ mkdirp -h + +usage: mkdirp [DIR1,DIR2..] {OPTIONS} + +  Create each supplied directory including any necessary parent directories +  that don't yet exist. + +  If the directory already exists, do nothing. + +OPTIONS are: + +  -m<mode>       If a directory needs to be created, set the mode as an octal +  --mode=<mode>  permission string. + +  -v --version   Print the mkdirp version number + +  -h --help      Print this helpful banner + +  -p --print     Print the first directories created for each path provided + +  --manual       Use manual implementation, even if native is available +``` + +# install + +With [npm](http://npmjs.org) do: + +``` +npm install mkdirp +``` + +to get the library locally, or + +``` +npm install -g mkdirp +``` + +to get the command everywhere, or + +``` +npx mkdirp ... +``` + +to run the command without installing it globally. + +# platform support + +This module works on node v8, but only v10 and above are officially +supported, as Node v8 reached its LTS end of life 2020-01-01, which is in +the past, as of this writing. + +# license + +MIT | 
