@vkontakte/videoplayer-shared 1.0.86-dev.fcdd1bac.0 → 1.0.86

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.
Files changed (89) hide show
  1. package/es2015.cjs +7 -0
  2. package/es2015.esm.js +7 -0
  3. package/es2018.cjs +7 -0
  4. package/es2018.esm.js +7 -0
  5. package/es2024.cjs +7 -0
  6. package/es2024.esm.js +7 -0
  7. package/esnext.cjs +7 -0
  8. package/esnext.esm.js +7 -0
  9. package/evergreen.esm.js +7 -0
  10. package/package.json +29 -6
  11. package/types/AppTracer/AppTracer.d.ts +25 -0
  12. package/types/AppTracer/constants.d.ts +1 -0
  13. package/types/AppTracer/index.d.ts +2 -0
  14. package/types/AppTracer/types.d.ts +19 -0
  15. package/types/AppTracer/utils.d.ts +5 -0
  16. package/types/InternalsExposure/index.d.ts +28 -0
  17. package/types/Logger/Logger.d.ts +10 -0
  18. package/types/Logger/index.d.ts +2 -0
  19. package/types/Logger/types.d.ts +29 -0
  20. package/types/Tracer/FakeTracer.d.ts +13 -0
  21. package/types/Tracer/RootTracer.d.ts +10 -0
  22. package/types/Tracer/Tracer.d.ts +25 -0
  23. package/types/Tracer/TracerFactory.d.ts +4 -0
  24. package/types/Tracer/index.d.ts +3 -0
  25. package/types/Tracer/types.d.ts +39 -0
  26. package/types/Tracer/utils.d.ts +3 -0
  27. package/types/devNull.d.ts +14 -0
  28. package/types/env.d.ts +1 -0
  29. package/types/index.d.ts +11 -0
  30. package/types/reactive/Observable.d.ts +14 -0
  31. package/types/reactive/ReplaySubject.d.ts +12 -0
  32. package/types/reactive/Subject.d.ts +10 -0
  33. package/types/reactive/Subscription.d.ts +6 -0
  34. package/types/reactive/SubscriptionRemovable.d.ts +5 -0
  35. package/types/reactive/ValueSubject.d.ts +10 -0
  36. package/types/reactive/combine.d.ts +7 -0
  37. package/types/reactive/fromEvent.d.ts +7 -0
  38. package/types/reactive/index.d.ts +25 -0
  39. package/types/reactive/interval.d.ts +4 -0
  40. package/types/reactive/merge.d.ts +82 -0
  41. package/types/reactive/observableFrom.d.ts +3 -0
  42. package/types/reactive/operators/buffer.d.ts +2 -0
  43. package/types/reactive/operators/debounce.d.ts +7 -0
  44. package/types/reactive/operators/filter.d.ts +6 -0
  45. package/types/reactive/operators/filterChanged.d.ts +5 -0
  46. package/types/reactive/operators/map.d.ts +5 -0
  47. package/types/reactive/operators/mapTo.d.ts +5 -0
  48. package/types/reactive/operators/once.d.ts +5 -0
  49. package/types/reactive/operators/pairwise.d.ts +3 -0
  50. package/types/reactive/operators/shareReplay.d.ts +2 -0
  51. package/types/reactive/operators/skip.d.ts +6 -0
  52. package/types/reactive/operators/tap.d.ts +2 -0
  53. package/types/reactive/operators/throttle.d.ts +6 -0
  54. package/types/reactive/timeout.d.ts +4 -0
  55. package/types/reactive/types.d.ts +47 -0
  56. package/types/translation/index.d.ts +2 -0
  57. package/types/translation/loadVKLangPack.d.ts +16 -0
  58. package/types/translation/types.d.ts +5 -0
  59. package/types/types/index.d.ts +71 -0
  60. package/types/utils/abortable.d.ts +6 -0
  61. package/types/utils/addScript.d.ts +1 -0
  62. package/types/utils/browser.d.ts +2 -0
  63. package/types/utils/clearVideoElement.d.ts +1 -0
  64. package/types/utils/cloneDeep.d.ts +1 -0
  65. package/types/utils/cloneDeepWith.d.ts +3 -0
  66. package/types/utils/config.d.ts +2 -0
  67. package/types/utils/debounceFn.d.ts +13 -0
  68. package/types/utils/detectEmbed.d.ts +8 -0
  69. package/types/utils/empty.d.ts +2 -0
  70. package/types/utils/exponentialBackoff.d.ts +9 -0
  71. package/types/utils/flattenObject.d.ts +9 -0
  72. package/types/utils/getPlayerId.d.ts +1 -0
  73. package/types/utils/getRangeAroundIndex.d.ts +7 -0
  74. package/types/utils/iframeSafeStorage.d.ts +6 -0
  75. package/types/utils/index.d.ts +34 -0
  76. package/types/utils/interpolate.d.ts +12 -0
  77. package/types/utils/isIntersecting.d.ts +6 -0
  78. package/types/utils/isValidURL.d.ts +1 -0
  79. package/types/utils/never.d.ts +2 -0
  80. package/types/utils/noop.d.ts +1 -0
  81. package/types/utils/now.d.ts +4 -0
  82. package/types/utils/nullable.d.ts +8 -0
  83. package/types/utils/observeElementSize.d.ts +4 -0
  84. package/types/utils/quality/index.d.ts +21 -0
  85. package/types/utils/quality/types.d.ts +22 -0
  86. package/types/utils/semanticTypes.d.ts +7 -0
  87. package/types/utils/suppressAbort.d.ts +2 -0
  88. package/types/utils/throttleFn.d.ts +6 -0
  89. package/types/utils/timecode.d.ts +1 -0
