open-index/open-npm huggingface dataset:
npm package: @msmsjr/cutils.js
Description: ![NPM](https://img.shields.io/npm/l/@sayuthisobri/cutils) ![NPM](https://img.shields.io/npm/v/@sayuthisobri/cutils) ![GitHub Workflow Status](https://github.com/sayuthisobri/cutils.js/actions/workflows/cutils.js.yml/badge.svg?branch=main)
Latest version: 1.0.0

# Common JS Utils

![NPM](https://img.shields.io/npm/l/@sayuthisobri/cutils)
![NPM](https://img.shields.io/npm/v/@sayuthisobri/cutils)
![GitHub Workflow Status](https://github.com/sayuthisobri/cutils.js/actions/workflows/cutils.js.yml/badge.svg?branch=main)
npm package: @msn088/greeter
Description: Public scoped packages for operation verification purposes.
Author: F88
Latest version: 0.13.1

# greeter

[![npm version](https://badge.fury.io/js/@msn088%2Fgreeter.svg?icon=si%3Anpm)](https://badge.fury.io/js/@msn088%2Fgreeter)
[![Node.js CI](https://github.com/F88/greeter/actions/workflows/nodejs-ci.yml/badge.svg)](https://github.com/F88/greeter/actions/workflows/nodejs-ci.yml)
[![Publish package to npmjs.com](https://github.com/F88/greeter/actions/workflows/npm-publish-to-npmjs.yml/badge.svg?branch=main)](https://github.com/F88/greeter/actions/workflows/npm-publish-to-npmjs.yml)
[![Publish package to GitHub Packages](https://github.com/F88/greeter/actions/workflows/npm-publish-to-github-packages.yml/badge.svg)](https://github.com/F88/greeter/actions/workflows/npm-publish-to-github-packages.yml)

[![install size](https://packagephobia.com/badge?p=@msn088/greeter)](https://packagephobia.com/result?p=@msn088/greeter)

[![codecov](https://codecov.io/gh/F88/greeter/graph/badge.svg?token=LXEBNTVCUL)](https://codecov.io/gh/F88/greeter)

Public scoped packages for operation verification purposes.

.
npm package: @msncc/vercel
Description: vercel server for waline comment system
Author: lizheming
Latest version: 0.23.12

## @msncc/vercel

![](https://img.shields.io/npm/v/@msncc/vercel?color=blue&logo=npm&style=flat-square)   

This is the backend for Waline comment system.

## Installation

```
npm install @msncc/vercel --save
```

## Configuration

You should set `LEAN_ID` and `LEAN_KEY` in environment variable which can get from <https://leancloud.app>.

The detail how to get `LEAN_ID` and `LEAN_KEY`: <https://waline.js.org/quick-start.html>

We support [Akismet](https://akismet.com/) spam protection service default. If you want close it, please set `AKISMET_KEY` environment variable as `false`。

## Deploy

[ ![](https://vercel.com/button) ](https://vercel.com/import/project?template=https://github.com/lizheming/waline/tree/master/example)

Click it to deploy quickly!
npm package: @msnkr/data-structures
Description: A comprehensive collection of generic data structure implementations for TypeScript/JavaScript, published on npm.
Author: Manuj Sankrit
Latest version: 1.4.1

# data-structures

A comprehensive collection of type-safe, zero-dependency data structure implementations for TypeScript/JavaScript.

[![JSR](https://jsr.io/badges/@mskr/data-structures)](https://jsr.io/@mskr/data-structures) [![JSR Score](https://jsr.io/badges/@mskr/data-structures/score)](https://jsr.io/@mskr/data-structures) [![npm version](https://badge.fury.io/js/@msnkr%2Fdata-structures.svg)](https://www.npmjs.com/package/@msnkr/data-structures) [![npm bundle size](https://img.shields.io/bundlephobia/minzip/@msnkr/data-structures)](https://bundlephobia.com/package/@msnkr/data-structures) [![codecov](https://codecov.io/gh/mandy8055/data-structures/branch/main/graph/badge.svg)](https://codecov.io/gh/mandy8055/data-structures) [![CI](https://github.com/mandy8055/data-structures/actions/workflows/release-please.yml/badge.svg)](https://github.com/mandy8055/data-structures/actions/workflows/release-please.yml)

## 📚 [Full Documentation](https://data-structures-docs.vercel.app)

Visit our comprehensive documentation site for detailed guides, API references, and examples.

## Quick Start

### Installation

**npm:**

```bash
npm install @msnkr/data-structures
```

**Deno (JSR):**

```typescript
import { Queue, LRUCache } from 'jsr:@mskr/data-structures';
```

### Example

```typescript
import { Queue, LRUCache } from '@msnkr/data-structures';

// FIFO Queue
const queue = new Queue<number>();
queue.enqueue(1);
queue.enqueue(2);
console.log(queue.dequeue()); // 1

// LRU Cache
const cache = new LRUCache<string, number>({ capacity: 100 });
cache.put('key', 42);
console.log(cache.get('key')); // 42
```

## Data Structures

- **Queues**: Queue, Deque, PriorityQueue
- **Lists**: LinkedList, DoublyLinkedList
- **Heaps**: BinaryHeap (MinHeap, MaxHeap)
- **Trees**: Trie, RedBlackTree
- **Maps & Caches**: SortedMap, BiDirectionalMap, LRUCache

## Features

- 🎯 **Type Safety** - Full TypeScript support with generics
- 📦 **Zero Dependencies** - Lightweight and secure
- ⚡ **Performance** - Optimized implementations with documented time complexities
- 🧪 **Well Tested** - Comprehensive test coverage (>85%)
- 🌲 **Tree Shakeable** - Import only what you need
- 🔄 **Dual Published** - Available on both JSR and npm

## Links

- 📚 **[Documentation](https://data-structures-docs.vercel.app)** - Complete guides and API reference
- 🐛 **[Issues](https://github.com/mandy8055/data-structures/issues)** - Report bugs or request features
- 💬 **[Discussions](https://github.com/mandy8055/data-structures/discussions)** - Join the community

## License

MIT License - feel free to use this in your own projects!
npm package: @msnraju/al-embed-file
Description: Creates a codeunit with the Json / Xml / text file embedded.
Author: MSN Raju
Latest version: 0.0.8

# al-embed-file
This is a command line tool which will take file, codeunit id, codeunit name, and output file name as parameters and generates a codeunit that is embedded with the file provided in the parameter.

* If you provide json file -  codeunit will be generated with a method 'GetJObject' which will return JsonObject for the file provided.

* If you provide Xml file - codeunit will be generated with a method 'GetXmlDocument' which will return XmlDocument for the file provided.

* If you provide any other file - codeunit will be generated with a method 'GetTextContent' which will return file content as Text.

## Syntax
`npx @msnraju/al-embed-file -f <filename> -i <codeunit id> -n <codeunit name> -o <filename>`

## Example
`npx @msnraju/al-embed-file -f c:\data.json -i 50000 -n "Json Config" -o c:\JsonConfig.Codeunit.al`

## Options
```
Creates a codeunit for demo data with the file embedded.

Options:
  -V, --version                 output the version number
  -f, --file <filename>         Specify the file to embed into codeunit.
  -i, --codeunit-id <number>    Specify the codeunit id.
  -n, --codeunit-name <string>  Specify the codeunit name.
  -o, --output-file <filename>  Specify the AL codeunit output file.
  -h, --help                    display help for command
```

## Report an issue
You can report issue at [GitHub](https://github.com/msnraju/al-embed-file/issues)
npm package: @msnraju/fix-al-file-names
Description: Command line utility to fix al file names.
Author: MSN Raju
Latest version: 1.0.1

# fix-al-file-names
Command line utility to fix al file names.


## Installation

```sh
npm install @msnraju/fix-al-file-names -g

```

## Usage

```sh
nav-fix-al-file-names --source-folder <<path>>
```
npm package: @msnraju/lexer
Description: Lexer
Author: MSN Raju
Latest version: 1.0.7

# Lexer

This library can be used to generate tokens from the source code string. This will take Rules, source code as input and generates tokens. Tokenization is the first part of writing compilers.

You can extract tokens one by one by using ```next()``` function or you can toke use ```tokens()``` function to extract all tokens as array.

## Installation

```sh
npm install @msnraju/lexer
```

## API

### Lexer class

This is the class to extract tokens.

- **constructor(rules: Array<ILexRule>, input: string)**

  Lexer takes rules, input as arguments. details are in Usage section.

- **next() : IToken**

  returns the next token.
  If lexer reached end of the stream, it will return Token with type 'EOF'

- **tokens(): IToken[]**

  This static method returns all available tokens as array.

### Lex Rule interface

Rule is a simple regular expression with a name. 

- **name**

  Name of the rule, this will be assigned to token type

- **expression**

  Regular Expression to extract the token value

### RuleName enumeration

This can be used as Rule Name for the following purposes.

- **RuleName.SKIP**

  Ignores the token

- **RuleName.ERROR**
  Throws runtime error.

## Usage

The following sample code to extract tokens using lex rules.

```javascript
import { Lexer, ILexRule, RuleName } from '@msnraju/lexer';

const rules: Array<ILexRule> = [
  { name: 'VALUE', expression: /[a-zA-Z_]*/ },
  { name: 'EQUALS', expression: /=/ },
  { name: 'PLUS', expression: /\+/ },
  { name: 'NUMBER', expression: /[0-9]+/ },
  { name: 'SEMICOLON', expression: /;/ },
  { name: RuleName.SKIP, expression: /[ \t\n]/ },
  { name: RuleName.ERROR, expression: /./ },
];

const tokens = Lexer.tokens(
  rules,
  `
first = 1;
second = 2;
sum = first + second;
`
);

const tokens = Lexer.tokens(rules, code);
console.log(JSON.stringify(tokens, null));
```

### Output

```console
    [
      {
        "value": "first",
        "type": "VALUE"
      },
      {
        "value": "=",
        "type": "EQUALS"
      },
      {
        "value": "1",
        "type": "NUMBER"
      },
      {
        "value": ";",
        "type": "SEMICOLON"
      },
      ...
      {
        "value": "sum",
        "type": "VALUE"
      },
      {
        "value": "=",
        "type": "EQUALS"
      },
      {
        "value": "first",
        "type": "VALUE"
      },
      {
        "value": "+",
        "type": "PLUS"
      },
      {
        "value": "second",
        "type": "VALUE"
      },
      {
        "value": ";",
        "type": "SEMICOLON"
      }
    ]
```
npm package: @msnraju/nav-split-object-file
Description: Command line utility to split Dynamics NAV object file into multiple files.
Author: MSN Raju
Latest version: 1.0.5

# nav-split-object-file
Command line utility to split Dynamics NAV object file into multiple files.


## Installation

```sh
npm install @msnraju/nav-split-object-file -g

```

## Usage

```sh
nav-split-object-file --source-file <<object file>> --destination-folder <<destination folder>> --create-folder
```
npm package: @msnraju/reg-expressions
Description: Custom implementation of regular expressions
Author: MSN Raju
Latest version: 1.0.3

# regular-expression
Custom implementation of regular expressions

# Installation

```sh
npm install @msnraju/regular-expressions
```

# Usage

```javascript
import { RegExpression } from '@msnraju/reg-expressions';

const expr = new RegExpression('OBJECT (\\w*) ([\\d]*) (.*)');
const match = expr.match('OBJECT Table 18 Customer');
console.log(JSON.stringify(match, null, 2));

```
## Output
```
{
  "0": "OBJECT Table 18 Customer",
  "1": "Table",
  "2": "18",
  "3": "Customer",
  "length": 40
}
```
npm package: @msobiecki/eslint-config
Description: An ESLint shareable config for JavaScript/TypeScript ecosystem's.
Author: Michał Sobiecki
Latest version: 9.13.0

# eslint-config

[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/msobiecki/eslint-config/blob/master/LICENSE)

Custom ESLint configuration for projects. It extends popular configs in one place.

## Table of Contents

- [Installation](#installation)
- [Usage](#usage)
- [License](#license)

## Installation

```bash
npm install --save-dev @msobiecki/eslint-config
```

Make sure to install the necessary peer dependencies as well:

```bash
npm install --save-dev eslint prettier typescript
```

## Usage

To use this ESLint Flat Config configuration, you need to extend it in your project's `eslint.config.js` file:

### base javascript/typescript configuration

```javascript
import { defineConfig } from "eslint/config";
import { basePreset } from "@msobiecki/eslint-config";

export default defineConfig([
  basePreset,
  ...
]);
```

### best practice configuration

```javascript
import { defineConfig } from "eslint/config";
import { bestPracticePreset } from "@msobiecki/eslint-config";

export default defineConfig([
  ...,
  bestPracticePreset,
]);
```

### import configuration

```javascript
import { defineConfig } from "eslint/config";
import { importPreset } from "@msobiecki/eslint-config";

export default defineConfig([
  ...,
  importPreset,
]);
```

### react javascript/typescript configuration

```javascript
import { defineConfig } from "eslint/config";
import { reactPreset } from "@msobiecki/eslint-config";

export default defineConfig([
  ...,
  reactPreset
]);
```

### next configuration

```javascript
import { defineConfig } from "eslint/config";
import { nextPreset } from "@msobiecki/eslint-config";

export default defineConfig([
  ...,
  nextPreset
]);
```

### node configuration

```javascript
import { defineConfig } from "eslint/config";
import { node } from "@msobiecki/eslint-config";

export default defineConfig([
  ...,
  node
]);
```

### jest configuration

```javascript
import { defineConfig } from "eslint/config";
import { jestPreset } from "@msobiecki/eslint-config";

export default defineConfig([
  ...,
  jestPreset
]);
```

### storybook configuration

```javascript
import { defineConfig } from "eslint/config";
import { storybookPreset } from "@msobiecki/eslint-config";

export default defineConfig([
  ...,
  storybookPreset,
]);
```

## License

This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for more details.

---

Feel free to contribute to this repository by opening issues or submitting pull requests. Happy coding!
npm package: @msobiecki/eslint-plugin-test-locators
Description: A simple ESLint plugin for improving test locator usage.
Author: Michał Sobiecki
Latest version: 1.2.0

# eslint-plugin-test-locators

[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/msobiecki/eslint-plugin-test-locators/blob/master/LICENSE)

A simple ESLint plugin for improving test locator usage. It ensures that your test selectors are consistent and easy to maintain.

## Table of Contents

- [Installation](#installation)
- [Usage](#usage)
- [Rules](#rules)
- [License](#license)

## Installation

To install the plugin, run:

```bash
npm install --save-dev @msobiecki/eslint-plugin-test-locators
```

Make sure to install the necessary peer dependencies as well:

```bash
npm install --save-dev eslint
```

## Usage

To use this ESLint configuration, you need to extend it in your project's `.eslintrc` file:

### Basic Configuration

```javascript
import { defineConfig } from "eslint/config";
import testLocators from "@msobiecki/eslint-plugin-test-locators";

export default defineConfig([
  {
    plugins: {
      "@msobiecki/test-locators": testLocators,
    },
    rules: {
      "@msobiecki/test-locators/check-data-test-attribute": "error",
    },
  },
]);
```

### Configuration with Custom Options

You can customize the rules in your ESLint config to suit your project needs:

```javascript
import { defineConfig } from "eslint/config";
import testLocators from "@msobiecki/eslint-plugin-test-locators";

export default defineConfig([
  {
    plugins: {
      "@msobiecki/test-locators": testLocators,
    },
    rules: {
      "@msobiecki/test-locators/check-data-test-attribute": [
        "error",
        {
          attributeName: "data-test",
          requiredTags: ["button", "a", "input", "select", "textarea"],
          roleMappings: {
            button: ["button-", "btn-"],
            link: ["anchor-", "link-"],
          },
        },
      ],
    },
  },
]);
```

## Rules

The plugin currently includes the following rules:

- [**check-data-test-attribute**](./docs/rules/check-data-test-attribute.md): Enforces the presence of a data-test attribute on specific HTML elements, such as buttons, links, and form controls, according to customizable patterns and role mappings.

### Example Rule Configuration:

```json
"@msobiecki/test-locators/check-data-test-attribute": ["error", {
  "attributeName": "data-test-id",
  "tagPatterns": {
    "button": ["button-", "btn-"],
    "a": ["anchor-", "link-"],
    "input": ["input-"],
    "select": ["select-"],
    "textarea": ["textarea-"]
  },
  "requiredTags": ["button", "a", "input", "select", "textarea"],
  "roleMappings": {
    "button": "button",
    "link": "a"
  },
  "componentMappings": {
    "Button": "button",
    "Link": "a",
    "Input": "input",
  }
}]
```

## License

This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for more details.

---

Feel free to contribute to this repository by opening issues or submitting pull requests. Happy coding!