open-index/open-npm huggingface dataset:
npm package: @launchmenu/applet-applet-manager
Description: An applet to manage applets
Author: Tar van Krieken
Latest version: 0.1.4

# Applet manager

The applet manager is in charge of managing the applets in LaunchMenu.

It can currently be used to open applets.

## Planned

A lot more functionality is planned, but not implemented yet:

-   Reload applets
-   Enabled/Disable applets
-   Search for applets on npm:
    -   Install/Remove applets
-   Install local applets
npm package: @launchmenu/applet-help
Description: An applet to show some information for when first using LaunchMenu
Author: Tar van Krieken
Latest version: 0.1.4

# Help

The help applet contains some basic information to show the user if needed. The user can activate this by typing `:help`.

## Planned

Some more functionality is planned, but not implemented yet:

-   The info should contain more pictures
npm package: @launchmenu/applet-lm-recorder
Description: An applet to show some information for when first using LaunchMenu
Author: Tar van Krieken
Latest version: 0.1.4

# LM recorder

The LM recorder applet allows applet developers to easily script a video for their applet. This way videos can easily be rerecorded if visuals ever change.

## Planned

No new features are planned as of yet.
npm package: @launchmenu/applet-session-manager
Description: An applet to manage sessions
Author: Tar van Krieken
Latest version: 0.1.4

# Session manager

Multiple session can be started in LaunchMenu, in order to keep some state while performing a new search. This is comparable to how internet browsers allow you to open multiple tabs.

The session can be accessed in the global section of the context menu.
Here sessions can be added and removed, and opened.

## Planned

Some more functionality is planned, but not implemented yet:

-   Rename sessions
-   Color label sessions
-   Allow to create default sessions, that automatically start up?
npm package: @launchmenu/applet-settings-manager
Description: An applet to manage settings
Author: Tar van Krieken
Latest version: 0.1.4

# Settings manager

LaunchMenu has default settings as well as settings for every applet. The settings manager can be used to change the values of these settings.

In order to search for a specific setting, use the prefix: `s:`, E.g.: `s:down`. In addition, the settings of a specific applet can be browsed by opening the settings applet.

## Planned

Some more functionality is planned, but not implemented yet:

-   Importing/exporting settings, in order to share them
    -   This should be a combined export (not a separate file for each applet)
-   Add settings templates system:
    -   Allow the user to create a collection of setting values
    -   Allow the user to specify a shortcut to activate the collection
    -   Allow the option of toggling between 2 collections with 1 shortcut
npm package: @launchmenu/applet-window-manager
Description: An applet to manage LMs window
Author: Tar van Krieken
Latest version: 0.1.4

# Window manager

The window manager applet can be used to:

-   Position the window
-   Resize the window
-   Control automatic startup
-   Control window opening/closing
-   Create a tray icon

## Planned

Currently the automatic startup only support windows, and requires elevation. Support for Mac and Linux is also planned, as well as a non-elevated version.
npm package: @launchmenu/core
Description: An environment for visual keyboard controlled applets
Author: Tar van Krieken
Latest version: 0.1.4

# Core

The core package contains all the main code for LaunchMenu. It creates the window, and hosts all of the applets.

It however provides no content for the program, only utilities to make content. All the content creation is offloaded to applets, allowing for more flexibility.
npm package: @launchmenu/launcher
Description: The installer + launcher of LM
Author: Tar van Krieken
Latest version: 0.1.1

# Launcher

The launcher is responsible for both installing and launching LaunchMenu when running in production.
During development, the `core` package can simply be ran in order to start LM.

Installation is done using simple node package installation using the JavaScript npm api. Later this package can also contain code for auto updating of core LaunchMenu packages.

## Development

### Building

Both `yarn build` and `yarn watch` can be used to build the launcher, possibly while watching for file changes.

### Testing

`yarn test`
can be used to run the launcher in test mode. When running in test mode, the installation parts of the launcher won't actually be run. The UI and flow can still be tested this way however

### Distributing

After having called `yarn build` one can create a distribution for the platform they are currently on by running `yarn dist`. This will generate the installer and place it in the `dist` folder.

### Issues and Fixes

#### hdiutil exited with code `ERR_ELECTRON_BUILDER_CANNOT_EXECUTE`

Seems like this occurs when Electron-builder tries to overwrite a DMG file which has been opened by another file browser. If you use Finder, make sure the DMG volume is ejected and try again. If this fails, relaunch Finder application (Alt+RightClick on the logo in the dock and select relaunch). If this fails, restart your mac and try again.

Hopefully this will fix the error.

> Note: this can also occur when you try to build 2 separate DMGs to the same path.
npm package: @launchnotes/braft-convert
Description: A convert helper for Braft Editor.
Author: LaunchNotes
Latest version: 2.3.2

# braft-convert
### 与braft-editor搭配使用的数据转换工具


##### 使用方法
```bash
# use yarn
yarn add braft-convert
# use npm
npm install --save braft-convert
```

