open-index/open-npm huggingface dataset:
npm package: @roto/pack
Description: House for developing and using freshes components.
Author: Wu Qi Cheng
Latest version: 1.0.2

# Documentation

<p>
  <a href="https://circleci.com/gh/freshesx/house/tree/master" title="CircleCI">
    <img src="https://circleci.com/gh/freshesx/house/tree/master.svg?style=svg">
  </a>
</p>

## Usage

```bash
yarn add -D @freshes/house
```

## Guide

Core files of house have:

* src/Runners/DevelopmentRunner.js, to start development environment.
* src/Runners/ProductionRunner.js, to build production environment.
* src/Runners/ServerRunner.js, after building production, it will start a Express to set proxy and open web page for preview.

## Development

Add new file `./script/development.js` in project root path.

```javascript
// ./script/development.js
import DevelopmentRunner from '@freshes/house/src/Runners/DevelopmentRunner.js'

new DevelopmentRunner()
  .setOptions(require('./configs/options'))
  // set proxy map by http-proxy-middleware
  .setProxy(require('./configs/proxy'))
  // set app browser env by webpack.DefinePlugin
  .setAppEnvs(require('./configs/appEnvs'))
  // extend webpack or express
  .extend(runner => {})
  // Finally run
  .run()
```

Then edit `./package.json`

```json
{
  "scripts": {
    "start": "node ./scripts/development.js"
  }
}
```

## About runner.extend

runner has two built-in builder, they are webpackBuilder and expressBuilder.

```javascript
new DevelopmentRunner().extend(runner => {
  // you can refer to api documentation, the documentation will be uploaded
  runner.webpackBuilder.xxx
  runner.expressBuilder.xxx
})
```

## Sentry Hash

```
新增 VERSION_HASH 的环境的变量，默认取当前 git commit 的 hash 值。
```

## webpack externals

新增webpack externals

```javascript
externals: {
  vue: 'Vue',
  vuex: 'Vuex',
  'vue-router': 'VueRouter'
}
```

webpack 不会打包 external中的类库, 减少js bundle 体积
当你使用
`
import Vue from 'vue'
`
时, webpack会引入`window.vue`, 所以必须在template 即`index.html`中引入相关cdn
example

```html
<head>
  <script src=//static.34580.cn/cn/public/vue/2.5.3/vue.min.js></script>
  <script src=//static.34580.cn/cn/public/vue-router/3.0.0/vue-router.min.js></script>
  <script src=//static.34580.cn/cn/public/vuex/3.0.0/vuex.min.js></script>
</head>
```

使用externals 方法:
 1. 升级house `yarn add @freshes/house@next`

 2. 扩展`runner`的`extend`方法

```javascript
const ProductionRunner = require('@freshes/house/src/Runners/ProductionRunner')

new ProductionRunner()
  .setOptions(require('./configs/options'))
  .setProxy(require('./configs/proxy'))
  .setAppEnvs({
    ...require('./configs/appEnvs'),
    NODE_ENV: 'production'
  })
  .extend(runner => {
    const config = runner.webpackBuilder.create() // webpack config
    const externals = {
      ...config.externals,
      vue: 'Vue',
      vuex: 'Vuex',
      'vue-router': 'VueRouter'
    }
    config.externals = externals
  }).run()

```
npm package: @rotorsoft/act-pino
Description: Pino logger adapter for @rotorsoft/act
Author: rotorsoft
Latest version: 0.2.0

# @rotorsoft/act-pino

