open-index/open-npm huggingface dataset:
npm package: @resmio/rollico
Description: A basic style guide for resmio projects
Author: developers@resmio.com
Latest version: 3.0.0

# rollico
resmio base styles

This is just a proof of concept to see how it could work.

The idea is to have two files here that we can publish in npm and import in our
apps:
- **rollico.css** contains our default styles for standard html elements (also
  includes normalizer.css)
- **variables.js** extracted from rollico.css (or to be more exact from their
  source files) contains colors, spacing, typography... variables that we can
  reuse later in our components

We can later in our apps import 'rollico.css' and in our components just
variables.js, we can also use rollico.css during components development to see
wich css attributes we need to override locally in a component.

I'm just putting manually build files there to see if it works, but later we
want to make this compile rollico.css from several files and auto extract the
variable values into variables.js

-TO DO: Add note about `npm install -g commitizen`
https://github.com/angular/angular.js/blob/master/CONTRIBUTING.md#-git-commit-guidelines
npm package: @resms/sdk
Description: Node.js library for ReSMS API
Latest version: 0.8.1

# ReSMS SDK for Node.js

Node.js SDK for ReSMS, a simple and powerful SMS API.

## Installation

```bash
npm install @resms/sdk
# or
bun add @resms/sdk
# or
yarn add @resms/sdk
```

## Setup

