open-index/open-npm huggingface dataset:
npm package: @igetis/keyvault
Description: Official IGETIS KeyVault SDK for Node.js — secure secrets management.
Author: IGETIS
Latest version: 1.2.0

# @igetis/keyvault

> Official IGETIS KeyVault SDK for Node.js — fetch and manage your application secrets securely.

[![npm version](https://img.shields.io/npm/v/@igetis/keyvault.svg)](https://www.npmjs.com/package/@igetis/keyvault)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Node.js >= 18](https://img.shields.io/badge/node-%3E%3D18-brightgreen)](https://nodejs.org)

---

## Installation

```bash
npm install @igetis/keyvault
```

---

## Usage

You need **three parameters** from your IGETIS KeyVault portal:

| Parameter | Description |
|---|---|
| `tenantId` | Your tenant GUID |
| `clientId` | Your numeric application ID |
| `secrets` | Your application secret passphrase |

```typescript
import { IgetisKeyvaults } from '@igetis/keyvault';

const keyVault = new IgetisKeyvaults({
  tenantId: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
  clientId: '42',
  secrets: 'your-secret-passphrase',
});

const keys = await keyVault.getProjectKeys();

if (keys['Error']) {
  console.error('KeyVault error:', keys['Error']);
} else {
  console.log('DB_CONNECTION:', keys['DB_CONNECTION_STRING']);
  console.log('API_KEY:', keys['EXTERNAL_API_KEY']);
}
```

---

## With environment variables (recommended)

```typescript
import { IgetisKeyvaults } from '@igetis/keyvault';

const keyVault = new IgetisKeyvaults({
  tenantId: process.env.KV_TENANT_ID!,
  clientId: process.env.KV_CLIENT_ID!,
  secrets: process.env.KV_SECRETS!,
});

const keys = await keyVault.getProjectKeys();
```

---

## NestJS integration

```typescript
// app.module.ts
import { Module } from '@nestjs/common';
import { IgetisKeyvaults } from '@igetis/keyvault';
import { ConfigModule, ConfigService } from '@nestjs/config';

@Module({
  imports: [ConfigModule.forRoot()],
})
export class AppModule {
  static async forRoot() {
    const vault = new IgetisKeyvaults({
      tenantId: process.env.KV_TENANT_ID!,
      clientId: process.env.KV_CLIENT_ID!,
      secrets: process.env.KV_SECRETS!,
    });

    const keys = await vault.getProjectKeys();

    // Merge into process.env so ConfigService picks them up
    Object.entries(keys).forEach(([k, v]) => {
      if (k !== 'Error') process.env[k] = String(v);
    });
  }
}
```

---

## API Reference

### `new IgetisKeyvaults(credentials)`

| Parameter | Type | Description |
|---|---|---|
| `credentials.tenantId` | `string` | Your tenant GUID |
| `credentials.clientId` | `string` | Your numeric client ID |
| `credentials.secrets` | `string` | Your secret passphrase |

### `getProjectKeys(): Promise<SecretsResult>`

Validates your credentials and returns all secrets as a flat `Record<string, unknown>`.

Returns `{ Error: string }` if credentials are invalid or no secrets are found.

---

## Requirements

- Node.js >= 18

---

## License

MIT © [IGETIS](https://igetis.online)
npm package: @igetter/core
Description: <h1 align="center">IGetter</h1>
Author: LarenDorr
Latest version: 0.0.1

<h1 align="center">IGetter</h1>

<h2 align="center">是什么</h2>

IGetter是一个声明式、易扩展的监控型爬虫框架。

- 声明式：IGetter是一个基础的监控型爬虫框架，用户只需编写相应的解析即可。其余的调度、下载、存储由IGetter负责。
- 易扩展：IGetter使用Tapable暴露爬虫的生命周期，从发出请求到接收到响应整个过程都可控。
- 监控型：IGetter更擅长以监控信息为目的的爬虫，例如：JavaScript周报更新、BiliBili UP 主视频更新...

<h2 align="center">构成</h2>

IGetter主要分为Engine、Downloader、Job、Plugin、Store五部分。

**Engine**负责Job的添加、调度，传递Job的请求、Downloader的响应以及插件的注册。

**Downloader**是一个异步并发下载队列，负责下载Engine传递来的请求。使用superagent库来下载，如果想使用其他请求库，替换非常简单。

**Job**是使用者主要关注的地方，在这里主要进行爬虫的解析，存储。希望能利用开源的力量，将所有的Job聚集一起供用户使用，例如：知乎xxx新回答，xxx更新了微博，steamxxx游戏有更新...也是急需贡献的地方！

**Plugin**即为插件，IGetter将一个爬虫从发出请求到接收到响应整个过程使用Tapable暴露出来。可以在此做很多事情，例如：随机User-Agent、爬虫性能分析、模拟登录，爬虫监控、代理设置...

**Store**是IGetter提供的存储工具，使用nedb库，类mongoDB的语法更易使用。当然，如果想使用其他存储库，也可替换。

<p align="center">
  <img src="./docs/IGetter.png" alt="alt text" width="600" height="450">
</p>

<h2 align="center">例子</h2>

下面是一个简单的例子，目的是抓取`https://example.com`的title和content，并存储。
真实例子可以参考项目目录Example steamcn每日新闻。

```ts
class YourJob extends Job{
  public JobName = 'A Example Job' // 任务名称
  constructor(){
    super()
  }
  async run(){ // 任务主体
    let $ = this.$ // 内置解析器cheerio
    let pageFetch = await this.request({ // 发出请求，等待Downloader下载
      url: 'https://example.com'
    })
    let resBody = pageFetch.response.body // 获取响应
    return { // 返回的数据将会交由Engine存储值Store
      title: $('#title', resBody) // 使用cheerio获取title信息,
      content: $('#content', resBody) // 使用cheerio获取content信息
    }
  }
}
```
npm package: @igetter1/yxtvant
Description: Vant CLI is a tool for building vue component library. You can quickly build a full-featured Vue component library with vant-cli.
Author: chenjiahan
Latest version: 1.0.2

# Vant CLI

Vant CLI is a tool for building vue component library. You can quickly build a full-featured Vue component library with vant-cli.

🇨🇳 <a href="./README.zh-CN.md">查看中文版介绍</a>

---

### Features

- Provides rich commands covering the complete process from development to deploy
- Based on conventional directory structure. Generate elegant document website and component examples automatically.
- ESlint Stylelint built-in.
- Support Tree Shaking/Theme Customization/Import on Demand

### Quickstart

To create a Vant CLI project, run:

```bash
yarn create vant-cli-app
```

### Install Manually

```shell
# via npm
npm i @vant/cli -D

# via yarn
yarn add @vant/cli -D

# via pnpm
pnpm add @vant/cli -D
```

Please add the followed config to `package.json` file.

```json
{
  "scripts": {
    "dev": "vant-cli dev",
    "test": "vant-cli test",
    "lint": "vant-cli lint",
    "build": "vant-cli build",
    "prepare": "husky install",
    "release": "vant-cli release",
    "build-site": "vant-cli build-site"
  },
  "lint-staged": {
    "*.md": "prettier --write",
    "*.{ts,tsx,js,vue,less,scss}": "prettier --write",
    "*.{ts,tsx,js,vue}": "eslint --fix",
    "*.{vue,css,less,scss}": "stylelint --fix"
  },
  "eslintConfig": {
    "root": true,
    "extends": ["@vant"]
  },
  "stylelint": {
    "extends": ["@vant/stylelint-config"]
  },
  "prettier": {
    "singleQuote": true
  },
  "browserslist": ["Chrome >= 51", "iOS >= 10"]
}
```

## More Details

- [cli](https://github.com/youzan/vant/tree/dev/packages/vant-cli/docs/commands.md)
- [config](https://github.com/youzan/vant/tree/dev/packages/vant-cli/docs/config.md)
- [directory structure](https://github.com/youzan/vant/tree/dev/packages/vant-cli/docs/directory.md)
- [CHANGELOG](https://github.com/youzan/vant/tree/dev/packages/vant-cli/changelog.md)
npm package: @igggy/types
Description: Shared types and utilities for Igggy clients
Author: Andrew Lassetter
Latest version: 1.0.1

# @igggy/types

Shared TypeScript type definitions and utilities for [Igggy](https://igggy.ai) clients (web app, Obsidian plugin, future clients).

Includes API request/response types, note content types, and non-sensitive utilities like `normalizeNoteType()` and `formatNoteFilename()`.
npm package: @igggy/waveform
Description: Shared waveform renderer for Igggy clients (web + plugin)
Author: Andrew Lassetter
Latest version: 0.1.1

# @igggy/waveform

Shared canvas-based waveform renderer for [Igggy](https://igggy.ai) clients (web app, Obsidian plugin).

Renders real-time audio waveform visualizations using the Canvas API.