open-index/open-npm huggingface dataset:
npm package: @orka-js/workflow
Description: Multi-step workflows for OrkaJS
Author: Orka Team
Latest version: 1.0.9

# @orka-js/workflow

Multi-step workflow orchestration for OrkaJS — chain plan, retrieve, generate, verify, and improve steps.

## Installation

```bash
npm install @orka-js/workflow @orka-js/core
```

## Quick Start

```typescript
import { Workflow, plan, retrieve, generate, verify } from '@orka-js/workflow'
import { Orka } from '@orka-js/core'

const orka = new Orka({ llm, vectorDB })

const workflow = new Workflow({
  orka,
  steps: [
    plan({ prompt: 'Break down the question into sub-tasks' }),
    retrieve({ topK: 5 }),
    generate({ systemPrompt: 'Answer based on the retrieved documents' }),
    verify({ threshold: 0.8 }),
  ],
})

const result = await workflow.run('What are the key features of OrkaJS?')
console.log(result.output)
```

## Streaming

```typescript
for await (const event of workflow.stream('Summarize the quarterly report')) {
  if (event.type === 'token') process.stdout.write(event.delta)
  if (event.type === 'step') console.log(`Step done: ${event.step}`)
}
```

## Custom Step

```typescript
import { custom } from '@orka-js/workflow'

const myStep = custom(async (ctx) => {
  const transformed = await myTransform(ctx.output)
  return { ...ctx, output: transformed }
})

const workflow = new Workflow({
  orka,
  steps: [retrieve({ topK: 3 }), generate(), myStep],
})
```

## Built-in Steps

| Step | Description |
|------|-------------|
| `plan(opts)` | Decompose the input into sub-tasks |
| `retrieve(opts)` | Fetch relevant documents from vector DB |
| `generate(opts)` | Generate a response using the LLM |
| `verify(opts)` | Check output quality, retry if below threshold |
| `improve(opts)` | Refine and improve the previous output |
| `custom(fn)` | Custom step function |

## Workflow Context

Each step receives and returns a `WorkflowContext`:

```typescript
interface WorkflowContext {
  input: string
  output: string
  memory: Message[]
  documents: Document[]
  metadata: Record<string, unknown>
}
```

## API

### `Workflow`

```typescript
new Workflow(config: WorkflowConfig)

workflow.run(input: string)     // Promise<WorkflowResult>
workflow.stream(input: string)  // AsyncIterable<WorkflowEvent>
```

`WorkflowResult`: `{ output, steps, duration, tokens }`

## Related Packages

- [`@orka-js/graph`](../graph) — Graph-based workflows with branching
- [`@orka-js/agent`](../agent) — Agent implementations
- [`@orka-js/core`](../core) — Core types
- [`orkajs`](../orkajs) — Full bundle
npm package: @orkans/prettier-config
Description: My personal Prettier config
Author: Orkan
Latest version: 2.0.0

# @orkans/prettier-config `v2.0.0`

