open-index/open-npm huggingface dataset:
npm package: @steroidsjs/bootstrap
Description: Эта библиотека содержит представления (views) для компонентов из [Steroids](https://github.com/steroids/react/),
Author: Vladimir Kozhin
Latest version: 3.1.2


# Web views for Steroids

Эта библиотека содержит представления (views) для компонентов из [Steroids](https://github.com/steroids/react/),

Подробнее о том как создавать и использовать эти view-файлы можно узнать в [документации Steroids](https://github.com/steroids/react/blob/master/docs/index.md)

## Направления прикладного использования фреймворка Steroids

- Создание различных сайтов, (например сайт интернет-магазина)
- Создание CRM и ERP систем
- Создание SPA приложений
- Создание панелей администратора
- Создание личных кабинетов
npm package: @steroidsjs/core
Description: <p align="center">     <img src="https://i.ibb.co/Q9XvtNc/Group-338025.png" alt="Steroids logo" height="120px"> </p>
Author: Vladimir Kozhin
Latest version: 3.1.3

# Steroids

<p align="center">
    <img src="https://i.ibb.co/Q9XvtNc/Group-338025.png" alt="Steroids logo" height="120px">
</p>

<p align="center">
    <a href="https://steroids.kozhindev.com/">Steroids site</a> •
    <a href="https://github.com/steroids/react/issues/new">Submit an Issue</a> •
    <a href="https://t.me/+R0N4XzKbVSYzOTUy">Contact Us</a>
</p>

Our Open-Source **Steroids** framework is an ecosystem based on React and Redux with a large set of ready-made components, unique architecture, UI Kit and SSR

## Why Steroids

- **Steroids** contains ready-made project architecture

- **Steroids** provides the ability to customize components, thanks to the separation of core and view parts

- An extensive library of ready-made components with detailed documentation that simplifies integration into the project

- Intuitive design layout of UI components in Figma for quick visualization and adaptation to unique needs

Explore and immerse yourself in the world of rapid development through documentation [Documentation](https://steroids.kozhin.dev/ru/docs/getting-started).

## Directions for applied use of the Steroids framework

- Creation of various websites (for example, an online store website)
- Creation of CRM and ERP systems
- Creation of SPA applications
- Creation of admin panels
- Creation of personal accounts
npm package: @steroidsjs/eslint-config
Description: Репозиторий содержит файлы конфигурации для eslint.
Author: Vladimir Kozhin
Latest version: 3.0.5

# eslint-config

Репозиторий содержит файлы конфигурации для eslint.

## Установка конфигов

Проекты подтягивают этот репозиторий через npm-зависимость.

Ссылка на конфиг прописывается в `.eslintrc` проекта

Для фронтенда:
```json
{
    "extends": "@steroidsjs/eslint-config/frontend"
}
```

Для бэкенда:
```json
{
    "extends": "@steroidsjs/eslint-config/backend"
}
```

При использовании старого пути `@steroidsjs/eslint-config` вы будете получать ошибку:
```
The path '@steroidsjs/eslint-config' is no longer supported. Use '@steroidsjs/eslint-config/frontend' for frontend or '@steroidsjs/eslint-config/backend' for backend.
```

### ⚠️ Миграция для фронтенда

**[Руководство по миграции для фронтенда](MIGRATION_GUIDE_FRONTEND.md)**
npm package: @steroidsjs/gii-fs
Description: FS Developer Server
Author: Vladimir Kozhin
Latest version: 0.0.14

## Install

### 1. Install package

```shell
npm i -g @steroidsjs/gii-fs
```

### 2. Create config

Create config.json. Sample:

```json
{
    "port": 7800,
    "projects": [
        "/Users/user/Projects/backend-nest"
    ]
}
```

## Start

### Production mode

```shell
gii-fs /path/to/config.json
```

It is not necessary to specify the path to the config. Then will be used the default path ~/gii-fs.json
npm package: @steroidsjs/native
Description: 1. Dependencies installation:
Author: Vladimir Kozhin
Latest version: 3.0.0-beta.7

# SteroidsJS for React Native Development

1. Dependencies installation:

```
yarn
```

2. To publish to NPM manually use the command (_nps_ **is not a typo!**):
```
nps publish.manual

#OR

yarn script publish.manual
```
**You should be authorized in NPM first!** For this purpose use:
```
npm login
```

Native Router Dev Mode

In dev mode navigation state is persistent. To disable this behavior set env variable DISABLE_PERSISTENT_ROUTER
npm package: @steroidsjs/nest
Description: Steroids Nest — это библиотека инструментов и утилит для фреймворка NestJS, предоставляющая расширенные возможности для разработки веб-приложений.
Author: Vladimir Kozhin
Latest version: 4.2.1

# Steroids Nest

Steroids Nest — это библиотека инструментов и утилит для фреймворка NestJS, предоставляющая расширенные возможности
для разработки веб-приложений.

Документация по библиотеке доступна:
- в папке [`docs` в этом репозитории](docs/README.md)
- на сайте [https://steroids.github.io/nest](https://steroids.github.io/nest)
npm package: @steroidsjs/nest-file
Description: Steroids Nest File Module
Latest version: 0.5.1

# Микросервис загрузки файлов

Возможности:

1. Загрузить файл с веб-браузера или мобильного приложения
2. Сохранить его на диске или в aws-like хранилище
3. Подготовить миниатюры для изображений

## Подключение

1. Создать в проекте модуль на основе пакета:
```ts
import {Module} from '@steroidsjs/nest/infrastructure/decorators/Module';
import coreModule from '@steroidsjs/nest-file';
import {IFileModuleConfig} from '@steroidsjs/nest-file/infrastructure/config';
import {ModuleHelper} from '@steroidsjs/nest/infrastructure/helpers/ModuleHelper';

@Module({
    ...coreModule,
    tables: [
        ...coreModule.tables,
        ...ModuleHelper.importDir(__dirname + '/tables'),
    ],
    module: (config: IFileModuleConfig) => {
        const module = coreModule.module(config);
        return {
            ...module,
            providers: [
                ...module.providers,
            ],
            controllers: [
                ...module.controllers,
            ],
            exports: [
                ...module.exports,
            ],
        };
    },
})
export class FileModule {}
```

2. Сгенерировать и применить миграции:
```
yarn cli migrate:generate
yarn cli migrate
```

3. Задать в .env файле проекта нужную конфигурацию:
```
APP_FILE_STORAGE_NAME=minio_s3
APP_FILE_STORAGE_S3_HOST=s3.yandexcloud.net
APP_FILE_STORAGE_S3_ACCESS=xxx
APP_FILE_STORAGE_S3_SECRET=yyy
APP_FILE_STORAGE_S3_MAIN_BUCKET=arm-supervisor
APP_FILE_STORAGE_S3_PORT=443
APP_FILE_STORAGE_S3_USE_SSL=1
APP_FILE_STORAGE_S3_ROOT_URL=https://storage.yandexcloud.net/arm-supervisor
```
Описание переменных: 
   - APP_FILE_STORAGE_NAME - тип используемого хранилища по-умолчанию (minio_s3 или local, из словаря FileStorageEnum)
   - APP_FILE_STORAGE_ROOT_PATH - место хранения файлов при использовании хранилища local (по-умолчанию join(process.cwd(), '../files/uploaded'))
   - APP_FILE_STORAGE_ROOT_URL - URL-префикс для ссылок на файлы (по-умолчанию /files/uploaded)
   - APP_FILE_MAX_SIZE_MB - максимальный размер файла в мегабайтах
   - APP_FILE_PREVIEW_THUMBNAIL_WIDTH - Ширина генеририуемых превью
   - APP_FILE_PREVIEW_THUMBNAIL_HEIGHT - Высота генеририуемых превью
   - APP_FILE_STORAGE_S3_HOST - Хост S3 хранилища
   - APP_FILE_STORAGE_S3_ACCESS - Публичный ключ S3 хранилища
   - APP_FILE_STORAGE_S3_SECRET - Секретный ключ S3 хранилища
   - APP_FILE_STORAGE_S3_MAIN_BUCKET - название бакета S3 хранилища
   - APP_FILE_STORAGE_S3_PORT - порт S3 хранилища
   - APP_FILE_STORAGE_S3_USE_SSL - использовать SSL для подключения
   - APP_FILE_STORAGE_S3_ROOT_URL - адрес S3 хранилища, включая бакет
   - APP_FILE_STORAGE_S3_REGION - регион S3 хранилища

### Параметры загрузки файла в определенное хранилище

В проекте по токену GET_FILE_STORAGE_PARAMS_USE_CASE_TOKEN можно положить в DI-контейнер юзкейс, возвращающий параметры загрузки в определенный тип хранилища для конкретного fileType.
Данный юзкейс будет вызван при загрузке файла в FileService и FileImageService
npm package: @steroidsjs/nest-typeorm
Description: Nest - modern, fast, powerful node.js web framework (@typeorm)
Author: Kamil Mysliwiec
Latest version: 10.0.3

<p align="center">
  <a href="http://nestjs.com/" target="blank"><img src="https://nestjs.com/img/logo-small.svg" width="120" alt="Nest Logo" /></a>
</p>

[travis-image]: https://api.travis-ci.org/nestjs/nest.svg?branch=master
[travis-url]: https://travis-ci.org/nestjs/nest
[linux-image]: https://img.shields.io/travis/nestjs/nest/master.svg?label=linux
[linux-url]: https://travis-ci.org/nestjs/nest

  <p align="center">A progressive <a href="http://nodejs.org" target="blank">Node.js</a> framework for building efficient and scalable server-side applications.</p>
    <p align="center">
<a href="https://www.npmjs.com/~nestjscore"><img src="https://img.shields.io/npm/v/@nestjs/core.svg" alt="NPM Version" /></a>
<a href="https://www.npmjs.com/~nestjscore"><img src="https://img.shields.io/npm/l/@nestjs/core.svg" alt="Package License" /></a>
<a href="https://www.npmjs.com/~nestjscore"><img src="https://img.shields.io/npm/dm/@nestjs/core.svg" alt="NPM Downloads" /></a>
<a href="https://coveralls.io/github/nestjs/nest?branch=master"><img src="https://coveralls.io/repos/github/nestjs/nest/badge.svg?branch=master#5" alt="Coverage" /></a>
<a href="https://discord.gg/G7Qnnhy" target="_blank"><img src="https://img.shields.io/badge/discord-online-brightgreen.svg" alt="Discord"/></a>
<a href="https://opencollective.com/nest#backer"><img src="https://opencollective.com/nest/backers/badge.svg" alt="Backers on Open Collective" /></a>
<a href="https://opencollective.com/nest#sponsor"><img src="https://opencollective.com/nest/sponsors/badge.svg" alt="Sponsors on Open Collective" /></a>
  <a href="https://paypal.me/kamilmysliwiec"><img src="https://img.shields.io/badge/Donate-PayPal-dc3d53.svg"/></a>
  <a href="https://twitter.com/nestframework"><img src="https://img.shields.io/twitter/follow/nestframework.svg?style=social&label=Follow"></a>
</p>
  <!--[![Backers on Open Collective](https://opencollective.com/nest/backers/badge.svg)](https://opencollective.com/nest#backer)
  [![Sponsors on Open Collective](https://opencollective.com/nest/sponsors/badge.svg)](https://opencollective.com/nest#sponsor)-->

## Description

[TypeORM](http://typeorm.io) module for [Nest](https://github.com/nestjs/nest).

## Installation

```bash
$ npm i --save @nestjs/typeorm typeorm
```

## Quick Start

[Overview & Tutorial](https://docs.nestjs.com/techniques/sql)

## Support

Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support).

## Stay in touch

* Author - [Kamil Myśliwiec](https://twitter.com/kammysliwiec)
* Website - [https://nestjs.com](https://nestjs.com/)
* Twitter - [@nestframework](https://twitter.com/nestframework)

## License

Nest is [MIT licensed](LICENSE).
npm package: @steroidsjs/webpack
Description: Configure webpack easily!
Author: Vladimir Kozhin
Latest version: 4.1.1

# Steroids Webpack

Configure webpack easily!

Create webpack.js file in project root dir:

```js
require('@steroidsjs/webpack')
    .config({
        baseUrl: 'frontend/',
        staticPath: '',
        sourcePath: __dirname + '/src',
        devServer: {
            historyApiFallback: {
                index: '/frontend/index.html',
            },
            proxy: [
                {
                    context: ['/api'],
                    target: process.env.APP_BACKEND_URL || 'http://api-for-my-project.loc',
                    changeOrigin: true,
                },
            ],
        },
    })
    .base(__dirname + '/src/index.tsx');

```
npm package: @sterra/microscope-immer
Description: 🔬 Immer.js integration for Microscope.
Author: Maze Heart
Latest version: 0.0.8

# Microscope Immer 🔬

> Immer.js integration for Microscope.

## Table of Contents

- 📦 [Installation](#installation)
- ⚡ [Usage](#usage)

## Installation

```bash
npm install immer @sterra/microscope-immer
# or
yarn add immer @sterra/microscope-immer
# or
pnpm add immer @sterra/microscope-immer
```

## Usage

### Before:

```ts
import { store } from "@sterra/microscope";

interface Todo {
  text: string;
  done: boolean;
  id: string;
}

const $todos = store<Todo[]>([]);

function addTodo(text: string) {
  const id = crypto.createUUID();
  const newTodo = { id, text, done: false };

  $todos.set((prev) => {
    return [...prev, newTodo];
  });
}
```

### After

```ts
import { store } from "@sterra/microscope";
import { withImmer } from "@sterra/microscope-immer";

interface Todo {
  text: string;
  done: boolean;
  id: string;
}

const $todos = store<Todo[]>([]);

function addTodo(text: string) {
  const id = crypto.createUUID();
  const newTodo = { id, text, done: false };

  $todos.set((draft) => {
    draft.push(newTodo);
  });
}
```
npm package: @steryereo/upgrade-existing
Description: Upgrade only npm packages that are already top-level dependencies
Author: "Nick Echols
Latest version: 1.0.0

# upgrade-existing

Upgrade only npm packages that are already top-level dependencies.

This is convenient if you have a monorepo that updates many packages at once, and you get a list of all those updates, but your app only uses a subset of the updated packages

## Installation

`npm i -g @steryereo/upgrade-existing`

## Usage

`upgrade-existing @mycompany/package1 @mycompany/package2 @mycompany/package3`
npm package: @stethoscope-js/action
Description: GitHub Action to track your life data using Stethoscope
Author: Anand Chowdhary
Latest version: 1.2.11

# 🩺🎬 Stethoscope Action

[![Stethoscope](https://stethoscope.js.org/branding/badge-small.svg)](https://stethoscope.js.org)
[![Build CI](https://github.com/stethoscope-js/action/workflows/Build%20CI/badge.svg)](https://github.com/stethoscope-js/action/actions?query=workflow%3A%22Build+CI%22)
[![Release CI](https://github.com/stethoscope-js/action/workflows/Release%20CI/badge.svg)](https://github.com/stethoscope-js/action/actions?query=workflow%3A%22Release+CI%22)
[![Node CI](https://github.com/stethoscope-js/action/workflows/Node%20CI/badge.svg)](https://github.com/stethoscope-js/action/actions?query=workflow%3A%22Node+CI%22)

This GitHub Action is used to automatically update your data.

[**To get started, visit stethoscope-js/stethoscope →**](https://github.com/stethoscope-js/stethoscope)

## 🎁 Contributing

This repository is for Stethoscope's GitHub Actions package. We love contributions, so please read our [Contributing Guidelines](https://github.com/stethoscope-js/.github/blob/master/CONTRIBUTING.md) and [Code of Conduct](https://github.com/stethoscope-js/.github/blob/master/CODE_OF_CONDUCT.md) and open an issue or make a pull request!

### Issues

We use the [stethoscope-js/stethoscope](https://github.com/stethoscope-js/stethoscope) repository for issues for all projects, including this one. If you found a bug or have a feature request, [open an issue](https://github.com/stethoscope-js/stethoscope/issues) in the Stethoscope repository and add the label "action".

## 📄 License

- Code: [MIT](./LICENSE) © [Anand Chowdhary](https://anandchowdhary.com)
- "GitHub" is a trademark of GitHub, Inc.
npm package: @steuerboard/n8n-nodes-steuerboard
Description: n8n community node to work with the Steuerboard API
Author: steuerboard
Latest version: 1.8.0

# n8n-nodes-steuerboard

This is an n8n community node. It lets you use Steuerboard API in your n8n workflows.

[n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

[Installation](#installation)
[Operations](#operations)
[Credentials](#credentials)
[Compatibility](#compatibility)
[Usage](#usage)
[Resources](#resources)

## Installation

Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.

## Operations

- Clients
  - List clients
  - Get client by ID

## Credentials

This node uses API key authentication via an Authorization: Bearer header.

How to get an API key:

- Create an account at steuerboard.net and sign in.
- In your dashboard, open the API keys section and create a new API key.
- Copy the key value. Keep it secure.
- Details and up-to-date instructions: see Authentication.

In n8n, create credentials of type Steuerboard API and set:

API Key: your generated key
Requests are sent with:

Authorization: Bearer YOUR_API_KEY

## Compatibility

Compatible with n8n@1.60.0 or later

## Resources

- [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
- [Steuerboard docs](https://docs.steuerboard.com)
- [Steuerboard Website](https://steuerboard.net)
npm package: @steute.dev/create-react-query-wrapper
Description: ## What is this?
Latest version: 0.1.1

# Create React Query Wrapper

## What is this?

I have some opinions!

1. I don't like to call `useQuery`/`useMutation` all willy-nilly wherever I want
2. I do like having a consistent way to manage and build my query keys
3. I do like strong inferred types
4. I do like to create wrappers around my queries/mutations based on those other opinions
5. react-query is amazing

This library aims to get rid of a ton of boilerplate code and create an opinionated way to manage react-query queries!
These utilities won't work for every use case, but they should work for most of them!

## Example Wrapper - the old way
```ts
const fetchTodos = async (userId: string): Promise<Todo[]> => fetch(`/user/${userId}/todos`);

const useTodos = <TSelected = Todo[]>(userId: string, options: UseQueryOptions<Todo[], unknown, TSelected> = {}) => {
    return useQuery<Todo[], unknown, TSelected>(['todos', userId], () => fetchTodos(userId));
}

// some other code
queryClient.invalidateQueries(['todos', userId]); // notice the duplicated code and magic string
// OR to invalidate all of them
queryClient.invalidateQueries(['todos']);
```

Now, this a simple example with simple query key generation and parameters. The types are a little tricky to understand already though!

## The same example - the new way
```ts
const fetchTodos = async (userId: string): Promise<Todo[]> => fetch(`/user/${userId}/todos`);

const useTodos = createQueryWrapper(fetchTodos, 'todos');

// some other code
queryClient.invalidateQueries(useTodos.getQueryKey(userId)); // now query keys are more managable!
// OR to invalidate all of them
queryClient.invalidateQueries(useTodos.getQueryKey());
```

The hook returned here is completely type safe and supports all of the react-query options!

## Available wrappers
Documentation will come soon, use the source code for now!

- createQueryWrapper
- createSingleParamQueryWrapper
- createMultiParamQueryWrapper

# Roadmap
- createMutationWrapper(s)
- documentation
- unit tests
- infinite query support
npm package: @stevancorre/eslint-config
Description: ESLint configuration I use for my projects
Author: Stévan Corre
Latest version: 1.0.0

<h1 align="center">
    <br>
    <img src="https://i.imgur.com/nqLwT5b.png" alt="ESLint Logo" width="200">
    <br>
    Stevan's ESLint Config
    <br>
</h1>

<h4 align="center">ESLint configuration I use for <a href="https://github.com/stevancorre">my projects</a>.</h4>

<p align="center">
    <a href="https://nodejs.dev">
        <img src="https://img.shields.io/badge/Node.JS-68A063?style=for-the-badge&logo=node.js&logoColor=white">
    </a>
    <a href="https://eslint.org">
        <img src="https://img.shields.io/badge/ESLint-4A31C3?style=for-the-badge&logo=eslint&logoColor=white">
    </a>
    <a href="https://paypal.me/aiixu">
        <img src="https://img.shields.io/badge/Donate-00457C?style=for-the-badge&logo=paypal&logoColor=white">
    </a>
</p>

<p align="center">
    <a href="#installation">Installation</a> •
    <a href="#how-to-use">How to use</a> •
    <a href="#license">License</a> •
    <a href="#credits">Credits</a>
</p>

## Installation

```console
# Using Npm
$ npm i -D @stevancorre/eslint-config

# Pnpm
$ pnpm add -D @stevancorre/eslint-config

# Or Yarn
$ yarn add -D @stevancorre/eslint-config
```

<br>

## How to use

Create a new `.eslintrc.json` file or open an existing one, then just make it extend the configuration.

```json
{
    "extends": ["@stevancorre/eslint-config"]
}
```

## License

This project is <a href="https://opensource.org/licenses/MIT">MIT</a> licensed.

<br>

## Credits

-   Icon: <a href="https://eslint.org/" title="ESLint website">eslint.org</a>
-   README design: <a href="https://github.com/amitmerchant1990/electron-markdownify/blob/master/README.md">github.com/amitmerchant1990</a>
npm package: @stevancorre/prettier-config
Description: Prettier configuration I use for my projects
Author: Stévan Corre
Latest version: 1.0.0

<h1 align="center">
    <br>
    <img src="https://i.imgur.com/rO4P7Q7.png" alt="Prettier Logo" width="200">
    <br>
    Stevan's Prettier Config
    <br>
</h1>

<h4 align="center">Prettier configuration I use for <a href="https://github.com/stevancorre">my projects</a>.</h4>

<p align="center">
    <a href="https://nodejs.dev">
        <img src="https://img.shields.io/badge/Node.JS-68A063?style=for-the-badge&logo=node.js&logoColor=white">
    </a>
    <a href="https://prettier.io">
        <img src="https://img.shields.io/badge/Prettier-1A2B34?style=for-the-badge&logo=prettier&logoColor=white">
    </a>
    <a href="https://paypal.me/aiixu">
        <img src="https://img.shields.io/badge/Donate-00457C?style=for-the-badge&logo=paypal&logoColor=white">
    </a>
</p>

<p align="center">
    <a href="#installation">Installation</a> •
    <a href="#how-to-use">How to use</a> •
    <a href="#license">License</a> •
    <a href="#credits">Credits</a>
</p>

## Installation

```console
# Using Npm
$ npm i -D @stevancorre/prettier-config

# Pnpm
$ pnpm add -D @stevancorre/prettier-config

# Or Yarn
$ yarn add -D @stevancorre/prettier-config
```

<br>

## How to use

Create a new `.prettierrc.cjs` file or open an existing one, then just make it extend the configuration.

```js
module.exports = require("@stevancorre/prettier-config");
```

<br>

## License

This project is <a href="https://opensource.org/licenses/MIT">MIT</a> licensed.

<br>

## Credits

-   Icon: <a href="https://prettier.io/" title="Prettier website">prettier.io</a>
-   README design: <a href="https://github.com/amitmerchant1990/electron-markdownify/blob/master/README.md">github.com/amitmerchant1990</a>
npm package: @stevancorre/tsconfig
Description: TypeScript configuration I use for my projects
Author: Stévan Corre
Latest version: 1.0.1

<h1 align="center">
    <br>
    <img src="https://i.imgur.com/Y9tGyy8.png" alt="TypeScript icon" width="200">
    <br>
    Stevan's TSConfig
    <br>
</h1>

<h4 align="center">TypeScript configuration I use for <a href="https://github.com/stevancorre">my projects</a>.</h4>

<p align="center">
    <a href="https://nodejs.dev">
        <img src="https://img.shields.io/badge/Node.JS-68A063?style=for-the-badge&logo=node.js&logoColor=white">
    </a>
    <a href="https://www.typescriptlang.org">
        <img src="https://img.shields.io/badge/TypeScript-007acc?style=for-the-badge&logo=typescript&logoColor=white">
    </a>
    <a href="https://paypal.me/aiixu">
        <img src="https://img.shields.io/badge/Donate-00457C?style=for-the-badge&logo=paypal&logoColor=white">
    </a>
</p>

<p align="center">
    <a href="#installation">Installation</a> •
    <a href="#how-to-use">How to use</a> •
    <a href="#license">License</a> •
    <a href="#credits">Credits</a>
</p>

## Installation

```console
# Using Npm
$ npm i -D @stevancorre/tsconfig

# Pnpm
$ pnpm add -D @stevancorre/tsconfig

# Or Yarn
$ yarn add -D @stevancorre/tsconfig
```

<br>

## How to use

Create a new `tsconfig.json` file or open an existing one, then just make it extend one of base configurations in the package.

```json
{
    "extends": "tsconfig/base.json"
}
```

### NextJS project

```json
{
    "extends": "tsconfig/nextjs.json"
}
```

### React library project

```json
{
    "extends": "tsconfig/react-library.json"
}
```

## License

This project is <a href="https://opensource.org/licenses/MIT">MIT</a> licensed.

<br>

## Credits

-   Icon: <a href="https://www.flaticon.com/free-icons/typescript" title="typescript icons">Typescript icons created by Freepik - Flaticon</a>
-   README design: <a href="https://github.com/amitmerchant1990/electron-markdownify/blob/master/README.md">github.com/amitmerchant1990</a>
npm package: @stevancorre/tsup-config
Description: Tsup configuration I use for my projects
Author: Stévan Corre
Latest version: 1.0.1

<h1 align="center">
    <br>
    <img src="https://i.imgur.com/Y9tGyy8.png" alt="TypeScript icon" width="200">
    <br>
    Stevan's Tsup Config
    <br>
</h1>

<h4 align="center">TypeScript configuration I use for <a href="https://github.com/stevancorre">my projects</a>.</h4>

<p align="center">
    <a href="https://nodejs.dev">
        <img src="https://img.shields.io/badge/Node.JS-68A063?style=for-the-badge&logo=node.js&logoColor=white">
    </a>
    <a href="https://www.typescriptlang.org">
        <img src="https://img.shields.io/badge/TypeScript-007acc?style=for-the-badge&logo=typescript&logoColor=white">
    </a>
    <a href="https://paypal.me/aiixu">
        <img src="https://img.shields.io/badge/Donate-00457C?style=for-the-badge&logo=paypal&logoColor=white">
    </a>
</p>

<p align="center">
    <a href="#installation">Installation</a> •
    <a href="#how-to-use">How to use</a> •
    <a href="#license">License</a> •
    <a href="#credits">Credits</a>
</p>

## Installation

```console
# Using Npm
$ npm i -D @stevancorre/tsup-config

# Pnpm
$ pnpm add -D @stevancorre/tsup-config

# Or Yarn
$ yarn add -D @stevancorre/tsup-config
```

<br>

## How to use

Create a new `tsup.config.cjs` file or open an existing one, then just make it derive from the configuration

```js
module.exports = require("@stevancorre/tsup-config");
```

You can use it as a base configuration and change some options like that:

```js
module.exports = {
    ...require("@stevancorre/tsup-config"),
    dts: false,
};
```

###

## License

This project is <a href="https://opensource.org/licenses/MIT">MIT</a> licensed.

<br>

## Credits

-   Icon: <a href="https://www.flaticon.com/free-icons/typescript" title="typescript icons">Typescript icons created by Freepik - Flaticon</a>
-   README design: <a href="https://github.com/amitmerchant1990/electron-markdownify/blob/master/README.md">github.com/amitmerchant1990</a>
npm package: @stevanfreeborn/line-counter
Description: A simple line counter for reporting the number of lines changed in committed and uncommitted files.
Author: Stevan Freeborn
Latest version: 0.1.0

# Line Counter

This is a console app that monitors a git repository and reports on the number of lines changed in the repository while it is running. The results are displayed in the console and are written to a file.

## Installation

```pwsh
npm install -g @stevanfreeborn/line-counter
```

## Usage

```pwsh
line-counter <path-to-repo> <path-to-output-dir> [polling-interval-in-seconds]
```
npm package: @steve-cooks/agentpay
Description: Lean CLI for AgentPay: init, fund, balance, spend, cards, and expiration
Author: Cluvis
Latest version: 0.2.0

# AgentPay CLI

`agentpay` is the only supported CLI for this repo.

It wraps the lean AgentPay V1 API:

- `POST /init`
- `GET /balance`
- `POST /fund`
- `POST /spend`
- `GET /cards`
- `GET /expiration`
- `POST /expiration`
- `GET /start`

## Install

```bash
npm install -g agentpay
```

Or from this repo:

```bash
cd cli
npm install
npm link
```

## Config

Config is stored at:

```text
~/.agentpay/config.json
```

Example:

```json
{
  "api_key": "ap_...",
  "base_url": "https://agent-pay.sh"
}
```

Environment variable overrides:

- `AGENTPAY_API_KEY`
- `AGENTPAY_API_URL`

## Commands

Bootstrap:

```bash
agentpay init
agentpay login <apiKey>
```

Core flow:

```bash
agentpay balance
agentpay fund <amount>
agentpay spend <amount> [--memo <memo>]
agentpay cards
agentpay expiration
agentpay expiration <minutes>
agentpay start
```

Config:

```bash
agentpay config set-key <apiKey>
agentpay config set-url <url>
```

## Quickstart

```bash
agentpay init
agentpay fund 25
agentpay balance
agentpay spend 10 --memo "buy api credits"
agentpay cards
agentpay expiration 15
```

## JSON mode

Every command supports `--json`.

Examples:

```bash
agentpay balance --json
agentpay fund 25 --json
agentpay spend 10 --memo "buy api credits" --json
agentpay cards --json
```

## Authentication failures

If no valid API key is available, the CLI tells the user to either:

- run `agentpay init`
- or run `agentpay login <key>`
npm package: @steve-udotong/gatsby-stocktwits-symbol
Description: Pulls data about recent stocktwit messages under a given stock symbol, (EX: SPY, AAPL, TSLA)
Author: Steve Udotong
Latest version: 1.0.0

# `gatsby-stocktwits-symbol`

Pulls data about recent stocktwit messages under a given stock symbol, (EX: SPY, AAPL, TSLA)

## Example

In your `gatsby-config.js`:
```js
module.exports = {
  
  plugins: [
    
    {
      resolve: 'gatsby-stocktwits-symbol',
      options: {
        // get this at https://api.stocktwits.com/developers/apps/new 
        apikey: 'your_api_key',   
        stockId: 'SPY',
        maxTweets: 30, //optional, default is 20     
      }
    },
}
```
npm package: @steve31415/request-button
Description: Shared Request button for Plasticine Way apps — submit feature requests and bug reports to the Todo app
Latest version: 1.0.3

# @steve31415/request-button

Shared Request button for Plasticine Way apps — submit feature requests and bug reports to the Todo app.

## Publishing

Published via npm Trusted Publishing. Push a `v*` tag to trigger the GitHub Actions workflow, which builds, tests, and publishes automatically.

```bash
# 1. Bump version in package.json
# 2. Commit the version bump
# 3. Tag and push:
git tag v<version>
git push && git push origin v<version>
```
npm package: @steve_ttr/react-simple-sidebar
Description: A simple React sidebar
Author: Steve_ttr
Latest version: 1.0.0

# react-simple-sidebar

[![Travis][build-badge]][build]
[![npm package][npm-badge]][npm]
[![Coveralls][coveralls-badge]][coveralls]

Describe react-simple-sidebar here.

[build-badge]: https://img.shields.io/travis/user/repo/master.png?style=flat-square
[build]: https://travis-ci.org/user/repo

[npm-badge]: https://img.shields.io/npm/v/npm-package.png?style=flat-square
[npm]: https://www.npmjs.org/package/npm-package

[coveralls-badge]: https://img.shields.io/coveralls/user/repo/master.png?style=flat-square
[coveralls]: https://coveralls.io/github/user/repo
npm package: @steveaxtmann/bamboo-time-tracker
Description: ## Install
Latest version: 0.2.0

# bamboo-time-tracker

## Install

To install:

1. Ensure that you have NodeJS installed (https://github.com/creationix/nvm)

2. Run: ```npm i -g @steveaxtmann/bamboo-time-tracker```

Then you can run it with:

```btt```

## Time format

When btt asks you for a time, you can copy it straight from bamboo. E.G. `6h 24m`

## Commands

### time

Usage: ```btt time```

Enter your times for the week up to today. btt will tell you when you can leave

### total

Usage: ```btt total```

Enter as many times as you need. btt will tell you when you can leave, counting each time entered as a full day of work

### save

Usage: ```btt save```

Enter as many times as you need, **NOT** including today. These times will be used when running the `today` command

### append

Usage: ```btt append```

Append another day onto the currently saved times

### today

Usage: ```btt today```

Show how much time you have left today, including all days saved with the `save` command

### clear

Usage: ```btt clear```

Clears all saved days
npm package: @stevebauman/shiki
Description: shiki
Author: Pine Wu
Latest version: 0.10.9

<p>
  <h2 align="center">Shiki</h2>
</p>
<p align="center">
  Shiki is a beautiful Syntax Highlighter. <a href="http://shiki.matsu.io">Demo</a>.
</p>

## Usage

```sh
npm i shiki
```

```js
const shiki = require('shiki')

shiki
  .getHighlighter({
    theme: 'nord'
  })
  .then(highlighter => {
    console.log(highlighter.codeToHtml(`console.log('shiki');`, { lang: 'js' }))
  })

// <pre class="shiki" style="background-color: #2e3440"><code>
//   <!-- Highlighted Code -->
// </code></pre>
```

```html
<script src="https://unpkg.com/shiki"></script>
<script>
  shiki
    .getHighlighter({
      theme: 'nord'
    })
    .then(highlighter => {
      const code = highlighter.codeToHtml(`console.log('shiki');`, { lang: 'js' })
      document.getElementById('output').innerHTML = code
    })
</script>
```

Clone [shikijs/shiki-starter](https://github.com/shikijs/shiki-starter) to play with Shiki, or try it out on [Repl.it](https://repl.it/@octref/shiki-starter).

## Seen

- Shiki Docs: https://shiki.matsu.io
- Interactive Demo on CodeSandbox (with Next.js): https://codesandbox.io/s/shiki-next-js-cir0y
- [VS Code website](https://code.visualstudio.com), such as in the [Notebook API page](https://code.visualstudio.com/api/extension-guides/notebook).
- [TypeScript website](https://www.typescriptlang.org), such as in the [Basic Types documentation page](https://www.typescriptlang.org/docs/handbook/basic-types.html#tuple).
- [Markdown Preview Shiki Highlighting](https://marketplace.visualstudio.com/items?itemName=bierner.markdown-Shiki), a VS Code plugin to use Shiki's highlighting in Markdown preview.
- [Shiki LaTeX](https://www.npmjs.com/package/shiki-latex), a Shiki renderer for [LaTeX](https://www.latex-project.org). Compatible with [minted](https://github.com/gpoore/minted), replacing [Pygments](https://pygments.org).
- [Fatih Kalifa's website](https://fatihkalifa.com/typescript-twoslash)
- [Blockstack Documentation](https://docs.blockstack.org/)

## Contributing

- [Add a theme](./docs/themes.md#add)
- [Add a language grammar](./docs/languages.md#add)

## Credits

- Shiki uses [vscode-oniguruma](https://github.com/microsoft/vscode-oniguruma)
- A lot of code is based on [vscode-textmate](https://github.com/Microsoft/vscode-textmate)

## Sponsorship

If you find Shiki useful, please consider sponsoring my Open Source development. Thank you 🙏

https://github.com/sponsors/octref

## License

MIT © [Pine Wu](https://github.com/octref)
npm package: @stevebel/png
Description: 🖼A full-featured PNG decoder and encoder.
Author: stevebel
Latest version: 1.5.1

# png

[![Build Status][travis-image]][travis-url]
[![NPM Version][npm-version-image]][npm-url]
[![NPM Downloads][npm-downloads-image]][npm-url]
[![MIT License][license-image]][license-url]
[![Standard Version][standard-version-image]][standard-version-url]
[![Codecov][codecov-image]][codecov-url]

> 🖼A full-featured PNG decoder and encoder. Fork of @vivaxy/png maintained as of Feb 2023.

# Supports

- Environments: Browsers and Node.js
- Chunks: IHDR, PLTE, IDAT, IEND, tRNS, cHRM, gAMA, iCCP, sBIT, sRGB, tEXt, zTXt, iTXt, bKGD, hIST, pHYs, sPLT, tIME
- Color Types: Greyscale, Truecolour, Indexed-colour (Palette), Greyscale with alpha, Truecolour with alpha
- Bit Depths: 1, 2, 4, 8, 16
- Filters: None, Sub, Up, Average, Paeth

# Install

`yarn add @stevebel/png` or `npm i @stevebel/png`

# Usage

```js
import * as png from '@stevebel/png';

const metadata = png.decode(imageBuffer);
const imageBuffer = png.encode(metadata);
```

See `metadata` type definition in [metadata.ts](src/helpers/metadata.ts).

# Articles

- [Decoding A PNG Image with JavaScript Step by Step](https://vivaxyblog.github.io/2019/11/07/decode-a-png-image-with-javascript.html) 中文版：[一步一步解码 PNG 图片](https://vivaxyblog.github.io/2019/12/07/decode-a-png-image-with-javascript-cn.html)

# Prior Art

- [PngSuite - the official set of PNG test images](http://www.schaik.com/pngsuite/)
- [upng-js](https://github.com/photopea/UPNG.js)
- [PNGjs-Image](https://github.com/YahooArchive/pngjs-image)
- [fast-png](https://github.com/image-js/fast-png)
- [pngparse-sync](https://github.com/mikolalysenko/pngparse-sync)
- [pngjs3](https://github.com/gforge/pngjs3)
- [pngjs](https://github.com/lukeapage/pngjs)
- [png-js](https://github.com/foliojs/png.js)

#

_Project created by [create-n](https://github.com/vivaxy/create-n)._

[travis-image]: https://img.shields.io/travis/stevebel/png.svg?style=flat-square
[travis-url]: https://travis-ci.org/stevebel/png
[npm-version-image]: https://img.shields.io/npm/v/@stevebel/png.svg?style=flat-square
[npm-url]: https://www.npmjs.com/package/@stevebel/png
[npm-downloads-image]: https://img.shields.io/npm/dt/@stevebel/png.svg?style=flat-square
[license-image]: https://img.shields.io/npm/l/@stevebel/png.svg?style=flat-square
[license-url]: LICENSE
[standard-version-image]: https://img.shields.io/badge/release-standard%20version-brightgreen.svg?style=flat-square
[standard-version-url]: https://github.com/conventional-changelog/standard-version
[codecov-image]: https://img.shields.io/codecov/c/github/stevebel/png.svg?style=flat-square
[codecov-url]: https://codecov.io/gh/stevebel/png
npm package: @stevecgc/lowcode-code-generator
Description: 出码引擎 for LowCode Engine
Latest version: 0.0.1

# 出码

所谓出码，即将低代码编排出的 schema 进行解析并转换成最终可执行的代码的过程。本模块提供有 Icejs、vue 和 Rax 三套框架的出码方案，并提供了强大而灵活的扩展机制。

## 使用方法

### 1) 通过命令行快速体验

欢迎使用命令行工具快速体验：`npx @crami/lowcode-code-generator -i example-schema.json -o generated -s vue`

--其中 example-schema.json 可以从[这里下载](https://unpkg.com/@alilc/lowcode-code-generator@beta/example-schema.json)

### 2) 通过设计器插件快速体验

1. 安装依赖: `npm install --save @crami/lowcode-plugin-code-generator`
2. 注册插件:

```ts
import { plugins } from '@alilc/lowcode-engine';
import CodeGenPlugin from '@crami/lowcode-plugin-code-generator';

// 在你的初始化函数中：
await plugins.register(CodeGenPlugin);

// 如果您不希望自动加上出码按钮，则可以这样注册
await plugins.register(CodeGenPlugin, { disableCodeGenActionBtn: true });
```

然后运行你的低代码编辑器项目即可 -- 在设计器的右上角会出现一个“出码”按钮，点击即可在浏览器中出码并预览。

### 3）服务端出码接入

此代码生成器一开始就是为服务端出码设计的，你可以直接这样来在 node.js 环境中使用：

1. 安装依赖: `npm install --save @crami/lowcode-code-generator`
2. 引入代码生成器:

```js
import CodeGenerator from '@crami/lowcode-code-generator';
```

3. 创建项目构建器:

```js
const projectBuilder = CodeGenerator.solutions.vue();
```

4. 生成代码

```js
const project = await projectBuilder.generateProject(
  schema, // 编排搭建出来的 schema
);
```

5. 将生成的代码写入到磁盘中(也可以生成一个 zip 包)

```js
// 写入磁盘
await CodeGenerator.publishers.disk().publish({
  project, // 上一步生成的 project
  outputPath: '/path/to/your/output/dir', // 输出目录
  projectSlug: 'your-project-slug', // 项目标识
});

// 写入到 zip 包
await CodeGenerator.publishers.zip().publish({
  project, // 上一步生成的 project
  outputPath: '/path/to/your/output/dir', // 输出目录
  projectSlug: 'your-project-slug', // 项目标识 -- 对应生成 your-project-slug.zip 文件
});
```

注：一般来说在服务端出码可以跟 github/gitlab, CI 和 CD 流程等一起串起来使用，通常用于优化性能。

### 4）浏览器中出码接入

随着现在电脑性能和浏览器技术的发展，出码其实已经不必非得在服务端做了，借助于 Web Worker 特性，可以在浏览器中进行出码：

1. 安装依赖: `npm install --save @crami/lowcode-code-generator`
2. 引入代码生成器:

```js
import * as CodeGenerator from '@crami/lowcode-code-generator/standalone-loader';
```

3. 【可选】提前初始化代码生成器:

```js
// 提前初始化下，这样后面用的时候更快(这个 init 内部会提前准备好创建 worker 的一些资源)
await CodeGenerator.init();
```

4. 出码

```js
const result = await CodeGenerator.generateCode({
  solution: 'vue', // 出码方案 (目前内置有 icejs、vue 和 rax )
  schema, // 编排搭建出来的 schema
});

console.log(result); // 出码结果(默认是递归结构描述的，可以传 flattenResult: true 以生成扁平结构的结果)
```

注：一般来说在浏览器中出码适合做即时预览功能。
npm package: @stevefan1999/babel-plugin-transform-pug-html
Description: Transforms "pug" tagged template literals into html strings
Latest version: 0.1.2

# babel-plugin-transform-pug-html
Transforms "pug" tagged template literals to html strings

## Usage
Just add to your ``` .babelrc ```:
```
{
  ...
  "plugins": ["@stevefan1999/babel-plugin-transform-pug-html"]
}
```

Then anywhere in your code you can write:

```
pug `
div
  p This text belongs to the paragraph tag.
  br
  .
    This text belongs to the div tag.
`

// Which produces:

`<div>
  <p>This text belongs to the paragraph tag.</p>
  <br/>
  This text belongs to the div tag.
</div>`
```
npm package: @stevefan1999/fuck-babel-helper-jsx
Description: Revert babelHelpers.jsx back to React.createElement
Author: Steve Fan
Latest version: 0.0.6

# fuck-babel-helper-jsx

##### This package is used to resolve the problem of [preact-compat#238](https://github.com/developit/preact-compat/issues/238), I'm not sure this is going to work for all instances

Utility for reverting babelHelper.jsx calls back to React.createElement

# Why?

The plugin, [babel-plugin-transform-react-inline-elements](https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-react-inline-elements), is rewriting every [React.createElement](https://github.com/facebook/react/blob/master/packages/react/src/ReactElement.js#L170) calls to the more optimized [babelHelpers.jsx](https://github.com/babel/babel/blob/master/packages/babel-helpers/src/helpers.js#L24) for production environment.

The intentions of doing this were good. However, since [babelHelper.jsx is specially designed for the VNode structure of React](https://github.com/developit/preact/issues/841#issuecomment-325465910), this would break compatibilities if [alias shim](https://github.com/developit/preact-compat#usage-with-webpack) is used instead to activate [preact-compat](https://github.com/developit/preact-compat) or [inferno-compat](https://github.com/infernojs/inferno/tree/master/packages/inferno-compat).

# Usage

If you are using webpack then you only needed to add a new alias:
```js
module.exports = {
  ...
  resolve: {
    "alias": {
      ...
      "babel-runtime/helpers/jsx": "@stevefan1999/fuck-babel-helper-jsx",
      ...
    }
  }
  ...
}
```
npm package: @stevefan1999/spectacle-sync
Description: 💁 Present Spectacle presentations synchronised on multiple devices
Latest version: 1.2.0

# [spectacle](https://github.com/FormidableLabs/spectacle)-sync

💁 Present Spectacle presentations synchronised on multiple devices.

- You create a new session and share the token with your audience
- Your viewers open the presentation and join the session
- All viewers' browsers will connect to yours via WebRTC
- Proceed to give the most stylish presentation imaginable 🕶

You don't even need to start up another server! A signal server is already
predeployed and WebRTC works P2P ✨

<img src="demo.gif" />

**[Demo](https://spectacle-sync-demo.surge.sh)**

## Getting Started

If you haven't set up your presentation you can use `create-react-app` to get started:

```
create-react-app my-presentation --scripts-version spectacle-scripts
```

Once you have your presentation, just install `spectacle-sync` from npm:

```
yarn add spectacle-sync
```

To add it to your presentation, all you need to do is to replace Spectacle's `<Deck>` with
Spectacle Sync's `<NetworkDeck>`:

```js
import React, { Component } from 'react';
import { Slide } from 'spectacle';

// Use this Deck instead of spectacle's:
import { NetworkDeck } from 'spectacle-sync';

export default class Presentation extends Component {
  render() {
    return (
      <NetworkDeck>
        <Slide>
          // ...
        </Slide>
      </NetworkDeck>
    );
  }
}
```

Then just start your app as usual and you will be greeted by the connection manager.
There you can either enter a token that you've been given and join an existing session,
or create a new one, which will generate a new token for you to share.

After you close the connection manager by clicking anywhere, you will find a small indicator
on the bottom left, informing you of the status of the WebRTC connection(s).

## How it works

When establishing a session a WebSocket connection is opened which by default connects to
`https://spectacle-signalling.now.sh`. This server takes care of registering sessions
and clients, and established the WebRTC peer to peer connections.

All of the viewers' browsers connect to the presenter's browser, which then proceeds to send
Spectacle's local storage changes over the connection. Nice!

The signalling server is in this same repo under `server/` and you can start your own
if you want.

## API

The only exposed component is the `NetworkDeck` component which accepts the following props
additionally to the standad Spectacle Deck's props:

| Name | PropType | Description |
| ---- | -------- | ----------- |
| signalUri | PropTypes.string | Used to change the default signalling server |
npm package: @stevegogogo/news-aggregator-skill
Description: Conversation-first news aggregator skill installer for Claude Code, OpenCode, and Cursor
Latest version: 0.1.2

# News Aggregator Skill

通用多源新闻聚合 Skill，面向 AI / 技术 / 开源 / 财经场景。

## 功能特性

- 多源聚合：覆盖科技、开源、财经、社交热榜与扩展 RSS。
- 结果增强：去重、规则排序、可选二次重排。
- 深度解读：支持正文抓取与结构化摘要。
- 对话优先：默认使用自然语言，不需要记参数。

## 支持信源

- Core：Hacker News、GitHub Trending、Product Hunt、36Kr、腾讯新闻、华尔街见闻、微博、V2EX。
- Trend 扩展：头条、百度、知乎、抖音、微博等热榜渠道。
- RSS+ 扩展：技术与 AI 站点（可按需扩展）。

## 安装

### 0) NPM 一键安装（推荐）

无需手动复制文件：

```bash
npx @stevegogogo/news-aggregator-skill install
```

只安装到 Claude Code：

```bash
npx @stevegogogo/news-aggregator-skill install --target claude
```

只安装到 OpenCode：

```bash
npx @stevegogogo/news-aggregator-skill install --target opencode
```

只安装到 Cursor：

```bash
npx @stevegogogo/news-aggregator-skill install --target cursor
```

同时安装到 Claude Code + OpenCode + Cursor：

```bash
npx @stevegogogo/news-aggregator-skill install --target all
```

安装到自定义目录：

```bash
npx @stevegogogo/news-aggregator-skill install --dir ~/.claude/skills/news-aggregator-skill
```

可选全局安装：

```bash
npm i -g @stevegogogo/news-aggregator-skill
news-aggregator-skill install
```

### 1) 安装到 Claude Code

将本目录复制到：

- `~/.claude/skills/news-aggregator-skill`

### 2) 安装到 OpenCode

将本目录复制到：

- `~/.config/opencode/skills/news-aggregator-skill`

### 3) 安装到 Cursor

将本目录复制到：

- `~/.cursor/skills/news-aggregator-skill`

### 4) 安装依赖

进入 skill 目录执行：

```bash
pip install -r requirements.txt
```

## 使用

### 对话方式（推荐）

- 直接说：`news-aggregator-skill 如意如意`（打开菜单）
- 或直接提需求：
  - `帮我看今天的 AI 新闻`
  - `全网扫描今天科技热点`
  - `给我国内科技和市场的重点新闻`
  - `只看最重要的 5 条并说明原因`

### 输出内容（默认）

每条新闻通常包含：

- 标题（链接）
- 来源、时间、热度/评分
- 简要摘要
- 自动生成主题标签（3-5 个）

## 目录结构

- `package.json`：npm 包与 CLI 入口定义
- `bin/cli.mjs`：安装命令行（copy 到 Claude/OpenCode）
- `SKILL.md`：交互规则与执行策略
- `templates.md`：菜单模板
- `scripts/fetch_news.py`：抓取与处理逻辑
- `requirements.txt`：Python 依赖

## 说明

- 开源版为通用配置，不依赖个人记忆文件。
- 主题标签自动生成，不绑定固定白名单。
npm package: @stevekinney/spectacle-code-slide
Description: Present code with style. (A fork that works with React 16)
Author: James Kyle
Latest version: 0.4.0

# [spectacle](http://stack.formidable.com/spectacle)-code-slide

Present code with style using [spectacle](https://github.com/FormidableLabs/spectacle).

<img src="demo.gif" width="400"/>

> _Dude, you just changed the code presentation game_ – [@kenwheeler](https://github.com/kenwheeler)

## Install

```
$ npm install --save spectacle
$ npm install --save spectacle-code-slide
```

## Usage

```js
import React from 'react';
import { Spectacle, Deck } from 'spectacle';
import CodeSlide from 'spectacle-code-slide';
import shiaLabeoufMagicGif from "./shiaLabeoufMagic.gif"
import preloader from "spectacle/lib/utils/preloader";

preloader({
  shiaLabeoufMagicGif
});

export default class Presentation extends React.Component {
  render() {
    return (
      <Spectacle theme={theme}>
        <Deck transition={[]} transitionDuration={0} progress="bar">
          // ...
          <CodeSlide
            transition={[]}
            lang="js"
            code={require("raw-loader!../assets/code.example")}
            ranges={[
              { loc: [0, 270], title: "Walking through some code" },
              { loc: [0, 1], title: "The Beginning" },
              { loc: [1, 2] },
              { loc: [1, 2], note: "Heres a note!" },
              { loc: [2, 3] },
              { loc: [4, 7], image: shiaLabeoufMagicGif },
              { loc: [8, 10] },
              // ...
            ]}/>
          // ...
        </Deck>
      </Spectacle>
    );
  }
}
```

## Syntax Highlighting

Provided by [PrismJS](https://github.com/PrismJS/prism). See http://prismjs.com/ for docs.