@amazon-devices/kepler-player-server 2.2.3
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/LICENSE +7 -0
- package/SystemBundles/1ec2db48db4ef1b38507a6710528f56ecd29852766bb462b44556dd0c9057b71.bundle +1801 -0
- package/SystemBundles/1ec2db48db4ef1b38507a6710528f56ecd29852766bb462b44556dd0c9057b71.bundle.map +1 -0
- package/SystemModules/amzn__kepler-player-server-2.modules.txt +6 -0
- package/SystemModules/amzn__kepler-player-server-2.private.modules.txt +22 -0
- package/SystemModules/keplerscript-system-bundle-config.json +7 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +3 -0
- package/dist/kepler/tm-manifest.json +1 -0
- package/dist/turbo-modules/IPlayerServer.d.ts +393 -0
- package/dist/turbo-modules/IPlayerServer.js +14 -0
- package/dist/turbo-modules/KeplerPlayerServerTurboModule.d.ts +18 -0
- package/dist/turbo-modules/KeplerPlayerServerTurboModule.js +3 -0
- package/dist/turbo-modules/PlayerServer.d.ts +42 -0
- package/dist/turbo-modules/PlayerServer.js +642 -0
- package/dist/turbo-modules/PlayerServerDataTypes/PlayerServerDataTypes.d.ts +319 -0
- package/dist/turbo-modules/PlayerServerDataTypes/PlayerServerDataTypes.js +67 -0
- package/dist/turbo-modules/PlayerServerDataTypes/PlayerServerDataTypesInternal.d.ts +17 -0
- package/dist/turbo-modules/PlayerServerDataTypes/PlayerServerDataTypesInternal.js +14 -0
- package/dist/turbo-modules/PlayerServerDataTypes/PlayerSessionError.d.ts +22 -0
- package/dist/turbo-modules/PlayerServerDataTypes/PlayerSessionError.js +37 -0
- package/dist/turbo-modules/PlayerServerFactory.d.ts +38 -0
- package/dist/turbo-modules/PlayerServerFactory.js +28 -0
- package/dist/turbo-modules/PlayerServerHandler.d.ts +374 -0
- package/dist/turbo-modules/PlayerServerHandler.js +1 -0
- package/dist/turbo-modules/__mocks__/KeplerPlayerServerTurboModule.d.ts +22 -0
- package/dist/turbo-modules/__mocks__/KeplerPlayerServerTurboModule.js +32 -0
- package/kepler-compatibility.json +14 -0
- package/kepler-transformed-package-info.json +3 -0
- package/package.json +1 -0
- package/react-native.config.js +17 -0
|
@@ -0,0 +1,374 @@
|
|
|
1
|
+
import { IPlayerSessionId, IPlayerSessionLoadParams, IPlayerSessionMediaInfo, IViewHandle, ITrackType, IUnloadSyncStatus } from './PlayerServerDataTypes/PlayerServerDataTypes';
|
|
2
|
+
/**
|
|
3
|
+
* An interface for a handler that provides the service logic of the PlayerServer.
|
|
4
|
+
*/
|
|
5
|
+
export interface IPlayerServerHandler {
|
|
6
|
+
/**
|
|
7
|
+
* Handles a request to load content by URL. This call is received when apps call
|
|
8
|
+
* `IPlayerClient.load` from interactive component.
|
|
9
|
+
*
|
|
10
|
+
* Apps must implement this function to initialize MediaPlayer instance with the fields
|
|
11
|
+
* values provided in `mediaInfo` and `loadParams` for player session corresponding to `sessionId`.
|
|
12
|
+
*
|
|
13
|
+
* @param mediaInfo The object to describe the necessary URLs and HTTP headers to load media content.
|
|
14
|
+
* @param loadParams Params required to load content by URL.
|
|
15
|
+
* @param sessionId The session ID to target for
|
|
16
|
+
* loading content. If not specified, the PlayerServer decides how to handle the request.
|
|
17
|
+
*
|
|
18
|
+
* @throws {InvalidArgumentError} if the given sessionId does not exist.
|
|
19
|
+
*/
|
|
20
|
+
handleLoad: (mediaInfo: IPlayerSessionMediaInfo, loadParams?: IPlayerSessionLoadParams, sessionId?: IPlayerSessionId) => void;
|
|
21
|
+
/**
|
|
22
|
+
* Unloads content from a media session in response to `IPlayerClient.unload` calls from the interactive component.
|
|
23
|
+
*
|
|
24
|
+
* Applications must implement this function to release MediaPlayer and Media Source Extensions (MSE) resources
|
|
25
|
+
* for the player session associated with the given `sessionId`.
|
|
26
|
+
*
|
|
27
|
+
* @param sessionId The session ID of the content to unload.
|
|
28
|
+
* If not provided, the PlayerServer determines how to handle the request.
|
|
29
|
+
*
|
|
30
|
+
* @throws {InvalidArgumentError} if the given sessionId does not exist.
|
|
31
|
+
*/
|
|
32
|
+
handleUnload: (sessionId?: IPlayerSessionId) => void;
|
|
33
|
+
/**
|
|
34
|
+
* Unloads content from a media session in response to `IPlayerClient.unloadSync` calls from the interactive component.
|
|
35
|
+
*
|
|
36
|
+
* Applications must implement this function to release MediaPlayer and Media Source Extensions (MSE) resources
|
|
37
|
+
* for the player session associated with the given `sessionId` **synchronously**.
|
|
38
|
+
* For W3CMedia `MediaPlayer` instance, use `deinitializeSync` API.
|
|
39
|
+
*
|
|
40
|
+
* @param timeoutMsec Maximum allowed time (in milliseconds) for unloadSync API to execute.
|
|
41
|
+
* Minimum value is 1000, maximum value is 5000.
|
|
42
|
+
* @param sessionId The session ID of the content to unload.
|
|
43
|
+
* If not provided, the PlayerServer determines how to handle the request.
|
|
44
|
+
*
|
|
45
|
+
* @returns The status of synchronous deinitialize of mediaplayer instance corresponding to `sessionId`.
|
|
46
|
+
* @throws {InvalidArgumentError} if the given sessionId does not exist.
|
|
47
|
+
*/
|
|
48
|
+
handleUnloadSync?: (timeoutMsec: number, sessionId?: IPlayerSessionId) => IUnloadSyncStatus;
|
|
49
|
+
/**
|
|
50
|
+
* Handles a request to set the video view. This call is received when apps call
|
|
51
|
+
* `IPlayerClient.setVideoView` from interactive component.
|
|
52
|
+
*
|
|
53
|
+
* @param handle The identifier for the shared surface.
|
|
54
|
+
* @param sessionId The session ID to target for setting the video surface.
|
|
55
|
+
* If not specified, the PlayerServer decides how to handle the request.
|
|
56
|
+
*
|
|
57
|
+
* Apps must implement this function to call `setSurfaceHandle` on
|
|
58
|
+
* VideoPlayer instance corresponding to `sessionId`.
|
|
59
|
+
*
|
|
60
|
+
* @throws {InvalidArgumentError} if the given sessionId does not exist.
|
|
61
|
+
*/
|
|
62
|
+
handleSetVideoView: (handle: IViewHandle, sessionId?: IPlayerSessionId) => void;
|
|
63
|
+
/**
|
|
64
|
+
* Handles a request to clear the text view. This call is received when apps call
|
|
65
|
+
* `IPlayerClient.clearVideoView` from interactive component.
|
|
66
|
+
*
|
|
67
|
+
* Apps must implement this function to call `clearSurfaceHandle` on
|
|
68
|
+
* VideoPlayer instance corresponding to `sessionId`.
|
|
69
|
+
*
|
|
70
|
+
* @param sessionId The session ID to target for clearing the text view.
|
|
71
|
+
* If not specified, the PlayerServer decides how to handle the request.
|
|
72
|
+
*
|
|
73
|
+
* @throws {InvalidArgumentError} if the given sessionId does not exist.
|
|
74
|
+
*/
|
|
75
|
+
handleClearVideoView: (sessionId?: IPlayerSessionId) => void;
|
|
76
|
+
/**
|
|
77
|
+
* Handles a request to set the text view. This call is received when apps call
|
|
78
|
+
* `IPlayerClient.setTextView` from interactive component.
|
|
79
|
+
*
|
|
80
|
+
* Apps must implement this function to call `setCaptionViewHandle` on
|
|
81
|
+
* VideoPlayer instance corresponding to `sessionId`.
|
|
82
|
+
*
|
|
83
|
+
* @param handle The identifier for the shared surface.
|
|
84
|
+
* @param sessionId The session ID to target for setting the captions surface.
|
|
85
|
+
* If not specified, the PlayerServer decides how to handle the request.
|
|
86
|
+
*
|
|
87
|
+
* @throws {InvalidArgumentError} if the given sessionId does not exist.
|
|
88
|
+
*/
|
|
89
|
+
handleSetTextView: (handle: IViewHandle, sessionId?: IPlayerSessionId) => void;
|
|
90
|
+
/**
|
|
91
|
+
* Handles a request to clear the text view. This call is received when apps call
|
|
92
|
+
* `IPlayerClient.clearTextView` from interactive component.
|
|
93
|
+
*
|
|
94
|
+
* Apps must implement this function to call `clearCaptionViewHandle` on
|
|
95
|
+
* VideoPlayer instance corresponding to `sessionId`.
|
|
96
|
+
*
|
|
97
|
+
* @param sessionId The session ID to target for clearing the captions surface.
|
|
98
|
+
* If not specified, the PlayerServer decides how to handle the request.
|
|
99
|
+
*
|
|
100
|
+
* @throws {InvalidArgumentError} if the given sessionId does not exist.
|
|
101
|
+
*/
|
|
102
|
+
handleClearTextView: (sessionId?: IPlayerSessionId) => void;
|
|
103
|
+
/**
|
|
104
|
+
* Handles a request to resume or start playback. This call is received when apps call
|
|
105
|
+
* `IPlayerClient.play` from interactive component.
|
|
106
|
+
*
|
|
107
|
+
* Apps must implement this function to call `play` on {Video,Audio}Player instance corresponding to `sessionId`.
|
|
108
|
+
*
|
|
109
|
+
* @details If the application is already playing and the playback speed is not normal (not 1.0)
|
|
110
|
+
* this may return playback to normal speed.
|
|
111
|
+
* Receiving multiple play requests while already in playing state is not an error and should signal success.
|
|
112
|
+
* The media server should update the corresponding `IISessionStatus` to reflect the new playback status.
|
|
113
|
+
*
|
|
114
|
+
* @param sessionId The session ID to target with the request.
|
|
115
|
+
* If not specified, the PlayerServer decides how to handle the request.
|
|
116
|
+
*
|
|
117
|
+
* @throws {InvalidArgumentError} if the given sessionId does not exist.
|
|
118
|
+
*/
|
|
119
|
+
handlePlay: (sessionId?: IPlayerSessionId) => void;
|
|
120
|
+
/**
|
|
121
|
+
* Handles a request to pause playback. This call is received when apps call
|
|
122
|
+
* `IPlayerClient.pause` from interactive component.
|
|
123
|
+
*
|
|
124
|
+
* Apps must implement this function to call `pause` on {Video,Audio}Player instance corresponding to `sessionId`.
|
|
125
|
+
*
|
|
126
|
+
* @details Receiving multiple pause requests while already in pause state is not an error and should signal success.
|
|
127
|
+
* The media server should update the corresponding `IISessionStatus` to reflect the new playback status.
|
|
128
|
+
*
|
|
129
|
+
* @param sessionId The session ID to target with the request.
|
|
130
|
+
* If not specified, the PlayerServer decides how to handle the request.
|
|
131
|
+
*
|
|
132
|
+
* @throws {InvalidArgumentError} if the given sessionId does not exist.
|
|
133
|
+
*/
|
|
134
|
+
handlePause: (sessionId?: IPlayerSessionId) => void;
|
|
135
|
+
/**
|
|
136
|
+
* Handles a request to seek to seek to a given playback position. This call is received when apps call
|
|
137
|
+
* `IPlayerClient.seek` from interactive component.
|
|
138
|
+
*
|
|
139
|
+
* Apps must implement this function to change currentTime of {Video,Audio}Player
|
|
140
|
+
* instance corresponding to `sessionId`.
|
|
141
|
+
*
|
|
142
|
+
* @details The media server should update the corresponding `IISessionStatus` to reflect the new playback position.
|
|
143
|
+
*
|
|
144
|
+
* @param position The playback position to seek to, either relative to the
|
|
145
|
+
* current playback position (isRelative = true); or relative to the start of the media where 0
|
|
146
|
+
* represents the start of the media (isRelative = false).
|
|
147
|
+
* @param isRelative If the position provided is relative to the current playback
|
|
148
|
+
* position (isRelative = true) or an absolute position in the media (isRelative = false).
|
|
149
|
+
* Default value is false.
|
|
150
|
+
* @param sessionId The session ID to target with the request.
|
|
151
|
+
* If not specified, the PlayerServer decides how to handle the request.
|
|
152
|
+
*
|
|
153
|
+
* @throws {InvalidArgumentError} if the given sessionId does not exist.
|
|
154
|
+
*/
|
|
155
|
+
handleSeek: (position: number, isRelative?: boolean, sessionId?: IPlayerSessionId) => void;
|
|
156
|
+
/**
|
|
157
|
+
* Handles a request to mute playback. This call is received when apps call
|
|
158
|
+
* `IPlayerClient.setMute` from interactive component.
|
|
159
|
+
*
|
|
160
|
+
* Apps must implement this function to set `muted` on {Video,Audio}Player instance corresponding to `sessionId`.
|
|
161
|
+
*
|
|
162
|
+
* @details The media server should update the corresponding `IISessionStatus` to reflect the new playback status.
|
|
163
|
+
*
|
|
164
|
+
* @param isMuted If true, the media should be muted;
|
|
165
|
+
* @param sessionId The session ID to target with the request.
|
|
166
|
+
* If not specified, the PlayerServer decides how to handle the request.
|
|
167
|
+
*
|
|
168
|
+
* @throws {InvalidArgumentError} if the given sessionId does not exist.
|
|
169
|
+
*/
|
|
170
|
+
handleSetMute: (isMuted: boolean, sessionId?: IPlayerSessionId) => void;
|
|
171
|
+
/**
|
|
172
|
+
* Handles a request to set playback speed of media playback. This call is received when apps call
|
|
173
|
+
* `IPlayerClient.setPlaybackRate` from interactive component.
|
|
174
|
+
*
|
|
175
|
+
* Apps must implement this function to set `playbackRate` on {Video,Audio}Player instance corresponding to `sessionId`.
|
|
176
|
+
*
|
|
177
|
+
* @details The media sesssion should update its `IISessionStatus` to reflect the new playback status.
|
|
178
|
+
*
|
|
179
|
+
* @param playbackRate The playback speed to set, like 0.25, 0.5, 2.0 etc
|
|
180
|
+
* @param sessionId The session ID to target with the request.
|
|
181
|
+
* If not specified, the PlayerServer decides how to handle the request.
|
|
182
|
+
*
|
|
183
|
+
* @throws {InvalidArgumentError} if the given sessionId does not exist.
|
|
184
|
+
*/
|
|
185
|
+
handleSetPlaybackRate: (playbackRate: number, sessionId?: IPlayerSessionId) => void;
|
|
186
|
+
/**
|
|
187
|
+
* Handles a request to set volume of media playback. This call is received when apps call
|
|
188
|
+
* `IPlayerClient.setVolume` from interactive component.
|
|
189
|
+
*
|
|
190
|
+
* Apps must implement this function to set `volume` on {Video,Audio}Player instance corresponding to `sessionId`.
|
|
191
|
+
*
|
|
192
|
+
* @details The media sesssion should update its `IISessionStatus` to reflect the new playback status.
|
|
193
|
+
*
|
|
194
|
+
* @param volume The volume to set, in the range of 0.0 to 1.0.
|
|
195
|
+
* @param sessionId The session ID to target with the request.
|
|
196
|
+
* If not specified, the PlayerServer decides how to handle the request.
|
|
197
|
+
*
|
|
198
|
+
* @throws {InvalidArgumentError} if the given sessionId does not exist.
|
|
199
|
+
*/
|
|
200
|
+
handleSetVolume: (volume: number, sessionId?: IPlayerSessionId) => void;
|
|
201
|
+
/**
|
|
202
|
+
* Handles a request to set the active track of media playback. This call is received when apps call
|
|
203
|
+
* `IPlayerClient.setActiveTrack` from interactive component.
|
|
204
|
+
*
|
|
205
|
+
* Apps must implement this function to set audio, video or text track by ID on MSE player instance.
|
|
206
|
+
*
|
|
207
|
+
* @details The media sesssion should update its `IISessionStatus` to reflect the new playback status.
|
|
208
|
+
*
|
|
209
|
+
* @param trackType The type of the track to set as active.
|
|
210
|
+
* @param trackId The track ID of the track to set as active.
|
|
211
|
+
* @param sessionId The session ID to target with the request.
|
|
212
|
+
* If not specified, the PlayerServer decides how to handle the request.
|
|
213
|
+
*
|
|
214
|
+
* @throws {InvalidArgumentError} if the given sessionId does not exist.
|
|
215
|
+
*/
|
|
216
|
+
handleSetActiveTrack: (trackType: ITrackType, trackId: string, sessionId?: IPlayerSessionId) => void;
|
|
217
|
+
/**
|
|
218
|
+
* Handles request for interactive component to get the current playback position of media playback.
|
|
219
|
+
* This call is received when apps call `IPlayerClient.getCurrentPosition` from interactive component.
|
|
220
|
+
*
|
|
221
|
+
* Apps must implement this function to get `currentTime` from {Audio,Video} Player instance corresponding to `sessionId`
|
|
222
|
+
* and then apps must resolve promise with `number` indicating current playback position (in seconds).
|
|
223
|
+
*
|
|
224
|
+
* @param sessionId The session ID to target with the request.
|
|
225
|
+
* If not specified, the PlayerServer decides how to handle the request.
|
|
226
|
+
*
|
|
227
|
+
* @returns The current playback position of media playback session
|
|
228
|
+
* corresponding to `sessionId`.
|
|
229
|
+
* @throws {InvalidArgumentError} if the given sessionId does not exist.
|
|
230
|
+
*/
|
|
231
|
+
handleGetCurrentPosition: (sessionId?: IPlayerSessionId) => number;
|
|
232
|
+
/**
|
|
233
|
+
* Handles a request to receive a custom message from interactive component. Apps can use
|
|
234
|
+
* `message` object to perform custom operations.
|
|
235
|
+
* This call is received when apps call `IPlayerClient.sendMessage` from interactive component.
|
|
236
|
+
*
|
|
237
|
+
* Apps may implement this function to handle custom operations in service component.
|
|
238
|
+
*
|
|
239
|
+
* @param message The message to be handled. To be sent as JSON object.
|
|
240
|
+
* @param sessionId The session ID to target with the request.
|
|
241
|
+
* If not specified, the PlayerServer decides how to handle the request.
|
|
242
|
+
*
|
|
243
|
+
* @throws {InvalidArgumentError} if the given sessionId does not exist.
|
|
244
|
+
*/
|
|
245
|
+
handleMessage: (message: any, sessionId?: IPlayerSessionId) => void;
|
|
246
|
+
/**
|
|
247
|
+
* This call is received when apps make at least one `IPlayerClient.registerBufferedRangesListener`
|
|
248
|
+
* call for sessionId from interactive component.
|
|
249
|
+
*
|
|
250
|
+
* Apps must start sending buffered ranges updates corresponding to sessionId
|
|
251
|
+
* by calling `IPlayerServer.updateBufferedRanges` API from service component.
|
|
252
|
+
*
|
|
253
|
+
* @param sessionId The session ID to target with the request.
|
|
254
|
+
* If not specified, the session to target is decided by the server.
|
|
255
|
+
*
|
|
256
|
+
* @throws {InvalidArgumentError} if the given sessionId does not exist.
|
|
257
|
+
*/
|
|
258
|
+
handleStartBufferedRangesUpdates: (sessionId?: IPlayerSessionId) => void;
|
|
259
|
+
/**
|
|
260
|
+
* This call is received when apps unsubscribe all `IPlayerSessionBufferedRangesListener`
|
|
261
|
+
* instances for sessionId from interactive component.
|
|
262
|
+
*
|
|
263
|
+
* Apps must stop sending buffered ranges updates corresponding to sessionId
|
|
264
|
+
* from service component.
|
|
265
|
+
*
|
|
266
|
+
* @param sessionId The session ID to target with the request.
|
|
267
|
+
* If not specified, the session to target is decided by the server.
|
|
268
|
+
*
|
|
269
|
+
* @throws {InvalidArgumentError} if the given sessionId does not exist.
|
|
270
|
+
*/
|
|
271
|
+
handleStopBufferedRangesUpdates: (sessionId?: IPlayerSessionId) => void;
|
|
272
|
+
/**
|
|
273
|
+
* This call is received when apps make at least one `IPlayerClient.registerStatusListener`
|
|
274
|
+
* call for sessionId from interactive component.
|
|
275
|
+
*
|
|
276
|
+
* Apps must start sending player session status updates corresponding to sessionId
|
|
277
|
+
* by calling `IPlayerServer.updateStatus` API from service component.
|
|
278
|
+
*
|
|
279
|
+
* @param sessionId The session ID to target with the request.
|
|
280
|
+
* If not specified, the session to target is decided by the server.
|
|
281
|
+
*
|
|
282
|
+
* @throws {InvalidArgumentError} if the given sessionId does not exist.
|
|
283
|
+
*/
|
|
284
|
+
handleStartStatusUpdates: (sessionId?: IPlayerSessionId) => void;
|
|
285
|
+
/**
|
|
286
|
+
* This call is received when apps unsubscribe all `IPlayerSessionStatusListener`
|
|
287
|
+
* instances for sessionId from interactive component.
|
|
288
|
+
*
|
|
289
|
+
* Apps must stop sending player session status updates corresponding to sessionId
|
|
290
|
+
* from service compoenent.
|
|
291
|
+
*
|
|
292
|
+
* @param sessionId The session ID to target with the request.
|
|
293
|
+
* If not specified, the session to target is decided by the server.
|
|
294
|
+
*
|
|
295
|
+
* @throws {InvalidArgumentError} if the given sessionId does not exist.
|
|
296
|
+
*/
|
|
297
|
+
handleStopStatusUpdates: (sessionId?: IPlayerSessionId) => void;
|
|
298
|
+
/**
|
|
299
|
+
* This call is received when apps make at least one `IPlayerClient.registerTrackListener`
|
|
300
|
+
* call for sessionId from interactive component.
|
|
301
|
+
*
|
|
302
|
+
* Apps must start sending player session track updates corresponding to sessionId by calling
|
|
303
|
+
* `IPlayerServer.addTrack` or `IPlayerServer.removeTrack` APIs from service component.
|
|
304
|
+
*
|
|
305
|
+
* @param sessionId The session ID to target with the request.
|
|
306
|
+
* If not specified, the session to target is decided by the server.
|
|
307
|
+
*
|
|
308
|
+
* @throws {InvalidArgumentError} if the given sessionId does not exist.
|
|
309
|
+
*/
|
|
310
|
+
handleStartTrackUpdates: (sessionId?: IPlayerSessionId) => void;
|
|
311
|
+
/**
|
|
312
|
+
* This call is received when apps unsubscribe all `IPlayerSessionTrackListener`
|
|
313
|
+
* instances for sessionId from interactive component.
|
|
314
|
+
*
|
|
315
|
+
* Apps must stop sending player session track updates corresponding to sessionId
|
|
316
|
+
* from service component.
|
|
317
|
+
*
|
|
318
|
+
* @param sessionId The session ID to target with the request.
|
|
319
|
+
* If not specified, the session to target is decided by the server.
|
|
320
|
+
*
|
|
321
|
+
* @throws {InvalidArgumentError} if the given sessionId does not exist.
|
|
322
|
+
*/
|
|
323
|
+
handleStopTrackUpdates: (sessionId?: IPlayerSessionId) => void;
|
|
324
|
+
/**
|
|
325
|
+
* This call is received when apps make at least one `IPlayerClient.registerMessageListener`
|
|
326
|
+
* call for sessionId from interactive component.
|
|
327
|
+
*
|
|
328
|
+
* Apps can start sending custom messages as JSON objects by calling
|
|
329
|
+
* `IPlayerServer.sendMessage` API corresponding to sessionId from service component.
|
|
330
|
+
*
|
|
331
|
+
* @param sessionId The session ID to target with the request.
|
|
332
|
+
* If not specified, the session to target is decided by the server.
|
|
333
|
+
*
|
|
334
|
+
* @throws {InvalidArgumentError} if the given sessionId does not exist.
|
|
335
|
+
*/
|
|
336
|
+
handleStartMessageUpdates: (sessionId?: IPlayerSessionId) => void;
|
|
337
|
+
/**
|
|
338
|
+
* This call is received when apps unsubscribe all `IPlayerSessionTrackListener`
|
|
339
|
+
* instances for sessionId from interactive component. So, service component should not
|
|
340
|
+
* send any message corresponding to sessionId as there is no receiver of
|
|
341
|
+
* these messages available.
|
|
342
|
+
*
|
|
343
|
+
* @param sessionId The session ID to target with the request.
|
|
344
|
+
* If not specified, the session to target is decided by the server.
|
|
345
|
+
*
|
|
346
|
+
* @throws {InvalidArgumentError} if the given sessionId does not exist.
|
|
347
|
+
*/
|
|
348
|
+
handleStopMessageUpdates: (sessionId?: IPlayerSessionId) => void;
|
|
349
|
+
/**
|
|
350
|
+
* This call is received when apps make at least one `IPlayerClient.registerErrorListener`
|
|
351
|
+
* call for sessionId from interactive component.
|
|
352
|
+
*
|
|
353
|
+
* Apps can start sending `IPlayerSessionError` as JSON objects by calling
|
|
354
|
+
* `IPlayerServer.sendError` API corresponding to sessionId from service component.
|
|
355
|
+
*
|
|
356
|
+
* @param sessionId The session ID to target with the request.
|
|
357
|
+
* If not specified, the session to target is decided by the server.
|
|
358
|
+
*
|
|
359
|
+
* @throws {InvalidArgumentError} if the given sessionId does not exist.
|
|
360
|
+
*/
|
|
361
|
+
handleStartErrorUpdates: (sessionId?: IPlayerSessionId) => void;
|
|
362
|
+
/**
|
|
363
|
+
* This call is received when apps unsubscribe all `IPlayerSessionErrorListener`
|
|
364
|
+
* instances for sessionId from interactive component. So, service component should not
|
|
365
|
+
* send any errors corresponding to sessionId as there is no receiver of
|
|
366
|
+
* these messages available.
|
|
367
|
+
*
|
|
368
|
+
* @param sessionId The session ID to target with the request.
|
|
369
|
+
* If not specified, the session to target is decided by the server.
|
|
370
|
+
*
|
|
371
|
+
* @throws {InvalidArgumentError} if the given sessionId does not exist.
|
|
372
|
+
*/
|
|
373
|
+
handleStopErrorUpdates: (sessionId?: IPlayerSessionId) => void;
|
|
374
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
declare function identityFunction<T>(value: T): T;
|
|
2
|
+
declare const _default: {
|
|
3
|
+
getConstants: () => {
|
|
4
|
+
const1: boolean;
|
|
5
|
+
const2: number;
|
|
6
|
+
const3: string;
|
|
7
|
+
};
|
|
8
|
+
voidFunc: () => {};
|
|
9
|
+
getBool: typeof identityFunction;
|
|
10
|
+
getNumber: typeof identityFunction;
|
|
11
|
+
getString: typeof identityFunction;
|
|
12
|
+
getArray: typeof identityFunction;
|
|
13
|
+
getArrayBuffer: typeof identityFunction;
|
|
14
|
+
getObject: typeof identityFunction;
|
|
15
|
+
getValue: typeof identityFunction;
|
|
16
|
+
getValueWithCallback: (callback: any) => void;
|
|
17
|
+
getValueWithPromise: (error: boolean) => Promise<string>;
|
|
18
|
+
getMajorVersion: () => number;
|
|
19
|
+
getMinorVersion: () => number;
|
|
20
|
+
getPatchVersion: () => number;
|
|
21
|
+
};
|
|
22
|
+
export default _default;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
function identityFunction(value) {
|
|
2
|
+
return value;
|
|
3
|
+
}
|
|
4
|
+
export default {
|
|
5
|
+
getConstants: () => ({
|
|
6
|
+
const1: true,
|
|
7
|
+
const2: 375,
|
|
8
|
+
const3: 'something',
|
|
9
|
+
}),
|
|
10
|
+
voidFunc: () => ({}),
|
|
11
|
+
getBool: identityFunction,
|
|
12
|
+
getNumber: identityFunction,
|
|
13
|
+
getString: identityFunction,
|
|
14
|
+
getArray: identityFunction,
|
|
15
|
+
getArrayBuffer: identityFunction,
|
|
16
|
+
getObject: identityFunction,
|
|
17
|
+
getValue: identityFunction,
|
|
18
|
+
getValueWithCallback: (callback) => {
|
|
19
|
+
callback('value from callback!');
|
|
20
|
+
},
|
|
21
|
+
getValueWithPromise: (error) => {
|
|
22
|
+
if (error) {
|
|
23
|
+
return Promise.reject('intentional promise rejection');
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
return Promise.resolve('result!');
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
getMajorVersion: () => 1,
|
|
30
|
+
getMinorVersion: () => 0,
|
|
31
|
+
getPatchVersion: () => 0,
|
|
32
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"versions": {
|
|
3
|
+
"2.0.5": "/com.amazon.kepler.kepler_player_server_2@IKeplerPlayerServer_0",
|
|
4
|
+
"2.0.6": "/com.amazon.kepler.kepler_player_server_2@IKeplerPlayerServer_0",
|
|
5
|
+
"2.1.0": "/com.amazon.kepler.kepler_player_server_2@IKeplerPlayerServer_1",
|
|
6
|
+
"2.1.1": "/com.amazon.kepler.kepler_player_server_2@IKeplerPlayerServer_1",
|
|
7
|
+
"2.1.2": "/com.amazon.kepler.kepler_player_server_2@IKeplerPlayerServer_1",
|
|
8
|
+
"2.1.3": "/com.amazon.kepler.kepler_player_server_2@IKeplerPlayerServer_1",
|
|
9
|
+
"2.2.0": "/com.amazon.kepler.kepler_player_server_2@IKeplerPlayerServer_2",
|
|
10
|
+
"2.2.1": "/com.amazon.kepler.kepler_player_server_2@IKeplerPlayerServer_2",
|
|
11
|
+
"2.2.2": "/com.amazon.kepler.kepler_player_server_2@IKeplerPlayerServer_2",
|
|
12
|
+
"2.2.3": "/com.amazon.kepler.kepler_player_server_2@IKeplerPlayerServer_2"
|
|
13
|
+
}
|
|
14
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"name": "@amazon-devices/kepler-player-server", "version": "2.2.3", "main": "dist/index.js", "types": "dist/index.d.ts", "files": ["dist", "react-native.config.js", "kepler-compatibility.json", "SystemModules", "SystemBundles", "kepler-transformed-package-info.json"], "scripts": {"clean": "rm -rf node_modules buildinfo.json dist bvm $(readlink -f build)", "docgen": "rm -rf docs && npx typedoc --logLevel Verbose --pretty false && zip server_docs.zip -r docs", "kepler-codegen": "keplerscript-turbomodule-api codegen src/turbo-modules/KeplerPlayerServerTurboModule.ts -o kepler/turbo-modules/ --new -s KeplerPlayerServerTurboModule && npm-run-all clean-codegen-backups", "clean-codegen-backups": "rm -rf kepler/turbo-modules/KeplerPlayerServerTurboModule.cpp.bak kepler/turbo-modules/KeplerPlayerServerTurboModule.h.bak", "test": "jest --colors", "lint": "eslint src test --ext .ts,.tsx", "lint:fix": "eslint src test --ext .ts,.tsx --fix", "build:js": "tsc -p tsconfig.json", "build": "npm-run-all build:js && [ -n \"$SKIP_TESTS\" ] || npm test", "build:debug": "npm-run-all build:js", "prepublishOnly": "KEPLER_NPM_COMMAND=npm-pretty-much react-native build-system-bundle-kepler"}, "dependencies": {"@amazon-devices/keplerscript-turbomodule-api": "^1.0.0"}, "devDependencies": {"@babel/runtime": "^7.7.7", "@react-native/eslint-config": "0.72.2", "@types/jest": "^28.0.0", "@typescript-eslint/eslint-plugin": "^5.30.0", "babel-jest": "^28.0.0", "eslint": "^8.12.0", "jest": "^28.0.0", "metro-react-native-babel-preset": "^0.76.5", "npm-run-all": "^4.1.5", "prettier": "^2.6.2", "ts-jest": "^28.0.0", "typescript": "4.8.4", "@amazon-devices/kepler-cli-platform": "^0", "@react-native-community/cli": "^11.2.0"}, "kepler": {"toolchain": "clang", "projectType": "turbomodule", "targets": ["tv"], "features": ["vega"]}, "license": "See license in LICENSE"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
|
|
2
|
+
module.exports = {
|
|
3
|
+
dependency: {
|
|
4
|
+
platforms: {
|
|
5
|
+
kepler: {
|
|
6
|
+
autolink: {
|
|
7
|
+
KeplerPlayerServerTurboModule: {
|
|
8
|
+
"libraryName": "libkeplerscript-playerserver-lib-1.so",
|
|
9
|
+
"linkDynamic": true,
|
|
10
|
+
"components": [],
|
|
11
|
+
"turbomodules": ["KeplerPlayerServerTurboModule"]
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
};
|