open-index/open-npm huggingface dataset:
npm package: @fredrifouni/expo-video2
Description: A cross-platform, performant video component for React Native and Expo with Web support
Author: 650 Industries, Inc.
Latest version: 2.1.0

<p>
  <a href="https://docs.expo.dev/versions/unversioned/sdk/video/">
    <img
      src="../../.github/resources/expo-video.svg"
      alt="expo-video"
      height="64" />
  </a>
</p>

A cross-platform, performant video component for React Native and Expo with Web support

# API documentation

- [Documentation for the latest stable release](https://docs.expo.dev/versions/latest/sdk/video/)
- [Documentation for the main branch](https://docs.expo.dev/versions/unversioned/sdk/video/)

# Installation in managed Expo projects

For [managed](https://docs.expo.dev/archive/managed-vs-bare/) Expo projects, please follow the installation instructions in the [API documentation for the latest stable release](#api-documentation). If you follow the link and there is no documentation available then this library is not yet usable within managed projects &mdash; it is likely to be included in an upcoming Expo SDK release.

# Installation in bare React Native projects

For bare React Native projects, you must ensure that you have [installed and configured the `expo` package](https://docs.expo.dev/bare/installing-expo-modules/) before continuing.

### Add the package to your npm dependencies

```
npm install expo-video
```

# Contributing

Contributions are very welcome! Please refer to guidelines described in the [contributing guide](https://github.com/expo/expo#contributing).
npm package: @fredrikbergelin/vuefire-core
Description: Shared code for vue + Firebase apps used by vuefire and vuexfire
Author: Fredrik Bergelin
Latest version: 2.3.21

# Vuefire Core

> Core logic used for vuefire and vuexfire

This library is intended for internal usage. You are free to use it to create your own plugins but keep in mind that the main target is a Vue plugin

## Installation

```sh
npm i @fredrikbergelin/vuefire-core
```

## Usage

```js
import { bindCollection, bindDocument, walkSet } from '@fredrikbergelin/vuefire-core'

// create an object of operations
const ops = {
  set: (target, path, value) => walkSet(target, path, value),
  add: (array, index, data) => array.splice(index, 0, data),
  remove: (array, index) => array.splice(index, 1),
}
const vm = new Vue({
  // options
})

const resolve = data => {
  console.log('reference bound:', data)
}

const reject = err => {
  console.log('error binding reference:', err)
}

// unbind is a function that tears down all listeners
const unbindItems = bindCollection(
  {
    // vm could be just an object
    vm,
    // key set on vm
    key: 'items',
    ops,
    collection: db.collection('items'),
    // this is to enable Promise based APIs
    // callback on success
    resolve,
    // callback on error
    reject,
  },
  // default options
  {
    maxRefDepth: 2,
  }
)

const unbindItem = bindDocument(
  {
    // same options as bindCollection except for collection -> document
    document: db.collection('items').doc('0'),
  },
  options
)

unbindItems()
bindCollection({
  // bind a different collection
  key: 'items',
})
```

## License

[MIT](http://opensource.org/licenses/MIT)
npm package: @fredrikbergelin/vuexfire
Description: Firestore binding for Vuex
Author: Eduardo San Martin Morote
Latest version: 3.2.21

# Vuexfire [![Build Status](https://badgen.net/circleci/github/vuejs/vuefire)](https://circleci.com/gh/vuejs/vuefire) [![npm package](https://badgen.net/npm/v/vuexfire)](https://www.npmjs.com/package/vuexfire) [![coverage](https://badgen.net/codecov/c/github/vuejs/vuefire)](https://codecov.io/github/vuejs/vuefire)

> SSR ready Firebase binding for [Vuex](https://github.com/vuejs/vuex)

[Documentation](https://vuefire.vuejs.org/vuexfire)

## Installation

```bash
yarn add firebase vuexfire
# or
npm install firebase vuexfire
```

## Usage

Add the mutations to your root Store and make sure to define the property you
want to bind in the state first:

```js
import { vuexfireMutations } from 'vuexfire'
const store = new Vuex.Store({
  state: {
    todos: [], // Will be bound as an array
    user: null, // Will be bound as an object
  },
  mutations: {
    // your mutations
    ...vuexfireMutations,
  },
})
```

It works with modules as well, but **you should not add the mutations there**:

```js
const store = new Vuex.Store({
  modules: {
    todos: {
      state: {
        todos: [], // Will be bound as an array
        user: null, // Will be bound as an object
      },
    },
  },
})
```

In order to use VuexFire, you have to enhance actions. This action enhancer
takes the actual action and enhances it with two additional parameters in the
context, `bindFirestoreRef` and `unbindFirestoreRef`:

```js
import { firestoreAction } from 'vuexfire'

const setTodosRef = firestoreAction(
  ({ bindFirestoreRef, unbindFirestoreRef }, { ref }) => {
    // this will unbind any previously bound ref to 'todos'
    bindFirestoreRef('todos', ref)
    // you can unbind any ref easily
    unbindFirestoreRef('user')
  }
)
```

Access it as a usual piece of the state:

```js
const Component = {
  template: '<div>{{ todos }}</div>',
  computed: Vuex.mapState(['todos']),
  created() {
    this.$store.dispatch('setTodosRef', { ref: db.collection('todos') })
  },
}
```

## Browser support

VuexFire requires basic `WeakMap` support, which means that if you need to
support any of these browsers:

- IE < 11
- Safari < 7.1
- Android < 5.0

You'll have to include a polyfill. You can
use [atlassian/WeakMap](https://github.com/atlassian/WeakMap).

You can find more information about `WeakMap`
support [here](http://kangax.github.io/compat-table/es6/#test-WeakMap).

## How does it work?

VuexFire uses multiple global mutations prefixed by `vuexfire/` to call the
actual mutations to modify objects and arrays. It listens for updates to your
firebase database and commits mutations to sync your state. Thanks to the action
enhancer `firestoreAction`, it gets access to the local `state` and `commit` so
it works with modules too :+1:

## License

[MIT](http://opensource.org/licenses/MIT)