diff --git a/.docs/.editorconfig b/.docs/.editorconfig
new file mode 100644
index 0000000..85f1419
--- /dev/null
+++ b/.docs/.editorconfig
@@ -0,0 +1,7 @@
+root = true
+
+[*]
+end_of_line = lf
+insert_final_newline = true
+indent_size = 2
+indent_style = space
\ No newline at end of file
diff --git a/.docs/.eslintignore b/.docs/.eslintignore
index a1bd0c8..50d6a2f 100644
--- a/.docs/.eslintignore
+++ b/.docs/.eslintignore
@@ -1,4 +1,6 @@
dist
node_modules
.output
-.nuxt
\ No newline at end of file
+public
+# Ignore index due to prettier removing setext headers
+*.index.md
diff --git a/.docs/.eslintrc.cjs b/.docs/.eslintrc.cjs
index 38db313..814e439 100644
--- a/.docs/.eslintrc.cjs
+++ b/.docs/.eslintrc.cjs
@@ -1,8 +1,6 @@
module.exports = {
- root: true,
- extends: '@nuxt/eslint-config',
+ extends: ['next', 'plugin:prettier/recommended'],
rules: {
- 'vue/max-attributes-per-line': 'off',
- 'vue/multi-word-component-names': 'off'
- }
-}
\ No newline at end of file
+ '@next/next/no-img-element': 'off',
+ },
+};
diff --git a/.docs/.gitattributes b/.docs/.gitattributes
new file mode 100644
index 0000000..6313b56
--- /dev/null
+++ b/.docs/.gitattributes
@@ -0,0 +1 @@
+* text=auto eol=lf
diff --git a/.docs/.github/CODEOWNERS b/.docs/.github/CODEOWNERS
new file mode 100644
index 0000000..7458772
--- /dev/null
+++ b/.docs/.github/CODEOWNERS
@@ -0,0 +1 @@
+* @movie-web/project-leads
diff --git a/.docs/.github/CODE_OF_CONDUCT.md b/.docs/.github/CODE_OF_CONDUCT.md
new file mode 100644
index 0000000..c703492
--- /dev/null
+++ b/.docs/.github/CODE_OF_CONDUCT.md
@@ -0,0 +1 @@
+Please visit the [main document at primary repository](https://github.com/movie-web/movie-web/blob/dev/.github/CODE_OF_CONDUCT.md).
diff --git a/.docs/.github/CONTRIBUTING.md b/.docs/.github/CONTRIBUTING.md
new file mode 100644
index 0000000..afaa8fc
--- /dev/null
+++ b/.docs/.github/CONTRIBUTING.md
@@ -0,0 +1 @@
+Please visit the [main document at primary repository](https://github.com/movie-web/movie-web/blob/dev/.github/CONTRIBUTING.md).
diff --git a/.docs/.github/workflows/github_pages.yml b/.docs/.github/workflows/github_pages.yml
new file mode 100644
index 0000000..5ebfd06
--- /dev/null
+++ b/.docs/.github/workflows/github_pages.yml
@@ -0,0 +1,49 @@
+name: "docs-deploy"
+
+on:
+ push:
+ branches:
+ - master
+
+jobs:
+ build:
+ name: Build
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+
+ - uses: pnpm/action-setup@v2
+ with:
+ version: 8
+
+ - name: Setup Node
+ uses: actions/setup-node@v4
+ with:
+ node-version: "20"
+ cache: pnpm
+
+ - name: Install dependencies
+ run: pnpm install --frozen-lockfile
+
+ - name: Build
+ run: pnpm build
+
+ - name: Upload
+ uses: actions/upload-pages-artifact@v3
+ with:
+ path: ./out
+
+ deploy:
+ needs: build
+ permissions:
+ pages: write
+ id-token: write
+ environment:
+ name: github-pages
+ url: ${{ steps.deployment.outputs.page_url }}
+ runs-on: ubuntu-latest
+ steps:
+ - name: Deploy to GitHub Pages
+ id: deployment
+ uses: actions/deploy-pages@v4
diff --git a/.docs/.github/workflows/linting.yml b/.docs/.github/workflows/linting.yml
new file mode 100644
index 0000000..57f972a
--- /dev/null
+++ b/.docs/.github/workflows/linting.yml
@@ -0,0 +1,32 @@
+name: Linting and Testing
+
+on:
+ push:
+ branches:
+ - master
+ pull_request:
+
+jobs:
+ linting:
+ name: Run Linters
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+
+ - uses: pnpm/action-setup@v3
+ with:
+ version: 8
+
+ - name: Install Node.js
+ uses: actions/setup-node@v4
+ with:
+ node-version: 20
+ cache: 'pnpm'
+
+ - name: Install pnpm packages
+ run: pnpm install
+
+ - name: Run ESLint
+ run: pnpm run lint
diff --git a/.docs/.gitignore b/.docs/.gitignore
index 5437013..2766384 100755
--- a/.docs/.gitignore
+++ b/.docs/.gitignore
@@ -2,12 +2,11 @@ node_modules
*.iml
.idea
*.log*
-.nuxt
.vscode
.DS_Store
coverage
dist
sw.*
.env
-.output
-.nuxt
+out
+.next
diff --git a/.docs/.prettierignore b/.docs/.prettierignore
new file mode 100644
index 0000000..1d4848c
--- /dev/null
+++ b/.docs/.prettierignore
@@ -0,0 +1,3 @@
+# Ignore index due to prettier removing setext headers
+*.index.md
+.github/CODEOWNERS
diff --git a/.docs/.prettierrc b/.docs/.prettierrc
new file mode 100644
index 0000000..6e778b4
--- /dev/null
+++ b/.docs/.prettierrc
@@ -0,0 +1,4 @@
+{
+ "trailingComma": "all",
+ "singleQuote": true
+}
diff --git a/.docs/LICENSE b/.docs/LICENSE
new file mode 100644
index 0000000..2c2b7c4
--- /dev/null
+++ b/.docs/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2023 movie-web
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/.docs/app.config.ts b/.docs/app.config.ts
deleted file mode 100644
index 8e05fc4..0000000
--- a/.docs/app.config.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-export default defineAppConfig({
- docus: {
- title: '@movie-web/providers',
- description: 'For all your media scraping needs',
- socials: {
- github: 'movie-web/providers',
- },
- image: '',
- aside: {
- level: 0,
- exclude: [],
- },
- header: {
- logo: false,
- },
- },
-});
diff --git a/.docs/assets/css/main.css b/.docs/assets/css/main.css
deleted file mode 100644
index 17a99c2..0000000
--- a/.docs/assets/css/main.css
+++ /dev/null
@@ -1,3 +0,0 @@
-code > span {
- white-space: pre;
-}
diff --git a/.docs/bun.lockb b/.docs/bun.lockb
new file mode 100644
index 0000000..1300016
Binary files /dev/null and b/.docs/bun.lockb differ
diff --git a/.docs/components/Logo.module.css b/.docs/components/Logo.module.css
new file mode 100644
index 0000000..1366e5a
--- /dev/null
+++ b/.docs/components/Logo.module.css
@@ -0,0 +1,18 @@
+.logo {
+ border-radius: 5px;
+ margin-left: -0.5rem;
+ padding: 0.5rem;
+ transition: transform 100ms ease-in-out, background-color 100ms ease-in-out;
+}
+
+.logo > img {
+ height: 1.5rem;
+}
+
+.logo:hover {
+ background-color: rgba(var(--colors-bgLightest));
+}
+
+.logo:active {
+ transform: scale(1.05);
+}
diff --git a/.docs/components/Logo.tsx b/.docs/components/Logo.tsx
new file mode 100644
index 0000000..18c61d8
--- /dev/null
+++ b/.docs/components/Logo.tsx
@@ -0,0 +1,11 @@
+import Link from 'next/link';
+import classes from './Logo.module.css';
+import logoUrl from '../public/icon-light.png';
+
+export function Logo() {
+ return (
+
+
+
+ );
+}
diff --git a/.docs/content/0.index.md b/.docs/content/0.index.md
deleted file mode 100644
index 29d9522..0000000
--- a/.docs/content/0.index.md
+++ /dev/null
@@ -1,51 +0,0 @@
----
-title: "@movie-web/providers | For all your media scraping needs"
-navigation: false
-layout: page
----
-
-::block-hero
----
-cta:
- - Get Started
- - /get-started/introduction
-secondary:
- - Open on GitHub →
- - https://github.com/movie-web/providers
-snippet: npm i @movie-web/providers
----
-
-#title
-@movie-web/providers
-
-#description
-Easily scrape all sorts of media sites for content
-::
-
-::card-grid
-#title
-What's included
-
-#root
-:ellipsis
-
-#default
- ::card{icon="vscode-icons:file-type-light-json"}
- #title
- Scrape popular streaming websites.
- #description
- Don't settle for just one media site for you content, use everything that's available.
- ::
- ::card{icon="codicon:source-control"}
- #title
- Multi-platform.
- #description
- Scrape from browser or server, whichever you prefer.
- ::
- ::card{icon="logos:typescript-icon-round"}
- #title
- Easy to use.
- #description
- Get started with scraping your favourite media sites with just 5 lines of code. Fully typed of course.
- ::
-::
diff --git a/.docs/content/1.get-started/3.examples.md b/.docs/content/1.get-started/3.examples.md
deleted file mode 100644
index a2a90db..0000000
--- a/.docs/content/1.get-started/3.examples.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# Examples
-
-::alert{type="warning"}
-There are no examples yet, stay tuned!
-::
diff --git a/.docs/content/1.get-started/_dir.yml b/.docs/content/1.get-started/_dir.yml
deleted file mode 100644
index d43345e..0000000
--- a/.docs/content/1.get-started/_dir.yml
+++ /dev/null
@@ -1,2 +0,0 @@
-icon: ph:shooting-star-fill
-navigation.redirect: /get-started/introduction
diff --git a/.docs/content/2.essentials/_dir.yml b/.docs/content/2.essentials/_dir.yml
deleted file mode 100644
index a2dbf9c..0000000
--- a/.docs/content/2.essentials/_dir.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-icon: ph:info-fill
-navigation.redirect: /essentials/usage
-navigation.title: "Get started"
diff --git a/.docs/content/3.in-depth/_dir.yml b/.docs/content/3.in-depth/_dir.yml
deleted file mode 100644
index 03f39fc..0000000
--- a/.docs/content/3.in-depth/_dir.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-icon: ph:atom-fill
-navigation.redirect: /in-depth/sources-and-embeds
-navigation.title: "In-depth"
diff --git a/.docs/content/4.extra-topics/_dir.yml b/.docs/content/4.extra-topics/_dir.yml
deleted file mode 100644
index 87faebd..0000000
--- a/.docs/content/4.extra-topics/_dir.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-icon: ph:aperture-fill
-navigation.redirect: /extra-topics/development
-navigation.title: "Extra topics"
diff --git a/.docs/next-env.d.ts b/.docs/next-env.d.ts
new file mode 100644
index 0000000..4f11a03
--- /dev/null
+++ b/.docs/next-env.d.ts
@@ -0,0 +1,5 @@
+///
+///
+
+// NOTE: This file should not be edited
+// see https://nextjs.org/docs/basic-features/typescript for more information.
diff --git a/.docs/next.config.mjs b/.docs/next.config.mjs
new file mode 100644
index 0000000..5e40ee1
--- /dev/null
+++ b/.docs/next.config.mjs
@@ -0,0 +1,10 @@
+import { guider } from '@neato/guider';
+
+const withGuider = guider({
+ themeConfig: './theme.config.tsx',
+});
+
+export default withGuider({
+ output: 'export',
+ basePath: '/providers',
+});
diff --git a/.docs/nuxt.config.ts b/.docs/nuxt.config.ts
deleted file mode 100755
index 9fa8296..0000000
--- a/.docs/nuxt.config.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-export default defineNuxtConfig({
- // https://github.com/nuxt-themes/docus
- extends: '@nuxt-themes/docus',
-
- css: [
- '@/assets/css/main.css',
- ],
-
- build: {
- transpile: [
- "chalk"
- ]
- },
-
- modules: [
- // https://github.com/nuxt-modules/plausible
- '@nuxtjs/plausible',
- // https://github.com/nuxt/devtools
- '@nuxt/devtools'
- ]
-})
diff --git a/.docs/package.json b/.docs/package.json
index cf9261d..9f5d4a9 100644
--- a/.docs/package.json
+++ b/.docs/package.json
@@ -1,22 +1,28 @@
{
"name": "providers-docs",
- "version": "0.1.0",
+ "version": "0.2.0",
"private": true,
"scripts": {
- "dev": "nuxi dev",
- "build": "nuxi build",
- "generate": "nuxi generate",
- "preview": "nuxi preview",
- "lint": "eslint .",
- "preinstall": "npx -y only-allow pnpm"
+ "dev": "next dev",
+ "build": "next build",
+ "start": "next start",
+ "lint": "next lint",
+ "lint:fix": "next lint --fix"
},
"devDependencies": {
- "@nuxt-themes/docus": "^1.13.1",
- "@nuxt/devtools": "^1.0.1",
- "@nuxt/eslint-config": "^0.1.1",
- "@nuxtjs/plausible": "^0.2.1",
- "@types/node": "^20.4.0",
- "eslint": "^8.44.0",
- "nuxt": "^3.6.2"
+ "@types/react": "18.2.73",
+ "eslint": "^8.56.0",
+ "eslint-config-next": "^14.1.4",
+ "eslint-config-prettier": "^9.1.0",
+ "eslint-plugin-prettier": "^5.1.2",
+ "prettier": "^3.1.1",
+ "typescript": "5.4.3"
+ },
+ "dependencies": {
+ "@neato/guider": "^0.1.5",
+ "next": "^14.1.4",
+ "next-seo": "^6.5.0",
+ "react": "^18.2.0",
+ "react-dom": "^18.2.0"
}
}
diff --git a/.docs/pages/404.tsx b/.docs/pages/404.tsx
new file mode 100644
index 0000000..66983a7
--- /dev/null
+++ b/.docs/pages/404.tsx
@@ -0,0 +1,3 @@
+import { createNotFoundPage } from '@neato/guider/client';
+
+export default createNotFoundPage();
diff --git a/.docs/pages/_app.tsx b/.docs/pages/_app.tsx
new file mode 100644
index 0000000..b77d1e9
--- /dev/null
+++ b/.docs/pages/_app.tsx
@@ -0,0 +1,4 @@
+import '@neato/guider/style.css';
+import { createGuiderApp } from '@neato/guider/client';
+
+export default createGuiderApp();
diff --git a/.docs/content/5.api-reference/1.ProviderControlsRunAll.md b/.docs/pages/api-reference/ProviderControlsRunAll.md
similarity index 93%
rename from .docs/content/5.api-reference/1.ProviderControlsRunAll.md
rename to .docs/pages/api-reference/ProviderControlsRunAll.md
index 5270b64..851558b 100644
--- a/.docs/content/5.api-reference/1.ProviderControlsRunAll.md
+++ b/.docs/pages/api-reference/ProviderControlsRunAll.md
@@ -6,8 +6,10 @@ You can attach events if you need to know what is going on while it is processin
## Example
```ts
+import { ScrapeMedia, targets } from '@movie-web/providers';
+
// media from TMDB
-const media = {
+const media : ScrapeMedia = {
type: 'movie',
title: 'Hamilton',
releaseYear: 2020,
diff --git a/.docs/content/5.api-reference/6.ProviderControlsgetMetadata.md b/.docs/pages/api-reference/ProviderControlsgetMetadata.md
similarity index 100%
rename from .docs/content/5.api-reference/6.ProviderControlsgetMetadata.md
rename to .docs/pages/api-reference/ProviderControlsgetMetadata.md
diff --git a/.docs/content/5.api-reference/5.ProviderControlslistEmbeds.md b/.docs/pages/api-reference/ProviderControlslistEmbeds.md
similarity index 100%
rename from .docs/content/5.api-reference/5.ProviderControlslistEmbeds.md
rename to .docs/pages/api-reference/ProviderControlslistEmbeds.md
diff --git a/.docs/content/5.api-reference/4.ProviderControlslistSources.md b/.docs/pages/api-reference/ProviderControlslistSources.md
similarity index 100%
rename from .docs/content/5.api-reference/4.ProviderControlslistSources.md
rename to .docs/pages/api-reference/ProviderControlslistSources.md
diff --git a/.docs/content/5.api-reference/3.ProviderControlsrunEmbedScraper.md b/.docs/pages/api-reference/ProviderControlsrunEmbedScraper.md
similarity index 100%
rename from .docs/content/5.api-reference/3.ProviderControlsrunEmbedScraper.md
rename to .docs/pages/api-reference/ProviderControlsrunEmbedScraper.md
diff --git a/.docs/content/5.api-reference/2.ProviderControlsrunSourceScraper.md b/.docs/pages/api-reference/ProviderControlsrunSourceScraper.md
similarity index 91%
rename from .docs/content/5.api-reference/2.ProviderControlsrunSourceScraper.md
rename to .docs/pages/api-reference/ProviderControlsrunSourceScraper.md
index e99396b..695f797 100644
--- a/.docs/content/5.api-reference/2.ProviderControlsrunSourceScraper.md
+++ b/.docs/pages/api-reference/ProviderControlsrunSourceScraper.md
@@ -5,10 +5,10 @@ Run a specific source scraper and get its emitted streams.
## Example
```ts
-import { SourcererOutput, NotFoundError } from '@movie-web/providers';
+import { ScrapeMedia , SourcererOutput, NotFoundError } from '@movie-web/providers';
// media from TMDB
-const media = {
+const media : ScrapeMedia = {
type: 'movie',
title: 'Hamilton',
releaseYear: 2020,
diff --git a/.docs/content/5.api-reference/_dir.yml b/.docs/pages/api-reference/_dir.yml
similarity index 100%
rename from .docs/content/5.api-reference/_dir.yml
rename to .docs/pages/api-reference/_dir.yml
diff --git a/.docs/pages/api-reference/index.tsx b/.docs/pages/api-reference/index.tsx
new file mode 100644
index 0000000..4b74947
--- /dev/null
+++ b/.docs/pages/api-reference/index.tsx
@@ -0,0 +1,3 @@
+import { createRedirect } from '@neato/guider/client';
+
+export default createRedirect({ to: '/api-reference/makeProviders' });
diff --git a/.docs/content/5.api-reference/0.makeProviders.md b/.docs/pages/api-reference/makeProviders.md
similarity index 100%
rename from .docs/content/5.api-reference/0.makeProviders.md
rename to .docs/pages/api-reference/makeProviders.md
diff --git a/.docs/content/5.api-reference/8.makeSimpleProxyFetcher.md b/.docs/pages/api-reference/makeSimpleProxyFetcher.md
similarity index 100%
rename from .docs/content/5.api-reference/8.makeSimpleProxyFetcher.md
rename to .docs/pages/api-reference/makeSimpleProxyFetcher.md
diff --git a/.docs/content/5.api-reference/7.makeStandardFetcher.md b/.docs/pages/api-reference/makeStandardFetcher.md
similarity index 100%
rename from .docs/content/5.api-reference/7.makeStandardFetcher.md
rename to .docs/pages/api-reference/makeStandardFetcher.md
diff --git a/.docs/content/2.essentials/3.customize-providers.md b/.docs/pages/essentials/customize-providers.mdx
similarity index 99%
rename from .docs/content/2.essentials/3.customize-providers.md
rename to .docs/pages/essentials/customize-providers.mdx
index ecb20c4..f58bc78 100644
--- a/.docs/content/2.essentials/3.customize-providers.md
+++ b/.docs/pages/essentials/customize-providers.mdx
@@ -71,4 +71,4 @@ const providers = buildProviders()
}
})
.build();
-```
+```
\ No newline at end of file
diff --git a/.docs/content/2.essentials/2.fetchers.md b/.docs/pages/essentials/fetchers.mdx
similarity index 99%
rename from .docs/content/2.essentials/2.fetchers.md
rename to .docs/pages/essentials/fetchers.mdx
index 5f12097..4194fd7 100644
--- a/.docs/content/2.essentials/2.fetchers.md
+++ b/.docs/pages/essentials/fetchers.mdx
@@ -71,4 +71,4 @@ const myFetcher: Fetcher = (url, ops) => {
statusCode: 200,
};
}
-```
+```
\ No newline at end of file
diff --git a/.docs/pages/essentials/index.tsx b/.docs/pages/essentials/index.tsx
new file mode 100644
index 0000000..4e5182d
--- /dev/null
+++ b/.docs/pages/essentials/index.tsx
@@ -0,0 +1,3 @@
+import { createRedirect } from '@neato/guider/client';
+
+export default createRedirect({ to: '/essentials/usage-on-x' });
diff --git a/.docs/content/2.essentials/1.targets.md b/.docs/pages/essentials/targets.mdx
similarity index 70%
rename from .docs/content/2.essentials/1.targets.md
rename to .docs/pages/essentials/targets.mdx
index 08f3c2e..2a3f1ba 100644
--- a/.docs/content/2.essentials/1.targets.md
+++ b/.docs/pages/essentials/targets.mdx
@@ -2,13 +2,13 @@
When creating provider controls, you will immediately be required to choose a target.
-::alert{type="warning"}
+
A target is the device on which the stream will be played.
-**Where the scraping is run has nothing to do with the target**, only where the stream is finally played in the end is significant in choosing a target.
-::
+**Where the scraping is being run has nothing to do with the target**, only where the stream is finally played in the end is significant in choosing a target.
+
#### Possible targets
- **`targets.BROWSER`** Stream will be played in a browser with CORS
- **`targets.BROWSER_EXTENSION`** Stream will be played in a browser using the movie-web extension (WIP)
- **`targets.NATIVE`** Stream will be played on a native video player
-- **`targets.ANY`** No restrictions for selecting streams, will just give all of them
+- **`targets.ANY`** No restrictions for selecting streams, will just give all of them
\ No newline at end of file
diff --git a/.docs/content/2.essentials/0.usage-on-x.md b/.docs/pages/essentials/usage-on-x.mdx
similarity index 61%
rename from .docs/content/2.essentials/0.usage-on-x.md
rename to .docs/pages/essentials/usage-on-x.mdx
index da53dc1..3ea021d 100644
--- a/.docs/content/2.essentials/0.usage-on-x.md
+++ b/.docs/pages/essentials/usage-on-x.mdx
@@ -24,7 +24,7 @@ const providers = makeProviders({
## Browser client-side
Using the provider package client-side requires a hosted version of simple-proxy.
-Read more [about proxy fetchers](./2.fetchers.md#using-fetchers-on-the-browser).
+Read more [about proxy fetchers](/essentials/fetchers#using-fetchers-on-the-browser).
```ts
import { makeProviders, makeStandardFetcher, targets } from '@movie-web/providers';
@@ -41,27 +41,32 @@ const providers = makeProviders({
## React native
To use the library in a react native app, you would also need a couple of polyfills to polyfill crypto and base64.
-1. First install the polyfills:
-```bash
-npm install @react-native-anywhere/polyfill-base64 react-native-quick-crypto
-```
+
+
+ ### First install the polyfills:
+ ```sh npm2yarn
+ npm install @react-native-anywhere/polyfill-base64 react-native-quick-crypto
+ ```
+
+
+ ### Add the polyfills to your app:
+ ```ts
+ // Import in your entry file
+ import '@react-native-anywhere/polyfill-base64';
+ ```
-2. Add the polyfills to your app:
-```ts
-// Import in your entry file
-import '@react-native-anywhere/polyfill-base64';
-```
+ And follow the [react-native-quick-crypto documentation](https://github.com/margelo/react-native-quick-crypto) to set up the crypto polyfill.
+
+
+ ### Then you can use the library like this:
+ ```ts
+ import { makeProviders, makeStandardFetcher, targets } from '@movie-web/providers';
-And follow the [react-native-quick-crypto documentation](https://github.com/margelo/react-native-quick-crypto) to set up the crypto polyfill.
-
-3. Then you can use the library like this:
-
-```ts
-import { makeProviders, makeStandardFetcher, targets } from '@movie-web/providers';
-
-const providers = makeProviders({
- fetcher: makeStandardFetcher(fetch),
- target: target.NATIVE,
- consistentIpForRequests: true,
-})
-```
+ const providers = makeProviders({
+ fetcher: makeStandardFetcher(fetch),
+ target: target.NATIVE,
+ consistentIpForRequests: true,
+ })
+ ```
+
+
\ No newline at end of file
diff --git a/.docs/content/2.essentials/4.using-streams.md b/.docs/pages/essentials/using-streams.mdx
similarity index 60%
rename from .docs/content/2.essentials/4.using-streams.md
rename to .docs/pages/essentials/using-streams.mdx
index 1cf8ff2..49988e4 100644
--- a/.docs/content/2.essentials/4.using-streams.md
+++ b/.docs/pages/essentials/using-streams.mdx
@@ -4,13 +4,13 @@ Streams can sometimes be quite picky on how they can be used. So here is a guide
## Essentials
-All streams have the same common parameters:
- - `Stream.type`: The type of stream. Either `hls` or `file`
- - `Stream.id`: The id of this stream, unique per scraper output.
- - `Stream.flags`: A list of flags that apply to this stream. Most people won't need to use it.
- - `Stream.captions`: A list of captions/subtitles for this stream.
- - `Stream.headers`: Either undefined or a key value object of headers you must set to use the stream.
- - `Stream.preferredHeaders`: Either undefined or a key value object of headers you may want to set if you want optimal playback - but not required.
+All streams have the same common parameters :
+ - `Stream.type` : The type of stream. Either `hls` or `file`
+ - `Stream.id` : The id of this stream, unique per scraper output.
+ - `Stream.flags` : A list of flags that apply to this stream. Most people won't need to use it.
+ - `Stream.captions` : A list of captions/subtitles for this stream.
+ - `Stream.headers` : Either undefined or a key value object of headers you must set to use the stream.
+ - `Stream.preferredHeaders` : Either undefined or a key value object of headers you may want to set if you want optimal playback - but not required.
Now let's delve deeper into how to watch these streams!
@@ -22,7 +22,7 @@ These streams have an extra property `Stream.playlist` which contains the m3u8 p
Here is a code sample of how to use HLS streams in web context using hls.js
```html
-
+