open-index/open-npm huggingface dataset:
npm package: @marksmits/url-search-property
Description: This project provides `UrlSearchQueryMixin` and a decorator `@searchProperty` for use with LitElement. Through this decorator it is easy to map properties to url search params
Author: Mark Smits
Latest version: 0.0.5

# @marksmits/url-search-property

This project provides `UrlSearchQueryMixin` and a decorator `@searchProperty`. Through this decorator it is very easy to link properties to url search params.

This will create a two way bind between the property and the url search param. If you update the url param the property will update and trigger a re-render like other properties do. Also if you update the property the url will auto update to reflect the new property value. 

## Installation
```sh
npm install @marksmits/url-search-property
```

## Example Usage
```ts
import { searchProperty, URLSearchPropertyMixin } from '@marksmits/url-search-property/dist';

@customElement('test-app')
export class TestApp extends URLSearchPropertyMixin(LitElement) {
  @searchProperty({ type: Number, name: 'active-tab' })
  activeIndex = 1;

  @searchProperty({ type: Boolean })
  enable = true;

  @searchProperty({ type: String })
  searchValue?: string;
}
```

## Demo
 - [Glitch](https://url-search-property.glitch.me)

## Using a `@searchProperty` decorator

Important information when using the `@searchProperty`:

- Supported property types are number, string and boolean
- When property is available in url on create teh value will be used as default
- searchProperty default values will be added to the url on element creation (if not already available in URL)
- Supports having multiple elements listening to same param
- properties are cleared from url when element is destroyed
- Supports browser history control on a per element base

## Browser History API

It is also possible to enable the ability to push the url to the browser history. This can be done by setting the `enablePushState` property to true. By default this property is set to false.

```ts
  constructor() {
    super();
    this.enablePushState = true;
  }
```

## Updating properties

When adjusting url search params through `history.replaceState` or `history.pushState` elements will not be notified of these changes automatically. To notify elements you could manualy trigger a `search-property-changed` event on the document window.

```ts
  window.dispatchEvent(
    new CustomEvent('search-property-changed', {
      detail: {url},
    }),
  );
```

## Support for URLSearchParams and History API

This project uses the `URLSearchParams`. Make sure to check if you need to load a polyfill for older browsers.

The [URLSearchParams](https://github.com/ungap/url-search-params) Polyfill.

For browser support of the [MDN History API](https://developer.mozilla.org/en-US/docs/Web/API/History_API)
npm package: @markspec/markdown-it-markspec
Description: plantuml plugin for markdown-it
Author: stasson
Latest version: 1.2.1

# `@markspec/markdown-it-markspec`

> markdown-it plugin pack

- [x] Common Mark
- [x] URL Auto linking
- [x] Meta Data (YAML Frontmatter)
- [x] Emoji
- [x] KaTeX Formula
- [x] Mermaid Diagrams
- [x] PlantUML Diagrams
- [x] Footnotes
- [ ] Embedded Images
- [ ] alert containers: `info`, `tip`, `warning`, `danger`
npm package: @markspec/vuepress-plugin-config
Description: vuepress plugin config
Author: stasson
Latest version: 1.4.6

# `@markspec/vuepress-plugin-config`

> autoconfig plugin with optional vuepressrc

## vuepressrc

vuepress autoconfig extension file

- `vuepress` property in package.json
- `.vuepressrc` file in JSON or YAML format
- `.vuepressrc.json` file
- `.vuepressrc.yml` file
- `vuepress.config.js` file exporting a JS object

## autoconf

```javascript
class {

  /**
   * @default package.name
   */
  title: string

  /**
   * @default package.description
   */
  description: string

  /**
   * @default package.author.email
   */
  author = string,

  /**
   * when set to true, will build nav and sidebar automatically
   * fallbacks to nav and sidebar otherwise
   *
   * @default true
   */
  autonav: boolean | 'all' ,

  /**
   * 
   * @default []
   */
  links: [],

  /**
   * @default package.repository.url
   */
  repository: string,

  /**
   * only supports evergreen browsers
   * @default: true
   */
  evergreen: boolean

  /**
   * dump site config in console
   * @default: false
   */
  dbgDump: boolean
}
```
npm package: @markspec/vuepress-plugin-footnote
Description: vuepress  footnote plugin
Author: stasson
Latest version: 1.1.3

# `@markspec/vuepress-plugin-footnote`

> vuepress plugin to parse foiotnote refs.

## Block

```markdown
Here is a footnote reference,[^1] and another.[^longnote]

[^1]: Here is the footnote.
[^longnote]: Here's one with multiple blocks.

  Subsequent paragraphs are indented to show that they

belong to the previous footnote.
```

## Inline

```markdown
Here is an inline note.^[Inlines notes are easier to write, since
you don't have to pick an identifier and move down to type the
note.]
```
npm package: @markssl/asn1
Description: ASN1 library for MarkSSL
Latest version: 0.0.1

## ASN1

```js
import { ASN1 } from '@markssl/asn1'

ASN1(['02', '01', '01']) // 020101
ASN1(['02', '02', '01', '01']) // 02020101
```

## UINT

```js
import { UINT } from '@markssl/asn1'

UINT('01') // 020101
UINT('0101') // 02020101
```

## BITSTR

```js
import { BITSTR } from '@markssl/asn1'

BITSTR('01') // 030101
BITSTR('0101') // 03020101
```
npm package: @markssl/encoding
Description: Encoding library for MarkSSL
Latest version: 0.0.1

## Usage

```typescript
import Encoding from '@markssl/encoding'
```

## API

### `base64ToHex(b64: string): string`

Converts a base64 string to a hex string.

### `bufToBase64(u8: Uint8Array): string`

Converts a Uint8Array to a base64 string.

### `bufToHex(u8: Uint8Array): string`

Converts a Uint8Array to a hex string.

### `hexToBuf(hex: string): Uint8Array`

Converts a hex string to a Uint8Array.

### `numToHex(d: number): string`

Converts a number to a hex string.

### `utf8ToHex(str: string): string`

Converts a UTF-8 string to a hex string.
npm package: @markssl/x509
Description: x509 library for MarkSSL
Latest version: 0.0.1

## API

```ts
import X509 from '@markssl/x509'
```

### packCsr

```js
X509.packCsr(asn1pubkey: string, domains: string[])
```

Generates a certificate signing request (CSR) for the given public key and domains.

### packPkcs1

```js
X509.packPkcs1(jwk: Required<JsonWebKey>)
```

Generates a PKCS#1 private key for the given JWK.

### packCsrPublicKey

```js
X509.packCsrPublicKey(jwk: Required<JsonWebKey>)
```

Generates a PKCS#1 public key for the given JWK.
npm package: @marksteve/firebase-auth
Description: Express and Koa middlewares for verifying Firebase Auth tokens
Author: Mark Steve Samson
Latest version: 0.0.3

# @marksteve/firebase-auth

Express and Koa middlewares for [verifying Firebase Auth tokens](https://firebase.google.com/docs/auth/admin/verify-id-tokens)

## Express

```
const express = require('express')
const auth = require('@marksteve/firebase-auth/express');

const app = express();
app.use(auth);
```

## Koa

```
const Koa = require('koa');
const auth = require('@marksteve/firebase-auth/koa');

const app = new Koa();
app.use(auth);
```