open-index/open-npm huggingface dataset:
npm package: @svjson/react
Description: Component to render the SVJ JSON resource
Author: Vinícius Victorino
Latest version: 0.0.3

# SVJ React - React component to render [SVJ](https://www.npmjs.com/package/svj) CLI output JSON

## Installation

```sh
npm i -D @svjson/react
```

## Usage

### Given the generated JSON

```js
export const lightbulb = {
  tag: 'svg',
  props: {
    xmlns: 'http://www.w3.org/2000/svg',
    fill: 'currentColor',
    version: '1.1',
    viewBox: '0 0 24 24',
  },
  children: [
    {
      tag: 'path',
      props: {
        strokeWidth: '1.569',
        d: 'M8.925 21.224c0 .512.41 1.025 1.025 1.025h4.1c.615 0 1.025-.513 1.025-1.025V20.2h-6.15ZM12 1.751a7.13 7.13 0 0 0-7.174 7.174c0 2.46 1.23 4.612 3.074 5.842v2.357c0 .513.41 1.025 1.025 1.025h6.15c.615 0 1.025-.512 1.025-1.025v-2.357c1.844-1.332 3.074-3.484 3.074-5.842A7.13 7.13 0 0 0 12 1.751z',
      },
    },
  ],
};
```

### The component:

```tsx
import { Svg } from '@svjson/react';
import { lightbulb } from './lightbulb';

...
<Svg alt="arrow" src={lightbulb}/>
...
```

### Outputs:

```html
<i role="img" aria-label="arrow" aria-hidden="false">
  <svg
    xmlns="http://www.w3.org/2000/svg"
    fill="currentColor"
    viewBox="0 0 24 24"
    width="100%"
    height="100%"
    aria-hidden="true"
  >
    <path
      d="M12 5.097 1.299 15.798l2.515 2.515L12 10.144l8.186 8.169 2.515-2.515z"
    ></path>
  </svg>
</i>
```
npm package: @svkakao/svelte-kakao-login
Description: kakao login for svelte
Author: wonseog choi
Latest version: 1.0.1

# svelte kakao login

