open-index/open-npm huggingface dataset:
npm package: @osndot/osn
Description: OSN — Modern, plugin-driven developer runtime and CLI platform
Author: osndot
Latest version: 0.2.0

<div align="center">
<picture>
  <img
    alt="osn. banner"
    src="assets/osn-banner.png"
    width="100%"
  />
</picture>
</div>

**osn.** is the core command-line interface and task runner for the osn platform. It provides the foundation for executing tasks, managing environment variables, and loading plugins.

## Installation

```bash
pnpm add -g @osndot/osn
```

## Usage

```bash
# Initialize a new project
osn init

# Run a task
osn run build

# Manage plugins
osn plugin add git
osn plugin list
```

## Documentation

For full documentation and advanced usage, visit the [main repository](https://github.com/osndot/osn#readme).

## License

MIT
npm package: @osndot/plugin-docker
Description: Docker integration plugin for the OSN CLI platform
Author: osndot
Latest version: 0.2.0

<div align="center">
<picture>
  <img
    alt="osn. plugin-docker"
    src="assets/osn-plugin-docker.png"
    width="100%"
  />
</picture>
</div>

Provides quick access to common Docker operations directly through the `osn` CLI.

## Installation

Install and register the plugin in your project using the `osn` CLI:

```bash
osn plugin add docker
```

## Commands

Once installed, the following commands are instantly available:

- `osn docker ps` - List currently running Docker containers.
- `osn docker build` - Build a Docker image using the configured `imageName` (defaults to `osn-app`).

## Documentation

For more information and the full command reference, visit the [main repository](https://github.com/osndot/osn).

## License

MIT
npm package: @osndot/plugin-env
Description: Environment configuration management plugin for the OSN CLI platform
Author: osndot
Latest version: 0.2.0

<div align="center">
<picture>
  <img
    alt="osn. plugin-env"
    src="assets/osn-plugin-env.png"
    width="100%"
  />
</picture>
</div>

Provides utilities for scaffolding and interacting with `.env` files securely across your projects.

## Installation

Install and register the plugin in your project using the `osn` CLI:

```bash
osn plugin add env
```

## Commands

Once installed, the following commands are instantly available:

- `osn env init` - Scaffold a new `.env` file with standard, best-practice examples.
- `osn env list` - List and securely preview defined environment variables from the current `.env` file.

## Documentation

For more information and the full command reference, visit the [main repository](https://github.com/osndot/osn).

## License

MIT
npm package: @osndot/plugin-git
Description: Git integration plugin for the OSN CLI platform
Author: osndot
Latest version: 0.2.0

<div align="center">
<picture>
  <img
    alt="osn. plugin-git"
    src="assets/osn-plugin-git.png"
    width="100%"
  />
</picture>
</div>

Provides quick, standardized access to common Git operations directly through the `osn` CLI.

## Installation

Install and register the plugin in your project using the `osn` CLI:

```bash
osn plugin add git
```

## Commands

Once installed, the following commands are instantly available:

- `osn git status` - Show a short, summarized status of the working tree.
- `osn git log` - Show the 10 most recent commit logs in a concise format.

## Documentation

For more information and the full command reference, visit the [main repository](https://github.com/osndot/osn).

## License

MIT
npm package: @osndot/sdk
Description: Plugin development SDK for the OSN CLI platform
Author: osndot
Latest version: 0.2.0

<div align="center">
<picture>
  <img
    alt="osn. sdk"
    src="assets/osn-sdk.png"
    width="100%"
  />
</picture>
</div>

## Installation

```bash
pnpm add -D @osndot/sdk
```

## Usage

Use the `definePlugin` factory function to create fully typed plugins for **osn.**:

```typescript
import { definePlugin } from "@osndot/sdk";

export default definePlugin({
  name: "my-custom-plugin",
  version: "1.0.0",
  description: "A custom plugin for osn",
  setup(ctx) {
    return {
      commands: [
        {
          name: "custom:hello",
          description: "Say hello",
          handler: () => {
             ctx.logger.info("Hello World!");
          }
        }
      ]
    };
  }
});
```

## Documentation

For complete documentation on building plugins, lifecycle hooks, and context management, see the [Plugin Development Guide](https://github.com/osndot/osn/blob/main/docs/plugin-development.md).

## License

MIT
npm package: @osnmarket/osnmarket-strapi-security
Description: This is the description of the plugin.
Author: Osnmarket
Latest version: 0.0.2

# Strapi Plugin osnmarket-strapi-security

A Strapi plugin for security purposes encompassing several features:

- Password expiration after 3 months.
- Login link for new users expires after 1 day, and the user will receive an email.
- Password reset via email and on the connected user's profile.
- Password history: the new password must not match the last 2 passwords.
- Only users with the domain orange-sonatel.com can be created.
- Autologout.
- PTS.

## Installation

```
 with yarn 
 
 yarn add @osnmarket/osnmarket-strapi-security

 with npm 
 
 npm install @osnmarket/osnmarket-strapi-security 
```

## Prerequisites

- Copy the patches folder to the root directory.
- Install patch-package and postinstall-postinstall.
- Add the following script to package.json:

```
    "patch-package": "patch-package"
```

- Afterward, run:

```
    yarn patch-package
```

# Configuration

- configure reset_password template and email_confirmation template

```
 for same action you have these variables
 {{= token }} , {{= firstname }} ...
 
```

## Keywords: strapi plugin

## Projects

- souxate BO

## Contributors:

- TEAM B2C

## Licence

- MIT
npm package: @osnova/events
Description: Intersystem communication via Events
Author: Alexander Snov
Latest version: 0.35.0

# @osnova/events

Intersystem Event Messaging.

## Concepts

### Event

Event is an intention to do something or a signal that something has happened. Event has `type` and `payload` fields.

```typescript
import { makeEventCreator } from '@osnova/events';

const eventRecievedWebsocketMessage = makeEventCreator('RECIEVED_WEBSOCKET_MESSAGE');

const helloMessageEvent = eventRecievedWebsocketMessage({
  message: 'hello',
});

console.log(helloMessageEvent);
/*
{ 
  type: 'RECIEVED_WEBSOCKET_MESSAGE',
  payload: { message: 'Hello' }
}
*/
```

### Connector

Connector is an entity that listens for events, reacts to events and sends events to other connectors.

```typescript
import { makeEventCreator, ClosedConnector } from '@osnova/events';

const eventRecievedWebsocketMessage = makeEventCreator('RECIEVED_WEBSOCKET_MESSAGE');

const connector = new ClosedConnector();

connector.on('RECIEVED_WEBSOCKET_MESSAGE', (event) => {
  console.log(event); // (1)
});

connector.accept(
  eventRecievedWebsocketMessage({
    message: 'hello',
  })
);

console.log(`The connector has already accepted the event.`); // (2)

/*
  Will print:

  { 
    type: 'RECIEVED_WEBSOCKET_MESSAGE',
    payload: { message: 'Hello' }
  }

  The connector has already accepted the event.

*/
```

All listeners will be executed synchronously when the connector receives the event via `accept`. So `(1)` wil be printed before `(2)`.

#### Closed connector

`ClosedConnector` is a special connector with no-op `send` method.

#### Request/Response connectors

Request is an event that expects a response from the target connector.
Response is an event that is sent to the requesting connector.

### EventTransferer

Takes original event, prepares it and transfers it to receiving system.

#### LocalNextTick Transferer

Transfers event to `ClosedConnector` on the next tick.

#### PostMessage Transferer

Transfers events via custom provider with `postMessage` interface.


### InterConnectorOperators

InterConnectorOperators links two connectors.

### propagateEvents

Propagates recieved listed events from one connector to another.
npm package: @osnova/events-firebase
Description: @osnova/events bindings for Firebase
Author: Alexander Snov
Latest version: 0.4.0

# @osnova/events-firebase

## Install

```sh
# npm
npm install @osnova/events @osnova/events-firebase firebase --save
# yarn
yarn add @osnova/events @osnova/events-firebase firebase
```

## Usage

### FirestoreConnector

Request connector that writes request events as documents to `requestsCollection` and listens `responsesCollection` for responses to that events.

```typescript
import { FirestoreConnector } from '@osnova/events-firebase';

const connector = new FirestoreConnector(firebase, {
  requestsCollection: 'requests',
  responsesCollection: 'responses',
  // will delete processed response event if `true`
  deleteResponse: true,
});

connector.request({ type: 'ping', payload: void 0 }).then((response) => {
  console.log(response);
});
```

First parameter of `FirestoreConnector` is an initialized Firebase application (`firebase.app.App`).

[@osnova/firebase-client](https://github.com/0snova/firebase-client) can be used to easily initialize Firebase.
npm package: @osnova/firebase-client
Description: It is never (or almost never) a good idea to load Firebase Web SDK synchronously in the browser because of it's enormous size. This package is a thin wrapper over Firebase that allows to load lazily only necessary modules and handles some edge cases.
Author: Alexander Snov
Latest version: 0.10.0

# @osnova/firebase-client

It is never (or almost never) a good idea to load Firebase Web SDK synchronously in the browser because of it's enormous size. This package is a thin wrapper over Firebase that allows to load lazily only necessary modules and handles some edge cases.

## Features

- Lazy loading of only necessary modules.
- Support for [Emulator Suite](https://firebase.google.com/docs/emulator-suite).
- Use multiple Firebase applications per page.
- Does not break on HMR.

## Install

```sh
# npm
npm install @osnova/firebase-client firebase --save
# yarn
yarn add @osnova/firebase-client firebase
```

## Usage

Default export is the function that lazily loads and initializes Firebase:

```typescript
import startFirebase from '@osnova/firebase-client';

/* Firebase SDK config. Can be retrieved from Firebase Console. 
     https://firebase.google.com/docs/web/setup#register-app */
const config = {
  apiKey: 'apiKey',
  authDomain: 'project.firebaseapp.com',
  databaseURL: 'https://project.firebaseio.com',
  projectId: 'project',
  storageBucket: 'project.appspot.com',
  messagingSenderId: 'messagingSenderId',
  appId: 'appId',
  measurementId: 'measurementId',
};

startFirebase(config, {
  name: `my-firebase-app`,
  use: {
    // specify which modules will be used
    analytics: true,
    auth: true,
    firestore: true,
    storage: true,
    funtions: true,
  },
}).then((app) => {
  // firebase is available and ready to use.
});
```

### Usage with Emulator Suite

By default `@osnova/firebase-client` will not use to any emulators.

This behaviour can be modified with `emulator` option:

```typescript
import startFirebase, { shouldUseEmulatorWhenLocalhost } from '@osnova/firebase-client';

startFirebase(config, {
  /* ...rest config */
  emulator: {
    shouldUseEmulator: shouldUseEmulatorWhenLocalhost, // default value is `() => false`
    firestoreHost: `localhost:8080`, // this is a default value
    authHost: `http://localhost:9099`, // this is a default value
  },
}).then((app) => {
  // firebase is available and ready to use.
});
```

`shouldUseEmulatorWhenLocalhost` is a built-in function that detects if application is running on `localhost`.
You can provide your own function:

```typescript
function shouldUseEmulatorIfEnv() {
  return !!process.env.FIREBASE_EMULATOR;
}
```

Emulators will be used If `options.emulator.shouldUseEmulator` return `true`.

`options.emulator.firestoreHost` and `options.emualator.authHost` can accept `false` value, which means that corresponding emulator will not be used even if `shouldUseEmulator` returned `true`.

## Development

### Release

1. Bump version in `package.json`

2. Run

```sh
yarn release
```