package/package.json CHANGED
@@ -1,32 +1,55 @@
1
1
  {
2
2
  "name": "@vkontakte/videoplayer-shared",
3
- "version": "1.0.86-dev.fcdd1bac.0",
3
+ "version": "1.0.86",
4
4
  "author": "vk.com",
5
5
  "description": "Shared code for vk.com videoplayer",
6
6
  "homepage": "https://vk.com",
7
7
  "license": "GPL-3.0",
8
+ "main": "./esnext.cjs",
8
9
  "module": "./esnext.esm.js",
9
10
  "types": "./types/index.d.ts",
10
11
  "type": "module",
11
12
  "exports": {
12
13
  ".": {
13
14
  "types": "./types/index.d.ts",
14
- "import": "./esnext.esm.js"
15
+ "import": "./esnext.esm.js",
16
+ "require": "./esnext.cjs"
15
17
  },
16
18
  "./evergreen": {
17
19
  "types": "./types/index.d.ts",
18
- "import": "./evergreen.esm.js"
20
+ "import": "./evergreen.esm.js",
21
+ "require": "./evergreen.cjs"
19
22
  },
20
23
  "./esnext": {
21
24
  "types": "./types/index.d.ts",
22
- "import": "./esnext.esm.js"
25
+ "import": "./esnext.esm.js",
26
+ "require": "./esnext.cjs"
27
+ },
28
+ "./es2024": {
29
+ "types": "./types/index.d.ts",
30
+ "import": "./es2024.esm.js",
31
+ "require": "./es2024.cjs"
32
+ },
33
+ "./es2018": {
34
+ "types": "./types/index.d.ts",
35
+ "import": "./es2018.esm.js",
36
+ "require": "./es2018.cjs"
23
37
  },
24
38
  "./es2015": {
25
39
  "types": "./types/index.d.ts",
26
- "import": "./es2015.esm.js"
27
- }
40
+ "import": "./es2015.esm.js",
41
+ "require": "./es2015.cjs"
42
+ },
43
+ "./evergreen.esm.js": "./evergeen.esm.js",
44
+ "./esnext.esm.js": "./esnext.esm.js",
45
+ "./esnext.cjs": "./esnext.cjs",
46
+ "./es2018.esm.js": "./es2018.esm.js",
47
+ "./es2018.cjs": "./es2018.cjs",
48
+ "./es2015.esm.js": "./es2015.esm.js",
49
+ "./es2015.cjs": "./es2015.cjs"
28
50
  },
29
51
  "files": [
52
+ "*.cjs",
30
53
  "*.esm.js",
31
54
  "**/*.d.ts"
32
55
  ],
