bedrock-agentcore 0.2.0 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -4
- package/dist/src/tools/browser/client.d.ts +19 -0
- package/dist/src/tools/browser/client.d.ts.map +1 -1
- package/dist/src/tools/browser/client.js +56 -0
- package/dist/src/tools/browser/client.js.map +1 -1
- package/dist/src/tools/browser/index.d.ts +1 -1
- package/dist/src/tools/browser/index.d.ts.map +1 -1
- package/dist/src/tools/browser/index.js.map +1 -1
- package/dist/src/tools/browser/live-view/BrowserLiveView.d.ts +10 -0
- package/dist/src/tools/browser/live-view/BrowserLiveView.d.ts.map +1 -0
- package/dist/src/tools/browser/live-view/BrowserLiveView.js +180 -0
- package/dist/src/tools/browser/live-view/BrowserLiveView.js.map +1 -0
- package/dist/src/tools/browser/live-view/index.d.ts +4 -0
- package/dist/src/tools/browser/live-view/index.d.ts.map +1 -0
- package/dist/src/tools/browser/live-view/index.js +3 -0
- package/dist/src/tools/browser/live-view/index.js.map +1 -0
- package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/README.md +26 -0
- package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/dcv-ui/EULA.txt +403 -0
- package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/dcv-ui/README.md +57 -0
- package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/dcv-ui/dcv-ui.js +7 -0
- package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/dcv-ui/third-party-licenses.txt +145 -0
- package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/dcvjs-esm/EULA.txt +403 -0
- package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/dcvjs-esm/README.md +50 -0
- package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/dcvjs-esm/dcv/broadwayh264decoder-worker.js +1 -0
- package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/dcvjs-esm/dcv/jsmpegdecoder-worker.js +1 -0
- package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/dcvjs-esm/dcv/lz4decoder-worker.js +1 -0
- package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/dcvjs-esm/dcv/microphoneprocessor.js +1 -0
- package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/dcvjs-esm/dcv.js +33 -0
- package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/dcvjs-esm/lib/broadway/Decoder.js +850 -0
- package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/dcvjs-esm/lib/jsmpeg/jsmpeg.min.js +1 -0
- package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/dcvjs-esm/lib/lz4/lz4_decoder.js +12 -0
- package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/dcvjs-esm/third-party-licenses.txt +1068 -0
- package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/dcvjs-umd/EULA.txt +403 -0
- package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/dcvjs-umd/README.md +50 -0
- package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/dcvjs-umd/dcv/broadwayh264decoder-worker.js +1 -0
- package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/dcvjs-umd/dcv/jsmpegdecoder-worker.js +1 -0
- package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/dcvjs-umd/dcv/lz4decoder-worker.js +1 -0
- package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/dcvjs-umd/dcv/microphoneprocessor.js +1 -0
- package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/dcvjs-umd/dcv.js +33 -0
- package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/dcvjs-umd/lib/broadway/Decoder.js +850 -0
- package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/dcvjs-umd/lib/jsmpeg/jsmpeg.min.js +1 -0
- package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/dcvjs-umd/lib/lz4/lz4_decoder.js +12 -0
- package/dist/src/tools/browser/live-view/nice-dcv-web-client-sdk/dcvjs-umd/third-party-licenses.txt +1068 -0
- package/dist/src/tools/browser/live-view/scaling.d.ts +9 -0
- package/dist/src/tools/browser/live-view/scaling.d.ts.map +1 -0
- package/dist/src/tools/browser/live-view/scaling.js +13 -0
- package/dist/src/tools/browser/live-view/scaling.js.map +1 -0
- package/dist/src/tools/browser/types.d.ts +152 -0
- package/dist/src/tools/browser/types.d.ts.map +1 -1
- package/package.json +29 -9
package/README.md
CHANGED
|
@@ -33,7 +33,13 @@
|
|
|
33
33
|
- **Managed tools** — Secure code execution and browser automation, ready to use.
|
|
34
34
|
- **Credential management** — Centralized API keys and OAuth tokens, injected at runtime.
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
### Framework Compatibility
|
|
37
|
+
|
|
38
|
+
The SDK is designed to work with any agent framework. Here's how:
|
|
39
|
+
|
|
40
|
+
- **Runtime** — Deploy agents built with any framework. The `BedrockAgentCoreApp` accepts any request handler — plug in [Strands Agents](https://strandsagents.com), [Vercel AI SDK](https://ai-sdk.dev), [LangChain](https://js.langchain.com), or your own custom logic.
|
|
41
|
+
- **Tools** — Code Interpreter and Browser tools include built-in integrations for [Strands Agents](https://strandsagents.com) and [Vercel AI SDK](https://ai-sdk.dev), so tools can be passed directly to those frameworks' agents. For other frameworks, use the core clients (`CodeInterpreter`, `PlaywrightBrowser`) directly and wire them into your own tool definitions.
|
|
42
|
+
- **Identity** — Credential wrappers (`withAccessToken`, `withApiKey`) work with any async function, regardless of framework.
|
|
37
43
|
|
|
38
44
|
---
|
|
39
45
|
|
|
@@ -57,7 +63,9 @@ const app = new BedrockAgentCoreApp({
|
|
|
57
63
|
requestSchema: z.object({ prompt: z.string() }),
|
|
58
64
|
process: async function* (request) {
|
|
59
65
|
for await (const event of agent.stream(request.prompt)) {
|
|
60
|
-
if (event.
|
|
66
|
+
if (event.type === 'modelContentBlockDeltaEvent' && event.delta?.type === 'textDelta') {
|
|
67
|
+
yield { event: 'message', data: { text: event.delta.text } }
|
|
68
|
+
}
|
|
61
69
|
}
|
|
62
70
|
},
|
|
63
71
|
},
|
|
@@ -75,14 +83,14 @@ app.run()
|
|
|
75
83
|
Give your agent secure code execution with three lines:
|
|
76
84
|
|
|
77
85
|
```typescript
|
|
78
|
-
import { CodeInterpreterTools } from 'bedrock-agentcore/
|
|
86
|
+
import { CodeInterpreterTools } from 'bedrock-agentcore/experimental/code-interpreter/strands'
|
|
79
87
|
import { Agent, BedrockModel } from '@strands-agents/sdk'
|
|
80
88
|
|
|
81
89
|
const codeInterpreter = new CodeInterpreterTools({ region: 'us-east-1' })
|
|
82
90
|
|
|
83
91
|
const agent = new Agent({
|
|
84
92
|
model: new BedrockModel({ modelId: 'global.amazon.nova-2-lite-v1:0' }),
|
|
85
|
-
tools: codeInterpreter.
|
|
93
|
+
tools: codeInterpreter.tools,
|
|
86
94
|
})
|
|
87
95
|
|
|
88
96
|
// Agent can now execute code in a secure sandboxed environment
|
|
@@ -42,6 +42,14 @@ export declare class Browser {
|
|
|
42
42
|
* @throws Error if a session is already active
|
|
43
43
|
*/
|
|
44
44
|
startSession(params?: StartSessionParams): Promise<SessionInfo>;
|
|
45
|
+
/**
|
|
46
|
+
* Attaches an existing session by ID so that signing methods
|
|
47
|
+
* (generateWebSocketUrl, generateLiveViewUrl) can be used
|
|
48
|
+
* without calling startSession().
|
|
49
|
+
*
|
|
50
|
+
* @param sessionId - The ID of an existing browser session
|
|
51
|
+
*/
|
|
52
|
+
attachSession(sessionId: string): void;
|
|
45
53
|
/**
|
|
46
54
|
* Stops the active browser session.
|
|
47
55
|
*
|
|
@@ -112,6 +120,17 @@ export declare class Browser {
|
|
|
112
120
|
* ```
|
|
113
121
|
*/
|
|
114
122
|
updateBrowserStream(params: UpdateStreamParams): Promise<UpdateStreamResponse>;
|
|
123
|
+
/**
|
|
124
|
+
* Generates a presigned HTTPS URL for the browser live-view (DCV streaming).
|
|
125
|
+
* Uses SigV4 presigning with query parameters — suitable for browser-side
|
|
126
|
+
* WebSocket connections where custom headers cannot be sent.
|
|
127
|
+
*
|
|
128
|
+
* @param expiresIn - URL expiration in seconds (default: 300)
|
|
129
|
+
* @returns Presigned HTTPS URL string
|
|
130
|
+
*
|
|
131
|
+
* @throws Error if no session is active
|
|
132
|
+
*/
|
|
133
|
+
generateLiveViewUrl(expiresIn?: number): Promise<string>;
|
|
115
134
|
/**
|
|
116
135
|
* Generates a WebSocket URL and authentication headers for browser automation.
|
|
117
136
|
* Uses AWS Signature Version 4 to sign the WebSocket connection request.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/tools/browser/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EAOvB,MAAM,mCAAmC,CAAA;AAM1C,OAAO,KAAK,EACV,mBAAmB,EACnB,WAAW,EACX,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EAEpB,kBAAkB,EAClB,oBAAoB,EAErB,MAAM,YAAY,CAAA;AAGnB;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,OAAO;IAClB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAE3B,SAAS,CAAC,OAAO,EAAE,sBAAsB,CAAA;IACzC,SAAS,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAO;IAC7C,OAAO,CAAC,oBAAoB,CAAuD;IAEnF;;;;OAIG;gBACS,MAAM,EAAE,mBAAmB;IAevC;;;;;;;OAOG;IACG,YAAY,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/tools/browser/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EAOvB,MAAM,mCAAmC,CAAA;AAM1C,OAAO,KAAK,EACV,mBAAmB,EACnB,WAAW,EACX,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EAEpB,kBAAkB,EAClB,oBAAoB,EAErB,MAAM,YAAY,CAAA;AAGnB;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,OAAO;IAClB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAE3B,SAAS,CAAC,OAAO,EAAE,sBAAsB,CAAA;IACzC,SAAS,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAO;IAC7C,OAAO,CAAC,oBAAoB,CAAuD;IAEnF;;;;OAIG;gBACS,MAAM,EAAE,mBAAmB;IAevC;;;;;;;OAOG;IACG,YAAY,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC;IA2CrE;;;;;;OAMG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAQtC;;;;OAIG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBlC;;;;;;;;;;;;;;;;;OAiBG;IACG,UAAU,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAsExE;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACG,YAAY,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAiC9E;;;;;;;;;;;;;;;;;;OAkBG;IACG,mBAAmB,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAqCpF;;;;;;;;;OASG;IACG,mBAAmB,CAAC,SAAS,SAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAmC3D;;;;;;;OAOG;IACG,oBAAoB,IAAI,OAAO,CAAC,mBAAmB,CAAC;CAiD3D"}
|
|
@@ -63,6 +63,9 @@ export class Browser {
|
|
|
63
63
|
const sessionName = params?.sessionName ?? DEFAULT_SESSION_NAME;
|
|
64
64
|
const sessionTimeoutSeconds = params?.timeout ?? DEFAULT_TIMEOUT;
|
|
65
65
|
// Prepare command input
|
|
66
|
+
// Our SDK types (ProxyEntry, BypassConfig, ProfileConfiguration) are convenience wrappers
|
|
67
|
+
// over the tagged-union shapes in @aws-sdk/client-bedrock-agentcore (Proxy, ProxyBypass,
|
|
68
|
+
// BrowserProfileConfiguration). The wire format is identical, so the assertion is safe.
|
|
66
69
|
const input = {
|
|
67
70
|
browserIdentifier: this.identifier,
|
|
68
71
|
name: sessionName,
|
|
@@ -73,6 +76,9 @@ export class Browser {
|
|
|
73
76
|
height: params.viewport.height,
|
|
74
77
|
}
|
|
75
78
|
: undefined,
|
|
79
|
+
...(params?.proxyConfiguration && { proxyConfiguration: params.proxyConfiguration }),
|
|
80
|
+
...(params?.extensions && { extensions: params.extensions }),
|
|
81
|
+
...(params?.profileConfiguration && { profileConfiguration: params.profileConfiguration }),
|
|
76
82
|
};
|
|
77
83
|
// Start the session
|
|
78
84
|
const command = new StartBrowserSessionCommand(input);
|
|
@@ -86,6 +92,20 @@ export class Browser {
|
|
|
86
92
|
this._session = sessionInfo;
|
|
87
93
|
return sessionInfo;
|
|
88
94
|
}
|
|
95
|
+
/**
|
|
96
|
+
* Attaches an existing session by ID so that signing methods
|
|
97
|
+
* (generateWebSocketUrl, generateLiveViewUrl) can be used
|
|
98
|
+
* without calling startSession().
|
|
99
|
+
*
|
|
100
|
+
* @param sessionId - The ID of an existing browser session
|
|
101
|
+
*/
|
|
102
|
+
attachSession(sessionId) {
|
|
103
|
+
this._session = {
|
|
104
|
+
sessionId,
|
|
105
|
+
sessionName: 'attached',
|
|
106
|
+
createdAt: new Date(),
|
|
107
|
+
};
|
|
108
|
+
}
|
|
89
109
|
/**
|
|
90
110
|
* Stops the active browser session.
|
|
91
111
|
*
|
|
@@ -266,6 +286,42 @@ export class Browser {
|
|
|
266
286
|
}
|
|
267
287
|
return result;
|
|
268
288
|
}
|
|
289
|
+
/**
|
|
290
|
+
* Generates a presigned HTTPS URL for the browser live-view (DCV streaming).
|
|
291
|
+
* Uses SigV4 presigning with query parameters — suitable for browser-side
|
|
292
|
+
* WebSocket connections where custom headers cannot be sent.
|
|
293
|
+
*
|
|
294
|
+
* @param expiresIn - URL expiration in seconds (default: 300)
|
|
295
|
+
* @returns Presigned HTTPS URL string
|
|
296
|
+
*
|
|
297
|
+
* @throws Error if no session is active
|
|
298
|
+
*/
|
|
299
|
+
async generateLiveViewUrl(expiresIn = 300) {
|
|
300
|
+
if (!this._session) {
|
|
301
|
+
throw new Error('No active session. Call startSession() first.');
|
|
302
|
+
}
|
|
303
|
+
const host = `bedrock-agentcore.${this.region}.amazonaws.com`;
|
|
304
|
+
const path = `/browser-streams/${this.identifier}/sessions/${this._session.sessionId}/live-view`;
|
|
305
|
+
const credentialsProvider = this._credentialsProvider ?? fromNodeProviderChain();
|
|
306
|
+
const credentials = await credentialsProvider();
|
|
307
|
+
const signer = new SignatureV4({
|
|
308
|
+
service: 'bedrock-agentcore',
|
|
309
|
+
region: this.region,
|
|
310
|
+
credentials,
|
|
311
|
+
sha256: Sha256,
|
|
312
|
+
});
|
|
313
|
+
const presigned = await signer.presign(new HttpRequest({
|
|
314
|
+
protocol: 'https:',
|
|
315
|
+
hostname: host,
|
|
316
|
+
path,
|
|
317
|
+
method: 'GET',
|
|
318
|
+
headers: { host },
|
|
319
|
+
}), { expiresIn });
|
|
320
|
+
const qs = Object.entries(presigned.query ?? {})
|
|
321
|
+
.map(([k, v]) => `${encodeURIComponent(k)}=${encodeURIComponent(String(v))}`)
|
|
322
|
+
.join('&');
|
|
323
|
+
return `https://${host}${path}?${qs}`;
|
|
324
|
+
}
|
|
269
325
|
/**
|
|
270
326
|
* Generates a WebSocket URL and authentication headers for browser automation.
|
|
271
327
|
* Uses AWS Signature Version 4 to sign the WebSocket connection request.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../src/tools/browser/client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,0BAA0B,EAE1B,yBAAyB,EACzB,wBAAwB,EACxB,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AAErE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAe9C,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAEtG;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,OAAO,OAAO;IACT,MAAM,CAAQ;IACd,UAAU,CAAQ;IAEjB,OAAO,CAAwB;IAC/B,QAAQ,GAAuB,IAAI,CAAA;IACrC,oBAAoB,GAA8C,SAAS,CAAA;IAEnF;;;;OAIG;IACH,YAAY,MAA2B;QACrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,cAAc,CAAA;QACvE,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,kBAAkB,CAAA;QACzD,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC,mBAAmB,CAAA;QAEtD,IAAI,CAAC,OAAO,GAAG,IAAI,sBAAsB,CAAC;YACxC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,CAAC,IAAI,CAAC,oBAAoB,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,oBAAoB,EAAE,CAAC;SAC7E,CAAC,CAAA;IACJ,CAAC;IAED,8BAA8B;IAC9B,qBAAqB;IACrB,8BAA8B;IAE9B;;;;;;;OAOG;IACH,KAAK,CAAC,YAAY,CAAC,MAA2B;QAC5C,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAA;QACtE,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,EAAE,WAAW,IAAI,oBAAoB,CAAA;QAC/D,MAAM,qBAAqB,GAAG,MAAM,EAAE,OAAO,IAAI,eAAe,CAAA;QAEhE,wBAAwB;QACxB,MAAM,KAAK,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../src/tools/browser/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { Browser } from './client.js';
|
|
2
|
-
export type { BrowserClientConfig, SessionInfo, StartSessionParams, ViewportConfig, WebSocketConnection, SessionStatus, BrowserOperationResult, } from './types.js';
|
|
2
|
+
export type { BrowserClientConfig, SessionInfo, StartSessionParams, ViewportConfig, BasicAuth, ProxyCredentials, ExternalProxy, ProxyEntry, BypassConfig, ProxyConfiguration, S3Location, ResourceLocation, BrowserExtension, ProfileConfiguration, SessionConfiguration, WebSocketConnection, SessionStatus, BrowserOperationResult, } from './types.js';
|
|
3
3
|
export { DEFAULT_IDENTIFIER, DEFAULT_SESSION_NAME, DEFAULT_TIMEOUT } from './types.js';
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/tools/browser/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,YAAY,EACV,mBAAmB,EACnB,WAAW,EACX,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,sBAAsB,GACvB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/tools/browser/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,YAAY,EACV,mBAAmB,EACnB,WAAW,EACX,kBAAkB,EAClB,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,aAAa,EACb,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,aAAa,EACb,sBAAsB,GACvB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/tools/browser/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/tools/browser/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAqBrC,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface BrowserLiveViewProps {
|
|
2
|
+
/** Required. SigV4-presigned DCV live-view URL. */
|
|
3
|
+
signedUrl: string;
|
|
4
|
+
/** Remote desktop width — should match viewPort.width from StartSession. Default: 1920. */
|
|
5
|
+
remoteWidth?: number;
|
|
6
|
+
/** Remote desktop height — should match viewPort.height from StartSession. Default: 1080. */
|
|
7
|
+
remoteHeight?: number;
|
|
8
|
+
}
|
|
9
|
+
export declare const BrowserLiveView: ({ signedUrl: externalSignedUrl, remoteWidth, remoteHeight, }: BrowserLiveViewProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
10
|
+
//# sourceMappingURL=BrowserLiveView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BrowserLiveView.d.ts","sourceRoot":"","sources":["../../../../../src/tools/browser/live-view/BrowserLiveView.tsx"],"names":[],"mappings":"AASA,MAAM,WAAW,oBAAoB;IACnC,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAA;IACjB,2FAA2F;IAC3F,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,6FAA6F;IAC7F,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAgBD,eAAO,MAAM,eAAe,GAAI,8DAI7B,oBAAoB,mDA6MtB,CAAA"}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/// <reference lib="dom" />
|
|
3
|
+
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
4
|
+
import dcv from 'dcv';
|
|
5
|
+
import { DCVViewer } from 'dcv-ui';
|
|
6
|
+
import { calculateScale } from './scaling.js';
|
|
7
|
+
const authStateMap = new Map();
|
|
8
|
+
const DEFAULT_REMOTE_WIDTH = 1920;
|
|
9
|
+
const DEFAULT_REMOTE_HEIGHT = 1080;
|
|
10
|
+
export const BrowserLiveView = ({ signedUrl: externalSignedUrl, remoteWidth = DEFAULT_REMOTE_WIDTH, remoteHeight = DEFAULT_REMOTE_HEIGHT, }) => {
|
|
11
|
+
const cached = authStateMap.get(externalSignedUrl);
|
|
12
|
+
const [dcvError, setDcvError] = useState(null);
|
|
13
|
+
const [authenticated, setAuthenticated] = useState(() => cached?.authenticated ?? false);
|
|
14
|
+
const [sessionId, setSessionId] = useState(() => cached?.sessionId ?? '');
|
|
15
|
+
const [authToken, setAuthToken] = useState(() => cached?.authToken ?? '');
|
|
16
|
+
const mountedRef = useRef(true);
|
|
17
|
+
const connectionRef = useRef(null);
|
|
18
|
+
const containerRef = useRef(null);
|
|
19
|
+
const resizeObserverRef = useRef(null);
|
|
20
|
+
const mutationObserverRef = useRef(null);
|
|
21
|
+
// Cleanup on unmount — disconnect DCV connection and observers
|
|
22
|
+
useEffect(() => {
|
|
23
|
+
mountedRef.current = true;
|
|
24
|
+
return () => {
|
|
25
|
+
mountedRef.current = false;
|
|
26
|
+
connectionRef.current?.disconnect();
|
|
27
|
+
resizeObserverRef.current?.disconnect();
|
|
28
|
+
mutationObserverRef.current?.disconnect();
|
|
29
|
+
};
|
|
30
|
+
}, []);
|
|
31
|
+
const onPromptCredentials = useCallback(() => { }, []);
|
|
32
|
+
const httpExtraSearchParamsCb = useCallback((_conn) => {
|
|
33
|
+
if (!externalSignedUrl)
|
|
34
|
+
return new URLSearchParams();
|
|
35
|
+
return new URL(externalSignedUrl).searchParams;
|
|
36
|
+
}, [externalSignedUrl]);
|
|
37
|
+
const onError = useCallback((_authObj, _error) => {
|
|
38
|
+
const state = authStateMap.get(externalSignedUrl);
|
|
39
|
+
if (state)
|
|
40
|
+
state.authenticating = false;
|
|
41
|
+
}, [externalSignedUrl]);
|
|
42
|
+
const onSuccess = useCallback((_, result) => {
|
|
43
|
+
const resultObj = result[0] || {};
|
|
44
|
+
const newSessionId = resultObj.sessionId || '';
|
|
45
|
+
const newAuthToken = resultObj.authToken || '';
|
|
46
|
+
authStateMap.set(externalSignedUrl, {
|
|
47
|
+
authenticated: true,
|
|
48
|
+
sessionId: newSessionId,
|
|
49
|
+
authToken: newAuthToken,
|
|
50
|
+
authenticating: false,
|
|
51
|
+
});
|
|
52
|
+
if (mountedRef.current) {
|
|
53
|
+
setSessionId(newSessionId);
|
|
54
|
+
setAuthToken(newAuthToken);
|
|
55
|
+
setDcvError(null);
|
|
56
|
+
setAuthenticated(true);
|
|
57
|
+
}
|
|
58
|
+
}, [externalSignedUrl]);
|
|
59
|
+
const handleDisconnect = useCallback((_reason) => { }, []);
|
|
60
|
+
const authenticate = useCallback(() => {
|
|
61
|
+
const state = authStateMap.get(externalSignedUrl);
|
|
62
|
+
if (!externalSignedUrl || state?.authenticating || state?.authenticated)
|
|
63
|
+
return;
|
|
64
|
+
authStateMap.set(externalSignedUrl, {
|
|
65
|
+
authenticated: false,
|
|
66
|
+
sessionId: '',
|
|
67
|
+
authToken: '',
|
|
68
|
+
authenticating: true,
|
|
69
|
+
});
|
|
70
|
+
try {
|
|
71
|
+
dcv.setLogLevel(dcv.LogLevel.INFO);
|
|
72
|
+
dcv.authenticate(externalSignedUrl, {
|
|
73
|
+
promptCredentials: onPromptCredentials,
|
|
74
|
+
error: onError,
|
|
75
|
+
success: onSuccess,
|
|
76
|
+
httpExtraSearchParams: httpExtraSearchParamsCb,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
const s = authStateMap.get(externalSignedUrl);
|
|
81
|
+
if (s)
|
|
82
|
+
s.authenticating = false;
|
|
83
|
+
if (mountedRef.current) {
|
|
84
|
+
setDcvError(`Authentication error: ${error instanceof Error ? error.message : 'Unknown'}`);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}, [externalSignedUrl, onError, onSuccess, onPromptCredentials, httpExtraSearchParamsCb]);
|
|
88
|
+
// Trigger authentication when URL is ready
|
|
89
|
+
useEffect(() => {
|
|
90
|
+
if (!authenticated && externalSignedUrl && !dcvError)
|
|
91
|
+
authenticate();
|
|
92
|
+
}, [authenticated, externalSignedUrl, authenticate, dcvError]);
|
|
93
|
+
const onConnectionEstablished = useCallback((conn) => {
|
|
94
|
+
connectionRef.current = conn;
|
|
95
|
+
let lastApplyTime = 0;
|
|
96
|
+
const DEBOUNCE_MS = 100;
|
|
97
|
+
const lockDisplayLayout = () => {
|
|
98
|
+
try {
|
|
99
|
+
conn.requestDisplayLayout?.([
|
|
100
|
+
{
|
|
101
|
+
name: 'Main Display',
|
|
102
|
+
rect: { x: 0, y: 0, width: remoteWidth, height: remoteHeight },
|
|
103
|
+
primary: true,
|
|
104
|
+
},
|
|
105
|
+
]);
|
|
106
|
+
}
|
|
107
|
+
catch {
|
|
108
|
+
// requestDisplayLayout may not be available yet
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
const applyScaling = () => {
|
|
112
|
+
const container = containerRef.current;
|
|
113
|
+
if (!container)
|
|
114
|
+
return;
|
|
115
|
+
const { width: w, height: h } = container.getBoundingClientRect();
|
|
116
|
+
const cw = Math.floor(w);
|
|
117
|
+
const ch = Math.floor(h);
|
|
118
|
+
if (cw <= 0 || ch <= 0)
|
|
119
|
+
return;
|
|
120
|
+
lastApplyTime = Date.now();
|
|
121
|
+
const dcvContainer = container.querySelector('#dcv-container');
|
|
122
|
+
if (dcvContainer) {
|
|
123
|
+
Object.assign(dcvContainer.style, { width: `${cw}px`, height: `${ch}px`, overflow: 'hidden' });
|
|
124
|
+
}
|
|
125
|
+
const dcvDisplay = container.querySelector('#dcv-display');
|
|
126
|
+
if (dcvDisplay) {
|
|
127
|
+
const { scale, offsetX } = calculateScale(cw, ch, remoteWidth, remoteHeight);
|
|
128
|
+
Object.assign(dcvDisplay.style, {
|
|
129
|
+
width: `${remoteWidth}px`,
|
|
130
|
+
height: `${remoteHeight}px`,
|
|
131
|
+
transformOrigin: 'top left',
|
|
132
|
+
position: 'absolute',
|
|
133
|
+
top: '0',
|
|
134
|
+
transform: `scale(${scale})`,
|
|
135
|
+
left: `${offsetX}px`,
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
lockDisplayLayout();
|
|
139
|
+
};
|
|
140
|
+
const setupMutationObserver = () => {
|
|
141
|
+
const container = containerRef.current;
|
|
142
|
+
const dcvDisplay = container?.querySelector('#dcv-display');
|
|
143
|
+
if (!dcvDisplay)
|
|
144
|
+
return;
|
|
145
|
+
mutationObserverRef.current?.disconnect();
|
|
146
|
+
mutationObserverRef.current = new MutationObserver(() => {
|
|
147
|
+
if (Date.now() - lastApplyTime < DEBOUNCE_MS)
|
|
148
|
+
return;
|
|
149
|
+
applyScaling();
|
|
150
|
+
});
|
|
151
|
+
mutationObserverRef.current.observe(dcvDisplay, { attributes: true, attributeFilter: ['style'] });
|
|
152
|
+
};
|
|
153
|
+
setTimeout(() => {
|
|
154
|
+
applyScaling();
|
|
155
|
+
setupMutationObserver();
|
|
156
|
+
}, 200);
|
|
157
|
+
if (containerRef.current && !resizeObserverRef.current) {
|
|
158
|
+
resizeObserverRef.current = new ResizeObserver(applyScaling);
|
|
159
|
+
resizeObserverRef.current.observe(containerRef.current);
|
|
160
|
+
}
|
|
161
|
+
}, [remoteWidth, remoteHeight]);
|
|
162
|
+
if (dcvError) {
|
|
163
|
+
return _jsxs("div", { style: { color: 'red', padding: '20px' }, children: ["DCV Error: ", dcvError] });
|
|
164
|
+
}
|
|
165
|
+
if (!authenticated)
|
|
166
|
+
return null;
|
|
167
|
+
return (_jsx("div", { ref: containerRef, style: { width: '100%', height: '100%', position: 'relative', overflow: 'hidden' }, children: _jsx(DCVViewer, { dcv: {
|
|
168
|
+
sessionId,
|
|
169
|
+
authToken,
|
|
170
|
+
serverUrl: externalSignedUrl,
|
|
171
|
+
baseUrl: '/nice-dcv-web-client-sdk/dcvjs-esm',
|
|
172
|
+
onDisconnect: handleDisconnect,
|
|
173
|
+
onConnectionEstablished,
|
|
174
|
+
logLevel: dcv.LogLevel.INFO,
|
|
175
|
+
observers: { httpExtraSearchParams: httpExtraSearchParamsCb },
|
|
176
|
+
}, uiConfig: {
|
|
177
|
+
toolbar: { visible: false, fullscreenButton: false, multimonitorButton: false },
|
|
178
|
+
} }) }));
|
|
179
|
+
};
|
|
180
|
+
//# sourceMappingURL=BrowserLiveView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BrowserLiveView.js","sourceRoot":"","sources":["../../../../../src/tools/browser/live-view/BrowserLiveView.tsx"],"names":[],"mappings":";AAAA,2BAA2B;AAC3B,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhE,OAAO,GAAG,MAAM,KAAK,CAAA;AAErB,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAElC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAoB7C,MAAM,YAAY,GAAG,IAAI,GAAG,EAAqB,CAAA;AAEjD,MAAM,oBAAoB,GAAG,IAAI,CAAA;AACjC,MAAM,qBAAqB,GAAG,IAAI,CAAA;AAElC,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAC9B,SAAS,EAAE,iBAAiB,EAC5B,WAAW,GAAG,oBAAoB,EAClC,YAAY,GAAG,qBAAqB,GACf,EAAE,EAAE;IACzB,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;IAClD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAA;IAC7D,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,aAAa,IAAI,KAAK,CAAC,CAAA;IACxF,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,SAAS,IAAI,EAAE,CAAC,CAAA;IACzE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,SAAS,IAAI,EAAE,CAAC,CAAA;IAEzE,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;IAC/B,MAAM,aAAa,GAAG,MAAM,CAAuB,IAAI,CAAC,CAAA;IACxD,MAAM,YAAY,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;IACjD,MAAM,iBAAiB,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAA;IAC7D,MAAM,mBAAmB,GAAG,MAAM,CAA0B,IAAI,CAAC,CAAA;IAEjE,+DAA+D;IAC/D,SAAS,CAAC,GAAG,EAAE;QACb,UAAU,CAAC,OAAO,GAAG,IAAI,CAAA;QACzB,OAAO,GAAG,EAAE;YACV,UAAU,CAAC,OAAO,GAAG,KAAK,CAAA;YAC1B,aAAa,CAAC,OAAO,EAAE,UAAU,EAAE,CAAA;YACnC,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,CAAA;YACvC,mBAAmB,CAAC,OAAO,EAAE,UAAU,EAAE,CAAA;QAC3C,CAAC,CAAA;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,MAAM,mBAAmB,GAAG,WAAW,CAAC,GAAG,EAAE,GAAE,CAAC,EAAE,EAAE,CAAC,CAAA;IAErD,MAAM,uBAAuB,GAAG,WAAW,CACzC,CAAC,KAAoB,EAAE,EAAE;QACvB,IAAI,CAAC,iBAAiB;YAAE,OAAO,IAAI,eAAe,EAAE,CAAA;QACpD,OAAO,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAC,YAAY,CAAA;IAChD,CAAC,EACD,CAAC,iBAAiB,CAAC,CACpB,CAAA;IAED,MAAM,OAAO,GAAG,WAAW,CACzB,CAAC,QAAiB,EAAE,MAAe,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;QACjD,IAAI,KAAK;YAAE,KAAK,CAAC,cAAc,GAAG,KAAK,CAAA;IACzC,CAAC,EACD,CAAC,iBAAiB,CAAC,CACpB,CAAA;IAED,MAAM,SAAS,GAAG,WAAW,CAC3B,CAAC,CAAU,EAAE,MAAqC,EAAE,EAAE;QACpD,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QACjC,MAAM,YAAY,GAAG,SAAS,CAAC,SAAS,IAAI,EAAE,CAAA;QAC9C,MAAM,YAAY,GAAG,SAAS,CAAC,SAAS,IAAI,EAAE,CAAA;QAE9C,YAAY,CAAC,GAAG,CAAC,iBAAiB,EAAE;YAClC,aAAa,EAAE,IAAI;YACnB,SAAS,EAAE,YAAY;YACvB,SAAS,EAAE,YAAY;YACvB,cAAc,EAAE,KAAK;SACtB,CAAC,CAAA;QAEF,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YACvB,YAAY,CAAC,YAAY,CAAC,CAAA;YAC1B,YAAY,CAAC,YAAY,CAAC,CAAA;YAC1B,WAAW,CAAC,IAAI,CAAC,CAAA;YACjB,gBAAgB,CAAC,IAAI,CAAC,CAAA;QACxB,CAAC;IACH,CAAC,EACD,CAAC,iBAAiB,CAAC,CACpB,CAAA;IAED,MAAM,gBAAgB,GAAG,WAAW,CAAC,CAAC,OAAgB,EAAE,EAAE,GAAE,CAAC,EAAE,EAAE,CAAC,CAAA;IAElE,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;QACpC,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;QACjD,IAAI,CAAC,iBAAiB,IAAI,KAAK,EAAE,cAAc,IAAI,KAAK,EAAE,aAAa;YAAE,OAAM;QAE/E,YAAY,CAAC,GAAG,CAAC,iBAAiB,EAAE;YAClC,aAAa,EAAE,KAAK;YACpB,SAAS,EAAE,EAAE;YACb,SAAS,EAAE,EAAE;YACb,cAAc,EAAE,IAAI;SACrB,CAAC,CAAA;QAEF,IAAI,CAAC;YACH,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;YAClC,GAAG,CAAC,YAAY,CAAC,iBAAiB,EAAE;gBAClC,iBAAiB,EAAE,mBAAmB;gBACtC,KAAK,EAAE,OAAO;gBACd,OAAO,EAAE,SAAS;gBAClB,qBAAqB,EAAE,uBAAuB;aACvB,CAAC,CAAA;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;YAC7C,IAAI,CAAC;gBAAE,CAAC,CAAC,cAAc,GAAG,KAAK,CAAA;YAC/B,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;gBACvB,WAAW,CAAC,yBAAyB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAA;YAC5F,CAAC;QACH,CAAC;IACH,CAAC,EAAE,CAAC,iBAAiB,EAAE,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,uBAAuB,CAAC,CAAC,CAAA;IAEzF,2CAA2C;IAC3C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,aAAa,IAAI,iBAAiB,IAAI,CAAC,QAAQ;YAAE,YAAY,EAAE,CAAA;IACtE,CAAC,EAAE,CAAC,aAAa,EAAE,iBAAiB,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAA;IAE9D,MAAM,uBAAuB,GAAG,WAAW,CACzC,CAAC,IAAmB,EAAE,EAAE;QACtB,aAAa,CAAC,OAAO,GAAG,IAAI,CAAA;QAE5B,IAAI,aAAa,GAAG,CAAC,CAAA;QACrB,MAAM,WAAW,GAAG,GAAG,CAAA;QAEvB,MAAM,iBAAiB,GAAG,GAAG,EAAE;YAC7B,IAAI,CAAC;gBACH,IAAI,CAAC,oBAAoB,EAAE,CAAC;oBAC1B;wBACE,IAAI,EAAE,cAAc;wBACpB,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE;wBAC9D,OAAO,EAAE,IAAI;qBACd;iBACF,CAAC,CAAA;YACJ,CAAC;YAAC,MAAM,CAAC;gBACP,gDAAgD;YAClD,CAAC;QACH,CAAC,CAAA;QAED,MAAM,YAAY,GAAG,GAAG,EAAE;YACxB,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAA;YACtC,IAAI,CAAC,SAAS;gBAAE,OAAM;YAEtB,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,qBAAqB,EAAE,CAAA;YACjE,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YACxB,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YACxB,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;gBAAE,OAAM;YAE9B,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YAE1B,MAAM,YAAY,GAAG,SAAS,CAAC,aAAa,CAAc,gBAAgB,CAAC,CAAA;YAC3E,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAA;YAChG,CAAC;YAED,MAAM,UAAU,GAAG,SAAS,CAAC,aAAa,CAAc,cAAc,CAAC,CAAA;YACvE,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,YAAY,CAAC,CAAA;gBAC5E,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE;oBAC9B,KAAK,EAAE,GAAG,WAAW,IAAI;oBACzB,MAAM,EAAE,GAAG,YAAY,IAAI;oBAC3B,eAAe,EAAE,UAAU;oBAC3B,QAAQ,EAAE,UAAU;oBACpB,GAAG,EAAE,GAAG;oBACR,SAAS,EAAE,SAAS,KAAK,GAAG;oBAC5B,IAAI,EAAE,GAAG,OAAO,IAAI;iBACrB,CAAC,CAAA;YACJ,CAAC;YAED,iBAAiB,EAAE,CAAA;QACrB,CAAC,CAAA;QAED,MAAM,qBAAqB,GAAG,GAAG,EAAE;YACjC,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAA;YACtC,MAAM,UAAU,GAAG,SAAS,EAAE,aAAa,CAAc,cAAc,CAAC,CAAA;YACxE,IAAI,CAAC,UAAU;gBAAE,OAAM;YAEvB,mBAAmB,CAAC,OAAO,EAAE,UAAU,EAAE,CAAA;YACzC,mBAAmB,CAAC,OAAO,GAAG,IAAI,gBAAgB,CAAC,GAAG,EAAE;gBACtD,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,GAAG,WAAW;oBAAE,OAAM;gBACpD,YAAY,EAAE,CAAA;YAChB,CAAC,CAAC,CAAA;YACF,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACnG,CAAC,CAAA;QAED,UAAU,CAAC,GAAG,EAAE;YACd,YAAY,EAAE,CAAA;YACd,qBAAqB,EAAE,CAAA;QACzB,CAAC,EAAE,GAAG,CAAC,CAAA;QAEP,IAAI,YAAY,CAAC,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;YACvD,iBAAiB,CAAC,OAAO,GAAG,IAAI,cAAc,CAAC,YAAY,CAAC,CAAA;YAC5D,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;QACzD,CAAC;IACH,CAAC,EACD,CAAC,WAAW,EAAE,YAAY,CAAC,CAC5B,CAAA;IAED,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,eAAK,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,4BAAc,QAAQ,IAAO,CAAA;IACnF,CAAC;IAED,IAAI,CAAC,aAAa;QAAE,OAAO,IAAI,CAAA;IAE/B,OAAO,CACL,cAAK,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,YACxG,KAAC,SAAS,IACR,GAAG,EAAE;gBACH,SAAS;gBACT,SAAS;gBACT,SAAS,EAAE,iBAAiB;gBAC5B,OAAO,EAAE,oCAAoC;gBAC7C,YAAY,EAAE,gBAAgB;gBAC9B,uBAAuB;gBACvB,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI;gBAC3B,SAAS,EAAE,EAAE,qBAAqB,EAAE,uBAAuB,EAAE;aAC9D,EACD,QAAQ,EAAE;gBACR,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE;aAChF,GACD,GACE,CACP,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/tools/browser/live-view/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/tools/browser/live-view/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEtD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Amazon DCV Web SDK
|
|
2
|
+
|
|
3
|
+
## Amazon DCV
|
|
4
|
+
|
|
5
|
+
Amazon DCV is a high-performance remote display protocol. It lets you securely deliver
|
|
6
|
+
remote desktops and application streaming from any cloud or data center to any device,
|
|
7
|
+
over varying network conditions. By using Amazon DCV with Amazon EC2, you can run graphics-intensive
|
|
8
|
+
applications remotely on Amazon EC2 instances. You can then stream the results to
|
|
9
|
+
more modest client machines, which eliminates the need for expensive dedicated workstations.
|
|
10
|
+
|
|
11
|
+
## Amazon DCV Web Client SDK
|
|
12
|
+
|
|
13
|
+
The Amazon DCV Web Client SDK is a JavaScript library that you can use to develop your
|
|
14
|
+
own Amazon DCV web browser client applications. Your end users can use these applications
|
|
15
|
+
to connect to and interact with a running Amazon DCV session.
|
|
16
|
+
|
|
17
|
+
This library is exported in both ESM and UMD formats within the corresponding folders.
|
|
18
|
+
|
|
19
|
+
## Amazon DCV Web UI SDK
|
|
20
|
+
|
|
21
|
+
The Amazon DCV Web UI SDK is a JavaScript library exposing a single React component that
|
|
22
|
+
provides the user interface to interact with the Amazon DCV Web Client in-session experience.
|
|
23
|
+
|
|
24
|
+
Users are still responsible for the authentication against the Amazon DCV Server,
|
|
25
|
+
before connecting to a Amazon DCV session and use the `DCVViewer` React component.
|
|
26
|
+
Hence, users of this library should also import the Amazon DCV Web Client SDK in their React applications.
|