open-index/open-npm huggingface dataset:
npm package: @mdlx/cli
Description: Interactive CLI for syncing music locally via YouTube.
Author: Labithiotis
Latest version: 0.0.22

# mdl MusicDownLoader

A terminal music downloader for people who want to sync music locally.

Paste a URL, and the `mdl` resolves music metadata, searches YouTube for matches, and downloads tracks. It stores a local sync manifest so future runs can reconcile the folder instead of starting over.

![mdl](https://github.com/user-attachments/assets/796efc3b-9512-4d1c-9377-c51b89aa9437)


### Providers

- Spotify
- Apple Music
- Amazon Music
- YouTube Music
- SoundCloud
- Bandcamp
- Qobuz
- Deezer
- Tidal

### Why use it

- Interactive CLI
- Links work without API keys, we query via public urls
- Downloads are grouped into a music name directory
- A `.mdl.json` manifest is written next to the files for resyncs
- Metadata is resolved directly from the music URL
- Audio is currently sourced from YouTube

## Install

`ffmpeg` must already be installed and available on your `PATH`.

### NPM/BUN/PNPM

```bash
npm install --global @mdlx/cli
```
or
```bash
npx @mdlx/cli
```

### Homebrew

```bash
brew tap labithiotis/homebrew-tap && brew install mdl
```

### Manual

Download the archive for your platform from the project's [Releases](https://github.com/labithiotis/mdl/releases) page, extract the binary, and move it somewhere on your `PATH`.

```bash
chmod +x mdl
mv mdl /usr/local/bin/mdl
mdl --help
```

## Usage

Run the interactive CLI:

```bash
mdl
```

Pass a playlist URL directly:

```bash
mdl "https://open.spotify.com/playlist/..."
```

Choose a base output directory:

```bash
mdl "https://open.spotify.com/playlist/..." --output ./music
```

Control how many tracks download in parallel:

```bash
mdl "https://open.spotify.com/playlist/..." --parallel 5
```

Choose the extracted audio format and quality:

```bash
mdl "https://open.spotify.com/playlist/..." --format m4a --bitrate 192K
```

CLI help:

```bash
mdl --help
```
npm package: @mdmonu/fast-search
Description: A lightweight and efficient JavaScript package for quickly finding the index of a target number in an array.
Author: Md Monu
Latest version: 1.0.2

# <p align="center">🚀 Fast Search</p>

## 🔍 Overview

**Fast Search** is a lightweight and efficient JavaScript package designed to quickly find the index of a target number within a sorted array.

## 📦 Installation

Install the package using npm or yarn:

```sh
npm install fast-search
# or
yarn add fast-search
```

## 🚀 Usage

Import `findIndex` from `fast-search` and use it to locate the index of a target element in an array.

```javascript
const { findIndex } = require("fast-search");

const targetElement = 7;
const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];

const targetIndex = findIndex(arr, targetElement);

console.log(targetIndex); // Output: 6
```

## 📌 Features

- 🔥 **Fast & Efficient**: Optimized search for quick results.
- 🛠 **Lightweight**: Minimal dependencies, keeping your project clean.
- 🎯 **Easy to Use**: Simple API with a single function.

## 📝 API

### `findIndex(array, target)`

Finds the index of `target` in `array`. If the target is not found, returns `-1`.

#### Parameters:

- `array` _(Array)_: The array to search within.
- `target` _(Number)_: The number to find in the array.

#### Returns:

- _(Number)_: The index of the target element, or `-1` if not found.

## 🤝 Contributing

We welcome contributions! Feel free to open issues or submit pull requests.

## 📜 License

This project is licensed under the **MIT License**.

---

⭐ If you find this package useful, consider giving it a star!
npm package: @mdmostafa/simplify
Description: Removes all spaces from a string
Latest version: 3.0.2

# @mdmostafa/simplify

[![npm (scoped)](https://img.shields.io/npm/v/@mdmostafa/simplify.svg)](https://www.npmjs.com/package/@mdmostafa/simplify)
[![npm bundle size (minified)](https://img.shields.io/bundlephobia/min/@mdmostafa/simplify.svg)](https://www.npmjs.com/package/@mdmostafa/simplify)

Removes all spaces from a string.

## Install

```
$ npm install @mdmostafa/simplify
```

## Usage

```js
const { makeString, makeToken, verifyToken, Events, encrypt, decrypt } = require("@mdmostafa/simplify");

makeString("Bangla desh");
//=> "Bangladesh!"

makeString(1234);
//=> Uncaught TypeError: makeString wants a string!
//    at simplify (<anonymous>:2:41)
//    at <anonymous>:1:1

makeToken("bangladesh", "secretKey");
//=> 331d261003455b2b3659af7f8c046a4dc96a9bc0d0692d714cff35775e5a25aa

makeToken("", "secretKey");
makeToken("bangladesh", "");
//=> TypeError: hash wants a string and secret key!

verifyToken("bangladesh", "secretKey");
//=> Your key is valid

verifyToken("bangladesh", "abcd");
//=> Your key/string is not valid

const myEvent = new Events();

// Event listening
myEvent.listen('loadMsg');
//=> Listening to your event...
//=> Hello Bangladesh!

// creating event with message
myEvent.log('loadMsg', 'Hello Bangladesh!');

// Encrypt - Decrypt Usages text or buffer
const secretKey = 'OVH6sdmpNWjRR+qC*(7rdxs01lwH654@';

const hash = encrypt('Hello Node JS!', secretKey);

const hashFromBuffer = encrypt(Buffer.from('Hello Node JS!', 'utf8'), secretKey);

console.log(hash);

//=> {
//=>     iv: '418e5653829e3c902a4512e260ff356d',
//=>     content: '9e6e67bd5715c72a47fb6434cd6a'
//=> }

const txt = decrypt(hash, secretKey);
const txt2 = decrypt(hashFromBuffer, secretKey);

console.log(txt); 
//=> Hello Node JS!
console.log(txt2); 
//=> Hello Node JS!

```
npm package: @mdnx/express-cloudfront-gdpr
Description: express middleware to detect if gdpr or ccpa applies with the help of aws cloudfront
Author: Denny Bartelt
Latest version: 1.0.0-alpha.3

[![NPM version](https://img.shields.io/npm/v/@mdnx/express-cloudfront-gdpr.svg?style=flat-square)](https://www.npmjs.com/package/@mdnx/express-cloudfront-gdpr)
[![npm module downloads per month](http://img.shields.io/npm/dm/@mdnx/express-cloudfront-gdpr.svg?style=flat)](https://www.npmjs.org/package/@mdnx/express-cloudfront-gdpr)

# Express Cloudfront GDPR & CCPA Middleware

This package provides a express middleware to detect if [GDPR](https://en.wikipedia.org/wiki/General_Data_Protection_Regulation) or [CCPA](https://en.wikipedia.org/wiki/California_Consumer_Privacy_Act) applies for a user by inspecting aws cloudfront headers.

## Installation / Use in TypeScript projects

```bash
npm install @mdnx/express-cloudfront-gdpr --save
```

## Usage

To create a response header with gdpr flag:

```typescript
import express from 'express';
import { gdprHeaderMiddleware } from '@mdnx/express-cloudfront-gdpr';

const app = express();
app.use(gdprHeaderMiddleware({
  headerName: 'X-Gdpr-Applies',
  headerTrueValue: '1',
  headerFalseValue: '0',
}));
```

To create a response header with ccpa flag:

```typescript
import express from 'express';
import { ccpaHeaderMiddleware } from '@mdnx/express-cloudfront-gdpr';

const app = express();
app.use(ccpaHeaderMiddleware({
  headerName: 'X-Ccpa-Applies',
  headerTrueValue: '1',
  headerFalseValue: '0',
}));
```
npm package: @mdnx/openrtb-types
Description: IAB's OpenRTB spec types in TypeScript
Author: Denny Bartelt
Latest version: 1.0.0

# openrtb-types - OpenRTB Types & Enums

This package includes all of IAB's OpenRTB API Specification Types:

- [Version 2.5](https://www.iab.com/wp-content/uploads/2016/03/OpenRTB-API-Specification-Version-2-5-FINAL.pdf)
- [Version 3.0](https://github.com/InteractiveAdvertisingBureau/openrtb/blob/master/OpenRTB%20v3.0%20FINAL.md)
npm package: @mdnx/supplychain-types
Description: IAB's Supplychain spec types in TypeScript
Author: Denny Bartelt
Latest version: 1.0.2

# supplychain-types - SupplyChain Types & Enums

This package includes all of IAB's SupplyChain Specification Types:

- [Version 1.0](https://github.com/InteractiveAdvertisingBureau/openrtb/blob/master/supplychainobject.md)

## Usage

```bash
npm install --save-dev --save-exact @mdnx/supplychain-types
```
npm package: @mdnx/tcf-stub
Description: IAB's Transparency & Consent Framework CMP Stub in TypeScript
Author: Denny Bartelt
Latest version: 0.1.0

[![NPM version](https://img.shields.io/npm/v/@mdnx/tcf-stub.svg?style=flat-square)](https://www.npmjs.com/package/@mdnx/tcf-stub)
[![npm module downloads per month](http://img.shields.io/npm/dm/@mdnx/tcf-stub.svg?style=flat)](https://www.npmjs.org/package/@mdnx/tcf-stub)

# Consent Management Platform TCFv2 Stub

This package provides a TCFv2 CMP Stub in Typescript.

The stub is a slightly modified version published by IAB, adapted to TypeScript,
and is intended to be used in larger software projects which need to load an cmp.

For more details see [Transparency and Consent Framework](https://github.com/InteractiveAdvertisingBureau/GDPR-Transparency-and-Consent-Framework).

## Installation / Use in TypeScript projects

```bash
npm install @mdnx/tcf-stub --save
```
npm package: @mdnx/tcf-types
Description: IAB's Transparency & Consent Framework types in TypeScript
Author: Denny Bartelt
Latest version: 1.2.0

[![NPM version](https://img.shields.io/npm/v/@mdnx/tcf-types.svg?style=flat-square)](https://www.npmjs.com/package/@mdnx/tcf-types)
[![npm module downloads per month](http://img.shields.io/npm/dm/@mdnx/tcf-types.svg?style=flat)](https://www.npmjs.org/package/@mdnx/tcf-types)

# Consent Management Platform TCFv2 Types

This package provides TCFv2 Typescript Types specified in the
[Consent Management Platform API Final v2.0 Specification](https://github.com/InteractiveAdvertisingBureau/GDPR-Transparency-and-Consent-Framework/blob/master/TCFv2/IAB%20Tech%20Lab%20-%20CMP%20API%20v2.md).

For more details see [Transparency and Consent Framework](https://github.com/InteractiveAdvertisingBureau/GDPR-Transparency-and-Consent-Framework).

## Installation / Use in TypeScript projects

```bash
npm install @mdnx/tcf-types --save-dev
```
npm package: @mdnzyzy/my-first-package-mdn
Description: Removes all spaces from a string
Latest version: 2.0.0

# @mdnzyzy/my-first-package-mdn


[![npm](https://img.shields.io/npm/v/@mdnzyzy/my-first-package-mdn.svg)](https://github.com/matthew-attuned/my-first-package-mdn)
[![npm bundle size (minified)](https://img.shields.io/bundlephobia/min/react.svg)](https://github.com/matthew-attuned/my-first-package-mdn)

My first package!

# Install
`$ npm install @mdnzyzy/my-first-package`

# Usage
```javascript
const myFirstPackage = require("@mdnzyzy/my-first-package-mdn");

myFirstPackage("There is a lot of spaces!");
//=> "Thereisalotofspaces!"

myFirstPackage(1337)
//=> Uncaught TypeError: This package requires a string, fucker!
// at myFirstPackage (<anonymous>:2:41)
// at <anonymous>:1:1
npm package: @mdnzyzy/react-mixpanel-component
Description: Mixpanel Context for handling mixpanel DOM triggers
Author: Matthew Duy Nguyen
Latest version: 4.0.0

# @mdnzyzy/react-mixpanel-component 

[![npm bundle size (minified)](https://img.shields.io/bundlephobia/min/react.svg)](https://github.com/jestir1234/react-mixpanel-component)
[![npm (scoped)](https://img.shields.io/npm/v/@mdnzyzy/react-mixpanel-component.svg)](https://github.com/jestir1234/react-mixpanel-component)

# Install

`npm install @mdnzyzy/react-mixedpanel-component`

# Usage

Import `MixPanelProvider` and wrap your root component with it.

```jsx
import MixPanelProvider from '@mdnzyzy/react-mixpanel-component';

class App extends React.Component {
    render(){
        return(
            <MixPanelProvider>
                <div>
                    My Wrapped App with MixPanel!
                </div>
            </MixPanelProvider>
        )
    }
}

```

Import the MixPanel component and give it a `render` prop with where you want to trigger `mixpanel.track()`. Provide it with an `event` prop that is an object with a `name` property and optional `customProperties` property.

```javascript
import { MixPanel } from '@mdnzyzy/react-mixpanel-component';

const clickHandler = () => console.log("I am being clicked!");

const myButton = () => (
    /* setEvent takes a function callback that is triggered along with a supplied mixpanel event once the script has loaded */
   <MixPanel event={{name: "Click My Button", customProperties: {
       foo: 'bar',
       bar: 'foo'
   }}} render={(setEvent) => (
       <Button onClick={() => setEvent(clickHandler)}>
            Click me
       </Button>
   )}/>
)
```

Additionally, for pageload events you can provide a `callbacks` prop which takes an array of objects or functions. For objects, it will call `mixpanel.track()` using the supplied `event` object, while functions will simply be called.

```javascript
    import { MixPanel } from '@mdnzyzy/react-mixpanel-component';

    const HomePageLoadEvent = {
        event: {
            name: 'Homepage loaded',
            customProperties: {
                foo: 'bar',
                bar: 'foo'
            }
        }
    };

    const announcePageLoad = () => console.log("The Page has loaded!");
    const announceButtonClick = () => console.log("Click me was clicked!");

    const HomePage = () => {
        return (
            <MixPanel callbacks={[announcePageLoad, HomePageLoadEvent]} event={{name: 'Click me was clicked'}} render={(setEvent) => (
                <div>
                    <h1>This is the Homepage</h1>
                    <Button onClick={() => setEvent(announceButtonClick)}>
                         Click Me!
                    </Button>
                </div>
            )}/>

        )
    }
```


# @TODO
Add ability to track multiple scripts and when they have loaded.
npm package: @mdo-libs/sdk
Description: 🛠 An SDK for building applications on top of MDO.
Latest version: 1.0.2

# Pancakeswap SDK

[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)
[![Actions Status](https://github.com/pancakeswap/pancakeswap-sdk/workflows/CI/badge.svg)](https://github.com/pancakeswap/pancakeswap-sdk)
[![npm version](https://img.shields.io/npm/v/@pancakeswap-lib/sdk/latest.svg)](https://www.npmjs.com/package/@pancakeswap-lib/sdk/v/latest)

## Running tests

To run the tests, follow these steps. You must have at least node v10 and [yarn](https://yarnpkg.com/) installed.

First clone the repository:

```sh
git clone https://github.com/pancakeswap/pancakeswap-sdk.git
```

Move into the pancakeswap-sdk working directory

```sh
cd pancakeswap-sdk/
```

Install dependencies

```sh
yarn install
```

Run tests

```sh
yarn test
```

You should see output like the following:

```sh
yarn run v1.22.4
$ tsdx test
 PASS  test/constants.test.ts
 PASS  test/pair.test.ts
 PASS  test/fraction.test.ts
 PASS  test/miscellaneous.test.ts
 PASS  test/entities.test.ts
 PASS  test/trade.test.ts

Test Suites: 1 skipped, 6 passed, 6 of 7 total
Tests:       3 skipped, 82 passed, 85 total
Snapshots:   0 total
Time:        5.091s
Ran all test suites.
✨  Done in 6.61s.
```
npm package: @mdocify/components
Description: This is a template for an Astro component library. Use this template for writing components to use in multiple projects or publish to NPM.
Author: Lazaro Osee
Latest version: 0.0.4

# Astro Starter Kit: Component Package

This is a template for an Astro component library. Use this template for writing components to use in multiple projects or publish to NPM.

```sh
npm create astro@latest -- --template component
```

[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/withastro/astro/tree/latest/examples/non-html-pages)
[![Open with CodeSandbox](https://assets.codesandbox.io/github/button-edit-lime.svg)](https://codesandbox.io/p/sandbox/github/withastro/astro/tree/latest/examples/non-html-pages)
[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/withastro/astro?devcontainer_path=.devcontainer/component/devcontainer.json)

## 🚀 Project Structure

Inside of your Astro project, you'll see the following folders and files:

```text
/
├── index.ts
├── src
│   └── MyComponent.astro
├── tsconfig.json
├── package.json
```

The `index.ts` file is the "entry point" for your package. Export your components in `index.ts` to make them importable from your package.

## 🧞 Commands

All commands are run from the root of the project, from a terminal:

| Command       | Action                                                                                                                                                                                                                           |
| :------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `npm link`    | Registers this package locally. Run `npm link my-component-library` in an Astro project to install your components                                                                                                               |
| `npm publish` | [Publishes](https://docs.npmjs.com/creating-and-publishing-unscoped-public-packages#publishing-unscoped-public-packages) this package to NPM. Requires you to be [logged in](https://docs.npmjs.com/cli/v8/commands/npm-adduser) |
# mdocify-components
npm package: @mdocify/mdocify
Description: ![NPM Version](https://img.shields.io/npm/v/%40mdocify%2Fmdocify) ![NPM Downloads](https://img.shields.io/npm/d18m/%40mdocify%2Fmdocify)
Author: Lazaro Osee
Latest version: 0.1.3

# Mdocify

![NPM Version](https://img.shields.io/npm/v/%40mdocify%2Fmdocify)
![NPM Downloads](https://img.shields.io/npm/d18m/%40mdocify%2Fmdocify)

A markdoc custom tags library for use with [@astrojs/markdoc](https://docs.astro.build/en/guides/integrations-guide/markdoc/) package for custom markdoc components
npm package: @mdocui/cli
Description: CLI for mdocUI — scaffold, generate system prompts, preview
Latest version: 0.7.0

# @mdocui/cli

CLI for [mdocUI](https://github.com/mdocui/mdocui) — scaffold projects, generate system prompts, and preview output.

## Install

```bash
npx @mdocui/cli init
```

Or install globally:

```bash
pnpm add -g @mdocui/cli
```

## Commands

### `init`

Scaffold a complete mdocUI integration. Detects your framework (Next.js, Vite, Remix) and generates all required files.

```bash
npx @mdocui/cli init
```

Creates:
- `mdocui.config.ts` — config with all 24 component definitions
- `src/lib/mdoc-registry.ts` — component registry setup
- `src/components/mdoc-message.tsx` — streaming message component using `useRenderer`
- `.env.example` — API key placeholders
- `src/app/api/chat/route.ts` — streaming API route (Next.js only)

### `generate`

Generate a system prompt from your component registry and write it to a file.

```bash
npx @mdocui/cli generate
```

Reads `mdocui.config.ts` and writes the prompt to the configured `output` path (default: `system-prompt.txt`).

### `preview`

Start a local dev server with a split-pane editor for live markup rendering and parse validation.

```bash
npx @mdocui/cli preview
npx @mdocui/cli preview --port 3000
```

Opens a browser UI where you type mdocUI markup on the left and see it rendered on the right in real-time. Great for prompt iteration without burning API calls.

## Config File

```typescript
// mdocui.config.ts
import { defineComponent } from '@mdocui/core'
import { z } from 'zod'

const button = defineComponent({
  name: 'button',
  description: 'Clickable action button',
  props: z.object({
    action: z.string().describe('Action to perform'),
    label: z.string().describe('Button text'),
  }),
  children: 'none',
})

export default {
  components: [button],
  output: './generated/system-prompt.txt',
  preamble: 'You are a helpful assistant.',
  additionalRules: ['End responses with follow-up buttons'],
  groups: [{ name: 'Interactive', components: ['button'] }],
}
```

## Links

- [GitHub Repository](https://github.com/mdocui/mdocui)
- [@mdocui/core](https://github.com/mdocui/mdocui/tree/main/packages/core)
- [@mdocui/react](https://github.com/mdocui/mdocui/tree/main/packages/react)
npm package: @mdof/matrix-algebra-svelte
Description: Svelte component for matrix algebra
Author: esoteloferry
Latest version: 0.0.22

<p align="center">
<svg width="100%" height="3rem" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="#6563ff" d="M21,2H3A1,1,0,0,0,2,3V21a1,1,0,0,0,1,1H21a1,1,0,0,0,1-1V3A1,1,0,0,0,21,2ZM8,20H4V16H8Zm0-6H4V10H8ZM8,8H4V4H8Zm6,12H10V16h4Zm0-6H10V10h4Zm0-6H10V4h4Zm6,12H16V16h4Zm0-6H16V10h4Zm0-6H16V4h4Z"/></svg>
</p>

<h1 align="center"> matrix-algebra-svelte </h1>

<p align="center"> A Svelte component for adding matrices to your projects </p>

<hr/>

<p> Math & Physics tools in the web should be easy to access and use. This Svelte component is the basic of many tools that requires to display matrices (and vectors too) </p>

<h3> List of features </h3>

<ul>
  <li>Matrix :  square, non-square, symmetric. Future:  diagonal</li>
  <li>Vectors (future)</li>
</ul>

<h3> Demo </h3>

<a href="https://svelte.dev/repl/41c938b499804b22962328cfa13defd7?version=3.24.0"> Check a demo (REPL)</a>

<h3> Code Demo </h3>

```html
We will use markdown for the Syntax Highlighting

<!-- 2x2 matrix , filling by column -->
<Matrix matrix_vec="[1,2,3,4]" flow_order="col" />
```

<h3> Download & Installation </h3>

```shell
$ npm i matrix-algebra-svelte
```

<h3>Contributing</h3>
Keep it simple. Keep it minimal.

<h3>Authors </h3>

[@esoteloferry](https://github.com/esoteloferry)

</ul>

<h3>License</h3>

This project is licensed under the MIT License
npm package: @mdoffice/jquery-autosave
Description: ![npm](https://img.shields.io/npm/v/@mdoffice/jquery-autosave) ![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/MDOffice/jquery-autosave)
Author: Kelatev
Latest version: 1.1.0

# jquery-autosave

![npm](https://img.shields.io/npm/v/@mdoffice/jquery-autosave)
![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/MDOffice/jquery-autosave)

Installation
-----------
```bash
npm install @mdoffice/jquery-autosave
```

Publish (auto)
-----------
```bash
npm version patch
git push origin --tags
```
 - [Make release with last tag](https://github.com/MDOffice/jquery-autosave/releases/new)
 - [Wait to finish build and publish](https://github.com/MDOffice/jquery-autosave/actions)


Publish (manual)
-----------
```bash
npm ci
npm run build
npm version patch
git push origin --tags
npm adduser --registry=https://registry.npmjs.org //if first
npm publish
```
npm package: @mdoffice/sa-article-survey
Description: UI component for article grading
Author: Kelatev
Latest version: 2.0.8

# SA-Article-Survey &middot; ![npm](https://img.shields.io/npm/v/@mdoffice/sa-article-survey) ![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/MDOffice/sa-article-survey)

UI component for article grading

Installation
-----------
```bash
npm install @mdoffice/sa-article-survey
```

Publish (auto)
-----------
```bash
npm version patch
git push origin
git push --tags
```
 - [Make release with last tag](https://github.com/MDOffice/sa-article-survey/releases/new)
 - [Wait to finish build and publish](https://github.com/MDOffice/sa-article-survey/actions)


Publish (manual)
-----------
```bash
npm ci
npm run build
npm version patch
git push origin
git push --tags
npm adduser --registry=https://registry.npmjs.org //if first
npm publish
```
npm package: @mdoffice/sa-filter
Description: Фильтр для ТПП
Author: Kelatev
Latest version: 1.7.1

# SA-Filter

Фильтр для ТПП

![npm](https://img.shields.io/npm/v/@mdoffice/sa-filter)
![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/MDOffice/SA-Filter)

Installation
-----------
```bash
npm install @mdoffice/sa-filter
```

Publish (manual)
-----------
```bash
npm ci
npm run build
npm version patch
git push origin
git push --tags
npm adduser --registry=https://registry.npmjs.org //if first
npm publish
```
npm package: @mdol/mdol
Description: Fast zero-dependency MDOL parser for TypeScript and JavaScript.
Latest version: 0.1.0

# @mdol/mdol

Fast zero-dependency MDOL parsing for TypeScript and JavaScript.

## Install

```bash
# npm install @mdol/mdol
# not yet published
```
```bash
npm install github:mdol-format/mdol-typescript
```

## Usage

```ts
import { MDOL } from "@mdol/mdol";

const mdoContents = `
# Example Keyed

- Id: 10
- Hash: 9b87da04349185080af34e04895d4d66
- Properties:
    - Length:
        - Type: number
        - Enabled: false
        - Value: -1
    - Description:
        - Type: string
        - Enabled: true
        - Value: example`;

const mdo = MDOL.parse(mdoContents, MDOL.camelCase);

console.log(mdo.id);
console.log(mdo.hash);
console.log(mdo.properties.length);
```

## API

```ts
MDOL.parse(source, options?)
MDOL.parseDocument(source)
MDOL.toObject(document, options?)
```

`MDOL.parse()` returns plain JavaScript objects by default:

- duplicate sibling keys become arrays
- numbers, booleans, and `null` are auto-coerced
- a single root heading unwraps to its contained value
- multiple root headings unwrap to an array of values

You can pass a key transformer directly:

```ts
const value = MDOL.parse(source, MDOL.camelCase);
```

Or use options:

```ts
const value = MDOL.parse(source, {
  keyTransform: MDOL.camelCase,
  unwrapRootHeadings: true
});
```

Available key helpers:

- `MDOL.identity`
- `MDOL.camelCase`
- `MDOL.pascalCase`
- `MDOL.snakeCase`
- `MDOL.kebabCase`
npm package: @mdor/js-extensions
Description: Set of different APIs for JavaScript than comes handy to get up to speed
Author: Marco Antonio Dominguez Rueda
Latest version: 0.0.4

## Description

Set of JavasScript utilities, modular, performant, and easy to use.

## Install

**npm**

```sh
npm i @mdor/js-extensions -S
npm install @mdor/js-extensions --save
```

**yarn**

```sh
yarn add @mdor/js-extensions
yarn workspace <workspace-name> @mdor/js-extensions
```

## Documentation

### Object

- #### getFrom
  Extracts a property from any given input, if the property is not present, then a fallback value will be returned.

```js
const user = {
  id: "123123456",
  active: true,
  attributes: {
    name: "Joe",
  },
  trades: [
    {
      id: "werwe224",
      bill: 123454,
    },
  ],
};
const userName = getFrom("attributes.name")(user);
const userFirstBill = getFrom('attributes.trades.[0]["bill"]')(user);
```

#### `setInto`

Set or override a property in any given input, if the path is not present, then it will be created.

```js
const user = {
  id: "123123456",
  active: true,
  attributes,
};

setInto("attributes.name", "Marco")(user);
// equivalent   setInto(["attributes", "name"], "Marco")(user);
// output Joe
setInto('attributes.trades.[0]["bill"]', 100)(user);
// equivalent   setInto(["attributes", "trades", 0, "bill"], 100)(user);
// output 123454
setInto("attributes.trades.1.bill", 0)(user);
// equivalent   setInto(["attributes", "trades", 1, "bill"], 0)(user);
// output 0
```
npm package: @mdor/seed
Description: Seed CLI that helps to scaffold multiple configurations for prettier and vscode, used for my personal projects
Author: Marco Antonio Dominguez Rueda
Latest version: 0.0.1

# @mdor/seed

Seed CLI that helps to scaffold multiple configurations for Prettier and VSCode, used for my personal projects.

## Installation

You can install the CLI

```sh
npm i -g @mdor/settings
```

If using Yarn

```sh
yarn add @mdor/settings -g
```

## Usage

Run the CLI using the `seed` command:

```bash
seed --help
```

### Options

- `--prettier`: Scaffold the configuration related to Prettier.

Example:

```bash
npm @mdor/seed --prettier
```

## License

MIT
npm package: @mdor/settings
Description: Multiple configuration to consolidate code across multiple projects
Author: Marco Antonio Dominguez Rueda
Latest version: 0.0.3

Consolidate a simple reusable configurations

### Install

If using npm

```sh
npm i -D @mdor/settings
```

If using Yarn

```sh
yarn add @mdor/settings --dev
```

### Usage

#### Prettier

This file is intended to be used with _TypeScript_ or _JavaScript_
You need to create or update a file supported by _prettier_

Using _export default_

- .prettierrc.js
- prettier.config.js
- .prettierrc.ts
- prettier.config.ts

```tsx
import { PrettierConfig } from "@mdor/settings";

export default PrettierConfig;
```

Or

```ts
// Not recommended if custom configurations are needed
export { PrettierConfig as default } =  require("@mdor/settings");
```

Using _module.exports_

- .prettierrc.cjs
- prettier.config.cjs
- .prettierrc.cts
- prettier.config.cts

```tsx
const { PrettierConfig } from "@mdor/settings";

module.exports =  PrettierConfig;
```

##### Notes

For non _TypeScript_ files, is recommended to use

```ts
/**
 * @see https://prettier.io/docs/configuration
 * @type {import("prettier").Config}
 */
const config = {
  ...PrettierConfig,
  // Custom overrides
};
```

For _TypeScript_

```tsx
import { PrettierConfig } from "@mdor/settings";
import { type Config } from "prettier";

const config: Config = {
  ...PrettierConfig,
  // Custom overrides
};
```
npm package: @mdornian/vue-authenticate
Description: Authentication library for Vue.js
Author: Davor Grubelic
Latest version: 1.4.12

# vue-authenticate

This is a fork of the vue-authenticate package version 1.4.1  Please refer to [npm vue-authenticate](https://www.npmjs.com/package/@bsarvari/vue-authenticate) for more documentation.  The differences are listed below.

## Installation
```bash
npm install @mdornian/vue-authenticate
```

## Support For Dynamic Storage
The user might decide that they want to stay logged in or log out automatically when the browser is closed.  For example, this could translate into storing the token in either LocalStorage or Session.  On startup, the application will look in all storage locations for an existing token and dynamically set the storage type to that location.  On login, you have the option of overriding the storage type to a different location. 

```javascript
new Vue({
  methods: {
    login: function () {
      this.$auth.login({ email, password },,'localStorage').then(function () {
        // Execute application logic after successful login
      })
    }
  }
})
```
npm package: @mdot2x3/dropdown-menu-package
Description: A simple, reusable dropdown menu utility for web projects.
Author: mdot2x3
Latest version: 1.0.2

# dropdown-menu-package

A simple, reusable dropdown menu utility for web projects.

## Installation

```bash
npm install @mdot2x3/dropdown-menu-package
```

## Usage

For use with build tools like Webpack, Vite, Create React App, etc.

1. **Import the JavaScript and CSS:**

   ```js
   import { attachDropdownMenu } from "@mdot2x3/dropdown-menu-package";
   import "@mdot2x3/dropdown-menu-package/style.css";
   ```

2. **Add HTML:**

   ```html
   <button class="dropdown-toggle">Menu</button>
   <nav class="dropdown-menu hidden">
     <ul>
       <li>Item 1</li>
       <li>Item 2</li>
     </ul>
   </nav>
   ```

3. **Initialize the dropdown:**

   ```js
   attachDropdownMenu({
     buttonSelector: ".dropdown-toggle",
     menuSelector: ".dropdown-menu",
   });
   ```

## Customization

- Change selectors in the JS options (see 3. above) to match your alternate HTML class names.
- You can override the default styles by targeting these classes in your own CSS:
  - For menu/toggle button appearance:
    - `.dropdown-menu`
    - `.dropdown-toggle`
  - For menu show/hide behavior and transitions:
    - `.hidden`
    - `.visible`

## License

MIT
npm package: @mdot2x3/image-carousel-package
Description: A simple, reusable image carousel utility for web projects.
Author: mdot2x3
Latest version: 1.0.0

# image-carousel-package

A simple, reusable image carousel utility for web projects.

## Installation

```sh
npm install @mdot2x3/image-carousel-package
```

## Usage

For use with build tools like Webpack, Vite, Create React App, etc.

1. **Add HTML structure:**

   ```html
   <div id="carousel-root">
     <button id="prevBtn">Prev</button>
     <div class="carousel">
       <!-- images will be rendered here -->
     </div>
     <button id="nextBtn">Next</button>
   </div>
   <div id="selectors" class="selectorsContainer">
     <!-- selectors will be rendered here -->
   </div>
   ```

2. **Import the JavaScript and CSS and initialize:**

   ```js
   import { createImageCarousel } from "@mdot2x3/image-carousel-package";
   import "@mdot2x3/image-carousel-package/style.css"; // optional, for default styling

   const images = [
     // add your image URLs here
     "img1.jpg",
     "img2.jpg",
     "img3.jpg",
     // ...
   ];

   // initialize the carousel with your own desired options
   const carousel = createImageCarousel({
     container: document.getElementById("carousel-root"),
     images,
     selectorsContainer: document.getElementById("selectors"),
     visibleCount: 5, // optional
     autoAdvanceMs: 5000, // optional
     onNext: (idx) => {
       /* input an optional callback */
     },
     onPrev: (idx) => {
       /* input an optional callback */
     },
   });

   document.getElementById("nextBtn").onclick = carousel.next;
   document.getElementById("prevBtn").onclick = carousel.prev;
   ```

## API

When you call `createImageCarousel`, it returns an object with these methods:

- **`next()`**  
  Advances the carousel to the next image.  
  _Example:_

  ```js
  carousel.next();
  ```

- **`prev()`**  
  Moves the carousel to the previous image.  
  _Example:_

  ```js
  carousel.prev();
  ```

- **`goTo(idx)`**  
  Jumps to the image at the specified index (`idx` is zero-based).  
  _Example:_

  ```js
  carousel.goTo(2); // shows the third image
  ```

- **`destroy()`**  
  Stops the auto-advance timer and removes any internal event listeners.  
  _Example:_
  ```js
  carousel.destroy();
  ```

You can use these methods to connect your own navigation buttons, create custom controls, or programmatically control the carousel from your application logic.

**Other Examples:**

```js
// jump to the first image on some event
someElement.onclick = () => carousel.goTo(0);

// stop the carousel when leaving the page
window.addEventListener("beforeunload", carousel.destroy);
```

## Customization

- Style the carousel and selectors via your own CSS. You can override the default styles in `style.css` if needed via the provided classes:
  - `.carousel`: The main carousel container.
  - `.selectorsContainer`: The container for image selector circles.
  - `.circle`: Individual selector circle for each image.
- Use any navigation buttons or icons you like.

## License

MIT
npm package: @mdoudkin/nextjs-swr-wrapper
Description: Simple and effective wrapper for Vercel's SWR data fetching library
Latest version: 2.0.3

[![npm (scoped)](https://img.shields.io/npm/v/@mdoudkin/nextjs-swr-wrapper.svg)](https://www.npmjs.com/package/@mdoudkin/nextjs-swr-wrapper)
[![npm bundle size (minified)](https://img.shields.io/bundlephobia/min/@mdoudkin/nextjs-swr-wrapper.svg)](https://www.npmjs.com/package/@mdoudkin/nextjs-swr-wrapper)

## Installation

```
$ npm install @mdoudkin/nextjs-swr-wrapper
```

## Usage

```ts
// file: /api/something.ts
import { useUpdater } from "@mdoudkin/nextjs-swr-wrapper";
import { useCallback } from "react";

export const useCreateSomething = () => {
  const { act, isLoading, data, error } = useUpdater<Data, Error>({
    mutationKey: /https:\/\/example.com\/something.*/,
  });

  const actCallback = useCallback(
    (body) => act("https://example.com/something", "POST", body),
    [act]
  );

  return {
    act: actCallback,
    isLoading,
    data,
    error,
  };
};

// file: /components/something-form.tsx

export const SmtnForm = () => {
  const { act, isLoading, data, error } = useCreateSomething();

  return (
    <form onSubmit={(formData) => act(formData)}>
      ...
      <input type="submit" value="Create" disabled={isLoading}>
      <p>{error}</p>
    </form>
  )
};
```