My personal [Prettier](https://prettier.io) config.


## Usage

**Install**:

```bash
$ npm i @orkans/prettier-config --save-dev
```

**Edit `package.json`**:

```jsonc
{
  // ...
  "prettier": "@orkans/prettier-config"
}
```

If you don’t want to use `package.json`, you can use prettier config file to export a string, e.g.:

**`.prettierrc.json`**:
```jsonc
"@orkans/prettier-config"
```

To merge with project specific options:

**`.prettierrc.js`**:
```js
module.exports = {
  ...require('@orkans/prettier-config'),
  tabWidth: 4,
  semi: false,
};
```

## Links
Prettier:
- [Configuration File](https://prettier.io/docs/en/configuration.html)
- [Options](https://prettier.io/docs/en/options)

## Author
[Orkan](https://github.com/orkan)

## License
MIT
npm package: @orkans/serve
Description: Serve local files through localhost.
Author: Orkan
Latest version: 1.1.4

# [Serve](https://www.npmjs.com/package/@orkans/serve) `v1.1.4`
Simple local file server with options.

## Installation
`$ npm i @orkans/serve`

## Usage
serve [options]
```
Options:
  -V, --version         output the version number
  -p, --port <number>   port number (default: 3000)
  -d, --dir <path>      home dir (default: current working dir)
  -c, --clip            copy url to clipboard
  -o, --open [browser]  open browser. Use 'cfg' to load settings from ./open.json file
  -f, --file [path]     open path in browser
  --debug               output extra debugging
  -h, --help            display help for command
```

## About
### Requirements
Node ^20

### Author
[Orkan](https://github.com/orkan)

### License
MIT

### Updated
Mon, 07 Aug 2023 17:04:57 +02:00
npm package: @orkans/utilsjs
Description: Bunch of scripts collected from all around the JS world.
Author: Orkan
Latest version: 3.0.0

# @orkans/utilsjs `v3.0.0`
Bunch of scripts collected from all around the JS world.

## Installation
`npm i @orkans/utilsjs`

## About
### Requirements
Node  ^18

### Author
[Orkan](https://github.com/orkan)

### License
MIT

### Updated
Wed, 04 Oct 2023 14:14:43 +02:00
npm package: @orkanu/eventuor
Description: Simple event emitter library
Author: Marc
Latest version: 0.1.0

<h1 align="center">Eventuor</h1>

![Build Status](https://github.com/orkanu/eventuor/actions/workflows/build.yaml/badge.svg)

Simple event emitter build in Typescript

## Installation
Using npm
```sh
npm install @orkanu/eventuor
```

Using yarn
```sh
yarn add @orkanu/eventuor
```
npm package: @orkanu/titan
Description: Wee CLI to help working with microfrontends
Author: Marc
Latest version: 0.1.1

# Titan
Wee CLI to help working with micro-frontends and/or micro-services. Its two main functions are:

- It allows to have your apps under a reverse proxy
- It has some functionalities to work with the repositories, like pulling/fetching or building
the apps

## Roadmap

Repository actions
[x] - Fetch & Pull from remote on configured repositories
[x] - Build - run build command on configured repositories
[x] - Clean - remove node_modules and dist folders on configured repositories
[x] - Install - run install command on configured repositories

Proxy
[x] - Start a reverse proxy to serve several apps under the same host
[x] - Start tasks in parallel to the reverse proxy (like apps we want proxied)

## Configuration
You can find info about how to configure titan [here](./docs/configuration.md).

## Usage

### Repository actions
Example usages for repository actions. The explanation takes into consideration the default action
if none is provided via config. Via Titan's [configuration](./docs/configuration.md) we can
change the defaul action on each action if desired.

**fetch**
Runs `git fetch -p && git pull` and `git fetch --tags --force && git fetch --prune --prune-tags`
on the configured repositories

```bash
./titan fetch -c /path/to/config/file.yaml
```

**clean**
Runs `rm -rf`, recursively, to remove `dist` and `node_modules` folders on the configured

repositories
```bash
./titan clean -c /path/to/config/file.yaml
```

**install**
Runs `pnpm install --frozen-lockfile --prefer-offline` on the configured repositories

```bash
./titan install -c /path/to/config/file.yaml
```

**build**
Runs `pnpm run build:local` on the configured repositories

```bash
./titan build -c /path/to/config/file.yaml
```

### Proxy
Example usage to use the proxy

**serve**
It starts the proxy using the profile passed as argument. Via Titan's [configuration](./docs/configuration.md)
we determine the profile, what routes Titan must proxy and to where and, if desired, tasks that
would be run alongside the proxy server. Example tasks could be running the apps we want to proxy.

```bash
./titan serve -c /path/to/config/file.yaml -p local:all
```
npm package: @orkosinha/gb-emu
Description: Game Boy Camera emulator core
Latest version: 0.2.1

# gb-emu

A cycle-accurate Game Boy and Game Boy Color emulator. Targets WebAssembly (via wasm-pack) and native platforms (via C FFI).

## Packages

| Package | Features | Use case |
|---|---|---|
| `@orkosinha/gb-emu` | Core emulator | Production apps |
| `@orkosinha/gb-emu-devtools` | + Introspection API | Debuggers, dev tools |

## Usage

### WASM

```bash
npm install @orkosinha/gb-emu
```

API: [`src/wasm.rs`](https://github.com/orkosinha/gb-emu/blob/main/src/wasm.rs)

### C FFI

```bash
cargo build --features ios --no-default-features --release
# outputs: target/release/libgb_emu.a + include/gb_emu.h
```

API: [`include/gb_emu.h`](https://github.com/orkosinha/gb-emu/blob/main/include/gb_emu.h)

### Rust

```toml
gb-emu = { git = "https://github.com/orkosinha/gb-emu" }
```

API: [`src/core.rs`](https://github.com/orkosinha/gb-emu/blob/main/src/core.rs)

## Release

```bash
mise run setup:secrets      # push NPM_TOKEN to GitHub (first time only)
mise run release -- 0.2.0   # bump version, tag, push → CI publishes both packages
```
npm package: @orkosinha/gb-emu-devtools
Description: Game Boy Camera emulator core
Latest version: 0.2.1

# gb-emu

A cycle-accurate Game Boy and Game Boy Color emulator. Targets WebAssembly (via wasm-pack) and native platforms (via C FFI).

## Packages

| Package | Features | Use case |
|---|---|---|
| `@orkosinha/gb-emu` | Core emulator | Production apps |
| `@orkosinha/gb-emu-devtools` | + Introspection API | Debuggers, dev tools |

## Usage

### WASM

```bash
npm install @orkosinha/gb-emu
```

API: [`src/wasm.rs`](https://github.com/orkosinha/gb-emu/blob/main/src/wasm.rs)

### C FFI

```bash
cargo build --features ios --no-default-features --release
# outputs: target/release/libgb_emu.a + include/gb_emu.h
```

API: [`include/gb_emu.h`](https://github.com/orkosinha/gb-emu/blob/main/include/gb_emu.h)

### Rust

```toml
gb-emu = { git = "https://github.com/orkosinha/gb-emu" }
```

API: [`src/core.rs`](https://github.com/orkosinha/gb-emu/blob/main/src/core.rs)

## Release

```bash
mise run setup:secrets      # push NPM_TOKEN to GitHub (first time only)
mise run release -- 0.2.0   # bump version, tag, push → CI publishes both packages
```
npm package: @orland_dev/boomer
Description: Traductor idioma inventado
Author: Orland Contreras
Latest version: 0.1.0

# Boomer
Boomer es un idioma inventado producto de una práctica de Javascript

## Descripción del idioma

- Si la palabra termina con "ar", se le quitan esas dos letras

- Si la palabra inicia con Z, se le añade "pe" al final

- Si la palabra traducida tiene 10 o más letras, se debe partir en dos por la mitad y unir con guión al medio

- Por último, si la palabra original es un palíndromo, ninguna regla anterior cuenta y se devuelve la misma palabra pero intercalando letras mayúsculas y minúsculas

## Instalación

```
npm install boomer
```

## Uso

```
import boomer from 'boomer'

boomer("Programar") // Program
boomer("Zorro") // Zorrope
boomer("Zarpar") // Zarppe
boomer("abecedario") // abece-dario
boomer("sometemos") // SoMeTeMoS
```

## Créditos
- [Orland Contreras](https://twitter.com/Orland_Dev)

## Licencia
[MIT](https://opensource.org/licenses/MIT)
npm package: @orlandohohmeier/caller
Description: ---
Author: Orlando Hohmeier
Latest version: 1.0.1

# ☎️ Caller

---

👩‍🔬 Please be aware that this package is still experimental,
changes to the interface and underlying implementation are likely,
and future development or maintenance is not guaranteed.

---

This package provides different interchangeable `function` (`Callable`) call
strategies to manage _call_ execution.
The different strategies can be used to switch from synchronous to asynchronous
executions and back for optimal performance.

![Homer Simpson yelling "WHOO-HOO!" on the phone](https://media.giphy.com/media/xT5LMQ8rHYTDGFG07e/giphy.gif)

## Example

```js
import {
  AsynchronousCaller,
  ImmediateCaller,
  SynchronousCaller
} from "@orlandohohmeier/caller";

function print(msg)
  console.log(msg);
}

Promise.all([
  new AsynchronousCaller().call(null, print, "c"),
  new ImmediateCaller().call(null, print, "b"),
  new SynchronousCaller().call(null, print, "a")
]).then(() => print("done"));
```

/codesandbox: https://codesandbox.io/s/ryy86omk94?module=%2Fsrc%2Findex.js

## Asynchronous Caller

This caller uses `setTimeout` (Tasks) to defer calls until the stack is empty.
The asynchronous strategy is useful when the calls take potentially longer
as it allows the browser to render updates in between.

## Immediate Caller

The immediate caller uses `Promise.resolve()` (MicroTasks) to postpone calls
until the current task is done but before the next task is running.
The caller makes the respective calls async without the penalty of a new task.

Please note that as the calls are scheduled to run before the next task,
the browser may not be able to render update between calls.

## Synchronous Caller

This caller synchronously calls the provided `Callable` (e.g. `function`).
npm package: @orlenka/streak-counter
Description: This is a basic streak counter - inspired by Duolingo - written in TypeScript and meant for the browser (uses `localStorage`).
Latest version: 0.0.3

# `@orlenka/streak-counter` - a basic streak counter

This is a basic streak counter - inspired by Duolingo - written in TypeScript and meant for the browser (uses `localStorage`).

## Install

```shell
yarn add @orlenka/streak-counter
```

## Usage

[![Edit streak-counter (ts-course) (forked)](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/s/streak-counter-ts-course-forked-70jrg4?fontsize=14&hidenavigation=1&theme=dark)

```javascript
import {streakCounter} from '@orlenka/streak-counter'

const today = new Date();
const streak = streakCounter(localStorage, today);

// streak returns an object:
// {
//    currentCount: 1, 
//    lastLoginDate: "11/11/2021",
//    startDate: "11/11/2021"
// }
```
npm package: @orliluq/matematicas
Description: Una calculadora simple implementada en JavaScript que permite realizar operaciones básicas.
Author: Orli Dun
Latest version: 1.0.2

# Calculadora JS

Una calculadora simple implementada en JavaScript que permite realizar operaciones básicas.

## Instalación

```bash
npm install matematicas
```

## Características

- Operaciones disponibles: `suma`, `resta`, `multiplicación`, `división`
- Código limpio y modular
- Listo para extenderse con interfaz web o CLI

## Instalación

Clona el repositorio:

```bash
git clone https://github.com/tu_usuario/calculadora-js.git
cd calculadora-js
```

# Pruebas rápidas
Edita `index.html` o usa consola del navegador:
```
<script src="calculadora.js"></script>
<script>
  console.log(sumar(2, 3)); // 5
  console.log(dividir(6, 2)); // 3
</script>
```
```
const { sumar, dividir } = require('matematicas');
console.log(sumar(2,3)); // 5
console.log(dividir(5,0)); // '💥'
```

# Estructura del Proyecto
```
matematicas/              
├── src/
│   ├── calculadora.js      # implementaciones de funciones
│   └── index.js            # punto de entrada del módulo
├── test/
│   └── calculadora.test.js # Pruebas automatizadas con Jest
├── package.json
├── README.md
└── LICENSE
```

# Futuras mejoras
- Agregar interfaz gráfica con HTML/CSS
- Crear pruebas automatizadas con Jest
- Convertir en módulo NPM

<img src="/assets/img.jpg" alt="calculadora" style="width: 100%; margin: 0 auto;"> 

<img src="/assets/test.jpg" alt="calculadora" style="width: 100%; margin: 0 auto;">
npm package: @orlov_vo/prettier-plugin-svelte
Description: Svelte plugin for prettier
Author: James Birtles
Latest version: 0.5.4
Deprecated: the package is merged to original prettier-plugin-svelte in 0.7.0 like new option 'svelte-strict-mode'

# Prettier for Svelte 3 components

Format your svelte components using prettier.

## Features

-   Format your html, css, and javascript using prettier
-   Format Svelte syntax, e.g. each loops, if statements, await blocks, etc.
-   Format the javascript expressions embedded in the svelte syntax
    -   e.g. expressions inside of `{}`, event bindings `on:click=""`, and more

## Different from [original](https://github.com/UnwrittenFun/prettier-plugin-svelte)

This fork:

-  Doesn't collapse non-closable tags like `<div></div>`
-  Have "true" order in components: scripts, template, styles
-  Generate valid attributes (example: `<div bind:value="{myValue}"></div>`)

## How to use

Install `@orlov_vo/prettier-plugin-svelte` as a dev dependency in your project.

```
npm install --save-dev @orlov_vo/prettier-plugin-svelte
```

Then format your code using prettier cli. You may need to add `--plugin-search-dir=.`

```
prettier --write --plugin-search-dir=. ./**/*.html
```

## Options

**`sort-order`** Sort order for scripts, html, and css. Defaults to `scripts-css-html`.

```
prettier --write --sort-order scripts-html-css ./**/*.svelte
```
npm package: @orlv/tiny-bytenode
Description: Bytenode
Latest version: 1.0.4

# @orlv/tiny-bytenode

Simplified version of Bytenode (https://github.com/bytenode/bytenode).

Includes webpack plugin.

```
npm i -D @orlv/tiny-bytenode
```

#### webpack config:

```
import TinyBytenodeWebpackPlugin from '@orlv/tiny-bytenode/webpack-plugin/index.js'

......

 plugins: [
    new TinyBytenodeWebpackPlugin({
      compileAsModule: true,
      compileForElectron: true,
      keepSource: false
      transformArrowFunctions: true,
      generateLoader: true
    })
]
```

- transformArrowFunctions - Compile arrow functions to ES5 functions. Solves the issue of crashes caused by arrow functions.

### Links:

- Bytenode: https://github.com/bytenode/bytenode
- Bytenode Webpack Plugin: https://github.com/herberttn/bytenode-webpack-plugin
npm package: @orlv/transform-arrow-functions-webpack-plugin
Description: Compile ES2015 arrow functions to ES5
Author: Oleg Orlov
Latest version: 1.1.0

@orlv/transform-arrow-functions-webpack-plugin
---

Compile arrow functions to ES5 functions.

Solves the issue of crashes caused by arrow functions in js compiled to bytecode by [Bytenode](https://github.com/bytenode/bytenode).

### Install
```shell
npm i -D @orlv/transform-arrow-functions-webpack-plugin
```

### Usage

**webpack.config.js**

```js
import TransformArrowFunctions from '@orlv/transform-arrow-functions-webpack-plugin'
import { BytenodeWebpackPlugin } from '@herberttn/bytenode-webpack-plugin'

module.exports = {
  // ...

  plugins: [
    new TransformArrowFunctions(),
    new BytenodeWebpackPlugin()
  ]
}
```

### Options
Name                | Type      | Default   |Description
----                | ----      | ----      | ----
transformClasses    | boolean   | false     | Convert classes to prototypes.

```
SyntaxError: unknown file: When using '@babel/plugin-transform-arrow-functions', it's not possible to compile `super.prop` in an arrow function without compiling classes.
Please add '@babel/plugin-transform-classes' to your Babel configuration.
```

#### Example
```js
new TransformArrowFunctions({ transformClasses: true })
```

### Links
- Bytenode: https://github.com/bytenode/bytenode
- Bytenode Webpack Plugin: https://github.com/herberttn/bytenode-webpack-plugin

### License

[MIT](./LICENSE)
npm package: @orm-bridge/core
Description: ORM-agnostic SQL query builder core - Multi-database support for Sequelize and Prisma
Latest version: 1.0.10

# @orm-bridge/core

**Core engine for ORM Bridge** - internal package containing ORM-agnostic SQL generation logic.

---

## ⚠️ Notice

This is an **internal package** used by ORM Bridge adapters. You should **not install this directly**.

Instead, install one of the adapter packages:

- **[@orm-bridge/sequelize](https://www.npmjs.com/package/@orm-bridge/sequelize)** - For Sequelize ORM
- **[@orm-bridge/prisma](https://www.npmjs.com/package/@orm-bridge/prisma)** - For Prisma ORM

---

## What's Inside

This package contains:

- **BaseSql** - Abstract base class for query building
- **Database-specific factories** - MySQL, PostgreSQL, MSSQL implementations
- **Search operators** - 26+ filter operators (eq, like, in, gt, etc.)
- **Pagination logic** - Database-agnostic pagination
- **Template engine** - Parameter style conversion

---

## Architecture

```
@orm-bridge/core (this package)
    ↓
    ├── @orm-bridge/sequelize → your app
    └── @orm-bridge/prisma → your app
```

---

## Documentation

See the main [ORM Bridge repository](https://github.com/brunosps/orm-bridge) for complete documentation.

---

## License

MIT
npm package: @orm-bridge/sequelize
Description: Sequelize adapter for ORM Bridge
Latest version: 1.0.10

# @orm-bridge/sequelize

**Sequelize adapter for ORM Bridge** - Build complex SQL queries with pagination, search, and filtering for MySQL, PostgreSQL, and MSSQL.

---

## 🚀 Installation

```bash
npm install @orm-bridge/sequelize sequelize
```

**Peer Dependencies:**
- `sequelize` >= 6.0.0

---

## ⚡ Quick Start

```typescript
import { Sequelize } from 'sequelize';
import { BaseSql, SequelizeExecutor } from '@orm-bridge/sequelize';

// 1. Setup Sequelize
const sequelize = new Sequelize('mysql://user:pass@localhost:3306/mydb');
const executor = new SequelizeExecutor(sequelize);

// 2. Create your query class
class UserQuery extends BaseSql {
  rawSQL() {
    return `
      SELECT id, name, email, created_at
      FROM users
      WHERE status = 'active'
    `;
  }

  searchColumns() {
    return {
      name: { op: 'i_cont', type: 'string' },
      email: { op: 'i_cont', type: 'string' }
    };
  }

  primaryKeyField() {
    return ['id'];
  }
}

// 3. Execute query with pagination
const result = await UserQuery.call(executor, {
  page: 1,
  perPage: 20,
  searchTerm: 'john'
});

console.log(result.meta);     // { page: 1, perPage: 20, totalRows: 45, totalPages: 3 }
console.log(result.records);  // [{ id: 1, name: 'John...', ... }]
```

---

## 📚 Features

✅ **Automatic pagination** - No manual LIMIT/OFFSET  
✅ **Global search** - Search across multiple columns  
✅ **Advanced filtering** - 26+ operators (eq, like, in, gt, etc.)  
✅ **Database detection** - Auto-detects MySQL, PostgreSQL, MSSQL from Sequelize dialect  
✅ **Composite keys** - Support for multi-column primary keys  
✅ **Type-safe** - Full TypeScript support  

---

## 🔍 Search Operators

```typescript
import { SearchOperator } from '@orm-bridge/sequelize';

// Exact match
{ status: { value: 'active', op: SearchOperator.eq, type: 'string' } }

// Contains (case-insensitive)
{ name: { value: 'john', op: SearchOperator.i_cont, type: 'string' } }

// Greater than
{ age: { value: 18, op: SearchOperator.gt, type: 'number' } }

// In list
{ role: { value: ['admin', 'user'], op: SearchOperator.in, type: 'string' } }

// Null check
{ deleted_at: { op: SearchOperator.null, type: 'date' } }
```

**Available operators:**  
`eq`, `not_eq`, `cont`, `i_cont`, `like`, `i_like`, `gt`, `gteq`, `lt`, `lteq`, `in`, `not_in`, `null`, `not_null`, `empty`, `not_empty`, `blank`, `present`, `start`, `end`, `true`, `false`, and more.

---

## 📖 Full Documentation

- [Quickstart Guide](https://github.com/brunosps/orm-bridge/blob/main/QUICKSTART.md)
- [Complete Examples](https://github.com/brunosps/orm-bridge/blob/main/EXAMPLES.md)
- [API Reference](https://github.com/brunosps/orm-bridge)

---

## 🔄 Prisma Version

Looking for Prisma support? Check out **[@orm-bridge/prisma](https://www.npmjs.com/package/@orm-bridge/prisma)**

---

## 📝 License

MIT
npm package: @ormojo/data
Description: Data modelling framework for ormojo.
Latest version: 0.1.2

# lightscript-minimal-node

A minimal skeleton for a LightScript application or library running in Node.

# Features

- `rollup`-powered build with `@oigroup/babel-preset-lightscript`
- Linting with `@oigroup/lightscript-eslint`
- Testing with Jest; tests can be written in LightScript.
- Code coverage with source mapping
- GitHub syntax highlighting in `.gitattributes`
- `.editorconfig` for LightScript whitespace mode

# VSCode

While [Visual Studio Code](https://code.visualstudio.com/) is not required to use this package, it has a lot of niceties for working on LightScript code, and comes highly recommended.

If you do use VSCode, installing the following extensions will greatly improve your experience:

- [LightScript syntax](https://marketplace.visualstudio.com/items?itemName=lightscript.lsc)
- [Babel ES2015+ syntax](https://marketplace.visualstudio.com/items?itemName=dzannotti.vscode-babel-coloring)
- [ESLint live linting](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint)

We also include some default workplace settings that will live-lint your code as you type in VSCode.

## Debugging

The VSCode debugger can be used to debug LightScript with source mapping support. We have included a runtime configuration to demonstrate this option. Use `npm run test:debug` from the CLI, then launch the VS Code debugger and attach it to the process.

# Commands

## Building

```
npm run build
```

## Linting

```
npm run lint
```

## Testing

```
npm test
```

- To add tests, add files ending with `.test.lsc` anywhere underneath the `tests` folder.

## Coverage

```
npm run coverage
```

- Coverage reports are written to the `coverage` directory.

# Notes

- The rollup build assumes that `src/index.lsc` is your only entry/export point. If you need multiple entry points you will need to edit the `rollup.config.js`.

- The `package.json` is set to `private`; change that if you wish to publish to NPM.

## Compiling with Babel

Use `npm run build:plain` to perform non-bundled builds with Babel instead of Rollup. You can also change the standard `build` script to call `build:plain` instead of `build:rollup`.

Please note that code coverage is not supported with plain builds at this time.
npm package: @ormojo/react-observe
Description: React components for monitoring observables.
Latest version: 1.0.1

# @ormojo/react-observe

React components that re-render in response to Observables emitting values.

## Components

### <Observe>

Props:

- `source` - an ES7 Observable

- `children` - a render prop whose first parameter will be the most recent emitted value.

- `pure` - Boolean, if true, renders only when the `source` changes or emits a value.
Don't use `pure` if your render prop is a function of props from the enclosing scope!

```jsx
<Observe source={myObservable}>{(value) ->
  <div>{value}</div>
}</Observe>
```

### <ObserveMany>

Props:

- `children` - a render prop whose first parameter will be the most recent emitted value.

- `pure` - Boolean, if true, renders only when the `source` changes or emits a value.
Don't use `pure` if your render prop is a function of props from the enclosing scope!

- All other props are expected to be ES7 Observables, which will be mapped in a key-value
fashion using `combineLatest` and the latest values will be passed to the render prop.

```jsx
<ObserveMany val1={observable1} val2={observable2}>{({val1, val2}) ->
  <div>{val1} {val2}</div>
}</Observe>
```
npm package: @ormu5/serverless-offline-sns
Description: Fork of serverless-offline-sns. Serverless plugin to run a local SNS server and call lambdas with events notifications, with fixes to support SQS subscriptions.
Author: Matthew James
Latest version: 0.76.1

# Fork Notes

This is a fork of https://github.com/mj1618/serverless-offline-sns/issues. Please see README there for usage.

This fork was created in order to make functional SNS/SQS subscriptions when running locally.

To use instead of default `serverless-offline-sns`, install this package to dev dependencies and replace 'serverless-offline-sns' in plugins section of `serverless.yml` with '@ormu5/serverless-offline-sns'.

Feel free to contribute feedback or pull requests. I don't have much time to maintain this on my own but with support I might be inclined.
npm package: @ornament-addon-kit/demo-addon
Description: Demo addon
Author: Ornament Team
Latest version: 1.0.3

# Ornament Demo Addon

Демонстрационное дополнение для storybook.

## Документация

Более подробно о создании дополнений можно почитать по ссылкам:

https://storybook.js.org/docs/addons

https://storybook.js.org/docs/addons/writing-addons

https://github.com/storybookjs/addon-kit/
npm package: @ornament-addon-kit/status-label
Description: Custom addon for Ornament design systems that displays the status label of a component in the storybook
Author: Ornament Team
Latest version: 1.0.4

# Ornament Addon Status Label

Пользовательское дополнение для дизайн системы дизайна Ornament, который отображает метку состояния компонента в историях.

## Установка пакета

Для установки пакета введите команду:

```sh
pnpm add -D @ornament-addon-kit/status-label
```

## Настройка дополнения

Для подключения дополнения укажите название `@ornament-addon-kit/status-label` в файле `.storybook/main.ts`:

```ts
const config = {
  // ...ваши настройки

  addons: [
    // ...другие дополнения

    '@ornament-addon-kit/status-label',
  ]
};

export default config;
```

## Использование дополнения 

Для использования дополнения укажите требуемые значения в параметрах истории:

```ts
// ...другие импорты

import { StatusLabelParameterType } from '@ornament-addon-kit/status-label';

const statusLabelParameters: StatusLabelParameterType = {
  status: 'deprecated',
  statusLang: 'en',
};

const meta: Meta<typeof Button> = {
  component: Button,
  title: 'Компоненты/Button',
  id: 'Components/Button',
  parameters: { ...statusLabelParameters }, // Укажите настройки в этом поле
};

// ...ваши истории
```

Доступные параметры можно посмотреть из типы `StatusLabelParameterType`.

Дополнение отобразит метку в панели `TOOLEXTRA`.

![Иллюстрация статуса](./docs/status-label.png)
npm package: @ornament-health/react-native-pdf-editor
Description: Ornament React Native PDF editor
Author: Ornament-Health
Latest version: 0.3.0

# react-native-pdf-editor

React Native PDF editor (iOS)

## Installation

```sh
npm install @ornament-health/react-native-pdf-editor
cd ios
pod install
```

## Usage
In order to start using RNPDFEditorView, you should create configuration for it with local link to document and some styling parameters. You can handle visibility of native toolbar, backgrounf color, line color and width from React Native side.  

```typescript
import { RNPDFEditorView } from "@ornament-health/react-native-pdf-editor";

// ...

const options = {
  fileName: source,
  isToolBarHidden: false,
  viewBackgroundColor: '#40a35f',
  lineColor: '#4287f5',
  lineWidth: 40,
  startWithEdit: true,
};

<PDFEditorView 
  ref={pdfRef}
  style={styles.pdfView}
  options={options}
  onSavePDF={handleSavePDF}
/> 
```
Saving option can return 'null' if there was errors at native side, otherwise it will return string contains local path to saved document. Note, that after every saving action document stores at apps Document Directory, so removing unnecessary local copies should be provided at React Native side.
  
```typescript
const handleSavePDF = (e: string | null) => {
  if (e === null) {
    console.log('got null value for url:', e);
  } else {
    console.log('got url:', e);
  }        
};
```

Native methods Scroll/Draw/Undo/Save can be accessed from React Native side by using ref.

```typescript
const pdfRef = useRef(null);

const onPressScroll = () => {  
  pdfRef.current?.scrollAction();
};

<PDFEditorView
  ref={pdfRef}
/>
```

## Contributing

See the [contributing guide](.github/CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.

## License

MIT
npm package: @ornament-ui/avatars
Description: A collection of avatars by Ornament-UI
Latest version: 1.0.0

<div>
  <p align="center">
    <img height="160" src="https://raw.githubusercontent.com/KamilEmeleev/ornament-ui/main/orn-avatars.png" alt="logo" />
  </p>
  <h1 align="center" class="text_align_center">@ornament-ui/avatars</h1>
  <p align="center">Коллекция аватарок</p>
</div>

## Витрина аватарок

Воспользуйтесь [витриной аватарок](https://ornament.akbars.digital/?path=/docs/расширения-аватарки--docs) для визуального представления содержимого пакета.

## Установка

В текущей директории проекта запустите одну из следующих команд:

```bash
# npm
npm install --save @ornament-ui/avatars

# yarn
yarn add @ornament-ui/avatars

# pnpm
pnpm add @ornament-ui/avatars
```

## Использование

```tsx
import React from 'react';

import bear from '@ornament-ui/avatars/bear.svg';

const Avatar = () => (
  <img src={bear} alt="Имя пользователя" width="64" height="64" />
);
```
npm package: @ornament-ui/fonts
Description: A collection of fonts by Ornament-UI
Latest version: 1.0.0

<div>
  <p align="center">
    <img height="160" src="https://raw.githubusercontent.com/KamilEmeleev/ornament-ui/main/orn-fonts.png" alt="logo" />
  </p>
  <h1 align="center" class="text_align_center">@ornament-ui/fonts</h1>
  <p align="center">Набор базовых шрифтов</p>
</div>

## Установка

В текущей директории проекта запустите одну из следующих команд:

```bash
# npm
npm install --save @ornament-ui/fonts

# yarn
yarn add @ornament-ui/fonts

# pnpm
pnpm add @ornament-ui/fonts
```

## Подключение

```bash
import '@ornament-ui/fonts';
```

## Применение

> Рекомендации к использованию шрифтов: «Rubrik New» — заголовки любого уровня, «Roboto» — типографический текст кроме заголовков.

```css
body {
  font-family: 'Roboto', sans-serif;
}

h1,
h2,
h3,
h4 {
  font-family: 'Rubrik New', sans-serif;
}
```

## Предзагрузка шрифтов

Для критически важных шрифтов рекомендуется использовать предварительную загрузку.

```html
<link
  rel="preload"
  href="/path/to/font/roboto-regular.woff2"
  as="font"
  type="font/woff2"
  crossorigin
/>
```

## Поддерживаемые переменные

| Weight | Fonts              |
| ------ | ------------------ |
| 400    | Roboto             |
| 500    | Roboto, Rubrik New |
| 700    | Rubrik New         |
npm package: @ornament-ui/icons
Description: A collection of icons by Ornament-UI
Latest version: 1.2.1

<div>
  <p align="center">
  <img height="160" src="https://raw.githubusercontent.com/KamilEmeleev/ornament-ui/main/orn-icons.png" alt="logo" />
  </p>
  <h1 align="center" class="text_align_center">@ornament-ui/icons</h1>
  <p align="center">Коллекция иконок</p>
</div>

## Витрина иконок

Воспользуйтесь [витриной иконок](https://ornament.akbars.digital/?path=/docs/расширения-иконки--docs) для визуального представления содержимого пакета.

## Установка

В текущей директории проекта запустите одну из следующих команд:

```
# npm
npm install --save @ornament-ui/icons

# yarn
yarn add @ornament-ui/icons

# pnpm
pnpm add @ornament-ui/icons
```

## Размер иконок

Размер иконки задается через свойство `size`.

Размер по умолчанию: `m`.

```tsx
import React from 'react';

import { SmileIcon } from '@ornament-ui/icons';

const Icon = () => <SmileIcon size="s" />;
```

Доступные размеры иконок:

| Название | Размер     |
| -------- | ---------- |
| s        | 16 х 16 px |
| m        | 24 х 24 px |

## Цвет иконок

```tsx
import React from 'react';

import { SmileMIcon } from '@ornament-ui/icons';

const Icon = () => <SmileMIcon color="#ECECEC" />;
```

## Процесс генерации иконок

- Дизайнер добавляет иконку в библиотеку [Figma](https://www.figma.com/file/OjUZkdOxAN62wQgb5v1K5v/Assets?node-id=7506%3A3358);
- Разработчик через [скрипт](https://ornament.akbars.digital/?path=/docs/документация-разработчикам-взаимодействие-с-figma--docs#figma) выгружает доступные иконки в пакет;
- После успешной генерации новых иконок, публикуется новая версии пакета.
npm package: @ornament-ui/kit
Description: Ornament-UI: React component library
Author: Kamil Emeleev
Latest version: 1.18.0

<div>
  <p align="center">
    <img height="160" src="https://raw.githubusercontent.com/KamilEmeleev/ornament-ui/main/orn-kit.png" alt="logo" />
  </p>
  <h1 align="center" class="text_align_center">@ornament-ui/kit</h1>
  <p align="center">Библиотека React-компонентов, для создания веб-интерфейсов</p>
</div>

## Установка

Установите библиотеку Ornament-UI с помощью одной из следующих команд:

```
# npm
npm install --save @ornament-ui/kit

# yarn
yarn add @ornament-ui/kit

# pnpm
pnpm add @ornament-ui/kit
```

## Использование

Разделы для знакомства с библиотекой:

- [Быстрый старт](https://ornament.akbars.digital/?path=/docs/документация-начать-работу--docs)
- [Дизайн-токены](https://ornament.akbars.digital/?path=/docs/основное-дизайн-токены--docs)
- [Обзор компонентов](https://ornament.akbars.digital/?path=/docs/документация-обзор--docs)
- [Внести свой вклад](https://ornament.akbars.digital/?path=/docs/документация-разработчикам-начать-разработку--docs)

## О нас

[Ak Bars Digital](https://akbars.digital/) – центр технологического развития Ак Барс Банка.

В центре проектируются и внедряются цифровые экосистемы для решения финансовых и повседневных задач Клиентов Банка.

Выстроен полный цикл разработки продуктов, включая этапы исследования прототипирования пользовательских интерфейсов, разработки программного обеспечения, продвижения готовых продуктов.

Сформировано порядка 80 продуктовых команд, работающих на гибких Agile-подходах в управлении проектами.

Создан IT-инкубатор для развития новых ФинТех стартапов на регулярной основе.
npm package: @ornament-ui/mobile
Description: Ornament-UI Mobile: React component library
Author: Ornament Team
Latest version: 0.0.54

<div>
  <!-- <p align="center">
    <img height="160" src="https://raw.githubusercontent.com/KamilEmeleev/ornament-ui/main/orn-kit.png" />
  </p> -->

  <h1 align="center">Ornament-UI Mobile</h1>

  <p align="center">Ornament-UI Mobile - это библиотека для реализации веб-интерфейсов в WebView, разработанная согласно правилам и принципам дизайн-системы Ornament. Наша основная задача – создать систему для наших продуктов, которая поможет поддержать их целостность пользовательского опыта и оптимизировать ресурсы дизайна и разработки.</p>
</div>
npm package: @orncif/ckeditor-nuxt
Description: CKEditor 5 editor for nuxt apps. The component includes all free available plugins (except CKFinder, instead simple upload adapter used)
Author: orncif
Latest version: 2.0.0

# ckeditor-nuxt
CKEditor 5 editor for nuxt apps. The component includes all free available plugins (except CKFinder, instead simple upload adapter used)

## Requirements
```
yarn add nuxt
npm i nuxt
```

## Component integration
```
yarn add @blowstack/ckeditor-nuxt
npm install --save @blowstack/ckeditor-nuxt
```

## List of included plugins
* Alignment,
* AutoImage,
* Autoformat,
* Autolink,
* BlockQuote,
* Bold,
* CloudServices,
* Code,
* CodeBlock,
* Essentials,
* FontBackgroundColor,
* FontColor,
* FontFamily,
* FontSize,
* Heading,
* Highlight,
* HorizontalLine,
* Image,
* ImageCaption,
* ImageInsert,
* ImageResize,
* ImageStyle,
* ImageToolbar,
* ImageUpload,
* Indent,
* IndentBlock,
* Italic,
* Link,
* LinkImage,
* List,
* ListStyle,
* MathType,
* MediaEmbed,
* MediaEmbedToolbar,
* PageBreak,
* Paragraph,
* PasteFromOffice,
* RemoveFormat,
* SimpleUploadAdapter,
* SpecialCharacters,
* SpecialCharactersArrows,
* SpecialCharactersCurrency,
* SpecialCharactersEssentials,
* SpecialCharactersLatin,
* SpecialCharactersMathematical,
* SpecialCharactersText,
* Strikethrough,
* Subscript,
* Superscript,
* Table,
* TableCellProperties,
* TableProperties,
* TableToolbar,
* TextTransformation,
* Title,
* TodoList,
* Underline,
* WordCount

## Usage
```
<template>
  <client-only placeholder="loading...">
    <ckeditor-nuxt v-model="contentHolder" :config="editorConfig"  />
  </client-only>
</template>

<script>
export default {
  components: {
    'ckeditor-nuxt': () => { if (process.client) { return import('@blowstack/ckeditor-nuxt') } },
  },
  data() {
    return {
      editorConfig: {
        simpleUpload: {
          uploadUrl: 'path_to_image_controller',
          headers: {
            'Authorization': 'optional_token'
          }
        }
      },
      contentHolder: ""
    }
  }
}
</script>
```
## Customization

To make customization use editorConfig object.
It works the same way as the default ckeditor 5.
More info at https://ckeditor.com/docs/ckeditor5/latest/api/module_core_editor_editorconfig-EditorConfig.html

For example if you want to disable Title plugin:

```

editorConfig: {
    removePlugins: ['Title'],
}
```

You can also change the behaviour of any plugin. For the Title plugin you can change for example the placeholder:

```

editorConfig: {
    title: {
        placeholder: 'h1'
    }
}
```
npm package: @ornery/next.js
Description: The React Framework
Latest version: 10.0.5-canary.11

<p align="center">
  <a href="https://nextjs.org">
    <img src="https://assets.vercel.com/image/upload/v1607554385/repositories/next-js/next-logo.png" height="128">
    <h1 align="center">Next.js</h1>
  </a>
</p>

<p align="center">
  <a aria-label="Vercel logo" href="https://vercel.com">
    <img src="https://img.shields.io/badge/MADE%20BY%20Vercel-000000.svg?style=for-the-badge&logo=Vercel&labelColor=000">
  </a>
  <a aria-label="NPM version" href="https://www.npmjs.com/package/next">
    <img alt="" src="https://img.shields.io/npm/v/next.svg?style=for-the-badge&labelColor=000000">
  </a>
  <a aria-label="License" href="https://github.com/vercel/next.js/blob/canary/license.md">
    <img alt="" src="https://img.shields.io/npm/l/next.svg?style=for-the-badge&labelColor=000000">
  </a>
  <a aria-label="Join the community on GitHub" href="https://github.com/vercel/next.js/discussions">
    <img alt="" src="https://img.shields.io/badge/Join%20the%20community-blueviolet.svg?style=for-the-badge&logo=Next.js&labelColor=000000&logoWidth=20">
  </a>
</p>

## Getting Started

Visit <a aria-label="next.js learn" href="https://nextjs.org/learn">https://nextjs.org/learn</a> to get started with Next.js.

## Documentation

Visit [https://nextjs.org/docs](https://nextjs.org/docs) to view the full documentation.

## Who is using Next.js?

Next.js is used by the world's leading companies. Check out the [Next.js Showcase](https://nextjs.org/showcase) to learn more.

## Community

The Next.js community can be found on [GitHub Discussions](https://github.com/vercel/next.js/discussions), where you can ask questions, voice ideas, and share your projects.

To chat with other community members you can join the [Next.js Discord](https://nextjs.org/discord).

Our [Code of Conduct](https://github.com/vercel/next.js/blob/canary/CODE_OF_CONDUCT.md) applies to all Next.js community channels.

## Contributing

Please see our [contributing.md](/contributing.md).

## Authors

- Arunoda Susiripala ([@arunoda](https://twitter.com/arunoda)) – [Vercel](https://vercel.com/about/arunoda-zeit)
- Tim Neutkens ([@timneutkens](https://twitter.com/timneutkens)) – [Vercel](https://vercel.com/about/timneutkens)
- Naoyuki Kanezawa ([@nkzawa](https://twitter.com/nkzawa)) – [Vercel](https://vercel.com/about/nkzawa)
- Tony Kovanen ([@tonykovanen](https://twitter.com/tonykovanen)) – [Vercel](https://vercel.com)
- Guillermo Rauch ([@rauchg](https://twitter.com/rauchg)) – [Vercel](https://vercel.com/about/rauchg)
- Dan Zajdband ([@impronunciable](https://twitter.com/impronunciable)) – Knight-Mozilla / Coral Project
npm package: @ornery/react-web-components
Description: Wrappers and components to help with react support
Author: timothyswt@gmail.com
Latest version: 0.1.0

# design-system react-support
A wrapper to handle custom events within any custom elements you want to use within react.
It will also destory the events on unmount for you.

## Installation

### npm
```bash
npm i `@ornery/react-web-components` --save
```

### yarn
```bash
yarn add `@ornery/react-web-components`
```

### React Component
```jsx
import WebComponentWrapper from `@ornery/react-web-components`

export const wrapped = () => (
<WebComponentWrapper tag="my-element" onMyCustomEvent={()=> console.log('I haz cuztem events!')} />
)
```

## Attributes

| Attribute | Type     | Description                                      |
|-----------|----------|--------------------------------------------------|
| `on(.*)`  | `Func`   | (.*) is the event to listen to camelCased. It is converted to kebab-case. <br />If your CustomEvent's name is `custom-event-name` you need to set the prop as onCustomEventName in react. |
| `tag`     | `String` | tag to render                                    |

## Properties

| Property     |
|--------------|
| `elementRef` |

## Methods

| Method                 | Type       |
|------------------------|------------|
| `componentDidMount`    | `(): void` |
| `componentWillUnmount` | `(): void` |
npm package: @ornery/render-html
Description: ## Installation
Author: timothyswt@gmail.com
Latest version: 0.1.8

# render-html

## Installation

### npm
```bash
npm i `@ornery/render-html` --save
```

### yarn
```bash
yarn add `@ornery/render-html`
```

## Examples

```javascript
import '@ornery/render-html'
```

```jsx
### JSX or HTML
export const RemoteRender = () => (
  <render-html href="/samples/snippet.html" placeholder="Your Email Address"></render-html>
)

export const RenderAttribute = () => (
  <render-html placeholder="Do something else" html="<p> I am some simple html content to be passed as either <ul><li>an 'html' attribute </li><li>as the body</li></ul></p> ${this.placeholder}"></render-html>
)

const interpolation = 'How did i get here? ${this.placeholder}'
export const RenderBody = () => (
  <render-html placeholder="I'm changing via attributes" >
    <div> I am some simple html content to be passed as either <ul><li>an 'html' attribute </li><li>as the body</li></ul></div>
    <div>{interpolation}</div>
  </render-html>
)
```
npm package: @ornikar/apollo-link-timeout
Description: Abort requests that take longer than a specified timeout period
Author: Dustin Callaway
Latest version: 1.4.1
Deprecated: Use apollo-link-timeout 2.x instead

# apollo-link-timeout

An [Apollo Link](https://www.apollographql.com/docs/link/) that aborts requests that aren't completed within a specified timeout period. Note that timeouts are enforced for query and mutation operations only (not subscriptions).

## Installation
```
npm install apollo-link-timeout
```
or
```
yarn add apollo-link-timeout
```

## Usage
```
import ApolloLinkTimeout from 'apollo-link-timeout';
import { createHttpLink } from 'apollo-link-http';
import { ApolloClient } from 'apollo-client';

...

const timeoutLink = new ApolloLinkTimeout(10000); // 10 second timeout

const httpLink = createHttpLink({ uri: "/graphql" });

const timeoutHttpLink = timeoutLink.concat(httpLink);

const apolloClient = new ApolloClient({ link: timeoutHttpLink });

// use timeout-enabled Apollo client...

// Override timeout from any query 
<Query
 query={SOME_QUERY}
 variables={{
    someVar1: "foo",
    someVar2: "bar",
   }}
  context={{ timeout: 3000 }}
>
// ...
```

See [Apollo documentation](https://www.apollographql.com/client) for information on using the Apollo client.