@meshstream/p2p-web 1.0.0 → 1.0.2

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/dist/player.d.ts CHANGED
@@ -9,9 +9,9 @@ import { type MeshStreamServiceWorkerP2pDiagnostics } from "./service-worker-p2p
9
9
  import { type MeshStreamQoeSnapshot } from "./qoe.js";
10
10
  export type MeshStreamPlaybackMode = "p2p-hls" | "sw-hls-p2p" | "sw-hls-cdn" | "cdn-hls" | "native-hls-cdn" | "sw-direct-p2p" | "sw-direct-cdn" | "cdn-direct" | "unsupported";
11
11
  export type MeshStreamTransportPreference = "auto" | "mse" | "service-worker" | "cdn";
12
- export type MeshStreamP2pFallbackReason = "CAPABILITY_UNSUPPORTED" | "P2P_DISABLED" | "SDK_CONFIG_UNAVAILABLE" | "KEY_P2P_DISABLED" | "QUOTA_EXHAUSTED" | "QUOTA_DISABLED" | "TRACKER_UNAVAILABLE" | "P2P_INITIALIZATION_FAILED";
12
+ export type MeshStreamP2pFallbackReason = "CAPABILITY_UNSUPPORTED" | "P2P_DISABLED" | "SDK_CONFIG_PENDING" | "SDK_CONFIG_UNAVAILABLE" | "KEY_P2P_DISABLED" | "QUOTA_EXHAUSTED" | "QUOTA_DISABLED" | "TRACKER_UNAVAILABLE" | "P2P_INITIALIZATION_FAILED";
13
13
  export declare function toP2pUnavailableReason(fallbackReason: MeshStreamP2pFallbackReason | undefined): P2pUnavailableReason | undefined;