@@ -0,0 +1,25 @@
1
+ import type { ISubscription } from "../reactive";
2
+ import type { ITracerError, ITracerErrorData } from "@apptracer/sdk/lite";
3
+ import type { AppTracerSdk, IAppTracerContext, IAppTracerEnvParams, IAppTracerOptions, IComponentName } from "./types";
4
+ import type { IError } from "../types";
5
+ export declare class AppTracer {
6
+ protected static readonly tracerErrorMap: Map<IComponentName, ITracerError>;
7
+ protected static appTracerModule: typeof AppTracerSdk | null;
8
+ protected static loadPromise: Promise<unknown> | null;
9
+ private readonly dynamicImportTimeout;
10
+ private readonly componentName;
11
+ private readonly subscription;
12
+ private readonly options;
13
+ private readonly envParams;
14
+ private readonly context?;
15
+ /**
16
+ * на каждый `componentName` создаётся 1 уникальный экземпляр трейсера.
17
+ * пересоздать его уже будет нельзя
18
+ */
19
+ constructor(componentName: IComponentName, options: IAppTracerOptions, envParams: IAppTracerEnvParams, context?: IAppTracerContext);
20
+ error(error: IError, errorData?: Partial<Pick<ITracerErrorData, "severity">>): void;
21
+ addSubscription(item: Parameters<ISubscription["add"]>[0]): void;
22
+ destroy(): void;
23
+ private init;
24
+ private loadModule;
25
+ }
@@ -0,0 +1 @@
1
+ export declare const APP_TOKEN = "gW5EerTD5QhAnsbpF7Hd2NSMRteYIUUMjFbSyI68Pf5";
@@ -0,0 +1,2 @@
1
+ export { AppTracer } from "./AppTracer";
2
+ export type { IAppTracerOptions, IAppTracerEnvParams, IAppTracerContext } from "./types";
@@ -0,0 +1,19 @@
1
+ import type { ErrorCategory } from "../types";
2
+ import type * as AppTracerSdk from "@apptracer/sdk/lite";
3
+ import type { ITracerError, ITracerErrorData, ITracerUploaderConfig } from "@apptracer/sdk/lite";
4
+ export type { AppTracerSdk };
5
+ export type IComponentName = string & {};
6
+ export interface IAppTracerOptions {
7
+ enabled: boolean;
8
+ sampleRate: number;
9
+ whiteErrorCategoryList: ErrorCategory[];
10
+ blackErrorCategoryList: ErrorCategory[];
11
+ whiteErrorIdList: string[];
12
+ blackErrorIdList: string[];
13
+ }
14
+ export interface IAppTracerEnvParams {
15
+ version: ITracerUploaderConfig["versionName"];
16
+ env: ITracerUploaderConfig["environment"];
17
+ }
18
+ export type IAppTracerContext = Parameters<ITracerError["setErrorKeys"]>[0];
19
+ export type IAppTracerErrorDataKeys = ITracerErrorData["keys"];
@@ -0,0 +1,5 @@
1
+ import type { IError } from "../types";
2
+ import type { IAppTracerErrorDataKeys } from "./types";
3
+ export declare const mapIErrorToAppTracerErrorKeys: (error: IError) => IAppTracerErrorDataKeys;
4
+ export declare const mapIErrorThrownToError: (error: IError) => Error;
5
+ export declare const mapLocationData: () => Record<string, string> | undefined;
@@ -0,0 +1,28 @@
1
+ import type { ILogger } from "../Logger";
2
+ export declare const INTERNAL_EXPOSE_GLOBAL_KEY = "__vk_vp_internals_exposure";
3
+ export type ExposeType = "ui" | "core";
4
+ type InternalsExposureItem = {
5
+ logger?: ILogger;
6
+ [k: string]: unknown;
7
+ };
8
+ export type InternalsExposureData = {
9
+ [playerId: string]: {
10
+ ui?: InternalsExposureItem;
11
+ core?: InternalsExposureItem;
12
+ };
13
+ };
14
+ declare global {
15
+ interface Window {
16
+ [INTERNAL_EXPOSE_GLOBAL_KEY]?: InternalsExposureData;
17
+ }
18
+ }
19
+ export declare class InternalsExposure {
20
+ private readonly playerId;
21
+ private readonly type;
22
+ constructor(type: ExposeType, playerId: string);
23
+ private getWindowObject;
24
+ private initWindowObjects;
25
+ expose(data: Record<string, unknown>): void;
26
+ destroy(): void;
27
+ }
28
+ export {};
@@ -0,0 +1,10 @@
1
+ import Subject from "../reactive/Subject";
2
+ import type { ILogger, ILogInputEntry, IComponentLogger, ILogEntry } from "./types";
3
+ export declare class Logger implements ILogger {
4
+ log$: Subject<ILogEntry>;
5
+ private logs;
6
+ log: (inputEntry: ILogInputEntry) => void;
7
+ createCustomLog<TArgs extends unknown[]>(transform: (...args: TArgs) => ILogInputEntry): (...args: TArgs) => void;
8
+ createComponentLog(component: string): IComponentLogger;
9
+ getAllLogs: () => ILogEntry[];
10
+ }
@@ -0,0 +1,2 @@
1
+ export { Logger } from "./Logger";
2
+ export type { ILogger, ILogInputEntry, IComponentLogEntry, IComponentLogger, ILogEntry } from "./types";
@@ -0,0 +1,29 @@
1
+ import type { IObservable } from "../reactive/types";
2
+ export interface ILogger {
3
+ log: (entry: ILogInputEntry) => void;
4
+ createCustomLog: <TArgs extends unknown[]>(transform: (...args: TArgs) => ILogInputEntry) => (...args: TArgs) => void;
5
+ createComponentLog: (component: string) => IComponentLogger;
6
+ getAllLogs: () => ILogEntry[];
7
+ log$: IObservable<ILogEntry>;
8
+ }
9
+ export interface ILogEntry {
10
+ /**
11
+ * Сообщение.
12
+ */
13
+ message: string;
14
+ /**
15
+ * Компонент, в котором залогировано событие. (модуль, класс или функция)
16
+ */
17
+ component: string;
18
+ /**
19
+ * Время, в которое случилось логируемое событие
20
+ */
21
+ timestamp: number;
22
+ }
23
+ export type IComponentLogger = (entry: IComponentLogEntry) => void;
24
+ export type ILogInputEntry = Omit<ILogEntry, "timestamp">;
25
+ export interface IComponentLogEntry extends Omit<ILogInputEntry, "component">, IOptionalComponent {}
26
+ interface IOptionalComponent {
27
+ component?: ILogInputEntry["component"];
28
+ }
29
+ export {};
@@ -0,0 +1,13 @@
1
+ import type { IRootTracer, ITracer, ITracerParams } from "./types";
2
+ import type { Attributes } from "@opentelemetry/api";
3
+ export declare class FakeTracer implements IRootTracer {
4
+ private readonly fakeTraceId;
5
+ constructor(params?: Partial<ITracerParams>);
6
+ log(name: string, attributes?: Attributes): void;
7
+ error(name: string, attributes?: Attributes): void;
8
+ critical(name: string, attributes?: Attributes): void;
9
+ createComponentTracer(name: string): ITracer;
10
+ end(): void;
11
+ getFinishedSpans(): any | undefined;
12
+ getTraceId(): string;
13
+ }
@@ -0,0 +1,10 @@
1
+ import type { IRootTracer, ITracerParams } from "./types";
2
+ import { Tracer } from "./Tracer";
3
+ import type { Milliseconds } from "../utils";
4
+ export declare class RootTracer extends Tracer implements IRootTracer {
5
+ private spanExporter;
6
+ constructor();
7
+ protected init({ name, getParentContext }: ITracerParams, startTime: Milliseconds): void;
8
+ getFinishedSpans(): any | undefined;
9
+ getTraceId(): string;
10
+ }
@@ -0,0 +1,25 @@
1
+ import type { Tracer as OtlpTracer } from "@opentelemetry/sdk-trace-web";
2
+ import type { Attributes, Context, Span } from "@opentelemetry/api";
3
+ import type { ITracer, ITracerDynamicImports, ITracerParams } from "./types";
4
+ import { TracerDynamicImportStatus } from "./types";
5
+ import type { Milliseconds } from "../utils";
6
+ export declare class Tracer implements ITracer {
7
+ private readonly dynamicImportTimeout;
8
+ protected span: Span;
9
+ protected context: Context;
10
+ protected childTracers: ITracer[];
11
+ protected initPromise: Promise<void>;
12
+ protected static rootTracer: OtlpTracer;
13
+ protected static dynamicImportStatus: TracerDynamicImportStatus;
14
+ protected static dynamicImports: ITracerDynamicImports;
15
+ protected static dynamicImportPromise: Promise<void>;
16
+ protected constructor({ name, getParentContext }: ITracerParams);
17
+ protected init({ name, getParentContext }: ITracerParams, startTime: Milliseconds): void;
18
+ private loadOpentelemetry;
19
+ protected isComponentTracerNotInitialized(): boolean;
20
+ log(name: string, attributes?: Attributes): void;
21
+ error(name: string, attributes?: Attributes): void;
22
+ critical(name: string, attributes?: Attributes): void;
23
+ createComponentTracer(name: string): ITracer;
24
+ end(): void;
25
+ }
@@ -0,0 +1,4 @@
1
+ import type { IRootTracer } from "./types";
2
+ export declare class TracerFactory {
3
+ static createRootTracer(isRealTracer?: boolean): IRootTracer;
4
+ }
@@ -0,0 +1,3 @@
1
+ export { TracerFactory } from "./TracerFactory";
2
+ export type { ITracer, IRootTracer } from "./types";
3
+ export { getTraceSubscriptionMethod } from "./utils";
@@ -0,0 +1,39 @@
1
+ import type { Attributes, Context } from "@opentelemetry/api";
2
+ import type { ReadableSpan } from "@opentelemetry/sdk-trace-web";
3
+ import type * as TracerOpentelemetry from "@apptracer/opentelemetry";
4
+ import type * as OpentelemetryApi from "@opentelemetry/api";
5
+ import type * as OpentelemetrySdk from "@opentelemetry/sdk-trace-web";
6
+ export type { TracerOpentelemetry };
7
+ export type { OpentelemetryApi };
8
+ export type { OpentelemetrySdk };
9
+ export declare enum TracerDynamicImportStatus {
10
+ NotStarted = "not_started",
11
+ InProgress = "in_progress",
12
+ Failed = "failed",
13
+ Completed = "completed"
14
+ }
15
+ export declare enum TraceEventType {
16
+ Log = "log",
17
+ Error = "error",
18
+ Critical = "critical"
19
+ }
20
+ export interface ITracerParams {
21
+ name: string;
22
+ getParentContext?: () => Context;
23
+ }
24
+ export interface ITracerDynamicImports {
25
+ opentelemetryApi: typeof OpentelemetryApi;
26
+ opentelemetrySdk: typeof OpentelemetrySdk;
27
+ tracer: typeof TracerOpentelemetry;
28
+ }
29
+ export interface ITracer {
30
+ log: (name: string, attributes?: Attributes) => void;
31
+ error: (name: string, attributes?: Attributes) => void;
32
+ critical: (name: string, attributes?: Attributes) => void;
33
+ createComponentTracer: (name: string) => ITracer;
34
+ end: () => void;
35
+ }
36
+ export interface IRootTracer extends ITracer {
37
+ getFinishedSpans: () => ReadableSpan[] | undefined;
38
+ getTraceId: () => string;
39
+ }
@@ -0,0 +1,3 @@
1
+ import type { Attributes } from "@opentelemetry/api";
2
+ export declare const getTraceSubscriptionMethod: (log: (name: string, attributes?: Attributes) => void) => ((name: string) => (value: unknown) => void);
3
+ export declare const replaceUnsupportedValuesByStrings: (obj?: Attributes | undefined) => Attributes;
@@ -0,0 +1,14 @@
1
+ type DevNullValueArray<T> = [T?, T?, T?, T?, T?, T?, T?, T?, T?, T?, T?, T?, T?, T?, T?, T?];
2
+ export interface DevNullEntry {
3
+ key: string;
4
+ json?: string;
5
+ strings?: DevNullValueArray<string>;
6
+ numbers?: DevNullValueArray<number>;
7
+ }
8
+ type Callback = (entry: DevNullEntry) => void;
9
+ type TempStorage = DevNullEntry[];
10
+ export declare const create: (ownerName: string, callback?: Callback) => Map<string, Callback | TempStorage>;
11
+ export declare const destroy: (ownerName: string) => boolean;
12
+ export declare const push: (ownerName: string, entry: DevNullEntry) => void;
13
+ export declare const subscribe: (ownerName: string, callback: Callback) => void;
14
+ export {};
package/types/env.d.ts ADDED
@@ -0,0 +1 @@
1
+ export declare const VERSION: string;
@@ -0,0 +1,11 @@
1
+ export { VERSION } from "./env";
2
+ export * from "./Logger";
3
+ export * from "./Tracer";
4
+ export * from "./utils";
5
+ export * from "./reactive";
6
+ export * from "./types";
7
+ export * from "./translation";
8
+ export * from "./InternalsExposure";
9
+ export * as devNull from "./devNull";
10
+ export type { DevNullEntry } from "./devNull";
11
+ export * from "./AppTracer";
@@ -0,0 +1,14 @@
1
+ import type { IEmitter, IListener, IObservable, IOperator, ISubscription, IUnsubscriber } from "./types";
2
+ export default class Observable<T> implements IObservable<T> {
3
+ private suppressErrors;
4
+ constructor(subscribe?: (emitter: IEmitter<T>) => IUnsubscriber | ISubscription | void);
5
+ /**
6
+ * @deprecated Глушить ошибки не стоит.
7
+ * Раньше у нас они по-умолчанию ошибочно глушились что маскировало многие исключения, в том числе грубые ошибки
8
+ * Этот метод нужен чтобы временно поддержать старрое поведение пока маскиуремые ошибки не исправятся
9
+ */
10
+ setSuppressErrors(suppress: boolean): void;
11
+ subscribe(listener: IListener<T>, error?: IListener<Error | unknown>): ISubscription;
12
+ pipe<K = unknown>(...operators: IOperator<unknown, unknown>[]): IObservable<K>;
13
+ protected _subscribe(_emitter: IEmitter<T>): IUnsubscriber | ISubscription | void;
14
+ }
@@ -0,0 +1,12 @@
1
+ import type { ISubject } from "./types";
2
+ import { type IEmitter, type ISubscription, type IUnsubscriber } from "./types";
3
+ import SubjectMY from "./Subject";
4
+ export default class ReplaySubject<T> extends SubjectMY<T> implements ISubject<T> {
5
+ private readonly bufferSize;
6
+ private readonly buffer;
7
+ private cursorEnd;
8
+ private cursorStart;
9
+ constructor(bufferSize: number);
10
+ next(value: T): void;
11
+ protected _subscribe(emitter: IEmitter<T>): IUnsubscriber | ISubscription | void;
12
+ }
@@ -0,0 +1,10 @@
1
+ import type { IEmitter, ISubject, ISubscription, IUnsubscriber } from "./types";
2
+ import Observable from "./Observable";
3
+ export default class Subject<T> extends Observable<T> implements ISubject<T> {
4
+ protected keyCounter: number;
5
+ protected subscribers: Map<number, IEmitter<T>>;
6
+ constructor();
7
+ next(value: T): void;
8
+ error(value: T): void;
9
+ protected _subscribe(emitter: IEmitter<T>): IUnsubscriber | ISubscription | void;
10
+ }
@@ -0,0 +1,6 @@
1
+ import type { ISubscription, IUnsubscriber } from "./types";
2
+ export default class Subscription implements ISubscription {
3
+ protected subscriptions: Array<(() => void) | ISubscription>;
4
+ unsubscribe(): void;
5
+ add(item: ISubscription | IUnsubscriber): ISubscription;
6
+ }
@@ -0,0 +1,5 @@
1
+ import Subscription from "./Subscription";
2
+ import type { ISubscription, IUnsubscriber } from "./types";
3
+ export default class SubscriptionRemovable extends Subscription {
4
+ remove(item: ISubscription | IUnsubscriber): void;
5
+ }
@@ -0,0 +1,10 @@
1
+ import type { IEmitter, ISubscription, IUnsubscriber, IValueSubject } from "./types";
2
+ import Subject from "./Subject";
3
+ export default class ValueSubject<T> extends Subject<T> implements IValueSubject<T> {
4
+ private value;
5
+ constructor(initialValue: T);
6
+ next(value: T): void;
7
+ error(value: T): void;
8
+ getValue(): T;
9
+ protected _subscribe(emitter: IEmitter<T>): IUnsubscriber | ISubscription | void;
10
+ }
@@ -0,0 +1,7 @@
1
+ import type { IObservable, TypeOfObservable } from "./types";
2
+ /**
3
+ * Создаёт Observable, который состоит из объектов, ключами которых являются последние значения исходных Observable.
4
+ * Первое событие возникает тогда, когда каждый исходный Observable выдал хотя бы одно значение.
5
+ */
6
+ type CombineObservables<T extends Record<string, IObservable<unknown>>> = { [key in keyof T] : TypeOfObservable<T[key]> };
7
+ export default function combine<T extends Record<string, IObservable<unknown>>>(observables: T): IObservable<CombineObservables<T>>;
@@ -0,0 +1,7 @@
1
+ import type { IObservable } from "./types";
2
+ interface IEventTarget {
3
+ addEventListener(type: string, handler: (...params: any[]) => void): void;
4
+ removeEventListener(type: string, handler: (...params: any[]) => void): void;
5
+ }
6
+ declare const _default: <T>(target: IEventTarget, eventName: string) => IObservable<T>;
7
+ export default _default;
@@ -0,0 +1,25 @@
1
+ export { default as Subscription } from "./Subscription";
2
+ export { default as Observable } from "./Observable";
3
+ export { default as Subject } from "./Subject";
4
+ export { default as ReplaySubject } from "./ReplaySubject";
5
+ export { default as ValueSubject } from "./ValueSubject";
6
+ export { default as combine } from "./combine";
7
+ export { default as merge } from "./merge";
8
+ export { default as timeout } from "./timeout";
9
+ export { default as interval } from "./interval";
10
+ export { default as observableFrom } from "./observableFrom";
11
+ export { default as fromEvent } from "./fromEvent";
12
+ export { default as SubscriptionRemovable } from "./SubscriptionRemovable";
13
+ export { default as buffer } from "./operators/buffer";
14
+ export { default as debounce } from "./operators/debounce";
15
+ export { default as throttle } from "./operators/throttle";
16
+ export { default as filter } from "./operators/filter";
17
+ export { default as filterChanged } from "./operators/filterChanged";
18
+ export { default as map } from "./operators/map";
19
+ export { default as mapTo } from "./operators/mapTo";
20
+ export { default as once } from "./operators/once";
21
+ export { default as pairwise } from "./operators/pairwise";
22
+ export { default as tap } from "./operators/tap";
23
+ export { default as skip } from "./operators/skip";
24
+ export { default as shareReplay } from "./operators/shareReplay";
25
+ export type { ISubscription, IUnsubscriber, IObservable, ISubject, IValueSubject, IValueObservable, IListener, IEmitter, IValue, IOperator } from "./types";
@@ -0,0 +1,4 @@
1
+ import type { Milliseconds } from "../utils";
2
+ import type { IObservable } from "./types";
3
+ declare const _default: (time: Milliseconds) => IObservable<void>;
4
+ export default _default;
@@ -0,0 +1,82 @@
1
+ import type { IObservable } from "./types";
2
+ export default function merge<
3
+ T1,
4
+ T2
5
+ >(v1: IObservable<T1>, v2: IObservable<T2>): IObservable<T1 | T2>;
6
+ export default function merge<
7
+ T1,
8
+ T2,
9
+ T3
10
+ >(v1: IObservable<T1>, v2: IObservable<T2>, v3: IObservable<T3>): IObservable<T1 | T2 | T3>;
11
+ export default function merge<
12
+ T1,
13
+ T2,
14
+ T3,
15
+ T4
16
+ >(v1: IObservable<T1>, v2: IObservable<T2>, v3: IObservable<T3>, v4: IObservable<T4>): IObservable<T1 | T2 | T3 | T4>;
17
+ export default function merge<
18
+ T1,
19
+ T2,
20
+ T3,
21
+ T4,
22
+ T5
23
+ >(v1: IObservable<T1>, v2: IObservable<T2>, v3: IObservable<T3>, v4: IObservable<T4>, v5: IObservable<T5>): IObservable<T1 | T2 | T3 | T4 | T5>;
24
+ export default function merge<
25
+ T1,
26
+ T2,
27
+ T3,
28
+ T4,
29
+ T5,
30
+ T6
31
+ >(v1: IObservable<T1>, v2: IObservable<T2>, v3: IObservable<T3>, v4: IObservable<T4>, v5: IObservable<T5>, v6: IObservable<T6>): IObservable<T1 | T2 | T3 | T4 | T5 | T6>;
32
+ export default function merge<
33
+ T1,
34
+ T2,
35
+ T3,
36
+ T4,
37
+ T5,
38
+ T6
39
+ >(v1: IObservable<T1>, v2: IObservable<T2>, v3: IObservable<T3>, v4: IObservable<T4>, v5: IObservable<T5>, v6: IObservable<T6>): IObservable<T1 | T2 | T3 | T4 | T5 | T6>;
40
+ export default function merge<
41
+ T1,
42
+ T2,
43
+ T3,
44
+ T4,
45
+ T5,
46
+ T6,
47
+ T7
48
+ >(v1: IObservable<T1>, v2: IObservable<T2>, v3: IObservable<T3>, v4: IObservable<T4>, v5: IObservable<T5>, v6: IObservable<T6>, v7: IObservable<T7>): IObservable<T1 | T2 | T3 | T4 | T5 | T6 | T7>;
49
+ export default function merge<
50
+ T1,
51
+ T2,
52
+ T3,
53
+ T4,
54
+ T5,
55
+ T6,
56
+ T7,
57
+ T8
58
+ >(v1: IObservable<T1>, v2: IObservable<T2>, v3: IObservable<T3>, v4: IObservable<T4>, v5: IObservable<T5>, v6: IObservable<T6>, v7: IObservable<T7>, v8: IObservable<T8>): IObservable<T1 | T2 | T3 | T4 | T5 | T6 | T7 | T8>;
59
+ export default function merge<
60
+ T1,
61
+ T2,
62
+ T3,
63
+ T4,
64
+ T5,
65
+ T6,
66
+ T7,
67
+ T8,
68
+ T9
69
+ >(v1: IObservable<T1>, v2: IObservable<T2>, v3: IObservable<T3>, v4: IObservable<T4>, v5: IObservable<T5>, v6: IObservable<T6>, v7: IObservable<T7>, v8: IObservable<T8>, v9: IObservable<T9>): IObservable<T1 | T2 | T3 | T4 | T5 | T6 | T7 | T8 | T9>;
70
+ export default function merge<
71
+ T1,
72
+ T2,
73
+ T3,
74
+ T4,
75
+ T5,
76
+ T6,
77
+ T7,
78
+ T8,
79
+ T9,
80
+ T10
81
+ >(v1: IObservable<T1>, v2: IObservable<T2>, v3: IObservable<T3>, v4: IObservable<T4>, v5: IObservable<T5>, v6: IObservable<T6>, v7: IObservable<T7>, v8: IObservable<T8>, v9: IObservable<T9>, v10: IObservable<T10>): IObservable<T1 | T2 | T3 | T4 | T5 | T6 | T7 | T8 | T9 | T10>;
82
+ export default function merge<R>(...observables: IObservable<unknown>[]): IObservable<R>;
@@ -0,0 +1,3 @@
1
+ import type { IObservable } from "./types";
2
+ declare const _default: <T>(values: T[]) => IObservable<T>;
3
+ export default _default;
@@ -0,0 +1,2 @@
1
+ import type { IOperator } from "../types";
2
+ export default function buffer<T>(size: number): IOperator<T, T[]>;
@@ -0,0 +1,7 @@
1
+ import type { Milliseconds } from "../../utils/semanticTypes";
2
+ import type { IOperator } from "../types";
3
+ interface DebounceConfig {
4
+ leading: boolean;
5
+ trailing: boolean;
6
+ }
7
+ export default function debounce<T>(time: Milliseconds, config?: DebounceConfig): IOperator<T>;
@@ -0,0 +1,6 @@
1
+ import type { IOperator } from "../types";
2
+ export default function filter<
3
+ T,
4
+ S extends T
5
+ >(predicate: (value: T) => value is S): IOperator<T, S>;
6
+ export default function filter<T>(predicate: (value: T) => boolean): IOperator<T>;
@@ -0,0 +1,5 @@
1
+ import type { IOperator } from "../types";
2
+ /**
3
+ * Пропускает только события, содержащие значения, отличные от предыдущего
4
+ */
5
+ export default function filterChanged<T>(equal?: (prev: T, next: T) => boolean): IOperator<T>;
@@ -0,0 +1,5 @@
1
+ import type { IOperator } from "../types";
2
+ export default function map<
3
+ T,
4
+ S
5
+ >(mapper: (value: T) => S): IOperator<T, S>;
@@ -0,0 +1,5 @@
1
+ import type { IOperator } from "../types";
2
+ export default function mapTo<
3
+ T,
4
+ S
5
+ >(value: S): IOperator<T, S>;
@@ -0,0 +1,5 @@
1
+ import type { IOperator } from "../types";
2
+ /**
3
+ * Отписывается от исходного потока после получения первого события.
4
+ */
5
+ export default function once<T>(): IOperator<T>;
@@ -0,0 +1,3 @@
1
+ import type { IOperator } from "../types";
2
+ type IPair<T> = [previous: T, current: T];
3
+ export default function pairwise<T>(): IOperator<T, IPair<T>>;
@@ -0,0 +1,2 @@
1
+ import type { IOperator } from "..";
2
+ export default function shareReplay<T>(bufferSize?: number | undefined): IOperator<T>;
@@ -0,0 +1,6 @@
1
+ import type { IOperator } from "..";
2
+ /**
3
+ * Пропускает первые count событий
4
+ * @param count
5
+ */
6
+ export default function skip<T>(count: number): IOperator<T>;
@@ -0,0 +1,2 @@
1
+ import type { IOperator } from "../types";
2
+ export default function tap<T>(effect: (value: T) => void): IOperator<T>;
@@ -0,0 +1,6 @@
1
+ import type { IOperator } from "../types";
2
+ interface ThrottleConfig {
3
+ leading: boolean;
4
+ trailing: boolean;
5
+ }
6
+ export default function throttle<T>(time: number, config?: ThrottleConfig): IOperator<T>;
@@ -0,0 +1,4 @@
1
+ import type { Milliseconds } from "../utils";
2
+ import type { IObservable } from "./types";
3
+ declare const _default: (time: Milliseconds) => IObservable<void>;
4
+ export default _default;