open-index/open-npm huggingface dataset:
npm package: @marong87/typescript-config
Description: > tsconfig.json
Latest version: 0.0.1

# @marong87/typescript-config

> tsconfig.json

```ts
{
  "extends": "@marong87/typescript-config/base.json",
  // "extends": "@marong87/typescript-config/react.json",
  // "extends": "@marong87/typescript-config/vue.json",
  "include": ["**/*.ts", "**/*.tsx"],
  "exclude": ["dist", "build", "node_modules"]
}
```
npm package: @marong87/utils
Description: - axios 1.6.8 - dayjs 1.11.10 - mitt 3.0.1 - js-cookie 3.0.5 - lodash-es 4.17.21 - qs 6.12.1
Latest version: 0.0.2

# @marong87/utils

- axios 1.6.8
- dayjs 1.11.10
- mitt 3.0.1
- js-cookie 3.0.5
- lodash-es 4.17.21
- qs 6.12.1
npm package: @maronn/rich-editor-library
Description: このプロジェクトは[Lexical](https://lexical.dev/)を使用した、エディタライブラリとなっています。 ただし、2024/10/29の時点ではライブラリとして提供していません。
Author: maronn
Latest version: 0.0.1

## このプロジェクトについて
このプロジェクトは[Lexical](https://lexical.dev/)を使用した、エディタライブラリとなっています。
ただし、2024/10/29の時点ではライブラリとして提供していません。
npm package: @maroo-us/brex-api
Description: Unofficial JS/TS wrapper for Brex (c) API.
Latest version: 0.8.0

# brex-api [![NPM][npm-badge]][npm] [![Test][workflow-badge]][workflow]

Unofficial JS/TS wrapper for Brex (c) API.

## Installation

```sh
yarn add @maroo-us/brex-api
```

## Usage

```ts
import { BrexClient } from '@maroo-us/brex-api'

const brex = new BrexClient({
  accessToken: 'your_access_token',
})

// ES async/await
;(async () => {
  const response = await brex.vendors.list()
  console.log(response.list)
})()

// Promises
brex.vendors.list().then((response) => {
  console.log(response.list)
})
```

Follow Brex [developer documentation][auth-docs] to obtain an access token.

Working with transfers:

```ts
// List existing transfers
const listTransferRes = await brex.transfers.list()

// Create a new transfer
const createTransferRes = await brex.transfers.create({
  amount: {
    // Transfer Amount as cents
    amount: 12340,
    currency: 'USD',
  },
  description: 'Test transfer',
  counterparty: {
    type: 'VENDOR',
    paymentInstrumentId: 'vendor_payment_instrument_id',
  },
  externalMemo: 'ACH PMT',
  cashAccountId: 'your_cash_account_id',
})

// Get existing transfer
const getTransferRes = await brex.transfers.get('transfer_id')
```

If you want to connect to Brex staging environment, you can specify optional `environment` property in the initialization options:

```ts
import { BrexClient, BrexEnvironment } from '@maroo-us/brex-api'

const brex = new BrexClient({
  accessToken: 'your_access_token',
  environment: BrexEnvironment.Staging,
})
```

By default, the production environment is used.

## Development

```sh
# Install dependencies
> yarn install

# Lint project files
> yarn lint:fix

# Format project files
> yarn format:fix

# Build the project
> yarn build

# Generate TS declaration file
> yarn types

# Create dist tarball
> yarn dist

# Prepare a new release
> npm version patch|minor|major
> npm publish --access=public
> git push && git push --tags
```

## License

Maroo-us/brex-api — Licensed under the [MIT License](LICENSE).

“Brex” and the Brex logo — registered trademarks of ”Brex Inc.”

#### Pull/feature requests and issue posting are highly appreciated!

[workflow]: https://github.com/Maroo-us/brex-api/actions?query=workflow%3ABuild
[workflow-badge]: https://img.shields.io/github/workflow/status/Maroo-us/brex-api/Build
[npm]: https://www.npmjs.com/package/@maroo-us/brex-api
[npm-badge]: https://img.shields.io/npm/v/@maroo-us/brex-api
[auth-docs]: https://developer.brex.com/docs/authentication/
npm package: @maroof/gatsby-theme-kaplan
Description: _a Work in progress_
Author: maroof shittu
Latest version: 0.1.1

# A quirky Gatsby Personal Website theme, based on [Wired Elements](https://wiredjs.com/)

_a Work in progress_

(/npm/:interval/:scope?/:gatsby-theme-kaplan)

# Table of Contents

- [Requirments](#requirements)
- [Quick Start](#quick-start)
- [Usage](#usage)
- [Contributing](#contributing)
- [License](#license)

## Requirements

_...Coming Soon_

## Quick Start

```shell
mkdir my-site
cd my-site
yarn init
# install gatsby-theme-kaplan and it's dependencies
yarn add gatsby react react-dom gatsby-theme-kaplan
```

Then add the theme to your `gatsby-config.js`. We'll use the long form
here for education purposes.

```javascript
module.exports = {
  plugins: [
    {
      resolve: "gatsby-theme-kaplan",
      options: {}
    }
  ]
};
```

That's it, you can now run your gatsby site using

```shell
yarn gatsby develop
```

Note that this site doesn't _do_ anything, so you're see a missing
resources error. Create a simple page in `src/pages/index.js` to see a
page on the root url.

```jsx
import React from "react";

export default () => <div>My Site!</div>;
```

## Usage

_...Coming Soon_

## Contributing

_...Coming Soon_

## Doing more with themes

You can use this as a place to start when developing themes. I
generally suggest using [yarn
workspaces](https://yarnpkg.com/lang/en/docs/workspaces/) like the
[gatsby-theme-examples repo
does](https://github.com/ChristopherBiscardi/gatsby-theme-examples),
but using `yarn link` or `npm link` is a viable alternative if you're
not familiar with workspaces.

## License

MIT License

Copyright (c) 2020 Maroof Shittu

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
npm package: @maroon1/dotenv-cascade
Description: 根据 [dotenv 文件优先级](https://github.com/bkeepers/dotenv#what-other-env-files-can-i-use)级联重写 `.env*` 中的环境变量
Author: liuxiaojun
Latest version: 0.1.1

# dotenv-cascade

根据 [dotenv 文件优先级](https://github.com/bkeepers/dotenv#what-other-env-files-can-i-use)级联重写 `.env*` 中的环境变量

## 安装

```bash
npm i npm i @maroon1/dotenv-cascade
```

## 用法

```javascript
import { cascade } from 'npm i @maroon1/dotenv-cascade';

// 默认使用项目根目录中的 .env* 文件
cascade();
```

通过[测试用例](./test/cascade.test.ts)来查看详细用法
npm package: @maroon1/wechat-signable-url
Description: 获取微信内当前 WebView 的 URL 用于签名
Author: maroon1
Latest version: 0.2.0

# WeChat Signable URL

获取微信内当前 WebView 的 URL 用于签名

## 动机

在调用微信 JS SDK 前需要调用 `wx.config` 方法往当前页面注入权限验证配置，`wx.config` 方法中的 `signature` 参数需要使用「当前 WebView 的 URL」（以下统称 WebView URL） 来生成。iOS 与 Android 两个平台的 WebView URL 获取结果不一致。在 Android 平台中，WebView URL 等于当前 `window.location.href` 的值，而在 iOS 平台中则为打开 WebView 时的 URL 的值。这就造成 iOS 平台下的 SPA ，在使用 History API 跳转页面后，因为 `window.location.href` 与 Native 获取的 WebView URL 不同，导致签名无效。所以在 iOS 平台中总是使用初始化时获取的 `window.location.href` 值来签名就能解决签名无效的问题。

## 安装

```bash
npm install @maroon1/wechat-signable-url
```

## 使用

```javascript
import url from '@maroon1/wechat-signable-url';

// 尽可能早的（在页面发生跳转之前）初始化入口地址，否则获取的待签名URL地址可能不正确
url.init();

const signableUrl = url();

getSignatureFromRemote(signableUrl)
  .then(signature => {
    wx.config({
      signature,
      ...
    });
  });
```
npm package: @maroonedsoftware/logger
Description: A simple, dependency injection friendly logging abstraction with multiple log levels.
Author: Marooned Software
Latest version: 1.1.0

# @maroonedsoftware/logger

A simple, dependency injection friendly logging abstraction with multiple log levels.

## Installation

```bash
pnpm add @maroonedsoftware/logger
```

## Usage

### Basic Usage

```typescript
import { ConsoleLogger } from '@maroonedsoftware/logger';

const logger = new ConsoleLogger();

logger.error('Something went wrong', { details: 'error context' });
logger.warn('This might be a problem');
logger.info('Application started');
logger.debug('Processing request', requestData);
logger.trace('Entering function');
```

### With Dependency Injection

The `Logger` abstract class is decorated with `@Injectable()` from [injectkit](https://www.npmjs.com/package/injectkit), making it easy to use with DI containers:

```typescript
import 'reflect-metadata';
import { InjectKitRegistry } from 'injectkit';
import { Logger, ConsoleLogger } from '@maroonedsoftware/logger';

// Set up dependency injection registry
const diRegistry = new InjectKitRegistry();
diRegistry.register(Logger).useClass(ConsoleLogger).asSingleton();

// Build the container
const container = diRegistry.build();

// Resolve the logger
const logger = container.get(Logger);
logger.info('Application started');
```

In your services, use constructor injection:

```typescript
import { Injectable } from 'injectkit';
import { Logger } from '@maroonedsoftware/logger';

@Injectable()
class MyService {
  constructor(private logger: Logger) {}

  doSomething() {
    this.logger.info('Doing something');
  }
}
```

## API

### Logger Interface

| Method                      | Description                   |
| --------------------------- | ----------------------------- |
| `error(message, ...params)` | Logs an error message         |
| `warn(message, ...params)`  | Logs a warning message        |
| `info(message, ...params)`  | Logs an informational message |
| `debug(message, ...params)` | Logs a debug message          |
| `trace(message, ...params)` | Logs a trace message          |

### ConsoleLogger

A concrete implementation that outputs to the standard console. Accepts an optional `Console` instance in the constructor for custom console implementations.

```typescript
// Use global console (default)
const logger = new ConsoleLogger();

// Use custom console
const customConsole = { ... };
const logger = new ConsoleLogger(customConsole);
```

## License

MIT
npm package: @maroonedsoftware/zod
Description: Zod utilities for ServerKit.
Author: Marooned Software
Latest version: 0.2.0

# @maroonedsoftware/zod

Zod utilities for ServerKit — schema validation with HTTP error integration and BigInt support.

## Installation

```bash
pnpm add @maroonedsoftware/zod
```

## Usage

```typescript
import { parseAndValidate, zBigint } from '@maroonedsoftware/zod';
```

## API Reference

### `parseAndValidate(data, schema)`

Parses and validates `data` against a Zod schema, returning the typed result on success.

On failure, throws an `HttpError` with status `400` whose `details` map field paths to human-readable error messages. Field paths use dot notation (e.g. `"user.email"`). Root-level errors are keyed as `"_root"`. When a field has multiple violations, the value is a string array.

```typescript
const body = await parseAndValidate(ctx.request.body, z.object({
  email: z.string().email(),
  age: z.number().min(0),
}));
// body is typed as { email: string; age: number }
```

**Error details shape:**

```typescript
// Single violation
{ email: 'Invalid email' }

// Multiple violations on one field
{ password: ['Too short', 'Must contain a number'] }

// Unrecognized key (z.strictObject)
{ extra: 'Unrecognized key' }

// Root-level error (non-object schema)
{ _root: 'Expected string, received number' }
```

**Parameters:**

- `data` - The unknown input to validate.
- `schema` - The Zod schema to validate against.

**Returns:** `Promise<z.infer<T>>` — the parsed and transformed output.

**Throws:** `HttpError` 400 with field-level `details` when validation fails.

---

### `zBigint()`

A Zod schema that accepts a bigint string (e.g. `"100n"`) and transforms it to a native `bigint`. Use this instead of `z.bigint()` for JSON request/response schemas, since JSON cannot represent `bigint` natively.

Works with the `bigIntReplacer` / `bigIntReviver` utilities from `@maroonedsoftware/utilities` for end-to-end bigint serialization.

```typescript
const schema = z.object({ id: zBigint() });
const result = await schema.parseAsync({ id: '9007199254740993n' });
// result.id === 9007199254740993n
```

**Accepts:** strings matching `/^-?\d+n$/` (e.g. `"0n"`, `"123n"`, `"-42n"`).

**Rejects:** plain numbers, floats, bare number strings, non-string inputs.

## License

MIT