@oddin-gg/havik-player 1.3.0 → 1.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/docs/STABILITY.md DELETED
@@ -1,56 +0,0 @@
1
- # API stability, versioning & support
2
-
3
- ## Semantic versioning
4
-
5
- `@oddin-gg/havik-player` follows [SemVer](https://semver.org/). Releases are automated
6
- by semantic-release from Conventional Commits: `fix:` → patch, `feat:` → minor,
7
- breaking change → major. **Pin a version in production** (npm and the CDN URL).
8
-
9
- ## What is public vs internal
10
-
11
- **Stable public API** (changes only follow SemVer; the runtime export set is frozen by
12
- `test/public-api.test.ts`):
13
-
14
- - `createPlayer` + the `Player` interface (Mode A)
15
- - `resolveStream`, `fetchCatalog`, `flattenMatches`, `watchStatus`,
16
- `licenseRequestHeaders`, `getDeviceId`, `clearDeviceId`, `isLowLatencyManifest` (Mode B)
17
- - `mountEmbed` / `bootEmbed` + `EmbedHandle` / the `oddin:*` postMessage protocol (Mode C)
18
- - `PlaybackError` and all exported `type` definitions
19
-
20
- **Advanced / experimental** (public but may evolve faster): `pollToLive`, `isOddinMessage`.
21
-
22
- **Internal** — **not** part of the public API and excluded from the type declarations
23
- (`stripInternal`): the `PlaybackEngine` engine seam, `EngineEvent`, `resolvePlaybackOnce`,
24
- `resolveCredential`. Do not depend on these.
25
-
26
- ## Deprecation policy
27
-
28
- - Anything to be removed is first marked `@deprecated` (with the replacement) for **at
29
- least one minor release** before removal.
30
- - Removals and breaking signature changes ship only in a **major**, and are called out in
31
- the `CHANGELOG.md` and the GitHub release notes.
32
-
33
- ## postMessage protocol (Mode C)
34
-
35
- The host↔iframe protocol is versioned via `PROTOCOL_VERSION`, sent in `oddin:ready`.
36
- Changes are additive within a major; `mountEmbed` logs a warning if the embed page's
37
- protocol version differs from the host SDK's — pin the embed page version to the SDK
38
- version to avoid CDN auto-update skew.
39
-
40
- ## Browser support
41
-
42
- See [`.browserslistrc`](../.browserslistrc). DRM: Widevine on Chrome/Edge/Firefox/Android;
43
- FairPlay (Safari/iOS) is not yet implemented.
44
-
45
- ## Supported versions
46
-
47
- Security and bug fixes target the latest published minor.
48
-
49
- ## Export control / cryptography note
50
-
51
- This SDK performs no proprietary cryptography and bundles no DRM client/CDM. It relies
52
- solely on the browser's built-in Encrypted Media Extensions (EME), the OS/browser-provided
53
- Content Decryption Module, and (for the device id) the standard Web Crypto API. It is
54
- publicly available open-source software. For US export classification this typically falls
55
- under license-exception TSU / ECCN 5D002 NLR-eligible, but confirm the appropriate
56
- classification with your legal/compliance team for your jurisdiction.
package/embed/index.html DELETED
@@ -1,26 +0,0 @@
1
- <!doctype html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width, initial-scale=1" />
6
- <meta name="referrer" content="no-referrer" />
7
- <title>Havik Player</title>
8
- </head>
9
- <body>
10
- <!--
11
- Reference hosted iframe embed page (Mode C) — this file is a TEMPLATE, not a
12
- production page. Before deploying:
13
- 1) PIN a version + add Subresource Integrity on the script below, e.g.
14
- src=".../@oddin-gg/havik-player@X.Y.Z/dist/havik-player.global.js"
15
- integrity="sha384-…" crossorigin="anonymous"
16
- (the unpinned URL below tracks `latest` and auto-upgrades — do not ship it).
17
- 2) INJECT config server-side as window.HAVIK_EMBED_CONFIG (baseUrl, matchUrn,
18
- apiKey, parentOrigin). When injected, the URL query string is IGNORED for
19
- security; the api-key must NOT travel in the query in production.
20
- -->
21
- <script src="https://cdn.jsdelivr.net/npm/@oddin-gg/havik-player@1.3.0/dist/havik-player.global.js" integrity="sha384-F3IxzdIz3HFRw1ocTFFP1C3j1Q49vcrjE53xL+Bzf2rrS/+oSTT5LtFGbz9LxUwx" crossorigin="anonymous"></script>
22
- <script>
23
- HavikPlayer.bootEmbed();
24
- </script>
25
- </body>
26
- </html>