open-index/open-npm huggingface dataset:
npm package: @scriptrunnerhq/vendors-api
Description: This library will allow you to integrate your custom field with Behaviours for ScriptRunner for Jira Data Center.
Latest version: 1.0.6

# ScriptRunner Vendors API

This library will allow you to integrate your custom field with Behaviours for ScriptRunner for Jira Data Center.

This API will be supported in ScriptRunner for Jira in an upcoming version yet to be determined.

## Installation

1. Add `@scriptrunnerhq/vendors-api` to your `package.json`.
2. Run `npm install` or `yarn install`.
3. In the server-side template file add two `data` properties to the root node:
   * `data-scriptrunner-vendors-api-cfid` - with the value of custom field ID.
   * `data-scriptrunner-vendors-api-stored-value` - with the value stored in the database.
4. In your custom field code, ensure that `VendorsApi.init()` is called immediately when your field is initialized.

## `VendorsApi.init()`

`VendorsApi.init()` is how you connect your custom field with ScriptRunner Behaviours.
It takes two arguments:
1. `customFieldId` - the unique ID assigned by Jira for the field.
2. `apiSpec` - an object with API functions:
    * `getValue()` - return the current value of custom field.
    * `setValue(value)` -  set value of the custom field.
    * `setReadOnly(readOnly)` - enables or disables the custom field based on `readOnly` boolean argument.
    * `bindOnChange(callback)` - a callback to inform ScriptRunner Behaviours that the value of the custom field has changed.
    * `setOptions(options)` - (optional) for fields like `select` provides a list of available options in the form of `{key: string, value: string}[]`.
    * `isPopulated()` - (optional) determines if the field is populated with data, to inform ScriptRunner of mandatory fields not filled in.

_Note:_ The `getValue()` and `setValue()` should be symmetric, meaning both should return/accept values in the same format.
These values should match the data format stored in the database.

It is important to call `VendorApi.init()` as early as possible, as any of the above functions may be called early from
ScriptRunner Behaviours. This means that all of the above can be called before the custom field is fully initialized.
For this reason all of the above can return `Promise` and internally wait for custom field initialization to finish
before applying a Behaviour.

