open-index/open-npm huggingface dataset:
npm package: @ieportals/gh-secrets-from-env
Description: Upload key/value pairs from an env file to GitHub repository secrets via gh CLI
Latest version: 1.0.1

# gh-secrets-from-env

Upload key/value pairs from an env file into GitHub Actions repository secrets using the GitHub CLI.

See [CHANGELOG.md](./CHANGELOG.md) for release notes.

## File in this repo

- `src/cli.ts`: Commander-based TypeScript CLI that reads an env file and runs `gh secret set` for each valid `KEY=VALUE` entry.

## Prerequisites

1. [Node.js](https://nodejs.org/) installed
2. [GitHub CLI](https://cli.github.com/) installed (`gh` command available)
3. Logged in with GitHub CLI:
   ```bash
   gh auth login
   ```
4. Permission to manage secrets in the target repository

## Run Without Installing

```bash
npx @ieportals/gh-secrets-from-env ENV_FILE REPO
```

- Runs from npm without local install.
- For pnpm users after publish:
  ```bash
  pnpm dlx @ieportals/gh-secrets-from-env ENV_FILE REPO
  ```
- `ENV_FILE` is required.
- `REPO` is required.

## Local Development

```bash
npm install
npm run build
node dist/cli.js ENV_FILE REPO
```

## Target repository

```bash
npx @ieportals/gh-secrets-from-env .env.production owner/repo
```

## Accepted env file format

```env
# comments are ignored
API_KEY=abc123
DATABASE_URL="postgres://user:pass@host/db"
export REDIS_URL=redis://localhost:6379
```

## Example

```bash
npx @ieportals/gh-secrets-from-env .env.test owner/repo
```

Output will include each key as it is uploaded and a final count.

## Troubleshooting

- `Error: GitHub CLI (gh) is not installed.`
  - Install GitHub CLI and re-run.
- `Error: Env file not found: ...`
  - Check the file path.
- `gh` permission/auth errors
  - Run `gh auth status` and ensure you have repo admin/secret permissions.
npm package: @ieportals/porkbun-provider
Description: A tiny TypeScript helper for creating and deleting Porkbun CNAME records.
Author: ieportals
Latest version: 1.0.0

# porkbun-provider

A tiny TypeScript helper for creating and deleting Porkbun CNAME records.

## Environment variables

An example env file is included at `.env.example`.

Runtime keys:

- `PORKBUN_BASE_URL`
- `PORKBUN_API_KEY`
- `PORKBUN_SECRET_KEY`
- `PORKBUN_BASE_DOMAIN`

Optional test keys:

- `PORKBUN_TEST_BASE_DOMAIN`
- `PORKBUN_TEST_CNAME_CONTENT` (test-only CNAME target, for example `test-target.example.com`)

## Usage

```ts
import { createPorkbunClient } from "porkbun-provider";

const dns = createPorkbunClient({
  baseUrl:
    process.env.PORKBUN_BASE_URL || "https://api.porkbun.com/api/json/v3",
  apiKey: process.env.PORKBUN_API_KEY || "",
  secretKey: process.env.PORKBUN_SECRET_KEY || "",
  baseDomain: process.env.PORKBUN_BASE_DOMAIN || "example.com",
  defaultTtl: "600",
  defaultNotes: "Created by my deployment pipeline",
});

const createResult = await dns.createCnameRecord(
  "staging",
  "cname.target.example.net",
);

if (!createResult.success) {
  console.error("Create failed:", createResult.error);
}

const deleteResult = await dns.deleteCnameRecord("staging");

if (!deleteResult.success) {
  console.error("Delete failed:", deleteResult.error);
}
```

## API

### `createPorkbunClient(config)`

Creates a client with shared config and returns methods:

- `createCnameRecord(subdomain: string, content: string)`
- `deleteCnameRecord(subdomain: string)`

Config fields:

- `baseUrl` - Porkbun API base URL
- `apiKey` - Porkbun API key
- `secretKey` - Porkbun secret API key
- `baseDomain` - Domain records are managed under (for example: `example.com`)
- `defaultTtl` - Optional default TTL (defaults to `"600"`)
- `defaultNotes` - Optional default notes for created records

Each method returns:

```ts
{
  success: boolean;
  id?: string;
  error?: string;
}
```

## Testing

Run tests:

```bash
pnpm test
```

Vitest loads `.env` and `.env.local` automatically for tests.

Integration tests are env-gated. They are skipped unless:

- `PORKBUN_API_KEY` is set
- `PORKBUN_SECRET_KEY` is set
- `PORKBUN_TEST_BASE_DOMAIN` is set

Important: in Porkbun, the `PORKBUN_TEST_BASE_DOMAIN` must have **API access enabled** in domain settings.

If set, tests will create and then delete a real CNAME record under the test domain.
npm package: @ieportals/vercel-dns-provider
Description: A tiny TypeScript helper for adding/removing Vercel project domains and reading domain config.
Author: ieportals
Latest version: 1.0.1

# vercel-dns-provider

A tiny TypeScript helper for adding/removing Vercel project domains and reading domain config.

## Environment variables

An example env file is included at `.env.example`.

Runtime keys:

- `VERCEL_API_BASE`
- `VERCEL_BEARER_TOKEN`
- `VERCEL_PROJECT_ID`
- `VERCEL_BASE_DOMAIN`

Optional test keys:

- `VERCEL_TEST_BASE_DOMAIN`

## Usage

```ts
import { createVercelClient } from "@ieportals/vercel-dns-provider";

const dns = createVercelClient({
  baseUrl: process.env.VERCEL_API_BASE || "https://api.vercel.com",
  bearerToken: process.env.VERCEL_BEARER_TOKEN || "",
  projectId: process.env.VERCEL_PROJECT_ID || "",
  baseDomain: process.env.VERCEL_BASE_DOMAIN || "example.com",
});

const addResult = await dns.addSubdomain("staging");

if (!addResult.success) {
  console.error("Add failed:", addResult.error);
}

const removeResult = await dns.removeSubdomain("staging");

if (!removeResult.success) {
  console.error("Remove failed:", removeResult.error);
}
```

## API

### `createVercelClient(config)`

Creates a client with shared config and returns methods:

- `addSubdomain(subdomain: string)`
- `removeSubdomain(subdomain: string)`
- `addCustomDomain(domain: string)`
- `removeCustomDomain(domain: string)`
- `getDomainConfig(domain: string)`

Config fields:

- `baseUrl` - Vercel API base URL
- `bearerToken` - Vercel bearer token
- `projectId` - Vercel project id
- `baseDomain` - Base domain for generated subdomains (for example `example.com`)

## Testing

Run tests:

```bash
pnpm test
```

Vitest loads `.env` and `.env.local` automatically for tests.

Integration tests always run. If required env vars are missing, tests fail with a clear error.

- `VERCEL_BEARER_TOKEN` is set
- `VERCEL_PROJECT_ID` is set
- `VERCEL_TEST_BASE_DOMAIN` is set
npm package: @iesde/serverless-aws-resource-names
Description: Serverless plugin to enable custom AWS resource names
Author: concon121
Latest version: 0.1.1

# serverless-plugin-aws-resource-names

[![serverless](http://public.serverless.com/badges/v3.svg)](http://www.serverless.com)

Serverless plugin to enable custom AWS resource names

## Usage

Install the plugin to your project:

    npm install serverless-aws-resource-names --save

Add the plugin and its configuration to your serverless project:

    plugins:
      - serverless-aws-resource-names
    custom:
      serverless-aws-resource-names:
        source: mapping.json

Create the `mapping.json` file in your project and modify the names to your hearts desire!

    {
        "template": {
            "compiled": "cloudformation-template-update-stack.json",
            "core": "cloudformation-template-create-stack.json"
        },
        "stack": "$service-$stage",
        "role": {
            "Fn::Join": [
                "-", [
                    "$service",
                    "$stage",
                    "$region",
                    "lambdaRole"
                ]
            ]
        },
        "policy": {
            "Fn::Join": [
                "-", [
                    "$stage",
                    "$service",
                    "lambda"
                ]
            ]
        },
        "apiGateway": "$stage-$service",
        "lambda": "$service-$stage-$lambda",
        "logGroup": "/aws/lambda/$service-$stage-$lambda"
    }

### Mapping Variable Reference

-   **$service** - Refers to the service attribute in your serverless.yml
-   **$stage** - Refers to the stage which you deploy to via serverless e.g. sls deploy **-s dev**
-   **$region** - Refers to the AWS region that you are deploying to.  This is configured in your serverless.yml under the _provider.region_ attribute or by your AWS CLI configuration.
-   **$lambda** - Refers to the name of your lambda function, defined in your serverless.yml under the _functions_ attribute.
-   **$rand** - Globally replaces all instances with a random UUID.

### Custom Variables

You can define custom variables in your `serverless.yml` file:

    plugins:
      - serverless-aws-resource-names
    custom:
      serverless-aws-resource-names:
        source: mapping.json
        variables:
          functionSuffix: func

And then use these custom variables in your `mapping.json` file:

    {
        "lambda": "$service-$stage-$lambda-$functionSuffix",
    }

Here we've defined a custom variable `functionSuffix` and assigned it the value `'func'`.

This will append the string `'func'` to all of your Lambda function names.
npm package: @iesde/serverless-latest-layer-version
Description: A serverless plugin that replaces 'latest' version tag to actual lambda layer version
Author: MooYeol Prescott Lee
Latest version: 2.1.0

# serverless-latest-layer-version

[![Build Status](https://github.com/mooyoul/serverless-latest-layer-version/workflows/workflow/badge.svg)](https://github.com/mooyoul/serverless-latest-layer-version/actions)
[![Semantic Release enabled](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)
[![Renovate enabled](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com/)
[![MIT license](http://img.shields.io/badge/license-MIT-blue.svg)](http://mooyoul.mit-license.org/)

This is the Serverless plugin for AWS Lambda Layers which enables missing "latest" version tag

![demo](/screenshot.png)

## Why?

![limits](/limit.png)

Unlike invoking Lambda function. Lambda Layer does not support `$LATEST` version tag.


## Install

First, install package as development dependency.

```bash
$ npm i serverless-latest-layer-version --save-dev
```

Then, add the plugin to serverless.yml

```yaml
# serverless.yml

plugins:
  - serverless-latest-layer-version
```

## Setup

Just change layer version to `latest`. 
The plugin automatically replaces `latest` version tag to actual latest version number. 

For example, if Previously specified layer arn is `arn:aws:lambda:us-east-1:800406105498:layer:nsolid-node-10:6`.
replace that as `arn:aws:lambda:us-east-1:800406105498:layer:nsolid-node-10:latest`. That's it!

## Changelog

See [CHANGELOG](/CHANGELOG.md).

## License
[MIT](LICENSE)

See full license on [mooyoul.mit-license.org](http://mooyoul.mit-license.org/)
npm package: @ieter/cli
Description: 快速创建项目的@ieter/cli脚手架工具.
Author: ieternal
Latest version: 1.0.0

# @ieter/cli

一个快速创建项目的自定义脚手架工具，支持 Vue 3 和 React 项目模板。

## 特性

- 🚀 快速创建 Vue 3 / React 项目
- 📦 支持多种包管理器（npm、pnpm、yarn、bun）
- 🎨 支持 JavaScript 和 TypeScript
- ⚡ 自动安装依赖
- 🔧 可配置项目信息（名称、描述、作者等）
- 📝 自动初始化 Git 仓库
- 🎯 支持自定义模板

## 安装

```bash
# 全局安装
npm install -g @ieter/cli

# 或者使用 npx（推荐）
npx @ieter/cli init my-project
```

## 使用方法

### 创建新项目

```bash
# 交互式创建项目
ietercli init

# 指定项目名称
ietercli init my-project

# 使用简写
ietercli init my-project -t vue -l ts
```

### 命令行选项

```bash
ietercli init [name] [options]

选项:
  -v, --version                显示版本号
  -t, --template <template>    指定项目模板 (vue/react)
  -l, --language <language>    指定开发语言 (js/ts)
  -p, --package-manager <mgr>  指定包管理器 (npm/pnpm/yarn/bun)
  --no-install                 跳过依赖安装
  --no-git                     跳过 Git 初始化
  -h, --help                   显示帮助信息
```

### 查看可用模板

```bash
ietercli list
# 或
ietercli ls
```

### 查看配置

```bash
ietercli config --list
```

## 项目模板

### 内置模板

| 模板    | 描述              |
| ------- | ----------------- |
| `vue`   | Vue 3 + Vite 项目 |
| `react` | React + Vite 项目 |

### 自定义模板

你可以在 `generators` 目录下添加自定义模板：

```
generators/
├── vue/          # Vue 模板
│   ├── package.json
│   ├── src/
│   └── ...
├── react/        # React 模板
│   ├── package.json
│   ├── src/
│   └── ...
└── custom/       # 自定义模板
    ├── package.json
    ├── src/
    └── ...
```

## 开发

### 环境要求

- Node.js >= 20.x
- npm >= 9.x

### 本地开发

```bash
# 克隆项目
git clone https://github.com/ieternal/ieter-cli.git

# 安装依赖
npm install

# 构建
npm run build

# 本地测试
node dist/index.js init test-project
```

### 项目结构

```
ieter-cli/
├── src/
│   ├── index.js              # 主入口文件
│   └── utils/
│       ├── constants.js      # 常量配置
│       ├── inquirerCreate.js # 交互式创建
│       ├── initTemplateProject.js # 模板初始化
│       └── installDeps.js    # 依赖安装
├── generators/               # 项目模板
│   ├── vue/
│   └── react/
├── dist/                     # 构建输出
├── package.json
└── README.md
```

## 示例

### 创建 Vue 3 + TypeScript 项目

```bash
ietercli init my-vue-app -t vue -l ts
```

### 创建 React 项目并使用 pnpm

```bash
ietercli init my-react-app -t react -p pnpm
```

### 创建项目但不安装依赖

```bash
ietercli init my-project --no-install
```

## 更新日志

### v1.0.0

- 初始版本发布
- 支持 Vue 3 和 React 模板
- 支持多种包管理器
- 支持项目配置
- 支持 Git 初始化

## License

MIT © ieternal