open-index/open-npm huggingface dataset:
npm package: @pksep/zod-shared-chat
Description: Shared Zod schemas for chat server and client
Author: pksep
Latest version: 0.0.7

# @pksep/zod-shared-chat

Shared Zod schemas for the chat server project. Works with both backend (NestJS) and frontend (React, Vue, etc.).

## Installation

```bash
npm install @pksep/zod-shared-chat
# or
yarn add @pksep/zod-shared-chat
# or
pnpm add @pksep/zod-shared-chat
```

## Usage

### Backend (NestJS)

```typescript
import {
  UserSchema,
  CreateUserSchema,
  type User,
  type CreateUser
} from '@pksep/zod-shared-chat';

// Validate data
const userData = UserSchema.parse({ id: '...', initials: '...' });

// Type inference
const newUser: CreateUser = {
  initials: 'Иванов И.И.',
  nickname: 'user123'
};
```

### Frontend (React)

```typescript
import { CreateUserSchema, type CreateUser } from '@pksep/zod-shared-chat';
import { useForm } from 'react-hook-form';
import { zodResolver } from '@hookform/resolvers/zod';

const CreateUserForm = () => {
  const { register, handleSubmit } = useForm<CreateUser>({
    resolver: zodResolver(CreateUserSchema)
  });

  return (
    <form onSubmit={handleSubmit(data => console.log(data))}>
      <input {...register('initials')} placeholder="ФИО" />
      <input {...register('nickname')} placeholder="Никнейм" />
      <button type="submit">Create</button>
    </form>
  );
};
```

## Available Schemas

### User

- `UserSchema` - Complete user model
- `CreateUserSchema` - User creation validation
- `UpdateUserSchema` - User update validation
- `GetUsersSchema` - User query parameters

### Group

- `GroupSchema` - Complete group model
- `CreateGroupSchema` - Group creation validation
- `UpdateGroupSchema` - Group update validation
- `AddMembersSchema` - Add members validation
- `GroupMemberRoleSchema` - Group member role model

### Topic

- `TopicSchema` - Complete topic model
- `CreateTopicSchema` - Topic creation validation
- `GetTopicsSchema` - Topic query parameters

### Message

- `MessageSchema` - Complete message model

### WebSocket

- `WsCreateMessageSchema` - Create message via WebSocket
- `WsUpdateMessageSchema` - Update message via WebSocket
- `WsReactionSchema` - Reaction via WebSocket
- `WsReadMessageSchema` - Mark messages as read

### Auth

- `AuthUserSchema` - Authentication user data

### Other

- `ReactionSchema` - Complete reaction model
- `MediaSchema` - Complete media model
- `TopicSettingSchema` - Complete topic setting model

## Frontend Features

- ✅ **Type Safety**: Full TypeScript support
- ✅ **Form Validation**: Works with React Hook Form, Formik
- ✅ **API Validation**: Validate responses from backend
- ✅ **WebSocket Support**: Validate WebSocket messages
- ✅ **Tree Shaking**: Only import what you need
- ✅ **Zero Dependencies**: Only Zod as peer dependency

## Development

```bash
# Build the package
npm run build

# Watch for changes
npm run dev
```

## Frontend Usage Examples

See [FRONTEND_USAGE.md](./FRONTEND_USAGE.md) for detailed frontend examples including:

- React Hook Form integration
- API client implementation
- WebSocket message handling
- Form validation patterns
npm package: @pksung1/folder-opener
Description: Capacitor Folder Opener. The plugin is able to open a folder containing a specified file.
Author: Seon Park
Latest version: 0.0.6

# Capacitor Folder Opener

A Capacitor plugin that allows you to open folders containing a specified file in the device's file system.

## Install

```bash
npm install pksung1/folder-opener
npx cap sync
```

## API

<docgen-index>

* [`open(...)`](#open)
* [Interfaces](#interfaces)

</docgen-index>

<docgen-api>
<!--Update the source file JSDoc comments and rerun docgen to update the docs below-->

### open(...)

```typescript
open(options: FolderOpenerOptions) => Promise<void>
```

Method to open the folder containing the specified file.

| Param         | Type                                                                |
| ------------- | ------------------------------------------------------------------- |
| **`options`** | <code><a href="#folderopeneroptions">FolderOpenerOptions</a></code> |

**Since:** 1.0.0

--------------------


### Interfaces


#### FolderOpenerOptions

folder open method options

| Prop           | Type                | Description                                                      | Since |
| -------------- | ------------------- | ---------------------------------------------------------------- | ----- |
| **`filePath`** | <code>string</code> | file path - the plugin will open the folder containing this file | 1.0.0 |

</docgen-api>
npm package: @pku6/pv-tools
Description: Pre-upload processing of pku lesson videos
Author: pku6
Latest version: 0.0.2

# PV Tools
- Require [ffmpeg](http://ffmpeg.org).
- Require [nodejs](https://nodejs.org).

This is a npm package, aiming to provide [npm executables](https://docs.npmjs.com/cli/v7/configuring-npm/folders#executables) for the pre-upload processing of pku lesson videos.

## Install
```
npm i -g @pku6/pv-tools
```

## Use
Each asset of a github release should be smaller than 2GB. So you need the following command to split big lesson videos. The command will split all the videos not smaller than 2GB inside the current folder.
```
splitpvs
```

In a mp4 video, if the moov box is after the mdat box, then the online loading of the video will be much slower. Unfortunately, it is just how original pku lesson videos are. So you need the following command to fix them. The command will fix all the videos with the problem inside the current folder.
```
fixpvs
```

We strongly recommand that you execute all the above commands everytime before uploading pku lesson videos to some github release.