open-index/open-npm huggingface dataset:
npm package: @psephos/zkp-voting
Description: Biblioteca ferramentas Psephos, compatível com Deno e Node.js
Latest version: 1.0.2

# Psephos - Zkp-Voting

Lib de integração com o projeto Psephos! Esta biblioteca contem ferramentas
(utils) para votação com Zero Knowledge.

## Licença

MIT

## Contribuições

Contribuições são bem-vindas! Por favor, abra uma issue ou envie um pull
request.
npm package: @pseuco/ccs-compiler
Description: pseuCo to CCS Compiler
Author: Sebastian Biewer
Latest version: 2.2.0

pseuCo to CCS Compiler
===============

This repository contains a compiler for pseuCo that translates programs to CCS.
For more information see [pseuCo.com](https://pseuco.com).

Developed by [Sebastian Biewer](https://depend.cs.uni-saarland.de/~biewer/)


License
-------
Copyright (c) 2013 - 2024  
[Saarland University](https://www.uni-saarland.de)  
[Dependable Systems and Software](https://depend.cs.uni-saarland.de)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
npm package: @pseuco/ccs-interpreter
Description: CCS interpreter for pseuCo.com
Author: Felix Freiberger
Latest version: 2.0.6

# CCS Interpreter

This module allows parsing CCS terms and analyzing their semantics. Originally written for [pseuCo.com](https://pseuco.com/), it's been completely re-written and should now be more ready for general consumption.
In addition to providing one-shot generation of transitions for CCS terms, this module generates full inference trees and allows interactive construction and representation of partial inference trees.

_Note that this project has *nothing* to do with CSS (Cascading Style Sheets)._


## Authors

[Felix Freiberger](https://depend.cs.uni-saarland.de/~freiberger/), [Sebastian Biewer](https://depend.cs.uni-saarland.de/~biewer/)


## License

Copyright (c) 2013 - 2023 
[Saarland University](https://www.uni-saarland.de)  
[Dependable Systems and Software](https://depend.cs.uni-saarland.de)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
npm package: @pseuco/lang
Description: pseuCo Language API
Author: Sebastian Biewer
Latest version: 2.0.0

pseuCo Language
===============

PseuCo is a programming language designed to teach concurrent programming. It features a heavily simplified Java-like syntax, and includes direct support for message passing inspired by Go.

The language was created by Christian Eisentraut and Holger Hermanns at the chair for Dependable Systems and Software at Saarland University for their Concurrent Programming lecture.

The pseuCo parser was developed by Sebastian Biewer and Pascal Held. The abstract syntax tree was developed by Sebastian Biewer. The package is used inside the pseuCo.com project.


License
-------
 
Copyright (c) 2013 - 2024
[Saarland University](https://www.uni-saarland.de)  
[Dependable Systems and Software](https://depend.cs.uni-saarland.de)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
npm package: @pseuco/static-semantics
Description: Static Semantics analysis (including type checking) for pseuCo programs.
Author: Sebastian Biewer, Saarland University
Latest version: 2.1.1

pseuCo static semantics
===============

This repository contains the type-checker for pseuco programs parsed using [@pseuco/lang](https://dgit.cs.uni-saarland.de/pseuco/pseuco-lang).

Developed by [Sebastian Biewer](https://depend.cs.uni-saarland.de/~biewer/)


License
-------
Copyright (c) 2013 - 2024  
[Saarland University](https://www.uni-saarland.de)  
[Dependable Systems and Software](https://depend.cs.uni-saarland.de)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
npm package: @pseudocoder-in/ftcomponents
Description: ---
Author: Subhash Jha
Latest version: 1.1.6

## Resuable UI Componenents used in the Family Tree App

---

<br>

### NavTree

UI Component to load and edit the tree data.
<img width="843" alt="Screenshot 2021-05-21 at 1 33 13 PM" src="https://user-images.githubusercontent.com/83978810/119103966-5c566480-ba39-11eb-9f17-ae30438d5b0d.png">
<img width="841" alt="Screenshot 2021-05-21 at 1 33 59 PM" src="https://user-images.githubusercontent.com/83978810/119103985-60828200-ba39-11eb-9551-d9e2312cf935.png">


#### Usage

```JS
import { NavTree } from '@pseudocoder-in/ftcomponents';
```
```JS
<NavTree 
    theme: "dark", // light/dark
    data: treeData, // Tree data in Json format
    width: "100vw",
    height: "100vh",
    onUpdate: {(updatedTreeData) => { /* Handle updated data in the client side*/}}
/>
```
<br>

### TreeViewer

Component to load the tree json data and display it in a tree like structure. It uses react-tree-graph and d3 libraries.

![treeviewer](https://user-images.githubusercontent.com/83978810/118334685-ae742300-b52b-11eb-8a76-e7959b7365b4.gif)

#### Usage

```JS
import { TreeViewer } from '@pseudocoder-in/ftcomponents';
```
```JS
<TreeViewer 
    theme: "dark", // light/dark
    data: treeData, // Tree data in Json format
    width: "100vw",
    height: "100vh",
    handleShare: () => { }, //Optional parameter
    handleFullScreen: () => { } //Optional parameter
/>
```

<br>

### Sample Input Data (treeData)

```JS
export const treeData = {
    "1":{
        id:"1",
        name:"Rajeev Gupta",
        partner:" Nita Gupta",
        children:["2","3","4"],
        isRoot: true
    },
    "2":{
        id:"2",
        name:"Aalok kumar Gupta",
        partner:"Rhea Gupta",
        children:["5"],
    },
    "3":{
        id:"3",
        name:"Sanjeev Gupta",
        partner:"Roshani Gupta",
        children:[],
    },
    "4":{
        id:"4",
        name:"Robin Gupta",
        partner:"Raashi Gupta",
        children:[],
    },
    "5":{
        id:"5",
        name:"Sorabh Gupta",
        partner:"",
        children:[],
    },

}
```
<br>

### Building from codes
- Clone the repository
- Run `npm install`
- Run `yarn storybook` for viewing the Componenents
- Run `yarn build` to create a buld in `dist` folder

<br>

> More customization coming soon ... :smile:
npm package: @pseudomera/date-parser
Description: Helper that takes a string or date and returns it in a comprehensive format.
Author: PseudoMera
Latest version: 1.0.5

# Pseudo Date Parser

Utility to help you transform your dates into a comprehensive format.

## Getting Started

### Installing
```bash
$ npm i @pseudomera/date-parser
```

### How to use it
1. We import the package
```javascript
import PseudoDateParser from "@pseudomera/date-parser/dist/dateParser"
```

2. We can pass a number, date or a valid date string (e.g an ISO string)

    ```javascript
    //If you are using unix date format, e.g. 1610814996, It needs to be a number
    //If you pass it as a string it will fail.
    const parsedDate = PseudoDateParser(new Date(1610814996))

    const parsedDate = PseudoDateParser(new Date())

    const parsedNumber = PseudoDateParser(2)
    
    const parsedISOString = PseudoDateParser("2007-03-01T13:00:00Z")

    ```
    
3. We use our parsed data!
```javascript

    console.log(
    `${parsedDate.dayOfTheWeek} ${parsedDate.monthNumber} ${parsedDate.month} ${parsedDate.year}`
    );
    
    console.log(
    `${parsedNumber.dayOfTheWeek} ${parsedNumber.monthNumber} ${parsedNumber.month} ${parsedNumber.year}`
    );
    
    console.log(
    `${parsedISOString.dayOfTheWeek} ${parsedISOString.monthNumber} ${parsedISOString.month} ${parsedISOString.year}`
    );
```

### Available properties

```typescript
  day: string;
  month: string;
  year: string;
  dayOfTheWeek: string;
  hour: string;
  minutes: string;
  seconds: string;
  miliseconds: string;
  amOrPm: string;
  monthNumber: string;
  monthShort: string;
```

## Built With

* [date-fns](https://date-fns.org/) - Modern Javascript date utility library
* [typescript](https://www.typescriptlang.org/) - Typed Javascript

## Contributing

Just open a pull request or issue.

## Versioning

We use [SemVer](http://semver.org/) for versioning.

## Authors

* **Albin Frias** - [PseudoMera](https://github.com/PseudoMera)

## License

This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details
npm package: @pseudowrite/extension-inserted
Description: TipTap extension for handling 'inserted' Marks.
Latest version: 2.0.6

# @sudowrite/extension-inserted

A TipTap extension used to convert HTML with inline `<span class="inserted">...</span>` blocks into an `inserted` mark on each node within the inserted span.

It also does the reverse:  renders HTML in which each Node with the `inserted` mark is rendered inside a `<span class="inserted">...</span>` HTML block.

An "inserted" block represents a block of text in the editor that was inserted by some external service.  You may wish to apply CSS styles to the `inserted` class to indicate visually to users that the text was inserted.

## Using this Package

Install:

  ```sh
  npm install @sudowrite/extension-inserted
  ```

Use it in your code like any other extension:

  ```js
  import { Editor } from '@tiptap/core'
  import Inserted from '@sudowrite/extension-inserted'

  new Editor({
    extensions: [
      ...
      Inserted,
    ],
  })
  ```
npm package: @psf/bitcoincash-ops
Description: Bitcoin Cash OP codes
Author: Gabriel Cardona
Latest version: 2.0.0

# bitcoin-ops

[![build status](https://secure.travis-ci.org/bitcoinjs/bitcoinjs-ops.png)](http://travis-ci.org/bitcoinjs/bitcoin-ops)
[![Version](http://img.shields.io/npm/v/bitcoinjs-ops.svg)](https://www.npmjs.org/package/bitcoin-ops)


## License [MIT](LICENSE)
npm package: @psf/bitcoincash-zmq-decoder
Description: decode transaction and block hex strings returned from zmq
Author: Chris Troutner
Latest version: 0.1.5

# bitcoincash-zmq-decoder

## install

```
npm i bitcoincash-zmq-decoder --save
```

## usage

First `require` the lib and pass in the network to the constructor. Options are `"mainnet"` and `"testnet"`.

```js
let BitcoinCashZMQDecoder = require('bitcoincash-zmq-decoder');
let bitcoincashZmqDecoder =  new BitcoinCashZMQDecoder("mainnet");
```

### Transactions

Pass the hex of a transaction returned from `bitcoind` via zeromq

```js
bitcoincashZmqDecoder.decodeTransaction(message);

// returns
{
  "format": {
    "txid": "6dd25f39f324c085a013a2f55fb55392c280ca82c17e602249ddb2c7b6f6aede",
    "version": 1,
    "locktime": 0,
    "size": 226,
    "vsize": 226
  },
  "inputs": [
    {
      "txid": "91dff995f6d5d64a106d6bcbbd8304fcba0c557871cba814779dde889a1a1ad6",
      "n": 0,
      "script": "3045022100963b819d81006f04e2650524b10ec9ee9ed0ab305e707f54704d23cc25191f420220560dd8f0c32104b34aa3ac3af888867506a1c623100d1ff298e462e40041e6b941 0350b30d68fc3a1cec60f295928426bb12d10e98da9bcc92f8d98ac327265c9d8c",
      "sequence": 4294967295
    }
  ],
  "outputs": [
    {
      "satoshi": 7631108298,
      "value": "76.31108298",
      "n": 0,
      "scriptPubKey": {
        "asm": "OP_DUP OP_HASH160 c83de633455d60f7618bea613ebe596952c57f1e OP_EQUALVERIFY OP_CHECKSIG",
        "hex": "76a914c83de633455d60f7618bea613ebe596952c57f1e88ac",
        "type": "pubkeyhash",
        "addresses": [
          "1KFnJCZNFZ863BmWSsyWRJ4ESwJViiZnoa"
        ]
      }
    },
    {
      "satoshi": 19011700,
      "value": "0.19011700",
      "n": 1,
      "scriptPubKey": {
        "asm": "OP_DUP OP_HASH160 463b57510fda4a831cae313150088c67f5893479 OP_EQUALVERIFY OP_CHECKSIG",
        "hex": "76a914463b57510fda4a831cae313150088c67f589347988ac",
        "type": "pubkeyhash",
        "addresses": [
          "17QMPX5tphADbxTdSiu4BakYgZwehN3iPZ"
        ]
      }
    }
  ]
}
```

### Blocks

Pass the hex of a block returned from `bitcoind` via zeromq

```js
let block = bitcoincashZmqDecoder.decodeBlock(hex);

// returns

{
  "transactions": 162,
  "totalBCHSent": 39478786896,
  "reward": 1250000000,
  "prevHash": "8e31a5d886ddf478924504eb93e0e9d4e9540080ffc434010000000000000000",
  "id": "eeb1c8194c5487a4d78e9bea4c755a7abe526feab59589010000000000000000",
  "hash": "0000000000000000018995b5ea6f52be7a5a754cea9b8ed7a487544c19c8b1ee",
  "merkleRoot": "9d859cf70f76fbeedf1537c1d4b5dcc6ceab02ff637b232711b31e1dd78feea2",
  "version": 536870912,
  "time": 1532932006,
  "bits": 402773255,
  "nonce": 1127365190
}

```
npm package: @psf/coininfo
Description: JavaScript component for crypto currency specific information.
Latest version: 4.0.0

coininfo
========

[![build status](https://api.travis-ci.org/cryptocoinjs/coininfo.svg)](http://travis-ci.org/cryptocoinjs/coininfo)

JavaScript component for crypto currency specific information such as version numbers, DNS seeds, etc.
Works in Node.js and the browser.


Installation
------------

    npm i coininfo


Usage
-----

```js
var coininfo = require('coininfo')

console.dir(coininfo('LTC')) //use LTC-TEST for testnet
// =>
/*
{ versions:
   { public: 48,
     private: 176,
     scripthash: 5,
     bip32: { public: 27108450, private: 27106558 } } }
*/
```

Could also:

```js
var litecoin = coininfo.litecoin.main
var litecoinTest = coininfo.litecoin.test
```

Useful to use in conjunction with [coinkey](https://github.com/cryptocoinjs/coinkey) and [coinstring](https://github.com/cryptocoinjs/coinstring).


Want to Use With Bitcore or bitconjs-lib?
-----------------------------------------

**bitcoinjs-lib example:**

```js
var coininfo = require('coininfo')
var bitcoin = coininfo.bitcoin.main
var bitcoinBitcoinJSLib = bitcoin.toBitcoinJS()
```

**Bitcore example:**

```js
var coininfo = require('coininfo')
var bitcoin = coininfo.bitcoin.main
var bitcoinBitcoreLib = bitcoin.toBitcore()
```


Pull requests?
--------------

Follow the canonical example:

https://github.com/cryptocoinjs/coininfo/blob/master/lib/coins/btc.js


License
-------

MIT
npm package: @psf/minimaldata
Description: A module to check bitcoin policy: SCRIPT_VERIFY_MINIMALDATA
Author: Daniel Cousens
Latest version: 1.0.2

# minimaldata

[![NPM Package](https://img.shields.io/npm/v/minimaldata.svg?style=flat-square)](https://www.npmjs.org/package/minimaldata)
[![Build Status](https://img.shields.io/travis/bitcoinjs/minimaldata.svg?branch=master&style=flat-square)](https://travis-ci.org/bitcoinjs/minimaldata)
[![js-standard-style](https://cdn.rawgit.com/feross/standard/master/badge.svg)](https://github.com/feross/standard)

Following BIP62.3, this module validates that a script uses only minimal data pushes.


## Example

``` javascript
var minimaldata = require('minimaldata')

// OP_PUSHDATA4, 1 byte
var script = new Buffer('4e0100000000', 'hex')
console.log(minimaldata(script))
// => false

script = new Buffer('0101', 'hex')
console.log(minimaldata(script))
// => true
```

## LICENSE [MIT](LICENSE)
npm package: @psf/pushdata-bitcoin
Description: encode/decode value as bitcoin OP_PUSHDATA integer
Author: Daniel Cousens
Latest version: 1.2.2

# pushdata-bitcoin

[![NPM Package](https://img.shields.io/npm/v/pushdata-bitcoin.svg?style=flat-square)](https://www.npmjs.org/package/pushdata-bitcoin)
[![Build Status](https://img.shields.io/travis/bitcoinjs/pushdata-bitcoin.svg?branch=master&style=flat-square)](https://travis-ci.org/bitcoinjs/pushdata-bitcoin)
[![js-standard-style](https://cdn.rawgit.com/feross/standard/master/badge.svg)](https://github.com/feross/standard)

Encode/decode value as bitcoin `OP_PUSHDATA` integer


## Example

``` javascript
var pushdata = require('pushdata-bitcoin')

var i = 120
var buffer = new Buffer(pushdata.encodingLength(i))

pushdata.encode(buffer, i)
```

## LICENSE [MIT](LICENSE)
npm package: @psg2/pi-costs
Description: Analyze cost and token usage from pi coding agent sessions
Latest version: 1.0.1

# pi-costs

Analyze cost and token usage from [pi coding agent](https://github.com/badlogic/pi-mono) sessions.

Reads the JSONL session logs stored in `~/.pi/agent/sessions/` and produces a summary of costs, token usage, and breakdowns by model, project, day, or individual session.

## Usage

Run directly with `bunx` (no install needed):

```bash
bunx @psg2/pi-costs
```

Or install globally:

```bash
bun install -g @psg2/pi-costs
pi-costs
```

## Options

```
pi-costs                        All projects, last 7 days
pi-costs --days 30              Last 30 days
pi-costs --days 0               All time
pi-costs --project my-app       Filter by project (substring match)
pi-costs --sessions             Show per-session breakdown
pi-costs --daily                Show per-day breakdown
pi-costs --dir <path>           Custom sessions directory
```

## Example output

```
======================================================================
  Pi Session Costs — last 7 days
======================================================================

  Total cost:       $42.5100
  Sessions:         18
  LLM requests:     320
  Input tokens:     50.2K ($0.2510)
  Output tokens:    1.2M ($30.0000)
  Cache read:       15.0M ($9.0000)
  Cache write:      800.0K ($3.2590)

  ──────────────────────────────────────────────────────────────────
  By Model:
  Model                                              Cost  Requests
  ──────────────────────────────────────────────────────────────────
  claude-opus-4-5                                $30.1200       210
  claude-sonnet-4-5                              $12.3900       110

  ──────────────────────────────────────────────────────────────────
  By Project:
  Project                                            Cost  Requests
  ──────────────────────────────────────────────────────────────────
  my-web-app                                     $28.4500       200
  my-api-server                                  $14.0600       120

======================================================================
```

## How it works

Pi stores session logs as JSONL files in `~/.pi/agent/sessions/<project>/`. Each assistant message includes a `usage` field with token counts and pre-calculated costs in USD:

```json
{
  "type": "message",
  "message": {
    "role": "assistant",
    "model": "claude-opus-4-5",
    "usage": {
      "input": 3183,
      "output": 104,
      "cacheRead": 50000,
      "cacheWrite": 4000,
      "cost": {
        "input": 0.0159,
        "output": 0.0026,
        "cacheRead": 0.025,
        "cacheWrite": 0.025,
        "total": 0.0685
      }
    }
  }
}
```

See the [pi session format docs](https://github.com/badlogic/pi-mono/blob/main/packages/coding-agent/docs/session.md) for full details.

## Development

```bash
bun install
bun test          # Run tests
bun run dev       # Run from source
bun run build     # Build for distribution
bun run lint      # Lint
```

## License

MIT
npm package: @pshao/swagger-compare
Description: A tool to check and validate Swagger/OpenAPI specifications
Latest version: 0.0.1

# SwaggerCheck

A tool to check and validate Swagger/OpenAPI specifications for compatibility between versions. This tool supports migration scenarios described in the [TypeSpec Azure documentation](https://azure.github.io/typespec-azure/docs/migrate-swagger/01-get-started/).

## Overview
This tool simplifies comparing Swagger/OpenAPI specifications by normalizing both documents before comparison, removing non-essential differences to focus on API compatibility issues.

## Installation

### Global Installation

```bash
npm install -g @autorest/swagger-compare
```

### Local Installation

```bash
npm install @autorest/swagger-compare
```

## Usage

### As a Command Line Tool

```bash
# Basic usage
swagger-check --oldPath ./old-swagger --newPath ./new-swagger

# With output folder for detailed reports
swagger-check --oldPath ./old-swagger --newPath ./new-swagger --outputFolder ./results

# Using positional arguments (shorter syntax)
swagger-check ./old-swagger ./new-swagger
```

## Features

- **Document Normalization**: Processes Swagger files to eliminate non-essential differences
- **Smart Comparison**: Identifies meaningful API changes while ignoring formatting differences
- **Enum Handling**: Standardizes enum naming to CamelCase and removes unnecessary details
- **Parameter Normalization**: Removes common parameters like API version, subscription ID, etc.
- **Page Model Detection**: Automatically identifies and standardizes paging patterns
- **Detailed Reporting**: Generates comprehensive comparison reports in the specified output folder
- **PowerShell Integration**: Includes scripts for checking SDK compatibility

## Configuration

The tool can be configured to ignore certain types of differences:

- `ignoreDescription`: Exclude description field differences
- `enumNameToCamelCase`: Standardize enum names to CamelCase format

## Development

```bash
# Build the project
npm run build

# Run the project
npm start

# Development mode with auto-reloading
npm run dev

# Run tests
npm test

# Lint the code
npm run lint
```

## License

MIT
npm package: @pshaw/build-util
Description: Tries to save some time by providing basic build configurations
Latest version: 3.0.1

# Build Util

Tries to save some time by providing basic build configurations

## Installation

```bash
npm install --save-dev @pshaw/build-util
```
or
```bash
yarn add --dev @pshaw/build-util
```

---
This documentation was generated using [writeme](https://www.npmjs.com/package/@pshaw/writeme)
npm package: @pshaw/convict-util
Description: A helper package for reading configs in using convict
Latest version: 1.4.3

# Convict Util

A helper package for reading configs in using convict

## Installation

```bash
npm install --save @pshaw/convict-util
```
or
```bash
yarn add @pshaw/convict-util
```

---
This documentation was generated using [writeme](https://www.npmjs.com/package/@pshaw/writeme)
npm package: @pshaw/eslint-config-core
Description: A pratical style preset for ESLint
Latest version: 1.4.2

# Eslint Config Core

A pratical style preset for ESLint

## Installation

```bash
npm install --save-dev @pshaw/eslint-config-core
```
or
```bash
yarn add --dev @pshaw/eslint-config-core
```

---
This documentation was generated using [writeme](https://www.npmjs.com/package/@pshaw/writeme)
npm package: @pshaw/eslint-config-react
Description: A pratical React style preset for ESLint
Latest version: 1.4.2

# Eslint Config React

A pratical React style preset for ESLint

## Installation

```bash
npm install --save-dev @pshaw/eslint-config-react
```
or
```bash
yarn add --dev @pshaw/eslint-config-react
```

---
This documentation was generated using [writeme](https://www.npmjs.com/package/@pshaw/writeme)
npm package: @pshaw/eslint-config-typescript
Description: A pratical Typescript style preset for ESLint
Latest version: 1.4.3

# Eslint Config Typescript

A pratical Typescript style preset for ESLint

## Installation

```bash
npm install --save-dev @pshaw/eslint-config-typescript
```
or
```bash
yarn add --dev @pshaw/eslint-config-typescript
```

---
This documentation was generated using [writeme](https://www.npmjs.com/package/@pshaw/writeme)
npm package: @pshaw/logger
Description: A preformatted, opinionated logger
Latest version: 2.0.4

# Logger

A preformatted, opinionated logger

## Installation

```bash
npm install --save @pshaw/logger @pshaw/winston-formats winston
```
or
```bash
yarn add @pshaw/logger @pshaw/winston-formats winston
```

## Examples

```javascript
const { join } = require('path');

const { logger, consoleTransport, fileTransport } = require('@pshaw/logger');

const l = logger()
  .add(consoleTransport())
  .add(
    fileTransport({
      path: join(__dirname, 'file-and-console.log'),
    }),
  );

l.info('test');
l.error('rawr');

const taggedL = l.child({ tags: 'tagged' });
taggedL.info('test');
```

---
This documentation was generated using [writeme](https://www.npmjs.com/package/@pshaw/writeme)
npm package: @pshaw/markdown-util
Description: A helper package for writing markdown files
Latest version: 1.4.3

# Markdown Util

A helper package for writing markdown files

## Installation

```bash
npm install --save-dev @pshaw/markdown-util
```
or
```bash
yarn add --dev @pshaw/markdown-util
```

---
This documentation was generated using [writeme](https://www.npmjs.com/package/@pshaw/writeme)
npm package: @pshaw/resume-template
Description: A template you can use to generate resumes
Latest version: 1.1.3

# Resume Template

A template you can use to generate resumes

## Installation

```bash
npm install --save @pshaw/resume-template
```
or
```bash
yarn add @pshaw/resume-template
```

---
This documentation was generated using [writeme](https://www.npmjs.com/package/@pshaw/writeme)
npm package: @pshaw/strict-uri-encode
Description: A stricter URI encode adhering to RFC 3986
Author: Kevin Mårtensson
Latest version: 2.0.2

# strict-uri-encode [![Build Status](https://travis-ci.org/kevva/strict-uri-encode.svg?branch=master)](https://travis-ci.org/kevva/strict-uri-encode)

> A stricter URI encode adhering to [RFC 3986](http://tools.ietf.org/html/rfc3986)


## Install

```
$ npm install strict-uri-encode
```


## Usage

```js
const strictUriEncode = require('strict-uri-encode');

strictUriEncode('unicorn!foobar');
//=> 'unicorn%21foobar'

strictUriEncode('unicorn*foobar');
//=> 'unicorn%2Afoobar'
```


## API

### strictUriEncode(string)

#### string

Type: `string` `number`

String to URI encode.


## License

MIT © [Kevin Mårtensson](https://github.com/kevva)
npm package: @pshaw/tslint-preset-core
Description: A pratical style preset for TSLint
Latest version: 1.4.2

# Tslint Preset Core

A pratical style preset for TSLint

## Installation

```bash
npm install --save-dev @pshaw/tslint-preset-core tslint
```
or
```bash
yarn add --dev @pshaw/tslint-preset-core tslint
```

## Examples

```json
{
  "extends": [
    "@pshaw/tslint-preset-core"
  ]
}
```
---
This documentation was generated using [writeme](https://www.npmjs.com/package/@pshaw/writeme)
npm package: @pshaw/tslint-preset-react
Description: A pratical React style preset for TSLint
Latest version: 1.4.2

# Tslint Preset React

A pratical React style preset for TSLint

## Installation

```bash
npm install --save-dev @pshaw/tslint-preset-react tslint
```
or
```bash
yarn add --dev @pshaw/tslint-preset-react tslint
```

## Examples

```json
{
  "extends": [
    "@pshaw/tslint-preset-core",
    "@pshaw/tslint-preset-react"
  ]
}
```
---
This documentation was generated using [writeme](https://www.npmjs.com/package/@pshaw/writeme)
npm package: @pshaw/tslint-react-preset
Description: A pratical React style preset for TSLint
Latest version: 1.3.1

# Tslint React Preset

A pratical React style preset for TSLint

## Installation

```bash
npm install --save-dev @pshaw/tslint-react-preset tslint
```
or
```bash
yarn add --dev @pshaw/tslint-react-preset tslint
```

## Examples

```json
{
  "extends": [
    "@pshaw/tslint-preset-core",
    "@pshaw/tslint-react-preset"
  ]
}
```
---
This documentation was generated using [writeme](https://www.npmjs.com/package/@pshaw/writeme)
npm package: @pshaw/winston-formats
Description: A set of Winston formats
Latest version: 1.5.3

# Winston Formats

A set of Winston formats

## Installation

```bash
npm install --save @pshaw/winston-formats winston
```
or
```bash
yarn add @pshaw/winston-formats winston
```

---
This documentation was generated using [writeme](https://www.npmjs.com/package/@pshaw/writeme)
npm package: @pshaw/writeme
Description: A readme generator
Latest version: 3.1.2

# Writeme

A readme generator

## Installation

```bash
npm install --save-dev @pshaw/writeme
```
or
```bash
yarn add --dev @pshaw/writeme
```

## Examples

```javascript
import writeme from '@pshaw/writeme';
// Point to where the directory where the package.json and writeme.config.js files are
writeme(__dirname);
```

---
This documentation was generated using [writeme](https://www.npmjs.com/package/@pshaw/writeme)
npm package: @pshomov/esbuildnx
Description: Esbuild plugin for Nx
Author: Brian McBride
Latest version: 0.2.0

# esbuildnx Plugin

The esbuild Plugin contains generators and executors for compiling a node app using [esbuild](https://esbuild.github.io/)

## Installing the esbuildnx Plugin

Installing the esbuildnx plugin to a workspace can be done with the following:

```shell
#yarn
yarn add -D @anatine/esbuildnx
```

```shell
#npm
npm install -D @anatine/esbuildnx
```

## Application Setup

This plugin is designed to be used with an existing Node application. Target an existing node app and run the setup.
```shell
nx generate @anatine/esbuildnx:setup <node-app>
```

If you want to replace the existing build command with esbuild, use the `--override` flag.
```shell
nx generate @anatine/esbuildnx:setup <node-app> --override 
```

## Commands

### esbuild

After a node project is setup, execute a build with the command:
```shell
nx esbuild <node-app>
```

#### esbuild options:  `external: [ ... ]`

Not every module can go through treeshaking and packing.
Esbuild provides an option called `external` that contains an array of package name strings.

This plugin will take all dependencies in the `package.json`, 
and merge them with any external files defined in the app `esbuild.json` file.
These node_modules will be copied into the dist directory at build time and will not be packed into the single .js file.

The entire compiled dist folder can be deployed into a docker container with minimum node_modules.

One of the goals of this plugin will be to grow and maintain a list of npm modules that can't be bundled by esbuild 
and automatically add them to the external file list.

#### watch
The `--watch` flag is also available. In watch mode, the `node_module` files are not copied over.
```shell
nx esbuild <node-app> --watch
```

### Overridden build

If the setup was run with the `--overwrite` flag, build your node app as normal within the nx environment.
```shell
nx build <node-app>
```
npm package: @psi-spell-encode/psi-spell-encode-android-arm-eabi
Description: This is the **armv7-linux-androideabi** binary for `@psi-spell-encode/psi-spell-encode`
Latest version: 0.0.2

# `@psi-spell-encode/psi-spell-encode-android-arm-eabi`

This is the **armv7-linux-androideabi** binary for `@psi-spell-encode/psi-spell-encode`
npm package: @psi-spell-encode/psi-spell-encode-android-arm64
Description: This is the **aarch64-linux-android** binary for `@psi-spell-encode/psi-spell-encode`
Latest version: 0.0.2

# `@psi-spell-encode/psi-spell-encode-android-arm64`

This is the **aarch64-linux-android** binary for `@psi-spell-encode/psi-spell-encode`
npm package: @psi-spell-encode/psi-spell-encode-darwin-arm64
Description: This is the **aarch64-apple-darwin** binary for `@psi-spell-encode/psi-spell-encode`
Latest version: 0.0.2

# `@psi-spell-encode/psi-spell-encode-darwin-arm64`

This is the **aarch64-apple-darwin** binary for `@psi-spell-encode/psi-spell-encode`
npm package: @psi-spell-encode/psi-spell-encode-darwin-universal
Description: This is the **universal-apple-darwin** binary for `@psi-spell-encode/psi-spell-encode`
Latest version: 0.0.2

# `@psi-spell-encode/psi-spell-encode-darwin-universal`

This is the **universal-apple-darwin** binary for `@psi-spell-encode/psi-spell-encode`
npm package: @psi-spell-encode/psi-spell-encode-darwin-x64
Description: This is the **x86_64-apple-darwin** binary for `@psi-spell-encode/psi-spell-encode`
Latest version: 0.0.2

# `@psi-spell-encode/psi-spell-encode-darwin-x64`

This is the **x86_64-apple-darwin** binary for `@psi-spell-encode/psi-spell-encode`
npm package: @psi-spell-encode/psi-spell-encode-freebsd-x64
Description: This is the **x86_64-unknown-freebsd** binary for `@psi-spell-encode/psi-spell-encode`
Latest version: 0.0.2

# `@psi-spell-encode/psi-spell-encode-freebsd-x64`

This is the **x86_64-unknown-freebsd** binary for `@psi-spell-encode/psi-spell-encode`
npm package: @psi-spell-encode/psi-spell-encode-linux-arm-gnueabihf
Description: This is the **armv7-unknown-linux-gnueabihf** binary for `@psi-spell-encode/psi-spell-encode`
Latest version: 0.0.2

# `@psi-spell-encode/psi-spell-encode-linux-arm-gnueabihf`

This is the **armv7-unknown-linux-gnueabihf** binary for `@psi-spell-encode/psi-spell-encode`
npm package: @psi-spell-encode/psi-spell-encode-linux-arm64-gnu
Description: This is the **aarch64-unknown-linux-gnu** binary for `@psi-spell-encode/psi-spell-encode`
Latest version: 0.0.2

# `@psi-spell-encode/psi-spell-encode-linux-arm64-gnu`

This is the **aarch64-unknown-linux-gnu** binary for `@psi-spell-encode/psi-spell-encode`
npm package: @psi-spell-encode/psi-spell-encode-linux-arm64-musl
Description: This is the **aarch64-unknown-linux-musl** binary for `@psi-spell-encode/psi-spell-encode`
Latest version: 0.0.2

# `@psi-spell-encode/psi-spell-encode-linux-arm64-musl`

This is the **aarch64-unknown-linux-musl** binary for `@psi-spell-encode/psi-spell-encode`
npm package: @psi-spell-encode/psi-spell-encode-linux-x64-gnu
Description: This is the **x86_64-unknown-linux-gnu** binary for `@psi-spell-encode/psi-spell-encode`
Latest version: 0.0.2

# `@psi-spell-encode/psi-spell-encode-linux-x64-gnu`

This is the **x86_64-unknown-linux-gnu** binary for `@psi-spell-encode/psi-spell-encode`
npm package: @psi-spell-encode/psi-spell-encode-linux-x64-musl
Description: This is the **x86_64-unknown-linux-musl** binary for `@psi-spell-encode/psi-spell-encode`
Latest version: 0.0.2

# `@psi-spell-encode/psi-spell-encode-linux-x64-musl`

This is the **x86_64-unknown-linux-musl** binary for `@psi-spell-encode/psi-spell-encode`
npm package: @psi-spell-encode/psi-spell-encode-win32-arm64-msvc
Description: This is the **aarch64-pc-windows-msvc** binary for `@psi-spell-encode/psi-spell-encode`
Latest version: 0.0.2

# `@psi-spell-encode/psi-spell-encode-win32-arm64-msvc`

This is the **aarch64-pc-windows-msvc** binary for `@psi-spell-encode/psi-spell-encode`
npm package: @psi-spell-encode/psi-spell-encode-win32-ia32-msvc
Description: This is the **i686-pc-windows-msvc** binary for `@psi-spell-encode/psi-spell-encode`
Latest version: 0.0.2

# `@psi-spell-encode/psi-spell-encode-win32-ia32-msvc`

This is the **i686-pc-windows-msvc** binary for `@psi-spell-encode/psi-spell-encode`
npm package: @psi-spell-encode/psi-spell-encode-win32-x64-msvc
Description: This is the **x86_64-pc-windows-msvc** binary for `@psi-spell-encode/psi-spell-encode`
Latest version: 0.0.2

# `@psi-spell-encode/psi-spell-encode-win32-x64-msvc`

This is the **x86_64-pc-windows-msvc** binary for `@psi-spell-encode/psi-spell-encode`
npm package: @psibase/plugin
Description: A template for creating npm packages using TypeScript and VSCode
Author: Ryan Sonshine
Latest version: 0.0.91

# psibase Plugin Client

> NPM package to initialize plugins on the psibase blockchain.

## Getting started

## Install

```bash
npm install @psibase/plugin
```

## Usage

```ts
import { psibase } from '@psibase/plugin';

psibase.connect();
//=> 'Hello world!'
```

## API

### connect()
npm package: @psibean/prisma-provider
Description: A Prisma based provider for discord-akairo.
Author: Psi
Latest version: 0.0.2
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# PrismaProvider

I'm using [Prisma](https://github.com/prisma/prisma) with [discord.js](https://github.com/discordjs/discord.js) and [discord-akairo](https://github.com/discord-akairo), since discord-akairo does not yet natively support a Prisma provider, I made this one! Nothing special, all I did was copy the SequelizeProvider and update it to use a Prisma delegate instead.

Feel free to use this and make changes, happy to accept pull requests if I've messed something up or overlooked / misunderstood something.

## Installation
Ensure you have the [Prisma Client](https://github.com/prisma/prisma) installed and configured, as well as [discord.js](https://github.com/discordjs/discord.js) and [discord-akairo](https://github.com/discord-akairo) already installed.

```
npm install @psibean/prisma-provider
```

## Usage

```
import { PrismaProvider } from '@psibean/prisma-provider';
```
```
const { PrismaProvider } = require('@psibean/prisma-provider');
```
```
const prisma = new PrismaClient();
const provider = new 
            PrismaProvider(
              prisma.myEntity, 
              { idColumn: "id", 
                dataColumn: "jsonColumnName" 
            });
```
Where prisma.myEntity should return a `MyEntityDelegate`.

One other difference between this provider and the other providers is set, which can take a defaultData value for when it has to create a new record:

```
provider.set(id, key, value, defaultData = { "one": true, "two": "someValue" });
```

If there is no record for the provided id, then a new record will be created that looks like:
```
{ "one": true, "two": "someValue", [key]: value } 
```

If the provided key matches one of the keys in the defaultData the passed value will overwrite the default.

It otherwise works the same as the other providers, the only difference is instead of taking the actual model / entity, it takes the delegate instead.
npm package: @psibean/typeorm-provider
Description: A TypeORM based provider for discord-akairo.
Author: Psi
Latest version: 0.0.10
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# TypeORMProvider

Note: I've shifted to my [PrismaProvider](https://github.com/psibean/prisma-provider)

I'm using [TypeORM](https://github.com/typeorm/typeorm) with [discord.js](https://github.com/discordjs/discord.js) and [discord-akairo](https://github.com/discord-akairo), since discord-akairo does not yet natively support a TypeORM provider, I made this one! Nothing special, all I did was copy the SequelizeProvider and update it to use a TypeORM Repository instead.

Feel free to use this and make changes, happy to accept pull requests if I've messed something up or overlooked / misunderstood something.

## Installation
Ensure you have [TypeORM](https://github.com/typeorm/typeorm), [discord.js](https://github.com/discordjs/discord.js), and [discord-akairo](https://github.com/discord-akairo) already installed.

```
npm install @psibean/typeorm-provider
```

## Usage

```
import { TypeORMProvider } from '@psibean/typeorm-provider';
```
```
const { TypeORMProvider } = require('@psibean/typeorm-provider');
```
```
provider = new 
            TypeORMProvider(
              connection.get(connectionName).getRepository(Entity), 
              { idColumn: "id", 
                dataColumn: "jsonColumnName" 
            });
```

One other difference between this provider and the other providers is set, which can take a defaultData value for when it has to create a new record:

```
provider.set(id, key, value, defaultData = { "one": true, "two": "someValue" });
```

If there is no record for the provided id, then a new record will be created that looks like:
```
{ "one": true, "two": "someValue", [key]: value } 
```

If the provided key matches one of the keys in the defaultData the passed value will overwrite the default.

It otherwise works the same as the other providers, the only difference is instead of taking the actual model / entity, it takes the repository instead.
npm package: @psiemieniuk/swagger-typescript-api
Description: Generate the API client for Fetch or Axios from an OpenAPI Specification
Author: Sergey Volkov
Latest version: 13.2.16-fix-enum.0

# Swagger TypeScript API

- Support for OpenAPI 3.0, 2.0, JSON and YAML
- Generate the API Client for Fetch or Axios from an OpenAPI Specification

Any questions you can ask here: <https://github.com/acacode/swagger-typescript-api/discussions>

## Examples

All examples you can find here: <https://github.com/acacode/swagger-typescript-api/tree/main/tests>

## Usage

You can use this package in two ways:

### CLI

```bash
npx swagger-typescript-api generate --path ./swagger.json
```

Or install locally in your project:

```bash
npm install --save-dev swagger-typescript-api
npx swagger-typescript-api generate --path ./swagger.json
```

### Library

```bash
npm install --save-dev swagger-typescript-api
```

```typescript
import * as path from "node:path";
import * as process from "node:process";
import { generateApi } from "swagger-typescript-api";

await generateApi({ input: path.resolve(process.cwd(), "./swagger.json") });
```

For more detailed configuration options, please consult the documentation.

## Mass media

- [5 Lessons learned about swagger-typescript-api](https://christo8989.medium.com/5-lessons-learned-about-swagger-typescript-api-511240b34c1)
- [Why Swagger schemes are needed in frontend development ?](https://dev.to/js2me/why-swagger-schemes-are-needed-in-frontend-development-2cb4)
- [Migration en douceur vers TypeScript (French)](https://www.premieroctet.com/blog/migration-typescript/)
- [swagger-typescript-api usage (Japanese)](https://zenn.dev/watahaya/articles/2f4a716c47903b)

## License

Licensed under the [MIT License](https://github.com/acacode/swagger-typescript-api/blob/main/LICENSE).