@teneo-protocol/sdk 1.0.1 → 2.2.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/.eslintrc.json +11 -2
- package/.github/CODEOWNERS +2 -0
- package/.github/ISSUE_TEMPLATE/01-bug.yml +85 -0
- package/.github/ISSUE_TEMPLATE/config.yml +8 -0
- package/.github/ISSUE_TEMPLATE/feature_request.md +22 -0
- package/.github/workflows/claude-code-review.yml +8 -3
- package/.github/workflows/claude-reviewer.yml +6 -4
- package/.github/workflows/publish-npm.yml +9 -6
- package/.github/workflows/push-to-main.yml +1 -1
- package/.github/workflows/top-issue.yml +102 -0
- package/CHANGELOG.md +334 -0
- package/CONCEPTS.md +747 -0
- package/README.md +577 -54
- package/dist/constants.js +8 -8
- package/dist/constants.js.map +1 -1
- package/dist/core/websocket-client.d.ts +25 -1
- package/dist/core/websocket-client.d.ts.map +1 -1
- package/dist/core/websocket-client.js +74 -15
- package/dist/core/websocket-client.js.map +1 -1
- package/dist/formatters/response-formatter.js +4 -0
- package/dist/formatters/response-formatter.js.map +1 -1
- package/dist/handlers/message-handler-registry.js +2 -1
- package/dist/handlers/message-handler-registry.js.map +1 -1
- package/dist/handlers/message-handlers/agent-details-response-handler.d.ts +1666 -0
- package/dist/handlers/message-handlers/agent-details-response-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/agent-details-response-handler.js +38 -0
- package/dist/handlers/message-handlers/agent-details-response-handler.js.map +1 -0
- package/dist/handlers/message-handlers/agent-room-operation-response-handler.d.ts +76 -0
- package/dist/handlers/message-handlers/agent-room-operation-response-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/agent-room-operation-response-handler.js +67 -0
- package/dist/handlers/message-handlers/agent-room-operation-response-handler.js.map +1 -0
- package/dist/handlers/message-handlers/agent-selected-handler.d.ts +92 -38
- package/dist/handlers/message-handlers/agent-selected-handler.d.ts.map +1 -1
- package/dist/handlers/message-handlers/agent-selected-handler.js +2 -5
- package/dist/handlers/message-handlers/agent-selected-handler.js.map +1 -1
- package/dist/handlers/message-handlers/agent-status-update-handler.d.ts +1687 -0
- package/dist/handlers/message-handlers/agent-status-update-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/agent-status-update-handler.js +48 -0
- package/dist/handlers/message-handlers/agent-status-update-handler.js.map +1 -0
- package/dist/handlers/message-handlers/agents-list-handler.js +2 -5
- package/dist/handlers/message-handlers/agents-list-handler.js.map +1 -1
- package/dist/handlers/message-handlers/all-agents-response-handler.d.ts +439 -0
- package/dist/handlers/message-handlers/all-agents-response-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/all-agents-response-handler.js +36 -0
- package/dist/handlers/message-handlers/all-agents-response-handler.js.map +1 -0
- package/dist/handlers/message-handlers/auth-error-handler.d.ts +45 -31
- package/dist/handlers/message-handlers/auth-error-handler.d.ts.map +1 -1
- package/dist/handlers/message-handlers/auth-error-handler.js +2 -5
- package/dist/handlers/message-handlers/auth-error-handler.js.map +1 -1
- package/dist/handlers/message-handlers/auth-message-handler.d.ts +6 -0
- package/dist/handlers/message-handlers/auth-message-handler.d.ts.map +1 -1
- package/dist/handlers/message-handlers/auth-message-handler.js +71 -10
- package/dist/handlers/message-handlers/auth-message-handler.js.map +1 -1
- package/dist/handlers/message-handlers/auth-required-handler.d.ts +49 -31
- package/dist/handlers/message-handlers/auth-required-handler.d.ts.map +1 -1
- package/dist/handlers/message-handlers/auth-required-handler.js +2 -5
- package/dist/handlers/message-handlers/auth-required-handler.js.map +1 -1
- package/dist/handlers/message-handlers/auth-success-handler.d.ts +6 -0
- package/dist/handlers/message-handlers/auth-success-handler.d.ts.map +1 -1
- package/dist/handlers/message-handlers/auth-success-handler.js +52 -9
- package/dist/handlers/message-handlers/auth-success-handler.js.map +1 -1
- package/dist/handlers/message-handlers/base-handler.d.ts +4 -4
- package/dist/handlers/message-handlers/base-handler.d.ts.map +1 -1
- package/dist/handlers/message-handlers/base-handler.js +3 -1
- package/dist/handlers/message-handlers/base-handler.js.map +1 -1
- package/dist/handlers/message-handlers/challenge-handler.d.ts +45 -31
- package/dist/handlers/message-handlers/challenge-handler.d.ts.map +1 -1
- package/dist/handlers/message-handlers/challenge-handler.js +3 -2
- package/dist/handlers/message-handlers/challenge-handler.js.map +1 -1
- package/dist/handlers/message-handlers/error-message-handler.d.ts +49 -31
- package/dist/handlers/message-handlers/error-message-handler.d.ts.map +1 -1
- package/dist/handlers/message-handlers/error-message-handler.js +2 -5
- package/dist/handlers/message-handlers/error-message-handler.js.map +1 -1
- package/dist/handlers/message-handlers/index.d.ts +11 -0
- package/dist/handlers/message-handlers/index.d.ts.map +1 -1
- package/dist/handlers/message-handlers/index.js +55 -1
- package/dist/handlers/message-handlers/index.js.map +1 -1
- package/dist/handlers/message-handlers/list-available-agents-handler.d.ts +1660 -0
- package/dist/handlers/message-handlers/list-available-agents-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/list-available-agents-handler.js +35 -0
- package/dist/handlers/message-handlers/list-available-agents-handler.js.map +1 -0
- package/dist/handlers/message-handlers/list-room-agents-handler.d.ts +1669 -0
- package/dist/handlers/message-handlers/list-room-agents-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/list-room-agents-handler.js +48 -0
- package/dist/handlers/message-handlers/list-room-agents-handler.js.map +1 -0
- package/dist/handlers/message-handlers/list-rooms-response-handler.d.ts +2 -110
- package/dist/handlers/message-handlers/list-rooms-response-handler.d.ts.map +1 -1
- package/dist/handlers/message-handlers/list-rooms-response-handler.js +4 -6
- package/dist/handlers/message-handlers/list-rooms-response-handler.js.map +1 -1
- package/dist/handlers/message-handlers/ping-pong-handler.d.ts +62 -58
- package/dist/handlers/message-handlers/ping-pong-handler.d.ts.map +1 -1
- package/dist/handlers/message-handlers/ping-pong-handler.js +4 -10
- package/dist/handlers/message-handlers/ping-pong-handler.js.map +1 -1
- package/dist/handlers/message-handlers/rate-limit-notification-handler.d.ts +94 -0
- package/dist/handlers/message-handlers/rate-limit-notification-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/rate-limit-notification-handler.js +35 -0
- package/dist/handlers/message-handlers/rate-limit-notification-handler.js.map +1 -0
- package/dist/handlers/message-handlers/regular-message-handler.d.ts +31 -29
- package/dist/handlers/message-handlers/regular-message-handler.d.ts.map +1 -1
- package/dist/handlers/message-handlers/regular-message-handler.js +4 -6
- package/dist/handlers/message-handlers/regular-message-handler.js.map +1 -1
- package/dist/handlers/message-handlers/room-operation-response-handler.d.ts +328 -0
- package/dist/handlers/message-handlers/room-operation-response-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/room-operation-response-handler.js +89 -0
- package/dist/handlers/message-handlers/room-operation-response-handler.js.map +1 -0
- package/dist/handlers/message-handlers/subscribe-response-handler.d.ts +53 -31
- package/dist/handlers/message-handlers/subscribe-response-handler.d.ts.map +1 -1
- package/dist/handlers/message-handlers/subscribe-response-handler.js +4 -6
- package/dist/handlers/message-handlers/subscribe-response-handler.js.map +1 -1
- package/dist/handlers/message-handlers/task-quote-handler.d.ts +14 -0
- package/dist/handlers/message-handlers/task-quote-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/task-quote-handler.js +29 -0
- package/dist/handlers/message-handlers/task-quote-handler.js.map +1 -0
- package/dist/handlers/message-handlers/task-response-handler.js +2 -5
- package/dist/handlers/message-handlers/task-response-handler.js.map +1 -1
- package/dist/handlers/message-handlers/types.d.ts +21 -7
- package/dist/handlers/message-handlers/types.d.ts.map +1 -1
- package/dist/handlers/message-handlers/unsubscribe-response-handler.d.ts +53 -31
- package/dist/handlers/message-handlers/unsubscribe-response-handler.d.ts.map +1 -1
- package/dist/handlers/message-handlers/unsubscribe-response-handler.js +4 -6
- package/dist/handlers/message-handlers/unsubscribe-response-handler.js.map +1 -1
- package/dist/handlers/message-handlers/user-authenticated-handler.d.ts +40 -0
- package/dist/handlers/message-handlers/user-authenticated-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/user-authenticated-handler.js +28 -0
- package/dist/handlers/message-handlers/user-authenticated-handler.js.map +1 -0
- package/dist/handlers/message-handlers/user-count-handler.d.ts +49 -0
- package/dist/handlers/message-handlers/user-count-handler.d.ts.map +1 -0
- package/dist/handlers/message-handlers/user-count-handler.js +31 -0
- package/dist/handlers/message-handlers/user-count-handler.js.map +1 -0
- package/dist/handlers/webhook-handler.d.ts +1 -1
- package/dist/handlers/webhook-handler.d.ts.map +1 -1
- package/dist/handlers/webhook-handler.js +14 -5
- package/dist/handlers/webhook-handler.js.map +1 -1
- package/dist/index.d.ts +6 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -2
- package/dist/index.js.map +1 -1
- package/dist/managers/admin-manager.d.ts +116 -0
- package/dist/managers/admin-manager.d.ts.map +1 -0
- package/dist/managers/admin-manager.js +169 -0
- package/dist/managers/admin-manager.js.map +1 -0
- package/dist/managers/agent-registry.d.ts +52 -1
- package/dist/managers/agent-registry.d.ts.map +1 -1
- package/dist/managers/agent-registry.js +145 -6
- package/dist/managers/agent-registry.js.map +1 -1
- package/dist/managers/agent-room-manager.d.ts +216 -0
- package/dist/managers/agent-room-manager.d.ts.map +1 -0
- package/dist/managers/agent-room-manager.js +555 -0
- package/dist/managers/agent-room-manager.js.map +1 -0
- package/dist/managers/connection-manager.js +2 -0
- package/dist/managers/connection-manager.js.map +1 -1
- package/dist/managers/index.d.ts +4 -1
- package/dist/managers/index.d.ts.map +1 -1
- package/dist/managers/index.js +7 -1
- package/dist/managers/index.js.map +1 -1
- package/dist/managers/message-router.d.ts +56 -5
- package/dist/managers/message-router.d.ts.map +1 -1
- package/dist/managers/message-router.js +155 -8
- package/dist/managers/message-router.js.map +1 -1
- package/dist/managers/room-management-manager.d.ts +213 -0
- package/dist/managers/room-management-manager.d.ts.map +1 -0
- package/dist/managers/room-management-manager.js +442 -0
- package/dist/managers/room-management-manager.js.map +1 -0
- package/dist/managers/room-manager.d.ts +11 -9
- package/dist/managers/room-manager.d.ts.map +1 -1
- package/dist/managers/room-manager.js +14 -10
- package/dist/managers/room-manager.js.map +1 -1
- package/dist/payments/index.d.ts +5 -0
- package/dist/payments/index.d.ts.map +1 -0
- package/dist/payments/index.js +21 -0
- package/dist/payments/index.js.map +1 -0
- package/dist/payments/payment-client.d.ts +74 -0
- package/dist/payments/payment-client.d.ts.map +1 -0
- package/dist/payments/payment-client.js +207 -0
- package/dist/payments/payment-client.js.map +1 -0
- package/dist/teneo-sdk.d.ts +467 -33
- package/dist/teneo-sdk.d.ts.map +1 -1
- package/dist/teneo-sdk.js +735 -26
- package/dist/teneo-sdk.js.map +1 -1
- package/dist/types/categories.d.ts +22 -0
- package/dist/types/categories.d.ts.map +1 -0
- package/dist/types/categories.js +40 -0
- package/dist/types/categories.js.map +1 -0
- package/dist/types/config.d.ts +134 -54
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js +70 -9
- package/dist/types/config.js.map +1 -1
- package/dist/types/error-codes.d.ts +10 -0
- package/dist/types/error-codes.d.ts.map +1 -1
- package/dist/types/error-codes.js +12 -0
- package/dist/types/error-codes.js.map +1 -1
- package/dist/types/events.d.ts +176 -68
- package/dist/types/events.d.ts.map +1 -1
- package/dist/types/events.js +19 -1
- package/dist/types/events.js.map +1 -1
- package/dist/types/index.d.ts +3 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +57 -2
- package/dist/types/index.js.map +1 -1
- package/dist/types/messages.d.ts +22225 -2592
- package/dist/types/messages.d.ts.map +1 -1
- package/dist/types/messages.js +537 -28
- package/dist/types/messages.js.map +1 -1
- package/dist/utils/bounded-queue.d.ts.map +1 -1
- package/dist/utils/bounded-queue.js +5 -2
- package/dist/utils/bounded-queue.js.map +1 -1
- package/dist/utils/circuit-breaker.js +11 -4
- package/dist/utils/circuit-breaker.js.map +1 -1
- package/dist/utils/deduplication-cache.js +3 -1
- package/dist/utils/deduplication-cache.js.map +1 -1
- package/dist/utils/event-waiter.d.ts +3 -3
- package/dist/utils/event-waiter.d.ts.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +4 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/pricing-resolver.d.ts +26 -0
- package/dist/utils/pricing-resolver.d.ts.map +1 -0
- package/dist/utils/pricing-resolver.js +85 -0
- package/dist/utils/pricing-resolver.js.map +1 -0
- package/dist/utils/rate-limiter.d.ts.map +1 -1
- package/dist/utils/rate-limiter.js +6 -0
- package/dist/utils/rate-limiter.js.map +1 -1
- package/dist/utils/retry-policy.js +1 -0
- package/dist/utils/retry-policy.js.map +1 -1
- package/dist/utils/secure-private-key.js +3 -1
- package/dist/utils/secure-private-key.js.map +1 -1
- package/dist/utils/signature-verifier.d.ts.map +1 -1
- package/dist/utils/signature-verifier.js +3 -1
- package/dist/utils/signature-verifier.js.map +1 -1
- package/examples/.env.example +2 -2
- package/examples/agent-room-management-example.ts +335 -0
- package/examples/basic-usage.ts +3 -4
- package/examples/claude-agent-x-follower/.env.example +3 -3
- package/examples/claude-agent-x-follower/QUICKSTART.md +3 -3
- package/examples/claude-agent-x-follower/README.md +3 -3
- package/examples/claude-agent-x-follower/index.ts +120 -96
- package/examples/n8n-teneo/.env.example +3 -3
- package/examples/n8n-teneo/README.md +2 -2
- package/examples/n8n-teneo/index.ts +54 -44
- package/examples/nestjs-dashboard/.env.example +11 -0
- package/examples/nestjs-dashboard/README.md +297 -0
- package/examples/nestjs-dashboard/nest-cli.json +10 -0
- package/examples/nestjs-dashboard/package.json +44 -0
- package/examples/nestjs-dashboard/pnpm-lock.yaml +3079 -0
- package/examples/nestjs-dashboard/src/app.controller.ts +24 -0
- package/examples/nestjs-dashboard/src/app.module.ts +15 -0
- package/examples/nestjs-dashboard/src/main.ts +32 -0
- package/examples/nestjs-dashboard/src/public/dashboard.html +1144 -0
- package/examples/nestjs-dashboard/src/teneo/agents.controller.ts +54 -0
- package/examples/nestjs-dashboard/src/teneo/events.controller.ts +65 -0
- package/examples/nestjs-dashboard/src/teneo/messages.controller.ts +47 -0
- package/examples/nestjs-dashboard/src/teneo/rooms.controller.ts +258 -0
- package/examples/nestjs-dashboard/src/teneo/teneo.module.ts +13 -0
- package/examples/nestjs-dashboard/src/teneo/teneo.service.ts +484 -0
- package/examples/nestjs-dashboard/tsconfig.json +22 -0
- package/examples/openai-teneo/.env.example +3 -3
- package/examples/openai-teneo/README.md +3 -3
- package/examples/openai-teneo/index.ts +82 -71
- package/examples/production-dashboard/.env.example +3 -3
- package/examples/production-dashboard/README.md +90 -13
- package/examples/production-dashboard/public/dashboard.html +1173 -601
- package/examples/production-dashboard/server.ts +349 -7
- package/examples/room-management-example.ts +282 -0
- package/examples/usage/.env.example +2 -2
- package/examples/usage/01-connect.ts +3 -4
- package/examples/usage/02-list-agents.ts +2 -3
- package/examples/usage/03-pick-agent.ts +2 -3
- package/examples/usage/04-find-by-capability.ts +2 -3
- package/examples/usage/05-webhook-example.ts +2 -3
- package/examples/usage/06-simple-api-server.ts +2 -3
- package/examples/usage/07-event-listener.ts +2 -3
- package/examples/usage/README.md +1 -1
- package/examples/webhook-integration.ts +1 -1
- package/examples/x-influencer-battle-server.ts +2 -2
- package/package.json +12 -1
- package/src/core/websocket-client.test.ts +8 -3
- package/src/core/websocket-client.ts +58 -4
- package/src/formatters/response-formatter.test.ts +2 -0
- package/src/formatters/response-formatter.ts +3 -3
- package/src/handlers/message-handlers/agent-details-response-handler.ts +42 -0
- package/src/handlers/message-handlers/agent-room-operation-response-handler.ts +77 -0
- package/src/handlers/message-handlers/agent-status-update-handler.ts +52 -0
- package/src/handlers/message-handlers/all-agents-response-handler.ts +39 -0
- package/src/handlers/message-handlers/auth-message-handler.ts +78 -5
- package/src/handlers/message-handlers/auth-success-handler.ts +63 -6
- package/src/handlers/message-handlers/base-handler.ts +20 -7
- package/src/handlers/message-handlers/index.ts +53 -0
- package/src/handlers/message-handlers/list-available-agents-handler.ts +41 -0
- package/src/handlers/message-handlers/list-room-agents-handler.ts +58 -0
- package/src/handlers/message-handlers/list-rooms-response-handler.ts +4 -2
- package/src/handlers/message-handlers/rate-limit-notification-handler.ts +45 -0
- package/src/handlers/message-handlers/regular-message-handler.ts +3 -2
- package/src/handlers/message-handlers/room-operation-response-handler.ts +102 -0
- package/src/handlers/message-handlers/subscribe-response-handler.ts +12 -2
- package/src/handlers/message-handlers/task-quote-handler.ts +31 -0
- package/src/handlers/message-handlers/types.ts +41 -7
- package/src/handlers/message-handlers/unsubscribe-response-handler.ts +12 -2
- package/src/handlers/message-handlers/user-authenticated-handler.ts +31 -0
- package/src/handlers/message-handlers/user-count-handler.ts +34 -0
- package/src/handlers/webhook-handler.test.ts +3 -2
- package/src/handlers/webhook-handler.ts +13 -7
- package/src/index.ts +21 -0
- package/src/managers/admin-manager.ts +249 -0
- package/src/managers/agent-registry.test.ts +2 -1
- package/src/managers/agent-registry.ts +170 -2
- package/src/managers/agent-room-manager.ts +665 -0
- package/src/managers/index.ts +15 -1
- package/src/managers/message-router.ts +215 -17
- package/src/managers/room-management-manager.ts +520 -0
- package/src/managers/room-manager.ts +15 -20
- package/src/payments/index.ts +22 -0
- package/src/payments/payment-client.ts +240 -0
- package/src/teneo-sdk.ts +806 -30
- package/src/types/categories.ts +45 -0
- package/src/types/config.ts +80 -7
- package/src/types/error-codes.ts +14 -0
- package/src/types/events.test.ts +1 -0
- package/src/types/events.ts +67 -0
- package/src/types/index.ts +111 -0
- package/src/types/messages.test.ts +2 -1
- package/src/types/messages.ts +677 -42
- package/src/utils/bounded-queue.test.ts +1 -1
- package/src/utils/bounded-queue.ts +2 -1
- package/src/utils/circuit-breaker.test.ts +1 -1
- package/src/utils/deduplication-cache.test.ts +1 -1
- package/src/utils/event-waiter.test.ts +1 -1
- package/src/utils/event-waiter.ts +3 -3
- package/src/utils/index.ts +7 -0
- package/src/utils/logger.ts +8 -8
- package/src/utils/pricing-resolver.ts +128 -0
- package/src/utils/rate-limiter.test.ts +1 -1
- package/src/utils/rate-limiter.ts +1 -0
- package/src/utils/signature-verifier.test.ts +2 -2
- package/src/utils/signature-verifier.ts +3 -2
- package/tests/.env.example +7 -0
- package/tests/direct-agent-test.ts +151 -0
- package/tests/integration/real-server.test.ts +2 -0
- package/tests/integration/room-management.test.ts +516 -0
- package/tests/integration/websocket.test.ts +5 -2
- package/tests/payment-flow-test.ts +147 -0
- package/tests/unit/handlers/agent-room-operation-response-handler.test.ts +382 -0
- package/tests/unit/handlers/agent-status-update-handler.test.ts +403 -0
- package/tests/unit/handlers/auth-success-handler-rooms.test.ts +697 -0
- package/tests/unit/handlers/list-available-agents-handler.test.ts +248 -0
- package/tests/unit/handlers/list-room-agents-handler.test.ts +290 -0
- package/tests/unit/handlers/room-operation-response-handler.test.ts +500 -0
- package/tests/unit/managers/agent-room-manager.test.ts +527 -0
- package/tests/unit/managers/room-management-manager.test.ts +420 -0
- package/tsconfig.json +2 -2
- package/vitest.config.ts +1 -0
|
@@ -0,0 +1,442 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* RoomManagementManager - Manages room CRUD operations (v2.0.0)
|
|
4
|
+
* Handles creating, updating, and deleting private rooms
|
|
5
|
+
* Tracks owned vs shared rooms with local caching
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.RoomManagementManager = void 0;
|
|
9
|
+
const eventemitter3_1 = require("eventemitter3");
|
|
10
|
+
const events_1 = require("../types/events");
|
|
11
|
+
const error_codes_1 = require("../types/error-codes");
|
|
12
|
+
class RoomManagementManager extends eventemitter3_1.EventEmitter {
|
|
13
|
+
wsClient;
|
|
14
|
+
logger;
|
|
15
|
+
// Room caches
|
|
16
|
+
ownedRooms = new Map(); // Rooms user owns
|
|
17
|
+
sharedRooms = new Map(); // Rooms user is member of
|
|
18
|
+
maxPrivateRooms = 1; // Default limit
|
|
19
|
+
constructor(wsClient, logger) {
|
|
20
|
+
super();
|
|
21
|
+
this.wsClient = wsClient;
|
|
22
|
+
this.logger = logger;
|
|
23
|
+
}
|
|
24
|
+
// ============================================================================
|
|
25
|
+
// ROOM CRUD OPERATIONS
|
|
26
|
+
// ============================================================================
|
|
27
|
+
/**
|
|
28
|
+
* Creates a new private room.
|
|
29
|
+
* Checks room limit before creating.
|
|
30
|
+
*
|
|
31
|
+
* @param options - Room creation options
|
|
32
|
+
* @returns Promise that resolves when room is created
|
|
33
|
+
* @throws {SDKError} If not connected, over limit, or validation fails
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```typescript
|
|
37
|
+
* const room = await sdk.rooms.createRoom({
|
|
38
|
+
* name: 'My Private Room',
|
|
39
|
+
* description: 'A room for my project'
|
|
40
|
+
* });
|
|
41
|
+
* console.log(`Created room: ${room.id}`);
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
async createRoom(options) {
|
|
45
|
+
if (!this.wsClient.isConnected) {
|
|
46
|
+
throw new events_1.SDKError("Not connected to Teneo Protocol", error_codes_1.ErrorCode.NOT_CONNECTED);
|
|
47
|
+
}
|
|
48
|
+
// Validate inputs
|
|
49
|
+
this.validateRoomName(options.name);
|
|
50
|
+
if (options.description !== undefined) {
|
|
51
|
+
this.validateRoomDescription(options.description);
|
|
52
|
+
}
|
|
53
|
+
// Check room limit
|
|
54
|
+
if (!this.canCreateRoom()) {
|
|
55
|
+
throw new events_1.SDKError(`Room limit reached. Maximum ${this.maxPrivateRooms} private rooms allowed.`, error_codes_1.ErrorCode.VALIDATION_ERROR);
|
|
56
|
+
}
|
|
57
|
+
this.logger.debug("RoomManagementManager: Creating room", options);
|
|
58
|
+
// Send create_room message
|
|
59
|
+
const message = {
|
|
60
|
+
type: "create_room",
|
|
61
|
+
data: {
|
|
62
|
+
name: options.name,
|
|
63
|
+
description: options.description
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
// Return promise that will be resolved by the response handler
|
|
67
|
+
return new Promise((resolve, reject) => {
|
|
68
|
+
const timeout = setTimeout(() => {
|
|
69
|
+
cleanup();
|
|
70
|
+
reject(new events_1.SDKError("Room creation timeout", error_codes_1.ErrorCode.TIMEOUT));
|
|
71
|
+
}, 30000);
|
|
72
|
+
const onSuccess = (room) => {
|
|
73
|
+
cleanup();
|
|
74
|
+
resolve(room);
|
|
75
|
+
};
|
|
76
|
+
const onError = (error) => {
|
|
77
|
+
cleanup();
|
|
78
|
+
reject(error);
|
|
79
|
+
};
|
|
80
|
+
const cleanup = () => {
|
|
81
|
+
clearTimeout(timeout);
|
|
82
|
+
this.off("room:created", onSuccess);
|
|
83
|
+
this.off("room:create_error", onError);
|
|
84
|
+
};
|
|
85
|
+
this.once("room:created", onSuccess);
|
|
86
|
+
this.once("room:create_error", onError);
|
|
87
|
+
this.wsClient.sendMessage(message);
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Updates an existing room's name and/or description.
|
|
92
|
+
* User must own the room to update it.
|
|
93
|
+
*
|
|
94
|
+
* @param roomId - ID of room to update
|
|
95
|
+
* @param updates - Fields to update
|
|
96
|
+
* @returns Promise that resolves when room is updated
|
|
97
|
+
* @throws {SDKError} If not connected, not owner, or validation fails
|
|
98
|
+
*
|
|
99
|
+
* @example
|
|
100
|
+
* ```typescript
|
|
101
|
+
* await sdk.rooms.updateRoom('room-123', {
|
|
102
|
+
* name: 'Updated Room Name',
|
|
103
|
+
* description: 'New description'
|
|
104
|
+
* });
|
|
105
|
+
* ```
|
|
106
|
+
*/
|
|
107
|
+
async updateRoom(roomId, updates) {
|
|
108
|
+
if (!this.wsClient.isConnected) {
|
|
109
|
+
throw new events_1.SDKError("Not connected to Teneo Protocol", error_codes_1.ErrorCode.NOT_CONNECTED);
|
|
110
|
+
}
|
|
111
|
+
// Verify user owns room
|
|
112
|
+
if (!this.ownedRooms.has(roomId)) {
|
|
113
|
+
throw new events_1.SDKError("Cannot update room: You don't own this room", error_codes_1.ErrorCode.PERMISSION_DENIED);
|
|
114
|
+
}
|
|
115
|
+
// Validate at least one field is provided
|
|
116
|
+
if (updates.name === undefined && updates.description === undefined) {
|
|
117
|
+
throw new events_1.SDKError("At least one field (name or description) must be provided", error_codes_1.ErrorCode.VALIDATION_ERROR);
|
|
118
|
+
}
|
|
119
|
+
// Validate inputs
|
|
120
|
+
if (updates.name !== undefined) {
|
|
121
|
+
this.validateRoomName(updates.name);
|
|
122
|
+
}
|
|
123
|
+
if (updates.description !== undefined) {
|
|
124
|
+
this.validateRoomDescription(updates.description);
|
|
125
|
+
}
|
|
126
|
+
this.logger.debug("RoomManagementManager: Updating room", { roomId, updates });
|
|
127
|
+
// Send update_room message
|
|
128
|
+
const message = {
|
|
129
|
+
type: "update_room",
|
|
130
|
+
data: {
|
|
131
|
+
room_id: roomId,
|
|
132
|
+
name: updates.name,
|
|
133
|
+
description: updates.description
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
return new Promise((resolve, reject) => {
|
|
137
|
+
const timeout = setTimeout(() => {
|
|
138
|
+
cleanup();
|
|
139
|
+
reject(new events_1.SDKError("Room update timeout", error_codes_1.ErrorCode.TIMEOUT));
|
|
140
|
+
}, 30000);
|
|
141
|
+
const onSuccess = (room) => {
|
|
142
|
+
// Only resolve if it's the room we're updating
|
|
143
|
+
if (room.id === roomId) {
|
|
144
|
+
cleanup();
|
|
145
|
+
resolve(room);
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
const onError = (error, responseRoomId) => {
|
|
149
|
+
if (!responseRoomId || responseRoomId === roomId) {
|
|
150
|
+
cleanup();
|
|
151
|
+
reject(error);
|
|
152
|
+
}
|
|
153
|
+
};
|
|
154
|
+
const cleanup = () => {
|
|
155
|
+
clearTimeout(timeout);
|
|
156
|
+
this.off("room:updated", onSuccess);
|
|
157
|
+
this.off("room:update_error", onError);
|
|
158
|
+
};
|
|
159
|
+
this.once("room:updated", onSuccess);
|
|
160
|
+
this.once("room:update_error", onError);
|
|
161
|
+
this.wsClient.sendMessage(message);
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Deletes a room permanently.
|
|
166
|
+
* User must own the room to delete it.
|
|
167
|
+
*
|
|
168
|
+
* @param roomId - ID of room to delete
|
|
169
|
+
* @returns Promise that resolves when room is deleted
|
|
170
|
+
* @throws {SDKError} If not connected or not owner
|
|
171
|
+
*
|
|
172
|
+
* @example
|
|
173
|
+
* ```typescript
|
|
174
|
+
* await sdk.rooms.deleteRoom('room-123');
|
|
175
|
+
* console.log('Room deleted successfully');
|
|
176
|
+
* ```
|
|
177
|
+
*/
|
|
178
|
+
async deleteRoom(roomId) {
|
|
179
|
+
if (!this.wsClient.isConnected) {
|
|
180
|
+
throw new events_1.SDKError("Not connected to Teneo Protocol", error_codes_1.ErrorCode.NOT_CONNECTED);
|
|
181
|
+
}
|
|
182
|
+
// Verify user owns room
|
|
183
|
+
if (!this.ownedRooms.has(roomId)) {
|
|
184
|
+
throw new events_1.SDKError("Cannot delete room: You don't own this room", error_codes_1.ErrorCode.PERMISSION_DENIED);
|
|
185
|
+
}
|
|
186
|
+
this.logger.debug("RoomManagementManager: Deleting room", { roomId });
|
|
187
|
+
// Send delete_room message
|
|
188
|
+
const message = {
|
|
189
|
+
type: "delete_room",
|
|
190
|
+
data: {
|
|
191
|
+
room_id: roomId
|
|
192
|
+
}
|
|
193
|
+
};
|
|
194
|
+
return new Promise((resolve, reject) => {
|
|
195
|
+
const timeout = setTimeout(() => {
|
|
196
|
+
cleanup();
|
|
197
|
+
reject(new events_1.SDKError("Room deletion timeout", error_codes_1.ErrorCode.TIMEOUT));
|
|
198
|
+
}, 30000);
|
|
199
|
+
const onSuccess = (deletedRoomId) => {
|
|
200
|
+
if (deletedRoomId === roomId) {
|
|
201
|
+
cleanup();
|
|
202
|
+
resolve();
|
|
203
|
+
}
|
|
204
|
+
};
|
|
205
|
+
const onError = (error, responseRoomId) => {
|
|
206
|
+
if (!responseRoomId || responseRoomId === roomId) {
|
|
207
|
+
cleanup();
|
|
208
|
+
reject(error);
|
|
209
|
+
}
|
|
210
|
+
};
|
|
211
|
+
const cleanup = () => {
|
|
212
|
+
clearTimeout(timeout);
|
|
213
|
+
this.off("room:deleted", onSuccess);
|
|
214
|
+
this.off("room:delete_error", onError);
|
|
215
|
+
};
|
|
216
|
+
this.once("room:deleted", onSuccess);
|
|
217
|
+
this.once("room:delete_error", onError);
|
|
218
|
+
this.wsClient.sendMessage(message);
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
// ============================================================================
|
|
222
|
+
// QUERY METHODS (Synchronous, from cache)
|
|
223
|
+
// ============================================================================
|
|
224
|
+
/**
|
|
225
|
+
* Gets all rooms owned by the current user.
|
|
226
|
+
* Synchronous method that returns cached data.
|
|
227
|
+
*
|
|
228
|
+
* @returns Array of owned room info
|
|
229
|
+
*
|
|
230
|
+
* @example
|
|
231
|
+
* ```typescript
|
|
232
|
+
* const myRooms = sdk.rooms.getOwnedRooms();
|
|
233
|
+
* console.log(`I own ${myRooms.length} rooms`);
|
|
234
|
+
* ```
|
|
235
|
+
*/
|
|
236
|
+
getOwnedRooms() {
|
|
237
|
+
return Array.from(this.ownedRooms.values()).map((room) => ({ ...room }));
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Gets all rooms the user is a member of (but doesn't own).
|
|
241
|
+
* Synchronous method that returns cached data.
|
|
242
|
+
*
|
|
243
|
+
* @returns Array of shared room info
|
|
244
|
+
*
|
|
245
|
+
* @example
|
|
246
|
+
* ```typescript
|
|
247
|
+
* const sharedRooms = sdk.rooms.getSharedRooms();
|
|
248
|
+
* console.log(`I'm a member of ${sharedRooms.length} shared rooms`);
|
|
249
|
+
* ```
|
|
250
|
+
*/
|
|
251
|
+
getSharedRooms() {
|
|
252
|
+
return Array.from(this.sharedRooms.values()).map((room) => ({ ...room }));
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Gets all rooms the user has access to (both owned and shared).
|
|
256
|
+
* Convenience method that combines getOwnedRooms() and getSharedRooms().
|
|
257
|
+
* Synchronous method that returns cached data.
|
|
258
|
+
*
|
|
259
|
+
* @returns Array of all room info (owned + shared)
|
|
260
|
+
*
|
|
261
|
+
* @example
|
|
262
|
+
* ```typescript
|
|
263
|
+
* const allRooms = sdk.getAllRooms();
|
|
264
|
+
* console.log(`I have access to ${allRooms.length} total rooms`);
|
|
265
|
+
*
|
|
266
|
+
* // Filter by ownership if needed
|
|
267
|
+
* const myRooms = allRooms.filter(r => r.is_owner);
|
|
268
|
+
* const sharedWithMe = allRooms.filter(r => !r.is_owner);
|
|
269
|
+
* ```
|
|
270
|
+
*/
|
|
271
|
+
getAllRooms() {
|
|
272
|
+
return [...this.getOwnedRooms(), ...this.getSharedRooms()];
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Gets a specific room by ID.
|
|
276
|
+
* Checks both owned and shared room caches.
|
|
277
|
+
*
|
|
278
|
+
* @param roomId - Room ID to look up
|
|
279
|
+
* @returns Room info if found, undefined otherwise
|
|
280
|
+
*
|
|
281
|
+
* @example
|
|
282
|
+
* ```typescript
|
|
283
|
+
* const room = sdk.rooms.getRoomById('room-123');
|
|
284
|
+
* if (room) {
|
|
285
|
+
* console.log(`Room: ${room.name}`);
|
|
286
|
+
* }
|
|
287
|
+
* ```
|
|
288
|
+
*/
|
|
289
|
+
getRoomById(roomId) {
|
|
290
|
+
const owned = this.ownedRooms.get(roomId);
|
|
291
|
+
if (owned)
|
|
292
|
+
return { ...owned };
|
|
293
|
+
const shared = this.sharedRooms.get(roomId);
|
|
294
|
+
if (shared)
|
|
295
|
+
return { ...shared };
|
|
296
|
+
return undefined;
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Gets the maximum number of private rooms the user can create.
|
|
300
|
+
* Based on user's subscription/plan.
|
|
301
|
+
*
|
|
302
|
+
* @returns Maximum private room limit
|
|
303
|
+
*
|
|
304
|
+
* @example
|
|
305
|
+
* ```typescript
|
|
306
|
+
* const limit = sdk.rooms.getRoomLimit();
|
|
307
|
+
* console.log(`You can create up to ${limit} private rooms`);
|
|
308
|
+
* ```
|
|
309
|
+
*/
|
|
310
|
+
getRoomLimit() {
|
|
311
|
+
return this.maxPrivateRooms;
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* Checks if user can create another private room.
|
|
315
|
+
* Compares current owned room count against limit.
|
|
316
|
+
*
|
|
317
|
+
* @returns True if under limit, false otherwise
|
|
318
|
+
*
|
|
319
|
+
* @example
|
|
320
|
+
* ```typescript
|
|
321
|
+
* if (sdk.rooms.canCreateRoom()) {
|
|
322
|
+
* await sdk.rooms.createRoom({ name: 'New Room' });
|
|
323
|
+
* } else {
|
|
324
|
+
* console.log('Room limit reached!');
|
|
325
|
+
* }
|
|
326
|
+
* ```
|
|
327
|
+
*/
|
|
328
|
+
canCreateRoom() {
|
|
329
|
+
return this.ownedRooms.size < this.maxPrivateRooms;
|
|
330
|
+
}
|
|
331
|
+
/**
|
|
332
|
+
* Gets the current count of owned private rooms.
|
|
333
|
+
*
|
|
334
|
+
* @returns Number of rooms user owns
|
|
335
|
+
*
|
|
336
|
+
* @example
|
|
337
|
+
* ```typescript
|
|
338
|
+
* const count = sdk.rooms.getOwnedRoomCount();
|
|
339
|
+
* const limit = sdk.rooms.getRoomLimit();
|
|
340
|
+
* console.log(`Using ${count}/${limit} room slots`);
|
|
341
|
+
* ```
|
|
342
|
+
*/
|
|
343
|
+
getOwnedRoomCount() {
|
|
344
|
+
return this.ownedRooms.size;
|
|
345
|
+
}
|
|
346
|
+
// ============================================================================
|
|
347
|
+
// INTERNAL METHODS (Called by SDK internals)
|
|
348
|
+
// ============================================================================
|
|
349
|
+
/**
|
|
350
|
+
* Sets the room limit from auth response.
|
|
351
|
+
* @internal
|
|
352
|
+
*/
|
|
353
|
+
setRoomLimit(limit) {
|
|
354
|
+
this.maxPrivateRooms = limit;
|
|
355
|
+
this.logger.debug("RoomManagementManager: Room limit set", { limit });
|
|
356
|
+
}
|
|
357
|
+
/**
|
|
358
|
+
* Initializes owned rooms cache from auth response.
|
|
359
|
+
* @internal
|
|
360
|
+
*/
|
|
361
|
+
setOwnedRooms(rooms) {
|
|
362
|
+
this.ownedRooms.clear();
|
|
363
|
+
for (const room of rooms) {
|
|
364
|
+
this.ownedRooms.set(room.id, room);
|
|
365
|
+
}
|
|
366
|
+
this.logger.debug("RoomManagementManager: Owned rooms set", { count: rooms.length });
|
|
367
|
+
}
|
|
368
|
+
/**
|
|
369
|
+
* Initializes shared rooms cache from auth response.
|
|
370
|
+
* @internal
|
|
371
|
+
*/
|
|
372
|
+
setSharedRooms(rooms) {
|
|
373
|
+
this.sharedRooms.clear();
|
|
374
|
+
for (const room of rooms) {
|
|
375
|
+
this.sharedRooms.set(room.id, room);
|
|
376
|
+
}
|
|
377
|
+
this.logger.debug("RoomManagementManager: Shared rooms set", { count: rooms.length });
|
|
378
|
+
}
|
|
379
|
+
/**
|
|
380
|
+
* Adds or updates a room in the appropriate cache.
|
|
381
|
+
* Determines owned vs shared based on is_owner flag.
|
|
382
|
+
* @internal
|
|
383
|
+
*/
|
|
384
|
+
upsertRoom(room) {
|
|
385
|
+
if (room.is_owner) {
|
|
386
|
+
this.ownedRooms.set(room.id, room);
|
|
387
|
+
// Remove from shared if it was there
|
|
388
|
+
this.sharedRooms.delete(room.id);
|
|
389
|
+
this.logger.debug("RoomManagementManager: Upserted owned room", { roomId: room.id });
|
|
390
|
+
}
|
|
391
|
+
else {
|
|
392
|
+
this.sharedRooms.set(room.id, room);
|
|
393
|
+
// Remove from owned if it was there
|
|
394
|
+
this.ownedRooms.delete(room.id);
|
|
395
|
+
this.logger.debug("RoomManagementManager: Upserted shared room", { roomId: room.id });
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
/**
|
|
399
|
+
* Removes a room from cache.
|
|
400
|
+
* Checks both owned and shared caches.
|
|
401
|
+
* @internal
|
|
402
|
+
*/
|
|
403
|
+
removeRoom(roomId) {
|
|
404
|
+
const wasOwned = this.ownedRooms.delete(roomId);
|
|
405
|
+
const wasShared = this.sharedRooms.delete(roomId);
|
|
406
|
+
if (wasOwned || wasShared) {
|
|
407
|
+
this.logger.debug("RoomManagementManager: Removed room", {
|
|
408
|
+
roomId,
|
|
409
|
+
wasOwned,
|
|
410
|
+
wasShared
|
|
411
|
+
});
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
/**
|
|
415
|
+
* Clears all caches. Called on disconnect.
|
|
416
|
+
* @internal
|
|
417
|
+
*/
|
|
418
|
+
clearCaches() {
|
|
419
|
+
this.ownedRooms.clear();
|
|
420
|
+
this.sharedRooms.clear();
|
|
421
|
+
this.maxPrivateRooms = 1;
|
|
422
|
+
this.logger.debug("RoomManagementManager: Caches cleared");
|
|
423
|
+
}
|
|
424
|
+
// ============================================================================
|
|
425
|
+
// VALIDATION
|
|
426
|
+
// ============================================================================
|
|
427
|
+
validateRoomName(name) {
|
|
428
|
+
if (!name || name.trim().length === 0) {
|
|
429
|
+
throw new events_1.SDKError("Room name cannot be empty", error_codes_1.ErrorCode.VALIDATION_ERROR);
|
|
430
|
+
}
|
|
431
|
+
if (name.length > 100) {
|
|
432
|
+
throw new events_1.SDKError("Room name too long (max 100 characters)", error_codes_1.ErrorCode.VALIDATION_ERROR);
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
validateRoomDescription(description) {
|
|
436
|
+
if (description.length > 500) {
|
|
437
|
+
throw new events_1.SDKError("Room description too long (max 500 characters)", error_codes_1.ErrorCode.VALIDATION_ERROR);
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
exports.RoomManagementManager = RoomManagementManager;
|
|
442
|
+
//# sourceMappingURL=room-management-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"room-management-manager.js","sourceRoot":"","sources":["../../src/managers/room-management-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { EventEmitter } from "eventemitter3";
|
|
6
6
|
import { WebSocketClient } from "../core/websocket-client";
|
|
7
|
-
import {
|
|
7
|
+
import { Logger, RoomInfo } from "../types";
|
|
8
8
|
import { SDKEvents } from "../types/events";
|
|
9
9
|
export declare class RoomManager extends EventEmitter<SDKEvents> {
|
|
10
10
|
private readonly wsClient;
|
|
@@ -13,7 +13,7 @@ export declare class RoomManager extends EventEmitter<SDKEvents> {
|
|
|
13
13
|
private readonly subscribedRooms;
|
|
14
14
|
constructor(wsClient: WebSocketClient, logger: Logger);
|
|
15
15
|
/**
|
|
16
|
-
* Subscribes to a public room in the Teneo
|
|
16
|
+
* Subscribes to a public room in the Teneo Protocol.
|
|
17
17
|
* Validates room ID and sends subscribe message to the server.
|
|
18
18
|
* The actual subscription state is updated when the server confirms via room:subscribed event.
|
|
19
19
|
*
|
|
@@ -30,19 +30,21 @@ export declare class RoomManager extends EventEmitter<SDKEvents> {
|
|
|
30
30
|
*/
|
|
31
31
|
subscribeToRoom(roomId: string): Promise<void>;
|
|
32
32
|
/**
|
|
33
|
-
* Unsubscribes from a room in the Teneo
|
|
33
|
+
* Unsubscribes from a public room in the Teneo Protocol.
|
|
34
34
|
* Validates room ID and sends unsubscribe message to the server.
|
|
35
35
|
* The actual subscription state is updated when the server confirms via room:unsubscribed event.
|
|
36
36
|
*
|
|
37
|
-
*
|
|
37
|
+
* Note: This only applies to public rooms. Private rooms cannot be unsubscribed from.
|
|
38
|
+
*
|
|
39
|
+
* @param roomId - The ID of the public room to unsubscribe from
|
|
38
40
|
* @returns Promise that resolves when unsubscribed
|
|
39
41
|
* @throws {SDKError} If not connected to the network
|
|
40
42
|
* @throws {ValidationError} If roomId is empty or invalid
|
|
41
43
|
*
|
|
42
44
|
* @example
|
|
43
45
|
* ```typescript
|
|
44
|
-
* await roomManager.unsubscribeFromRoom('
|
|
45
|
-
* console.log('Unsubscription request sent for
|
|
46
|
+
* await roomManager.unsubscribeFromRoom('public-announcements');
|
|
47
|
+
* console.log('Unsubscription request sent for public room');
|
|
46
48
|
* ```
|
|
47
49
|
*/
|
|
48
50
|
unsubscribeFromRoom(roomId: string): Promise<void>;
|
|
@@ -87,7 +89,7 @@ export declare class RoomManager extends EventEmitter<SDKEvents> {
|
|
|
87
89
|
* rooms.forEach(room => console.log(`${room.id}: ${room.name}`));
|
|
88
90
|
* ```
|
|
89
91
|
*/
|
|
90
|
-
getRooms(): ReadonlyArray<Readonly<
|
|
92
|
+
getRooms(): ReadonlyArray<Readonly<RoomInfo>>;
|
|
91
93
|
/**
|
|
92
94
|
* Gets a specific room by its ID.
|
|
93
95
|
* Returns a defensive copy to prevent external modification of room state.
|
|
@@ -105,7 +107,7 @@ export declare class RoomManager extends EventEmitter<SDKEvents> {
|
|
|
105
107
|
* }
|
|
106
108
|
* ```
|
|
107
109
|
*/
|
|
108
|
-
getRoom(roomId: string): Readonly<
|
|
110
|
+
getRoom(roomId: string): Readonly<RoomInfo> | undefined;
|
|
109
111
|
/**
|
|
110
112
|
* Fetches the list of rooms from the server.
|
|
111
113
|
* Sends list_rooms message and waits for response from server.
|
|
@@ -137,7 +139,7 @@ export declare class RoomManager extends EventEmitter<SDKEvents> {
|
|
|
137
139
|
* roomManager.updateRoomsFromAuth(authState.roomObjects);
|
|
138
140
|
* ```
|
|
139
141
|
*/
|
|
140
|
-
updateRoomsFromAuth(rooms:
|
|
142
|
+
updateRoomsFromAuth(rooms: RoomInfo[]): void;
|
|
141
143
|
/**
|
|
142
144
|
* Clears all rooms from the manager.
|
|
143
145
|
* Clears subscription state.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"room-manager.d.ts","sourceRoot":"","sources":["../../src/managers/room-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,
|
|
1
|
+
{"version":3,"file":"room-manager.d.ts","sourceRoot":"","sources":["../../src/managers/room-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAuD,MAAM,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACjG,OAAO,EAAE,SAAS,EAAY,MAAM,iBAAiB,CAAC;AAItD,qBAAa,WAAY,SAAQ,YAAY,CAAC,SAAS,CAAC;IACtD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA+B;IACrD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqB;gBAEzC,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM;IAMrD;;;;;;;;;;;;;;;OAeG;IACU,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAc3D;;;;;;;;;;;;;;;;;OAiBG;IACU,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAc/D;;;;;;;;;;;;;OAaG;IACI,mBAAmB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI;IASzD;;;;;;;;;;;OAWG;IACI,kBAAkB,IAAI,MAAM,EAAE;IAIrC;;;;;;;;;;;;OAYG;IACI,QAAQ,IAAI,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAIpD;;;;;;;;;;;;;;;;OAgBG;IACI,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,SAAS;IAK9D;;;;;;;;;;;;;;;;OAgBG;IACU,SAAS,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAgB7C;;;;;;;;;;;;OAYG;IACI,mBAAmB,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI;IAQnD;;;;;;;;;OASG;IACI,KAAK,IAAI,IAAI;IAKpB;;;;;;;;;;OAUG;IACI,OAAO,IAAI,IAAI;CAKvB"}
|
|
@@ -11,15 +11,17 @@ const events_1 = require("../types/events");
|
|
|
11
11
|
const error_codes_1 = require("../types/error-codes");
|
|
12
12
|
const validation_1 = require("../types/validation");
|
|
13
13
|
class RoomManager extends eventemitter3_1.EventEmitter {
|
|
14
|
+
wsClient;
|
|
15
|
+
logger;
|
|
16
|
+
rooms = new Map();
|
|
17
|
+
subscribedRooms = new Set();
|
|
14
18
|
constructor(wsClient, logger) {
|
|
15
19
|
super();
|
|
16
|
-
this.rooms = new Map();
|
|
17
|
-
this.subscribedRooms = new Set();
|
|
18
20
|
this.wsClient = wsClient;
|
|
19
21
|
this.logger = logger;
|
|
20
22
|
}
|
|
21
23
|
/**
|
|
22
|
-
* Subscribes to a public room in the Teneo
|
|
24
|
+
* Subscribes to a public room in the Teneo Protocol.
|
|
23
25
|
* Validates room ID and sends subscribe message to the server.
|
|
24
26
|
* The actual subscription state is updated when the server confirms via room:subscribed event.
|
|
25
27
|
*
|
|
@@ -36,7 +38,7 @@ class RoomManager extends eventemitter3_1.EventEmitter {
|
|
|
36
38
|
*/
|
|
37
39
|
async subscribeToRoom(roomId) {
|
|
38
40
|
if (!this.wsClient.isConnected) {
|
|
39
|
-
throw new events_1.SDKError("Not connected to Teneo
|
|
41
|
+
throw new events_1.SDKError("Not connected to Teneo Protocol", error_codes_1.ErrorCode.NOT_CONNECTED);
|
|
40
42
|
}
|
|
41
43
|
// Validate room ID
|
|
42
44
|
const validatedRoomId = validation_1.RoomIdSchema.parse(roomId);
|
|
@@ -45,24 +47,26 @@ class RoomManager extends eventemitter3_1.EventEmitter {
|
|
|
45
47
|
await this.wsClient.sendMessage(message);
|
|
46
48
|
}
|
|
47
49
|
/**
|
|
48
|
-
* Unsubscribes from a room in the Teneo
|
|
50
|
+
* Unsubscribes from a public room in the Teneo Protocol.
|
|
49
51
|
* Validates room ID and sends unsubscribe message to the server.
|
|
50
52
|
* The actual subscription state is updated when the server confirms via room:unsubscribed event.
|
|
51
53
|
*
|
|
52
|
-
*
|
|
54
|
+
* Note: This only applies to public rooms. Private rooms cannot be unsubscribed from.
|
|
55
|
+
*
|
|
56
|
+
* @param roomId - The ID of the public room to unsubscribe from
|
|
53
57
|
* @returns Promise that resolves when unsubscribed
|
|
54
58
|
* @throws {SDKError} If not connected to the network
|
|
55
59
|
* @throws {ValidationError} If roomId is empty or invalid
|
|
56
60
|
*
|
|
57
61
|
* @example
|
|
58
62
|
* ```typescript
|
|
59
|
-
* await roomManager.unsubscribeFromRoom('
|
|
60
|
-
* console.log('Unsubscription request sent for
|
|
63
|
+
* await roomManager.unsubscribeFromRoom('public-announcements');
|
|
64
|
+
* console.log('Unsubscription request sent for public room');
|
|
61
65
|
* ```
|
|
62
66
|
*/
|
|
63
67
|
async unsubscribeFromRoom(roomId) {
|
|
64
68
|
if (!this.wsClient.isConnected) {
|
|
65
|
-
throw new events_1.SDKError("Not connected to Teneo
|
|
69
|
+
throw new events_1.SDKError("Not connected to Teneo Protocol", error_codes_1.ErrorCode.NOT_CONNECTED);
|
|
66
70
|
}
|
|
67
71
|
// Validate room ID
|
|
68
72
|
const validatedRoomId = validation_1.RoomIdSchema.parse(roomId);
|
|
@@ -163,7 +167,7 @@ class RoomManager extends eventemitter3_1.EventEmitter {
|
|
|
163
167
|
*/
|
|
164
168
|
async listRooms() {
|
|
165
169
|
if (!this.wsClient.isConnected) {
|
|
166
|
-
throw new events_1.SDKError("Not connected to Teneo
|
|
170
|
+
throw new events_1.SDKError("Not connected to Teneo Protocol", error_codes_1.ErrorCode.NOT_CONNECTED);
|
|
167
171
|
}
|
|
168
172
|
this.logger.info("RoomManager: Listing rooms");
|
|
169
173
|
const message = (0, types_1.createListRooms)();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"room-manager.js","sourceRoot":"","sources":["../../src/managers/room-manager.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,iDAA6C;AAE7C,
|
|
1
|
+
{"version":3,"file":"room-manager.js","sourceRoot":"","sources":["../../src/managers/room-manager.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,iDAA6C;AAE7C,oCAAiG;AACjG,4CAAsD;AACtD,sDAAiD;AACjD,oDAAmD;AAEnD,MAAa,WAAY,SAAQ,4BAAuB;IACrC,QAAQ,CAAkB;IAC1B,MAAM,CAAS;IACf,KAAK,GAAG,IAAI,GAAG,EAAoB,CAAC;IACpC,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;IAErD,YAAY,QAAyB,EAAE,MAAc;QACnD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACI,KAAK,CAAC,eAAe,CAAC,MAAc;QACzC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;YAC/B,MAAM,IAAI,iBAAQ,CAAC,iCAAiC,EAAE,uBAAS,CAAC,aAAa,CAAC,CAAC;QACjF,CAAC;QAED,mBAAmB;QACnB,MAAM,eAAe,GAAG,yBAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAEnD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kCAAkC,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;QAElF,MAAM,OAAO,GAAG,IAAA,uBAAe,EAAC,eAAe,CAAC,CAAC;QACjD,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACI,KAAK,CAAC,mBAAmB,CAAC,MAAc;QAC7C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;YAC/B,MAAM,IAAI,iBAAQ,CAAC,iCAAiC,EAAE,uBAAS,CAAC,aAAa,CAAC,CAAC;QACjF,CAAC;QAED,mBAAmB;QACnB,MAAM,eAAe,GAAG,yBAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAEnD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sCAAsC,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;QAEtF,MAAM,OAAO,GAAG,IAAA,yBAAiB,EAAC,eAAe,CAAC,CAAC;QACnD,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED;;;;;;;;;;;;;OAaG;IACI,mBAAmB,CAAC,aAAuB;QAChD,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,aAAa,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QACpE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oCAAoC,EAAE;YACtD,KAAK,EAAE,aAAa,CAAC,MAAM;YAC3B,KAAK,EAAE,aAAa;SACrB,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;OAWG;IACI,kBAAkB;QACvB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC1C,CAAC;IAED;;;;;;;;;;;;OAYG;IACI,QAAQ;QACb,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;IACtE,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACI,OAAO,CAAC,MAAc;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACxC,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACI,KAAK,CAAC,SAAS;QACpB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;YAC/B,MAAM,IAAI,iBAAQ,CAAC,iCAAiC,EAAE,uBAAS,CAAC,aAAa,CAAC,CAAC;QACjF,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAE/C,MAAM,OAAO,GAAG,IAAA,uBAAe,GAAE,CAAC;QAClC,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAEzC,6DAA6D;QAC7D,+CAA+C;QAC/C,6CAA6C;QAC7C,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;;;;;;;;;;OAYG;IACI,mBAAmB,CAAC,KAAiB;QAC1C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uCAAuC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAEpF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACI,KAAK;QACV,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC;IAED;;;;;;;;;;OAUG;IACI,OAAO;QACZ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAC5C,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;CACF;AA7OD,kCA6OC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Payment module exports for quote-approve flow (v2.2.0)
|
|
3
|
+
*/
|
|
4
|
+
export { PaymentClient, type PaymentClientConfig, USDC_CONTRACT, PEAQ_CHAIN_ID, USDC_DECIMALS, X402_VERSION, DEFAULT_PAYMENT_TIMEOUT_SECONDS, DEFAULT_PAY_TO_ADDRESS, DEFAULT_RPC_URL, buildX402ResourceUrl, usdcToUnits, unitsToUsdc, type SupportedChain } from "./payment-client";
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/payments/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,aAAa,EACb,KAAK,mBAAmB,EAExB,aAAa,EACb,aAAa,EACb,aAAa,EACb,YAAY,EACZ,+BAA+B,EAC/B,sBAAsB,EACtB,eAAe,EAEf,oBAAoB,EACpB,WAAW,EACX,WAAW,EAEX,KAAK,cAAc,EACpB,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Payment module exports for quote-approve flow (v2.2.0)
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.unitsToUsdc = exports.usdcToUnits = exports.buildX402ResourceUrl = exports.DEFAULT_RPC_URL = exports.DEFAULT_PAY_TO_ADDRESS = exports.DEFAULT_PAYMENT_TIMEOUT_SECONDS = exports.X402_VERSION = exports.USDC_DECIMALS = exports.PEAQ_CHAIN_ID = exports.USDC_CONTRACT = exports.PaymentClient = void 0;
|
|
7
|
+
var payment_client_1 = require("./payment-client");
|
|
8
|
+
Object.defineProperty(exports, "PaymentClient", { enumerable: true, get: function () { return payment_client_1.PaymentClient; } });
|
|
9
|
+
// Constants
|
|
10
|
+
Object.defineProperty(exports, "USDC_CONTRACT", { enumerable: true, get: function () { return payment_client_1.USDC_CONTRACT; } });
|
|
11
|
+
Object.defineProperty(exports, "PEAQ_CHAIN_ID", { enumerable: true, get: function () { return payment_client_1.PEAQ_CHAIN_ID; } });
|
|
12
|
+
Object.defineProperty(exports, "USDC_DECIMALS", { enumerable: true, get: function () { return payment_client_1.USDC_DECIMALS; } });
|
|
13
|
+
Object.defineProperty(exports, "X402_VERSION", { enumerable: true, get: function () { return payment_client_1.X402_VERSION; } });
|
|
14
|
+
Object.defineProperty(exports, "DEFAULT_PAYMENT_TIMEOUT_SECONDS", { enumerable: true, get: function () { return payment_client_1.DEFAULT_PAYMENT_TIMEOUT_SECONDS; } });
|
|
15
|
+
Object.defineProperty(exports, "DEFAULT_PAY_TO_ADDRESS", { enumerable: true, get: function () { return payment_client_1.DEFAULT_PAY_TO_ADDRESS; } });
|
|
16
|
+
Object.defineProperty(exports, "DEFAULT_RPC_URL", { enumerable: true, get: function () { return payment_client_1.DEFAULT_RPC_URL; } });
|
|
17
|
+
// Utilities
|
|
18
|
+
Object.defineProperty(exports, "buildX402ResourceUrl", { enumerable: true, get: function () { return payment_client_1.buildX402ResourceUrl; } });
|
|
19
|
+
Object.defineProperty(exports, "usdcToUnits", { enumerable: true, get: function () { return payment_client_1.usdcToUnits; } });
|
|
20
|
+
Object.defineProperty(exports, "unitsToUsdc", { enumerable: true, get: function () { return payment_client_1.unitsToUsdc; } });
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/payments/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,mDAiB0B;AAhBxB,+GAAA,aAAa,OAAA;AAEb,YAAY;AACZ,+GAAA,aAAa,OAAA;AACb,+GAAA,aAAa,OAAA;AACb,+GAAA,aAAa,OAAA;AACb,8GAAA,YAAY,OAAA;AACZ,iIAAA,+BAA+B,OAAA;AAC/B,wHAAA,sBAAsB,OAAA;AACtB,iHAAA,eAAe,OAAA;AACf,YAAY;AACZ,sHAAA,oBAAoB,OAAA;AACpB,6GAAA,WAAW,OAAA;AACX,6GAAA,WAAW,OAAA"}
|