open-index/open-npm huggingface dataset:
npm package: @lodestream/waveform-samples-generator
Description: This is a thin wrapper around [audiowaveform](https://github.com/bbc/audiowaveform) to parse audio files and generate sample data.
Author: Kun R
Latest version: 1.0.12

# Waveform Samples Generator [![Build Status](https://travis-ci.org/lodestreams/waveform-samples-generator.svg?branch=master)](https://travis-ci.org/lodestreams/waveform-samples-generator)

This is a thin wrapper around [audiowaveform](https://github.com/bbc/audiowaveform) to parse audio files and generate sample data.

If you want more features or generate them on your own, just use the original [audiowaveform](https://github.com/bbc/audiowaveform) and [waveform-data.js](https://github.com/bbc/waveform-data.js).

## Installation

1. **REQUIRED**: Follow [this guide](https://github.com/bbc/audiowaveform#installation) to install audiowaveform binary into your system.
2. Install this module:

  ```bash
  npm install @lodestream/waveform-samples-generator
  ```

3. Use it like this:

  ```js
  const { parseFile } = require("@lodestream/waveform-samples-generator");

  const start = async () => {
    const samples = await parseFile({ 
      // filePath: "./audio.mp3",
      url: "https://cdn.jsdelivr.net/gh/lodestreams/waveform-samples-generator@2254b8235c0cd82a482fb2bf7b7404c8fb0df560/docs/test.mp3"
      sampleRate: 10
    });
    // See /src/@types/waveform-data/index.d.ts for detailed schema of `samples`
    console.log(JSON.stringify(samples.max));
  };

  start();
  ```

  If your want to draw waveforms out of it, use `samples.max`, it's an array of points.

## Play with this repo

Print out samples (array):

```bash
ts-node --files src/scripts/parser.manual.ts
# [2,2,2,3,2,2,3,2,3,2,3,3,3,5,4,4,4,2,...
```

Play the waveform! Watch it dancing!

```bash
ts-node --files src/scripts/player.manual.ts
```
npm package: @lodev09/expo-recorder
Description: Audio recorder for your React Native apps ⏺️
Author: lodev09
Latest version: 0.4.0

# Expo Recorder

Audio recorder for your React Native apps 🎙️<br>
This is a wrapper component that implements [Expo Audio](https://docs.expo.dev/versions/latest/sdk/audio/) and features an animated waveform for your recording needs. 💪

<img alt="Expo Recorder" src="preview.gif" width="300px" />

> [!NOTE]
> This package is mostly subjective and might not fit your use case and/or design.
>
> I will try to make this as generic as possible, but if you want a very customized experience, feel free to copy its code and customize it the way you want. Alternatively, you could submit a PR if you think it will help the general public. See the [contributing guide](CONTRIBUTING.md) to get started.

## Installation

```sh
npx expo install @lodev09/expo-recorder
```

### Dependencies

```sh
npx expo install expo-audio react-native-reanimated react-native-gesture-handler
```

You might want to check out the individual installation instructions from this package's dependencies.

* [`expo-audio`](https://docs.expo.dev/versions/latest/sdk/audio/)
* [`react-native-reanimated`](https://docs.swmansion.com/react-native-reanimated/)
* [`react-native-gesture-handler`](https://docs.swmansion.com/react-native-gesture-handler/docs/)

## Usage

```tsx
import { View, Button, Alert } from 'react-native'
import { Recorder, type RecorderRef } from '@lodev09/expo-recorder'
import { Audio } from "expo-av";

const App = () => {
  const recorder = useRef<RecorderRef>(null)

  const startRecording = async () => {
    try {
      const permission = await Audio.requestPermissionsAsync();
      if (permission.status !== "granted") {
        Alert.alert(
          "Permission required",
          "Audio recording permission is required"
        );
        return;
      }

      const record = await recorder.current?.startRecording();
      console.log(record?.uri);
    } catch (error) {
      console.error(error);
    }
  };

  const stopRecording = async () => {
    const record = await recorder.current?.stopRecording()
    console.log(record.uri) // Save the uri somewhere! 🎉
  }

  return (
    <View>
      <Recorder ref={recorder} />
      <Button title="Record" onPress={startRecording} />
      <Button title="Stop" onPress={stopRecording} />
    </View>
  )
}
```

For complete usage, see [example](example/components/ThemedRecorderSheet.tsx).

Also check out [`react-native-true-sheet`](https://github.com/lodev09/react-native-true-sheet), the **Bottom Sheet** used in this example.

## Contributing

See the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.

## License

MIT

---

Made with ❤️ by [@lodev09](http://linkedin.com/in/lodev09/)
npm package: @lodev09/react-native-exify
Description: Read and write exif data from/into an image
Author: lodev09
Latest version: 1.0.3

# React Native Exify

[![CI](https://github.com/lodev09/react-native-exify/actions/workflows/ci.yml/badge.svg)](https://github.com/lodev09/react-native-exify/actions/workflows/ci.yml)
![NPM Downloads](https://img.shields.io/npm/dw/%40lodev09%2Freact-native-exify)
[![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/lodev09/react-native-exify)

A simple library to read and write image Exif metadata for your React Native Apps. 🏷️

<img alt="@lodev09/react-native-exify" src="preview.gif" width="400" />

## Features

* Read Exif data from an image
* Write Exif data into an image
* Tags are typed and standardized
* Works with Expo and bare React Native projects
* Supports New Architecture (Turbo Module)

## Installation

```sh
yarn add @lodev09/react-native-exify
```

## Usage

```tsx
import * as Exify from '@lodev09/react-native-exify';
```

### Reading Exif 🔍

```tsx
const uri = 'file://path/to/image.jpg'

const tags = await Exify.read(uri)
console.log(tags)
```

> [!IMPORTANT]
> The `uri` must include a scheme (e.g. `file://`, `ph://`, `content://`). Bare file paths like `/var/mobile/.../image.jpg` are not supported and will throw an error.

> [!NOTE]
> On Android 10+, GPS data is redacted from `content://` URIs by default. The library automatically requests `ACCESS_MEDIA_LOCATION` at runtime to access unredacted location data. Your app must have media read access (`READ_MEDIA_IMAGES` or `READ_EXTERNAL_STORAGE`) granted first.
> If you're already using a library like [`expo-media-library`](https://docs.expo.dev/versions/latest/sdk/media-library/) that grants `ACCESS_MEDIA_LOCATION`, exify will use the existing grant.

### Writing Exif ✍️

```tsx
import type { ExifTags } from '@lodev09/react-native-exify';

const uri = 'file://path/to/image.jpg'
const newTags: ExifTags = {
  GPSLatitude: 69.69,
  GPSLongitude: 69.69,
  UserComment: 'Someone wrote GPS here!',
}

const result = await Exify.write(uri, newTags)
console.log(result.tags)
```

> [!NOTE]
> On iOS, writing exif into an Asset file will duplicate the image. iOS does not allow writing exif into an Asset file directly.
> If you're getting the photo from a [camera](https://docs.expo.dev/versions/latest/sdk/camera/), write it into the output file first before saving to the Asset library!

## Example

See [example](example) for more detailed usage.

### Built with True Sheet

The example app uses [@lodev09/react-native-true-sheet](https://github.com/lodev09/react-native-true-sheet) for the image picker UI. Check it out!

## Contributing

See the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.

## License

[MIT](LICENSE)

---

Made with ❤️ by [@lodev09](http://linkedin.com/in/lodev09/)
npm package: @lodgify/enzyme-jest-expect-helpers
Description: Simple expect helpers for unit testing with Jest and Enzyme
Author: Lodgify
Latest version: 1.0.1

# Enzyme and Jest expect helpers
Simple expect helpers for unit testing with Jest and Enzyme

## Usage examples

```jsx
import React from 'react';
import { shallow, mount } from 'enzyme';
import {
  expectComponentToBe,
  expectComponentToHaveChildren,
  expectComponentToHaveProps,
  expectComponentToHaveDisplayName,
  } from '@lodgify/enzyme-jest-expect-helpers';
import { Button as LodgifyButton } from '@lodgify/ui';

import { PrimaryButton } from './PrimaryButton';

const getButton = props => shallow(<Button {...props}>Press me</Button>);

describe('<PrimaryButton />', () => {
  it('should render a single `LodgifyButton` component', () => {
    const wrapper = getButton();
    expectComponentToBe(wrapper, LodgifyButton);
  });

  it('should have the the right props', () => {
    const wrapper = getButton();
    expectComponentToHaveProps(wrapper, {
      isLoading: false,
      isRounded: true,
    });
  });

  it('should render the right children', () => {
    const wrapper = getButton();
    expectComponentToHaveChildren(wrapper, 'Press me');
  });

  it('should have `displayName` PrimaryButton', () => {
    expectComponentToHaveDisplayName(PrimaryButton, 'PrimaryButton')
  });
});
```

## Contributing

Avoid wasting time in PRs by creating this pre-commit git hook...

```sh
# .git/hooks/pre-commit
npm run pre-commit
```
npm package: @lodgify/eslint-config
Description: ESLint config for Lodgify's projects.
Latest version: 3.0.0

# Lodgify's ESLint config 💅

Set of ESLint rules and plugins used accross [Lodgify](https://github.com/lodgify)'s projects.

## Installation

Add `@lodgify/eslint-config` to your dev dependencies.

```
npm install --save-dev @lodgify/eslint-config
```

```
yarn add --dev @lodgify/eslint-config
```

Use it in your `.eslintrc` file.

```
{
  "extends": ["@lodgify"]
}
```

### Prettier

If you use the Prettier CLI directly, or if you need to integrate it with some fancy text editor, you might need to add a Prettier config file to your root directory.

You can use this `prettier.config.js` file for that.

```
module.exports = require('@lodgify/eslint-config/prettier.config.js');
```
npm package: @lodgify/fetch-helpers
Description: Simple helpers for the fetch api.
Author: Lodgify
Latest version: 1.2.2

# Fetch helpers

Simple helpers for fetch.

## Install

`$ npm install @lodgify/fetch-helpers`

## Usage
```js
import { postJSON } from '@lodgify/fetch-helpers';

const url = "www.lassie.com";
const body = {
  toy: "stick",
};
const customHeaders = {
  redirect: "follow",
};

postJSON(url, body, customHeaders);
```

## Contributing

See [contributing](https://github.com/lodgify/fetch-helpers/blob/master/docs/CONTRIBUTING.md).
npm package: @lodgify/fetch-related-utils
Description: Simple helpers for the fetch api.
Author: Lodgify
Latest version: 1.1.1
Deprecated: WARNING: This project has been renamed to @lodgify/fetch-helpers. Install using npm i @lodgify/fetch-helpers

# Fetch helpers

Simple helpers for fetch.

## Install

`$ npm install @lodgify/fetch-helpers`

## Usage
```js
import { postJSON } from '@lodgify/fetch-helpers';

const url = "www.lassie.com";
const body = {
  toy: "stick",
};
const customHeaders = {
  redirect: "follow",
};

postJSON(url, body, customHeaders);
```

## Contributing

See [contributing](https://github.com/lodgify/fetch-related-utils/blob/master/docs/CONTRIBUTING.md).
npm package: @lodgify/get-query-string
Description: A simple helper for getting a string from a query.
Author: Lodgify
Latest version: 1.1.3

# Get an http query string from a parameters object

A simple helper to get a query string from an object.

## Install

`$ npm install @lodgify/get-query-string`

## Usage
```js
import { getQueryString } from '@lodgify/get-query-string';

const parameters = {
      test: 1,
      hello: 'hello',
      dontIncludeEmptyStrings: '',
      dontIncludeUndefined: undefined,
      include0: 0,
      includeFalse: false,
    }

getQueryString(parameters);
```

## Output

`?test=1&hello=hello&include0=0&includeFalse=false`

## Contributing

See [contributing](https://github.com/lodgify/get-query-string/blob/master/docs/CONTRIBUTING.md).
npm package: @lodgify/identity-server-client
Description: A package to make interacting with the identity server quick and easy!
Author: Lodgify
Latest version: 1.2.3

# Identity server client

A client for interacting with the Lodgify's identity server quickly and easily!

## Install

`$ npm install @lodgify/identity-server-client`

## Usage
```js
import { postLogin } from '@lodgify/identity-server-client';

const websiteId = 123456;

postLogin(websiteId, {
  email: "bruce@wayneenterprises.com",
  password: "IAmBatman",
  websiteId
});
```

### Note!
`identity-server-client` relies on the `IDENTITY_SERVER_HOST` environment variable to be set if you want to hit a different development environment (staging or integration). Without it the domain will the live environment's.

The server host should be set at the following location `global.process.env.IDENTITY_SERVER_HOST`.

## Contributing

See [contributing](https://github.com/lodgify/identity-server-client/blob/master/docs/CONTRIBUTING.md).
npm package: @loewen-digital/frontend-scaffold
Description: A scaffold/generator to streamline setting up new frontend projects with config files, formatters and linters.
Author: Eddy Löwen
Latest version: 0.3.1

# frontend-scaffold

A scaffold/generator to streamline setting up new frontend projects with config files, formatters and linters.

## Included tools

-   editorconfig
-   prettier
-   eslint
-   stylelint
-   husky
-   lint-staged

## Getting started

Run the following commands:

```
npx @loewen-digital/frontend-scaffold
npm install
```

## Contributing & Development

For contributions and development see [contributing docs](.github/CONTRIBUTING.md)

## License

`@loewen-digital/frontend-scaffold` is open-sourced software licensed under the MIT [license](LICENSE).