14
- export declare function sdkConfigFallbackReason(config: SdkConfigResponse | undefined): MeshStreamP2pFallbackReason;
14
+ export declare function sdkConfigFallbackReason(config: SdkConfigResponse | undefined, pending?: boolean): MeshStreamP2pFallbackReason;
15
15
  export interface MeshStreamServiceWorkerTransportOptions extends Omit<MeshStreamServiceWorkerRegistrationOptions, "registration"> {
16
16
  autoRegister?: boolean;
17
17
  p2pTimeoutMs?: number;
@@ -120,6 +120,8 @@ export declare class MeshStreamHlsPlayer {
120
120
  private mode;
121
121
  private p2pEnabledOverride?;
122
122
  private readonly eventListeners;
123
+ /** Emits zero/CDN counters when bootstrap or P2P setup falls back to CDN. */
124
+ private fallbackStatsTimer?;
123
125
  private playbackState;
124
126
  private readonly lifecycle;
125
127
  private startPromise?;
@@ -140,6 +142,8 @@ export declare class MeshStreamHlsPlayer {
140
142
  private bindEventListeners;
141
143
  private bindServiceWorkerEventListeners;
142
144
  private completeFallbackStart;
145
+ private startFallbackStatsNotifications;
146
+ private stopFallbackStatsNotifications;
143
147
  private removeEventListener;
144
148
  private setPlaybackState;
145
149
  private resolveQoePlaybackState;
package/dist/report.d.ts CHANGED
@@ -132,6 +132,8 @@ export interface P2pReportPayload {
132
132
  export declare const DEFAULT_REPORT_INTERVAL_MS = 30000;
133
133
  export declare const MIN_REPORT_INTERVAL_MS = 20000;
134
134
  export declare function normalizeReportIntervalMs(value: number | undefined): number;
135
+ /** Delay the first periodic report so a synchronized fleet does not burst. */
136
+ export declare function initialReportDelayMs(intervalMs: number): number;
135
137
  export interface PostP2pReportOptions {
136
138
  fetcher?: typeof fetch;
137
139
  authorizationHeader?: string;
@@ -135,6 +135,8 @@ export declare class MeshStreamRxPlayer {
135
135
  private mode;
136
136
  private p2pEnabledOverride?;
137
137
  private readonly eventListeners;
138
+ /** Emits zero/CDN counters when RxPlayer runs without a P2P client. */
139
+ private fallbackStatsTimer?;
138
140
  private playbackState;
139
141
  private readonly lifecycle;
140
142
  private startPromise?;
@@ -157,6 +159,8 @@ export declare class MeshStreamRxPlayer {
157
159
  private createOriginSegmentLoader;
158
160
  private completeFallbackStart;
159
161
  private bindEventListeners;
162
+ private startFallbackStatsNotifications;
163
+ private stopFallbackStatsNotifications;
160
164
  private removeEventListener;
161
165
  private setPlaybackState;
162
166
  private resolveQoePlaybackState;
package/dist/version.d.ts CHANGED
@@ -1,2 +1,4 @@
1
1
  /** SDK release identifier attached to all Web usage reports. */
2
- export declare const MESHSTREAM_WEB_SDK_VERSION = "1.0.0";
2
+ export declare const MESHSTREAM_WEB_SDK_VERSION = "1.0.2";
3
+ /** Returns the version of the Web MeshStream SDK loaded by this page. */
4
+ export declare function getSdkVersion(): string;
package/package.json CHANGED
@@ -1,53 +1,57 @@
1
- {
2
- "name": "@meshstream/p2p-web",
3
- "version": "1.0.0",
4
- "type": "module",
5
- "main": "./dist/index.js",
6
- "types": "./dist/index.d.ts",
7
- "exports": {
8
- ".": {
9
- "types": "./dist/index.d.ts",
10
- "import": "./dist/index.js"
11
- },
12
- "./adapters": {
13
- "types": "./dist/adapters.d.ts",
14
- "import": "./dist/adapters.js"
15
- },
16
- "./advanced": {
17
- "types": "./dist/advanced.d.ts",
18
- "import": "./dist/advanced.js"
19
- },
20
- "./service-worker": {
21
- "types": "./dist/service-worker.d.ts",
22
- "import": "./dist/service-worker.js"
23
- }
24
- },
25
- "files": [
26
- "dist/*.d.ts",
27
- "dist/**/*.d.ts",
28
- "dist/index.js",
29
- "dist/adapters.js",
30
- "dist/advanced.js",
31
- "dist/service-worker.js",
32
- "dist/meshstream-sw.js",
33
- "src/vendor/MESHSTREAM_CORE_LICENSE.txt"
34
- ],
35
- "scripts": {
36
- "build": "tsc -p tsconfig.json",
37
- "build:release": "npm run build && node ../../scripts/bundle-web-sdk.mjs && node ../../scripts/minify-web-sdk.mjs dist",
38
- "test": "npm run build && node --test test/*.test.mjs",
39
- "prepack": "npm test && npm run build:release",
40
- "pack:dry-run": "npm pack --dry-run"
41
- },
42
- "devDependencies": {
43
- "dashjs": "^5.2.1",
44
- "esbuild": "^0.28.2",
45
- "hls.js": "^1.6.13",
46
- "p2p-media-loader-core": "file:src/vendor/p2p-media-loader-core-3.0.1.tgz",
47
- "p2p-media-loader-hlsjs": "3.0.1",
48
- "p2p-media-loader-shaka": "3.0.1",
49
- "shaka-player": "^4.16.47",
50
- "terser": "^5.51.2",
51
- "typescript": "^5.9.0"
52
- }
53
- }
1
+ {
2
+ "name": "@meshstream/p2p-web",
3
+ "version": "1.0.2",
4
+ "repository": {
5
+ "type": "git",
6
+ "url": "https://github.com/Mesh-Stream/meshstream-p2p-web-sdk"
7
+ },
8
+ "type": "module",
9
+ "main": "./dist/index.js",
10
+ "types": "./dist/index.d.ts",
11
+ "exports": {
12
+ ".": {
13
+ "types": "./dist/index.d.ts",
14
+ "import": "./dist/index.js"
15
+ },
16
+ "./adapters": {
17
+ "types": "./dist/adapters.d.ts",
18
+ "import": "./dist/adapters.js"
19
+ },
20
+ "./advanced": {
21
+ "types": "./dist/advanced.d.ts",
22
+ "import": "./dist/advanced.js"
23
+ },
24
+ "./service-worker": {
25
+ "types": "./dist/service-worker.d.ts",
26
+ "import": "./dist/service-worker.js"
27
+ }
28
+ },
29
+ "files": [
30
+ "dist/*.d.ts",
31
+ "dist/**/*.d.ts",
32
+ "dist/index.js",
33
+ "dist/adapters.js",
34
+ "dist/advanced.js",
35
+ "dist/service-worker.js",
36
+ "dist/meshstream-sw.js",
37
+ "src/vendor/MESHSTREAM_CORE_LICENSE.txt"
38
+ ],
39
+ "scripts": {
40
+ "build": "tsc -p tsconfig.json",
41
+ "build:release": "npm run build && node ../../scripts/bundle-web-sdk.mjs && node ../../scripts/minify-web-sdk.mjs dist",
42
+ "test": "npm run build && node --test test/*.test.mjs",
43
+ "prepack": "npm test && npm run build:release",
44
+ "pack:dry-run": "npm pack --dry-run"
45
+ },
46
+ "devDependencies": {
47
+ "dashjs": "^5.2.1",
48
+ "esbuild": "^0.28.2",
49
+ "hls.js": "^1.6.13",
50
+ "p2p-media-loader-core": "file:src/vendor/p2p-media-loader-core-3.0.1.tgz",
51
+ "p2p-media-loader-hlsjs": "3.0.1",
52
+ "p2p-media-loader-shaka": "3.0.1",
53
+ "shaka-player": "^4.16.47",
54
+ "terser": "^5.51.2",
55
+ "typescript": "^5.9.0"
56
+ }
57
+ }