open-index/open-npm huggingface dataset:
npm package: @stavalfi/create-folder-structure
Description: Declarative complex file/folder creator
Author: stavalfi
Latest version: 3.0.6

### File/Folder Structure Creator

Declarative complex file/folder creator

---

```typescript
yarn add --dev create-folder-structure
```

---

`createFolderStructure` returns `realpath` without any symbolic links (using `fs.realpath`)

1. Create anonymous folder

   ```typescript
   import { createFolder } from 'create-folder-structure'

   const entryPath = await createFolder({
     file7: 'file content7',
     ['folder6/folder7']: {},
   })
   ```

2. Create anonymous file

   ```typescript
   import { createFile } from 'create-folder-structure'

   const entryPath = await createFile('file content')
   ```

   ```typescript
   import { createFile } from 'create-folder-structure'

   const entryPath = await createFile({
     key1: 'value',
     key2: 1,
   })
   ```

---

### Full API

1. Create folder

   ```typescript
   import createFolderStructure from 'create-folder-structure'

   const { entryPath, cleanup } = await createFolderStructure({
     entryName: 'folder1',
     content: {
       ['file1.txt']: 'file content1',
       ['folder2/folder3/file2']: 'file content2',
       ['folder2/folder3/file3']: 'file content3',
       ['folder2/file4']: 'file content4',
       folder2: {
         folder5: {
           file5: 'file content5',
           file6: 'file content6',
         },
         file7: 'file content7',
       },
       folder4: {
         folder5: {},
       },
       ['folder6/folder7']: {},
     },
   })
   ```

2. Create anonymous folder

   ```typescript
   import createFolderStructure from 'create-folder-structure'

   const { entryPath, cleanup } = await createFolderStructure({
     content: {
       file7: 'file content7',
       ['folder6/folder7']: {},
     },
   })
   ```

3. Create file

   ```typescript
   import createFolderStructure from 'create-folder-structure'

   const { entryPath, cleanup } = await createFolderStructure({
     entryName: 'folder1',
     content: 'file content1',
   })
   ```

4. Create anonymous file

   ```typescript
   import createFolderStructure from 'create-folder-structure'

   const { entryPath, cleanup } = await createFolderStructure({
     content: 'file content1',
   })
   ```

5. you can specify file with an json extension and give it a JSON value instead of a string value:

   ```typescript
   import createFolderStructure from 'create-folder-structure'

   const { entryPath, cleanup } = await createFolderStructure({
     entryName: 'file.json',
     content: 1,
   })
   ```

   ```typescript
   import createFolderStructure from 'create-folder-structure'

   const { entryPath, cleanup } = await createFolderStructure({
     entryName: 'dir1',
     content: {
       'file.json': { a: 1, b: 2 },
     },
   })
   ```
npm package: @stavalfi/npm-login-noninteractive
Description: CLI tool to log into an NPM registry and save the credentials to .npmrc
Author: Devin Doolin
Latest version: 0.1.5

# npm-login-noninteractive

Allows you to log in to NPM without STDIN, STDOUT. Use in places like CI build systems.
Also creates/modifies entries in the ~/.npmrc file for authentication.

## Installation

```
npm install -g npm-login-noninteractive
```

Use -g flag to use npm-login-noninteractive via the CLI

## Usage

### CLI

`npm-login-noninteractive` expects the following environment variables to be set before you can use it to authenticate:

- `NPM_USER`: NPM username
- `NPM_PASS`: NPM password
- `NPM_EMAIL`: NPM email
- `NPM_REGISTRY`: (optional) Private NPM registry to log in to (Default: https://registry.npmjs.org)
- `NPM_SCOPE`: (optional) Private NPM scope
- `NPM_RC_PATH`: (optional) Path to a custom .npmrc file you want to update (Default: `~/`)  (Do note this is the path of the file, not the file itself)

Once the required ones are set, you can just run the following to log in:

```
npm-login-noninteractive
```

You can also export variables and run it all in one line:

```
NPM_USER=testUser NPM_PASS=testPass NPM_EMAIL=test@example.com npm-login-noninteractive
```

There is also support for command line arguments:

- `-u`: NPM Username
- `-p`: NPM Password
- `-e`: NPM Email
- `-r`: NPM Registry
- `-s`: NPM Scope
- `--config-path`: Set to `~/` by default. Can be used to configure a custom .npmrc file to edit (Do note this is the path of the file, not the file itself)

For example: `npm-login-noninteractive -u testUser -p testPass -e test@example.com`

Or: `npm-login-noninteractive -u testUser -p testPass -e test@example.com -r https://private.npm.com -s @privateNPM --config-path="./custom/path/"`

Do note that at least one of the two ways must be configured, that is, you must either provide the required fields (username, password and email) using the environment variables or the command line arguments (or both)

### Programmatic API

To use the package programmatically, just require the module and pass in your NPM auth details as arguments:

```js
const npmLogin = require('npm-login-noninteractive');

npmLogin(username, password, email [, registry, scope, quotes, configPath]);
```

### Example

Logging in to the NPM registry:

```js
const npmLogin = require('npm-login-noninteractive');

const username = 'testUser';
const password = 'testPass';
const email = 'test@example.com';

npmLogin(username, password, email);
```

Logging in to private NPM registries:

```js
const npmLogin = require('npm-login-noninteractive');

const username = 'testUser';
const password = 'testPass';
const email = 'test@example.com';
const registry = 'https://npm.example.com';
const scope = '@myScope';
const configPath = './custom/path/';

npmLogin(username, password, email, registry, scope, configPath);
```