@daytona/sdk 0.197.0 → 0.198.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/cjs/Daytona.d.ts +15 -1
- package/cjs/Daytona.js +32 -7
- package/cjs/Daytona.js.map +1 -1
- package/cjs/Sandbox.d.ts +50 -4
- package/cjs/Sandbox.js +344 -136
- package/cjs/Sandbox.js.map +1 -1
- package/cjs/utils/EventDispatcher.d.ts +85 -0
- package/cjs/utils/EventDispatcher.js +398 -0
- package/cjs/utils/EventDispatcher.js.map +1 -0
- package/cjs/utils/EventSubscriptionManager.d.ts +14 -0
- package/cjs/utils/EventSubscriptionManager.js +98 -0
- package/cjs/utils/EventSubscriptionManager.js.map +1 -0
- package/esm/Daytona.d.ts +15 -1
- package/esm/Daytona.js +32 -7
- package/esm/Daytona.js.map +1 -1
- package/esm/Sandbox.d.ts +50 -4
- package/esm/Sandbox.js +344 -136
- package/esm/Sandbox.js.map +1 -1
- package/esm/utils/EventDispatcher.d.ts +85 -0
- package/esm/utils/EventDispatcher.js +394 -0
- package/esm/utils/EventDispatcher.js.map +1 -0
- package/esm/utils/EventSubscriptionManager.d.ts +14 -0
- package/esm/utils/EventSubscriptionManager.js +94 -0
- package/esm/utils/EventSubscriptionManager.js.map +1 -0
- package/esm/utils/Import.js +1 -1
- package/package.json +5 -4
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright Daytona Platforms Inc.
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
function createSubscriptionId() {
|
|
6
|
+
// Browser-safe UUID generation.
|
|
7
|
+
if (typeof globalThis.crypto?.randomUUID === 'function') {
|
|
8
|
+
return globalThis.crypto.randomUUID();
|
|
9
|
+
}
|
|
10
|
+
const randomHex = () => Math.floor(Math.random() * 0xffffffff)
|
|
11
|
+
.toString(16)
|
|
12
|
+
.padStart(8, '0');
|
|
13
|
+
return `${randomHex()}${randomHex()}${randomHex()}${randomHex()}`;
|
|
14
|
+
}
|
|
15
|
+
export class EventSubscriptionManager {
|
|
16
|
+
dispatcher;
|
|
17
|
+
static SUBSCRIPTION_TTL = 300;
|
|
18
|
+
subscriptions = new Map();
|
|
19
|
+
_closed = false;
|
|
20
|
+
constructor(dispatcher) {
|
|
21
|
+
this.dispatcher = dispatcher;
|
|
22
|
+
}
|
|
23
|
+
subscribe(resourceId, handler, events) {
|
|
24
|
+
// No-op when shut down or when streaming is disabled (no dispatcher) — callers poll.
|
|
25
|
+
if (this._closed || !this.dispatcher) {
|
|
26
|
+
return '';
|
|
27
|
+
}
|
|
28
|
+
const subId = createSubscriptionId();
|
|
29
|
+
const unsubscribe = this.dispatcher.subscribe(resourceId, handler, events);
|
|
30
|
+
try {
|
|
31
|
+
if (this._closed) {
|
|
32
|
+
throw new Error('EventSubscriptionManager is closed');
|
|
33
|
+
}
|
|
34
|
+
this.subscriptions.set(subId, {
|
|
35
|
+
unsubscribe,
|
|
36
|
+
timer: this.createTimer(subId),
|
|
37
|
+
});
|
|
38
|
+
return subId;
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
// Rollback dispatcher subscription on failure.
|
|
42
|
+
unsubscribe();
|
|
43
|
+
if (this._closed) {
|
|
44
|
+
return '';
|
|
45
|
+
}
|
|
46
|
+
throw error;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
refresh(subId) {
|
|
50
|
+
// Reject operations after shutdown to prevent use-after-close.
|
|
51
|
+
if (this._closed) {
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
const subscription = this.subscriptions.get(subId);
|
|
55
|
+
if (!subscription) {
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
clearTimeout(subscription.timer);
|
|
59
|
+
subscription.timer = this.createTimer(subId);
|
|
60
|
+
return true;
|
|
61
|
+
}
|
|
62
|
+
unsubscribe(subId) {
|
|
63
|
+
const subscription = this.subscriptions.get(subId);
|
|
64
|
+
if (!subscription) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
clearTimeout(subscription.timer);
|
|
68
|
+
this.subscriptions.delete(subId);
|
|
69
|
+
subscription.unsubscribe();
|
|
70
|
+
}
|
|
71
|
+
shutdown() {
|
|
72
|
+
this._closed = true;
|
|
73
|
+
for (const [subId, subscription] of this.subscriptions) {
|
|
74
|
+
clearTimeout(subscription.timer);
|
|
75
|
+
this.subscriptions.delete(subId);
|
|
76
|
+
subscription.unsubscribe();
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
createTimer(subId) {
|
|
80
|
+
const timer = setTimeout(() => {
|
|
81
|
+
const subscription = this.subscriptions.get(subId);
|
|
82
|
+
if (!subscription || subscription.timer !== timer) {
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
this.subscriptions.delete(subId);
|
|
86
|
+
subscription.unsubscribe();
|
|
87
|
+
}, EventSubscriptionManager.SUBSCRIPTION_TTL * 1000);
|
|
88
|
+
if (typeof timer.unref === 'function') {
|
|
89
|
+
timer.unref();
|
|
90
|
+
}
|
|
91
|
+
return timer;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=EventSubscriptionManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventSubscriptionManager.js","sourceRoot":"","sources":["../../../../../sdk-typescript/src/utils/EventSubscriptionManager.ts"],"names":[],"mappings":"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"}
|
package/esm/utils/Import.js
CHANGED
|
@@ -113,7 +113,7 @@ export function getPackageInfo() {
|
|
|
113
113
|
if (_packageInfo)
|
|
114
114
|
return _packageInfo;
|
|
115
115
|
try {
|
|
116
|
-
const pkg = {"name":"@daytona/sdk","version":"0.
|
|
116
|
+
const pkg = {"name":"@daytona/sdk","version":"0.198.0"};
|
|
117
117
|
_packageInfo = { name: pkg.name, version: pkg.version };
|
|
118
118
|
}
|
|
119
119
|
catch {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@daytona/sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.198.0",
|
|
4
4
|
"description": "Daytona TypeScript SDK for sandbox management and code execution",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
@@ -89,9 +89,10 @@
|
|
|
89
89
|
"isomorphic-ws": "^5.0.0",
|
|
90
90
|
"pathe": "^2.0.3",
|
|
91
91
|
"shell-quote": "^1.8.2",
|
|
92
|
+
"socket.io-client": "^4.8.1",
|
|
92
93
|
"tar": "^7.5.11",
|
|
93
|
-
"@daytona/api-client": "0.
|
|
94
|
-
"@daytona/toolbox-api-client": "0.
|
|
95
|
-
"@daytona/analytics-api-client": "0.
|
|
94
|
+
"@daytona/api-client": "0.198.0",
|
|
95
|
+
"@daytona/toolbox-api-client": "0.198.0",
|
|
96
|
+
"@daytona/analytics-api-client": "0.198.0"
|
|
96
97
|
}
|
|
97
98
|
}
|