@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.
@@ -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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"}
@@ -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.197.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.197.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.197.0",
94
- "@daytona/toolbox-api-client": "0.197.0",
95
- "@daytona/analytics-api-client": "0.197.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
  }