@xmaxai/sdk 0.1.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/CHANGELOG.md +40 -0
- package/LICENSE +21 -0
- package/README.md +201 -0
- package/dist/chunk-67XSD3QJ.js +2673 -0
- package/dist/chunk-67XSD3QJ.js.map +1 -0
- package/dist/chunk-74ZZWUPI.js +992 -0
- package/dist/chunk-74ZZWUPI.js.map +1 -0
- package/dist/chunk-EGNRAZ5U.js +432 -0
- package/dist/chunk-EGNRAZ5U.js.map +1 -0
- package/dist/chunk-PLU2YVAS.js +414 -0
- package/dist/chunk-PLU2YVAS.js.map +1 -0
- package/dist/experimental/index.cjs +3897 -0
- package/dist/experimental/index.cjs.map +1 -0
- package/dist/experimental/index.d.cts +2 -0
- package/dist/experimental/index.d.ts +2 -0
- package/dist/experimental/index.js +5 -0
- package/dist/experimental/index.js.map +1 -0
- package/dist/index-BIUk_kvb.d.ts +350 -0
- package/dist/index-Dai62Sos.d.cts +350 -0
- package/dist/index.cjs +5109 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +235 -0
- package/dist/index.d.ts +235 -0
- package/dist/index.js +359 -0
- package/dist/index.js.map +1 -0
- package/dist/local-publish-diagnostics-ABLL56IT.js +79 -0
- package/dist/local-publish-diagnostics-ABLL56IT.js.map +1 -0
- package/dist/react/index.cjs +4304 -0
- package/dist/react/index.cjs.map +1 -0
- package/dist/react/index.d.cts +112 -0
- package/dist/react/index.d.ts +112 -0
- package/dist/react/index.js +817 -0
- package/dist/react/index.js.map +1 -0
- package/dist/rtc-manager-gYDkADGw.d.cts +412 -0
- package/dist/rtc-manager-gYDkADGw.d.ts +412 -0
- package/dist/video-file-stream-UXJ6TNIB.js +4 -0
- package/dist/video-file-stream-UXJ6TNIB.js.map +1 -0
- package/package.json +82 -0
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
import { ReactNode } from 'react';
|
|
3
|
+
import { S as SDKLocale, a as SDKI18n, X as XmaxErrorNotifier, R as RtcStateSnapshot, U as UploadImageResult } from '../rtc-manager-gYDkADGw.cjs';
|
|
4
|
+
|
|
5
|
+
type InputSource = 'none' | 'camera' | 'video';
|
|
6
|
+
type XmaxSeiGateState = {
|
|
7
|
+
expectedSei: string | null;
|
|
8
|
+
sei: string | null;
|
|
9
|
+
userId: string | null;
|
|
10
|
+
matched: boolean;
|
|
11
|
+
};
|
|
12
|
+
type XmaxSnapshot = {
|
|
13
|
+
sessionUid: string | null;
|
|
14
|
+
rtc: RtcStateSnapshot;
|
|
15
|
+
inputSource: InputSource;
|
|
16
|
+
isCameraOn: boolean;
|
|
17
|
+
isRecording: boolean;
|
|
18
|
+
isGenerating: boolean;
|
|
19
|
+
isOutputVerifying: boolean;
|
|
20
|
+
hasResult: boolean;
|
|
21
|
+
outputEnabled: boolean;
|
|
22
|
+
dragEnabled: boolean;
|
|
23
|
+
showOutputVideo: boolean;
|
|
24
|
+
localVideoSize: {
|
|
25
|
+
width: number;
|
|
26
|
+
height: number;
|
|
27
|
+
} | null;
|
|
28
|
+
sessionTargetSize: [number, number] | null;
|
|
29
|
+
seiGate: XmaxSeiGateState;
|
|
30
|
+
};
|
|
31
|
+
type XmaxConfig = {
|
|
32
|
+
apiKey: string;
|
|
33
|
+
/** Open API base URL, e.g. XMAX_OPEN_API_PRODUCTION_BASE_URL */
|
|
34
|
+
baseUrl: string;
|
|
35
|
+
authToken?: string;
|
|
36
|
+
model?: string;
|
|
37
|
+
heartbeatIntervalMs?: number;
|
|
38
|
+
locale?: SDKLocale;
|
|
39
|
+
i18n?: SDKI18n;
|
|
40
|
+
onError?: XmaxErrorNotifier;
|
|
41
|
+
/** Extra structured logs for upload-video freeze / output drop investigations. */
|
|
42
|
+
debug?: boolean;
|
|
43
|
+
onLog?: (entry: {
|
|
44
|
+
scope: 'client' | 'rtc';
|
|
45
|
+
level: 'info' | 'success' | 'warn' | 'error';
|
|
46
|
+
message: string;
|
|
47
|
+
data?: unknown;
|
|
48
|
+
}) => void;
|
|
49
|
+
};
|
|
50
|
+
type XmaxContextValue = {
|
|
51
|
+
snapshot: XmaxSnapshot;
|
|
52
|
+
connect: () => Promise<void>;
|
|
53
|
+
disconnect: () => Promise<void>;
|
|
54
|
+
openCamera: (options?: {
|
|
55
|
+
size?: [number, number];
|
|
56
|
+
}) => Promise<void>;
|
|
57
|
+
closeCamera: () => Promise<void>;
|
|
58
|
+
loadVideoFile: (file: File, options?: {
|
|
59
|
+
size?: [number, number];
|
|
60
|
+
}) => Promise<{
|
|
61
|
+
url: string;
|
|
62
|
+
width: number;
|
|
63
|
+
height: number;
|
|
64
|
+
/** Canvas capture stream — same pixels sent to RTC; use as preview srcObject. */
|
|
65
|
+
previewStream: MediaStream;
|
|
66
|
+
videoEl: HTMLVideoElement;
|
|
67
|
+
/** Session size after SDK 832-rule processing */
|
|
68
|
+
targetSize: [number, number];
|
|
69
|
+
} | null>;
|
|
70
|
+
clearInput: () => Promise<void>;
|
|
71
|
+
uploadImage: (file: File) => Promise<UploadImageResult>;
|
|
72
|
+
setRefImage: (input: File | string) => Promise<string>;
|
|
73
|
+
start: (options: {
|
|
74
|
+
size?: [number, number];
|
|
75
|
+
prompt?: string;
|
|
76
|
+
model: string;
|
|
77
|
+
/** When set (including `null`), overrides stored ref image for this start event. */
|
|
78
|
+
refImage?: string | null;
|
|
79
|
+
extraParams?: Record<string, unknown>;
|
|
80
|
+
}) => Promise<void>;
|
|
81
|
+
sendTracks: (options: {
|
|
82
|
+
tracks: Array<[number, number]>;
|
|
83
|
+
}) => Promise<void>;
|
|
84
|
+
stop: () => Promise<void>;
|
|
85
|
+
/** @deprecated Mode switching is handled by stop + start with new prompt/refImage. */
|
|
86
|
+
changeModel: () => Promise<void>;
|
|
87
|
+
bindLocalView: (el: HTMLElement | null) => void;
|
|
88
|
+
bindRemoteView: (el: HTMLElement | null) => void;
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
declare function XmaxProvider({ config, children }: {
|
|
92
|
+
config: XmaxConfig;
|
|
93
|
+
children: ReactNode;
|
|
94
|
+
}): react.JSX.Element;
|
|
95
|
+
declare function useXmax(): XmaxContextValue;
|
|
96
|
+
|
|
97
|
+
declare function XmaxView({ kind, className, style, }: {
|
|
98
|
+
kind: 'local' | 'remote';
|
|
99
|
+
className?: string;
|
|
100
|
+
style?: React.CSSProperties;
|
|
101
|
+
}): react.JSX.Element;
|
|
102
|
+
|
|
103
|
+
declare function DragTrackSurface({ enabled, targetSize, onTracks, className, style, fitMode, }: {
|
|
104
|
+
enabled: boolean;
|
|
105
|
+
targetSize: [number, number];
|
|
106
|
+
onTracks: (tracks: Array<[number, number]>) => void | Promise<void>;
|
|
107
|
+
className?: string;
|
|
108
|
+
style?: React.CSSProperties;
|
|
109
|
+
fitMode?: 'contain' | 'cover';
|
|
110
|
+
}): react.JSX.Element;
|
|
111
|
+
|
|
112
|
+
export { DragTrackSurface, type InputSource, type XmaxConfig, type XmaxContextValue, XmaxProvider, type XmaxSeiGateState, type XmaxSnapshot, XmaxView, useXmax };
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
import { ReactNode } from 'react';
|
|
3
|
+
import { S as SDKLocale, a as SDKI18n, X as XmaxErrorNotifier, R as RtcStateSnapshot, U as UploadImageResult } from '../rtc-manager-gYDkADGw.js';
|
|
4
|
+
|
|
5
|
+
type InputSource = 'none' | 'camera' | 'video';
|
|
6
|
+
type XmaxSeiGateState = {
|
|
7
|
+
expectedSei: string | null;
|
|
8
|
+
sei: string | null;
|
|
9
|
+
userId: string | null;
|
|
10
|
+
matched: boolean;
|
|
11
|
+
};
|
|
12
|
+
type XmaxSnapshot = {
|
|
13
|
+
sessionUid: string | null;
|
|
14
|
+
rtc: RtcStateSnapshot;
|
|
15
|
+
inputSource: InputSource;
|
|
16
|
+
isCameraOn: boolean;
|
|
17
|
+
isRecording: boolean;
|
|
18
|
+
isGenerating: boolean;
|
|
19
|
+
isOutputVerifying: boolean;
|
|
20
|
+
hasResult: boolean;
|
|
21
|
+
outputEnabled: boolean;
|
|
22
|
+
dragEnabled: boolean;
|
|
23
|
+
showOutputVideo: boolean;
|
|
24
|
+
localVideoSize: {
|
|
25
|
+
width: number;
|
|
26
|
+
height: number;
|
|
27
|
+
} | null;
|
|
28
|
+
sessionTargetSize: [number, number] | null;
|
|
29
|
+
seiGate: XmaxSeiGateState;
|
|
30
|
+
};
|
|
31
|
+
type XmaxConfig = {
|
|
32
|
+
apiKey: string;
|
|
33
|
+
/** Open API base URL, e.g. XMAX_OPEN_API_PRODUCTION_BASE_URL */
|
|
34
|
+
baseUrl: string;
|
|
35
|
+
authToken?: string;
|
|
36
|
+
model?: string;
|
|
37
|
+
heartbeatIntervalMs?: number;
|
|
38
|
+
locale?: SDKLocale;
|
|
39
|
+
i18n?: SDKI18n;
|
|
40
|
+
onError?: XmaxErrorNotifier;
|
|
41
|
+
/** Extra structured logs for upload-video freeze / output drop investigations. */
|
|
42
|
+
debug?: boolean;
|
|
43
|
+
onLog?: (entry: {
|
|
44
|
+
scope: 'client' | 'rtc';
|
|
45
|
+
level: 'info' | 'success' | 'warn' | 'error';
|
|
46
|
+
message: string;
|
|
47
|
+
data?: unknown;
|
|
48
|
+
}) => void;
|
|
49
|
+
};
|
|
50
|
+
type XmaxContextValue = {
|
|
51
|
+
snapshot: XmaxSnapshot;
|
|
52
|
+
connect: () => Promise<void>;
|
|
53
|
+
disconnect: () => Promise<void>;
|
|
54
|
+
openCamera: (options?: {
|
|
55
|
+
size?: [number, number];
|
|
56
|
+
}) => Promise<void>;
|
|
57
|
+
closeCamera: () => Promise<void>;
|
|
58
|
+
loadVideoFile: (file: File, options?: {
|
|
59
|
+
size?: [number, number];
|
|
60
|
+
}) => Promise<{
|
|
61
|
+
url: string;
|
|
62
|
+
width: number;
|
|
63
|
+
height: number;
|
|
64
|
+
/** Canvas capture stream — same pixels sent to RTC; use as preview srcObject. */
|
|
65
|
+
previewStream: MediaStream;
|
|
66
|
+
videoEl: HTMLVideoElement;
|
|
67
|
+
/** Session size after SDK 832-rule processing */
|
|
68
|
+
targetSize: [number, number];
|
|
69
|
+
} | null>;
|
|
70
|
+
clearInput: () => Promise<void>;
|
|
71
|
+
uploadImage: (file: File) => Promise<UploadImageResult>;
|
|
72
|
+
setRefImage: (input: File | string) => Promise<string>;
|
|
73
|
+
start: (options: {
|
|
74
|
+
size?: [number, number];
|
|
75
|
+
prompt?: string;
|
|
76
|
+
model: string;
|
|
77
|
+
/** When set (including `null`), overrides stored ref image for this start event. */
|
|
78
|
+
refImage?: string | null;
|
|
79
|
+
extraParams?: Record<string, unknown>;
|
|
80
|
+
}) => Promise<void>;
|
|
81
|
+
sendTracks: (options: {
|
|
82
|
+
tracks: Array<[number, number]>;
|
|
83
|
+
}) => Promise<void>;
|
|
84
|
+
stop: () => Promise<void>;
|
|
85
|
+
/** @deprecated Mode switching is handled by stop + start with new prompt/refImage. */
|
|
86
|
+
changeModel: () => Promise<void>;
|
|
87
|
+
bindLocalView: (el: HTMLElement | null) => void;
|
|
88
|
+
bindRemoteView: (el: HTMLElement | null) => void;
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
declare function XmaxProvider({ config, children }: {
|
|
92
|
+
config: XmaxConfig;
|
|
93
|
+
children: ReactNode;
|
|
94
|
+
}): react.JSX.Element;
|
|
95
|
+
declare function useXmax(): XmaxContextValue;
|
|
96
|
+
|
|
97
|
+
declare function XmaxView({ kind, className, style, }: {
|
|
98
|
+
kind: 'local' | 'remote';
|
|
99
|
+
className?: string;
|
|
100
|
+
style?: React.CSSProperties;
|
|
101
|
+
}): react.JSX.Element;
|
|
102
|
+
|
|
103
|
+
declare function DragTrackSurface({ enabled, targetSize, onTracks, className, style, fitMode, }: {
|
|
104
|
+
enabled: boolean;
|
|
105
|
+
targetSize: [number, number];
|
|
106
|
+
onTracks: (tracks: Array<[number, number]>) => void | Promise<void>;
|
|
107
|
+
className?: string;
|
|
108
|
+
style?: React.CSSProperties;
|
|
109
|
+
fitMode?: 'contain' | 'cover';
|
|
110
|
+
}): react.JSX.Element;
|
|
111
|
+
|
|
112
|
+
export { DragTrackSurface, type InputSource, type XmaxConfig, type XmaxContextValue, XmaxProvider, type XmaxSeiGateState, type XmaxSnapshot, XmaxView, useXmax };
|