```javascript
import { convertRawToHTML, convertHTMLToRaw } from 'braft-convert'

const draftRawData = '{"blocks":[{"key":"9hu83","text":"Hello World!","type":"unstyled","depth":0,"inlineStyleRanges":[{"offset":6,"length":5,"style":"BOLD"},{"offset":6,"length":5,"style":"COLOR-F32784"}],"entityRanges":[],"data":{}}],"entityMap":{}}'
const htmlString = '<p>Hello <strong><span style="color:#f32784">World</span></strong>!</p>'

convertRawToHTML(JSON.parse(draftRawData))
// <p>Hello <strong><span style="color:#f32784">World</span></strong>!</p>

JSON.stringify(convertHTMLToRaw(htmlString))
// {"blocks":[{"key":"8v6eh","text":"Hello World!","type":"unstyled","depth":0,"inlineStyleRanges":[{"offset":6,"length":5,"style":"BOLD"},{"offset":6,"length":5,"style":"COLOR-F32784"}],"entityRanges":[],"data":{}}],"entityMap":{}}

```
npm package: @launchnotes/embed
Description: Embed your LaunchNotes announcements into your applications.
Latest version: 1.0.6

# LaunchNotes Embed

## Using the embed

### Script tag

- Put a script tag similar to this `<script src='https://embed.launchnotes.io/latest/dist/esm/launchnotes-embed.js'></script>` in the head of your index.html
- Then you can use the element anywhere in your template, JSX, html etc

### Node Modules

- Run `npm install @launchnotes/embed --save`
- Put a script tag similar to this `<script src='node_modules/@launchnotes/embed/dist/launchnotes-embed.js'></script>` in the head of your index.html
- Then you can use the element anywhere in your template, JSX, html etc

Read more about the LaunchNotes embed [here](https://help.launchnotes.com/en/articles/5164335-pop-up-embed).
npm package: @launchnotes/moments-api-client
Description: Client that allows you to interface with the Moments API.
Author: Alvin Huynh
Latest version: 1.1.6

# Moments API Client

Client that allows you to interface with LaunchNotes' Moments API.

- [Moments API Client](#moments-api-client)
  - [Installing the client](#installing-the-client)
  - [Using the client to create Moments](#using-the-client-to-create-moments)
  - [OpenAPI generator and Axios](#openapi-generator-and-axios)

## Installing the client

```sh
# via yarn
yarn add @launchnotes/moments-api-client
```


```sh
# via npm
npm i @launchnotes/moments-api-client
```

## Using the client to create Moments

The client is based off of OpenAPI's `typescript-axios` generator. You will
first have to create a `Configuration` instance with your API key and create
a `MomentsApi` instance with that config.

From there, you should be able to make POST requests to the Moments API using `MomentsApi.postMoments()`.

```ts
import {
  MomentsApi,
  PostMomentsRequest,
  Configuration,
} from '@launchnotes/moments-api-client';

const config = new Configuration({
  accessToken: 'manage_abc123',
  basePath: 'https://pathtoapi.local:8080',
})
const api = new MomentsApi(config);
const request: PostMomentsRequest = {
  schemaId: 'https://schema.launchnotes.dev/schemas/test.json',
  projectId: 'pro_abc123',
  data: {},
};

const response = api.postMoments(request).then((result) => {
  console.log(result);
}).catch((error) => {
  console.log(error);
});

```

## OpenAPI generator and Axios

The client was generated by OpenAPI's `typescript-axios` generator using an
OpenAPI spec YAML file. For more information, please refer to these articles:

- [OpenAPI typescript-axios generator](https://openapi-generator.tech/docs/generators/typescript-axios)
- [Axios documentation](https://axios-http.com/docs/intro)
npm package: @launchnotes/moments-semantic-release
Description: A [semantic-release](https://github.com/semantic-release/semantic-release) plugin that allows you to publish Moments via the [Moments API client](https://github.com/launchnotes/moments-api-client).
Author: Bryce Holcomb
Latest version: 0.1.10

# Moments Semantic Release

A [semantic-release](https://github.com/semantic-release/semantic-release)
plugin that allows you to publish Moments via the
[Moments API client](https://github.com/launchnotes/moments-api-client).

- [Moments Semantic Release](#moments-semantic-release)
  - [Summary](#summary)
  - [Installing the package](#installing-the-package)
  - [Using the plugin](#using-the-plugin)
  - [Resources](#resources)

## Summary

This allows you automate publishing release data payloads to the Moments API
client. The commits in your repository will first be parsed, analyzed, and
formatted accordingly. A POST request will then be triggered by the
`moments-api-client` in attempt to persist a Moment.

## Installing the package

```sh
# via npm
npm install -g semantic-release @launchnotes/moments-semantic-release
```

```sh
# via yarn
yarn global add semantic-release @launchnotes/moments-semantic-release
```

## Using the plugin

You will first need to add `@launchnotes/moments-semantic-release` in the list
of `semantic-release` plugins in your `package.json`. The `projectId` will also
need to be defined for context.

```json
{
  "release": {
    "plugins": [
      [
        "moments-semantic-release",
        {
          "projectId": "pro_abc123"
        }
      ]
    ]
  }
}
```

You will then need to set the `LAUNCHNOTES_API_KEY` environment variable with
your `management` API key from the LaunchNotes application.

```sh
export LAUNCHNOTES_API_KEY=manage_abc123
```

Afterwards, you should be able to run `semantic-release`.

```sh
npx semantic-release
```

## Resources

This package uses other dependencies and tooling to work. Check out the
following for more information.

- [semantic-release](https://github.com/semantic-release/semantic-release): handles parsing and formatting of release
- [moments-api-client](https://github.com/launchnotes/moments-api-client): allows you to interface with the Moments API client