open-index/open-npm huggingface dataset:
npm package: @mrgnw/anahtar
Description: Opinionated, reusable auth for SvelteKit. Email+OTP + passkeys.
Latest version: 0.0.26

# @mrgnw/anahtar

> **Pre-alpha.** API may change between releases.

Auth for SvelteKit. Email+OTP + optional passkeys.

"Anahtar" = key (Turkish)

## Auth flow

1. Email -> OTP sent via your `onSendOTP` callback
2. OTP verified -> session cookie
3. First login -> passkey registration prompt
4. Future logins -> passkey autofill, OTP fallback

## Quick start

```sh
pnpm add @mrgnw/anahtar
```

Create your auth instance:

```ts
// src/lib/server/auth.ts
import { createAuth } from "@mrgnw/anahtar";
import { sqliteAdapter } from "@mrgnw/anahtar/sqlite";
import Database from "better-sqlite3";

const db = new Database("data/app.db");

export const auth = createAuth({
  db: sqliteAdapter(db),
  onSendOTP: async (email, code) => {
    console.log(`[dev] OTP for ${email}: ${code}`);
  },
});
```

Wire into SvelteKit:

```ts
// src/hooks.server.ts
import { auth } from "$lib/server/auth";
export const handle = auth.handle;
```

```ts
// src/routes/api/auth/[...path]/+server.ts
import { auth } from "$lib/server/auth";
export const { GET, POST } = auth.handlers;
```

Optional UI components:

```svelte
<!-- Full-page auth flow -->
<script>
  import { AuthFlow } from '@mrgnw/anahtar/components';
  import { goto } from '$app/navigation';
</script>

<AuthFlow onSuccess={() => goto('/')} />
```

```svelte
<!-- Compact inline pill (for headers, floating islands) -->
<script>
  import { AuthPill } from '@mrgnw/anahtar/components';
  import { invalidateAll } from '$app/navigation';
  import { page } from '$app/stores';
  let user = $derived($page.data.user);
</script>

<AuthPill {user} onSuccess={() => invalidateAll()} />
```

All components auto-detect locale (88 languages). Override with `locale="fr"` or `messages={{ continue: 'Go' }}`.

## Tests

68 tests: 46 unit (node) + 22 component (happy-dom).

```sh
pnpm test:unit
pnpm test:browser
pnpm test
```

## Docs

- [Integration guide](docs/integration.md) — install, config, components, i18n, theming, DB adapters
- [PLAN.md](PLAN.md) — architecture, DB adapter interface, test setup
npm package: @mrgrain/cdk-updown
Description: Self-executable CDK apps
Author: Momo Kornher
Latest version: 0.2.1

# ![CDK up / down](./images/wordmark-dynamic.svg)

Self-executable CDK apps.

![Demo](./images/demo.gif)

Ever tried to quickly demo some infrastructure code? You write your CDK app, then switch to the terminal for `cdk deploy`, then back again for `cdk destroy`. It's annoying. Sharing examples is even worse - people need the CDK CLI installed and configured just to try your code. CDK up/down fixes this by making your apps self-executable. Your code becomes the deployment tool. One command to deploy and clean up. Perfect for quick prototyping, live demos, and tutorials where you don't want setup friction getting in the way.

## Installation

Install the package using your preferred package manager:

```console
npm install @mrgrain/cdk-updown
yarn add @mrgrain/cdk-updown
pnpm add @mrgrain/cdk-updown
bun add @mrgrain/cdk-updown
```

## Usage

Create an executable TypeScript file for your CDK app `./bin/my-app.ts` using the `updown()` function.

```typescript
import { updown } from "@mrgrain/cdk-updown";
import { App, Stack, aws_sns } from "aws-cdk-lib";

const cli = updown(async () => {
  // Build your CDK app here
  const app = new App();
  const stack = new Stack(app);
  new aws_sns.Topic(stack, "Topic");

  return app.synth();
});

// Run the CLI
await cli.run();
```

Then execute as usual:

```console
npx tsx ./bin/my-app.ts
```

## Single-file executable

