open-index/open-npm huggingface dataset:
npm package: @runreal/better-auth
Description: The most comprehensive authentication library for TypeScript.
Latest version: 1.3.5-fork.1

<p align="center">
  <picture>
    <source srcset="https://github.com/better-auth/better-auth/blob/main/banner-dark.png?raw=true" media="(prefers-color-scheme: dark)">
    <source srcset="https://github.com/better-auth/better-auth/blob/main/banner.png?raw=true" media="(prefers-color-scheme: light)">
    <img src="https://github.com/better-auth/better-auth/blob/main/banner.png?raw=true" alt="Better Auth Logo">
  </picture>
  <h2 align="center">
    Better Auth
  </h2>

  <p align="center">
    The most comprehensive authentication library for TypeScript
    <br />
    <a href="https://better-auth.com"><strong>Learn more »</strong></a>
    <br />
    <br />
    <a href="https://discord.gg/better-auth">Discord</a>
    ·
    <a href="https://better-auth.com">Website</a>
    ·
    <a href="https://github.com/better-auth/better-auth/issues">Issues</a>
  </p>
</p>




## Getting Started

```bash
pnpm install better-auth
```

Read the [Installation Guide](https://better-auth.com/docs/installation) to learn more.
npm package: @runroom/eslint-config-runroom
Description: Runroom JavaScript Style
Author: Runroom
Latest version: 1.1.0
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# eslint-config-runroom
![Release version](https://img.shields.io/github/release/runroom/eslint-config-runroom.svg)
[![Build Status](https://travis-ci.org/Runroom/eslint-config-runroom.svg?branch=master)](https://travis-ci.org/Runroom/eslint-config-runroom)

#### An ESLint [Shareable Config](https://eslint.org/docs/developer-guide/shareable-configs) for [JavaScript Runroom Style](https://runroom.es)

## Install

```bash
yarn add --dev @runroom/eslint-config-runroom
```

## Usage

Shareable configs are designed to work with the `extends` feature of `.eslintrc` files.
You can learn more about
[Shareable Configs](https://eslint.org/docs/developer-guide/shareable-configs) on the
official ESLint website.

To use the JavaScript Runroom Style shareable config, first run this:

```bash
yarn install
```

Then, add this to your .eslintrc file:

```
{
  "extends": "@runroom/eslint-config-runroom"
}
```

*Note: We cannot omit the `eslint-config-` prefix since it is used inside a [scoped package](https://docs.npmjs.com/misc/scope).*

You can override settings from the shareable config by adding them directly into your
`.eslintrc` file.

## License

MIT. Copyright (c) [Runroom](https://runroom.es).
npm package: @runroom/purejs
Description: PureJS is a pack of vanilla javascript functions exported as Nodejs modules.
Author: Italo Devoto Ramella
Latest version: 3.2.2

# PureJS

[![npm version](https://img.shields.io/npm/v/@runroom/purejs.svg)](https://www.npmjs.com/package/@runroom/purejs)
![node](https://img.shields.io/node/v/@runroom/purejs.svg)

[![CI](https://github.com/Runroom/purejs/actions/workflows/ci.yaml/badge.svg)](https://github.com/Runroom/purejs/actions/workflows/ci.yaml)
[![QA](https://github.com/Runroom/purejs/actions/workflows/qa.yaml/badge.svg)](https://github.com/Runroom/purejs/actions/workflows/qa.yaml)
[![codecov](https://codecov.io/gh/Runroom/purejs/branch/3.x/graph/badge.svg)](https://codecov.io/gh/Runroom/purejs)

PureJS is a pack of pure javascript, non-jquery, functions exported as [Node.js](https://nodejs.org/) modules.

## Quickstart

Install the package as your project dependency

```bash
npm install @runroom/purejs
```

Use it importing the whole library or the methods you need

```javascript
import events from "@runroom/purejs/lib/events";

events.onDocumentReady(() => {
    // your code
});
```

## Supported modules

- [anchorTo](./doc/anchorTo.md)
- [animateTo](./doc/animateTo.md)
- [~~cookies~~ (Deprecated)](./doc/cookies.md)
- [debounce](./doc/debounce.md)
- [events](./doc/events.md)
- [forEach](./forEach.md)
- [safeScrollTop](./doc/safeScrollTop.md)
- [scrollDirection](./doc/scrollDirection.md)
- [touchable](./doc/touchable.md)
npm package: @runroom/stylelint-config-runroom
Description: Runroom config for stylelint
Author: Runroom
Latest version: 1.3.0
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# stylelint-config-runroom

Runroom config for stylelint, it is an extension of [Stylelint config standard](https://github.com/stylelint/stylelint-config-standard).

[![Build Status](https://travis-ci.org/italodr/stylelint-config-runroom.svg?branch=master)](https://travis-ci.org/italodr/stylelint-config-runroom)

## Example

```scss
@import "route/filename.1";
@import "route/filename.2";

/**
 * Multi-line comment
 */
.selector-1,
.selector-2,
.selector-3[type="text"] {
    background: linear-gradient(#fff, rgba(0, 0, 0, .8));
    box-sizing: border-box;
    color: #333;
    display: block;
}

.selector-a,
.selector-b:not(:first-child) {
    left: 50%;
    padding: 10px !important;
    position: absolute;
    top: calc(calc(1em * 2) / 3);
    transform: translateX(-50%);

    @include breakpoint($s768) {
        top: 50%;
        transform: translate(-50%, -50%);
    }

    &.is-main { font-size: 30px; }
}

.selector-x { width: 10%; }
.selector-y { width: 20%; }
.selector-z { width: 30%; }

/* Single-line comment */

@media (min-width: 60em) {
    .selector {
        /* Flush to parent comment */
        transform: translate(1, 1) scale(3);
    }
}

@media (orientation: portrait), projection and (color) {
    .selector-i + .selector-ii {
        background: color(rgb(0, 0, 0) lightness(50%));
        font-family: Helvetica, "Arial Black", sans-serif;
    }
}

/* Flush single line comment */
@media
    screen and (min-resolution: 192dpi),
    screen and (min-resolution: 2dppx) {
    .selector {
        background-image: repeating-linear-gradient(-45deg, transparent, #fff 25px, rgba(255, 255, 255, 1) 50px);
        box-shadow: 0 1px 1px #000, 0 1px 0 #fff, 2px 2px 1px 1px #ccc inset;
        height: 10rem;
        margin: 10px;
    }

    /* Flush nested single line comment */
    .selector::after {
        background-image: url(x.svg);
        content: '→';
    }
}
```

*Note: the config is tested against the CSS version of this example, as such the example contains plenty of SCSS syntax, formatting and features.*

## Installation

```bash
yarn add --dev stylelint-config-runroom
```

## Usage

Set your `stylelint` config to:

```json
{
    "extends": "stylelint-config-runroom"
}

```

In this link you will find more information about [extending stylelint](http://stylelint.io/user-guide/configuration/#extends)

## [Changelog](CHANGELOG.md)

## [License](LICENSE)
npm package: @runs/builder
Description: Highly configurable project builder based on Parcel
Author: Islam Magdy
Latest version: 1.0.0

Early stage development. Not intended for prod use.

## Usage (CLI):

```
runs-builder --config builder.json --app api
```

### Options:
- `--config`: Path to config file.
- `--app`: App to build.
- `--watch`: Build and watch for file changes, and build again.
- `--serve`: Build and serve the app (if it's a front-end web app).
- `--native`: To be combined with `--serve` to run this app as a node app. Also can be combined with `--watch`.

## Example conf:

JSON file or JS file that returns an array in this format:

The `config` property accepts all configs that are [Parcel compatible](https://parceljs.org/api.html#bundler).

```json
[
  {
    "name": "api",
    "entry": "./index.ts",
    "config": {
      "outDir": "./build",
      "cache": false,
      "target": "node",
      "logLevel": 3,
      "sourceMaps": true,
      "detailedReport": true,
      "bundleNodeModules": false
    }
  }
]
```

You can add virtually any number of apps to build, you must specify the `--app` option.
npm package: @runs/logger
Description: Highly configurable logging based on Winston
Author: Islam Magdy
Latest version: 1.0.1

[![Build Status](https://travis-ci.org/iMagdy/runs-logger.svg?branch=master)](https://travis-ci.org/iMagdy/runs-logger)

## @runs/Logger:

runs-logger is a node logger built on top of Winston logger. The purpose of this package is to add extra features to Winston's default logging, and allow both high customizability, and ease of use.


## Installation:
- `npm install @runs/logger`
- `yarn add @runs/logger`

## Usage:

### Import/require:
```js
// node:
const Logger = require('@runs/logger');

// ES6 & Typescript
import Logger from '@runs/logger';
```

**Note for TypeScript:** This module was written in TypeScript, no need to install @types package.

### 1. Create new instance:

```js
const logger = new Logger({ /* winston.LoggerOptions */ });
```

Logger constructor takes 1 argument of type `winston.LoggerOptions`, interface shown below:

```typescript
interface LoggerOptions {
  levels?: Config.AbstractConfigSetLevels;
  silent?: boolean;
  format?: logform.Format;
  level?: string;
  exitOnError?: Function | boolean;
  defaultMeta?: any;
  transports?: Transport[] | Transport;
  exceptionHandlers?: any;
}
```

For more details about nested types, please refer to [Winston Types](https://github.com/winstonjs/winston/blob/master/index.d.ts#L75) and for usage of these items, please refer to [Winston Docs](https://github.com/winstonjs/winston#usage).

### 2. Start logging:
Example:
```js
logger.log({
    level: 'info', // can be one of: info, warn, error, verbose, debug, or silly
    message: 'Starting server...', // log message
    details: { // optional extra data to include with your log
      port: '3000',
      status: 'ok',
    },
  });
});
```

That's it.

## Behavior:
By default (as of release 1.0.0) logger will log to: 
1. The console during development (NODE_ENV=development).
2. File named after your app name in your `package.json`'s `name` attribute, file is called `{NAME}-%DATE%.log` in `logs` dir in the root of your app, it'll rotate the file when either the file reaches 20MB, or is 14 days old.
npm package: @runsidekick/sidekick-monaco-tree
Description: sidekick-monaco-tree React component
Latest version: 0.0.12

# sidekick-monaco-tree

[![Travis][build-badge]][build]
[![npm package][npm-badge]][npm]
[![Coveralls][coveralls-badge]][coveralls]

Describe sidekick-monaco-tree here.
This project is based on this repo: https://github.com/BlueMagnificent/monaco-tree

[build-badge]: https://img.shields.io/travis/user/repo/master.png?style=flat-square
[build]: https://travis-ci.org/user/repo

[npm-badge]: https://img.shields.io/npm/v/npm-package.png?style=flat-square
[npm]: https://www.npmjs.com/package/react-monaco-tree

[coveralls-badge]: https://img.shields.io/coveralls/user/repo/master.png?style=flat-square
[coveralls]: https://coveralls.io/github/user/repo
npm package: @runspace/runtime
Description: RunSpace Daemon
Author: Mikhail Marynenko
Latest version: 0.1.1

# @runspace/runtime

Runspace Runtime - allows you to create node administration javascript functions written in nodejs.

## Runspace\lang

### Example

```javascript
module.exports = (context, callback) => {
  console.info("Hello, World!"
  callback("Hello, World!"
};
```

will return:

```json
{
  "log": "Hello, World!",
  "data": "Hello, World!"
}
```

### Features

#### Available Node Modules:

- `node-fetch`
- `os`
- `fs`
- `path`
- `child_process`

#### Language possibilities

All Node.js `>=10` features.

#### Console

You can log something using these functions:

```javascript
console.debug(...someting);
console.log(...someting);
console.info(...someting);
console.warn(...someting);
console.error(...someting);
console.dir(...someting);
console.trace(...someting);
```

## Usage

See examples in `./examples`
npm package: @runspired-forks/ember-maybe-in-element
Description: Ember AST transform for the in-element helper
Author: Miguel Camba
Latest version: 2.0.4

# ember-maybe-in-element

This addon exposes the construct `{{#maybe-in-element el renderInPlace insertBefore=null}}The block{{/maybe-in-element}}` to the contained block somewhere else in the page.

Compatibility
------------------------------------------------------------------------------

* Ember.js v3.16 or above
* Ember CLI v2.13 or above
* Node.js v10 or above


The code
```hbs
{{#maybe-in-element el renderInPlace insertBefore=null}}The block{{/maybe-in-element}}
```

becomes equivalent to:

```hbs
{{#if renderInPlace}}The block{{else}}{{#in-element el insertBefore=null}}The block{{/in-element}}{{/if}}
```

## Motivation

Although nothing prevents you from achieving the same thing by manually typing the expanded
handlebars code yourself, having two identical blocks is an invitation to forget to update one and introduce unwanted differences between both.
Also, less typing!

## Installation

The addon uses `ember-in-element-polyfill`, so its support matrix is the same (2.10+ at the time of this writing)

* Run `ember install ember-maybe-in-element`

Be aware that if you intend to use this addon from within another addon, you must move it from
`devDependencies` to `dependencies` in your `package.json`.


## Legal

[DockYard](http://dockyard.com/ember-consulting), Inc &copy; 2017

[@dockyard](http://twitter.com/dockyard)

[Licensed under the MIT license](http://www.opensource.org/licenses/mit-license.php)
npm package: @runstack/hooks
Description: React hooks library for runstack
Author: Runstack
Latest version: 0.4.0

# @runstack/hooks

A collection of React hooks for runstack projects.

## Installation

```bash
npm install @runstack/hooks
```

## Usage

```typescript
import { useWorker } from '@runstack/hooks';

function MyComponent() {
  const { worker, send } = useWorker({
    createWorker: () => new Worker('/path/to/worker.js'),
    onMessage: (event) => {
      console.log('Received from worker:', event.data);
    },
  });

  const handleSendMessage = () => {
    send({ type: 'PROCESS_DATA', payload: 'some data' });
  };

  return (
    <div>
      <button onClick={handleSendMessage}>
        Send Message to Worker
      </button>
    </div>
  );
}
```

## Available Hooks

### `useWorker<TPostMessageType, TWorkerMessage>(options)`
Provides a simple interface for working with Web Workers.

**Parameters:**
- **options**: Configuration object
  - **createWorker**: `() => Worker` - Function that creates and returns a Worker instance
  - **onMessage**: `(message: MessageEvent<TWorkerMessage>) => void` - Callback for handling messages from the worker

**Returns:** `{ worker: Worker, send: (message: TPostMessageType) => void }`
- **worker**: The Worker instance
- **send**: Function to send messages to the worker

**TypeScript Support:**
- **TPostMessageType**: Type of messages sent to the worker
- **TWorkerMessage**: Type of messages received from the worker (defaults to TPostMessageType)

**Example with TypeScript:**
```typescript
type WorkerInput = { type: 'CALCULATE'; numbers: number[] };
type WorkerOutput = { type: 'RESULT'; result: number };

const { worker, send } = useWorker<WorkerInput, WorkerOutput>({
  createWorker: () => new Worker('/calculator-worker.js'),
  onMessage: (event) => {
    if (event.data.type === 'RESULT') {
      console.log('Calculation result:', event.data.result);
    }
  },
});

send({ type: 'CALCULATE', numbers: [1, 2, 3, 4, 5] });
```

## Development

```bash
# Build the package
npm run build

# Watch for changes during development
npm run dev

# Run linting
npm run lint

# Type checking
npm run check-types
```

## License

MIT
npm package: @runstack/ui
Description: React UI components library for runstack
Author: Runstack
Latest version: 0.1.7

# @runstack/ui

A collection of reusable React UI components for runstack applications.

## Installation

```bash
npm install @runstack/ui
```

## Requirements

- React >= 18.0.0
- React DOM >= 18.0.0

## Usage

### Draggable List

```tsx
import { DraggableList } from '@runstack/ui/draggable-list'

function MyComponent() {
  const items = [
    { id: '1', title: 'Item 1' },
    { id: '2', title: 'Item 2' },
    { id: '3', title: 'Item 3' }
  ]

  const handleReorder = (newItems) => {
    // Handle reordered items
  }

  return (
    <DraggableList
      items={items}
      onReorder={handleReorder}
    />
  )
}
```

### Utilities

```tsx
import { cn } from '@runstack/ui'

// Merge classes with tailwind-merge
const className = cn('base-class', 'additional-class', {
  'conditional-class': condition
})
```

## Components

- **DraggableList**: A drag-and-drop sortable list component with editing capabilities

## Development

```bash
# Install dependencies
npm install

# Run tests
npm test

# Run tests in watch mode
npm run test:watch

# Build the package
npm run build

# Lint the code
npm run lint
```

## License

MIT
npm package: @runstead/cli
Description: Deterministic control-plane CLI for long-running team orchestration.
Latest version: 0.1.1

# `@runstead/cli`

Deterministic control-plane CLI for long-running team orchestration.

## Status

This package currently implements milestone 1:

- `.team/` control-plane scaffold
- persistent state stores
- repo inspection
- manager lock acquisition and stale-lock recovery
- `team init`
- `team status`
- `team resume`
- deterministic orchestrator loop skeleton without autonomous task execution

## Install

```sh
npm install -g @runstead/cli
```

## Usage

```sh
team init
team status
team resume
```

## Development

```sh
npm install
npm run check
npm test
npm run build
```
npm package: @runsynapse/sdk
Description: Synapse SDK — 281x faster code execution for AI agents. Sub-millisecond Wasm execution on bare metal.
Author: Synapse
Latest version: 0.1.0

# @synapserun/sdk

**281x faster code execution for AI agents.** Sub-millisecond Wasm execution on bare metal.

## Install

```bash
npm i @synapserun/sdk
```

## Quick Start

```typescript
import { Synapse } from '@synapserun/sdk';

const client = new Synapse({ apiKey: 'sk_live_...' });

// Execute .syn code — returns in <1ms (p99)
const result = await client.execute('@f 0 main [ + 21 21 ]');
console.log(result.result);     // 42
console.log(result.latencyMs);  // 0.52

// Batch execute — up to 1000 jobs
const batch = await client.executeBatch([
  { code: '@f 0 main [ + 1 2 ]' },
  { code: '@f 0 main [ * 3 4 ]' },
  { code: '@f 0 main [ - 100 58 ]' },
]);
batch.results.forEach(r => console.log(r.result)); // 3, 12, 42

// Validate without executing
const meta = await client.validate('@f 0 main [ + 1 1 ]');
console.log(meta); // { valid: true, wasm_size: 89, ... }

// Natural language computation
const answer = await client.compute('calculate fibonacci of 10');
console.log(answer);
```

## Performance

Proven with 100,000 sequential executions on Hetzner AX102:

| Metric | Value |
|--------|-------|
| **p50 latency** | 0.53ms |
| **p99 latency** | 0.72ms |
| **vs E2B** | 281x faster |
| **vs Blaxel** | 47x faster |
| **Correctness** | 100,000/100,000 |

## API Reference

### `new Synapse(config)`

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `apiKey` | `string` | — | Your API key |
| `baseUrl` | `string` | `https://api.synapse.dev` | Gateway URL |
| `timeout` | `number` | `15000` | Timeout in ms |
| `maxRetries` | `number` | `3` | Retry count |

### Methods

| Method | Description |
|--------|-------------|
| `execute(code)` | Execute .syn source code |
| `executeWasm(bytes)` | Execute pre-compiled .wasm binary |
| `executeBatch(jobs)` | Execute up to 1000 jobs in parallel |
| `validate(code)` | Validate .syn syntax |
| `compute(intent)` | Natural language → computation |
| `health()` | Check gateway health |

## License

MIT
npm package: @runthispage/mcp-server
Description: MCP server for RunThis.page — publish and manage HTML pages from AI tools
Latest version: 1.2.0

# @runthispage/mcp-server

MCP server for [RunThis.page](https://runthis.page) — publish and manage hosted HTML pages from AI tools like Claude.

## Setup

### 1. Get an API key

Sign up at [runthis.page](https://runthis.page) with a Pro or Business plan, then generate an API key at [/settings](https://runthis.page/settings).

### 2. Configure Claude Desktop

Add to your Claude Desktop config (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS):

```json
{
  "mcpServers": {
    "runthispage": {
      "command": "npx",
      "args": ["@runthispage/mcp-server"],
      "env": {
        "RUNTHISPAGE_API_KEY": "rtp_your_key_here"
      }
    }
  }
}
```

### 3. Use it

Ask Claude to publish HTML:

> "Create a simple landing page and publish it to RunThis.page"

## Tools

| Tool | Description |
|---|---|
| `publish_page` | Publish new HTML, get a live URL |
| `update_page` | Replace an existing page's HTML |
| `list_pages` | List all your pages with IDs and URLs |
| `delete_page` | Soft-delete a page |
| `get_page_analytics` | View counts, referrers, trends |

### Providing HTML content

`publish_page` and `update_page` accept HTML via exactly one of:

| Parameter | Best for | Example |
|---|---|---|
| `file_path` | Publishing existing HTML files from disk | `"file_path": "./build/index.html"` |
| `html` | Small pages or AI-generated HTML | `"html": "<!DOCTYPE html>..."` |
| `html_base64` | Programmatic use when content is already base64 | `"html_base64": "PCFET0NUW..."` |

## Environment variables

| Variable | Required | Description |
|---|---|---|
| `RUNTHISPAGE_API_KEY` | Yes | API key starting with `rtp_` |
| `RUNTHISPAGE_BASE_URL` | No | Defaults to `https://runthis.page` |

## Development

```bash
npm install
npm run build
RUNTHISPAGE_API_KEY=rtp_... npm run dev
```
npm package: @runtime-digital-twin/core
Description: Core contracts and types for Runtime Digital Twin Platform
Latest version: 1.0.1

# @runtime-digital-twin/core

Core contracts and types for the Runtime Digital Twin Platform.

## Overview

This package defines the three core JSON contracts used throughout the platform:

- **ReplayResult**: Result of a single trace replay execution
- **SuiteResult**: Aggregated result of multiple trace replays
- **TwinPlan**: Plan for executing multiple trace replays

All contracts include:
- TypeScript type definitions
- Runtime validation using Zod schemas
- JSON schema documentation

## Installation

```bash
npm install @runtime-digital-twin/core
```

## Usage

### ReplayResult

```typescript
import { validateReplayResult, type ReplayResult } from "@runtime-digital-twin/core";

const result: ReplayResult = {
  success: true,
  exitCode: 0,
  traceId: "trace-123",
  replayedStatus: 200,
  recordedStatus: 200,
  statusMatch: true,
  bodyMatch: true,
  outboundCallsMatch: true,
  dbQueriesMatch: true,
  errors: [],
  artifacts: [],
};

// Validate at runtime
const validated = validateReplayResult(result);
```

### SuiteResult

```typescript
import { validateSuiteResult, type SuiteResult } from "@runtime-digital-twin/core";

const suite: SuiteResult = {
  suiteId: "suite-123",
  startedAt: Date.now(),
  completedAt: Date.now(),
  status: "pass",
  totalReplays: 5,
  passedReplays: 5,
  failedReplays: 0,
  errorReplays: 0,
  results: [/* ReplayResult[] */],
  summary: {
    durationMs: 1000,
    statusMatches: 5,
    bodyMatches: 5,
    outboundCallsMatches: 5,
    dbQueriesMatches: 5,
    totalErrors: 0,
    totalArtifacts: 0,
  },
};

const validated = validateSuiteResult(suite);
```

### TwinPlan

```typescript
import { validateTwinPlan, type TwinPlan } from "@runtime-digital-twin/core";

const plan: TwinPlan = {
  planId: "plan-123",
  name: "Test Plan",
  version: "1.0.0",
  createdAt: Date.now(),
  tasks: [
    {
      taskId: "task-1",
      traceId: "trace-123",
    },
  ],
};

const validated = validateTwinPlan(plan);
```

## Type Guards

```typescript
import { isReplayResult, isSuiteResult, isTwinPlan } from "@runtime-digital-twin/core";

if (isReplayResult(data)) {
  // TypeScript knows data is ReplayResult
  console.log(data.traceId);
}
```

## Error Formatting

```typescript
import { validateReplayResult, formatValidationError } from "@runtime-digital-twin/core";
import { z } from "zod";

try {
  validateReplayResult(invalidData);
} catch (error) {
  if (error instanceof z.ZodError) {
    console.error(formatValidationError(error));
  }
}
```

## Documentation

See `/docs/contracts.md` for complete JSON schema documentation and examples.

## Development

```bash
# Build
npm run build

# Test
npm test

# Watch mode
npm run dev
```
npm package: @runtime-env/cli
Description: Build once, deploy anywhere. Startup/runtime environment variable solution for JavaScript.
Author: Ernest
Latest version: 1.1.2

# @runtime-env/cli

## Installation

```sh
$ npm i -D @runtime-env/cli
```

`$ npx -p @runtime-env/cli runtime-env --help`

```
Usage: runtime-env [options] [command]

Options:
  -V, --version                                output the version number
  --global-variable-name <globalVariableName>  specify the global variable name (default: "runtimeEnv")
  --schema-file <schemaFile>                   specify the json schema file to be loaded (default: ".runtimeenvschema.json")
  --watch                                      turn on watch mode (default: false)
  -h, --help                                   display help for command

Commands:
  gen-js [options]                             generate a JavaScript file that includes environment variables within an object, making them
                                               accessible through the globalThis property
  gen-ts [options]                             generate a TypeScript file that provides the corresponding type definitions for the JavaScript
                                               file generated by the gen-js command
  interpolate [options]                        perform template interpolation by substituting environment variables
  help [command]                               display help for command
```

`$ npx -p @runtime-env/cli runtime-env gen-js --help`

```
Usage: runtime-env gen-js [options]

generate a JavaScript file that includes environment variables within an object, making them accessible through the globalThis property

Options:
  --env-file <envFile...>     set environment variables from supplied file (requires Node.js v20.12.0) (default: [])
  --output-file <outputFile>  specify the output file to be written instead of being piped to stdout
  -h, --help                  display help for command
```

`$ npx -p @runtime-env/cli runtime-env gen-ts --help`

```
Usage: runtime-env gen-ts [options]

generate a TypeScript file that provides the corresponding type definitions for the JavaScript file generated by the gen-js command

Options:
  --output-file <outputFile>  specify the output file to be written instead of being piped to stdout
  -h, --help                  display help for command
```

`$ npx -p @runtime-env/cli runtime-env interpolate --help`

```
Usage: runtime-env interpolate [options]

perform template interpolation by substituting environment variables

Options:
  --env-file <envFile...>     set environment variables from supplied file (requires Node.js v20.12.0) (default: [])
  --input-file <inputFile>    specify the input file to be loaded instead of being read from stdin
  --output-file <outputFile>  specify the output file to be written instead of being piped to stdout
  -h, --help                  display help for command
```

[Documentation](https://github.com/runtime-env/runtime-env#runtime-env)
npm package: @runtime-type-inspector/parcel-transformer
Description: RuntimeTypeInspector.js plugin for Parcel v2
Author: Hermann Rolfes
Latest version: 4.0.6

# Plugin for Parcel v2

For integrating this plugin follow this process:

1) `npm install --save-dev @runtime-type-inspector/parcel-transformer`

2) Edit your `.parcelrc`:

```json
{
    "extends": "@parcel/config-default",
    "transformers": {
        "*.js": ["@runtime-type-inspector/parcel-transformer", "..."]
    }
}
```

3) Make sure to declare RTI as globals:

```html
<script src="/node_modules/@runtime-type-inspector/runtime/index.cjs"></script>
<script>
  Object.assign(window, rtiRuntime);
</script>
<script src="./build/out.js"></script>
```

This is *kind of ugly*, but Parcel v2 simply doesn't seem to support adding import declarations inside a plugin. If I will find a possibility, I will fix this.

Parcel also drops files that export nothing, but given the nature of JSDoc comments in combination of RTI, a comment is converted into `registerTypedef(...)` for example. This means that typedefs in such files will simply be unregistered, causing runtime type errors (because it's an unknown type). Make sure to process such files individually and add them into the final `out.js`.
npm package: @runtime-type-inspector/plugin-parcel1
Description: RuntimeTypeInspector.js plugin for Parcel v1
Author: Hermann Rolfes
Latest version: 4.0.6

# Plugin for Parcel v1

For integrating this plugin follow this process:

1) `npm install --save-dev @runtime-type-inspector/plugin-parcel1`

2) Add this to your Parcel v1 `build.js` file:

```js
const bundler = new Bundler(entryFiles, options);
bundler.addAssetType('js', require.resolve('@runtime-type-inspector/plugin-parcel1'));
```

3) Make sure to declare RTI as globals:

```html
<script src="/node_modules/@runtime-type-inspector/runtime/index.cjs"></script>
<script>
  Object.assign(window, rtiRuntime);
</script>
<script src="./build/out.js"></script>
```

This is *kind of ugly*, but Parcel v1 simply doesn't seem to support adding import declarations inside a plugin. If I will find a possibility, I will fix this.

Parcel also drops files that export nothing, but given the nature of JSDoc comments in combination of RTI, a comment is converted into `registerTypedef(...)` for example. This means that typedefs in such files will simply be unregistered, causing runtime type errors (because it's an unknown type). Make sure to process such files individually and add them into the final `out.js`.
npm package: @runtime-type-inspector/plugin-rollup
Description: Rollup plugin for https://runtimetypeinspector.org/
Author: Hermann Rolfes
Latest version: 4.0.6

Rollup plugin for `@runtime-type-inspector/transpiler`.

Installation:

```sh
npm install @runtime-type-inspector/plugin-rollup
```

Example of integration into your build script:

- https://github.com/playcanvas/engine/pull/5817

Have fun! If you run into any issues, please open an issue at https://github.com/kungfooman/RuntimeTypeInspector.js
npm package: @runtime-type-inspector/plugin-webpack
Description: Webpack plugin for https://runtimetypeinspector.org/
Author: Hermann Rolfes
Latest version: 4.0.6

Version independent Webpack plugin for `@runtime-type-inspector/transpiler`.

Installation:

```sh
npm install @runtime-type-inspector/plugin-webpack
```

Example of integration into your build script:

- https://github.com/xenova/transformers.js/pull/409

Have fun! If you run into any issues, please open an issue at https://github.com/kungfooman/RuntimeTypeInspector.js
npm package: @runtime-type-inspector/plugin-webpack4
Description: Webpack 4 plugin for https://runtimetypeinspector.org/
Author: Hermann Rolfes
Latest version: 4.0.6

Webpack 4 plugin for `@runtime-type-inspector/transpiler`.

Installation:

```sh
npm install @runtime-type-inspector/plugin-webpack4
```

Example of integration into your build script:

- https://github.com/xenova/transformers.js/pull/409

Have fun! If you run into any issues, please open an issue at https://github.com/kungfooman/RuntimeTypeInspector.js
npm package: @runtime-type-inspector/plugin-webpack5
Description: Webpack 5 plugin for https://runtimetypeinspector.org/
Author: Hermann Rolfes
Latest version: 4.0.6

Webpack 5 plugin for `@runtime-type-inspector/transpiler`.

Installation:

```sh
npm install @runtime-type-inspector/plugin-webpack5
```

Example of integration into your build script:

- https://github.com/xenova/transformers.js/pull/409

Have fun! If you run into any issues, please open an issue at https://github.com/kungfooman/RuntimeTypeInspector.js