You need to get an API key on [ReSMS Dashboard](https://resms.dev/dashboard).

## Usage

Send you can send your SMS:

```ts
const resms = new ReSMS("re_123");
const response = await resms.sms.send({
    to: "+33123456789",
    message: "Welcome to ReSMS!",
    senderId: "ReSMS",
});

console.log(response);
```

## Documentation

The full documentation is available at [https://docs.resms.dev](https://docs.resms.dev/).

## License

This project is licensed under the MIT License.

## Note

This is a simple SDK for ReSMS. More features and improvements will be added in the future. If you have any suggestions or issues, please open an issue on GitHub.
npm package: @resoc/create-img
Description: Create an image based on a Resoc image template
Author: Philippe Bernard
Latest version: 0.9.1

# @resoc/create-img

Use this package to turn a template and parameter values to an image.

Install:

```bash
npm install @resoc/create-img
```

Then, create an image:

```javascript
createImage(
  'path/to/resoc.manifest.json',
  {
    title: "A picture is worth a thousand words",
    textColor: "#ffffff"
  },
  {
    width: 1200,
    height: 630
  },
  'path/to/output.jpg'
);
```

## Configure Puppeteer

Puppeteer is used under the hood to generate images. You need to configure it depending on your environment.

### Most environments

In most environments, Puppeteer can be used directly. All you need is to install it:

```bash
npm install puppeteer
```

Resoc will just find it and use it.

### AWS Lambda & Netlify

Due to tight memory constraints, certain environments cannot use Puppeteer as is.

Install:

```bash
npm install puppeteer-core chrome-aws-lambda
```

Then, instanciate the browser yourself:

```javascript
const chromium = require('chrome-aws-lambda');

const browser = await chromium.puppeteer.launch({
  executablePath: await chromium.executablePath,
  args: chromium.args,
  headless: chromium.headless
});

createImage(
  'path/to/resoc.manifest.json',
  {
    title: "A picture is worth a thousand words",
    textColor: "#ffffff"
  },
  { width: 1200, height: 630 },
  'path/to/output.jpg',
  { browser }
);
```
npm package: @resoc/create-img-core
Description: Create an image based on a Resoc image template
Author: Philippe Bernard
Latest version: 0.9.1

# @resoc/create-img-core

Use this package to turn a template and parameter values to an image.

Install:

```bash
npm install @resoc/create-img-core
```

Then, create an image:

```javascript
createImage(
  'path/to/resoc.manifest.json',
  {
    title: "A picture is worth a thousand words",
    textColor: "#ffffff"
  },
  {
    width: 1200,
    height: 630
  },
  'path/to/output.jpg'
);
```

## Configure Puppeteer

Puppeteer is used under the hood to generate images. You need to configure it depending on your environment.

### Most environments

In most environments, Puppeteer can be used directly. All you need is to install it:

```bash
npm install puppeteer
```

Resoc will just find it and use it.

### AWS Lambda & Netlify

Due to tight memory constraints, certain environments cannot use Puppeteer as is.

Install:

```bash
npm install puppeteer-core chrome-aws-lambda
```

Then, instanciate the browser yourself:

```javascript
const chromium = require('chrome-aws-lambda');

const browser = await chromium.puppeteer.launch({
  executablePath: await chromium.executablePath,
  args: chromium.args,
  headless: chromium.headless
});

createImage(
  'path/to/resoc.manifest.json',
  {
    title: "A picture is worth a thousand words",
    textColor: "#ffffff"
  },
  { width: 1200, height: 630 },
  'path/to/output.jpg',
  { browser }
);
```
npm package: @resoc/img-data
Description: Manage image data
Author: Philippe Bernard
Latest version: 0.9.1

# @resoc/create-img

Use this package to turn a template and parameter values to an image.

Install:

```bash
npm install @resoc/create-img
```

Then, create an image:

```javascript
createImage(
  'path/to/resoc.manifest.json',
  {
    title: "A picture is worth a thousand words",
    textColor: "#ffffff"
  },
  {
    width: 1200,
    height: 630
  },
  'path/to/output.jpg'
);
```

## Configure Puppeteer

Puppeteer is used under the hood to generate images. You need to configure it depending on your environment.

### Most environments

In most environments, Puppeteer can be used directly. All you need is to install it:

```bash
npm install puppeteer
```

Resoc will just find it and use it.

### AWS Lambda & Netlify

Due to tight memory constraints, certain environments cannot use Puppeteer as is.

Install:

```bash
npm install puppeteer-core chrome-aws-lambda
```

Then, instanciate the browser yourself:

```javascript
const chromium = require('chrome-aws-lambda');

const browser = await chromium.puppeteer.launch({
  executablePath: await chromium.executablePath,
  args: chromium.args,
  headless: chromium.headless
});

createImage(
  'path/to/resoc.manifest.json',
  {
    title: "A picture is worth a thousand words",
    textColor: "#ffffff"
  },
  { width: 1200, height: 630 },
  'path/to/output.jpg',
  { browser }
);
```
npm package: @resolid/cache
Description: Type-safe Async Cache for TypeScript
Author: Huijie Wei
Latest version: 1.0.1

# Type-safe Async Cache for TypeScript

![GitHub License](https://img.shields.io/github/license/resolid/framework)
![NPM Version](https://img.shields.io/npm/v/%40resolid/cache)

<b>[Documentation](https://www.resolid.tech/docs/cache)</b> | [Framework Bundle](https://github.com/resolid/framework)

A fully-typed, flexible cache system for modern TypeScript projects.
Supports single and batch operations, optional TTL, and pluggable storage backends.
Designed for libraries, frameworks, and applications needing predictable async caching.

## Feature

- Fully typed with TypeScript — no `any`.
- Supports get/set/del/clear operations.
- Supports batch operations: getMultiple, setMultiple, delMultiple.
- Optional TTL for automatic expiration.
- Pluggable store backend (default is `nullCache`).
- Detects existence of keys via `has`.
- Handles disposal of resources via `dispose`.

## Installation

```shell
pnpm add @resolid/cache
# or
npm install @resolid/cache
# or
yarn add @resolid/cache
# or
bun add @resolid/cache
```

## Usage

```js
import { Cacher } from "@resolid/cache";

const cache = new Cacher({ defaultTtl: 1000 });

// Single set/get
await cache.set("foo", { a: 1 });
const value = await cache.get("foo"); // -> { a: 1 }

// Check existence
const exists = await cache.has("foo"); // -> true

// Batch set/get
await cache.setMultiple({ key1: 1, key2: 2 });
const values = await cache.getMultiple(["key1", "key2"]); // -> [1, 2]

// Delete
await cache.del("foo");
await cache.delMultiple(["key1", "key2"]);

// Clear all
await cache.clear();

// Dispose store if necessary
await cache.dispose();
```

## Options

```ts
export interface CacheOptions {
  store?: CacheStore;
  defaultTtl?: number;
}
```

## Store Interface

Your custom store should implement `CacheStore`:

```ts
export interface CacheStore {
  get(key: string): Promise<string | undefined>;
  set(key: string, value: string, ttl?: number): Promise<boolean>;
  del(key: string): Promise<boolean>;
  clear(): Promise<boolean>;

  getMultiple?(keys: string[]): Promise<(string | undefined)[]>;
  setMultiple?(values: Record<string, string>, ttl?: number): Promise<boolean>;
  delMultiple?(keys: string[]): Promise<boolean>;
  has?(key: string): Promise<boolean>;
  dispose?(): Promise<void> | void;
}
```

## License

MIT License (MIT). Please see [LICENSE](./LICENSE) for more information.
npm package: @resolid/cache-file
Description: File Cache store for @resolid/cache
Author: Huijie Wei
Latest version: 1.0.1

# File Cache store for @resolid/cache

![GitHub License](https://img.shields.io/github/license/resolid/framework)
![NPM Version](https://img.shields.io/npm/v/%40resolid/cache-file)

<b>[Documentation](https://www.resolid.tech/docs/cache)</b> | [Framework Bundle](https://github.com/resolid/framework)

A simple file-based cache implementation for Node.js with TTL support and concurrency-safe locks.

## Installation

```shell
pnpm add @resolid/cache @resolid/cache-file
# or
npm install @resolid/cache @resolid/cache-file
# or
yarn add @resolid/cache @resolid/cache-file
# or
bun add @resolid/cache @resolid/cache-file
```

## Usage

```ts
import { Cacher } from "@resolid/cache";
import { FileCache } from "@resolid/cache";

const cache = new Cacher({ store: new FileCache("./.tmp/cache"), defaultTtl: 1000 });
```

## License

MIT License (MIT). Please see [LICENSE](./LICENSE) for more information.
npm package: @resolid/cache-manager-sqlite
Description: A new SQLite store for cache-manager
Author: Huijie Wei
Latest version: 5.1.6

# SQLite store for cache manager

A new SQLite cache store for [cache-manager](https://github.com/BryanDonovan/node-cache-manager).

## Featuring:

- using [better-sqlite3](https://github.com/WiseLibs/better-sqlite3)
- 100% test coverage and production ready
- Optimized `mset`/`mget` support
- ESM only

## Installation

```
npm i @resolid/cache-manager-sqlite
```

## Requirements

- SQLite 3 with [better-sqlite3](https://github.com/WiseLibs/better-sqlite3)
- Node 18+

## Usage

```js
import { sqliteStore } from '@resolid/cache-manager-sqlite';
import cacheManager,{ createCache } from "cache-manager";
import { join } from 'node:path';

// SQLite :memory: cache store
const memStoreCache = await cacheManager.caching(sqliteStore({cacheTableName: 'caches'}));

// On disk cache on caches table
const sqliteStoreCache = await cacheManager.caching(sqliteStore({sqliteFile: join(process.cwd(), 'cache.sqlite3'), cacheTableName: 'caches'}));

// SQLite :memory: cache store sync version
const memStoreCache = createCache(sqliteStore({cacheTableName: 'caches'}));

// On disk cache on caches table sync version
const sqliteStoreCache = createCache(sqliteStore({sqliteFile: join(process.cwd(), 'cache.sqlite3'), cacheTableName: 'caches'}))

```

## License

[MIT](./LICENSE).

## Thanks

Thanks to JetBrains for the [OSS development license](https://jb.gg/OpenSourceSupport).

![JetBrain](.github/assets/jetbrain-logo.svg)
npm package: @resolid/config
Description: Oxlint and Typescript config
Author: Huijie Wei
Latest version: 5.3.7

# @resolid/config

Resolid 通用配置, 包含了 `TypeScript`, `Oxlint` 的基础配置

## 安装

```bash
pnpm add -D @resolid/config oxlint oxfmt oxlint-tsgolint typescript
```

## TypeScript 配置

增加下面内容到 `tsconfig.json`

### 普通项目

```json
{
  "extends": "@resolid/config/tsconfig/base.json"
}
```

### Node 项目

```json
{
  "extends": "@resolid/config/tsconfig/node.json"
}
```

### React 项目

```json
{
  "extends": "@resolid/config/tsconfig/react.json"
}
```

### 库项目 (extends 多个项目类型,库项目需放在最后)

```json
{
  "extends": "@resolid/config/tsconfig/lib.json"
}
```

## Oxlint 配置

### Javascript Lint 配置

```js
// oxlint.config.ts
import { defineConfig } from "oxlint";
import javascriptConfig from "@resolid/config/oxlint/javascript";

export default defineConfig({
  extends: [javascriptConfig],
});
```

### TypeScript Lint 配置

```js
// oxlint.config.ts
import { defineConfig } from "oxlint";
import typescriptConfig from "@resolid/config/oxlint/typescript";

export default defineConfig({
  extends: [typescriptConfig],
});
```

### React Lint 配置

由于 Oxlint 配置解析器的限制，目前你必须直接安装所需的 JS 插件

```shell
pnpm add -D eslint-plugin-react-hooks eslint-plugin-react-you-might-not-need-an-effect
```

```js
// oxlint.config.ts
import { defineConfig } from "oxlint";
import reactConfig from "@resolid/config/oxlint/react";

export default defineConfig({
  extends: [reactConfig],
});
```

### 环境 Lint 设置

```js
// oxlint.config.ts
import { defineConfig } from "oxlint";
// 浏览器环境
import browserConfig from "@resolid/config/oxlint/browser";
// Node 环境
import nodeConfig from "@resolid/config/oxlint/node";

export default defineConfig({
  extends: [browserConfig, nodeConfig],
});
```

## Oxfmt 配置

```js
import { oxfmtConfig } from "@resolid/config/oxfmt";

export default oxfmtConfig({});
```
npm package: @resolid/event
Description: Lightweight, Typed Event System for TypeScript
Author: Huijie Wei
Latest version: 0.2.2

# Lightweight, Typed Event System for TypeScript

![GitHub License](https://img.shields.io/github/license/resolid/framework)
![NPM Version](https://img.shields.io/npm/v/%40resolid/event)

<b>[Documentation](https://www.resolid.tech/docs/event)</b> | [Framework Bundle](https://github.com/resolid/framework)

A lightweight, fully typed event emitter for modern TypeScript projects.
Provides a clean API, async emission, and zero dependencies — perfect for libraries and frameworks.

## Feature

- Fully typed with TypeScript, no any.
- Provides simple `on`, `off`, `once`, and `emit` APIs.
- Supports async emission via `emitAsync`.
- Removes listeners automatically for `once` handlers.
- Zero dependencies and minimal footprint.

## Installation

```shell
pnpm add @resolid/event
# or
npm install @resolid/event
# or
yarn add @resolid/event
# or
bun add @resolid/event
```

## Usage

### Basic

```js
import { Emitter } from "@resolid/event";

const emitter = new Emitter();

emitter.on("hello", (name: string) => {
  console.log(`Hello, ${name}!`);
});

emitter.emit("hello", "World"); // -> "Hello, World!"
```

### Once Listener

```js
import { Emitter } from "@resolid/event";

const emitter = Emitter();

emitter.once("ready", (msg: string) => {
  console.log(msg);
});

emitter.emit("ready", "First call");  // -> "First call"
emitter.emit("ready", "Second call"); // won't trigger again
```

### Async Emission

```js
import { Emitter } from "your-package-name";

const emitter = Emitter();

emitter.on("done", () => {
  console.log("Event handled (after all sync code)");
});

console.log("Before emitAsync");

emitter.emitAsync("done");

console.log("After emitAsync");

// output
// Before emitAsync
// After emitAsync
// Event handled (after all sync code)
```

## License

MIT License (MIT). Please see [LICENSE](./LICENSE) for more information.
npm package: @resolid/flex-routes
Description: React Router flex file-system routes
Author: Huijie Wei
Latest version: 1.6.0

# @resolid/flex-routes

[English](README.md)

React Router v7 现在使用配置路由, 所以我开发了这个基于文件系统的路由.

## 安装

```
npm install -D @resolid/flex-routes
```

## 配置

编辑 `app/routes.ts` 文件

```ts
// app/routes.ts
import type { RouteConfig } from "@react-router/dev/routes";
import { flexRoutes } from "@resolid/flex-routes";

export default flexRoutes() satisfies RouteConfig;
```

## 规则

- 路由是使用文件夹定义和嵌套的, 与在 nginx 服务器上布局 HTML 文件的方式非常相似
- `_layout` 文件包装了下游的所有路由, 这些需要一个 `<Outlet />` 来渲染子路由
- `_index` 文件是文件夹的默认文件, 例如：`/users/_index.tsx` 将匹配 `/users`
- 变量在文件路径中使用 `$` 表示, 例如: `/users/$id/edit.tsx` 将匹配 `/users/123/edit`
- 将路线段括在括号中将使该段成为可选, 例如: `/($lang)/categories.tsx` 将匹配 `/categories`, `/zh/categories`
- 可以使用 `[]` 对路由约定的特殊字符进行转义, 例如: `/make-[$$$]-fast-online.tsx` 将匹配 `/make-$$$-fast-online`
- 以 `_` 为前缀的文件和文件夹变得不可见, 从而允许在不影响路由路径的情况下进行文件夹组织, 例如:
  `/_legal-pages/privacy-policy.tsx` 将匹配 `/privacy-policy`
- `$.tsx` 泼溅路由将匹配 URL 的其余部分, 包括斜杠, 比如 `/files/$.tsx` 将匹配 `/files`, `/files/one`, `/files/one/two`
npm package: @resolid/keyv-sqlite
Description: A new SQLite storage adapter for Keyv.
Author: Huijie Wei
Latest version: 5.0.1

# SQLite store for keyv

A new SQLite cache store for [keyv](https://github.com/jaredwray/keyv).

## Featuring:

- using [better-sqlite3](https://github.com/WiseLibs/better-sqlite3)
- 100% test coverage and production ready

## Installation

```
npm i @resolid/keyv-sqlite
```

## Requirements

- SQLite 3 with [better-sqlite3](https://github.com/WiseLibs/better-sqlite3)
- Node 18+

## Usage

```js
import { KeyvSqlite } from '@resolid/keyv-sqlite';
import Keyv from "keyv";
import { join } from 'node:path';

// SQLite :memory: cache store
const keyv = new Keyv(new KeyvSqlite());

// On disk cache on caches table
const keyv = new Keyv(new KeyvSqlite({uri: join(process.cwd(), 'cache.sqlite3')}));
```

## License

[MIT](./LICENSE).

## Thanks

Thanks to JetBrains for the [OSS development license](https://jb.gg/OpenSourceSupport).

![JetBrain](.github/assets/jetbrain-logo.svg)
npm package: @resolid/react-ui
Description: A React design system built with Tailwind CSS, offering ready-to-use components for consistent UI.
Author: Huijie Wei
Latest version: 0.2.3

# Resolid React UI

Resolid React UI 是 React 的开源设计系统。使用 React 和 Tailwind CSS 构建。它提供了一组即用型组件，用于构建具有一致外观的 Web 应用程序。

## Install

```bash
pnpm add @resolid/react-ui

npm install @resolid/react-ui

yarn add @resolid/react-ui

bun add @resolid/react-ui
```

## Document

Visit [ui.resolid.tech](https://ui.resolid.tech).

## License

MIT License (MIT). Please see [LICENSE](./LICENSE) for more information.
npm package: @resolritter/tsc-files
Description: A tiny tool to run tsc on specific files without ignoring tsconfig.json
Latest version: 1.1.4

# tsc-files

A tiny tool to run `tsc` on specific files without ignoring `tsconfig.json`.

## Installation

```sh
npm i -D tsc-files
```

```sh
yarn add -D tsc-files
```

## Why

I wanted to type-check **only the staged files** with [lint-staged](https://github.com/okonet/lint-staged).

Unfortunately passing specific files like `tsc --noEmit file1.ts file2.ts` will cause TypeScript to simply ignore your `tsconfig.json`.

There's already an open issue in the TypeScript repo to support this use case — you may want to give a 👍 there: https://github.com/microsoft/TypeScript/issues/27379

## Usage

With lint-staged:

```json
{
  "lint-staged": {
    "**/*.ts": "tsc-files --noEmit"
  }
}
```

## How it works

For the most part, it just forwards all arguments to `tsc` with one exception: the specified files will not be forwarded — instead, they will be put at the `files` property of a temporary config that will be generated next to your original `tsconfig.json`. Other than that, just read `tsc --help`.

## License

Released under the [MIT License](./LICENSE.md).
npm package: @resolution/atlassian-api-common
Description: Shared code across different implementations of Atlassian API Clients.
Author: Marat Dulin
Latest version: 0.16.8

# atlassian-api-common

This package contains common code for Atlassian OpenAPI-based clients.

It is not intended to be used directly, but rather as a dependency of other Atlassian OpenAPI-based clients.


## License

This repository is licensed under the [MIT License](./LICENSE.md).
npm package: @resolution/eslint-config
Description: Resolution's eslint config for Forge apps
Author: Tobias Theobald
Latest version: 5.0.0

# Resolution ESLint Config

Adds our internal ESLint config, which integrates prettier, SonarJS and supports Typescript.

### Prerequisites

You need to already have a `tsconfig.json` file that fits your needs.

### How to use

First, install the config and the plugins:

```bash
npm add --save-dev @resolution/eslint-config @resolution/prettier-config eslint prettier typescript
# OR
yarn add -D @resolution/eslint-config @resolution/prettier-config eslint prettier typescript
```

Then, add the following section to your `package.json`:

```json
{
 "prettier": "@resolution/prettier-config"
}
```

and create a `.eslintrc.js`:

```js
module.exports = {
    "extends": "@resolution/eslint-config/profile/react",
    "parserOptions": { "tsconfigRootDir": __dirname }
}
```

### Profiles

We offer a couple of profiles you can use at the end of the `extends` string:

* `base`: Anything Typescript
* `react`: Typescript + React
npm package: @resolution/organizations-api-client
Description: Atlassian Organizations API Client based on OpenAPI Schema from Atlassian.
Author: Marat Dulin
Latest version: 0.16.8

# Atlassian Organizations API Client

TypeScript/JavaScript client for the Atlassian Organizations API, generated from the Atlassian OpenAPI schema.

## Installation

```bash
npm install @resolution/organizations-api-client
```

or

```bash
yarn add @resolution/organizations-api-client
```

## Usage

```typescript
import { OrganizationsApiClient } from '@resolution/organizations-api-client';

// Initialize the client with your API key
const organizationsClient = new OrganizationsApiClient({
  apiKey: 'your-api-key-here'
});

// Example: Get organizations
async function getOrganizations() {
  try {
    const response = await organizationsClient.orgs.getOrgs();
    console.log('Organizations:', response.data);
  } catch (error) {
    console.error('Error fetching organizations:', error);
  }
}
```

## Authentication

This client only supports API key authentication. You need to provide an API key when initializing the client:

```typescript
const client = new OrganizationsApiClient({
  apiKey: 'your-api-key-here'
});
```

## Available Services

The client provides access to the following services:

- `directory` - Directory management
- `domains` - Domain management
- `events` - Event management
- `groups` - Group management
- `orgs` - Organization management
- `policies` - Policy management
- `users` - User management
- `validate` - Validation
- `workspaces` - Workspace management

## Error Handling

The client uses the `ApiError` class for error handling:

```typescript
import { OrganizationsApiClient, ApiError } from '@resolution/organizations-api-client';

const organizationsClient = new OrganizationsApiClient({
  apiKey: 'your-api-key-here'
});

try {
  await organizationsClient.orgs.getOrgs();
} catch (error) {
  if (error instanceof ApiError) {
    console.error('API Error:', error.message);
    console.error('Status:', error.statusCode);
    console.error('Details:', error.details);
  } else {
    console.error('Unknown error:', error);
  }
}
```

## Advanced Configuration

You can customize client behavior with additional options:

```typescript
const client = new OrganizationsApiClient({
  apiKey: 'your-api-key-here',
  // Custom validation error handler
  handleValidationError: (error) => {
    console.error('Validation error:', error);
  },
  // Custom deprecation warning logger
  logDeprecationWarning: ({ operationName, path, method }) => {
    console.warn(`Deprecated operation used: ${operationName} (${method} ${path})`);
  },
  // Custom retry logic
  shouldRetryOnError: (error, attemptNumber) => {
    return attemptNumber < 3 && (error.statusCode === 429 || error.statusCode >= 500);
  }
});
```

## License

MIT
npm package: @resolution/prettier-config
Description: Resolution's Prettier config
Author: Tobias Theobald
Latest version: 1.0.2

# Resolution Prettier Config

Best used with our ESLint config at @resolution/eslint-config

Adds our internal prettier config.

### How to use

First, install the config and prettier:

```bash
npm add --save-dev @resolution/prettier-config prettier
# OR
yarn add -D @resolution/prettier-config prettier
```

Then, add the following section to your `package.json`:

```json
{
  "prettier": "@resolution/prettier-config"
}
```

Alternatively, you can of course also use the separate config file approach.
npm package: @resolve-es/valueof
Description: valueOf
Author: fox
Latest version: 1.0.3

# @resolve-es/valueof
Returns `x.valueOf()` if `x.valueOf` exists, otherwise returns `x`.

## Installation
```bash
npm install @resolve-es/valueof
```

## Usage
```js
const valueOf = require("@resolve-es/valueof")

const str = new String("Wow!")
console.log(typeof valueOf(str)) // "string"

// Handling primitives
console.log(valueOf(42)) // 42

// Complex objects without valueOf
console.log(valueOf({ name: "John Doe" })) // { name: 'John Doe' }
```
npm package: @resolve-js/client
Description: Basic reSolve client.
Author: reimagined team
Latest version: 0.34.3

# **@resolve-js/client**

A low-level client API used to communicate with a reSolve server.

For a code sample, see to the **with-vanillajs** example's [client/index.js](https://github.com/reimagined/resolve/blob/master/examples/with-vanillajs/client/index.js) file.
npm package: @resolve-js/debug-levels
Description: Provides the debug-level API for reSolve packages.
Author: reimagined team
Latest version: 0.34.3

# **@resolve-js/debug-levels**

[![npm version](https://badge.fury.io/js/%40resolve-js%2Fdebug-levels.svg)](https://badge.fury.io/js/%40resolve-js%2Fdebug-levels)

This package provides debug-level API for reSolve packages.

![Analytics](https://ga-beacon.appspot.com/UA-118635726-1/packages/@resolve-js/debug-levels-readme?pixel)
npm package: @resolve-js/eventstore-base
Description: A base for reSolve eventstore adapters
Author: reimagined team
Latest version: 0.34.3

# **@resolve-js/eventstore-base**

[![npm version](https://badge.fury.io/js/%40resolve-js%2Feventstore-base.svg)](https://badge.fury.io/js/%40resolve-js%2Feventstore-base)

A base package for adapters used to store events.

## Usage

```js
import createAdapter from '@resolve-js/eventstore-xxx'

const adapter = createAdapter({
  /* options */
})

await adapter.init()

await loadEvents({
  eventTypes: ['TYPE_1', 'TYPE_2'],
  aggregateIds: ['aggregate_1', 'aggregate_2'],
  startTime: 0,
  finishTime: Date.now(),
})

await saveEvent(event)

await dispose({ dropEvents: false })
```

![Analytics](https://ga-beacon.appspot.com/UA-118635726-1/packages-resolve-eventstore-base-readme?pixel)
npm package: @resolve-js/eventstore-lite
Description: An adapter reSolve uses to store events in a file or memory.
Author: reimagined team
Latest version: 0.34.3

# **@resolve-js/eventstore-lite**

[![npm version](https://badge.fury.io/js/%40resolve-js%2Feventstore-lite.svg)](https://badge.fury.io/js/%40resolve-js%2Feventstore-lite)

This package is a event store adapter used to store events in a file or memory.

## Available Parameters

You can pass the following argument when initializing an adapter:

- `databaseFile` - the path to a file where events are stored. If set to ":memory:", all data is lost when an application instance is restarted.

## Usage

```js
import createAdapter from '@resolve-js/eventstore-lite'

const fileAdapter = createAdapter({
  databaseFile: './store.db',
})

const memoryAdapter = createAdapter({
  databaseFile: ':memory:',
})
```

![Analytics](https://ga-beacon.appspot.com/UA-118635726-1/packages-resolve-eventstore-lite-readme?pixel)
npm package: @resolve-js/eventstore-mysql
Description: An adapter reSolve uses to store events in MySQL.
Author: reimagined team
Latest version: 0.34.3

# **@resolve-js/eventstore-mysql**

[![npm version](https://badge.fury.io/js/%40resolve-js%2Feventstore-mysql.svg)](https://badge.fury.io/js/%40resolve-js%2Feventstore-mysql)

This package is an event store adapter used to store events in MySQL 8.0.

## Available Parameters

- `eventsTableName` - the name of a table used to store events.
- `...connectionSettings` - see [Connection Settings](https://www.npmjs.com/package/mysql2#first-query) for more information.

## Usage

```js
import createAdapter from '@resolve-js/eventstore-mysql'

const adapter = createAdapter({
  host: 'localhost',
  port: 3306,
  user: 'customUser',
  password: 'customPassword',
  database: 'customDatabaseName',
  eventsTableName: 'customTableName',
})
```

![Analytics](https://ga-beacon.appspot.com/UA-118635726-1/packages-resolve-eventstore-mysql-readme?pixel)
npm package: @resolve-js/eventstore-postgresql
Description: An adapter reSolve uses to store events in PostgreSQL.
Author: reimagined team
Latest version: 0.34.3

# **@resolve-js/eventstore-postgresql**

[![npm version](https://badge.fury.io/js/%40resolve-js%2Feventstore-postgresql.svg)](https://badge.fury.io/js/%40resolve-js%2Feventstore-postgresql)

This package is an event store adapter used to store events in PostgreSQL 10.7.

## Available Parameters

- `databaseName` - the name of a [schema](https://www.postgresql.org/docs/10/ddl-schemas.html) used to store events.
- `eventsTableName` - the name of a table used to store events.
- `user` - the user name.
- `password` - a user's password.
- `database` - the name of a database.
- `host` - a database server's host name.
- `port` - a database server's port.

## Usage

```js
import createAdapter from '@resolve-js/eventstore-postgresql'

const adapter = createAdapter({
  user: 'user',
  password: 'password',
  database: 'postgres',
  host: 'localhost',
  port: 5432,
  databaseName: 'public',
  eventsTableName: 'events',
})
```

![Analytics](https://ga-beacon.appspot.com/UA-118635726-1/packages-@resolve-js/eventstore-postgresql-readme?pixel)
npm package: @resolve-js/eventstore-postgresql-serverless
Description: An adapter reSolve uses to store events in PostgreSQL Serverless.
Author: reimagined team
Latest version: 0.32.0

# **@resolve-js/eventstore-postgresql-serverless**

[![npm version](https://badge.fury.io/js/%40resolve-js%2Feventstore-postgresql-serverless.svg)](https://badge.fury.io/js/%40resolve-js%2Feventstore-postgresql-serverless)

This package is an event store adapter used to store events in AWS Aurora Serverless PostgreSQL 10.7.

## Available Parameters

- `databaseName` - the name of a database used to store events.
- `eventsTableName` - the name of a table used to store events.
- `awsSecretStoreArn` - an AWS Secret store ARN.
- `dbClusterOrInstanceArn` - a database cluster or instance ARN.
- `region` - an AWS region.

## Usage

```js
import createAdapter from '@resolve-js/eventstore-postgresql-serverless'

const adapter = createAdapter({
  region: 'us-east-1',
  databaseName: 'databaseName',
  eventsTableName: 'eventsTableName',
  awsSecretStoreArn: 'awsSecretStoreArn',
  dbClusterOrInstanceArn: 'dbClusterOrInstanceArn',
})
```

#### As Resource

```js
import {
  create,
  dispose,
  destroy,
} from '@resolve-js/eventstore-postgresql-serverless'

await create({
  region: 'us-east-1',
  awsSecretStoreAdminArn: 'awsSecretStoreAdminArn',
  dbClusterOrInstanceArn: 'dbClusterOrInstanceArn',
  databaseName: 'creatingDatabaseName',
  eventsTableName: 'creatingTableName',
  userLogin: 'creatingUserLogin',
  userPassword: 'creatingUserPassword',
})

await dispose({
  region: 'us-east-1',
  awsSecretStoreAdminArn: 'awsSecretStoreAdminArn',
  dbClusterOrInstanceArn: 'dbClusterOrInstanceArn',
  databaseName: 'disposingDatabaseName',
  eventsTableName: 'disposingTableName',
  userLogin: 'disposingUserLogin',
  userPassword: 'disposingUserPassword',
})

await destroy({
  region: 'us-east-1',
  awsSecretStoreAdminArn: 'awsSecretStoreAdminArn',
  dbClusterOrInstanceArn: 'dbClusterOrInstanceArn',
  databaseName: 'destroyingDatabaseName',
  userLogin: 'destroyingUserLogin',
})
```

![Analytics](https://ga-beacon.appspot.com/UA-118635726-1/packages-@resolve-js/eventstore-postgresql-serverless-readme?pixel)
npm package: @resolve-js/module-uploader
Description: A reSolve module that adds uploader commands to an application.
Author: reimagined team
Latest version: 0.34.3

# **@resolve-js/module-uploader**

[![npm version](https://badge.fury.io/js/%40resolve-js%2Fmodule-uploader.svg)](https://badge.fury.io/js/%40resolve-js%2Fmodule-uploader)

### Usage

```js
import { merge } from '@resolve-js/scripts'
import createModuleUploader from '@resolve-js/module-uploader'

merge(
  resolveConfig,
  createModuleUploader({
    jwtSecret: 'jwtSecret',
  })
)
```
npm package: @resolve-js/monitoring-aws-cloudwatch
Description: This package serves as a monitoring adapter used to store monitoring data in AWS CloudWatch
Author: reimagined team
Latest version: 0.34.3

# **@resolve-js/monitoring-aws-cloudwatch**

[![npm version](https://badge.fury.io/js/%40resolve-js%2Fmonitoring-aws-cloudwatch.svg)](https://badge.fury.io/js/%40resolve-js%2Fmonitoring-aws-cloudwatch)

This package serves as a monitoring adapter for reSolve that publishes metrics to AWS CloudWatch.

## Available Options

You can specify the following options to configure the monitoring adapter:

- `deploymentId`- Specifies the cloud deployment ID.
- `resolveVersion` - Specifies the reSolve version.

## Usage

```js
// config.prod.js
import resolveVersion from '$resolve.resolveVersion'

const prodConfig = {
  monitoringAdapters: {
    default: {
      module: '@resolve-js/monitoring-aws-cloudwatch',
      options: {
        deploymentId: declareRuntimeEnv('RESOLVE_DEPLOYMENT_ID'),
        resolveVersion,
      },
    },
  },
  ...
}
```

![Analytics](https://ga-beacon.appspot.com/UA-118635726-1/packages-resolve-monitoring-aws-cloudwatch-readme?pixel)
npm package: @resolve-js/monitoring-base
Description: This package is the base for reSolve monitoring adapters
Author: reimagined team
Latest version: 0.34.3

# **@resolve-js/monitoring-base**

[![npm version](https://badge.fury.io/js/%40resolve-js%2Fmonitoring-base.svg)](https://badge.fury.io/js/%40resolve-js%2Fmonitoring-base)

A base package for reSolve monitoring adapters.

![Analytics](https://ga-beacon.appspot.com/UA-118635726-1/packages-resolve-monitoring-base-readme?pixel)
npm package: @resolve-js/monitoring-console
Description: This package serves as a monitoring adapter used to print monitoring metrics to the text console
Author: reimagined team
Latest version: 0.34.3

# **@resolve-js/monitoring-console**

[![npm version](https://badge.fury.io/js/%40resolve-js%2Fmonitoring-console.svg)](https://badge.fury.io/js/%40resolve-js%2Fmonitoring-console)

This package serves as a monitoring adapter for reSolve that prints monitoring metrics to the text console.

## Available Options

You can specify the following options to configure the monitoring adapter:

- `publishMode`- Specifies when to display a summary on the collected metrics in the console.
  Available values: `all`, `resolveDispose` and `processExit`. Default: `processExit`.

## Usage

```js
// config.prod.js
const prodConfig = {
  monitoringAdapters: {
    default: {
      module: '@resolve-js/monitoring-console',
      options: {
        publishMode: 'processExit',
      },
    },
  },
  ...
}
```

![Analytics](https://ga-beacon.appspot.com/UA-118635726-1/packages-resolve-monitoring-console-readme?pixel)
npm package: @resolve-js/react-hooks
Description: reSolve client wrapper for using in React hooks projects.
Author: reimagined team
Latest version: 0.34.3

# **@resolve-js/react-hooks**

reSolve React hooks library. A usage example can be found [here](https://github.com/reimagined/resolve/tree/master/examples/shopping-list-with-hooks).

To view code samples for particular hooks, follow the links below:

* [useCommand](https://github.com/reimagined/resolve/blob/master/examples/shopping-list-with-hooks/client/components/ShoppingListCreator.js)
* [useQuery - read model](https://github.com/reimagined/resolve/blob/master/examples/shopping-list-with-hooks/client/components/MyLists.js)
* [useQuery - view model](https://github.com/reimagined/resolve/blob/master/examples/shopping-list-with-hooks/client/components/ShoppingList.js)
* [useStaticResolver](https://github.com/reimagined/resolve/blob/master/examples/shopping-list-with-hooks/client/components/Header.js)
* [useViewModel](https://github.com/reimagined/resolve/blob/master/examples/shopping-list-with-hooks/client/components/ShoppingList.js)
npm package: @resolve-js/readmodel-base
Description: A base package for reSolve read model adapters
Author: reimagined team
Latest version: 0.34.3

# **@resolve-js/readmodel-base**

[![npm version](https://badge.fury.io/js/%40resolve-js%2Freadmodel-base.svg)](https://badge.fury.io/js/%40resolve-js%2Freadmodel-base)

A base package for interchangeable **Read Model Adapters**, which expose the standard query API for projection and resolvers.

![Analytics](https://ga-beacon.appspot.com/UA-118635726-1/packages-resolve-readmodel-base-readme?pixel)
npm package: @resolve-js/readmodel-lite
Description: An adapter the resolve-query uses to store the read model state in memory
Author: reimagined team
Latest version: 0.34.3

# **@resolve-js/readmodel-lite**

[![npm version](https://badge.fury.io/js/%40resolve-js%2Freadmodel-lite.svg)](https://badge.fury.io/js/%40resolve-js%2Freadmodel-lite)

A **Read Model Adapter** for [SQLite](https://www.sqlite.org/) database.
The adapter provides a query API for projection and resolvers. This API is standard among reSolve read model adapters, so you can change a **Read Model Adapter** in the configuration file without changing the code.

## Available Parameters

- `databaseFile` - the database's location in file system, or `:memory:` for temporary in-memory storage.

The adapter interface is defined in the **@resolve-js/readmodel-base** package.

![Analytics](https://ga-beacon.appspot.com/UA-118635726-1/packages-resolve-readmodel-lite-readme?pixel)
npm package: @resolve-js/readmodel-mysql
Description: An adapter the resolve-query uses to store the read model state in MySQL
Author: reimagined team
Latest version: 0.34.3

# **resolve-readmodel-mysql**

[![npm version](https://badge.fury.io/js/resolve-readmodel-mysql.svg)](https://badge.fury.io/js/resolve-readmodel-mysql)

A **Read Model Adapter** for [MySQL](https://www.mysql.com/) 5.7+ and compatible (like [AWS Aurora](https://aws.amazon.com/rds/aurora/)) databases.
The adapter provides a query API for projection and resolvers. This API is standard among reSolve read model adapters, so you can change a **Read Model Adapter** in the configuration file without changing the code.

## Available Parameters

- `...connectionSettings` - see [Connection Settings](https://www.npmjs.com/package/mysql2#first-query) for more information.

The adapter interface is defined in the **@resolve-js/readmodel-base** package.

## Usage

```js
import createAdapter from '@resolve-js/readmodel-mysql'

const adapter = createAdapter({
  ...connectionSettings,
})
```

## Notes:

- Index fields can store only numbers of the `BIGINT` type or strings in the `utf8mb4` encoding with the `utf8mb4_unicode_ci` collation ([details](https://dev.mysql.com/doc/refman/5.5/en/charset-unicode-utf8mb4.html)).
- Other fields are stored in a `json` column as `longblob` ([details](https://dev.mysql.com/doc/refman/5.7/en/json.html))
- The maximum packet size is limited. You can configure it in the [MySQL server options](https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_max_allowed_packet)
- Double-check the encoding of connection names, requests, and responses: the encoding-related bugs are hard to catch.

![Analytics](https://ga-beacon.appspot.com/UA-118635726-1/packages-resolve-readmodel-mysql-readme?pixel)
npm package: @resolve-js/readmodel-postgresql
Description: This package serves as a resolve-query adapter for storing a read model in postgres
Author: reimagined team
Latest version: 0.34.3

# **@resolve-js/readmodel-postgresql**

[![npm version](https://badge.fury.io/js/%40resolve-js%2Freadmodel-postgresql.svg)](https://badge.fury.io/js/%40resolve-js%2Freadmodel-postgresql)

A **Read Model Adapter** for [PostgreSQL 10.7](https://www.postgresql.org) database server.
The adapter provides a query API for projection and resolvers. This API is standard among reSolve read model adapters, so you can change a **Read Model Adapter** in the configuration file without changing the code.

## Available Parameters

- `databaseName` - The name of the PostgreSQL [schema](https://www.postgresql.org/docs/10/ddl-schemas.html).
- `buildMode` - An optional build mode: "auto" (default), "nodejs", "plv8", "plv8-internal", "plv8-external". 
- `useSqs` - An optional flag determining possibility of usage SQS transport (only in AWS cloud).
- `tablePrefix` - An optional table prefix for read-models server by current adapter instance.
- `user` - The name of a user.
- `password` - The user's password.
- `database` - The database name.
- `host` - The database server's host name.
- `port` - The database server's port.

The adapter interface is defined in the **@resolve-js/readmodel-base** package.

## Usage

```js
import createAdapter from '@resolve-js/readmodel-postgresql'

const adapter = createAdapter({
  databaseName,
  ...connectionSettings,
})
```
npm package: @resolve-js/readmodel-postgresql-serverless
Description: This package serves as a resolve-query adapter for storing a read model in postgres
Author: reimagined team
Latest version: 0.32.0

# **@resolve-js/readmodel-postgresql-serverless**

[![npm version](https://badge.fury.io/js/%40resolve-js%2Freadmodel-postgresql-serverless.svg)](https://badge.fury.io/js/%40resolve-js%2Freadmodel-postgresql-serverless)

A **Read Model Adapter** for AWS Aurora [PostgreSQL](https://www.postgresql.org) serverless database via RDS Data API.
The adapter provides a query API for projection and resolvers. This API is standard among reSolve read model adapters, so you can change a **Read Model Adapter** in the configuration file without changing the code.

## Available Parameters

- `dbClusterOrInstanceArn` - The Amazon Resource Name (ARN) of the Aurora Serverless DB cluster.
- `awsSecretStoreArn` - The name or ARN of the secret that enables access to the DB cluster.
- `databaseName` - The name of the PostgreSQL [schema](https://www.postgresql.org/docs/10/ddl-schemas.html).
- `tablePrefix` - An optional table prefix for read-models server by current adapter instance.
- `...connectionSettings` - See [RDS Data Service API](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/RDSDataService.html) for more information.

The adapter interface is defined in the **@resolve-js/readmodel-base** package.

## Usage

```js
import createAdapter from '@resolve-js/readmodel-postgresql-serverless'

const adapter = createAdapter({
  databaseName,
  ...connectionSettings,
})
```
npm package: @resolve-js/replicator-postgresql-serverless
Description: A base package for reSolve read model adapters
Author: reimagined team
Latest version: 0.31.0

# **@resolve-js/readmodel-base**

[![npm version](https://badge.fury.io/js/@resolve-js/readmodel-base.svg)](https://badge.fury.io/js/@resolve-js/readmodel-base)

A base package for interchangeable **Read Model Adapters** with the identical query API for projection and resolvers.

![Analytics](https://ga-beacon.appspot.com/UA-118635726-1/packages-resolve-readmodel-base-readme?pixel)
npm package: @resolve-js/replicator-via-api-handler
Description: A base package for reSolve read model adapters
Author: reimagined team
Latest version: 0.34.3

# **@resolve-js/readmodel-base**

[![npm version](https://badge.fury.io/js/@resolve-js/readmodel-base.svg)](https://badge.fury.io/js/@resolve-js/readmodel-base)

A base package for interchangeable **Read Model Adapters** with the identical query API for projection and resolvers.

![Analytics](https://ga-beacon.appspot.com/UA-118635726-1/packages-resolve-readmodel-base-readme?pixel)
npm package: @resolve-js/runtime
Description: The reSolve framework's backend server.
Author: reimagined team
Latest version: 0.32.0

# **@resolve-js/runtime**

[![npm version](https://badge.fury.io/js/%40resolve-js%2Fruntime.svg)](https://badge.fury.io/js/%40resolve-js%2Fruntime)

This package includes runtime backend server for local and cloud deployments.

![Analytics](https://ga-beacon.appspot.com/UA-118635726-1/packages-resolve-runtime-readme?pixel)
npm package: @resolve-js/runtime-aws-serverless
Description: The reSolve framework's AWS runtime based on serverless services.
Author: reimagined team
Latest version: 0.34.3

# **@resolve-js/runtime-aws-serverless**

[![npm version](https://badge.fury.io/js/%40resolve-js%2Fruntime-aws-serverless.svg)](https://badge.fury.io/js/%40resolve-js%2Fruntime-aws-serverless)

This package contains a runtime backend server that targets the AWS serverless environment.

## Available Options

You can specify the following option to configure the runtime:

- `importMode`- Specifies whether to use static or dynamic imports between the application's modules.

## Usage

```js
// config.cloud.js
const prodConfig = {
  runtime: {
    module: '@resolve-js/runtime-aws-serverless',
    options: { importMode: 'dynamic' },
  },
  ...
}
```

![Analytics](https://ga-beacon.appspot.com/UA-118635726-1/packages-resolve-runtime-aws-serverless-readme?pixel)
npm package: @resolve-js/runtime-base
Description: The reSolve framework's runtimes base interfaces.
Author: reimagined team
Latest version: 0.34.3

# **@resolve-js/runtime-base**

[![npm version](https://badge.fury.io/js/%40resolve-js%2Fruntime-base.svg)](https://badge.fury.io/js/%40resolve-js%2Fruntime-base)

A base package for reSolve runtimes.

![Analytics](https://ga-beacon.appspot.com/UA-118635726-1/packages-resolve-runtime-base-readme?pixel)
npm package: @resolve-js/runtime-single-process
Description: The reSolve framework's single NodeJS process runtime.
Author: reimagined team
Latest version: 0.34.3

# **@resolve-js/runtime-single-process**

[![npm version](https://badge.fury.io/js/%40resolve-js%2Fruntime-single-process.svg)](https://badge.fury.io/js/%40resolve-js%2Fruntime-single-process)

This package contains a runtime backend server that targets a standalone server or local machine.

## Available Options

You can specify the following options to configure the runtime:

- `importMode`- Specifies whether to use static or dynamic imports between the application's modules.
- `host` - Specifies the network host on which to listen for connections. Defaults to `'0.0.0.0'`.
- `port` - Specifies the server application's port.

## Usage

```js
// config.prod.js
const prodConfig = {
  runtime: {
    module: '@resolve-js/runtime-single-process',
    options: {
      host: declareRuntimeEnv('HOST', 'localhost'),
      port: declareRuntimeEnv('PORT', '3000'),
    },
  },
  ...
}
```

![Analytics](https://ga-beacon.appspot.com/UA-118635726-1/packages-resolve-runtime-single-process-readme?pixel)
npm package: @resolve-js/scripts
Description: Contains scripts used to initialize a reSolve server.
Author: reimagined team
Latest version: 0.34.3

# **@resolve-js/scripts**

[![npm version](https://badge.fury.io/js/%40resolve-js%2Fscripts.svg)](https://badge.fury.io/js/%40resolve-js%2Fscripts)

This package includes scripts and configuration for the [create-resolve-app](../../core/create-resolve-app) package.

Please keep in mind that the resulting configuration must match the [JSON Schema ReSolve Config](configs/schema.resolve.config.json)

![Analytics](https://ga-beacon.appspot.com/UA-118635726-1/packages-resolve-scripts-readme?pixel)
npm package: @resolve-js/testing-tools
Description: Tools used to test reSolve applications.
Author: reimagined team
Latest version: 0.34.3

# **@resolve-js/testing-tools**

[![npm version](https://badge.fury.io/js/%40resolve-js%2Ftesting-tools.svg)](https://badge.fury.io/js/%40resolve-js%2Ftesting-tools)

This package contains tools used for testing read models and sagas.

![Analytics](https://ga-beacon.appspot.com/UA-118635726-1/packages-resolve-testing-tools-readme?pixel)