Pino logger adapter for the [@rotorsoft/act](https://www.npmjs.com/package/@rotorsoft/act) event sourcing framework.

Replaces Act's built-in `ConsoleLogger` with [pino](https://getpino.io/) — structured JSON logging, log levels, transports, redaction, and pretty-printing in development.

## Install

```bash
pnpm add @rotorsoft/act-pino
```

## Quick Start

```typescript
import { log } from "@rotorsoft/act";
import { PinoLogger } from "@rotorsoft/act-pino";

// Replace the default logger — all framework logging now goes through pino
log(new PinoLogger());
```

## Configuration

`PinoLogger` accepts an options object:

| Option | Type | Default | Description |
|--------|------|---------|-------------|
| `level` | `string` | `config().logLevel` | Log level (`trace`, `debug`, `info`, `warn`, `error`, `fatal`) |
| `pretty` | `boolean` | `true` in non-production | Enable `pino-pretty` for human-readable output |
| `options` | `pino.LoggerOptions` | `{}` | Pass-through to pino (transports, serializers, redaction, etc.) |

### Examples

```typescript
// Custom log level
log(new PinoLogger({ level: "debug" }));

// Disable pretty-printing (structured JSON only)
log(new PinoLogger({ pretty: false }));

// Pino-native options (redaction, serializers, etc.)
log(new PinoLogger({
  options: {
    redact: ["password", "secret", "token"],
    serializers: {
      req: (req) => ({ method: req.method, url: req.url }),
    },
  },
}));
```

## Logger Interface

`PinoLogger` implements the Act framework's `Logger` interface:

```typescript
interface Logger {
  level: string;
  trace(obj: unknown, msg?: string): void;
  debug(obj: unknown, msg?: string): void;
  info(obj: unknown, msg?: string): void;
  warn(obj: unknown, msg?: string): void;
  error(obj: unknown, msg?: string): void;
  fatal(obj: unknown, msg?: string): void;
  child(bindings: Record<string, unknown>): Logger;
  dispose(): Promise<void>;
}
```

### String and object messages

```typescript
const logger = new PinoLogger();

// String message
logger.info("Server started");

// Object with message
logger.info({ port: 4000 }, "Server started");

// Object only (no message)
logger.info({ event: "startup", port: 4000 });
```

### Child loggers

Create scoped loggers with inherited bindings:

```typescript
const parent = new PinoLogger();
const child = parent.child({ module: "payments" });

child.info("Processing payment"); // includes { module: "payments" }
```

### Cleanup

```typescript
await logger.dispose(); // flushes buffered logs
```

## Environment Integration

`PinoLogger` reads defaults from Act's `config()`:

- **`logLevel`** — controlled by `LOG_LEVEL` env var (default: `"info"`)
- **`logSingleLine`** — controlled by `LOG_SINGLE_LINE` env var (affects `pino-pretty` formatting)
- **`env`** — when `"production"`, pretty-printing is disabled by default (structured JSON output)

## License

MIT
npm package: @rotorsoft/esml
Description: Event Storming Modeling Language
Author: rotorsoft
Latest version: 0.4.3

# ESML

ESML, which stands for `Event Storming Modeling Language`, aims to create a user-friendly JSON schema that accurately describes the components of Event Storming Models with a level of detail that enables precise rendering of diagrams.

## Instructions

1. Start by specifying the system or domain you want to model (e.g., banking system, e-commerce platform, healthcare system).
2. Identify the key entities or aggregates in the system. For each aggregate:
   - Specify the commands it can handle (e.g., CreateAccount, PlaceOrder).
   - Specify the events it can emit (e.g., AccountCreated, OrderPlaced).
3. Define the actors or users interacting with the system. For each command:
   - Specify the actors
   - Specify the projectors they read for retrieving information (e.g., ViewAccountBalance, ViewOrderStatus).
4. Determine the contexts in the system. A context is a grouping of related aggregates, actors, and policies. Specify the artifacts included in each context.
5. Define the policies that govern the behavior of the system. For each policy:
   - Specify the events it can handle (e.g., HandleOrderCancelled, HandlePaymentReceived).
   - Specify the commands it can invoke (e.g., ProcessOrder, RefundPayment).

## API

- To render the SVG model

  ```typescript
  esml(code: string, scale: number) => { error?: Error; svg?: string; width?: number; height?: number };
  ```

- To embed the canvas in your HTML document

  ```typescript
  type Options = {
      SCALE: number;
      WIDTH: number;
      HEIGHT: number;
      coordsSpan?: HTMLSpanElement;
      zoomSpan?: HTMLSpanElement;
      fitBtn?: HTMLButtonElement;
  };

  type State = {
      code: string;
      x?: number;
      y?: number;
      zoom?: number;
  };

  const canvas = new Canvas(document: Document, container: HTMLDivElement, options?: Options);

  canvas.on("transformed", e => {
      console.log(e);
  });

  const error = canvas.render({ code, x, y, zoom });
  if(error) console.log(error);
  ```

## Playground

Enjoy playing with ESML at [Playground](https://rotorsoft.github.io/esml/)

## CDN

- <https://cdn.jsdelivr.net/npm/@rotorsoft/esml/docs/esml.min.js>
- <https://unpkg.com/@rotorsoft/esml/docs/esml.js>

## Sample Model

[WorkDesk Ticket Service](./wolfdesk.json5)
npm package: @rotorsoft/eventually-express
Description: Eventually ExpressJs Application Adapter
Author: rotorsoft
Latest version: 5.8.2

# [eventually-express](https://rotorsoft.github.io/eventually-monorepo/modules/eventually_express.html)

[![NPM Version](https://img.shields.io/npm/v/@rotorsoft/eventually-express.svg)](https://www.npmjs.com/package/@rotorsoft/eventually-express)

[Eventually](../../README.md) library implementing an Express.js based application
npm package: @rotorsoft/eventually-openapi
Description: Eventually OpenAPI Utilities
Author: rotorsoft
Latest version: 0.6.2

# [eventually-openapi](https://rotorsoft.github.io/eventually-monorepo/modules/eventually_openapi.html)

[![NPM Version](https://img.shields.io/npm/v/@rotorsoft/eventually-openapi.svg)](https://www.npmjs.com/package/@rotorsoft/eventually-openapi)

[Eventually](../../README.md) library implementing reusable REST and OpenAPI 3.1 utilities.

Application adapters like [Eventually Express](../eventually-express/README.md) can reuse from here.
npm package: @rotorsoft/eventually-pg
Description: Eventually Postgres Store Adapters
Author: rotorsoft
Latest version: 5.6.5

# [eventually-pg](https://rotorsoft.github.io/eventually-monorepo/modules/eventually_pg.html)

[![NPM Version](https://img.shields.io/npm/v/@rotorsoft/eventually-pg.svg)](https://www.npmjs.com/package/@rotorsoft/eventually-pg)

[Eventually](../../README.md) library implementing a Postgres store
npm package: @rotorsoft/eventually-trpc
Description: Eventually tRPC Application Adapter
Author: rotorsoft
Latest version: 0.2.1

# [eventually-trpc](https://rotorsoft.github.io/eventually-monorepo/modules/eventually_trpc.html)

[![NPM Version](https://img.shields.io/npm/v/@rotorsoft/eventually-trpc.svg)](https://www.npmjs.com/package/@rotorsoft/eventually-trpc)

[Eventually](../../README.md) library implementing [tRPC](https://trpc.io/) based utils
npm package: @rotorsoft/firebase-vue-components
Description: ## Project setup ``` npm install ```
Author: rotorsoft
Latest version: 0.2.1

# firebase-vue-components

## Project setup
```
npm install
```

### Compiles and hot-reloads for development
```
npm run serve
```

### Compiles and minifies for production
```
npm run build
```

### Lints and fixes files
```
npm run lint
```
npm package: @rotrenanoliveira/eslint-config
Description: ESLint configuration
Latest version: 1.1.0

# Para usar o sort import

```json

{
  "extends": [
    "@rotrenanoliveira/eslint-config/node"
  ],
  "plugins": ["simple-import-sort"],
  "rules": {
    "simple-import-sort/imports": "error",
    "simple-import-sort/exports": "error"
  }
}

```