open-index/open-npm huggingface dataset:
npm package: @silvenon/remark-smartypants
Description: remark plugin to implement SmartyPants
Author: Matija Marohnić
Latest version: 2.0.0
Deprecated: renamed to just "remark-smartypants"

# @silvenon/remark-smartypants

[remark] plugin to implement [SmartyPants].

```sh
npm install @silvenon/remark-smartypants
```

```js
const remark = require('remark')
const smartypants = require('@silvenon/remark-smartypants')

const content = remark()
  .use(smartypants)
  .processSync('# "Hello World!"')

console.log(String(content))
// # “Hello World!”
// (notice smart quotes)
```

"Why?" I hear nobody ask. Because I wanted to implement SmartyPants in [MDX]:

```js
const mdx = require('@mdx-js/mdx')
const smartypants = require('@silvenon/remark-smartypants')

// let's pretend that support for top-level async/await exists...
const result = await mdx('# "Hello World!"', {
  remarkPlugins: [
    smartypants,
  ],
})
```

This plugin uses [retext-smartypants](https://github.com/retextjs/retext-smartypants) under the hood, so it takes the same options:

```js
const content = remark()
  .use(smartypants, { dashes: 'oldschool' })
  .processSync('en dash (--), em dash (---)')
```

[remark]: https://remark.js.org
[SmartyPants]: https://daringfireball.net/projects/smartypants
[MDX]: https://mdxjs.com
npm package: @silver-formily/element-plus
Description: Formily 的 Element Plus 封装
Author: hezhengxu
Latest version: 3.0.2

# Silver Formily Element Plus

[![codecov](https://codecov.io/gh/hezhengxu2018/silver-formily-element-plus/graph/badge.svg?token=LZF15NPLJU)](https://codecov.io/gh/hezhengxu2018/silver-formily-element-plus)

简体中文 | [English](README.en-US.md)

基于 Element Plus 的 Formily 组件库封装，提供一致的组件风格、灵活的配置能力以及更丰富的表单场景。

## 文档

https://element-plus.silver-formily.org/

## 特性

- 💡 统一的组件风格
- 🔌 灵活的依赖策略（Formily 与 Element Plus 作为 peerDependencies）
- 🔑 完整的表单组件与扩展场景组件
- ♿️ 更好的无障碍支持与 FormItem 体验
- ✅ 新组件具备完善测试保障
- 📝 基于 Vue 模板语法，易读且性能友好

## 安装

```bash
pnpm add @silver-formily/element-plus
```

本包依赖 Formily、Element Plus、Vue、@silver-formily/vue 等 peerDependencies。请查看文档或 package.json 获取兼容版本与配置说明。

## 开源协议

MIT
npm package: @silver-formily/grid
Description: Grid package scaffold for silver-formily
Author: hezhengxu
Latest version: 1.0.1

# @silver-formily/grid

> `@silver-formily/grid` 初始化包结构。

当前仅包含 `src/demo.ts` 作为示例入口，后续可在此基础上扩展网格组件与工具函数。
npm package: @silver-formily/reactive-vue
Description: Another @formily/reactive-vue
Author: Hezhengxu
Latest version: 1.1.0

# @silver-formily/reactive-vue

> 🧠 使用 Vue3 封装的 `@formily/reactive-vue`。

## ✨ 特性

- **`observer` / `useObserver`**：把组件渲染函数托管给 Formily Tracker，自动收集依赖并精准更新。
- **`formilyComputed`**：将 Formily 的响应式表达式包装成 Vue `computed`，充分复用生态能力（Pinia、组件 props 等）。
- **`autorunEffect` / `reactionWatch`**：为 `autorun` 与 `reaction` 提供 Vue 生命周期封装，组件卸载时自动释放订阅，也支持手动提前停止。

## 📦 安装

```bash
pnpm add @silver-formily/reactive-vue @formily/reactive
# 或者：npm install / yarn add
```

确保项目已使用 Vue 3.3+ 并启用 Composition API。

## 🚀 快速开始

```vue
<script setup lang="ts">
import { observable } from '@formily/reactive'
import {
  autorunEffect,
  formilyComputed,
  useObserver,
} from '@silver-formily/reactive-vue'

const state = observable({
  name: 'Formily',
  greetCount: 0,
})

const uppercaseName = formilyComputed(() => state.name.toUpperCase())
autorunEffect(() => {
  console.log('name changed:', state.name)
})

useObserver()

function handleInput(event: Event) {
  const target = event.target as HTMLInputElement | null
  if (!target)
    return
  state.name = target.value
  state.greetCount++
}
</script>

<template>
  <div>
    <input :value="state.name" @input="handleInput">
    <p>原始：{{ state.name }}</p>
    <p>大写：{{ uppercaseName }}</p>
    <p>响应次数：{{ state.greetCount }}</p>
  </div>
</template>
```

`autorunEffect` / `reactionWatch` 必须在 `setup()` 或任意活动中的 effect scope 里调用，这样才能把 `dispose` 绑定到作用域释放时机。如果它们运行在组件 `setup()` 中，组件卸载时会自动清理；如果需要更早停止订阅，也可以接住它们返回的清理函数并手动调用。

更多 demo：`docs/demos` 或在线文档（见下文）。

## 📚 文档与示例

- 官网（VitePress）：<https://reactive-vue.silver-formily.org>
- English docs：<https://reactive-vue.silver-formily.org/en/>（或在文档站右上角切换语言）
- 快速入门、API、Demo：`docs/index.md`
- 运行文档站点：`pnpm docs:dev`

## 🤝 贡献

欢迎 Issue/PR！请确保：

1. 运行 `pnpm lint && pnpm test` 保持通过。
2. 如涉及文档/示例，更新 `docs/` 并附上复现步骤。
3. 遵循项目约定的 Commit 规范（可使用 `pnpm commit`）。

## 📄 许可证

MIT © Hezhengxu
npm package: @silver-zepp/autogui
Description: An easy to use library for creating auto-positioned GUIs for ZeppOS
Author: Silver, Zepp Health
Latest version: 1.2.9

# AutoGUI: Rapid GUI Prototyping for ZeppOS
AutoGUI: is a simple and easy-to-use library for creating graphical user interfaces (GUIs) with auto-positioning for ZeppOS. It superseeds the official Widgets approach and provides a set of classes for creating various types of widgets, such as text, buttons, images, circles, arcs, filled rectangles, and stroked rectangles. AutoGUI also supports event handling for widgets, allowing you to attach event listeners for 'click up' and 'click down' events.
npm package: @silver-zepp/vis-log
Description: An on-screen logger for ZeppOS Mini apps.
Author: Silver, Zepp Health
Latest version: 1.5.3

## ZeppOS Visual Logger: On-Screen Logs on Your Device
With Visual Logger, you get exactly what you expect – all the logs you asked for, displayed directly on your emulator or physical device. Plus, with a built-in filter for repeated messages, Visual Logger shines in its ability to deliver the insights you need, exactly where you need them.

Full documentation here: https://github.com/silver-zepp/zeppos-visual-logger

![](https://github.com/silver-zepp/zeppos-visual-logger/blob/master/assets/vislog-spam-prevention.gif?raw=true)
npm package: @silver886/aws-ec2
Description: Helpers for AWS EC2
Author: Leo Liu
Latest version: 0.3.0

# AWS EC2

This package has helpers for AWS EC2.

## Init

### Config

#### `epel`

- `enable` contains:
  - Command > `amazonLinuxExtras` > `install` `epel` `epel-release`

#### `cloudwatch`

- `agent` contains:
  - Install CloudWatch agent.
  - File > `cloudwatch` > `config`
  - Enable CloudWatch agent.

#### `swap`

- `generate` contains:
  - Command > `swap` > `generate`

### Command

#### `amazonLinuxExtras`

- `enable`: Enable Amazon Linux 2 package.
- `install`: Install Amazon Linux 2 package.

#### `swap`

- `generate`: Generate and enable swap.

### File

#### `cloudwatch`

- `config`: Create CloudWatch agent config.
npm package: @silver886/aws-secrets-manager
Description: Helpers for AWS Secrets Manager SDK
Author: Leo Liu
Latest version: 0.2.8

# AWS Secrets Manager

## Rotation

This package has helpers for AWS Secrets Manager SDK which makes rotating secrets from Lambda easier.

### Usage

1. Initial a rotation cycle with event given by AWS Secrets Manager in Lambda handler.
2. Call each steps with its methods.

#### Steps

1. `createSecret` stores the new secret to AWS Secrets Manager.
2. `setSecret` retrieves the new secret from AWS Secrets Manager for setting it in the external service.
3. `testSecret` retrieves the new secret from AWS Secrets Manager for testing it in the external service.
4. `finishSecret` set the current version to the new secret in AWS Secrets Manager.
5. `revokePreviousSecret` retrieves the new secret from AWS Secrets Manager for revoking it in the external service. (Optional, needs be called right after `finishSecret`)
npm package: @silverage/table-custom
Description: > A table component with sorting and toggle display on columns. Based on [ant-design](https://github.com/ant-design/ant-design)
Latest version: 0.1.10

# table-custom 📦

> A table component with sorting and toggle display on columns. Based on [ant-design](https://github.com/ant-design/ant-design)

## Installation

```bash
npm i @silverage/table-custom --save
yarn add @silverage/table-custom
pnpm add @silverage/table-custom
```

`antd` is in `peerDependencies`, choose your own version.

⚠️ NOTE: The data pesistence is using `use-local-storage-state`.

- For React 17 and below, use `npm i use-local-storage-state@17`
- For React 18 and later, use `npm i use-local-storage-state`
(For details, see [this](https://github.com/astoilkov/use-local-storage-state))

## Usage

✌️ Compatible with all the props of Ant-Design Table

```jsx
import { TableCustom } from '@silverage/table-custom'

<TableCustom columns={columns} dataSource={dataSource} />
```

🪄 Boom! Just replace Ant-Design `<Table />` with `<TableCustom />`, It's all done.

![image](https://github.com/yuhongda/table-custom/assets/259410/2b2bf1f2-d067-4dd1-87b8-ed91685c561c)

## Options

### `columns`

type: `ColumnTypeCustom<T>[]`

default: `undefined`

> Inherited from ColumnType in antd Table. Adding `disableCustom` prop to indicate that the column disable for customization.

### `storageKey`

type: `string`

default: `undefined`

> Data Persistence Key. Set it to use localstorage to persist settings.

### `modalTitle`

type: `string`

default: `''`

> The setting modal's title.

### `savedColumns`

type: `any[]`

default: `undefined`

> Do data persistence yourself

### `sortable`

type: `boolean`

default: `undefined`

> Enable sorting solumn.

### `sortHandler`

type: `ReactNode`

default: `undefined`

> Customize sorting handler icon.

### `openCustomModal`

type: `boolean`

default: `undefined`

> Control setting model visible by yourself.

### `onChecklistChange`

type: `(checkedList: any[], sortedList: any[]) => void`

default: `undefined`

> The callback function when column changed.

### `onCustomModalClose`

type: `() => void`

default: `undefined`

> The callback function when setting modal closed.
npm package: @silverage/the-read-time
Description: Show the read time in Emoji
Author: yuhongda
Latest version: 0.0.1

# the-read-time 🍱🍔🍣

> Show the read time in emoji

![The-Persistence-of-Memory_m](https://user-images.githubusercontent.com/259410/222467352-37420c47-fe99-486f-b5a0-d595f7656f25.png)

## 🎨 Features

- Show the read time in emoji automatically. like `🍱🍔🍣21'10"`
- Support reading speed setting.
- You can choose your emoji.
- Make your own custom display.

## Installation

```bash
pnpm add @silverage/the-read-time
```

## Usage

```jsx
import { TheReadTime } from '@silverage/the-read-time'

<TheReadTime>
  {/* your article */}
</TheReadTime>
```

🪄 Boom! The read time will show top the article

![image](https://user-images.githubusercontent.com/259410/222621402-79d885a4-2dd9-4403-a316-bd4464e39b7b.png)

## Options

### `steps`

type: `Step[]`

default: `[{icon:"🍣",minutes:1},{icon:"🍔",minutes:5},{icon:"🍱",minutes:15}]`

> Using `steps` to change the emoji and its time consuming.

### `speed`

type: `number`

default: `200`

> It's how many words can be read per minute.

### `time`

type: `number`

default: `undefined`

> Set this will skip the read time calculation, and just use this number as total read time to convert to emoji.

### `displayRender`

type: `(emoji: ReactNode[], totalTime: number) => ReactNode`

default: `undefined`

> You can make your own custom display by this option.
npm package: @silverbirder/caat
Description: CaAT is the Google Apps Script Library that Calculate the Assigned Time.
Author: silverbirder
Latest version: 1.0.17

# CaAT
CaAT is the Google Apps Script Library that Calculate the Assigned Time in Google Calendar.

![sample](https://res.cloudinary.com/silverbirder/image/upload/v1579416110/CaAT/sample.png)

This Calendar's Assign Time is 3 hours, excluding Lunch ,Morning MTG, and Concentration.  
And Bob has a morning break on the 23rd.

# Use By Google Apps Script

1. Access the Your [Google Apps Script](https://script.google.com).
1. Add the this library. (CaAT)
   1. API ID is  **M789zIcys5BnW_gD7nRpmM3WuXGFJZPSs** 
1. Use it like the [SampleCaat](https://github.com/Silver-birder/SampleCaat).

# Use By TypeScript

This library is published by npm.  
[@silverbirder/caat](https://www.npmjs.com/package/@silverbirder/caat)

```
$ npm install @silverbirder/caat
```

# Motivation
I wanted to know the assigned time from Google Calendar for scheduling when planning the next week. I could not find such a similar library. So, I made this.

# Other
@me: [twitter](https://twitter.com/silver_birder)  
Please contact @me if you have anything.
npm package: @silverbirder/o-embed
Description: Webcomponent o-embed following open-wc recommendations
Author: silverbirder
Latest version: 0.0.10

[![Published on webcomponents.org](https://img.shields.io/badge/webcomponents.org-published-blue.svg)](https://www.webcomponents.org/element/Silver-birder/o-embed)
[![codecov](https://codecov.io/gh/Silver-birder/o-embed/branch/main/graph/badge.svg?token=52D9NYB4TO)](https://codecov.io/gh/Silver-birder/o-embed)
[![storybook](https://raw.githubusercontent.com/storybookjs/brand/master/badge/badge-storybook.svg)](https://www.chromatic.com/library?appId=6235dbeee943ba003aa9a965)

# \<o-embed>

`<o-embed>` is Web Components for [oEmbed](https://oembed.com/) generated by [open-wc](https://open-wc.org/).

## oEmbed 

oEmbed means the following.

> oEmbed is a format for allowing an embedded representation of a URL on third party sites. 

For example, in the case of Tweet, you will see the following embed.

![open wc tweet](https://res.cloudinary.com/silverbirder/image/upload/h_512/v1647767845/github.com/o-embed/open-wc-tweet.png)

The URL for the Tweet is bellow.

* `https://twitter.com/openwc/status/1427617679427440643`

The URL for Tweet's oEmbed API is bellow.

* `https://publish.twitter.com/oembed?
url=https://twitter.com/openwc/status/1427617679427440643`

## Usage

```html
<script type="module">
  import { OEmbed } from 'https://cdn.skypack.dev/@silverbirder/o-embed';

  window.customElements.define("o-embed", OEmbed);
</script>

<o-embed
  src="https://twitter.com/openwc/status/1427617679427440643"
  proxy="https://silverbirder-cors-anywhere.herokuapp.com"
></o-embed>
```

### Attributes

|Attribute|Type|Required|Default|Description|
|--|--|--|--|--|
|src|*String*|true|`""`|URL to embed.</br>It must be supported by the provider.|
|proxy|*String*|true|`""`|URL of proxy.</br>The details is [here(Proxy)](#Proxy).|
|height|*String*|false|`""`|height of iframe|
|weight|*String*|false|`""`|weight of iframe|
|provider|*String*|false|`"https://oembed.com/providers.json"`|URL of providers|

### Proxy

> Some of provider is not allow cross-origin HTTP request and oembed will not work with those site. You need to put proxy url to make it work. I would suggest to use cors-anywhere.herokuapp.com as your proxy. Self hosted version is provide at https://github.com/Rob--W/cors-anywhere/.

※ https://www.webcomponents.org/element/thangman22/oembed-component

### Slot

```html
<o-embed>
  <p slot="loading">Loading...</p>
  <p slot="notFound">Not Found</p>
  <p slot="error">Error</p>
</o-embed>
```

|Slot|Condition|
|--|--|
|loading|While loading `src`|
|notFound|Provider of `src` does not exist|
|error|When unknown errors occur|

## Installation

```bash
npm i @silverbirder/o-embed
```
npm package: @silverbirder/rminc
Description: rMinc is the Google Apps Script Library that register Mail in Calendar
Author: silverbirder
Latest version: 1.2.0

[![License: MIT](https://img.shields.io/npm/l/@silverbirder/rminc.svg)](https://opensource.org/licenses/MIT)
[![clasp](https://img.shields.io/badge/built%20with-clasp-4285f4.svg)](https://github.com/google/clasp)
[![npm download](https://img.shields.io/npm/dt/@silverbirder/rminc.svg)](https://www.npmjs.com/package/@silverbirder/rminc)
[![npm version](https://img.shields.io/npm/v/@silverbirder/rminc)](https://www.npmjs.com/package/@silverbirder/rminc)
[![npm bundle size](https://img.shields.io/bundlephobia/min/@silverbirder/rminc)](https://www.npmjs.com/package/@silverbirder/rminc)
[![github action](https://img.shields.io/github/workflow/status/Silver-birder/rMinc/main)](https://github.com/Silver-birder/rMinc/actions)
[![Coverage Status](https://coveralls.io/repos/github/Silver-birder/rMinc/badge.svg?branch=master)](https://coveralls.io/github/Silver-birder/rMinc?branch=master)
[![twitter](https://img.shields.io/twitter/url?style=social&url=https%3A%2F%2Ftwitter.com%2Fsilver_birder)](https://twitter.com/silver_birder)

# rMinc
rMinc is the Google Apps Script Library that register Mail in Calendar.
![overview](https://res.cloudinary.com/silverbirder/image/upload/v1581769421/rMinc/rMinc_overview.png)

1. Get the email.
    1. target the some services.
        1. [Amazon](https://www.amazon.co.jp/)
        1. [TOHO CINEMAS](https://www.tohotheater.jp/)
        1. [SHOKUTAKU BIN](https://shokutakubin.com/)
        1. Your favorite services
           1. you can create the custom mail rule (see [sample/sample.js](https://github.com/Silver-birder/rMinc/blob/master/sample/sample.js)).
1. Register the calendar event.
    1. Set the value of below.
        1. Title
        1. Event start and end date
        1. Location
        1. Description

Example from my Amazon mail is below.
![example](https://res.cloudinary.com/silverbirder/image/upload/v1581760683/rMinc/rMinc_sample.png)

# Use By Google Apps Script

1. Access the Your [Google Apps Script](https://script.google.com).
1. Add the this library. (RMinc)
   1. API ID is  **MdL3uTK-myFlfF1-Ls1C1wiIH6OImGALS** 
1. Use it like [sample/sample.js](https://github.com/Silver-birder/rMinc/blob/master/sample/sample.js)

# Use By TypeScript

This library is published by npm.  
[@silverbirder/rminc](https://www.npmjs.com/package/@silverbirder/rminc)

```
$ npm install @silverbirder/rminc
```

# Motivation
I often shop at Amazon([amazon.co.jp](https://www.amazon.co.jp/)).

After purchasing the product, I will receive an email when the product will arrive.
However, it was **very troublesome to check when it arrived** .

So, RMinc is a tool that monitors Amazon mails sent to GMail and **automatically registers them in GCalendar** .

# Other
@me: [twitter](https://twitter.com/silver_birder)  
Please contact @me if you have anything.
npm package: @silverbirder/zoom-meeting-creator
Description: zoom-meeting-creator is a Google Apps Script for creating zoom meetings.
Author: silverbirder
Latest version: 1.0.1

[![License: MIT](https://img.shields.io/npm/l/@silverbirder/zoom-meeting-creator.svg)](https://opensource.org/licenses/MIT)
[![npm download](https://img.shields.io/npm/dt/@silverbirder/zoom-meeting-creator.svg)](https://www.npmjs.com/package/@silverbirder/zoom-meeting-creator)
[![npm version](https://img.shields.io/npm/v/@silverbirder/zoom-meeting-creator)](https://www.npmjs.com/package/@silverbirder/zoom-meeting-creator)
[![npm bundle size](https://img.shields.io/bundlephobia/min/@silverbirder/zoom-meeting-creator)](https://www.npmjs.com/package/@silverbirder/zoom-meeting-creator)
[![twitter](https://img.shields.io/twitter/url?style=social&url=https%3A%2F%2Ftwitter.com%2Fsilver_birder)](https://twitter.com/silver_birder)

# zoom-meeting-creator
## Description
zoom-meeting-creator is a Google Apps Script for creating zoom meetings.

## Usage
### Prepare
1. Get the Zoom API Key and Secret ([https://marketplace.zoom.us/docs/guides/build/jwt-app](https://marketplace.zoom.us/docs/guides/build/jwt-app))
1. (Optional) Get the Slack WebHook URL ([https://api.slack.com/messaging/webhooks](https://api.slack.com/messaging/webhooks)) 

### Console
1. Access the Your [Google Apps Script](https://script.google.com)
1. Add the this library. (ZoomMeetingCreator)
   1. API ID is  **MjAVS0gBC2JeafTyQ8s9bqHWuXGFJZPSs** 
1. Use it like the [sample/index.js](https://github.com/Silver-birder/zoom-meeting-creator/blob/master/sample/index.js).
npm package: @silverbucket/iana-schemes
Description: IANA Uniform Resource Identifier (URI) Schemes list, including crowd sourced unofficial ones
Latest version: 1.4.4

# IANA Schemes

A javascript object map of official
[iana.org Uniform Resource Identifier (URI) Schemes](http://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml)
and crowd sourced unofficial schemes.

This can be used to look up the RFCs for the corresponding schemes or check a
schemes validity based on of it exists in the list of not.

:warning: **This repo was forked and modified for publishing via. JSR for Deno.
Not all documentation here has been updated for TypeScript/Deno. The original
repository appears inactive https://github.com/Munter/schemes**

## Usage

```javascript
import schemas from "jsr:@silverbucket/iana-schemas";

schemes.permanent[0]; // {
//   "scheme": "aaa",
//   "description": "Diameter Protocol",
//   "reference": [
//     {
//       "type": "rfc",
//       "href": "http://www.iana.org/go/rfc6733"
//     }
//   ]
// }

schemes.provisional[0]; // {
//   "scheme": "acr",
//   "description": "acr",
//   "reference": [],
//   "template": "http://www.iana.org/assignments/uri-schemes/prov/acr"
// }

schemes.historical[0]; // {
//   "scheme": "fax",
//   "description": "fax",
//   "reference": [
//     {
//       "type": "rfc",
//       "href": "http://www.iana.org/go/rfc2806"
//     },
//     {
//       "type": "rfc",
//       "href": "http://www.iana.org/go/rfc3966"
//     }
//   ]
// }

schemes.unofficial[0]; // {
//   "scheme": "android-app"
// }

schemes.allByName; // {
//   'aaa': { ... } // scheme object
//   'aaas': { ... } // scheme object
//   'about': { ... } // scheme object
//   'acap': { ... } // scheme object
//   'acct': { ... } // scheme object
//   'cap': { ... } // scheme object
//   'cid': { ... } // scheme object
//   'coap': { ... } // scheme object
//   'coaps': { ... } // scheme object
//   'crid': { ... } // scheme object
//   ...
// }
```

## Contributing

Part of this module is auto generated from IANA official lists, but the
unofficial ones are not. If you find that a specific scheme is missing from
these lists, please submit a pull request that adds it to the
[unofficial schemes list](https://github.com/silverbucket/iana-schemes/blob/master/lib/unofficial.json).
npm package: @silverbullet-ota/bare
Description: React Native OTA solution
Author: Silverbullet
Latest version: 0.1.0-beta.0

# @silverbullet-ota/bare

Bare React Native plugin for Silverbullet OTA - a React Native over-the-air update solution.

## Installation

```bash
npm install @silverbullet-ota/bare
# or
yarn add @silverbullet-ota/bare
# or
pnpm add @silverbullet-ota/bare
```

## Status

⚠️ **Beta**: This package is currently in beta. APIs may change.

## Documentation

Documentation coming soon. See [main repository](https://github.com/0xsilver-bullet/silverbullet-ota) for more information.

## License

MIT © Silverbullet
npm package: @silverbullet-ota/cli
Description: React native OTA solution
Author: Silverbullet
Latest version: 0.1.0-beta.0

# silverbullet-ota

Command-line interface for Silverbullet OTA - a React Native over-the-air update solution.

## Installation

```bash
npm install silverbullet-ota
# or
yarn add silverbullet-ota
# or
pnpm add silverbullet-ota
```

## Usage

```bash
# Run the CLI
npx silverbullet-ota
```

## Status

⚠️ **Beta**: This package is currently in beta. APIs may change.

## Documentation

Documentation coming soon. See [main repository](https://github.com/0xsilver-bullet/silverbullet-ota) for more information.

## License

MIT © Silverbullet
npm package: @silverbullet-ota/core
Description: React native OTA solution
Author: Silverbullet
Latest version: 0.1.0-beta.0

# @silverbullet-ota/core

Core utilities and types for Silverbullet OTA - a React Native over-the-air update solution.

## Installation

```bash
npm install @silverbullet-ota/core
# or
yarn add @silverbullet-ota/core
# or
pnpm add @silverbullet-ota/core
```

## Status

⚠️ **Beta**: This package is currently in beta. APIs may change.

## Documentation

Documentation coming soon. See [main repository](https://github.com/0xsilver-bullet/silverbullet-ota) for more information.

## License

MIT © Silverbullet
npm package: @silverbullet-ota/expo
Description: React Native OTA solution
Author: Silverbullet
Latest version: 0.1.0-beta.0

# @silverbullet-ota/expo

Expo plugin for Silverbullet OTA - a React Native over-the-air update solution.

## Installation

```bash
npm install @silverbullet-ota/expo
# or
yarn add @silverbullet-ota/expo
# or
pnpm add @silverbullet-ota/expo
```

## Status

⚠️ **Beta**: This package is currently in beta. APIs may change.

## Documentation

Documentation coming soon. See [main repository](https://github.com/0xsilver-bullet/silverbullet-ota) for more information.

## License

MIT © Silverbullet
npm package: @silverbullet-ota/plugin-core
Description: Plugin core utilities for Silverbullet OTA
Author: Silverbullet
Latest version: 0.1.0-beta.0

# @silverbullet-ota/plugin-core

Plugin core utilities for Silverbullet OTA - a React Native over-the-air update solution.

## Installation

```bash
npm install @silverbullet-ota/plugin-core
# or
yarn add @silverbullet-ota/plugin-core
# or
pnpm add @silverbullet-ota/plugin-core
```

## Status

⚠️ **Beta**: This package is currently in beta. APIs may change.

## Documentation

Documentation coming soon. See [main repository](https://github.com/0xsilver-bullet/silverbullet-ota) for more information.

## License

MIT © Silverbullet
npm package: @silverbullet-ota/react-native
Description: React native OTA solution
Author: Silverbullet
Latest version: 0.1.0-beta.0

# @silverbullet-ota/react-native

React native OTA solution

## Installation


```sh
npm install @silverbullet-ota/react-native
```


## Usage


```js
import { multiply } from '@silverbullet-ota/react-native';

// ...

const result = multiply(3, 7);
```


## Contributing

- [Development workflow](CONTRIBUTING.md#development-workflow)
- [Sending a pull request](CONTRIBUTING.md#sending-a-pull-request)
- [Code of conduct](CODE_OF_CONDUCT.md)

## License

MIT

---

Made with [create-react-native-library](https://github.com/callstack/react-native-builder-bob)
npm package: @silverbulletmd/publish
Description: A simple tool to export a subset of your [SilverBullet](https://silverbullet.md) space as a static website.
Author: Zef Hemel
Latest version: 0.0.7

# Silver Bullet Publish
A simple tool to export a subset of your [SilverBullet](https://silverbullet.md) space as a static website.

**Note:** this is highly experimental and not necessarily production ready code, use at your own risk.

silverbullet-publish currentenly publishes a subset of a space in two formats:

* Markdown (.md files)
* HTML (.html files based on currently hardcoded templates (see `page.hbs` and `style.css`)

The tool can be run in two ways:

1. As a Silver Bullet plug (via the `Silver Bullet Publish: Publish All` command)
2. As a stand-alone CLI tool (via `npx`)

The latter allows for automatic deployments to e.g. environments like Netlify.

## Configuration
SilverBullet Publish is configured via the `PUBLISH` page with the following properties:

  ```yaml
  # Index page to use for public version
  indexPage: Public
  # Optional destination folder when used in plug mode
  destDir: /Users/you/my-website
  title: Name of the space
  removeHashtags: true
  removeUnpublishedLinks: false
  # Publish all pages with specific tag
  tags:
  - "#pub"
  # Publish all pages with a specifix prefix
  prefixes:
  - /public
  ```

## Running via `npx`
The easiest way to run SilverBullet Publish is via `npx`, it takes a few optional arguments beyond the path to your SilverBullet space:

* `-o` specifies where to write the output to (defaults to `./web`)
* `--index` runs a full space index (e.g. to index all hash tags) before publishing, this is primarily useful when run in a CI/CI pipeline (like Netlify) because there no `data.db` in your repo containing this index.

```bash
npx @silverbulletmd/publish -o web_build --index .
```
npm package: @silverchip-labs/prettier-config-phosphor
Description: Prettier Config Phosphor is a shared configuration package for Prettier, the opinionated code formatter. It provides a consistent code formatting style across your JavaScript projects, ensuring that your codebase is clean and easy to read.
Latest version: 1.0.2

# Prettier Config Phosphor

Prettier Config Phosphor is a shared configuration package for Prettier, the opinionated code formatter. It provides a consistent code formatting style across your JavaScript projects, ensuring that your codebase is clean and easy to read.

## Installation

To start using Prettier Config Phosphor, follow these simple steps:

1. Install the package as a development dependency in your project:

```bash
npm install --save-dev @silverchip-labs/prettier-config-phosphor
```

2. Create a .prettierrc file in the root of your project or update your existing .prettierrc file.

3. Extend the prettier-config-phosphor configuration in your .prettierrc file:

```json

"prettier-config-phosphor"
```

4. Customize the configuration to match your project's requirements by adding or modifying rules.

## Usage

Prettier Config Phosphor provides a predefined set of formatting rules that align with the best practices for JavaScript development. However, you can customize the configuration to suit your needs. Simply update the .prettierrc file as follows:

```json
{
  "tabWidth": 2,
  "semi": false,
  "singleQuote": true,
  // Add or modify other rules
}
```
npm package: @silveredgold/ste-core
Description: Core files for the Strongly Typed Events project.
Author: Kees C. Bakker
Latest version: 2.1.16-alpha4

# Strongly Typed Events - Core
Core package for the Strongly Typed Events projects. This
project adds events to your projecs. Because events can have
multiple flavours, we've created multiple packages.

[![Build Status](https://travis-ci.org/KeesCBakker/Strongly-Typed-Events-for-TypeScript.svg?branch=master)](https://travis-ci.org/KeesCBakker/Strongly-Typed-Events-for-TypeScript)
[![npm version](https://badge.fury.io/js/ste-core.svg)](https://badge.fury.io/js/ste-core)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

## Packages
The project is separated into multiple packages, so you only need
to include what you need. We have the following packages:

|Package|Description|
|-------|-----------|
|<a href="https://www.npmjs.com/package/ste-core">`ste-core`</a>|Package that contains all the building blocks for the creation of events. The dispatcher implementation is its main hero.|
|<a href="https://www.npmjs.com/package/ste-events">`ste-events`</a>|Events that are modeled after .Net with a `sender` and `argument`. If you use typescript, you can leverage the support for generics and get strongly typed code.|
|<a href="https://www.npmjs.com/package/ste-simple-events">`ste-simple-events`</a>|A simpler version of the `ste-event`-event. No sender, just an argument.|
|<a href="https://www.npmjs.com/package/ste-signals">`ste-signals`</a>|A signal is even simpler, it is just a callback for when you need to be alerted without any scope.|
|<a href="https://www.npmjs.com/package/strongly-typed-events">`strongly-typed-events`</a>|This package includes everything.|
|<a href="https://www.npmjs.com/package/ste-browser">`ste-browser`</a>|Helps to host events in the browser.|
<br/>

## Maintenance
This project is maintained by <a href="https://keestalkstech.com/">Kees C. Bakker</a>.
npm package: @silveredgold/ste-events
Description: Add the power of Events to your projects. They are styled after .Net using a sender and arguments.
Author: Kees C. Bakker
Latest version: 2.1.16-alpha4

# Strongly Typed Events - Events
Add events that are modeled after .Net with a `sender` and `argument` to your project. If you use typescript, you can leverage the support for generics and get strongly typed code.

Need a different type of event? Check out <a href="https://www.npmjs.com/package/strongly-typed-events">the others</a>.

[![Build Status](https://travis-ci.org/KeesCBakker/Strongly-Typed-Events-for-TypeScript.svg?branch=master)](https://travis-ci.org/KeesCBakker/Strongly-Typed-Events-for-TypeScript)
[![npm version](https://badge.fury.io/js/ste-signals.svg)](https://badge.fury.io/js/ste-signals)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

### Subscription made easy
An example says more than a 1000 words. Imagine if you have events like this on your class:
```typescript
let clock = new Clock("Smu", 1000);

//log the name of the clock and the tick argument to the console - this is an event
clock.onClockTick.subscribe((c, n) =>
  console.log(`${c.name} ticked ${n} times.`)
);
```

### Events made easy
So let's look at the implementation from a TypeScript perspective. (Do you program NodeJs without typescript? <a href="https://github.com/KeesCBakker/Strongly-Typed-Events-for-TypeScript/blob/master/documentation/HowToUseInNodeJs.md">Check this</a>)

```typescript
import { EventDispatcher } from "ste-events";

class Clock {
  private _onClockTick = new EventDispatcher();
  private _ticks: number = 0;

  constructor(public name: string, timeout: number) {
    setInterval(() => {
      this._ticks += 1;
      this._onClockTick.dispatch(this, this._ticks);
    }, timeout);
  }

  public get onClockTick() {
    return this._onClockTick.asEvent();
  }
}
```

Check the <a href="https://github.com/KeesCBakker/Strongly-Typed-Events-for-TypeScript/tree/master/documentation">documentation</a> or the <a href="https://github.com/KeesCBakker/Strongly-Typed-Events-for-TypeScript/tree/master/examples">examples</a> for more information.

Need more info? Check the <a href="https://github.com/KeesCBakker/Strongly-Typed-Events-for-TypeScript">repo</a>.

## Maintenance
This project is maintained by <a href="https://keestalkstech.com/">Kees C. Bakker</a>.
npm package: @silveredgold/ste-simple-events
Description: Add the power of Simple Events to your projects. Every event has an argument with its data.
Author: Kees C. Bakker
Latest version: 2.1.16-alpha4

# Strongly Typed Events - Simple events
Simple events are a type of event that will provide an `argument` with data when fired. If you use typescript, you can leverage the support for generics and get strongly typed code.

Need a different type of event? Check out <a href="https://www.npmjs.com/package/strongly-typed-events">the others</a>.

[![Build Status](https://travis-ci.org/KeesCBakker/Strongly-Typed-Events-for-TypeScript.svg?branch=master)](https://travis-ci.org/KeesCBakker/Strongly-Typed-Events-for-TypeScript)
[![npm version](https://badge.fury.io/js/ste-signals.svg)](https://badge.fury.io/js/ste-signals)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

### Subscription made easy
An example says more than a 1000 words. Imagine if you have events like this on your class:
```typescript
let clock = new Clock("Smu", 1000);

//log the name of the clock and the tick argument to the console - this is an event
clock.onClockTick.subscribe((c, n) =>
  console.log(`${c.name} ticked ${n} times.`)
);
```

### Events made easy
So let's look at the implementation from a TypeScript perspective. (Do you program NodeJs without typescript? <a href="https://github.com/KeesCBakker/Strongly-Typed-Events-for-TypeScript/blob/master/documentation/HowToUseInNodeJs.md">Check this</a>)

```typescript
import { SimpleEventDispatcher } from "ste-simple-events";

class Clock {
  private _onSequenceTick = new SimpleEventDispatcher<number>();
  private _ticks: number = 0;

  constructor(public name: string, timeout: number) {
    setInterval(() => {
      this._ticks += 1;
      this._onSequenceTick.dispatch(this._ticks);
    }, timeout);
  }

  public get onSequenceTick() {
    return this._onSequenceTick.asEvent();
  }
}
```

Check the <a href="https://github.com/KeesCBakker/Strongly-Typed-Events-for-TypeScript/tree/master/documentation">documentation</a> or the <a href="https://github.com/KeesCBakker/Strongly-Typed-Events-for-TypeScript/tree/master/examples">examples</a> for more information.

Need more info? Check the <a href="https://github.com/KeesCBakker/Strongly-Typed-Events-for-TypeScript">repo</a>.

## Maintenance
This project is maintained by <a href="https://keestalkstech.com/">Kees C. Bakker</a>.