open-index/open-npm huggingface dataset:
npm package: @nonokko/client
Description: The nonokko client for JavaScript and TypeScript
Latest version: 1.2.3-alpha.1

# nonokko JavaScript/TypeScript client library

![@nonokko/client npm package](https://img.shields.io/npm/v/@nonokko/client?color=%237527D7&label=%40nonokko%2Fclient&style=flat-square)

## Introduction

The `nonokko` JavaScript Client Library provides a seamless way to interact with `nonokko` endpoints from your JavaScript or TypeScript applications. With built-in support for various platforms, it ensures consistent behavior across web, Node.js, and React Native environments.

## Getting started

Before diving into the client-specific features, ensure you've set up your credentials:

```ts
import { nonokko } from "@nonokko/client";

nonokko.config({
  // Can also be auto-configured using environment variables:
  // Either a single NONOKKO_KEY or a combination of NONOKKO_KEY_ID and NONOKKO_KEY_SECRET
  credentials: "NONOKKO_KEY_ID:NONOKKO_KEY_SECRET",
});
```

**Note:** Ensure you've reviewed the [nonokko getting started guide](https://nonokko.ai/docs) to acquire your credentials and register your functions. Also, make sure your credentials are always protected. See the [../proxy](../proxy) package for a secure way to use the client in client-side applications.

## Running functions with `nonokko.run`

The `nonokko.run` method is the simplest way to execute a function. It returns a promise that resolves to the function's result:

```ts
const result = await nonokko.run("my-function-id", {
  input: { foo: "bar" },
});
```

## Long-running functions with `nonokko.subscribe`

The `nonokko.subscribe` method offers a powerful way to rely on the [queue system](https://www.nonokko.ai/docs/function-endpoints/queue) to execute long-running functions. It returns the result once it's done like any other async function, so your don't have to deal with queue status updates yourself. However, it does support queue events, in case you want to listen and react to them:

```ts
const result = await nonokko.subscribe("my-function-id", {
  input: { foo: "bar" },
  onQueueUpdate(update) {
    if (update.status === "IN_QUEUE") {
      console.log(`Your position in the queue is ${update.position}`);
    }
  },
});
```

## More features

The client library offers a plethora of features designed to simplify your journey with `nonokko`. Dive into the [official documentation](https://nonokko.ai/docs) for a comprehensive guide.
npm package: @nonoll/code-snippet
Description: - This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 11.0.5.
Author: nonoll
Latest version: 0.1.5

# @nonoll/code-snippet

- This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 11.0.5.

## Status

![Dependabot](https://api.dependabot.com/badges/status?host=github&repo=nonoll/code-snippet&style=for-the-badge)

[![TRAVIS](https://img.shields.io/travis/com/nonoll/code-snippet/master.svg?style=for-the-badge)](https://travis-ci.org/nonoll/code-snippet/builds)
[![Codecov branch](https://img.shields.io/codecov/c/github/nonoll/code-snippet/master?style=for-the-badge)](https://codecov.io/gh/nonoll/code-snippet)

[![NPM version](https://img.shields.io/npm/v/@nonoll/code-snippet.svg?style=for-the-badge)](https://www.npmjs.com/package/@nonoll/code-snippet)
[![NPM download](https://img.shields.io/npm/dt/@nonoll/code-snippet?style=for-the-badge)](https://www.npmjs.com/package/@nonoll/code-snippet)

[![NPM license](https://img.shields.io/npm/l/@nonoll/code-snippet?style=for-the-badge)](https://github.com/nonoll/code-snippet/blob/master/LICENSE)
[![NPM bundle size](https://img.shields.io/bundlephobia/min/@nonoll/code-snippet?style=for-the-badge)](https://www.npmjs.com/package/@nonoll/code-snippet)

## Links

- [github](https://github.com/nonoll/code-snippet)
- [npm](https://www.npmjs.com/package/@nonoll/code-snippet)
- [docs](https://nonoll.github.io/code-snippet/)
- [codesandbox](https://codesandbox.io/embed/nonollcode-snippet-9gko8?fontsize=14&hidenavigation=1&theme=dark)
npm package: @nonoll/swagger2ts-helper
Description: use openapi-typescript
Author: nonoll
Latest version: 0.0.4

# swagger2ts-helper

- use [openapi-typescript](https://github.com/drwpow/openapi-typescript)
- [https://swagger.io/specification/v2/](https://swagger.io/specification/v2/)
- swagger json 데이터를 typescript 로 변환

## 설치

- [npm module](https://www.npmjs.com/package/@nonoll/swagger2ts-helper)

```bash
npm i @nonoll/swagger2ts-helper -D
```

## 사용

### config 설정

- protocol: `swagger json protocol 설정`
- entry
  - definitions: `swagger json url (필수값)`
  - response : `response 구간, ejs 템플릿 경로 설정 ( 미적용시 기본 템플릿으로 처리 )`
  - request : `request 구간, ejs 템플릿 경로 설정 ( 미적용시 기본 템플릿으로 처리 )`
- options: `@manifoldco/swagger-to-ts options`
- output
  - definitions: `변환된 definitions 저장 경로 (필수값)`
  - response: `변환된 response 저장 경로 (필수값)`
  - request: `변환된 request 저장 경로 (필수값)`
- prettier: `prettier 옵션 설정`

```json
{
  "protocol": "https",
  "entry": {
    "definitions": "https://petstore.swagger.io/v2/swagger.json",
    "response": "./src/templates/response.template.ejs",
    "request": "./src/templates/request.template.ejs"
  },
  "options": {
    "wrapper": true,
    "camelcase": true
  },
  "output": {
    "definitions": "./src/@types/api.definitions.ts",
    "response": "./src/@types/api.response.ts",
    "request": "./src/@types/api.request.ts"
  },
  "prettier": {
    "printWidth": 100,
    "proseWrap": "always",
    "semi": true,
    "singleQuote": true,
    "tabWidth": 2
  }
}
```

### 실행

- 실행 위치상에 config 파일 활용시

```bash
swagger2ts-helper
```

- 별도 위치상에 config 파일 활용시

```bash
swagger2ts-helper config='./dev-tools/swagger2ts.config.json'
```

### 템플릿 설정

- [EJS](https://ejs.co/) 활용
  - 다른 템플릿과 대비하여 유연한 구성이 가능하므로 사용함

- response.template.ejs
  - 템플릿에 주입되는 파라미터
    - definitionsRelPath: `definitions 파일 경로`
    - rawData: `swagger Object`
    - rawDefinitions: `swagger#definitions Object`
    - definitions: `swagger#definitions Object.keys`

- request.template.ejs
  - 템플릿에 주입되는 파라미터
    - definitionsRelPath: `definitions 파일 경로`
    - rawData: `swagger Object`
    - paths: `swagger#paths Object`

## 변환 예

- input: [petstore swagger](https://petstore.swagger.io/v2/swagger.json)
- output: [output](https://github.com/nonoll/swagger2ts-helper/tree/main/src/%40types)

## 주의사항

- 정의된 swagger 상에 스펙 규칙이 어긋나는 케이스들이 존재
- 경우에 따라 swagger json 을 다운 받은 후 전처리( 어긋나는 케이스 보정 ) 진행 필요
  - 어긋나는 케이스 보정은 파싱시에 에러 메시지를 참고 하여 진행
  - e.g)
    ```
    // before
    «Map«string,object»»
    // after
    «Map«StringObject»»
    ```
    ```
    // before
    «Map«favorite response»»
    // after
    «Map«FavoriteResponse»»
    ```
    ```
    // before
    "car call": {
    // after
    "CarCall": {
    ```
npm package: @nonpolynomial/cuid-cli
Description: This project provide a solution for your CLI on base of Eric Elliots [CUID](https://github.com/ericelliott/cuid).
Author: Sascha "NonPolynomial" Metz
Latest version: 1.1.1
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# CUID goes command line

This project provide a solution for your CLI on base of Eric Elliots [CUID](https://github.com/ericelliott/cuid).

## Installation

```bash
npm -g install @nonpolynomial/cuid-cli

# or

yarn global add @nonpolynomial/cuid-cli
```

## Usage

Just simple as it is:

```bash
(npx) cuid -> generate 1 full CUID
(npx) cuid 5 -> generate 5 full CUIDs

(npx) cuid -s -> generate 1 slug CUID
(npx) cuid 5 -s -> generate 5 slug CUID
```
npm package: @nonpolynomial/lambda-server
Description: Run lambda functions with a http server.
Author: Sascha "NonPolynomial" Metz
Latest version: 1.0.3
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# Lambda-Server

Run lambda functions with a http server.

## How it works

If you have the following directory structure and files, you can simply import `lambda-server` and start it.
The `lambda-server` expects to parameters: a directory and a port.

```
.
├── lambda
│   ├── foo
│   │   └── bar.js
│   └── hello-world.js
└── index.js
```

```bash
$ npm -g i @nonpolynomial/lambda-server

# or

$ yarn add @nonpolynomial/lambda-server
```

```js
// index.js
const lambda = require('lambda');

const lambdaServer = lambda(`${__dirname}/lambda`, 8080);
```

```js
// lambda/foo/bar.js
module.exports = (req, res) => {
  res.end(JSON.stringify({ foo: 'bar' }));
};
```

```js
// lambda/hello-world.js
module.exports = (req, res) => {
  res.end('hello world');
};
```

Because we started `lambda-server` with `lambda` as directory, you get a `hello world` if you visit http://localhost:8080/hello-world.

The file, that gets loaded, depends on the path you visit.

|   URL-path   | loaded filepath  |
| ------------ | ---------------- |
| /foo/bar     | `foo/bar.js`     |
| /hello-world | `hello-world.js` |

### ...or use lambda server with your CLI

```bash
npm -g i @nonpolynomial/lambda-server

# or

yarn global add @nonpolynomial/lambda-server
```

```bash
$ lambda ./lambda --port 1337
```
npm package: @nonsensebb/eslint-config
Description: Base shareable eslint config by NonsenseBB
Author: Luís Nabais
Latest version: 0.7.0

# @nonsensebb/eslint-config

[![npm version](https://badge.fury.io/js/%40nonsensebb%2Feslint-config.svg)](https://badge.fury.io/js/%40nonsensebb%2Feslint-config)

> A shareable config by NonsenseBB

## Installation

First, install eslint and other peer dependencies, if you haven't done so yet via npm:

```shell
npm install --save-dev eslint eslint-plugin-import eslint-plugin-promise
```

and then you can install the config:

```shell
npm install --save-dev @nonsensebb/eslint-config
```

## Usage

If you've installed `@nonsensebb/eslint-config` locally within your project, just set your `eslint` config to:

```json
{
  "extends": ["@nonsensebb"]
}
```

## [License](../../LICENSE)
npm package: @nonsensebb/eslint-config-node
Description: Node.js shareable eslint config by NonsenseBB
Author: Luís Nabais
Latest version: 0.7.0

# @nonsensebb/eslint-config-node

[![npm version](https://badge.fury.io/js/%40nonsensebb%2Feslint-config-node.svg)](https://badge.fury.io/js/%40nonsensebb%2Feslint-config-node)

> A shareable config for Node.js projects by NonsenseBB

## Installation

First, install eslint and other peer dependencies, if you haven't done so yet via npm:

```shell
npm install --save-dev eslint eslint-plugin-import eslint-plugin-promise
```

and then you can install the config:

```shell
npm install --save-dev @nonsensebb/eslint-config-node
```

## Usage

If you've installed `@nonsensebb/eslint-config-node` locally within your project, just set your `eslint` config to:

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

## [License](../../LICENSE)
npm package: @nonsensebb/eslint-config-preact
Description: Preact shareable eslint config by NonsenseBB
Author: Luís Nabais
Latest version: 0.7.0

# @nonsensebb/eslint-config-preact

[![npm version](https://badge.fury.io/js/%40nonsensebb%2Feslint-config-preact.svg)](https://badge.fury.io/js/%40nonsensebb%2Feslint-config-preact)

> A shareable config for Preact projects by NonsenseBB

## Installation

First, install eslint and other peer dependencies, if you haven't done so yet via npm:

```shell
npm install --save-dev @babel/eslint-parser eslint eslint-plugin-import eslint-plugin-promise eslint-plugin-jsx-a11y eslint-plugin-react eslint-plugin-react-hooks
```

and then you can install the config:

```shell
npm install --save-dev @nonsensebb/eslint-config-preact
```

## Usage

If you've installed `@nonsensebb/eslint-config-preact` locally within your project, just set your `eslint` config to:

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

## [License](../../LICENSE)
npm package: @nonsensebb/eslint-config-typescript
Description: Typescript shareable eslint config by NonsenseBB
Author: Luís Nabais
Latest version: 0.7.0

# @nonsensebb/eslint-config-typescript

[![npm version](https://badge.fury.io/js/%40nonsensebb%2Feslint-config-typescript.svg)](https://badge.fury.io/js/%40nonsensebb%2Feslint-config-typescript)

> A shareable config for Typescript projects by NonsenseBB

## Installation

First, install eslint and other peer dependencies, if you haven't done so yet via npm:

```shell
npm install --save-dev typescript eslint eslint-plugin-import eslint-plugin-promise @typescript-eslint/eslint-plugin @typescript-eslint/parser
```

and then you can install the config:

```shell
npm install --save-dev @nonsensebb/eslint-config-typescript
```

## Usage

If you've installed `@nonsensebb/eslint-config-typescript` locally within your project, just set your `eslint` config to:

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

## [License](../../LICENSE)
npm package: @nonsensebb/stylelint-config
Description: Base shareable stylelint config by NonsenseBB
Author: Luís Nabais
Latest version: 0.7.0

# @nonsensebb/stylelint-config

[![npm version](https://badge.fury.io/js/%40nonsensebb%2Fstylelint-config.svg)](https://badge.fury.io/js/%40nonsensebb%2Fstylelint-config)

> A shareable config by NonsenseBB

## Installation

First, install stylelint, stylelint and other peer dependencies, if you haven't done so yet via npm:

```shell
npm install --save-dev stylelint stylelint-order
```

and then you can install the config:

```shell
npm install --save-dev @nonsensebb/stylelint-config
```

## Usage

If you've installed `@nonsensebb/stylelint-config` locally within your project, just set your `stylelint` config to:

```json
{
  "extends": "@nonsensebb/stylelint-config"
}
```

## [License](../../LICENSE)
npm package: @nonsensebb/stylelint-config-scss
Description: Base shareable stylelint config for SCSS by NonsenseBB
Author: Luís Nabais
Latest version: 0.7.0

# @nonsensebb/stylelint-config-scss

[![npm version](https://badge.fury.io/js/%40nonsensebb%2Fstylelint-config-scss.svg)](https://badge.fury.io/js/%40nonsensebb%2Fstylelint-config-scss)

> A shareable SCSS config by NonsenseBB

## Installation

First, install stylelint-scss, stylelint and other peer dependencies, if you haven't done so yet via npm:

```shell
npm install --save-dev stylelint stylelint-scss stylelint-order
```

and then you can install the config:

```shell
npm install --save-dev @nonsensebb/stylelint-config-scss
```

## Usage

If you've installed `@nonsensebb/stylelint-config-scss` locally within your project, just set your `stylelint` config to:

```json
{
  "extends": "@nonsensebb/stylelint-config-scss"
}
```

## [License](../../LICENSE)
npm package: @nonvoid/schedule
Description: Scheduling of events and reminders
Author: @nonVoid
Latest version: 0.1.1

# novo-schedule

> Scheduling of events and reminders

[![NPM](https://img.shields.io/npm/v/novo-schedule.svg)](https://www.npmjs.com/package/novo-schedule) [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)

## Install

```bash
npm install --save @novo/schedule
```

## Usage

```tsx
import * as React from 'react'

import MyComponent from '@nonVoid/schedule'

class Example extends React.Component {
  render () {
    return (
      <MyComponent />
    )
  }
}
```

## License

MIT © [@nonVoid](https://github.com/@nonVoid)
npm package: @nonz250/image-base64
Description: Convert images to base64 strings.
Author: nonz250
Latest version: 1.0.2

## Convert images to base64 strings.

## Usage

1. Install package.

```bash
npm i --location=global @nonz250/image-base64
```

Restart terminal.

```bash
image-base64 --help
image-base64 encode <path>
image-base64 encode ~/foo/bar.png
image-base64 encode ./baz.png 
```

2. Npx command.

```bash
npx @nonz250/image-base64 --help
npx @nonz250/image-base64 encode <path>
npx @nonz250/image-base64 encode ~/foo/bar.png
npx @nonz250/image-base64 encode ./baz.png
```
npm package: @noob-dev/create-micro-frontend
Description: CLI tool for creating micro-frontend applications with Module Federation
Author: Phuoc Trung
Latest version: 1.0.2

# Create Micro Frontend CLI

A powerful CLI tool for scaffolding micro-frontend applications using Webpack Module Federation with production-ready best practices.

## ✨ Features

- 🚀 **Quick Scaffolding** - Host and remote apps in seconds
- 📦 **Module Federation** - Webpack 5 pre-configured
- 🔷 **TypeScript Support** - Full type safety with shared types
- 🎨 **Multi-Framework** - React and Vue support
- 🏗️ **Monorepo Ready** - Nx, Turborepo, pnpm workspaces
- ⚡ **Hot Reload** - Fast development experience
- 🔒 **Type-Safe Imports** - Auto-generated remote type declarations
- 🛡️ **Error Boundaries** - Graceful fallback handling
- 📝 **Comprehensive Docs** - Every project includes README
- 🎯 **Best Practices** - Production-ready configurations

## 🚀 Quick Start

### Create a Host Application

```bash
npx create-micro-frontend --host
```

### Create a Remote Application

```bash
npx create-micro-frontend --remote
```

### Interactive Mode

```bash
npx create-micro-frontend
```

See [QUICK_START.md](./QUICK_START.md) for a step-by-step guide.

## ⚠️ Important: Naming Requirements

Application names must be valid JavaScript identifiers for Module Federation to work:

- ✅ Use **camelCase**: `myRemoteApp`, `userService`, `productList`
- ✅ Use **underscores**: `my_remote_app`, `user_service`
- ❌ **Never use hyphens**: `my-remote-app` ← will cause webpack errors

The CLI automatically converts kebab-case names (with hyphens) to camelCase. See [BEST_PRACTICES.md](./BEST_PRACTICES.md) for details.

## What Gets Generated

### Host Application
- Pre-configured webpack with Module Federation
- Remote app integration setup
- Shared dependency configuration
- TypeScript declarations for remotes
- Development server setup

### Remote Application
- Module Federation plugin configured
- Component exports setup
- Shared dependencies
- Type generation for host consumption
- Independent dev server

### Monorepo Structure (optional)
```
my-micro-frontend/
├── packages/
│   ├── host/
│   ├── remote-app/
│   └── shared-types/
├── package.json
└── [nx.json|turbo.json|pnpm-workspace.yaml]
```

## Best Practices Included

1. **Dependency Sharing**: Singleton React/Vue instances to avoid duplication
2. **Type Safety**: Automatic type generation for cross-app imports
3. **Error Boundaries**: Graceful fallbacks for remote loading failures
4. **Version Management**: Semantic versioning for shared dependencies
5. **Development Workflow**: Concurrent dev servers with proper port management
6. **Code Splitting**: Optimized chunk loading strategies

## Example

```bash
# Create a new micro-frontend project
npx create-micro-frontend

# Follow the prompts:
# ? Select application type: Host
# ? Project name: main-app
# ? Port number: 3000
# ? Framework: React
# ? TypeScript: Yes
# ? Create as monorepo: Yes
# ? Monorepo tool: pnpm workspaces
```

## Requirements

- Node.js >= 16.0.0
- npm/yarn/pnpm

## License

MIT