@principal-ai/control-tower-core 0.1.5 → 0.1.7
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 +63 -0
- package/dist/abstractions/AuthAdapter.d.ts +1 -1
- package/dist/abstractions/AuthAdapter.d.ts.map +1 -1
- package/dist/abstractions/AuthAdapter.js +2 -1
- package/dist/abstractions/DefaultLockManager.d.ts +2 -2
- package/dist/abstractions/DefaultLockManager.d.ts.map +1 -1
- package/dist/abstractions/DefaultLockManager.js +6 -2
- package/dist/abstractions/DefaultRoomManager.d.ts +2 -2
- package/dist/abstractions/DefaultRoomManager.d.ts.map +1 -1
- package/dist/abstractions/DefaultRoomManager.js +6 -2
- package/dist/abstractions/EventEmitter.js +5 -1
- package/dist/abstractions/LockManager.d.ts +1 -1
- package/dist/abstractions/LockManager.d.ts.map +1 -1
- package/dist/abstractions/LockManager.js +5 -1
- package/dist/abstractions/RoomManager.d.ts +1 -1
- package/dist/abstractions/RoomManager.d.ts.map +1 -1
- package/dist/abstractions/RoomManager.js +5 -1
- package/dist/abstractions/StorageAdapter.js +2 -1
- package/dist/abstractions/TransportAdapter.d.ts +1 -1
- package/dist/abstractions/TransportAdapter.d.ts.map +1 -1
- package/dist/abstractions/TransportAdapter.js +2 -1
- package/dist/abstractions/index.d.ts +8 -8
- package/dist/abstractions/index.d.ts.map +1 -1
- package/dist/abstractions/index.js +13 -5
- package/dist/adapters/mock/MockAuthAdapter.d.ts +2 -2
- package/dist/adapters/mock/MockAuthAdapter.d.ts.map +1 -1
- package/dist/adapters/mock/MockAuthAdapter.js +5 -1
- package/dist/adapters/mock/MockStorageAdapter.d.ts +1 -1
- package/dist/adapters/mock/MockStorageAdapter.d.ts.map +1 -1
- package/dist/adapters/mock/MockStorageAdapter.js +5 -1
- package/dist/adapters/mock/MockTransportAdapter.d.ts +2 -2
- package/dist/adapters/mock/MockTransportAdapter.d.ts.map +1 -1
- package/dist/adapters/mock/MockTransportAdapter.js +5 -1
- package/dist/adapters/mock/index.d.ts +3 -3
- package/dist/adapters/mock/index.d.ts.map +1 -1
- package/dist/adapters/mock/index.js +9 -3
- package/dist/adapters/websocket/WebSocketTransportAdapter.d.ts +3 -3
- package/dist/adapters/websocket/WebSocketTransportAdapter.d.ts.map +1 -1
- package/dist/adapters/websocket/WebSocketTransportAdapter.js +10 -6
- package/dist/adapters/websocket/index.d.ts +1 -1
- package/dist/adapters/websocket/index.d.ts.map +1 -1
- package/dist/adapters/websocket/index.js +5 -1
- package/dist/client/BaseClient.d.ts +5 -5
- package/dist/client/BaseClient.d.ts.map +1 -1
- package/dist/client/BaseClient.js +6 -2
- package/dist/client/ClientBuilder.d.ts +4 -4
- package/dist/client/ClientBuilder.d.ts.map +1 -1
- package/dist/client/ClientBuilder.js +7 -3
- package/dist/client/index.d.ts +2 -2
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +7 -2
- package/dist/index.d.ts +6 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +25 -5
- package/dist/index.js.map +17 -15
- package/dist/index.mjs +178 -2
- package/dist/index.mjs.map +17 -15
- package/dist/server/BaseServer.d.ts +19 -7
- package/dist/server/BaseServer.d.ts.map +1 -1
- package/dist/server/BaseServer.js +21 -2
- package/dist/server/ExperimentalAPI.d.ts +137 -0
- package/dist/server/ExperimentalAPI.d.ts.map +1 -0
- package/dist/server/ExperimentalAPI.js +239 -0
- package/dist/server/ServerBuilder.d.ts +17 -7
- package/dist/server/ServerBuilder.d.ts.map +1 -1
- package/dist/server/ServerBuilder.js +25 -4
- package/dist/server/index.d.ts +3 -2
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +9 -2
- package/dist/types/auth.js +2 -1
- package/dist/types/events.d.ts +1 -1
- package/dist/types/events.d.ts.map +1 -1
- package/dist/types/events.js +2 -1
- package/dist/types/experimental.d.ts +136 -0
- package/dist/types/experimental.d.ts.map +1 -0
- package/dist/types/experimental.js +32 -0
- package/dist/types/index.d.ts +5 -4
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +5 -1
- package/dist/types/lock.js +2 -1
- package/dist/types/room.d.ts +2 -2
- package/dist/types/room.d.ts.map +1 -1
- package/dist/types/room.js +2 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -36,6 +36,7 @@ console.log('Server started on port 8080');
|
|
|
36
36
|
- **Real-time Events**: Event broadcasting and history
|
|
37
37
|
- **Extensible**: Abstract interfaces for custom implementations
|
|
38
38
|
- **TypeScript**: Full type safety with generated declarations
|
|
39
|
+
- **Experimental APIs**: Opt-in broadcast features for rapid prototyping (see [Experimental Features](#experimental-features))
|
|
39
40
|
|
|
40
41
|
## API Reference
|
|
41
42
|
|
|
@@ -79,6 +80,68 @@ class CustomRoomManager extends RoomManager {
|
|
|
79
80
|
}
|
|
80
81
|
```
|
|
81
82
|
|
|
83
|
+
## Experimental Features
|
|
84
|
+
|
|
85
|
+
⚠️ **For Development Use Only**
|
|
86
|
+
|
|
87
|
+
Control Tower Core provides experimental broadcast APIs for rapid prototyping and internal tooling. These APIs allow broadcasting messages beyond room boundaries.
|
|
88
|
+
|
|
89
|
+
### Enabling Experimental Features
|
|
90
|
+
|
|
91
|
+
```typescript
|
|
92
|
+
import { ServerBuilder } from '@principal-ai/control-tower-core';
|
|
93
|
+
|
|
94
|
+
const server = new ServerBuilder()
|
|
95
|
+
.withTransport(transportAdapter)
|
|
96
|
+
.withRoomManager(roomManager)
|
|
97
|
+
.withLockManager(lockManager)
|
|
98
|
+
.withExperimentalFeatures({
|
|
99
|
+
enableBroadcast: true // Enable experimental broadcast APIs
|
|
100
|
+
})
|
|
101
|
+
.build();
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### Using Experimental Broadcast
|
|
105
|
+
|
|
106
|
+
```typescript
|
|
107
|
+
// Broadcast to all connected clients
|
|
108
|
+
await server.experimental.broadcast({
|
|
109
|
+
type: 'system:announcement',
|
|
110
|
+
data: { message: 'Server maintenance in 5 minutes' }
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
// Broadcast to authenticated users only
|
|
114
|
+
await server.experimental.broadcastAuthenticated({
|
|
115
|
+
type: 'presence:user_online',
|
|
116
|
+
data: { userId: 'alice' }
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
// Broadcast with custom filtering
|
|
120
|
+
await server.experimental.broadcastWhere(
|
|
121
|
+
(client) => client.userId.startsWith('admin_'),
|
|
122
|
+
{ type: 'admin:alert', data: { ... } }
|
|
123
|
+
);
|
|
124
|
+
|
|
125
|
+
// Send to specific users
|
|
126
|
+
await server.experimental.sendToUsers(
|
|
127
|
+
['user1', 'user2'],
|
|
128
|
+
{ type: 'notification:mention', data: { ... } }
|
|
129
|
+
);
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### Important Notes
|
|
133
|
+
|
|
134
|
+
- **Experimental APIs may change or be removed** without major version bumps
|
|
135
|
+
- **Not recommended for production** applications
|
|
136
|
+
- Use for prototyping, then submit a [feature request](docs/FEATURE_REQUEST_TEMPLATE.md) to graduate to stable API
|
|
137
|
+
- See [full documentation](docs/EXPERIMENTAL_BROADCAST.md) for details
|
|
138
|
+
|
|
139
|
+
## Documentation
|
|
140
|
+
|
|
141
|
+
- [Experimental Broadcast APIs](docs/EXPERIMENTAL_BROADCAST.md)
|
|
142
|
+
- [Feature Request Template](docs/FEATURE_REQUEST_TEMPLATE.md)
|
|
143
|
+
- [Architecture Design](DESIGN.md)
|
|
144
|
+
|
|
82
145
|
## License
|
|
83
146
|
|
|
84
147
|
MIT
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { TokenPayload, AuthResult, Credentials, CredentialType } from '../types';
|
|
1
|
+
import type { TokenPayload, AuthResult, Credentials, CredentialType } from '../types/index.js';
|
|
2
2
|
export interface IAuthAdapter {
|
|
3
3
|
authenticate(credentials: Credentials): Promise<AuthResult>;
|
|
4
4
|
validateToken(token: string): Promise<TokenPayload>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AuthAdapter.d.ts","sourceRoot":"","sources":["../../src/abstractions/AuthAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EACV,WAAW,EACX,cAAc,EACf,MAAM,
|
|
1
|
+
{"version":3,"file":"AuthAdapter.d.ts","sourceRoot":"","sources":["../../src/abstractions/AuthAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EACV,WAAW,EACX,cAAc,EACf,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,YAAY;IAE3B,YAAY,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAG5D,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACpD,aAAa,CAAC,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACvD,YAAY,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9C,WAAW,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAG3C,cAAc,CAAC,IAAI,OAAO,CAAC;IAC3B,cAAc,CAAC,IAAI,MAAM,CAAC;IAC1B,2BAA2B,CAAC,IAAI,cAAc,EAAE,CAAC;CAClD"}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { Lock, LockRequest } from '../types';
|
|
2
|
-
import { LockManager } from './LockManager';
|
|
1
|
+
import type { Lock, LockRequest } from '../types/index.js';
|
|
2
|
+
import { LockManager } from './LockManager.js';
|
|
3
3
|
export declare class DefaultLockManager extends LockManager {
|
|
4
4
|
acquireLock(userId: string, username: string, request: LockRequest): Promise<Lock>;
|
|
5
5
|
releaseLock(lockId: string): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultLockManager.d.ts","sourceRoot":"","sources":["../../src/abstractions/DefaultLockManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,WAAW,EAEZ,MAAM,
|
|
1
|
+
{"version":3,"file":"DefaultLockManager.d.ts","sourceRoot":"","sources":["../../src/abstractions/DefaultLockManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,WAAW,EAEZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,qBAAa,kBAAmB,SAAQ,WAAW;IAC3C,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAyClF,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB1C,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAe/C,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAS3C,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAK7C,WAAW,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IAI9B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIxC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK7C,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUtD,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBjF,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAelE,OAAO,CAAC,UAAU;YAIJ,YAAY;CA2B3B"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DefaultLockManager = void 0;
|
|
4
|
+
const LockManager_js_1 = require("./LockManager.js");
|
|
5
|
+
class DefaultLockManager extends LockManager_js_1.LockManager {
|
|
3
6
|
async acquireLock(userId, username, request) {
|
|
4
7
|
const { path, type = 'file', priority = 'normal', ttl, branch, metadata } = request;
|
|
5
8
|
// Check if user already has a lock on this path
|
|
@@ -150,3 +153,4 @@ export class DefaultLockManager extends LockManager {
|
|
|
150
153
|
}
|
|
151
154
|
}
|
|
152
155
|
}
|
|
156
|
+
exports.DefaultLockManager = DefaultLockManager;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { Room, RoomUser, RoomState, RoomConfig, Event } from '../types';
|
|
2
|
-
import { RoomManager } from './RoomManager';
|
|
1
|
+
import type { Room, RoomUser, RoomState, RoomConfig, Event } from '../types/index.js';
|
|
2
|
+
import { RoomManager } from './RoomManager.js';
|
|
3
3
|
export declare class DefaultRoomManager extends RoomManager {
|
|
4
4
|
createRoom(id: string, config: RoomConfig): Promise<Room>;
|
|
5
5
|
deleteRoom(id: string): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultRoomManager.d.ts","sourceRoot":"","sources":["../../src/abstractions/DefaultRoomManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,UAAU,EACV,KAAK,EACN,MAAM,
|
|
1
|
+
{"version":3,"file":"DefaultRoomManager.d.ts","sourceRoot":"","sources":["../../src/abstractions/DefaultRoomManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,UAAU,EACV,KAAK,EACN,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,qBAAa,kBAAmB,SAAQ,WAAW;IAC3C,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBzD,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAavD,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASxD,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWrF,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAIvD,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IASnD,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAc9D,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAUjE,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAYlG"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DefaultRoomManager = void 0;
|
|
4
|
+
const RoomManager_js_1 = require("./RoomManager.js");
|
|
5
|
+
class DefaultRoomManager extends RoomManager_js_1.RoomManager {
|
|
3
6
|
async createRoom(id, config) {
|
|
4
7
|
const room = {
|
|
5
8
|
id,
|
|
@@ -89,3 +92,4 @@ export class DefaultRoomManager extends RoomManager {
|
|
|
89
92
|
}
|
|
90
93
|
}
|
|
91
94
|
}
|
|
95
|
+
exports.DefaultRoomManager = DefaultRoomManager;
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TypedEventEmitter = void 0;
|
|
4
|
+
class TypedEventEmitter {
|
|
2
5
|
constructor() {
|
|
3
6
|
// Use unknown type for storage, will be cast appropriately when called
|
|
4
7
|
this.listeners = new Map();
|
|
@@ -54,3 +57,4 @@ export class TypedEventEmitter {
|
|
|
54
57
|
return regular + once;
|
|
55
58
|
}
|
|
56
59
|
}
|
|
60
|
+
exports.TypedEventEmitter = TypedEventEmitter;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Lock, LockRequest, LockState } from '../types';
|
|
1
|
+
import type { Lock, LockRequest, LockState } from '../types/index.js';
|
|
2
2
|
export declare abstract class LockManager {
|
|
3
3
|
protected lockState: LockState;
|
|
4
4
|
abstract acquireLock(userId: string, username: string, request: LockRequest): Promise<Lock>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LockManager.d.ts","sourceRoot":"","sources":["../../src/abstractions/LockManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,WAAW,EACX,SAAS,EACV,MAAM,
|
|
1
|
+
{"version":3,"file":"LockManager.d.ts","sourceRoot":"","sources":["../../src/abstractions/LockManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,WAAW,EACX,SAAS,EACV,MAAM,mBAAmB,CAAC;AAE3B,8BAAsB,WAAW;IAC/B,SAAS,CAAC,SAAS,EAAE,SAAS,CAI5B;IAEF,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAC3F,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IACnD,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IACxD,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IACpD,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IACtD,QAAQ,CAAC,WAAW,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IACvC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IACjD,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IACtD,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAC/D,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1F,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CACtE"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LockManager = void 0;
|
|
4
|
+
class LockManager {
|
|
2
5
|
constructor() {
|
|
3
6
|
this.lockState = {
|
|
4
7
|
locks: new Map(),
|
|
@@ -7,3 +10,4 @@ export class LockManager {
|
|
|
7
10
|
};
|
|
8
11
|
}
|
|
9
12
|
}
|
|
13
|
+
exports.LockManager = LockManager;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Room, RoomUser, RoomState, RoomConfig, Event } from '../types';
|
|
1
|
+
import type { Room, RoomUser, RoomState, RoomConfig, Event } from '../types/index.js';
|
|
2
2
|
export declare abstract class RoomManager {
|
|
3
3
|
protected rooms: Map<string, RoomState>;
|
|
4
4
|
abstract createRoom(id: string, config: RoomConfig): Promise<Room>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RoomManager.d.ts","sourceRoot":"","sources":["../../src/abstractions/RoomManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,UAAU,EACV,KAAK,EACN,MAAM,
|
|
1
|
+
{"version":3,"file":"RoomManager.d.ts","sourceRoot":"","sources":["../../src/abstractions/RoomManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,UAAU,EACV,KAAK,EACN,MAAM,mBAAmB,CAAC;AAE3B,8BAAsB,WAAW;IAC/B,SAAS,CAAC,KAAK,yBAAgC;IAE/C,QAAQ,CAAC,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAClE,QAAQ,CAAC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAC9C,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAChE,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IACjE,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAC7F,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAChE,QAAQ,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC5D,QAAQ,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IACvE,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAC1E,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CACrG"}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ConnectionState, ConnectionOptions, Message, MessageHandler, ErrorHandler, CloseHandler } from '../types';
|
|
1
|
+
import type { ConnectionState, ConnectionOptions, Message, MessageHandler, ErrorHandler, CloseHandler } from '../types/index.js';
|
|
2
2
|
import type { Server as HttpServer } from 'http';
|
|
3
3
|
import type { Server as HttpsServer } from 'https';
|
|
4
4
|
import type { WebSocketServer } from 'ws';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransportAdapter.d.ts","sourceRoot":"","sources":["../../src/abstractions/TransportAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EACjB,OAAO,EACP,cAAc,EACd,YAAY,EACZ,YAAY,EACb,MAAM,
|
|
1
|
+
{"version":3,"file":"TransportAdapter.d.ts","sourceRoot":"","sources":["../../src/abstractions/TransportAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EACjB,OAAO,EACP,cAAc,EACd,YAAY,EACZ,YAAY,EACb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,MAAM,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;AAE1C,MAAM,WAAW,iBAAiB;IAEhC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,SAAS,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAAC;IACzC,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;IACrC,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;IACrC,QAAQ,IAAI,eAAe,CAAC;IAC5B,WAAW,IAAI,OAAO,CAAC;IAGvB,MAAM,CAAC,CAAC,MAAM,EAAE,UAAU,GAAG,WAAW,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxE,uBAAuB,CAAC,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/D"}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export { ITransportAdapter } from './TransportAdapter';
|
|
2
|
-
export { IStorageAdapter, StorageOperation } from './StorageAdapter';
|
|
3
|
-
export { IAuthAdapter } from './AuthAdapter';
|
|
4
|
-
export { TypedEventEmitter, EventListener, UnsubscribeFn } from './EventEmitter';
|
|
5
|
-
export { RoomManager } from './RoomManager';
|
|
6
|
-
export { LockManager } from './LockManager';
|
|
7
|
-
export { DefaultRoomManager } from './DefaultRoomManager';
|
|
8
|
-
export { DefaultLockManager } from './DefaultLockManager';
|
|
1
|
+
export { ITransportAdapter } from './TransportAdapter.js';
|
|
2
|
+
export { IStorageAdapter, StorageOperation } from './StorageAdapter.js';
|
|
3
|
+
export { IAuthAdapter } from './AuthAdapter.js';
|
|
4
|
+
export { TypedEventEmitter, EventListener, UnsubscribeFn } from './EventEmitter.js';
|
|
5
|
+
export { RoomManager } from './RoomManager.js';
|
|
6
|
+
export { LockManager } from './LockManager.js';
|
|
7
|
+
export { DefaultRoomManager } from './DefaultRoomManager.js';
|
|
8
|
+
export { DefaultLockManager } from './DefaultLockManager.js';
|
|
9
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/abstractions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/abstractions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -1,5 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DefaultLockManager = exports.DefaultRoomManager = exports.LockManager = exports.RoomManager = exports.TypedEventEmitter = void 0;
|
|
4
|
+
var EventEmitter_js_1 = require("./EventEmitter.js");
|
|
5
|
+
Object.defineProperty(exports, "TypedEventEmitter", { enumerable: true, get: function () { return EventEmitter_js_1.TypedEventEmitter; } });
|
|
6
|
+
var RoomManager_js_1 = require("./RoomManager.js");
|
|
7
|
+
Object.defineProperty(exports, "RoomManager", { enumerable: true, get: function () { return RoomManager_js_1.RoomManager; } });
|
|
8
|
+
var LockManager_js_1 = require("./LockManager.js");
|
|
9
|
+
Object.defineProperty(exports, "LockManager", { enumerable: true, get: function () { return LockManager_js_1.LockManager; } });
|
|
10
|
+
var DefaultRoomManager_js_1 = require("./DefaultRoomManager.js");
|
|
11
|
+
Object.defineProperty(exports, "DefaultRoomManager", { enumerable: true, get: function () { return DefaultRoomManager_js_1.DefaultRoomManager; } });
|
|
12
|
+
var DefaultLockManager_js_1 = require("./DefaultLockManager.js");
|
|
13
|
+
Object.defineProperty(exports, "DefaultLockManager", { enumerable: true, get: function () { return DefaultLockManager_js_1.DefaultLockManager; } });
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { IAuthAdapter } from '../../abstractions/AuthAdapter';
|
|
2
|
-
import type { TokenPayload, AuthResult, Credentials, CredentialType } from '../../types';
|
|
1
|
+
import type { IAuthAdapter } from '../../abstractions/AuthAdapter.js';
|
|
2
|
+
import type { TokenPayload, AuthResult, Credentials, CredentialType } from '../../types/index.js';
|
|
3
3
|
export declare class MockAuthAdapter implements IAuthAdapter {
|
|
4
4
|
private tokens;
|
|
5
5
|
private revokedTokens;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MockAuthAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/mock/MockAuthAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"MockAuthAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/mock/MockAuthAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EACV,WAAW,EACX,cAAc,EACf,MAAM,sBAAsB,CAAC;AAE9B,qBAAa,eAAgB,YAAW,YAAY;IAClD,OAAO,CAAC,MAAM,CAAwC;IACtD,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,KAAK,CAAuE;IACpF,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,YAAY,CAAa;gBAErB,OAAO,CAAC,EAAE;QACpB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,cAAc,CAAC,EAAE,OAAO,CAAC;KAC1B;IAoBK,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAyBnD,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAgBrD,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAqB5C,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWzC,YAAY,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAwGjE,cAAc,IAAI,OAAO;IAIzB,cAAc,IAAI,MAAM;IAIxB,2BAA2B,IAAI,cAAc,EAAE;YAKjC,aAAa;IAM3B,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI;IAIxE,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIlC,aAAa,IAAI,MAAM;IAIvB,oBAAoB,IAAI,MAAM;IAI9B,WAAW,IAAI,IAAI;IAKnB,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;CAGjC"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MockAuthAdapter = void 0;
|
|
4
|
+
class MockAuthAdapter {
|
|
2
5
|
constructor(options) {
|
|
3
6
|
this.tokens = new Map();
|
|
4
7
|
this.revokedTokens = new Set();
|
|
@@ -203,3 +206,4 @@ export class MockAuthAdapter {
|
|
|
203
206
|
this.shouldFailAuth = fail;
|
|
204
207
|
}
|
|
205
208
|
}
|
|
209
|
+
exports.MockAuthAdapter = MockAuthAdapter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MockStorageAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/mock/MockStorageAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"MockStorageAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/mock/MockStorageAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAE9F,UAAU,WAAW;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,kBAAmB,YAAW,eAAe;IACxD,OAAO,CAAC,OAAO,CAAuC;IACtD,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,oBAAoB,CAAkB;gBAElC,OAAO,CAAC,EAAE;QACpB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,oBAAoB,CAAC,EAAE,OAAO,CAAC;KAChC;IAKK,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAmBtC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAe1D,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUlC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAmBrC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAiCxC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAUtB,WAAW,CAAC,CAAC,EAAE,UAAU,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC;YA6DlD,aAAa;IAM3B,OAAO,IAAI,MAAM;IAIjB,aAAa,IAAI,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC;IAIzC,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;CAGvC"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MockStorageAdapter = void 0;
|
|
4
|
+
class MockStorageAdapter {
|
|
2
5
|
constructor(options) {
|
|
3
6
|
this.storage = new Map();
|
|
4
7
|
this.simulateLatency = 0;
|
|
@@ -160,3 +163,4 @@ export class MockStorageAdapter {
|
|
|
160
163
|
this.shouldFailOperations = fail;
|
|
161
164
|
}
|
|
162
165
|
}
|
|
166
|
+
exports.MockStorageAdapter = MockStorageAdapter;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { ITransportAdapter } from '../../abstractions/TransportAdapter';
|
|
2
|
-
import type { ConnectionState, ConnectionOptions, Message, MessageHandler, ErrorHandler, CloseHandler } from '../../types';
|
|
1
|
+
import type { ITransportAdapter } from '../../abstractions/TransportAdapter.js';
|
|
2
|
+
import type { ConnectionState, ConnectionOptions, Message, MessageHandler, ErrorHandler, CloseHandler } from '../../types/index.js';
|
|
3
3
|
export declare class MockTransportAdapter implements ITransportAdapter {
|
|
4
4
|
private state;
|
|
5
5
|
private messageHandlers;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MockTransportAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/mock/MockTransportAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"MockTransportAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/mock/MockTransportAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EACjB,OAAO,EACP,cAAc,EACd,YAAY,EACZ,YAAY,EACb,MAAM,sBAAsB,CAAC;AAE9B,qBAAa,oBAAqB,YAAW,iBAAiB;IAC5D,OAAO,CAAC,KAAK,CAAmC;IAChD,OAAO,CAAC,eAAe,CAAkC;IACzD,OAAO,CAAC,aAAa,CAAgC;IACrD,OAAO,CAAC,aAAa,CAAgC;IACrD,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,oBAAoB,CAAkB;IAC9C,OAAO,CAAC,YAAY,CAAuB;gBAE/B,OAAO,CAAC,EAAE;QACpB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,oBAAoB,CAAC,EAAE,OAAO,CAAC;KAChC;IAKK,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBjE,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB3B,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAa3C,SAAS,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAIxC,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAIpC,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAIpC,QAAQ,IAAI,eAAe;IAI3B,WAAW,IAAI,OAAO;IAKtB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAOvC,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAIjC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAKjD,eAAe,IAAI,OAAO,EAAE;IAI5B,iBAAiB,IAAI,IAAI;IAIzB,eAAe,IAAI,MAAM,GAAG,IAAI;CAGjC"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MockTransportAdapter = void 0;
|
|
4
|
+
class MockTransportAdapter {
|
|
2
5
|
constructor(options) {
|
|
3
6
|
this.state = 'disconnected';
|
|
4
7
|
this.messageHandlers = new Set();
|
|
@@ -88,3 +91,4 @@ export class MockTransportAdapter {
|
|
|
88
91
|
return this.connectedUrl;
|
|
89
92
|
}
|
|
90
93
|
}
|
|
94
|
+
exports.MockTransportAdapter = MockTransportAdapter;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { MockTransportAdapter } from './MockTransportAdapter';
|
|
2
|
-
export { MockStorageAdapter } from './MockStorageAdapter';
|
|
3
|
-
export { MockAuthAdapter } from './MockAuthAdapter';
|
|
1
|
+
export { MockTransportAdapter } from './MockTransportAdapter.js';
|
|
2
|
+
export { MockStorageAdapter } from './MockStorageAdapter.js';
|
|
3
|
+
export { MockAuthAdapter } from './MockAuthAdapter.js';
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/mock/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/mock/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MockAuthAdapter = exports.MockStorageAdapter = exports.MockTransportAdapter = void 0;
|
|
4
|
+
var MockTransportAdapter_js_1 = require("./MockTransportAdapter.js");
|
|
5
|
+
Object.defineProperty(exports, "MockTransportAdapter", { enumerable: true, get: function () { return MockTransportAdapter_js_1.MockTransportAdapter; } });
|
|
6
|
+
var MockStorageAdapter_js_1 = require("./MockStorageAdapter.js");
|
|
7
|
+
Object.defineProperty(exports, "MockStorageAdapter", { enumerable: true, get: function () { return MockStorageAdapter_js_1.MockStorageAdapter; } });
|
|
8
|
+
var MockAuthAdapter_js_1 = require("./MockAuthAdapter.js");
|
|
9
|
+
Object.defineProperty(exports, "MockAuthAdapter", { enumerable: true, get: function () { return MockAuthAdapter_js_1.MockAuthAdapter; } });
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { ITransportAdapter } from '../../abstractions/TransportAdapter';
|
|
2
|
-
import type { IAuthAdapter } from '../../abstractions/AuthAdapter';
|
|
3
|
-
import type { ConnectionState, ConnectionOptions, Message, MessageHandler, ErrorHandler, CloseHandler } from '../../types';
|
|
1
|
+
import type { ITransportAdapter } from '../../abstractions/TransportAdapter.js';
|
|
2
|
+
import type { IAuthAdapter } from '../../abstractions/AuthAdapter.js';
|
|
3
|
+
import type { ConnectionState, ConnectionOptions, Message, MessageHandler, ErrorHandler, CloseHandler } from '../../types/index.js';
|
|
4
4
|
import type { Server as HttpServer } from 'http';
|
|
5
5
|
import type { Server as HttpsServer } from 'https';
|
|
6
6
|
import { WebSocketServer, WebSocket } from 'ws';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebSocketTransportAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/websocket/WebSocketTransportAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"WebSocketTransportAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/websocket/WebSocketTransportAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EACjB,OAAO,EACP,cAAc,EACd,YAAY,EACZ,YAAY,EAGb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,MAAM,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,OAAO,CAAC;AAEnD,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAEhD,UAAU,gBAAgB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,SAAS,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,wBAAwB;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,qBAAa,yBAA0B,YAAW,iBAAiB;IACjE,OAAO,CAAC,KAAK,CAAmC;IAChD,OAAO,CAAC,eAAe,CAAkC;IACzD,OAAO,CAAC,aAAa,CAAgC;IACrD,OAAO,CAAC,aAAa,CAAgC;IAGrD,OAAO,CAAC,GAAG,CAAC,CAAkB;IAC9B,OAAO,CAAC,SAAS,CAAC,CAAS;IAG3B,OAAO,CAAC,cAAc,CAAC,CAA2B;IAClD,OAAO,CAAC,WAAW,CAAC,CAAkB;IACtC,OAAO,CAAC,aAAa,CAAC,CAAS;IAG/B,OAAO,CAAC,OAAO,CAAuC;IACtD,OAAO,CAAC,IAAI,CAA8C;IAG1D,OAAO,CAAC,WAAW,CAAC,CAAe;IACnC,OAAO,CAAC,MAAM,CAA2B;gBAE7B,MAAM,CAAC,EAAE,wBAAwB;IAU7C,cAAc,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAYlC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsCjE,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,WAAW,EAAE,IAAI,GAAE,MAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAiC7E,uBAAuB,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;YA2BpD,gBAAgB;YA6EhB,mBAAmB;YAuCnB,iBAAiB;IA4E/B,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,YAAY;IAMd,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAiC3B,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IA8B3C,SAAS,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAIxC,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAIpC,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAIpC,QAAQ,IAAI,eAAe;IAI3B,WAAW,IAAI,OAAO;IAKtB,mBAAmB,IAAI,gBAAgB,EAAE;IAIzC,uBAAuB,IAAI,gBAAgB,EAAE;IAI7C,cAAc,IAAI,MAAM;IAIxB,OAAO,IAAI,YAAY,GAAG,aAAa;IAIvC,cAAc,IAAI,OAAO;IAIzB,OAAO,CAAC,UAAU;CAGnB"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WebSocketTransportAdapter = void 0;
|
|
4
|
+
const ws_1 = require("ws");
|
|
5
|
+
class WebSocketTransportAdapter {
|
|
3
6
|
constructor(config) {
|
|
4
7
|
this.state = 'disconnected';
|
|
5
8
|
this.messageHandlers = new Set();
|
|
@@ -39,7 +42,7 @@ export class WebSocketTransportAdapter {
|
|
|
39
42
|
const urlObj = new URL(url);
|
|
40
43
|
const port = parseInt(urlObj.port) || (urlObj.protocol === 'wss:' ? 443 : 80);
|
|
41
44
|
// Create WebSocket server
|
|
42
|
-
this.wss = new WebSocketServer({ port });
|
|
45
|
+
this.wss = new ws_1.WebSocketServer({ port });
|
|
43
46
|
this.wss.on('connection', (ws, req) => {
|
|
44
47
|
this.handleConnection(ws, req);
|
|
45
48
|
});
|
|
@@ -68,7 +71,7 @@ export class WebSocketTransportAdapter {
|
|
|
68
71
|
this.mode = 'integration';
|
|
69
72
|
try {
|
|
70
73
|
// Create WebSocket server attached to the existing HTTP server
|
|
71
|
-
this.wss = new WebSocketServer({
|
|
74
|
+
this.wss = new ws_1.WebSocketServer({
|
|
72
75
|
server,
|
|
73
76
|
path,
|
|
74
77
|
perMessageDeflate: false
|
|
@@ -287,7 +290,7 @@ export class WebSocketTransportAdapter {
|
|
|
287
290
|
return null;
|
|
288
291
|
}
|
|
289
292
|
sendToClient(client, message) {
|
|
290
|
-
if (client.ws.readyState === WebSocket.OPEN) {
|
|
293
|
+
if (client.ws.readyState === ws_1.WebSocket.OPEN) {
|
|
291
294
|
client.ws.send(JSON.stringify(message));
|
|
292
295
|
}
|
|
293
296
|
}
|
|
@@ -334,7 +337,7 @@ export class WebSocketTransportAdapter {
|
|
|
334
337
|
if (!client) {
|
|
335
338
|
throw new Error(`Client ${clientId} not found`);
|
|
336
339
|
}
|
|
337
|
-
if (client.ws.readyState !== WebSocket.OPEN) {
|
|
340
|
+
if (client.ws.readyState !== ws_1.WebSocket.OPEN) {
|
|
338
341
|
throw new Error(`Client ${clientId} connection is not open`);
|
|
339
342
|
}
|
|
340
343
|
const messageToSend = {
|
|
@@ -378,3 +381,4 @@ export class WebSocketTransportAdapter {
|
|
|
378
381
|
return Math.random().toString(36).substring(2) + Date.now().toString(36);
|
|
379
382
|
}
|
|
380
383
|
}
|
|
384
|
+
exports.WebSocketTransportAdapter = WebSocketTransportAdapter;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { WebSocketTransportAdapter, type WebSocketTransportConfig } from './WebSocketTransportAdapter';
|
|
1
|
+
export { WebSocketTransportAdapter, type WebSocketTransportConfig } from './WebSocketTransportAdapter.js';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/websocket/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,KAAK,wBAAwB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/websocket/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,KAAK,wBAAwB,EAAE,MAAM,gCAAgC,CAAC"}
|
|
@@ -1 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WebSocketTransportAdapter = void 0;
|
|
4
|
+
var WebSocketTransportAdapter_js_1 = require("./WebSocketTransportAdapter.js");
|
|
5
|
+
Object.defineProperty(exports, "WebSocketTransportAdapter", { enumerable: true, get: function () { return WebSocketTransportAdapter_js_1.WebSocketTransportAdapter; } });
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { ConnectionState, Event, RoomState, RoomUser, LockRequest, Lock, Credentials } from '../types';
|
|
2
|
-
import type { ITransportAdapter } from '../abstractions/TransportAdapter';
|
|
3
|
-
import type { IAuthAdapter } from '../abstractions/AuthAdapter';
|
|
4
|
-
import type { IStorageAdapter } from '../abstractions/StorageAdapter';
|
|
5
|
-
import { TypedEventEmitter } from '../abstractions/EventEmitter';
|
|
1
|
+
import type { ConnectionState, Event, RoomState, RoomUser, LockRequest, Lock, Credentials } from '../types/index.js';
|
|
2
|
+
import type { ITransportAdapter } from '../abstractions/TransportAdapter.js';
|
|
3
|
+
import type { IAuthAdapter } from '../abstractions/AuthAdapter.js';
|
|
4
|
+
import type { IStorageAdapter } from '../abstractions/StorageAdapter.js';
|
|
5
|
+
import { TypedEventEmitter } from '../abstractions/EventEmitter.js';
|
|
6
6
|
export interface ClientConfig {
|
|
7
7
|
transport: ITransportAdapter;
|
|
8
8
|
auth?: IAuthAdapter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseClient.d.ts","sourceRoot":"","sources":["../../src/client/BaseClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EAGf,KAAK,EACL,SAAS,EACT,QAAQ,EACR,WAAW,EACX,IAAI,EACJ,WAAW,EACZ,MAAM,
|
|
1
|
+
{"version":3,"file":"BaseClient.d.ts","sourceRoot":"","sources":["../../src/client/BaseClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BaseClient = void 0;
|
|
4
|
+
const EventEmitter_js_1 = require("../abstractions/EventEmitter.js");
|
|
5
|
+
class BaseClient extends EventEmitter_js_1.TypedEventEmitter {
|
|
3
6
|
constructor(config) {
|
|
4
7
|
super();
|
|
5
8
|
this.connectionState = 'disconnected';
|
|
@@ -282,3 +285,4 @@ export class BaseClient extends TypedEventEmitter {
|
|
|
282
285
|
return Math.random().toString(36).substring(2) + Date.now().toString(36);
|
|
283
286
|
}
|
|
284
287
|
}
|
|
288
|
+
exports.BaseClient = BaseClient;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { ITransportAdapter } from '../abstractions/TransportAdapter';
|
|
2
|
-
import type { IAuthAdapter } from '../abstractions/AuthAdapter';
|
|
3
|
-
import type { IStorageAdapter } from '../abstractions/StorageAdapter';
|
|
4
|
-
import { BaseClient, type ClientConfig } from './BaseClient';
|
|
1
|
+
import type { ITransportAdapter } from '../abstractions/TransportAdapter.js';
|
|
2
|
+
import type { IAuthAdapter } from '../abstractions/AuthAdapter.js';
|
|
3
|
+
import type { IStorageAdapter } from '../abstractions/StorageAdapter.js';
|
|
4
|
+
import { BaseClient, type ClientConfig } from './BaseClient.js';
|
|
5
5
|
export declare class ClientBuilder {
|
|
6
6
|
private transport?;
|
|
7
7
|
private auth?;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClientBuilder.d.ts","sourceRoot":"","sources":["../../src/client/ClientBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"ClientBuilder.d.ts","sourceRoot":"","sources":["../../src/client/ClientBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEhE,qBAAa,aAAa;IACxB,OAAO,CAAC,SAAS,CAAC,CAAoB;IACtC,OAAO,CAAC,IAAI,CAAC,CAAe;IAC5B,OAAO,CAAC,OAAO,CAAC,CAAkB;IAClC,OAAO,CAAC,YAAY,CAAC,CAA+B;IAEpD,aAAa,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI;IAKjD,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAKlC,WAAW,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAK3C,gBAAgB,CAAC,MAAM,EAAE,WAAW,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,GAAG,IAAI;IAKzE,KAAK,IAAI,UAAU;CAoBpB"}
|