open-index/open-npm huggingface dataset:
npm package: @open-form/schemas
Description: JSON Schema definitions for OpenForm framework artifacts, blocks, and primitives
Author: OpenForm
Latest version: 0.3.1

<p align="center">
  <a href="https://open-form.dev?utm_source=github&utm_medium=schemas" target="_blank" rel="noopener noreferrer">
    <picture>
      <source media="(prefers-color-scheme: dark)" srcset="https://assets.open-form.dev/logo-400x400.png" type="image/png">
      <img src="https://assets.open-form.dev/logo-400x400.png" height="64" alt="OpenForm logo">
    </picture>
  </a>
  <br />
</p>

<h1 align="center">@open-form/schemas</h1>

<div align="center">

[![OpenForm documentation](https://img.shields.io/badge/Documentation-OpenForm-red.svg)](https://docs.open-form.dev?utm_source=github&utm_medium=schemas)
[![Follow on Twitter](https://img.shields.io/twitter/follow/OpenFormHQ?style=social)](https://twitter.intent/follow?screen_name=OpenFormHQ)

</div>

[OpenForm](https://open-form.dev?utm_source=github&utm_medium=schemas) is **documents as code**. It lets developers and AI agents define, validate, and render business documents using typed, composable schemas. This eliminates template drift, broken mappings, and brittle glue code — while giving AI systems a reliable document layer they can safely read, reason over, and generate against in production workflows.

## Package overview

Zod schemas for OpenForm artifacts, forms, documents, and primitives.

## Installation

```bash
npm install @open-form/schemas
```

## Usage

```typescript
import { FormSchema, DocumentSchema, BundleSchema } from "@open-form/schemas";

// Validate form data
const result = FormSchema.safeParse(myFormData);
if (!result.success) {
  console.log(result.error.issues);
}

// Parse and validate (throws on error)
const form = FormSchema.parse(myFormData);
```

## Changelog

View the [Changelog](https://github.com/open-form/open-form/blob/main/packages/schemas/CHANGELOG.md) for updates.

## Related packages

- [`@open-form/sdk`](../sdk) - OpenForm framework SDK

## Contributing

We're open to all community contributions! If you'd like to contribute in any way, please read our [contribution guidelines](https://github.com/open-form/open-form/blob/main/CONTRIBUTING.md) and [code of conduct](https://github.com/open-form/open-form/blob/main/CODE_OF_CONDUCT.md).

## License

This project is licensed under the MIT license.

See [LICENSE](https://github.com/open-form/open-form/blob/main/LICENSE.md) for more information.

## Acknowledgments

Built with these excellent libraries:

- [Zod](https://github.com/colinhacks/zod) - TypeScript-first schema validation
npm package: @open-form/types
Description: Core types and formatting utilities for OpenForm framework - renderer interfaces, templates, and field formatters
Author: OpenForm
Latest version: 0.3.1

<p align="center">
  <a href="https://open-form.dev?utm_source=github&utm_medium=types" target="_blank" rel="noopener noreferrer">
    <picture>
      <source media="(prefers-color-scheme: dark)" srcset="https://assets.open-form.dev/logo-400x400.png" type="image/png">
      <img src="https://assets.open-form.dev/logo-400x400.png" height="64" alt="OpenForm logo">
    </picture>
  </a>
  <br />
</p>

<h1 align="center">@open-form/types</h1>

<div align="center">

[![OpenForm documentation](https://img.shields.io/badge/Documentation-OpenForm-red.svg)](https://docs.open-form.dev?utm_source=github&utm_medium=types)
[![Follow on Twitter](https://img.shields.io/twitter/follow/OpenFormHQ?style=social)](https://twitter.com/intent/follow?screen_name=OpenFormHQ)

</div>

[OpenForm](https://open-form.dev?utm_source=github&utm_medium=types) is **documents as code**. It lets developers and AI agents define, validate, and render business documents using typed, composable schemas. This eliminates template drift, broken mappings, and brittle glue code — while giving AI systems a reliable document layer they can safely read, reason over, and generate against in production workflows.

## Package overview

Core types for the OpenForm framework.

## Installation

```bash
npm install @open-form/types
```

## Usage

```typescript
import type { Form } from "@open-form/types";

const myForm: Form = {
  name: "my-form",
  title: "My Form",
  // ...
};
```

## Changelog

View the [Changelog](https://github.com/open-form/open-form/blob/main/packages/types/CHANGELOG.md) for updates.

## Related packages

- [`@open-form/sdk`](../sdk) - OpenForm framework SDK

## Contributing

We're open to all community contributions! If you'd like to contribute in any way, please read our [contribution guidelines](https://github.com/open-form/open-form/blob/main/CONTRIBUTING.md) and [code of conduct](https://github.com/open-form/open-form/blob/main/CODE_OF_CONDUCT.md).

## License

This project is licensed under the MIT license.

See [LICENSE](https://github.com/open-form/open-form/blob/main/LICENSE.md) for more information.
npm package: @open-formulieren/infernologic
Description: InferNoLogic is the TypeScript library designed to cool down the hellfire of type mismatches in JsonLogic. Navigate through your complex logic rules with the confidence that your types align.
Author: Maykin Media
Latest version: 0.2.0

# InferNoLogic

[![Run CI build and tests](https://github.com/open-formulieren/InferNoLogic/actions/workflows/ci.yml/badge.svg)](https://github.com/open-formulieren/InferNoLogic/actions/workflows/ci.yml)
[![NPM package](https://img.shields.io/npm/v/@open-formulieren/infernologic.svg)](https://www.npmjs.com/package/@open-formulieren/infernologic)
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat)](https://github.com/prettier/prettier)

Type checker for [JsonLogic](https://jsonlogic.com/) expressions with full type inference

## Design goal

Infer the result types of JsonLogic expressions and possibly of data referenced in `{"var": ...}`
expressions.

- without the need of extra annotations; full inference without extra JsonLogic syntax
- fast; should run in a browser while editing
- soundness over completeness; prefer false negatives over false positives. For example: in
  `{"if": [predicate-expression, then-expression, else-expression]}` require then- and
  else-expressions of the same type, even though JsonLogic allows them to differing ones.
- actionable error messages; No "Computer says no" but a location in the expression tree with as
  narrow a scope as possible, with some helpful humane hint. (Aim for [Elm](https://elm-lang.org)
  and [Rust](https://www.rust-lang.org) compiler helpfulness)

## Usage

Install with npm or yarn:

```bash
npm install --save-dev @open-formulieren/infernologic
yarn add -D @open-formulieren/infernologic
```

## References

Builds on implementations from
[domdomegg/hindley-milner-typescript-minimal](https://github.com/domdomegg/hindley-milner-typescript-minimal)
for

- Algorithm W

  Damas, L. and Milner, R. (1982). Principal type-schemes for functional programs. Proceedings of
  the 9th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages - POPL '82.
  https://doi.org/10.1145/582153.582176

- Algorithm M

  Lee, O. and Yi, K. (1998). Proofs about a folklore let-polymorphic type inference algorithm. ACM
  Transactions on Programming Languages and Systems, 20(4), 707-723.
  https://doi.org/10.1145/291891.291892
npm package: @open-formulieren/monaco-json-editor
Description: A JSON editor using the Monaco editor
Author: Maykin Media
Latest version: 0.2.0

# Monaco JSON Editor

A JSON editor using the Monaco editor.

Provides a `JSONEditor` component wrapping the [Monaco editor](https://github.com/suren-atoyan/monaco-react) with sane defaults.

[![Run CI build and tests](https://github.com/open-formulieren/monaco-json-editor/actions/workflows/ci.yml/badge.svg)](https://github.com/open-formulieren/monaco-json-editor/actions/workflows/ci.yml)
[![NPM Version](https://img.shields.io/npm/v/%40open-formulieren%2Fmonaco-json-editor)](https://www.npmjs.com/package/@open-formulieren/monaco-json-editor)

## Contributing

Contributions that do not provide a direct benefit to the Open Forms project will unfortunately be
rejected, as we do not have the ambition nor resources to maintain these.

For (code) contributions that do fit the goals of this library, please follow these guidelines:

- Create an issue with a description of the problem or required feature
- Reference the issue ID in commit messages and pull requests
- Functionality must be documented in Storybook
- Functionality must be covered by tests - Jest (unit/integration) tests and/or Storybook
  interaction tests

## Getting started

1. Clone the repository and then ensure you use the correct node version:

```bash
nvm use
```

2. Start Storybook in dev mode for component development:

```bash
npm start
```

3. Make code changes, check in Storybook, add tests... etc.

4. Run the tests (Storybook needs to be running still!)

```bash
npm test
```

5. Check that the (Typescript) build compiles cleanly:

```bash
npm run build:esm
```

Additional NPM scripts can be found in `package.json`.
npm package: @open-frames/types
Description: Shared types for OpenFrames implementations
Latest version: 0.1.1

# Open Frames Types

A shared set of types for all Open Frames implementations

## Usage

```ts
import {
  OpenFramesUntrustedData,
  OpenFramesTrustedData,
  OpenFramesRequest,
  ValidationResponse,
  RequestValidator,
} from "@open-frames/types";

type RequestType = {
  clientProtocol: "test";
  untrustedData: OpenFramesUntrustedData & { foo: string };
  trustedData: OpenFramesTrustedData;
};

type ValidationResponseType = {
  foo: string;
};

class ExampleValidator
  implements RequestValidator<RequestType, ValidationResponseType, "test">
{
  readonly protocolIdentifier = "test";

  minProtocolVersion(): string {
    return `${this.protocolIdentifier}@VNext`;
  }

  isSupported(payload: OpenFramesRequest): payload is RequestType {
    return true;
  }

  async validate(
    payload: RequestType
  ): Promise<
    ValidationResponse<ValidationResponseType, typeof this.protocolIdentifier>
  > {
    return {
      isValid: true,
      clientProtocol: payload.clientProtocol,
      message: { foo: payload.untrustedData.foo },
    };
  }
}
```