[![NPM](https://img.shields.io/badge/svelte-kakao--login-green?logo=svelte)](https://www.npmjs.com/package/@svkakao/svelte-kakao-login)

<br/>

## 모듈 다운로드

    npm install @svkakao/svelte-kakao-login

<br/>

## 기본 사용법

```javascript
/* App.svelte */

<script>
  import KakaoLogin from "@svkakao/svelte-kakao-login";
</script>

<KakaoLogin
  key="..kakao key.."
/>
```

<br/>

### 스타일 변경 유의

```javascript
/* App.svelte */

<script>
  import KakaoLogin from "@svkakao/svelte-kakao-login";
</script>

<KakaoLogin
  key="..kakao key.."
  style=`
    font-size : 12px;
    margin : 0 auto;
  `
/>
```

<br/>

### 파라미터

| params             | value    | default value | description                                                              |
| :----------------- | :------- | :------------ | :----------------------------------------------------------------------- |
| key                | string   | null          | 카카오 개발자 페이지에서 발급받은 key                                    |
| style              | string   | null          | 버튼 스타일 변경                                                         |
| lang               | bool     | false         | 버튼 title의 언어 <br/> `false : korean` <br/> `true : english`          |
| throughTalk        | bool     | true          | 간편 로그인 사용 여부                                                    |
| persistAccessToken | bool     | true          | 세션이 종료된 뒤에도 액세스 토큰을 사용할 수 있도록 로컬 스토리지에 저장 |
| needProfile        | bool     | true          | 사용자 정보 받아오는지 유무                                              |
| useLoginForm       | bool     | false         | 로그인폼 사용 여부                                                       |
| onSuccess          | function | console.log   | 로그인 성공시 실행될 함수 <br/> 로그인 결과를 인자로 받음                |
| onFail             | function | console.log   | 로그인 실패시 실행될 함수 <br/> 로그인 실패 사유를 인자로 받음           |
npm package: @svkeg/args-parse
Description: Parse command line arguments
Author: lancetipton
Latest version: 0.0.1

# argsParse
Parse command line arguments

## Setup

### Install It
Add to your package.json

  ```js
    "argsParse": "git+https://github.com/lancetipton/argsParse.git"
  ```

### Use It
See test [examples](https://github.com/lancetipton/argsParse/blob/master/__tests__/argsParse.js)

```js
;(() => {

  const { argsParse } = require('argsParse')
  const task = {
    options: {
      // Define required
      doo: {
        description: "dew the doo",
        require: true,
      },
      // Define defaults
      foo: {
        description: 'I am foo bar',
        default: 'bar'
      },
      baz: {
      // Define alias
        alias: [ 'zoo' ],
        description: 'The baz with bas',
      },
    }
  }
  
  const parsed = await argsParse({
    task,
    args: [ 'doo=f', '--zoo', 'bas', ],
  })
  
  expect(parsed.doo).toBe(false)
  expect(parsed.foo).toBe('bar')
  expect(parsed.baz).toBe('bas')

})()

```

## Custom Config
* Use the `PARSE_CONFIG_PATH` environment vairable to overwrite the path to the parse config
  * Path should be relative to the applications root directory
* See default [config](https://github.com/lancetipton/argsParse/blob/master/configs/parse.config.js)
* Custom Configs should match the keys within the default config
  * `bools` && `environment`
npm package: @svkeg/ask-it
Description: Node CLI helper for asking questions
Author: Lance Tipton
Latest version: 0.0.1

# AskIt
Wrapper around [inquirer](https://www.npmjs.com/package/inquirer) to make asking questions in Node CLIs easier.

## Setup

### Install It
Add to your package.json

  ```js
    "askIt": "git+https://github.com/lancetipton/askIt.git"
  ```

### Use It
See an [example here](https://github.com/lancetipton/askIt/blob/master/scripts/validate.js)

```js
;(() => {

  const { ask, separator, models } = require('askIt')

  // See src/models/models for more information
  const questionModelObject = {
    // Add the default input model
    ...models.input,
    // Override with custom values
    type: 'Question type',
    name: 'Name of the question',
    message: 'Question to ask',
    default: 'Default value if user enters nothing',
  }

  // Pass the model directly to the ask method
  // Returns a value entered by the user or the default
  const askResponse = await ask({ ...questionModelObject })

  // Ask a true / false question
  // Returns a boolean
  const confirmResponse = await ask.confirm('Ask a confirm question?')

  // Ask for text input
  // Returns a string of the entered text
  const inputResponse = await ask.input('Ask for text input')
  
  // Ask for a password / secret - input will be hidden
  // Returns a string of the entered text
  const passwordResponse = await ask.password('Ask for hidden text input')

  // Ask for user to select an option from a list of options
  // Returns the index of the select option within the passed in array
  const listResponse = await ask.promptList([
    'Option 1',
    'Option 2',
    'Option 3',
  ])

})()

```

## API

### ask
  * *@type* `function`
  * *@param*  `Object` - a question model object
    * See [src/models/models.js](https://github.com/lancetipton/askIt/blob/master/src/models/models.js)
  * **ask.confirm**
    * *@type* `function`
    * *@param*  `string` - The true / false question to ask
    * Helper method to ask a true/false question
    * Accepts a `string` used as the question asked to the user
  * **ask.input**
    * *@type* `function`
    * *@param*  `string` - The text input question to ask
    * Helper method to ask a text input question
  * **ask.password**
    * *@type* `function`
    * *@param*  `string` - The text input question to ask
    * Same as `ask.input`, except user input is hidden
  * **ask.promptList**
    * *@type* `function`
    * *@param*  `array` - List of options to present to the user
    * Asks the user to select from a list of options
    * @returns - `index` of the selected item from the passed in `options`
****
### separator
  * *@type* `function`
  * Helper that returns `new inquirer.Separator()`

### models
  * *@type* `Object`
  * Prebuilt question models with defaults already set
  * Expected to be overwritten with custom values as needed
  * **Question model object**
    * Matches the [inquirer questions](https://github.com/SBoudrias/Inquirer.js#questions) model
npm package: @svkeg/jsutils
Description: common javascript utils
Author: lancetipton
Latest version: 0.0.1

# jsutils

A small utility library for commonly used helper methods. Similar to lodash, underscore, etc...

See docs [here](https://lancetipton.github.io/jsutils)

## Install

  * Download the repo
    ```js
      // Clone repo
      git clone https://github.com/lancetipton/jsutils.git
      // Or Add to package.json
      "dependencies": {
        "jsutils": "git+https://github.com/lancetipton/jsutils.git"
        ...
      },
    ```
  * Add to your code
    ```js
      // * Import into code
        import jsutils from 'jsutils'
        // Or only the methods you need
        import { capitalize } from 'jsutils/string'
        import { reduceObj, mapObj } from 'jsutils/object'

      // * Or require code
        const jsutils = require('jsutils')
      
      // * Add as html script
        <script src='/path/to/jsutils/build/jsutils.min.js'></script>
        // jsutils will be available on the window 
        <script>
          const jsutils = window.jsutils
          
        </script>
    ```
npm package: @svkeg/keg-core
Description: ## Overview
Latest version: 0.2.0

# Keg Core

## Overview

The keg is a platform for developing cross-platform react apps.
It comes preconfigured to target both web and mobile, and it contains a 
collection of utilities for simplifying development, including:
  * built-in routing and navigation
  * a reducer based on the relational data model
  * dynamic theming via [re-theme](https://github.com/simpleviewinc/re-theme)
  * cross platform persistent storage

## Tap usage

* To start, first setup the [keg-cli](https://github.com/simpleviewinc/keg-cli#install)
* Next, use the cli to generate a tap:
`keg gn tap`
* `cd` into your tap's directory, then run `yarn setup`
* The tap you generated will have installed `keg-core` as a dependency
* Read more about tap-development [here](https://www.some-docs-we-need-to-write.confluence.com)

## Architecture

### Store

* [Reducers](core/base/reducers/README.md)
* [Plugins](core/base/store/plugins/README.md)
npm package: @svkeg/re-theme
Description: Simple Theme switcher / builder for React and React Native
Author: Lance Tipton
Latest version: 2.1.3

# ReTheme
Simple React and React Native Theme builder / switcher

### Setup
Add to your package.json

  ```js
    "re-theme": "git+https://github.com/simpleviewinc/re-theme"
  ```

### Example 
```js
import { ReThemeProvider } from 're-theme'

const myCustomTheme = {
  // theme styles go here
}

export const App from Component {
  
  state = { theme: myCustomTheme }
  
  componentDidUpdate = () => {
    this.props.theme !== this.state.theme &&
      this.setState({ theme: this.props.theme })
  }
  
  render(){
    return  (
      <ReThemeProvider theme={theme} merge={false} >
        <App />
      </ReThemeProvider>
    )
  }

}
```

### API
Checkout the [Example App](https://simpleviewinc.github.io/re-theme/) for documentation.
npm package: @svkeg/spawn-cmd
Description: Cross platform child_process execution in Node
Author: Lance Tipton
Latest version: 0.0.1

### Spawn-CMD
  * Spawn child process in Node with ease

### Dependencies
* [app-root-path](https://github.com/inxilpro/node-app-root-path)
* [@svkeg/jsutils](https://github.com/lancetipton/@svkeg/jsutils)
* [tree-kill](https://github.com/pkrumins/node-tree-kill)

## Install

  * Download the repo
    ```js
      // Clone repo
      git clone https://github.com/lancetipton/spawn-cmd.git
      // Or Add to package.json
      "dependencies": {
        "spawn-cmd": "git+https://github.com/lancetipton/spawn-cmd.git"
        ...
      },
    ```
  * Add to your code
    ```js

      // * Require code
      const { spawnCmd } = require('spawn-cmd')

      // Spawns a new terminal session and runs `ls -la` inside of it
      await spawnCmd('ls -la')

      // Pass in a config object as the second argument
      // See more information about the config in the config section
      const config = { args: [ '-la' ] cwd: __dirname }
      await spawnCmd('ls', config)

      // Pass in a directory to run the command from as the third argument
      const config = { args: [ '-la' ] cwd: __dirname }
      await spawnCmd('ls', config, path.join(__dirname, '../'))

    ```

### Config Object
  * args <Array> - Arguments to pass to the spawned command
  * cwd - Directory to run the command from
    * This can be overwirtten by passing the cwd as a third argument
  * onExit <Function> - Called when the process exits
  * onStdErr <Function> - Called on stderr output
  * onError <Function> - Called on an error other then stderr
  * onStdOut <Function> - Called on stdout
  * options <Object> - Settings to pass to the spawned process
    * Is joined with the default settings below
      ```js
        defaultSettings = {
          gid: process.getgid(),
          uid: process.getuid(),
          env: process.env,
          cwd: rootDir, // Project root directory, NOT spawn-cmd directory
          stdio: 'inherit',
        }
      ```

### Extra Command
 **asyncCmd**
  * Extra command that wraps around nodes `child_process.exec`
  * Makes it a promise wrapped in a try/catch
  * Also adds the commands exit code
  * Promise resolves consistently
  * Example => 
      ```js
        const { asyncCmd } = require('spawn-cmd')
        
        ;(()=>{

          const { error, data, exitCode } = await asyncCmd('echo test')

          // String output of stderr
          console.log(error)

          // String output of stdout
          console.log(data)

          // Numbered exit code from the command
          // 0 === success, anything else is exit from error
          console.log(exitCode)

        })()
        

      ```