Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@winglet/json

vincent-kk0MIT0.2.1TypeScript support: included

TypeScript library for safe and efficient JSON data manipulation with RFC 6901 (JSON Pointer) and RFC 6902 (JSON Patch) compliance, featuring prototype pollution protection and immutable operations

typescript, json, json-pointer, json-patch, rfc-6901, rfc-6902, json-path, data-manipulation, utilities, standards-compliant

readme

Albatrion

TypeScript JavaScript React Utility


Overview

Albatrion is a monorepo that brings together TypeScript/JavaScript based utilities and React component packages in one place. It provides high performance and stability, consisting of various utilities and optimized code that can be trusted in production environments.


Monorepo Structure

This repository consists of several packages with independent version management and deployment capabilities. Each package provides individual README.md documentation with detailed usage instructions, dependency information, and example code.

canard

lerx

winglet

Aileron (Internal Development Tools)

  • @aileron/benchmark - Performance benchmarking tools (internal use only)
  • @aileron/benchmark-form - Form performance benchmarks (internal use only)
  • @aileron/development-helper - Development helper utilities (internal use only)

Development Environment Setup

# Clone repository
dir=your-albatrion && git clone https://github.com/vincent-kk/albatrion.git "$dir" && cd "$dir"

# Install dependencies
nvm use && yarn install && yarn run:all build

# Use yarn workspaces
yarn workspace <package-name> <command>

# Run tests
yarn workspace <package-name> test

# Build
yarn workspace <package-name> build

Compatibility

This package is built with ECMAScript 2022 (ES2022) syntax. If you're using a JavaScript environment that doesn't support ES2022, you'll need to include this package in your transpilation process.

Supported environments:

  • Node.js 16.11.0 or later
  • Modern browsers (Chrome 94+, Firefox 93+, Safari 15+)

For legacy environment support: Please use a transpiler like Babel to transform the code for your target environment.


License

This repository is provided under the MIT license. For more details, please refer to the LICENSE file.


Contact

If you have any questions or suggestions related to the project, please create an issue.

📦 Packages

This monorepo contains the following packages:

Canard (Schema Form)

  • @canard/schema-form - Core schema form library
  • @canard/schema-form-ajv6-plugin - AJV 6.x validation plugin
  • @canard/schema-form-ajv8-plugin - AJV 8.x validation plugin
  • @canard/schema-form-antd-plugin - Ant Design plugin
  • @canard/schema-form-antd-mobile-plugin - Ant Design Mobile plugin
  • @canard/schema-form-mui-plugin - Material-UI plugin

Lerx (Promise Modal)

  • @lerx/promise-modal - Promise-based modal utility

Winglet (Utilities)

  • @winglet/common-utils - Common utility functions
  • @winglet/data-loader - Data loading utilities
  • @winglet/json - JSON manipulation utilities
  • @winglet/json-schema - JSON Schema utilities
  • @winglet/react-utils - React utility components and hooks

Aileron (Internal Development Tools)

  • @aileron/benchmark - Performance benchmarking tools (internal use only)
  • @aileron/benchmark-form - Form performance benchmarks (internal use only)
  • @aileron/development-helper - Development helper utilities (internal use only)

🚀 Development

Prerequisites

  • Node.js 18+
  • Yarn 4.9.1+

Installation

yarn install

Building

# Build all packages
yarn build:all

# Build specific package
yarn workspace @canard/schema-form build

📋 Version Management

This project uses Changesets for version management and publishing.

Creating a Changeset

When you make changes to any package, create a changeset to document your changes:

yarn changeset

This will:

  1. Ask which packages have changed
  2. Ask what type of change (major/minor/patch)
  3. Ask for a summary of the changes (write in English)
  4. Generate a changeset file

Releasing

You can release manually using the following commands:

# Update package versions based on changesets
yarn changeset:version

# Publish packages to npm
yarn changeset:publish

Changeset Guidelines

  • patch: Bug fixes, documentation updates, internal refactoring
  • minor: New features, new exports, non-breaking changes
  • major: Breaking changes, removed exports, API changes

🔧 Scripts

Building & Publishing

  • yarn build:all - Build all packages
  • yarn changeset - Create a new changeset
  • yarn changeset:version - Update versions based on changesets
  • yarn changeset:publish - Publish packages to npm

Package Tagging

  • yarn tag:packages <commit> - Create Git tags for all packages based on their versions in a specific commit
  • yarn tag:packages <commit> --push - Create tags and automatically push them to remote
  • yarn tag:packages <commit> -p - Create tags and automatically push them to remote (short flag)

Tagging Examples

# Create tags for packages in current commit
yarn tag:packages HEAD

# Create tags for a specific commit and push to remote
yarn tag:packages f20ca74baa16456ba9de006c709c61d29a1d1708 --push

# Create tags for packages in an older commit with short flag
yarn tag:packages dcd9a7826f95ec694bbc7cfc4a79f10af93444ad -p

The tagging script automatically:

  • Discovers all packages in the monorepo
  • Creates tags in format @scope/package@version
  • Excludes private packages from tagging
  • Checks for existing tags to prevent duplicates
  • Provides interactive confirmation before creating tags

📄 License

MIT License - see individual packages for specific license information.