Using a bundle that can produce single-file executables, it is easily possible to make your CDK app fully runtime independent.
For example [with Bun](https://bun.sh/docs/bundler/executables):

```console
bun build ./bin/my-app.ts --compile --minify --outfile ./dist/my-app
```

Now you have a fully self-contained binary of your app:

```console
./dist/my-app
```

## Advanced Use Cases

You can also call `up()` and `down()` directly.
It gives you more control over when to deploy or destroy your infrastructure without relying on command-line arguments.

Both methods return deployment data and throw errors instead of exiting the process.
They skip the selection dialog, but maintain the terminal output.
You can use them to build a more customized CLI experience.

```typescript
import { updown } from "@mrgrain/cdk-updown";
import { App, Stack, aws_sns } from "aws-cdk-lib";

declare const builder: AssemblyBuilder;

try {
  // Create the updown cli
  const cli = updown(builder);

  // Up and get deployment result
  const deployResult = await cli.up();
  console.log(`Deployed ${deployResult.stacks.length} stacks`);
  
  // Down and get destroy result
  const destroyResult = await cli.down();
  console.log(`Destroyed ${destroyResult.stacks.length} stacks`);

} catch (error) {
  console.error('Operation failed:', error.message);
  // Handle error as needed
}
```
npm package: @mrhansamala/ytdl-core
Description:  YouTube video downloader in pure javascript.
Author: mrhansamala
Latest version: 2.0.0

<p align="center">
  <a href="" rel="noopener">
 <img width=400px height=300px src="./typings/youtube.png" alt="YoutubeDL"></a>
</p>

# @mrhansamala/ytdl-core

YouTube fork of `@mrhansamala/ytdl-core`. This fork is dedicated to fixing bugs and adding features that are not merged into the original repo as soon as possible.


## Installation

```bash
npm install @mrhansamala/ytdl-core@latest
```

Make sure you're installing the latest version of `@mrhansamala/ytdl-core` to keep up with the latest fixes.

## Usage

```js
const ytdl = require("@mrhansamala/ytdl-core");
```
```js
 import ytdl from '@mrhansamala/ytdl-core'; 
 ```
 ```js
 import * as ytdl from '@mrhansamala/ytdl-core';
 ```
```js
 import ytdl = require('@mrhansamala/ytdl-core'); 
 ```



- Or you can paste your cookies array into a file and use `fs.readFileSync` to read it.

```js
const ytdl = require("@mrhansamala/ytdl-core");
const fs = require("fs");
const agent = ytdl.createAgent(JSON.parse(fs.readFileSync("cookies.json")));
```

### Proxy Support

```js
const ytdl = require("@mrhansamala/ytdl-core");

const agent = ytdl.createProxyAgent({ uri: "my.proxy.server" });

ytdl.getBasicInfo("http://www.youtube.com/watch?v=", { agent });
ytdl.getInfo("http://www.youtube.com/watch?v=", { agent });
```

Use both proxy and cookies:

```js
const ytdl = require("@mrhansamala/ytdl-core");

const agent = ytdl.createProxyAgent({ uri: "my.proxy.server" }, [{ name: "cookie", value: "COOKIE_HERE" }]);

ytdl.getBasicInfo("http://www.youtube.com/watch?v=", { agent });
ytdl.getInfo("http://www.youtube.com/watch?v=", { agent });
```
## ✍️ Authors <a name = "authors"></a>

- [@mrhansamala](https://github.com/mrhansamala) - scraped author
npm package: @mrhanson/vue-file-preview
Description: A file preview component by Vue
Author: mrhanson
Latest version: 1.2.0

# vue-file-preview

[![npm](https://img.shields.io/npm/v/@mrhanson/vue-file-preview.svg)](https://www.npmjs.com/package/@mrhanson/vue-file-preview)![License](https://img.shields.io/npm/l/@mrhanson/vue-file-preview)

## Description

> A file preview component by Vue , maked up by serval previewer components

## Filetype Support

- img
- excel

## Install

```shell
  npm install --save vue '@mrhanson/vue-file-preview'
  # or
  yarn add vue '@mrhanson/vue-file-preview'
```

## Example

[CLICK ME](https://mrhanson.github.io/vue-file-preview/)

## Props

### file-previewer

| prop         | type   | default | optional  | description                   |
| ------------ | ------ | ------- | --------- | ----------------------------- |
| fileType     | string |         | img/excel | choose which previewer to use |
| imgPvProps   | object |         |           | props of img-previewer        |
| excelPvProps | object |         |           | props of excel-previewer      |

### img-previewer

| prop           | type   | default | optional | description                                                                                                  |
| -------------- | ------ | ------- | -------- | ------------------------------------------------------------------------------------------------------------ |
| coverList      | array  | --      |          | cover item list, can pass object with `url`, `alt`, `lazy`, `zIndex`, `style` attribute                      |
| previewSrcList | array  | --      |          | src list to preview, same as [preview-src-list](https://element.eleme.cn/#/zh-CN/component/image#attributes) |
| width          | string | '100px' |          | global width of coverList item                                                                               |
| height         | string | '100px' |          | global height of coverList item                                                                              |

### excel-previewer

| prop           | type          | default | optional | description                |
| -------------- | ------------- | ------- | -------- | -------------------------- |
| file           | object        |         |          | excel file stream          |
| isClientStream | boolean       | true    |          | whether client file stream |
| tableHeight    | stirng/number |         |          | previewer table height     |
npm package: @mrhenry/browser-lite
Description: Bugsnag error reporter for browser JavaScript
Author: Bugsnag
Latest version: 8.8.1

# @mrhenry/browser-lite

This package contains the browser implementation of the Bugsnag notifier for JavaScript. The normal use case is to install this package via `@bugsnag/js`, but you can install it directly if you want to.

## License

This package is free software released under the MIT License. See [LICENSE.txt](./LICENSE.txt) for details.
npm package: @mrhenry/core-web
Description: browser feature polyfills as a babel plugin
Author: Simon Menke
Latest version: 1.2.5

# core-web

[![version](https://img.shields.io/npm/v/@mrhenry/core-web.svg)](https://www.npmjs.com/package/@mrhenry/core-web) [![Build](https://github.com/mrhenry/core-web/workflows/Build/badge.svg)](https://github.com/mrhenry/core-web/actions/workflows/build-and-test.yml) [![BrowserStack Status](https://automate.browserstack.com/badge.svg?badge_key=aG8ra0x5L2xhbEhIOHh2U003NWI1T3pYVTVUZDFJNEU1cHJLU0JPSFhWZz0tLVJwMm13ekViMGs3VFJQeTR6V3lpeXc9PQ==--cdb365a51e633a467329a4b6a475c736b7578a09)](https://automate.browserstack.com/public-build/aG8ra0x5L2xhbEhIOHh2U003NWI1T3pYVTVUZDFJNEU1cHJLU0JPSFhWZz0tLVJwMm13ekViMGs3VFJQeTR6V3lpeXc9PQ==--cdb365a51e633a467329a4b6a475c736b7578a09) [![CodeQL](https://github.com/mrhenry/core-web/workflows/CodeQL/badge.svg)](https://github.com/mrhenry/core-web/actions/workflows/codeql-analysis.yml)

Contains all the polyfills and data for [@mrhenry/babel-plugin-core-web](https://www.npmjs.com/package/@mrhenry/babel-plugin-core-web).
It can also be used directly.

```sh
npm install --save-dev @mrhenry/core-web
```

```sh
yarn add --dev @mrhenry/core-web
```

```js
import "@mrhenry/core-web/modules/Element.prototype.after";
```
npm package: @mrhenry/stylelint-mrhenry-attribute-selector-no-unknown
Description: Warn when unknown attribute selectors are used
Author: Mr. Henry
Latest version: 3.0.0

# [@mrhenry/stylelint-mrhenry-attribute-selector-no-unknown](https://www.npmjs.com/package/@mrhenry/stylelint-mrhenry-attribute-selector-no-unknown) [<img src="https://wp.assets.sh/uploads/sites/2963/2021/09/mrhenry-gezicht-small.png" alt="Mr. Henry's logo." width="90" height="90" align="right">](https://www.mrhenry.be/)

[![version](https://img.shields.io/npm/v/@mrhenry/stylelint-mrhenry-attribute-selector-no-unknown.svg)](https://www.npmjs.com/package/@mrhenry/stylelint-mrhenry-attribute-selector-no-unknown)

Disallow unknown attribute selectors.

```css
/* valid, the `name` attribute is allowed on button elements. */
button[name] {}

/* valid, the `name` attribute is not a global attribute, but used without a type selector. */
[name] {}

/* invalid, the `href` attribute is not allowed on button elements. */
button[href] {}
```

```css
/* valid, the `data-foo` attribute has a `data-*` prefix. */
[data-foo] {}

/* invalid, `foo` attribute doesn't exist. */
[foo] {}
```

Warns when attribute selectors are used that are not allowed on the given element.

While it is valid and allowed to use any attribute name on any element, it is not recommended to do so.

It is preferable to use the `data-*` attribute for custom attributes.

## Usage

`npm install --save-dev @mrhenry/stylelint-mrhenry-attribute-selector-no-unknown`

```js
// stylelint.config.js
module.exports = {
	plugins: [
		"@mrhenry/stylelint-mrhenry-attribute-selector-no-unknown",
	],
	rules: {
		"@mrhenry/stylelint-mrhenry-attribute-selector-no-unknown": true,
	},
}
```
npm package: @mrhenry/stylelint-mrhenry-invalid-of-type-selectors
Description: Warn when :first-of-type is used with class selectors
Author: Mr. Henry
Latest version: 4.0.0

# [@mrhenry/stylelint-mrhenry-invalid-of-type-selectors](https://www.npmjs.com/package/@mrhenry/stylelint-mrhenry-invalid-of-type-selectors) [<img src="https://wp.assets.sh/uploads/sites/2963/2021/09/mrhenry-gezicht-small.png" alt="Mr. Henry's logo." width="90" height="90" align="right">](https://www.mrhenry.be/)

[![version](https://img.shields.io/npm/v/@mrhenry/stylelint-mrhenry-invalid-of-type-selectors.svg)](https://www.npmjs.com/package/@mrhenry/stylelint-mrhenry-invalid-of-type-selectors)

Disallow ambiguous `*-of-type` selectors.

```css
/* valid, the selector is a type selector */
strong:first-of-type {}

/* invalid, the selector isn't a type selector */
.foo:first-of-type {}
```

Warns when `:first-of-type` and similar selectors are used in selectors that do not match at least one type.
This rule is not fully accurate and will have false negatives (`foo .bar:first-of-type`), but it is accurate enough to create awareness around the general issue.

## Usage

`npm install --save-dev @mrhenry/stylelint-mrhenry-invalid-of-type-selectors`

```js
// stylelint.config.js
module.exports = {
	plugins: [
		"@mrhenry/stylelint-mrhenry-invalid-of-type-selectors",
	],
	rules: {
		"@mrhenry/stylelint-mrhenry-invalid-of-type-selectors": true,
	},
}
```
npm package: @mrhenry/stylelint-mrhenry-nesting
Description: Mr. Henry's preferred way of writing nested CSS
Author: Mr. Henry
Latest version: 4.0.0

# [@mrhenry/stylelint-mrhenry-nesting](https://www.npmjs.com/package/@mrhenry/stylelint-mrhenry-nesting) [<img src="https://wp.assets.sh/uploads/sites/2963/2021/09/mrhenry-gezicht-small.png" alt="Mr. Henry's logo." width="90" height="90" align="right">](https://www.mrhenry.be/)

[![version](https://img.shields.io/npm/v/@mrhenry/stylelint-mrhenry-nesting.svg)](https://www.npmjs.com/package/@mrhenry/stylelint-mrhenry-nesting)

Specify a strict coding style for CSS nesting.

```css
/* valid, the nested selector is a "filter" for "focus" */
.element {
	&:focus {}
}

/* invalid, the nested selector is not a "filter" on the elements matched by the parent */
.foo {
	> .bar {}
}
```

Use CSS nesting only for conditional styling.
This style of CSS aims to be expressive and readable.

- only conditional at-rules
- every nested selector must start with `&`
- only a single pseudo after `&`

**Valid CSS :**

```css
.element {
	&:focus {
		/* when ".element" has focus */
	}

	&:is([data-theme=red]) {
		/* when ".element" has an attribute "data-theme" with value "red" */
	}

	&:is(body.some-modifier *) {
		/* when ".element" is a child of <body class="some-modifier"> */
	}

	&:has(img) {
		/* when ".element" has a child element of type "img" */
	}

	@media (prefers-color-scheme: dark) {
		/* when ".element" is shown in a dark mode context */
	}
}
```

**Invalid CSS :**

```css
/* invalid, the nested selector is not a "filter" on the elements matched by the parent */
.foo {
	> .bar {
		color: green;
	}
}

/* invalid, the nested selector is not a "filter" on the elements matched by the parent */
.foo {
	+ :focus {
		color: green;
	}
}

/* invalid, "@custom-selector" is not a conditional at-rule */
.foo {
	@custom-selector :--foo .bar;
}
```

## Usage

`npm install --save-dev @mrhenry/stylelint-mrhenry-nesting`

```js
// stylelint.config.js
module.exports = {
	plugins: [
		"@mrhenry/stylelint-mrhenry-nesting",
	],
	rules: {
		"@mrhenry/stylelint-mrhenry-nesting": true,
	},
}
```

## Optional secondary options

### `ignoreAtRules: [/regex/, "string"]`

```js
// stylelint.config.js
module.exports = {
	plugins: [
		"@mrhenry/stylelint-mrhenry-nesting",
	],
	rules: {
		"@mrhenry/stylelint-mrhenry-nesting": [
			true,
			{ ignoreAtRules: ["mixin"] }
		],
	},
}
```

Given:

```js
[/^custom-/i, "mixin"]
```

The following patterns are _not_ considered problems:

```css
.foo {
	@custom-selector :--bar .bar;
}
```

```css
.foo {
	@CUSTOM-MEDIA --bar (min-width: 320px);
}
```

```css
.foo {
	@mixin bar;
}
```
npm package: @mrhenry/stylelint-mrhenry-prop-order
Description: Mr. Henry's preferred order for CSS properties
Author: Mr. Henry
Latest version: 4.0.4

# [@mrhenry/stylelint-mrhenry-prop-order](https://www.npmjs.com/package/@mrhenry/stylelint-mrhenry-prop-order) [<img src="https://wp.assets.sh/uploads/sites/2963/2021/09/mrhenry-gezicht-small.png" alt="Mr. Henry's logo." width="90" height="90" align="right">](https://www.mrhenry.be/)

[![version](https://img.shields.io/npm/v/@mrhenry/stylelint-mrhenry-prop-order.svg)](https://www.npmjs.com/package/@mrhenry/stylelint-mrhenry-prop-order)

Specify a strict order for CSS properties.

```css
/* valid */
.foo {
	width: 100px;
	height: 20px;
}

/* invalid */
.foo {
	height: 20px; /* we prefer width before height */
	width: 100px;
}
```

```css
/* valid */
.foo {
	margin: 20px;
	margin-top: 10px;
}

/* invalid */
.foo {
	margin-top: 10px; /* longhand before a shorthand */
	margin: 20px;
}
```

This package doesn't create groups of properties.
But it will respect patterns that are often used to group properties:
- empty lines
- comments
- custom properties
- vendor prefixed CSS

```css
.foo {
	a: 0; /* section : 1 */
	b: 0; /* section : 1 */

	c: 0; /* section : 2 */
	d: 0; /* section : 2 */
	/* a comment */
	e: 0; /* section : 3 */
	f: 0; /* section : 3 */
	--a: 0; /* ignored */
	--b: 0; /* ignored */
	-webkit-foo: 0; /* ignored */
}
```

## Usage

`npm install --save-dev @mrhenry/stylelint-mrhenry-prop-order`

```js
// stylelint.config.js
module.exports = {
	plugins: [
		"@mrhenry/stylelint-mrhenry-prop-order",
	],
	rules: {
		"@mrhenry/stylelint-mrhenry-prop-order": true,
	},
}
```

## List of properties :

The list is sourced from [`@webref/css`](https://www.npmjs.com/package/@webref/css).


## To update properties :

- `npm run update` (to get the latest `@webref/css`)
- `npm run test`

This will tell you which properties are missing.