reactor-effect-client 0.2.0 → 0.3.0
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/README.md +66 -6
- package/dist/FetchHttp.js +1 -1
- package/dist/FetchHttp.js.map +1 -1
- package/dist/PeerFactory.d.ts +13 -2
- package/dist/PeerFactory.d.ts.map +1 -1
- package/dist/PeerFactory.js.map +1 -1
- package/dist/PeerTypes.d.ts +2 -2
- package/dist/PeerTypes.d.ts.map +1 -1
- package/dist/Sequence.d.ts +18 -14
- package/dist/Sequence.d.ts.map +1 -1
- package/dist/Sequence.js +117 -122
- package/dist/Sequence.js.map +1 -1
- package/dist/SessionTypes.d.ts +172 -15
- package/dist/SessionTypes.d.ts.map +1 -1
- package/dist/SessionTypes.js +18 -1
- package/dist/SessionTypes.js.map +1 -1
- package/dist/bytes.js +3 -3
- package/dist/bytes.js.map +1 -1
- package/dist/contract.d.ts +120 -29
- package/dist/contract.d.ts.map +1 -1
- package/dist/contract.js +105 -73
- package/dist/contract.js.map +1 -1
- package/dist/coordinator/_internal/client.d.ts +111 -17
- package/dist/coordinator/_internal/client.d.ts.map +1 -1
- package/dist/coordinator/_internal/client.js +187 -74
- package/dist/coordinator/_internal/client.js.map +1 -1
- package/dist/coordinator/_internal/recording.d.ts +33 -0
- package/dist/coordinator/_internal/recording.d.ts.map +1 -0
- package/dist/coordinator/_internal/recording.js +123 -0
- package/dist/coordinator/_internal/recording.js.map +1 -0
- package/dist/coordinator/_internal/response.d.ts.map +1 -1
- package/dist/coordinator/_internal/response.js +5 -7
- package/dist/coordinator/_internal/response.js.map +1 -1
- package/dist/coordinator/_internal/schemas.d.ts +40 -6
- package/dist/coordinator/_internal/schemas.d.ts.map +1 -1
- package/dist/coordinator/_internal/schemas.js +94 -64
- package/dist/coordinator/_internal/schemas.js.map +1 -1
- package/dist/coordinator/index.d.ts +14 -2
- package/dist/coordinator/index.d.ts.map +1 -1
- package/dist/coordinator/index.js +14 -18
- package/dist/coordinator/index.js.map +1 -1
- package/dist/correlation.d.ts +15 -0
- package/dist/correlation.d.ts.map +1 -1
- package/dist/correlation.js +26 -8
- package/dist/correlation.js.map +1 -1
- package/dist/duration.d.ts +25 -0
- package/dist/duration.d.ts.map +1 -0
- package/dist/duration.js +47 -0
- package/dist/duration.js.map +1 -0
- package/dist/errors.d.ts +1264 -49
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +698 -46
- package/dist/errors.js.map +1 -1
- package/dist/h3/_internal/client.d.ts +2 -2
- package/dist/h3/_internal/client.d.ts.map +1 -1
- package/dist/h3/_internal/client.js +280 -146
- package/dist/h3/_internal/client.js.map +1 -1
- package/dist/h3/_internal/contracts.d.ts.map +1 -1
- package/dist/h3/_internal/contracts.js +2 -2
- package/dist/h3/_internal/contracts.js.map +1 -1
- package/dist/h3/_internal/deployment.d.ts.map +1 -1
- package/dist/h3/_internal/deployment.js +5 -4
- package/dist/h3/_internal/deployment.js.map +1 -1
- package/dist/h3/_internal/evidence.js +1 -1
- package/dist/h3/_internal/evidence.js.map +1 -1
- package/dist/h3/_internal/operations.d.ts +58 -0
- package/dist/h3/_internal/operations.d.ts.map +1 -0
- package/dist/h3/_internal/operations.js +268 -0
- package/dist/h3/_internal/operations.js.map +1 -0
- package/dist/h3/_internal/references.d.ts.map +1 -1
- package/dist/h3/_internal/references.js +3 -8
- package/dist/h3/_internal/references.js.map +1 -1
- package/dist/h3/_internal/request.js +1 -1
- package/dist/h3/_internal/request.js.map +1 -1
- package/dist/h3/_internal/retained.d.ts +22 -0
- package/dist/h3/_internal/retained.d.ts.map +1 -0
- package/dist/h3/_internal/retained.js +89 -0
- package/dist/h3/_internal/retained.js.map +1 -0
- package/dist/h3/_internal/state.d.ts +15 -1
- package/dist/h3/_internal/state.d.ts.map +1 -1
- package/dist/h3/_internal/state.js +69 -29
- package/dist/h3/_internal/state.js.map +1 -1
- package/dist/h3/index.d.ts +1 -1
- package/dist/h3/index.d.ts.map +1 -1
- package/dist/h3/messages.d.ts +118 -109
- package/dist/h3/messages.d.ts.map +1 -1
- package/dist/h3/messages.js +73 -51
- package/dist/h3/messages.js.map +1 -1
- package/dist/h3/types.d.ts +109 -13
- package/dist/h3/types.d.ts.map +1 -1
- package/dist/host.d.ts +6 -6
- package/dist/host.d.ts.map +1 -1
- package/dist/host.js +4 -5
- package/dist/host.js.map +1 -1
- package/dist/index.d.ts +11 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/json.d.ts +13 -6
- package/dist/json.d.ts.map +1 -1
- package/dist/json.js +34 -14
- package/dist/json.js.map +1 -1
- package/dist/media-stream.d.ts.map +1 -1
- package/dist/media-stream.js +9 -11
- package/dist/media-stream.js.map +1 -1
- package/dist/observation.d.ts +9 -0
- package/dist/observation.d.ts.map +1 -1
- package/dist/observation.js +20 -18
- package/dist/observation.js.map +1 -1
- package/dist/orchestration/h3-source.d.ts +32 -4
- package/dist/orchestration/h3-source.d.ts.map +1 -1
- package/dist/orchestration/h3-source.js +47 -14
- package/dist/orchestration/h3-source.js.map +1 -1
- package/dist/orchestration/index.d.ts +9 -6
- package/dist/orchestration/index.d.ts.map +1 -1
- package/dist/orchestration/index.js +5 -3
- package/dist/orchestration/index.js.map +1 -1
- package/dist/orchestration/media-buffer.d.ts +12 -4
- package/dist/orchestration/media-buffer.d.ts.map +1 -1
- package/dist/orchestration/media-buffer.js +31 -11
- package/dist/orchestration/media-buffer.js.map +1 -1
- package/dist/orchestration/open-h3.d.ts +65 -0
- package/dist/orchestration/open-h3.d.ts.map +1 -0
- package/dist/orchestration/open-h3.js +65 -0
- package/dist/orchestration/open-h3.js.map +1 -0
- package/dist/orchestration/references.d.ts +5 -1
- package/dist/orchestration/references.d.ts.map +1 -1
- package/dist/orchestration/references.js +37 -34
- package/dist/orchestration/references.js.map +1 -1
- package/dist/orchestration/renewal-state.js +1 -1
- package/dist/orchestration/renewal-state.js.map +1 -1
- package/dist/orchestration/renewal.d.ts +64 -64
- package/dist/orchestration/renewal.d.ts.map +1 -1
- package/dist/orchestration/renewal.js +149 -88
- package/dist/orchestration/renewal.js.map +1 -1
- package/dist/orchestration/request.d.ts +11 -12
- package/dist/orchestration/request.d.ts.map +1 -1
- package/dist/orchestration/request.js +63 -66
- package/dist/orchestration/request.js.map +1 -1
- package/dist/orchestration/routing.d.ts.map +1 -1
- package/dist/orchestration/routing.js +17 -14
- package/dist/orchestration/routing.js.map +1 -1
- package/dist/orchestration/source-slot.d.ts +15 -5
- package/dist/orchestration/source-slot.d.ts.map +1 -1
- package/dist/orchestration/source-slot.js +40 -21
- package/dist/orchestration/source-slot.js.map +1 -1
- package/dist/orchestration/types.d.ts +594 -39
- package/dist/orchestration/types.d.ts.map +1 -1
- package/dist/orchestration/types.js +20 -0
- package/dist/orchestration/types.js.map +1 -1
- package/dist/protobuf.js +2 -2
- package/dist/protobuf.js.map +1 -1
- package/dist/session/_internal/acquire.d.ts +4 -6
- package/dist/session/_internal/acquire.d.ts.map +1 -1
- package/dist/session/_internal/acquire.js +40 -50
- package/dist/session/_internal/acquire.js.map +1 -1
- package/dist/session/_internal/cleanup.d.ts +2 -1
- package/dist/session/_internal/cleanup.d.ts.map +1 -1
- package/dist/session/_internal/cleanup.js +23 -15
- package/dist/session/_internal/cleanup.js.map +1 -1
- package/dist/session/_internal/lifecycle.d.ts +5 -0
- package/dist/session/_internal/lifecycle.d.ts.map +1 -1
- package/dist/session/_internal/lifecycle.js +16 -6
- package/dist/session/_internal/lifecycle.js.map +1 -1
- package/dist/session/_internal/remote.d.ts.map +1 -1
- package/dist/session/_internal/remote.js +16 -7
- package/dist/session/_internal/remote.js.map +1 -1
- package/dist/session/_internal/uploads.d.ts +4 -1
- package/dist/session/_internal/uploads.d.ts.map +1 -1
- package/dist/session/_internal/uploads.js +25 -27
- package/dist/session/_internal/uploads.js.map +1 -1
- package/dist/session/commands.d.ts +1 -21
- package/dist/session/commands.d.ts.map +1 -1
- package/dist/session/commands.js +1 -12
- package/dist/session/commands.js.map +1 -1
- package/dist/session/files.d.ts +10 -2
- package/dist/session/files.d.ts.map +1 -1
- package/dist/session/files.js +11 -16
- package/dist/session/files.js.map +1 -1
- package/dist/session/index.d.ts +6 -6
- package/dist/session/index.d.ts.map +1 -1
- package/dist/session/index.js.map +1 -1
- package/dist/session/media.d.ts +53 -6
- package/dist/session/media.d.ts.map +1 -1
- package/dist/session/recorder.d.ts +24 -0
- package/dist/session/recorder.d.ts.map +1 -0
- package/dist/session/recorder.js +19 -0
- package/dist/session/recorder.js.map +1 -0
- package/dist/session.d.ts +5 -4
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +213 -110
- package/dist/session.js.map +1 -1
- package/dist/simulation/_internal/source.d.ts.map +1 -1
- package/dist/simulation/_internal/source.js +57 -48
- package/dist/simulation/_internal/source.js.map +1 -1
- package/dist/simulation/index.d.ts +4 -5
- package/dist/simulation/index.d.ts.map +1 -1
- package/dist/simulation/index.js +3 -4
- package/dist/simulation/index.js.map +1 -1
- package/dist/simulation/types.d.ts +16 -2
- package/dist/simulation/types.d.ts.map +1 -1
- package/dist/stats.d.ts +19 -0
- package/dist/stats.d.ts.map +1 -1
- package/dist/stats.js +79 -8
- package/dist/stats.js.map +1 -1
- package/package.json +5 -4
- package/notices/owned-webrtc/Effect-MIT.txt +0 -21
- package/notices/owned-webrtc/IETF.txt +0 -43
- package/notices/owned-webrtc/LICENSE +0 -21
- package/notices/owned-webrtc/UPSTREAM.md +0 -20
- package/notices/owned-webrtc/VP8-ADAPTATION.md +0 -32
- package/notices/owned-webrtc/VP8-AUTHORS.txt +0 -42
- package/notices/owned-webrtc/VP8-LICENSE.txt +0 -25
- package/notices/owned-webrtc/VP8-PATENTS.txt +0 -21
- package/notices/owned-webrtc/Werift-MIT.txt +0 -21
- package/notices/owned-webrtc/libvpx-v1.12.0-LICENSE.txt +0 -28
- package/notices/owned-webrtc/libvpx-v1.12.0-PATENTS.txt +0 -22
- package/notices/owned-webrtc/rfc3711.txt +0 -3139
- package/notices/owned-webrtc/str0m-MIT.txt +0 -7
package/dist/simulation/index.js
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
import * as Context from "effect/Context";
|
|
2
1
|
import * as Effect from "effect/Effect";
|
|
3
2
|
import * as Layer from "effect/Layer";
|
|
4
3
|
import { make as orchestrate } from "../orchestration/renewal.js";
|
|
5
|
-
import {
|
|
4
|
+
import { handleContext } from "../orchestration/types.js";
|
|
6
5
|
import { source } from "./_internal/source.js";
|
|
7
6
|
export { source } from "./_internal/source.js";
|
|
8
7
|
/** Unpaid production scheduling with the same explicit orchestration policy. */
|
|
9
8
|
export const make = (options = {}) => orchestrate({
|
|
10
|
-
open: source(options).pipe(Effect.map((value) => ({ source: value,
|
|
9
|
+
open: source(options).pipe(Effect.map((value) => ({ source: value, lifetime: "Infinity" }))),
|
|
11
10
|
});
|
|
12
|
-
export const layerSim = (options = {}) => Layer.effectContext(
|
|
11
|
+
export const layerSim = (options = {}) => Layer.effectContext(Effect.map(make(options), handleContext));
|
|
13
12
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/simulation/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/simulation/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAItC,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAG/C,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAG/C,gFAAgF;AAChF,MAAM,CAAC,MAAM,IAAI,GAAG,CAClB,OAAO,GAAe,EAAE,EACoE,EAAE,CAC9F,WAAW,CAAC;IACV,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;CAC7F,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,OAAO,GAAe,EAAE,EACgE,EAAE,CAC1F,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type * as Duration from "effect/Duration";
|
|
1
2
|
import type * as Effect from "effect/Effect";
|
|
2
3
|
import type { ModelProfile } from "../h3/profile.js";
|
|
3
4
|
import type { LocalClipRecord } from "../orchestration/types.js";
|
|
@@ -11,13 +12,26 @@ export interface SimulatedMediaSink {
|
|
|
11
12
|
readonly audio: (frame: AudioFrame) => Effect.Effect<void>;
|
|
12
13
|
}
|
|
13
14
|
export interface SimOptions {
|
|
15
|
+
/** Simulated build time per second of clip, 0.1 by default. */
|
|
14
16
|
readonly buildRatio?: number;
|
|
15
|
-
|
|
17
|
+
/**
|
|
18
|
+
* Simulated build time added to every clip's, zero by default. A bare number
|
|
19
|
+
* is milliseconds.
|
|
20
|
+
*/
|
|
21
|
+
readonly fixedBuildTime?: Duration.Input | undefined;
|
|
16
22
|
readonly profile?: ModelProfile;
|
|
17
23
|
readonly queueLimit?: number;
|
|
18
24
|
readonly playoutLimit?: number;
|
|
19
25
|
readonly timing?: "measured" | "unknown";
|
|
20
|
-
|
|
26
|
+
/**
|
|
27
|
+
* A pause between presented clips, zero by default. A bare number is
|
|
28
|
+
* milliseconds.
|
|
29
|
+
*/
|
|
30
|
+
readonly playoutGap?: Duration.Input | undefined;
|
|
31
|
+
/** @deprecated Removed in 0.3.0: use `fixedBuildTime` (a bare number is milliseconds). */
|
|
32
|
+
readonly buildFixedMs?: never;
|
|
33
|
+
/** @deprecated Removed in 0.3.0: use `playoutGap` (a bare number is milliseconds). */
|
|
34
|
+
readonly playoutGapMs?: never;
|
|
21
35
|
readonly faults?: SimulatedFaults;
|
|
22
36
|
/** Completes before Ready and may extend duration to fit locally rendered speech. */
|
|
23
37
|
readonly build?: (record: LocalClipRecord) => Effect.Effect<number, Error>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/simulation/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAElE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;IACpD,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;CACvD;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3D,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;CAC5D;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/simulation/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAElE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;IACpD,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;CACvD;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3D,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;CAC5D;AAED,MAAM,WAAW,UAAU;IACzB,+DAA+D;IAC/D,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;;;OAGG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAC;IACrD,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IACzC;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAC;IACjD,0FAA0F;IAC1F,QAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC;IAC9B,sFAAsF;IACtF,QAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC;IAClC,qFAAqF;IACrF,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3E,2FAA2F;IAC3F,QAAQ,CAAC,OAAO,CAAC,EAAE,CACjB,MAAM,EAAE,eAAe,EACvB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,kBAAkB,KACrB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAChC,uEAAuE;IACvE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;CACrE"}
|
package/dist/stats.d.ts
CHANGED
|
@@ -2,6 +2,12 @@ export interface Statistics {
|
|
|
2
2
|
/** Injected monotonic clock in milliseconds, not wall time or an RTC sample timestamp. */
|
|
3
3
|
readonly sampledAtMs: number;
|
|
4
4
|
readonly generation: bigint;
|
|
5
|
+
/**
|
|
6
|
+
* The candidate pair carrying the connection: the one a transport names as
|
|
7
|
+
* selected or else, of the pairs nominated that succeeded, the one that
|
|
8
|
+
* received the most since the previous sample. A pair stays nominated after
|
|
9
|
+
* ICE moves off it, and the native host names no selected pair.
|
|
10
|
+
*/
|
|
5
11
|
readonly pair?: {
|
|
6
12
|
readonly id: string;
|
|
7
13
|
readonly bytesSent?: bigint;
|
|
@@ -27,7 +33,20 @@ export interface Statistics {
|
|
|
27
33
|
/** Browser counters are JS numbers. Unsafe integers are flagged, never falsely converted back to full precision. */
|
|
28
34
|
export declare class StatsSampler {
|
|
29
35
|
private baseline;
|
|
36
|
+
/** Each candidate pair's received bytes at the previous sample, by `pairKey`. */
|
|
37
|
+
private received;
|
|
38
|
+
/** The pair the previous sample reported, by the same key. */
|
|
39
|
+
private chosen;
|
|
30
40
|
reset(): void;
|
|
41
|
+
/**
|
|
42
|
+
* The pair carrying the connection. A transport's `selectedCandidatePairId`
|
|
43
|
+
* names it where the host reports one, as browsers do. Otherwise it is the
|
|
44
|
+
* nominated, succeeded pair that received the most since the previous
|
|
45
|
+
* sample: ICE leaves a pair nominated after moving off it, and only the pair
|
|
46
|
+
* in use carries media and the channels. A tie keeps the pair reported
|
|
47
|
+
* before, and otherwise goes to the first.
|
|
48
|
+
*/
|
|
49
|
+
private selectedPair;
|
|
31
50
|
sample(raw: readonly unknown[], generation: bigint, atMs: number): Statistics;
|
|
32
51
|
}
|
|
33
52
|
//# sourceMappingURL=stats.d.ts.map
|
package/dist/stats.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../src/stats.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACzB,0FAA0F;IAC1F,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE;QACd,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAChC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;QACrC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;QACtC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,MAAM,CAAC;QAC3C,QAAQ,CAAC,wBAAwB,CAAC,EAAE,MAAM,CAAC;KAC5C,CAAC;IACF,QAAQ,CAAC,KAAK,CAAC,EAAE;QACf,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;QACnC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;QACvC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;KAC7B,CAAC;IACF,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;
|
|
1
|
+
{"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../src/stats.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACzB,0FAA0F;IAC1F,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE;QACd,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAChC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;QACrC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;QACtC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,MAAM,CAAC;QAC3C,QAAQ,CAAC,wBAAwB,CAAC,EAAE,MAAM,CAAC;KAC5C,CAAC;IACF,QAAQ,CAAC,KAAK,CAAC,EAAE;QACf,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;QACnC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;QACvC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;KAC7B,CAAC;IACF,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAqCD,oHAAoH;AACpH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAuB;IACvC,iFAAiF;IACjF,OAAO,CAAC,QAAQ,CAA6B;IAC7C,8DAA8D;IAC9D,OAAO,CAAC,MAAM,CAAqB;IACnC,KAAK,IAAI,IAAI,CAIZ;IACD;;;;;;;OAOG;IACH,OAAO,CAAC,YAAY;IA6CpB,MAAM,CAAC,GAAG,EAAE,SAAS,OAAO,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAiI5E;CACF"}
|
package/dist/stats.js
CHANGED
|
@@ -1,21 +1,93 @@
|
|
|
1
|
+
import * as Predicate from "effect/Predicate";
|
|
1
2
|
import { ReactorError } from "./errors.js";
|
|
2
|
-
import { isRecord } from "./json.js";
|
|
3
3
|
const number = (u) => typeof u === "number" && Number.isFinite(u) ? u : undefined;
|
|
4
4
|
const positive = (u) => {
|
|
5
5
|
const n = number(u);
|
|
6
6
|
return n !== undefined && n > 0 ? n : undefined;
|
|
7
7
|
};
|
|
8
8
|
const text = (u) => (typeof u === "string" ? u : undefined);
|
|
9
|
+
/** A byte counter as a bigint, when it is one exactly; only for choosing a pair. */
|
|
10
|
+
const bytes = (u) => typeof u === "bigint"
|
|
11
|
+
? u
|
|
12
|
+
: typeof u === "number" && Number.isSafeInteger(u) && u >= 0
|
|
13
|
+
? BigInt(u)
|
|
14
|
+
: undefined;
|
|
15
|
+
const isPair = (e) => e.type === "candidate-pair" && typeof e.id === "string";
|
|
16
|
+
/**
|
|
17
|
+
* One pair across the samples of a generation. The native host names pairs by
|
|
18
|
+
* their position in its report, which shifts when a pair is added or dropped.
|
|
19
|
+
* A pair's priority, fixed by its two candidates, and its local candidate
|
|
20
|
+
* identify it instead; where a host reports no priority, its id does.
|
|
21
|
+
*/
|
|
22
|
+
const pairKey = (generation, pair, byId) => {
|
|
23
|
+
const priority = pair.priority;
|
|
24
|
+
if (typeof priority !== "bigint" && typeof priority !== "number")
|
|
25
|
+
return `${generation}:id:${pair.id}`;
|
|
26
|
+
const local = byId.get(text(pair.localCandidateId) ?? "");
|
|
27
|
+
return `${generation}:priority:${priority}:${text(local?.candidateType) ?? ""}:${text(local?.relayProtocol) ?? ""}`;
|
|
28
|
+
};
|
|
9
29
|
/** Browser counters are JS numbers. Unsafe integers are flagged, never falsely converted back to full precision. */
|
|
10
30
|
export class StatsSampler {
|
|
11
31
|
baseline;
|
|
32
|
+
/** Each candidate pair's received bytes at the previous sample, by `pairKey`. */
|
|
33
|
+
received = new Map();
|
|
34
|
+
/** The pair the previous sample reported, by the same key. */
|
|
35
|
+
chosen;
|
|
12
36
|
reset() {
|
|
13
37
|
this.baseline = undefined;
|
|
38
|
+
this.received = new Map();
|
|
39
|
+
this.chosen = undefined;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* The pair carrying the connection. A transport's `selectedCandidatePairId`
|
|
43
|
+
* names it where the host reports one, as browsers do. Otherwise it is the
|
|
44
|
+
* nominated, succeeded pair that received the most since the previous
|
|
45
|
+
* sample: ICE leaves a pair nominated after moving off it, and only the pair
|
|
46
|
+
* in use carries media and the channels. A tie keeps the pair reported
|
|
47
|
+
* before, and otherwise goes to the first.
|
|
48
|
+
*/
|
|
49
|
+
selectedPair(entries, byId, generation) {
|
|
50
|
+
const pairs = entries.filter(isPair);
|
|
51
|
+
const key = (pair) => pairKey(generation, pair, byId);
|
|
52
|
+
const previous = this.received, before = this.chosen;
|
|
53
|
+
this.received = new Map(pairs.flatMap((pair) => {
|
|
54
|
+
const received = bytes(pair.bytesReceived);
|
|
55
|
+
return received === undefined ? [] : [[key(pair), received]];
|
|
56
|
+
}));
|
|
57
|
+
let chosen;
|
|
58
|
+
for (const transport of entries) {
|
|
59
|
+
if (transport.type !== "transport")
|
|
60
|
+
continue;
|
|
61
|
+
const named = byId.get(text(transport.selectedCandidatePairId) ?? "");
|
|
62
|
+
if (named !== undefined && isPair(named)) {
|
|
63
|
+
chosen = named;
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
let most = -1n;
|
|
68
|
+
if (chosen === undefined)
|
|
69
|
+
for (const pair of pairs) {
|
|
70
|
+
if (pair.nominated !== true || pair.state !== "succeeded")
|
|
71
|
+
continue;
|
|
72
|
+
const received = bytes(pair.bytesReceived), prior = previous.get(key(pair));
|
|
73
|
+
// A count below the last one belongs to a reset pair: it grew by all of it.
|
|
74
|
+
const growth = received === undefined
|
|
75
|
+
? 0n
|
|
76
|
+
: prior === undefined || received < prior
|
|
77
|
+
? received
|
|
78
|
+
: received - prior;
|
|
79
|
+
if (growth > most || (growth === most && key(pair) === before)) {
|
|
80
|
+
chosen = pair;
|
|
81
|
+
most = growth;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
this.chosen = chosen === undefined ? undefined : key(chosen);
|
|
85
|
+
return chosen;
|
|
14
86
|
}
|
|
15
87
|
sample(raw, generation, atMs) {
|
|
16
88
|
if (!Number.isFinite(atMs) || raw.length > 4096)
|
|
17
|
-
throw
|
|
18
|
-
const warnings = [], entries = raw.filter(
|
|
89
|
+
throw ReactorError.fromCode("Protocol", "invalid statistics sample/bound");
|
|
90
|
+
const warnings = [], entries = raw.filter(Predicate.isObject), byId = new Map(entries.flatMap((e) => (typeof e.id === "string" ? [[e.id, e]] : [])));
|
|
19
91
|
const counter = (u, field, signed = false) => {
|
|
20
92
|
if (u === undefined)
|
|
21
93
|
return undefined;
|
|
@@ -31,9 +103,9 @@ export class StatsSampler {
|
|
|
31
103
|
}
|
|
32
104
|
return n;
|
|
33
105
|
};
|
|
34
|
-
const pair =
|
|
106
|
+
const pair = this.selectedPair(entries, byId, generation);
|
|
35
107
|
let pairResult, rates;
|
|
36
|
-
if (pair !== undefined
|
|
108
|
+
if (pair !== undefined) {
|
|
37
109
|
const sent = counter(pair.bytesSent, "pair.bytesSent"), received = counter(pair.bytesReceived, "pair.bytesReceived");
|
|
38
110
|
const local = byId.get(text(pair.localCandidateId) ?? ""), remote = byId.get(text(pair.remoteCandidateId) ?? "");
|
|
39
111
|
const localType = text(local?.candidateType), remoteType = text(remote?.candidateType);
|
|
@@ -48,9 +120,8 @@ export class StatsSampler {
|
|
|
48
120
|
...(incoming === undefined ? {} : { availableIncomingBitrate: incoming }),
|
|
49
121
|
};
|
|
50
122
|
if (sent !== undefined && received !== undefined) {
|
|
51
|
-
const key =
|
|
52
|
-
if (previous
|
|
53
|
-
previous.key === key &&
|
|
123
|
+
const key = pairKey(generation, pair, byId), previous = this.baseline;
|
|
124
|
+
if (previous?.key === key &&
|
|
54
125
|
atMs >= previous.at &&
|
|
55
126
|
sent >= previous.sent &&
|
|
56
127
|
received >= previous.received) {
|
package/dist/stats.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stats.js","sourceRoot":"","sources":["../src/stats.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"stats.js","sourceRoot":"","sources":["../src/stats.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "reactor-effect-client",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Scoped Reactor sessions, H3 provider state and explicit orchestration over Effect",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -56,15 +56,16 @@
|
|
|
56
56
|
"devDependencies": {
|
|
57
57
|
"@effect/platform-bun": "4.0.0-rc.115",
|
|
58
58
|
"@effect/platform-node": "4.0.0-rc.115",
|
|
59
|
-
"@
|
|
59
|
+
"@effect/vitest": "4.0.0-rc.115",
|
|
60
60
|
"@types/node": "22.20.2",
|
|
61
61
|
"effect": "4.0.0-rc.115",
|
|
62
|
-
"reactor-effect-test-kit": "0.
|
|
62
|
+
"reactor-effect-test-kit": "0.3.0",
|
|
63
|
+
"vitest": "5.0.0"
|
|
63
64
|
},
|
|
64
65
|
"scripts": {
|
|
65
66
|
"build": "rm -rf dist && tsc -p tsconfig.build.json",
|
|
66
67
|
"typecheck": "tsc -p tsconfig.json --noEmit && tsc -p tsconfig.node.json --noEmit",
|
|
67
|
-
"test": "
|
|
68
|
+
"test": "vitest run",
|
|
68
69
|
"generate:wire": "python3 wire/generate.py",
|
|
69
70
|
"generate:check": "python3 wire/generate.py --check"
|
|
70
71
|
},
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2023 Effectful Technologies Inc
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
IETF specification/code-component notices
|
|
2
|
-
|
|
3
|
-
RFC 5769 test vectors used in tests/run.ts:
|
|
4
|
-
Copyright (c) 2010 IETF Trust and the persons identified as the document authors.
|
|
5
|
-
All rights reserved. Author: Remi Denis-Courmont.
|
|
6
|
-
Original: https://www.rfc-editor.org/rfc/rfc5769.html (sections 2.1, 2.2).
|
|
7
|
-
|
|
8
|
-
This document is subject to BCP 78 and the IETF Trust's Legal Provisions
|
|
9
|
-
Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect
|
|
10
|
-
on the date of publication. Code Components extracted from the document must
|
|
11
|
-
include the Simplified BSD License text as described in Section 4.e of the
|
|
12
|
-
Trust Legal Provisions and are provided without warranty as described in it.
|
|
13
|
-
|
|
14
|
-
Simplified BSD License
|
|
15
|
-
|
|
16
|
-
Redistribution and use in source and binary forms, with or without
|
|
17
|
-
modification, are permitted provided that the following conditions are met:
|
|
18
|
-
|
|
19
|
-
1. Redistributions of source code must retain the above copyright notice,
|
|
20
|
-
this list of conditions and the following disclaimer.
|
|
21
|
-
2. Redistributions in binary form must reproduce the above copyright notice,
|
|
22
|
-
this list of conditions and the following disclaimer in the documentation
|
|
23
|
-
and/or other materials provided with the distribution.
|
|
24
|
-
|
|
25
|
-
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
26
|
-
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
27
|
-
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
28
|
-
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
|
29
|
-
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
30
|
-
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
31
|
-
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
32
|
-
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
33
|
-
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
34
|
-
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
35
|
-
POSSIBILITY OF SUCH DAMAGE.
|
|
36
|
-
|
|
37
|
-
RFC 3711 Appendix B.3 vector values are used in tests/run.ts. The complete
|
|
38
|
-
unaltered supplied RFC, including its original 2004 notices, is retained as
|
|
39
|
-
rfc3711.txt. No rights in the RFC itself are asserted by this project.
|
|
40
|
-
|
|
41
|
-
Production protocol code is newly authored; the original specifications are
|
|
42
|
-
normative references, not a vendored protocol engine. The other RFCs used are
|
|
43
|
-
listed with section links in DESIGN.md.
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 effect-webrtc-standalone contributors
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
# Attribution and dependency boundaries
|
|
2
|
-
|
|
3
|
-
Production code under `src/` is newly authored for this task from the protocol specifications, informed by inspection of the following pinned sources. No Werift or str0m implementation is imported, bundled or invoked by that code.
|
|
4
|
-
|
|
5
|
-
| Reference | Pin | Use and obligation |
|
|
6
|
-
| --- | --- | --- |
|
|
7
|
-
| Effect | `4.0.0-rc.115`; source `4a05d4914fa2327a42bd75fe77c22c188becf3b4` | The sole production package dependency; MIT notice retained. Socket/Scope/Queue/Clock/Worker patterns studied, not vendored adapters. |
|
|
8
|
-
| Werift | `2174d88ece8ecdc6e804e9303028496833f1fb2e` | ICE/DTLS/SCTP/RTP/SRTP source research. Unmodified focused SCTP/common/SRTP reference files are used ONLY under `oracles/werift`, with MIT notice and per-source SHA-256 manifest. Not in the production tarball. |
|
|
9
|
-
| str0m | `1183e271b40a34b387a29cfad10696aae0c8dcad` | `lib.rs` / `examples/http-post.rs` input/output/deadline architecture studied. No Rust code, compiled library, or WASM adopted. Supplied MIT notice retained. |
|
|
10
|
-
| IETF | RFCs in DESIGN.md | Wire algorithms are implemented, not replaced by library calls. RFC 5769 and RFC 3711 vector notices are retained. |
|
|
11
|
-
|
|
12
|
-
The source archive includes offline development tooling: TypeScript 5.9.3, the real Effect package, official `@types/node` 25.1.0 and its `undici-types` declarations. These declarations are not runtime implementations or shims. Their original package manifests/licenses are retained. The copied Node declarations are deliberately **not** evidence of Bun functionality.
|
|
13
|
-
|
|
14
|
-
The independent oracle additionally uses Python/pyOpenSSL/cryptography/audioop and a Node child running the unmodified Werift SCTP/SRTP modules. The development copy of `debug` is 4.4.3 (available offline), rather than Werift's manifest pin 4.4.0; it affects logging and is disclosed rather than represented as a fully reproduced Werift install. Its dependency `ms` and both original licenses are retained under `oracles/werift/node_modules`. OpenSSL and Python native codecs are test tools only. None participates in the standalone package's production execution.
|
|
15
|
-
|
|
16
|
-
No entire external WebRTC stack is hidden in the artifact. Package installation files are explicitly limited by `package.json`; the production archive contains only `dist/src`, package metadata, this README/license material, and notices. Run `scripts/lint.mjs` and `scripts/clean-consumer.mjs` to inspect that distinction.
|
|
17
|
-
|
|
18
|
-
## VP8 in revision 0.0.3
|
|
19
|
-
|
|
20
|
-
See [VP8-ADAPTATION.md](VP8-ADAPTATION.md) for the focused RFC 6386 decoder algorithms and normative tables adapted into owned TypeScript, the tagged WebM prediction-clamp cross-check, and their complete retained BSD licenses/patent grants. No additional production package or engine is added.
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
# Owned VP8 adaptation and provenance
|
|
2
|
-
|
|
3
|
-
The scalar decoder in `src/vp8*.ts` is TypeScript code owned and executed by this package. It is **not a binding, whole-engine bundle, native/WASM translation or subprocess**. It reads ordinary VP8 samples, arithmetic-decodes syntax/tokens, reconstructs reference pictures and returns freshly allocated I420 planes. It never reads fixtures or expected outputs. `vp8-tables.ts` contains normative probability, tree and quantization constants, not pictures.
|
|
4
|
-
|
|
5
|
-
## RFC 6386 code components
|
|
6
|
-
|
|
7
|
-
The decoding guide and Attachment One source were supplied unchanged in `codec-reference-inputs.zip`. The source ZIP retains the entire RFC text under `references/codecs/rfc6386.txt`; see its embedded original notices. Focused algorithms/tables were ported from:
|
|
8
|
-
|
|
9
|
-
| Reference subsystem | TypeScript adaptation |
|
|
10
|
-
| --- | --- |
|
|
11
|
-
| `bool_decoder.h`, `idct_add.c` | `vp8-core.ts`: bool arithmetic decoding, inverse DCT and Walsh-Hadamard |
|
|
12
|
-
| `modemv.c`, `modemv_data.h` | `vp8-modes.ts`, `vp8-tables.ts`: mode probabilities, motion predictors, split vectors and sign bias |
|
|
13
|
-
| `tokens.c`, `dequant_data.h`, `vp8_prob_data.h` | `vp8-tokens.ts`, `vp8-tables.ts`: coefficient contexts, trees, dequantization |
|
|
14
|
-
| `predict.c` | `vp8-intra.ts`, `vp8-predict.ts`: intra prediction, subpixel motion compensation, edge extension |
|
|
15
|
-
| `dixie_loopfilter.c` | `vp8-filter.ts`: simple/normal filtering and segment/reference/mode deltas |
|
|
16
|
-
| `dixie.c` and decoding chapters | `vp8.ts`: headers, partitions, segmentation, entropy persistence, reference refresh/copies and output crop |
|
|
17
|
-
|
|
18
|
-
The original Google copyright, BSD license, patent grant and authors from Attachment One are retained as `VP8-LICENSE.txt`, `VP8-PATENTS.txt`, `VP8-AUTHORS.txt`. The adaptation replaces C pointers and storage with bounded owned typed arrays, adds bounds/work budgets and explicit invalidation/close. No upstream build system, platform abstraction, native wrapper or codec dependency is imported.
|
|
19
|
-
|
|
20
|
-
## Prediction-only motion clamping cross-check
|
|
21
|
-
|
|
22
|
-
`predictionMotion` and its call placement were checked/adapted against WebM's **libvpx v1.12.0** `vp8/common/reconinter.c`, specifically the luma/chroma unrestricted-motion-vector boundary helpers and prediction copies. Decoded MV context must not be overwritten when limiting a temporary prediction vector. The footprint uses the stated 19/18-pixel limits, followed by chroma rounding, not a blanket change to stored NEWMV values.
|
|
23
|
-
|
|
24
|
-
Source: https://github.com/webmproject/libvpx/blob/v1.12.0/vp8/common/reconinter.c
|
|
25
|
-
|
|
26
|
-
This focused helper adaptation retains `libvpx-v1.12.0-LICENSE.txt` and `libvpx-v1.12.0-PATENTS.txt`. Attribution: Copyright (c) 2010, The WebM Project authors. Contributors are credited in the upstream AUTHORS file: https://github.com/webmproject/libvpx/blob/v1.12.0/AUTHORS . These license/grant texts were transcribed from the official tagged files returned by the web reader; a container raw download failed DNS, so no byte-for-byte source-download claim is made. `references/codecs/libvpx-v1.12.0/provenance.json` retains those download failures.
|
|
27
|
-
|
|
28
|
-
## Protocol and test material
|
|
29
|
-
|
|
30
|
-
RFC 7741 is retained unchanged under `references/codecs/rfc7741.txt`; `video.ts` implements the specified VP8 payload descriptor and owned frame reconstruction. Existing protocol notices still apply. The BSD terms are shipped with both source and binary package; the package license is `MIT AND BSD-3-Clause`.
|
|
31
|
-
|
|
32
|
-
Original deterministic synthetic fixture inputs/expected outputs are **development-only**. Supplied fixtures retain their generation commands/offsets/hashes. `scripts/generate-vp8-oracles.py` creates additional mathematical sources and uses local FFmpeg/libvpx **only as independent development oracles**; neither tool nor generated YUV is reachable from the production module graph or included in the production tarball. Bundled Effect, TypeScript and oracle reference licenses remain separate. This notice is not an assertion of comprehensive patent clearance or full codec conformance.
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
Aaron Watry <awatry@gmail.com>
|
|
2
|
-
Adrian Grange <agrange@google.com>
|
|
3
|
-
Alex Converse <alex.converse@gmail.com>
|
|
4
|
-
Andoni Morales Alastruey <ylatuya@gmail.com>
|
|
5
|
-
Andres Mejia <mcitadel@gmail.com>
|
|
6
|
-
Attila Nagy <attilanagy@google.com>
|
|
7
|
-
Fabio Pedretti <fabio.ped@libero.it>
|
|
8
|
-
Frank Galligan <fgalligan@google.com>
|
|
9
|
-
Fredrik Soederquist <fs@opera.com>
|
|
10
|
-
Fritz Koenig <frkoenig@google.com>
|
|
11
|
-
Gaute Strokkenes <gaute.strokkenes@broadcom.com>
|
|
12
|
-
Giuseppe Scrivano <gscrivano@gnu.org>
|
|
13
|
-
Guillermo Ballester Valor <gbvalor@gmail.com>
|
|
14
|
-
Henrik Lundin <hlundin@google.com>
|
|
15
|
-
James Berry <jamesberry@google.com>
|
|
16
|
-
James Zern <jzern@google.com>
|
|
17
|
-
Jan Kratochvil <jan.kratochvil@redhat.com>
|
|
18
|
-
Jeff Muizelaar <jmuizelaar@mozilla.com>
|
|
19
|
-
Jim Bankoski <jimbankoski@google.com>
|
|
20
|
-
Johann Koenig <johannkoenig@google.com>
|
|
21
|
-
John Koleszar <jkoleszar@google.com>
|
|
22
|
-
Justin Clift <justin@salasaga.org>
|
|
23
|
-
Justin Lebar <justin.lebar@gmail.com>
|
|
24
|
-
Luca Barbato <lu_zero@gentoo.org>
|
|
25
|
-
Makoto Kato <makoto.kt@gmail.com>
|
|
26
|
-
Martin Ettl <ettl.martin78@googlemail.com>
|
|
27
|
-
Michael Kohler <michaelkohler@live.com>
|
|
28
|
-
Mikhal Shemer <mikhal@google.com>
|
|
29
|
-
Pascal Massimino <pascal.massimino@gmail.com>
|
|
30
|
-
Patrik Westin <patrik.westin@gmail.com>
|
|
31
|
-
Paul Wilkins <paulwilkins@google.com>
|
|
32
|
-
Pavol Rusnak <stick@gk2.sk>
|
|
33
|
-
Philip Jaegenstedt <philipj@opera.com>
|
|
34
|
-
Scott LaVarnway <slavarnway@google.com>
|
|
35
|
-
Tero Rintaluoma <teror@google.com>
|
|
36
|
-
Timothy B. Terriberry <tterribe@xiph.org>
|
|
37
|
-
Tom Finegan <tomfinegan@google.com>
|
|
38
|
-
Yaowu Xu <yaowu@google.com>
|
|
39
|
-
Yunqing Wang <yunqingwang@google.com>
|
|
40
|
-
Google Inc.
|
|
41
|
-
The Mozilla Foundation
|
|
42
|
-
The Xiph.Org Foundation
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
Copyright (c) 2010, 2011, Google Inc. All rights reserved.
|
|
2
|
-
Redistribution and use in source and binary forms, with or without
|
|
3
|
-
modification, are permitted provided that the following conditions
|
|
4
|
-
are met:
|
|
5
|
-
o Redistributions of source code must retain the above copyright
|
|
6
|
-
notice, this list of conditions and the following disclaimer.
|
|
7
|
-
o Redistributions in binary form must reproduce the above copyright
|
|
8
|
-
notice, this list of conditions and the following disclaimer in
|
|
9
|
-
the documentation and/or other materials provided with the
|
|
10
|
-
distribution.
|
|
11
|
-
o Neither the name of Google nor the names of its contributors may
|
|
12
|
-
be used to endorse or promote products derived from this software
|
|
13
|
-
without specific prior written permission.
|
|
14
|
-
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
15
|
-
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
16
|
-
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
17
|
-
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
18
|
-
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
19
|
-
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
20
|
-
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
|
21
|
-
OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
|
22
|
-
AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
23
|
-
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
|
|
24
|
-
WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
25
|
-
POSSIBILITY OF SUCH DAMAGE.
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
Additional IP Rights Grant (Patents)
|
|
2
|
-
"This implementation" means the copyrightable works distributed by
|
|
3
|
-
Google as part of the WebM Project.
|
|
4
|
-
Google hereby grants to you a perpetual, worldwide, non-exclusive,
|
|
5
|
-
no-charge, royalty-free, irrevocable (except as stated in this
|
|
6
|
-
section) patent license to make, have made, use, offer to sell, sell,
|
|
7
|
-
import, transfer, and otherwise run, modify and propagate the
|
|
8
|
-
contents of this implementation of VP8, where such license applies
|
|
9
|
-
only to those patent claims, both currently owned by Google and
|
|
10
|
-
acquired in the future, licensable by Google that are necessarily
|
|
11
|
-
infringed by this implementation of VP8. This grant does not include
|
|
12
|
-
claims that would be infringed only as a consequence of further
|
|
13
|
-
modification of this implementation. If you or your agent or
|
|
14
|
-
exclusive licensee institute or order or agree to the institution of
|
|
15
|
-
patent litigation against any entity (including a cross-claim or
|
|
16
|
-
counterclaim in a lawsuit) alleging that this implementation of VP8
|
|
17
|
-
or any code incorporated within this implementation of VP8
|
|
18
|
-
constitutes direct or contributory patent infringement, or inducement
|
|
19
|
-
of patent infringement, then any patent rights granted to you under
|
|
20
|
-
this License for this implementation of VP8 shall terminate as of the
|
|
21
|
-
date such litigation is filed.
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2020 shinyoshiaki
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
Copyright (c) 2010, The WebM Project authors. All rights reserved.
|
|
2
|
-
|
|
3
|
-
Redistribution and use in source and binary forms, with or without
|
|
4
|
-
modification, are permitted provided that the following conditions are
|
|
5
|
-
met:
|
|
6
|
-
|
|
7
|
-
* Redistributions of source code must retain the above copyright
|
|
8
|
-
notice, this list of conditions and the following disclaimer.
|
|
9
|
-
* Redistributions in binary form must reproduce the above copyright
|
|
10
|
-
notice, this list of conditions and the following disclaimer in
|
|
11
|
-
the documentation and/or other materials provided with the
|
|
12
|
-
distribution.
|
|
13
|
-
|
|
14
|
-
* Neither the name of Google, nor the WebM Project, nor the names
|
|
15
|
-
of its contributors may be used to endorse or promote products
|
|
16
|
-
derived from this software without specific prior written
|
|
17
|
-
permission.
|
|
18
|
-
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
19
|
-
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
20
|
-
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
21
|
-
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
22
|
-
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
23
|
-
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
24
|
-
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
25
|
-
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
26
|
-
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
27
|
-
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
28
|
-
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
Additional IP Rights Grant (Patents)
|
|
2
|
-
------------------------------------
|
|
3
|
-
|
|
4
|
-
"These implementations" means the copyrightable works that implement the WebM
|
|
5
|
-
codecs distributed by Google as part of the WebM Project.
|
|
6
|
-
Google hereby grants to you a perpetual, worldwide, non-exclusive, no-charge,
|
|
7
|
-
royalty-free, irrevocable (except as stated in this section) patent license to
|
|
8
|
-
make, have made, use, offer to sell, sell, import, transfer, and otherwise
|
|
9
|
-
run, modify and propagate the contents of these implementations of WebM, where
|
|
10
|
-
such license applies only to those patent claims, both currently owned by
|
|
11
|
-
Google and acquired in the future, licensable by Google that are necessarily
|
|
12
|
-
infringed by these implementations of WebM. This grant does not include claims
|
|
13
|
-
that would be infringed only as a consequence of further modification of these
|
|
14
|
-
implementations. If you or your agent or exclusive licensee institute or order
|
|
15
|
-
or agree to the institution of patent litigation or any other patent
|
|
16
|
-
enforcement activity against any entity (including a cross-claim or
|
|
17
|
-
counterclaim in a lawsuit) alleging that any of these implementations of WebM
|
|
18
|
-
or any code incorporated within any of these implementations of WebM
|
|
19
|
-
constitute direct or contributory patent infringement, or inducement of
|
|
20
|
-
patent infringement, then any patent rights granted to you under this License
|
|
21
|
-
for these implementations of WebM shall terminate as of the date such
|
|
22
|
-
litigation is filed.
|