open-index/open-npm huggingface dataset:
npm package: @matchlighter/cognizant_forms
Description: Easy, React(ive), declarative forms. Plus other buzz words that I don't want to come up with.
Author: Matchlighter
Latest version: 0.7.8

# Cognizant Forms

Easy, React(ive), declarative forms. Plus other buzz words that I don't want to come up with.

Cognizant Forms is inspired by Final Form and its style. Both are designed to be fast and reactive, only re-rendering when things change.
However, while Final Form implements its own oberservability and subscription mechanisms, Cognizant Forms builds on top of MobX.
One of the largest advantages of this is that it removes the need to explicitly configure subscriptions - no need to configure which fields rely on which other fields, what events lead to changes, etc.

### Attribution
Cognizant Forms borrows (or shamelessly steals - I'm not sure which) a number of principles and design decisions from Final Form/React Final Form. In fact, it started out as a link-layer between Final Form and MobX.

Some code is also extended/adapted/modified from the Final Form codebase. Such bits are used under the terms of Final Form's MIT license and credit for such bits (and for the previously-mentioned stolen design elements) is owed to the Final Form devs.
npm package: @matchlighter/decsera
Description: A modern decorator-based, extensible library for building client-side data models for easy hydration of JSON data.
Author: Matchlighter
Latest version: 0.4.4

# Decsera (Previously @matchlighter/mobx_model)

A modern decorator-based, extensible library for building client-side data models for easy hydration of JSON data.

## Defining Models

```ts

import { Model, field } from '@matchlighter/decsera';

class User extends Model {
    @field full_name: string;
    @field({ /* options */ }) username: string;

    @collection({ type: 'local' }) projects: Project[] = [];
}

```

## MobX
This library was originally built with MobX support built in out of the box.
However, MobX support was refactored to a separate module before the first public release.
MobX support can be enabled like such:
```js
// ES6
import "@matchlighter/decsera/mobx"; // Must be placed *before* any other imports of DecSera

// CommonJS
require('@matchlighter/decsera/mobx');
```

With MobX support enabled,
- `@field` automatically applies MobX `@observable`
- `@observable` / `@computed` are automatically applied in other appropriate locations
- Some other optimizations are made for supporting MobX & other features
npm package: @matchlighter/mobx_model
Description: A modern, extensible library for building client-side data models upon the principles of OOP.
Author: Matchlighter
Latest version: 0.1.5

# @matchlighter/mobx_model

A modern, extensible library for building client-side data models upon the principles of OOP.

## Defining Models

```ts

import { Model, field } from '@matchlighter/mobx_model';

class User extends Model {
    @field full_name: string;
    @field({ /* options */ }) username: string;

    @collection({ type: 'local' }) projects: Project[] = [];
}

```

## MobX
This library was originally built with MobX support built in out of the box.
However, MobX support was refactored to a separate module before the first public release.
MobX support can be enabled like such:
```js
// ES6
import * as mobx from 'mobx';
import { initMobxCompat } from '@matchlighter/mobx_model';
initMobxCompat(mobx);

// CommonJS
const mobx = require('mobx');
const mobxModel = require('@matchlighter/mobx_model');
mobxModel.initMobxCompat(mobx);
```

With MobX support enabled,
- `@field` automatically applies MobX `@observable`
- `@observable` / `@computed` are automatically applied in other appropriate locations
- Some other optimizations are made for supporting MobX & other features