More information and an example plugin can be found in our [Documentation](https://docs.adaptavist.com/display/_PK/SR4JS/vendors-api).

We also provide an [example plugin](https://github.com/scriptrunnerhq/vendors-api-example) demonstrating how this API can be used.
npm package: @scripts-utils/image-converter
Description: image-converter using sharp
Author: jakePark
Latest version: 1.0.17

# [@scripts-utils/image-converter](https://www.npmjs.com/package/@scripts-utils/image-converter)

### 🔍 Usage (scripts options)

- `--directory` : PNG 이미지가 있는 디렉토리 경로 (default: './')
- `--formatFrom` : 변환하려고 하는 이미지 포맷 / 미지정시 모든 [".png", ".jpg", ".jpeg", ".webp", ".avif", "gif", "bmp"] 이미지 변환
- `--formatTo` : 변환하려고 하는 이미지 포맷 (default: 'webp')
- `--quality` : 변환하려고 하는 이미지의 Quality (default: 90)
- `--include` : 이미지 파일명에 해당 단어가 포함되는 경우에만 포맷 변환
- `--exclude` : 이미지 파일명에 해당 단어가 포함되지 않는 경우에만 포맷 변환
- `--replace` : 변환하려고 하는 이미지 파일 삭제 여부
- example
  ```
  "scripts": {
    "convert-image": "image-converter --directory .next/static/media --include _webp --exclude animation --formatFrom png --formatTo webp --replace"
  },
  ```

### 🔍 process

- `argv` : Node.js의 process.argv, command line arguments를 반환
- `cwd` : Node.js의 process.cwd(), 현재 작업 디렉토리 경로를 반환

### 🔍 sharp

- [sharp](https://github.com/lovell/sharp) : Node.js의 이미지 프로세싱 라이브러리
- sharp 라이브러리 node 버전 제한
  ```
  "engines": {
    "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
  }
  ```
npm package: @scriptstone/cards
Description: Hearthstone Card Metadata Object
Author: Scriptstone
Latest version: 1.1.2

# Scriptstone Cards

> Hearthstone Card Metadata from [HearthstoneJSON](https://hearthstonejson.com/) converted into a JavaScript object that maps Card IDs to the Card Metadata. Currently updated for Patch 12.0.0.25770.

## Install

``` bash
npm i @scriptstone/cards
```

## Usage

``` JavaScript
const Cards = require('scriptstone-cards');
console.log(Cards['GIL_820']);
```

## Output

``` JavaScript
{ artist: 'Matt Dixon',
  attack: 6,
  cardClass: 'SHAMAN',
  collectible: true,
  cost: 9,
  dbfId: 48111,
  elite: true,
  flavor:
   'Beware the Shudderwock, my son. We\'re fresh out of vorpal daggers.',
  health: 6,
  id: 'GIL_820',
  mechanics: [ 'BATTLECRY' ],
  name: 'Shudderwock',
  rarity: 'LEGENDARY',
  set: 'GILNEAS',
  text:
   '[x]<b>Battlecry:</b> Repeat all other\n<b>Battlecries</b> from cards you\nplayed this game <i>(targets\nchosen randomly)</i>.',
  type: 'MINION' }
```

## Export to Prolog

The Hearthstone cards can be exported into a Prolog predicate, `card_name/2`, that maps card IDs to card names. This predicate can be generated by piping the output of `export2Prolog.js` into a new file. This resultant file can be loaded into a Prolog engine.

``` bash
node export2Prolog.js > cards.pl
```

``` prolog
?- card_name(gil_820, Name).
Name = "Shudderwock".
```
npm package: @scriptstone/parser
Description: Hearthstone Power Log Parser
Author: Scriptstone
Latest version: 0.2.2

# Scriptstone Parser

> A regex-based parser for extracting game state from Hearthstone's `Power.log` file and emitting game events in real-time using [Node Events](https://nodejs.org/api/events.html).

## Install

``` bash
npm i @scriptstone/parser
```

## Enable Logging

Before the parser can be used, the `Power.log` must be enabled. This can be done by creating a `log.config` file in one of the following locations:

- `C:\Users\{USERNAME}\AppData\Local\Blizzard\Hearthstone` (Windows)
- `%LOCALAPPDATA%/Blizzard/Hearthstone` (Windows)
- `~/Library/Preferences/Blizzard/Hearthstone` (macOS)

Then, put the following text in the file:

``` ini
[Power]
LogLevel=1
FilePrinting=true
ConsolePrinting=true
ScreenPrinting=false
```

## Usage

``` JavaScript
const Parser = require('scriptstone-parser');

// Emits 'gameStart' event at the beginning
// of a new Hearthstone game.
parser.on('gameStart', function () {
    // Output the game state.
    console.log(Parser.state);
});
```

See `source/test.js` to see more examples.

## Emitters

List of implemented events: `gameStart`, `mulligan`, `turnChange`, `powerEvent`, `tagChange`.
npm package: @scriptwerx/athena-cli
Description: Modern and modular robotics operating system
Author: Scriptwerx
Latest version: 0.0.0-alpha.1

athena-cli
==========

Modern and modular robotics operating system

[![oclif](https://img.shields.io/badge/cli-oclif-brightgreen.svg)](https://oclif.io)
[![Version](https://img.shields.io/npm/v/athena-cli.svg)](https://npmjs.org/package/athena-cli)
[![CircleCI](https://circleci.com/gh/scriptwerx/athena-cli/tree/master.svg?style=shield)](https://circleci.com/gh/scriptwerx/athena-cli/tree/master)
[![Downloads/week](https://img.shields.io/npm/dw/athena-cli.svg)](https://npmjs.org/package/athena-cli)
[![License](https://img.shields.io/npm/l/athena-cli.svg)](https://github.com/scriptwerx/athena-cli/blob/master/package.json)

<!-- toc -->
* [Usage](#usage)
* [Commands](#commands)
<!-- tocstop -->
# Usage
<!-- usage -->
```sh-session
$ npm install -g @athena/athena-cli
$ athena COMMAND
running command...
$ athena (-v|--version|version)
@athena/athena-cli/0.0.0-alpha.1 darwin-x64 node-v14.16.0
$ athena --help [COMMAND]
USAGE
  $ athena COMMAND
...
```
<!-- usagestop -->
# Commands
<!-- commands -->
* [`athena hello [FILE]`](#athena-hello-file)
* [`athena help [COMMAND]`](#athena-help-command)
* [`athena update [CHANNEL]`](#athena-update-channel)

## `athena hello [FILE]`

describe the command here

```
USAGE
  $ athena hello [FILE]

OPTIONS
  -f, --force
  -h, --help       show CLI help
  -n, --name=name  name to print

EXAMPLES
  $ athena hello
       hello world from ./src/hello.ts!
  $ athena hello -n Geoff
       hello Geoff from ./src/hello.ts!
```

_See code: [src/commands/hello.ts](https://github.com/scriptwerx/athena-cli/blob/v0.0.0-alpha.1/src/commands/hello.ts)_

## `athena help [COMMAND]`

display help for athena

```
USAGE
  $ athena help [COMMAND]

ARGUMENTS
  COMMAND  command to show help for

OPTIONS
  --all  see all commands in CLI
```

_See code: [@oclif/plugin-help](https://github.com/oclif/plugin-help/blob/v3.2.2/src/commands/help.ts)_

## `athena update [CHANNEL]`

update the athena CLI

```
USAGE
  $ athena update [CHANNEL]
```

_See code: [@oclif/plugin-update](https://github.com/oclif/plugin-update/blob/v1.3.10/src/commands/update.ts)_
<!-- commandsstop -->
npm package: @scriptwerx/web-storage
Description: localStorage and sessionStorage for use in your Angular 2 applications.
Author: Paul Massey, paul.massey@scriptwerx.io
Latest version: 0.2.2

# @scriptwerx/web-storage

Provides a key-value (string-object) storage, that is backed by localStorage or sessionStorage with support for expiry.

**N.B. Expiry is set in days for localStorage and minutes for sessionStorage.**

Objects put or retrieved from this storage are automatically serialized or deserialized.

## Installation

Node Package Manager:

    npm install --save-dev @scriptwerx/web-storage

## Dependencies

@scriptwerx/web-storage depends on [Angular 2][] and is tested with version 2.4.5.

## Supported Browsers

@scriptwerx/web-storage will function correctly within all browsers that support [Web Storage][].

For browsers with Web Storage disabled or in private browsing mode; a simple in-session Object fallback is used - **please be aware of the limitations in this scenario**.

---

The MIT License (MIT)

Copyright (c) 2016 [Scriptwerx][]

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.


[Angular 2]: http://angular.io
[Web Storage]: http://caniuse.com/#feat=namevalue-storage
[Scriptwerx]: http://scriptwerx.io
npm package: @scripty/react-articles
Description: lightweight react card component.
Author: Danijel Garic
Latest version: 0.1.21

# @scripty/react-articles

# Description

lightweight react card component.

![alt text](./card.png "@scripty/react-articles")

# Usage
```bash
npm install -s @scripty/react-articles
```

##### Client: Example.jsx

```javascript
import React, { Fragment } from 'react';
import { Card } from '@src';

export const Example = () => {

    const onClick = (e) => {
        console.log(e);
    }

    return (
        <Fragment>
            <h2>Card</h2>
            <Card
                title={'Simple Card'}
                width={300}
            >
                Simple Card Content
            </Card>

            <h2>Card with Actions</h2>
            <Card
                title={'Card with actions'}
                width={300}
                onEdit={onClick}
                onClose={onClick}
            >
                Simple Card Content
            </Card>

            <h2>Card with custom actions</h2>
            <Card
                title={'Card with actions'}
                width={300}
                extra={'custom field'}
            >
                Simple Card Content
            </Card>

            <h2>Card with ok and cancel buttons</h2>
            <Card
                title={'Card with actions'}
                width={300}
                onEdit={onClick}
                onClose={onClick}
                onOk={onClick}
                onCancel={onClick}
            >
                Simple Card Content
            </Card>
        </Fragment>
    );
};
```
npm package: @scripty/react-buttons
Description: lightweight react button library.
Author: Danijel Garic
Latest version: 0.1.9

# @scripty/react-buttons

# Description

lightweight react button library.

![alt text](https://raw.githubusercontent.com/scripty08/buttons/master/react-buttons.png "@scripty/react-buttons")

# Usage
```bash
npm install -s @scripty/react-buttons
```

##### Client: Example.jsx

```javascript
import React, { Fragment } from 'react';
import {
    Button,
    EditButton,
    SaveButton,
    CloseButton,
    OkButton,
    MoveButton,
    AddButton,
    MenuButton,
    CancelButton,
    DeleteButton
} from '@scripty/buttons';
import PlusOutlined from '@ant-design/icons/lib/icons/PlusOutlined';
import ExclamationOutlined from '@ant-design/icons/lib/icons/ExclamationOutlined';

export const Example = () => {

    return (
        <Fragment>
            <h1>Custom Buttons</h1>
            <Button icon={<ExclamationOutlined />} color={'#1d6fad'}>Custom</Button>
            <EditButton color={'#1d6fad'} />
            <SaveButton color={'#12a525'} />
            <CloseButton />
            <MoveButton color={'rgba(201,5,156,0.49)'}/>
            <AddButton color={'#1d6fad'} />
            <CancelButton color={'#c40000'} />
            <OkButton color={'#eff700'} />
            <DeleteButton color={'red'} />
            <EditButton iconBtn color={'#1d6fad'}/>
            <DeleteButton color={'#c40000'} iconBtn/>
            <CloseButton color={'#fff'} iconBtn/>
            <CloseButton color={'#000000'} iconBtn/>

            <h1>Menu Buttons</h1>
            <MenuButton icon={<PlusOutlined/>} items={[
                <a aria-current={'page'} href={'#'} className={'active'}>Article</a>,
                <a aria-current={'page'} href={'#'} className={'active'}>Article2</a>
            ]}>Menu</MenuButton>

        </Fragment>
    );
};
```
npm package: @scripty/react-card
Description: lightweight react card component.
Author: Danijel Garic
Latest version: 0.1.13

# @scripty/react-card

# Description

lightweight react card component.

![alt text](./card.png "@scripty/react-card")

# Usage
```bash
npm install -s @scripty/react-card
```

##### Client: Example.jsx

```javascript
import React, { Fragment } from 'react';
import { Card } from '@src';

export const Example = () => {

    const onClick = (e) => {
        console.log(e);
    }

    return (
        <Fragment>
            <h2>Card</h2>
            <Card
                title={'Simple Card'}
                width={300}
            >
                Simple Card Content
            </Card>

            <h2>Card with Actions</h2>
            <Card
                title={'Card with actions'}
                width={300}
                onEdit={onClick}
                onClose={onClick}
            >
                Simple Card Content
            </Card>

            <h2>Card with custom actions</h2>
            <Card
                title={'Card with actions'}
                width={300}
                extra={'custom field'}
            >
                Simple Card Content
            </Card>

            <h2>Card with ok and cancel buttons</h2>
            <Card
                title={'Card with actions'}
                width={300}
                onEdit={onClick}
                onClose={onClick}
                onOk={onClick}
                onCancel={onClick}
            >
                Simple Card Content
            </Card>
        </Fragment>
    );
};
```
npm package: @scripty/react-color-filter
Description: # Description
Author: Danijel Garic
Latest version: 0.1.0

# @scripty/react-color-filter

# Description

react-color-filter component.

# Usage
```bash
npm install -s @scripty/react-color-filter
```

##### Client: Example.jsx

```javascript
import React, {useState} from 'react';
import { ColorFilter } from '@scripty/react-color-filter';

const App = () => {
    const [colors] = useState(['#cd1212', '#53e239']);
    const [filter, setFilter] = useState(['#cd1212']);

    return <ColorFilter setFilter={setFilter} colors={colors} filter={filter} />;
}
```
npm package: @scripty/react-examples
Description: # Description
Author: Danijel Garic
Latest version: 0.1.5

# @scripty/react-examples

# Description

react-examples component.

# Usage
```bash
npm install -s @scripty/react-examples
```

##### Client: Example.jsx

```javascript
import React, { Fragment } from 'react';
import { Examples } from '@scripty/react-examples';

import { Description, Code } from '@scripty/react-examples';

export const MyComponent = () => {

     const propertiesData = [
        {
            property: 'title',
            description: 'Title of your example component',
            type: 'string',
            default: 'none'
        }
    ]

    return (
        <Description title={'Simple Description Component'}>
            <Component>
                Your Component goes here
            </Component>

            <Code>
                {code}
            </Code>

            <Properties data={propertiesData}/>
        </Description>
    );
}
```
npm package: @scripty/react-inputs
Description: # Description
Author: Danijel Garic
Latest version: 0.1.5

# @scripty/react-inputs

# Description

lightweight react inputs library.

![alt text](https://raw.githubusercontent.com/scripty08/react-inputs/master/inputs.png "@scripty/react-buttons")

# Usage
```bash
npm install -s @scripty/react-inputs
```

##### Client: Example.jsx

```javascript
import React, { Fragment } from 'react';
import { Input, UsernameInput } from '@src';
import { PasswordInput } from '@src/PasswordInput';
import { EmailInput } from '@src/EmailInput';
import { SearchInput } from '@src/SearchInput';

export const Example = () => {

    return (
        <Fragment>
            <h2>Input</h2>
            <Input />

            <h2>Search Input</h2>
            <SearchInput />

            <h2>Username Input</h2>
            <UsernameInput />

            <h2>Email Input</h2>
            <EmailInput />

            <h2>Password Input</h2>
            <PasswordInput />

            <h2>Input with help link</h2>
            <UsernameInput
                helpLink={<a tabindex={-1} href={'#'}>FORGOT?</a>}
            />
        </Fragment>
    );
};
```
npm package: @scripty/react-login
Description: # Description
Author: Danijel Garic
Latest version: 0.1.3

# @scripty/react-login

# Description

lightweight react login component.

![alt text](./login.png "@scripty/react-login")

# Usage
```bash
npm install -s @scripty/react-login
```

##### Client: Example.jsx

```javascript
import React from 'react';
import { BrowserRouter as Router } from 'react-router-dom';
import { Login } from '@scripty/react-login';

export const Example = () => {

    const onLoginSubmit = (data) => {
        const { username, password } = data;
        console.log(username, password);
    }

    const onRegisterSubmit = (data) => {
        const { username, password } = data;
        console.log(username, password);
    }

    const onForgotUsernameSubmit = (username) => {
        console.log(username);
    }

    const onForgotPasswordSubmit = (password) => {
        console.log(password);
    }

    return (
        <Router>
            <h2>Login</h2>
            <Login
                width={350}
                onLoginSubmit={onLoginSubmit}
                onRegisterSubmit={onRegisterSubmit}
                onForgotUsernameSubmit={onForgotUsernameSubmit}
                onForgotPasswordSubmit={onForgotPasswordSubmit}
                loginPath={'/login'}
                registerPath={'/register'}
            />
        </Router>
    );
};

```
# Components

Name              | Features                                                      |
----------------- |-------------------------------------------------------------- |
Login             | Reset password, forgot password, forgot username              |
Registration      |                                                               |

# Login Properties

Property                           | Type        |  Default / Description  |
-----------------------------------|------------ |-----------
title (optional)                   | String      | Login
width (optional)                   | number      | 100%
onLoginSubmit (required)           | Function    |
onRegisterSubmit (optional)        | Function    |
onForgotUsernameSubmit (optional)  | Function    |
onForgotPasswordSubmit (optional)  | Function    |
onPasswordReset (optional)         | Function    | url params :userId and :token needed. returns token, userId and new password
loginPath (optional)               | String      | /login
registerPath (optional)            | String      | /register

# Registration Properties

Property                     | Type           |  Default  |
---------------------------- |--------------- |-----------
registerPath (optional)      | String         | /register
title (optional)             | String         | Register
onRegisterSubmit (required)  | Function       |
children (optional)          | React Children |
npm package: @scripty/react-modules
Description: # Description
Author: Danijel Garic
Latest version: 0.1.5

# @scripty/react-modules

# Description

lightweight react login component.

![alt text](./login.png "@scripty/react-modules")

# Usage
```bash
npm install -s @scripty/react-modules
```

##### Client: Example.jsx

```javascript
import React from 'react';
import { BrowserRouter as Router } from 'react-router-dom';
import { Login } from '@scripty/react-modules';

export const Example = () => {

    const onLoginSubmit = (data) => {
        const { username, password } = data;
        console.log(username, password);
    }

    const onRegisterSubmit = (data) => {
        const { username, password } = data;
        console.log(username, password);
    }

    const onForgotUsernameSubmit = (username) => {
        console.log(username);
    }

    const onForgotPasswordSubmit = (password) => {
        console.log(password);
    }

    return (
        <Router>
            <h2>Login</h2>
            <Login
                width={350}
                onLoginSubmit={onLoginSubmit}
                onRegisterSubmit={onRegisterSubmit}
                onForgotUsernameSubmit={onForgotUsernameSubmit}
                onForgotPasswordSubmit={onForgotPasswordSubmit}
                loginPath={'/login'}
                registerPath={'/register'}
            />
        </Router>
    );
};

```
# Components

Name              | Features                                                      |
----------------- |-------------------------------------------------------------- |
Login             | Reset password, forgot password, forgot username              |
Registration      |                                                               |

# Login Properties

Property                           | Type        |  Default / Description  |
-----------------------------------|------------ |-----------
title (optional)                   | String      | Login
width (optional)                   | number      | 100%
onLoginSubmit (required)           | Function    |
onRegisterSubmit (optional)        | Function    |
onForgotUsernameSubmit (optional)  | Function    |
onForgotPasswordSubmit (optional)  | Function    |
onPasswordReset (optional)         | Function    | url params :userId and :token needed. returns token, userId and new password
loginPath (optional)               | String      | /login
registerPath (optional)            | String      | /register

# Registration Properties

Property                     | Type           |  Default  |
---------------------------- |--------------- |-----------
registerPath (optional)      | String         | /register
title (optional)             | String         | Register
onRegisterSubmit (required)  | Function       |
children (optional)          | React Children |
npm package: @scripty/react-skeleton
Description: react-skeleton component.
Author: Danijel Garic
Latest version: 0.1.0

# @scripty/react-skeleton

# Description

react-skeleton component.

# Usage
```bash
npm install -s @scripty/react-skeleton
```

##### Client: Example.jsx

```javascript
import React from 'react';
import { ReactSkeleton } from '@scripty/react-skeleton';

export const Example = () => {

    return (
        <ReactSkeleton />
    );
};
```
npm package: @scripty/server
Description: wrapper for express server.
Author: Danijel Garic
Latest version: 0.3.5

# @scripty/server

# Description

Setting up a node server for a website can be a pain. This express wrapper will install
and preconfigure many dependencies with which you can run a one page application in react. Admittedly, not every use case is covered
but that actually wasn´t the goal. The main goal was to keep it easy and clean.

Features:

- prerendering (no server side rendering)
- compression
- body parsing
- favicon middleware
- webpack-hot-middleware for hot modules reloading
- preconfigured static paths
- initialized routing

# Usage
```bash
npm install -s @scripty/server
```

##### Client: server.js

```javascript
import { Server, IndexController } from '@scripty/server';

const init = async () => {
    let app = new Server();
    await app.addController(new IndexController({ title: 'For title tag' }));
    await app.addController(new ExampleController());
    app.start(3000);
};

init().catch((err) => {
    console.error(err.message);
});

```

##### Client: ExampleController.js
```javascript
export class ExampleController {
    init(server, router) {
        router.post('/create', this.createAction);
        router.get('/read', this.readAction);
        server.use(router);
    }

    createAction(req, res) {
        res.json({example: 'foo'})
    };

    readAction(req, res) {
        res.json({example: 'foo'})
    };
}
```

# Static Files
if you want to access your static files you have to create following folders in your project:

```
project
│   README.md
│   file001.txt
│
└───public
│   │
│   │
│   │
│   └───images
│   │    │   image1.png
│   │    │   image2.jpg
│   │    │   ...
│   │
│   └───files
│   │    │   file1.txt
│   │    │   file2.zip
│   │    │   ...
```

You can access your files on server this way:

https://localhost:3000/files/file1.txt

https://localhost:3000/images/image1.png


# What´s next?
- add possibility to configure meta data
- extending readme
npm package: @scripty/webpack-after-compile-plugin
Description: runs a javascript command after webpack build
Author: Danijel Garic
Latest version: 0.2.3

# @scripty/webpack-after-compile-plugin

# Description

runs a javascript command after webpack build

# Usage
```bash
npm install @scripty/webpack-after-compile-plugin --save-dev
```

##### Client: webpack.config.js

```javascript

const { 
WebpackAfterCompilePlugin 
printTable
} = require('@scripty/webpack-after-compile-plugin');

const webpackConfig = {
    ...
    ...
    plugins: [
        new WebpackAfterCompilePlugin('RandomCommandName', () =>  printTable([['col1', 'col2'], ['val1', 'val2']]))
    ]
};

```
npm package: @scrlk/ra-language-polish
Description: Polish messages for react-admin, the frontend framework for building admin applications on top of REST/GraphQL services
Latest version: 1.3.2
Deprecated: use 'ra-language-polish'

# Polish Messages for React-Admin

Polish messages for [react-admin](https://github.com/marmelab/react-admin), the frontend framework for building admin applications on top of REST/GraphQL services.

## Installation

```sh
npm install --save ra-language-polish
```

## Usage

```js
import polishMessages from 'ra-language-polish';

const messages = {
    'pl': polishMessages,
};

<Admin locale="pl" messages={messages}>
  ...
</Admin>
```

## License

This translation is licensed under the MIT License.
npm package: @scrmea/snowpack-plugin-relative-css-urls
Description: A snowpack plugin that lets you use relative asset URLs in your CSS
Author: Duane Johnson
Latest version: 2.0.1

# snowpack-plugin-relative-css-urls

A plugin for [Snowpack](https://www.snowpack.dev) that lets you use relative URLs in your CSS, like this:

```css
.button {
  background-image: url(./icon.png);
}
```

The above CSS assumes your directory structure looks something like this:

```
PROJECT ROOT
+-src
  +-components
    +-Button
      +-index.js
      +-button.css
      +-icon.png
```

If you like to keep your assets together with your components, this makes it possible to reference them within your CSS.

This has also been tested with [Svelte](https://svelte.dev) via [@snowpack/plugin-svelte](https://www.snowpack.dev/#svelte).

## Usage

Requires Snowpack v2.15.0+

### Install

```bash
yarn add -D snowpack-plugin-relative-css-urls
```

### Configuration

Add this plugin to your Snowpack config:

**snowpack.config.json**

```json
{
  "plugins": ["snowpack-plugin-relative-css-urls"]
}
```

## Why is this necessary?

CSS normally allows relative images. It does so through a "baseURI" property--a read-only property that is set when CSS files are loaded by the browser. This allows a CSS file's internal `url()` references to refer to assets relative to the CSS file, NOT the path of the current page (i.e. the HTML file).

When snowpack adds `*.css.proxy.js` files in place of `*.css` files, it injects a `style` tag with the CSS corresponding to the `.css` file into the page. Everything works EXCEPT relative `url()` paths, because there is no way to set the style tag's baseURI.

See also:

- Discussion at https://github.com/pikapkg/snowpack/discussions/1327

Other resources:

- https://stackoverflow.com/questions/3812375/specifying-base-url-for-css
- https://developer.mozilla.org/en-US/docs/Web/API/Node/baseURI
- https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base
- https://developer.mozilla.org/en-US/docs/Web/CSS/url()
npm package: @scrolia/react-native-core-thumb
Description: A core of thumb component in Scrolia React Native
Author: Alpheus Tang
Latest version: 0.5.0
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# Scrolia React Native Core Thumb

A core of thumb component in Scrolia React Native.

## License

This project is licensed under the terms of the MIT license.
npm package: @scrolia/react-native-reanimated
Description: A set of reanimated components for Scrolia React Native
Author: Alpheus
Latest version: 0.6.4

# Scrolia React Native Reanimated

A set of reanimated components for Scrolia React Native.

## More Information

This package respects the `animated` option in `@scrolia/react-native`.
Therefore, the option should be set to `true` to use the reanimated components.
Otherwise, the regular components will be used.

## License

This project is licensed under the terms of the MIT license.
npm package: @scrolia/react-native-reanimated-thumb
Description: A set of thumb components for Scrolia React Native
Author: Alpheus Tang
Latest version: 0.5.0
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# Scrolia React Native Reanimated Thumb

A set of thumb components for Scrolia React Native.

## License

This project is licensed under the terms of the MIT license.
npm package: @scroll-tech/contracts
Description: A library for interacting with Scroll contracts.
Author: Scroll
Latest version: 4.0.0

A library for interacting with Scroll contracts.

This library includes contracts and interfaces needed to interact with the Scroll Smart Contracts deployed on both Layer 1 and Layer 2. This includes deposting and withdrawing ETH, ERC20 tokens and NFTs or sending arbitrary messages.

# Overview

## Installations

```bash
npm install @scroll-tech/contracts
```

## Usage

Once installed, you can use the contracts in the library by importing them:

```solidity
// SPDX-License-Identifier: MIT
pragma solidity 0.8.20;

import "@scroll-tech/contracts/L1/gateways/IL1ETHGateway.sol";

contract MyContract {
  function bridgeETH(address scrollBridge, uint256 gasLimit) public payable {
    IL1ETHGateway(scrollBridge).depositETH(msg.sender, msg.value, gasLimit);
  }
}

```

Visit the Bridge Documentation for API reference, architecture overview and guides with code examples.

# About Scroll

Scroll is a bytecode equivalent zkEVM for Ethereum. It enables native compatibility for existing Ethereum applications and tools. Learn more about Scroll [here](https://scroll.io/).
npm package: @scroll-wa/medium-button
Description: React wrapper for medium-editor
Author: Wang Zuo
Latest version: 1.8.1

# react-medium-editor
React wrapper for [medium-editor](https://github.com/daviferreira/medium-editor)

For better rich text editing with react, check [draft-js](http://draftjs.org/).

### Demo
[http://wangzuo.github.io/react-medium-editor](http://wangzuo.github.io/react-medium-editor)
### Installation
``` sh
npm install react-medium-editor --save
```
### Usage
``` javascript
// load theme styles with webpack
require('medium-editor/dist/css/medium-editor.css');
require('medium-editor/dist/css/themes/default.css');

// ES module
import Editor from 'react-medium-editor';

// CommonJS enviroment
// var Editor = require('react-medium-editor').default;

var App = React.createClass({
  getInitialState() {
    return { text: 'Fusce dapibus, tellus ac cursus commodo' };
  },

  render() {
    return (
      <div className="app">
        <h1>react-medium-editor</h1>
        <h3>Html content</h3>
        <div>{this.state.text}</div>

        <h3>Editor #1 (&lt;pre&gt; tag)</h3>
        <Editor
          tag="pre"
          text={this.state.text}
          onChange={this.handleChange}
          options={{toolbar: {buttons: ['bold', 'italic', 'underline']}}}
        />
        <h3>Editor #2</h3>
        <Editor
          text={this.state.text}
          onChange={this.handleChange}
        />
      </div>
    );
  },

  handleChange(text, medium) {
    this.setState({text: text});
  }
});
```
### License
MIT
npm package: @scrollmotiongit/ffprobe-static
Description: Static binaries for ffprobe.
Author: joshwnj
Latest version: 1.1.0

ffprobe-static
====
_Note: fork of [joshwnj](https://github.com/joshwnj) for the purpose of providing temporary arm64 support._
___

Static binaries for `ffprobe`.

Based on <https://github.com/eugeneware/ffmpeg-static>.

Binaries are from <http://ffmpeg.zeranoe.com/builds/>

Usage
----

```js
var ffprobe = require('ffprobe-static');
console.log(ffprobe.path);
```

Binaries
----

* [ARM (Apple Silicon) Mac OSX](https://osxexperts.net/)
* [64 bit Mac OSX](https://evermeet.cx/ffmpeg/)
* [64 bit Linux](http://johnvansickle.com/ffmpeg/)
* [32 bit Linux](http://johnvansickle.com/ffmpeg/)
* [64 bit Windows](http://ffmpeg.zeranoe.com/builds/win64/static/)
* [32 bit Windows](http://ffmpeg.zeranoe.com/builds/win32/static/)

Acknowledgements
----

Special thanks to [joshwnj](https://github.com/joshwnj) for <https://github.com/joshwnj/ffprobe-static>, which this is based upon.