open-index/open-npm huggingface dataset:
npm package: @feathers-community/eslint-config
Description: Default eslint-config for feathers-community projects. It's esm and flat config only.
Author: Feathers Community
Latest version: 0.0.10

# @feathers-community/eslint-config

Default eslint-config for feathers-community projects. It's esm and flat config only.

## Installation

```
npm install --save-dev @feathers-community/eslint-config eslint
```

## Usage

```ts
// eslint.config.{js,mjs,ts,mts}

import config from "@feathers-community/eslint-config";

export default config();
```

## Used plugins/rules

_see [config](https://github.com/feathers-community/eslint-config/blob/main/src/default-config.ts)_

- [typescript-eslint](https://typescript-eslint.io/)
- [prettier](https://github.com/prettier/eslint-plugin-prettier)
- [import-x](https://github.com/un-ts/eslint-plugin-import-x)
- [unicorn](https://github.com/sindresorhus/eslint-plugin-unicorn)
- [unused-imports](https://github.com/sweepline/eslint-plugin-unused-imports)
- [package-json](https://github.com/JoshuaKGoldberg/eslint-plugin-package-json)

## License

Licensed under the [MIT license](./LICENSE).
npm package: @feathers-micro/microservice
Description: Helps you create you own micro service feathersJS application
Author: Gustavo Junqueira
Latest version: 1.0.0

This library is part of the [feathers-micro](https://github.com/guzz/feathers-micro) library.

Check the repository for a working example.

# @feathers-micro/microservice

Create services in your application that will proxy the calls to your feathers serveless applications.

It's expected that you already have a feathers serverless application configured and running to be able to use this library.

This library only support feathers koa for now, it might work with feathers express but it was not tested.

## Usage

```bash
# create a feathers application
npm create feathers@latest my-serverless-component

# install the library in your project
yarn add @feathers-micro/microservice
```

**Create a normal feathers service in your application**

```bash
npx feathers generate service
```

**Update your service with the MicroService class**

```ts

...

import { MicroService, MicroServiceOptions } from '@feathers-micro/microservice'

...

export class TodoService<ServiceParams extends Params = TodoParams> extends MicroService<
  Todo,
  TodoData,
  TodoParams,
  TodoPatch
> {}

export const getOptions = (app: Application): MicroServiceOptions => {
  return {
    path: 'todo', // service path on the serverless application
    url: 'http://localhost:3020/dev', // url of the serverless application
    getParamsFromBody: false // if you configured your serverless application as a single endpoint mark the property as true
  }
}

```

You can create resolvers and hooks as with any normal feathers service.

To check a functional setup, look at the [example apps](https://github.com/guzz/feathers-micro/tree/main/apps).

## Authentication

If you want to have your authentication as a serverless application, configure your authentication.ts file.

```ts
import { AuthenticationService } from '@feathersjs/authentication'
import { MicroAuthentication } from '@feathers-micro/microservice'

import type { Application } from './declarations'

declare module './declarations' {
  interface ServiceTypes {
    authentication: AuthenticationService
  }
}

export const authentication = (app: Application) => {
  const authentication = new MicroAuthentication(app, 'authentication', { url: 'http://localhost:3010/dev', getParamsFromBody: true })
  // @ts-ignore
  app.use('authentication', authentication)
}

```

## Session ID

When dealing with micro services logging is one of the biggest difficulties, is important to have a tracer id from one component to the other to understand the flow of each call.

To configure a session id on your service calls update your app.ts, this feature is only supported in feathers koa.

```ts
...

import { setKoaGateway } from '@feathers-micro/microservice'

...

app.configure(setKoaGateway([app.get('authentication')?.secret ?? '']))

```
npm package: @feathers-micro/serverless
Description: Helps you create you own micro service feathersJS application
Author: Gustavo Junqueira
Latest version: 1.0.0

This library is part of the [feathers-micro](https://github.com/guzz/feathers-micro) library.

Check the repository for a working example.

# @feathers-micro/serverless

## Usage

```bash
# create a feathers application
npm create feathers@latest my-serverless-component

# install the library in your project
yarn add @feathers-micro/serverless
```

**Update your app.ts and declarations.ts**

```ts
// ./src/app.ts
import { feathers } from '@feathersjs/feathers'
import configuration from '@feathersjs/configuration'
import { serverless } from '@feathers-micro/serverless'
import type { Application } from './declarations'

...
// configure your serverless handler
const app: Application = serverless(feathers(),
// add your middlewares
// these are not feathers middlewares, they receive the context from the serverless function
async (ctx, params) => {
  console.log('TodoComponentLog: ', {
    ...params,
    sessionId: ctx.event.headers['Session-Id']
  })
})
...

// ./src/declarations.ts
...

import { Application as ServerlessApplication } from '@feathers-micro/serverless'

...

// The application instance type that will be used everywhere else
export type Application = ServerlessApplication<ServiceTypes, Configuration>
...

```

**Install serveless in yor application**

```bash
yarn add -D serverless serverless-offline
```

The `serverless-offline` library is used to run your application on your local environment, to know more check the [documentation](https://www.serverless.com/plugins/serverless-offline).

**Create a serverless.yml in the root of your application**

You can configure your application in 2 different ways, having a endpoint for each feathers method or with just one endpoint and passing the parameters needed in the payload.

You can find an example on how to configure it in the example apps:

- [todo-component](https://github.com/guzz/feathers-micro/blob/main/apps/todo-component/serverless.yml): Multiple endpoints
- [user-component](https://github.com/guzz/feathers-micro/blob/main/apps/user-component/serverless.yml): Single endpoint

Payload example for the single endpoint configuration:

```js
const payload = {
  query: {}, // feathers query
  method: 'create', // feathers method
  service: 'todo', // feathers service
  data: {}, // body data
  id: 2 // feathers id (for 'get', 'patch', 'update' and 'delete')
}
```

**Create new scripts on to your package.json**

The bellow scripts are using [npm-run-all](https://www.npmjs.com/package/npm-run-all) to execute multiple scripts at once or you can just use the `sls-offline` script directly and run the tsc build manually.

```json
{
  "scripts": {
    "sls-offline": "sls offline",
    "watch": "tsc --watch",
    "dev": "run-p watch sls-offline",
  }
}
```
npm package: @feathers-nuxt/feathers-notifme
Description: Feathers notification service
Author: kelvin kharhys
Latest version: 1.0.1-beta.1

# feathers-notifme

> Feathers notification service using [`notifme-sdk`](https://github.com/notifme/notifme-sdk)

## Installation

```shell
npm install @feathers-nuxt/feathers-notifme --save
```

## API

```js
const notifme = require('feathers-notifme');
```

### `app.use('/notifications', notifme(options))`

`options` is an object with two optional keys
- useNotificationCatcher: optional boolean. `false` by default.
- channels: optional object. One of `email`, `sms`, `push`, `webpush` or `slack`
	Each channel configuration is an object with two keys:
	  - multiProviderStrategy: *optional string*; one of `fallback`, `roundrobin`, `no-fallback`
	  - providers: *required array* of objects each with a required key `type`

See [here](https://github.com/notifme/notifme-sdk#1-general-options) for more details.

## Example
The below example is in livescript.

```livescript
notifme = require 'feathers-notifme'
# declare notifme-sdk options
options = 
    useNotificationCatcher: false
    channels: 
      email:
        providers:
          * type: 'logger'
          * type: 'smtp',
            port: 465,
            secure: true,
            host: (app.get 'SMTP_HOST'),
            auth: user: (app.get 'SMTP_USER'), pass: (app.get 'SMTP_PASSWORD')
        ...
# register the service with the options
app.use '/notifications', notifme options 

# use the service to send email notification
alert =
  email:
    subject: 'Test Email Notification'
    from: app.get 'SMTP_USER'
    to: email@address.me
    html: 'Hello world!'
(app.service 'notifications').create alert
```


## License

Copyright (c) 2018

Licensed under the [MIT license](LICENSE).
npm package: @feathers-plus/batch-loader
Description: Reduce requests to backend services by batching calls and caching records.
Author: John J. Szwaronek
Latest version: 0.3.6

# feathers-plus/batch-loader

[![Build Status](https://travis-ci.org/feathers-plus/batch-loader.png?branch=master)](https://travis-ci.org/feathers-plus/batch-loader)
[![Code Climate](https://codeclimate.com/github/feathers-plus/batch-loader/badges/gpa.svg)](https://codeclimate.com/github/feathers-plus/batch-loader)
[![Test Coverage](https://codeclimate.com/github/feathers-plus/batch-loader/badges/coverage.svg)](https://codeclimate.com/github/feathers-plus/batch-loader/coverage)
[![Dependency Status](https://img.shields.io/david/feathers-plus/batch-loader.svg?style=flat-square)](https://david-dm.org/feathers-plus/batch-loader)
[![Download Status](https://img.shields.io/npm/dm/feathers-batchloader.svg?style=flat-square)](https://www.npmjs.com/package/feathers-batchloader)

> Reduce requests to backend services by batching calls and caching records.

## Installation

```
npm install @feathers-plus/batch-loader --save
```

## Documentation

Please refer to the [batch-loader documentation](https://feathers-plus.github.io/v1/batch-loader/) for more details.

## Complete Example

Here's an example of a Feathers server that uses `feathers-plus/batch-loader`. 

```js
const BatchLoader = require('@feathers-plus/batch-loader');
const { getResultsByKey, getUniqueKeys } = BatchLoader;

const usersBatchLoader = new BatchLoader(
  keys => app.service('users').find({ query: { id: { $in: getUniqueKeys(keys) } } })
    .then(result => getResultsByKey(keys, result, user => user.id, '!'))
);

app.service('comments').find()
  .then(comments => Promise.all(comments.map(comment => {
    // Attach user record
    return usersBatchLoader.load(comment.userId)
      .then(user => comment.userRecord = user);
  })))
```

## License

Copyright (c) 2017 John J. Szwaronek

Licensed under the [MIT license](LICENSE).
npm package: @feathers-plus/cache
Description: LRU (least recently used) cache. Compatible with feathers-hooks-common cache hooks and BatchLoader.
Author: John Joseph Szwaronek
Latest version: 1.4.0

# @feathers-plus/cache

[![Dependency Status](https://img.shields.io/david/feathers-plus/cache.svg?style=flat-square)](https://david-dm.org/eddyystop/dataloader-cache-lru)
[![Download Status](https://img.shields.io/npm/dm/feathers-plus/cache.svg?style=flat-square)](https://www.npmjs.com/package/dataloader-cache-lru)

> LRU (least recently used) cache for @feathers-plus/batch-loader and @feathers-plus/feathers-hooks-common cache hook.

## Installation

```
npm install @feathers-plus/cache --save
```

## Documentation

@feathers-plus/batch-loader, by default, uses the standard Map which simply grows until the BatchLoader is released.
The default is appropriate when requests to your application are short-lived.

Longer lived BatchLoaders, such as ones which persist between @feathers-plus/feathers-hooks-common fastJoin hook queries, will build up memory
pressure unless the size of the cache is controlled.
Furthermore, if records mutate, their cache entries must be removed.

This BatchLoader-compatible cache implements a LRU (least recently used) cache, it deletes the
least recently used items when the cache size is exceeded.
 
## Complete Example

```js
const BatchLoader = require('@feathers-plus/batch-loader');
const feathersCache = require('@feathers-plus/cache');

const cacheMap = feathersCache({ max: 3 }); // see options in isaacs/node-lru-cache
const batchLoader = new BatchLoader(batchLoadFn, { cacheMap });

Promise.all(
  ['a', 'b', 'c', 'd', 'e'].map(key => batchLoader.load(key))
)
  .then(data => {
    console.log(data); // [{ key: 'a', data: 'a' }, ..., { key: 'e', data: 'e' }]
    console.log(cacheMap.keys().sort()); // ['c', 'd', 'e']
  });

// record with key 'd' has been mutated
batchLoader.clear('d');
console.log(cacheMap.keys().sort()); // ['c', 'e']

function batchLoadFn (keys) {
  return Promise.all(
    keys.map(key => ({ key, data: key }))
  );
}
```

## Note

`lib/hooks` contains hooks to clear the keys of mutated records.

## License

Copyright (c) 2017

Licensed under the [MIT license](LICENSE).
npm package: @feathers-plus/cli
Description: FeathersJS CLI supporting both REST and GraphQL architectural concepts and their query languages.
Author: John J. Szwaronek
Latest version: 0.8.10
Deprecated: The feathers-plus CLI is no longer maintained

# @feathers-plus/cli

> FeathersJS CLI supporting both REST and GraphQL architectural concepts and their query languages.

## Installation

```
npm install -g @feathers-plus/cli
```

## Usage

Refer to the [documentation](https://generator.feathers-plus.com/).

## License

Copyright (c) 2017-18 John J. Szwaronek.

Licensed under the [MIT license](./LICENSE).
npm package: @feathers-plus/common
Description: Shared utility functions for Feathers-plus.
Author: Feathers-plus contributors
Latest version: 0.1.0

# feathers-plus-common

[![Dependency Status](https://img.shields.io/david/feathers-plus/feathers-plus-common.svg?style=flat-square)](https://david-dm.org/feathers-plus/feathers-plus-common)
[![Download Status](https://img.shields.io/npm/dm/feathers-plus-common.svg?style=flat-square)](https://www.npmjs.com/package/feathers-plus-common)

> Shared utility functions for Feathers-plus.

## License

Copyright (c) 2017

Licensed under the [MIT license](LICENSE).
npm package: @feathers-plus/generator-feathers-plus
Description: A Yeoman generator to (re)generate a FeathersJS application supporting both REST and GraphQL architectural concepts and their query languages.
Author: John Szwaronek
Latest version: 0.8.10
Deprecated: The feathers-plus generator is no longer maintained

# @feathers-plus/generator-feathers-plus

This Yeoman generator is used with [@feathers-plus/cli](https://generator.feathers-plus.com).

This project started as a heavily refactored version of @feathersjs/cl by David Luecke.

Copyright (c) 2017-18 John J. Szwaronek.
Licensed under the [MIT license](./LICENSE).
npm package: @feathersjs/authentication-jwt
Description: JWT authentication strategy for feathers-authentication using Passport
Author: Feathers contributors
Latest version: 2.0.10

# @feathersjs/authentication-jwt

[![Build Status](https://travis-ci.org/feathersjs/feathers.png?branch=master)](https://travis-ci.org/feathersjs/feathers)
[![Dependency Status](https://img.shields.io/david/feathersjs/feathers.svg?style=flat-square&path=packages/authentication-jwt)](https://david-dm.org/feathersjs/feathers?path=packages/authentication-jwt)
[![Download Status](https://img.shields.io/npm/dm/@feathersjs/authentication-jwt.svg?style=flat-square)](https://www.npmjs.com/package/@feathersjs/authentication-jwt)

> JWT authentication strategy for feathers-authentication using Passport

## Installation

```
npm install @feathersjs/authentication-jwt --save
```

## Quick example

```js
const feathers = require('@feathersjs/feathers');
const authentication = require('feathers-authentication');
const jwt = require('@feathersjs/authentication-jwt');
const app = feathers();

// Setup authentication
app.configure(authentication(settings));
app.configure(jwt());

// Setup a hook to only allow valid JWTs to authenticate
// and get new JWT access tokens
app.service('authentication').hooks({
  before: {
    create: [
      authentication.hooks.authenticate(['jwt'])
    ]
  }
});
```

## Documentation

Please refer to the [@feathersjs/authentication-jwt documentation](https://docs.feathersjs.com/api/authentication/jwt.html) for more details.


## License

Copyright (c) 2018

Licensed under the [MIT license](LICENSE).
npm package: @feathersjs/authentication-oauth2
Description: An OAuth2 authentication strategy for feathers-authentication using Passport
Author: Feathers contributors
Latest version: 1.3.1

# @feathersjs/authentication-oauth2

[![Build Status](https://travis-ci.org/feathersjs/feathers.png?branch=master)](https://travis-ci.org/feathersjs/feathers)
[![Dependency Status](https://img.shields.io/david/feathersjs/feathers.svg?style=flat-square&path=packages/authentication-oauth2)](https://david-dm.org/feathersjs/feathers?path=packages/authentication-oauth2)
[![Download Status](https://img.shields.io/npm/dm/@feathersjs/authentication-oauth2.svg?style=flat-square)](https://www.npmjs.com/package/@feathersjs/authentication-oauth2)

> An OAuth2 authentication strategy for feathers-authentication using Passport

## Installation

```
npm install @feathersjs/authentication-oauth2 --save
```

**Note:** This is only compatibile with `feathers-authentication@1.x` and above.

## Quick example

```js
const feathers = require('@feathersjs/feathers');
const authentication = require('feathers-authentication');
const jwt = require('feathers-authentication-jwt');
const oauth2 = require('@feathersjs/authentication-oauth2');
const FacebookStrategy = require('passport-facebook').Strategy;
const app = feathers();

// Setup authentication
app.configure(authentication(settings));
app.configure(jwt());
app.configure(oauth2({
  name: 'facebook',
  Strategy: FacebookStrategy,
  clientID: '<your client id>',
  clientSecret: '<your client secret>',
  scope: ['public_profile', 'email']
}));

// Setup a hook to only allow valid JWTs to authenticate
// and get new JWT access tokens
app.service('authentication').hooks({
  before: {
    create: [
      authentication.hooks.authenticate(['jwt'])
    ]
  }
});
```

## Documentation

Please refer to the [@feathersjs/authentication-oauth2 API documentation](https://docs.feathersjs.com/api/authentication/oauth2.html) for more details.

## License

Copyright (c) 2018

Licensed under the [MIT license](LICENSE).
npm package: @feathersjs/schema-sequelize
Description: Sequelize mappings for @feathersjs/schema
Author: Feathers contributor
Latest version: 0.0.1-alpha.4

# @feathersjs/schema-sequelize

Sequelize converter for `@feathersjs/schema` schemas:

```js
import Joi from '@hapi/joi';
import { schema, property } from '@feathersjs/schema';

@schema({
  name: 'users'
})
export class User {
  @property<Joi.NumberSchema> (validator => validator.integer(), {
    sequelize: {
      primaryKey: true,
      autoIncrement: true
    }
  })
  id: number;

  @property<Joi.StringSchema> (validator => validator.email().required())
  email: string;

  @property<Joi.NumberSchema> (validator => validator.integer())
  age: number;
}

@schema({
  name: 'todos',
  sequelize (TodoModel: any, models: any) {
    TodoModel.belongsTo(models.users, { as: 'user' });
  }
})
export class Todo {
  @property<Joi.NumberSchema> (validator => validator.integer(), {
    sequelize: {
      primaryKey: true,
      autoIncrement: true
    }
  })
  id: number;
  
  @property(validator => validator.required())
  text: string;

  @property()
  userId: number;

  @property({
    async resolve (todo: any, context: any) {
      return context.users.findOne({
        raw: true,
        where: {
          id: todo.userId
        }
      });
    }
  })
  user: User;
}

const client = new Sequelize('sqlite://test-db.sqlite');

const UserModel = convert (User, client);
const TodoModel = convert(Todo, client);

associate(client);

await client.sync();

assert.ok(UserModel);
assert.ok(TodoModel);
```
npm package: @feathersjs/tools
Description: Codemods and other generator and repository  management tools
Author: Feathers contributors
Latest version: 0.2.3

# @feathersjs/tools

[![Node.js CI](https://github.com/feathersjs/tools/workflows/Node.js%20CI/badge.svg)](https://github.com/feathersjs/tools/actions?query=workflow%3A%22Node.js+CI%22)
[![Dependency Status](https://img.shields.io/david/feathersjs/tools.svg?style=flat-square)](https://david-dm.org/feathersjs/tools)
[![Download Status](https://img.shields.io/npm/dm/@feathersjs/tools.svg?style=flat-square)](https://www.npmjs.com/package/@feathersjs/tools)

> Codemods and other generator and repository  management tools

## Installation

```
npm install @feathersjs/tools --save
```

## Local exports

- `upgrade` contains the functionality to update a current Feathers application or plugin to version 3 (including rewriting all module `require`s to use the `@feathersjs` namespace)
- `transform` contains [JSCodeshift](https://github.com/facebook/jscodeshift/) utilities used mainly by the generator.

## Global tools

When `@feathersjs/tools` is installed globally, `convert-repository` is an internal tool that updates the old Feathers plugin infrastructure that is using Babel to the new one without (see https://github.com/feathersjs/feathers/issues/608 for why and how).

## License

Copyright (c) 2017

Licensed under the [MIT license](LICENSE).
npm package: @featherstudio/react-daisyui-kit
Description: A React component library built with DaisyUI and Tailwind CSS. Includes form controls, data display, overlays, notifications, and a theme switcher ready for app-level use.
Author: Arce
Latest version: 0.0.8

# @featherstudio/react-daisyui-kit

A React component library built with DaisyUI and Tailwind CSS. Includes form controls, data display, overlays, notifications, and a theme switcher ready for app-level use.

## Features

- DaisyUI-first styling with Tailwind CSS utility overrides
- TypeScript-ready components and hooks
- ThemeProvider and ThemeSwitcher for data-theme switching
- Form system with validation helpers
- Toast and Notification utilities

## Installation

```bash
pnpm add @featherstudio/react-daisyui-kit
```

Peer dependencies (install in your app):

```bash
pnpm add react react-dom tailwindcss daisyui zod react-icons
```

## Tailwind + DaisyUI setup

Tailwind v4 (CSS-first) example:

```css
@import "tailwindcss";
@plugin "daisyui" {
  themes: all;
}
@custom-variant dark (&:where([data-theme=dark], [data-theme=dark] *));

body {
  background-color: hsl(var(--b1));
  color: hsl(var(--bc));
}
```

Tailwind v3 config example (tailwind.config.js):

```js
export default {
  content: ["./src/**/*.{ts,tsx,js,jsx}", "./app/**/*.{ts,tsx,js,jsx}"],
  plugins: [require("daisyui")],
};
```

## Quick start

```tsx
import { ThemeProvider, ThemeSwitcher, Button } from "@featherstudio/react-daisyui-kit";

export default function App() {
  return (
    <ThemeProvider>
      <nav>
        <ThemeSwitcher />
      </nav>
      <main>
        <Button variant="primary">Click me</Button>
      </main>
    </ThemeProvider>
  );
}
```

## Usage examples

Input + validation:

```tsx
import { Input } from "@featherstudio/react-daisyui-kit";

export default function Profile() {
  return <Input type="email" placeholder="you@example.com" />;
}
```

Toast:

```tsx
import { ToastProvider, ToastContainer, toast } from "@featherstudio/react-daisyui-kit";

export default function RootLayout({ children }) {
  return (
    <ToastProvider>
      {children}
      <ToastContainer />
    </ToastProvider>
  );
}

toast.success("Saved!");
```

Notification:

```tsx
import { NotificationProvider, NotificationContainer, notification } from "@featherstudio/react-daisyui-kit";

export default function RootLayout({ children }) {
  return (
    <NotificationProvider>
      {children}
      <NotificationContainer />
    </NotificationProvider>
  );
}

notification.success({ message: "Done" });
```

## Project links

- **Demo site**: https://arce0406.github.io/react-daisyui-kit/
- **Source**: https://github.com/Arce0406/react-daisyui-kit

## License

MIT