@owlmeans/socket 0.1.18-rc.42 → 0.1.18-rc.44

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 CHANGED
@@ -12,7 +12,7 @@ Shared WebSocket connection types and message protocol for OwlMeans real-time co
12
12
  ## Installation
13
13
 
14
14
  ```bash
15
- bun add @owlmeans/socket@^0.1.18-rc.42
15
+ bun add @owlmeans/socket@^0.1.18-rc.44
16
16
  ```
17
17
 
18
18
  ## Usage
@@ -91,7 +91,7 @@ This package ships embedded agent skills under `agent-meta/`. After installing y
91
91
  your project's skill store (`.agents/skills/`):
92
92
 
93
93
  ```sh
94
- npx @owlmeans/agent-skills@^0.1.18-rc.52
94
+ npx @owlmeans/agent-skills@^0.1.18-rc.54
95
95
  ```
96
96
 
97
97
  The embedded files are version-matched to this package release. Do not edit them
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": 2,
3
3
  "package": "@owlmeans/socket",
4
- "version": "0.1.18-rc.42",
5
- "generatedAt": "2026-10-08T21:27:54.301Z",
4
+ "version": "0.1.18-rc.44",
5
+ "generatedAt": "2026-10-15T10:20:01.299Z",
6
6
  "canonicalRepo": "https://github.com/owlmeans/common",
7
7
  "entries": [
8
8
  {
@@ -8,7 +8,7 @@ user-invocable: false
8
8
  # @owlmeans/socket
9
9
 
10
10
  **Layer:** Core
11
- **Install:** `"@owlmeans/socket": "^0.1.18-rc.42"` in `dependencies`
11
+ **Install:** `"@owlmeans/socket": "^0.1.18-rc.44"` in `dependencies`
12
12
 
13
13
  Contracts and one implementation-free connection model. It knows nothing about WebSockets: the
14
14
  browser side is `@owlmeans/client-socket`, the Fastify side `@owlmeans/server-socket`, and each
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@owlmeans/socket",
3
- "version": "0.1.18-rc.42",
3
+ "version": "0.1.18-rc.44",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -22,7 +22,7 @@
22
22
  },
23
23
  "dependencies": {
24
24
  "@owlmeans/auth": "^0.1.18-rc.41",
25
- "@owlmeans/basic-ids": "^0.1.18-rc.39",
25
+ "@owlmeans/basic-ids": "^0.1.18-rc.40",
26
26
  "@owlmeans/error": "^0.1.18-rc.38",
27
27
  "@owlmeans/log": "^0.1.18-rc.3"
28
28
  },
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=model.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"model.spec.d.ts","sourceRoot":"","sources":["model.spec.ts"],"names":[],"mappings":""}
@@ -1,47 +0,0 @@
1
- import { describe, expect, test } from 'bun:test';
2
- import { AuthenticationStage } from '@owlmeans/auth';
3
- import { ResilientError } from '@owlmeans/error';
4
- import { createBasicConnection, MessageType, SocketMessageMalformed, SocketUnauthorized, SocketUnsupported } from '../src/index.js';
5
- describe('@owlmeans/socket — inbound frame boundary', () => {
6
- test('rejects malformed JSON, non-object frames, and wire System frames', async () => {
7
- const connection = createBasicConnection();
8
- await expect(connection.receive('{')).rejects.toBeInstanceOf(SocketMessageMalformed);
9
- await expect(connection.receive('[]')).rejects.toBeInstanceOf(SocketMessageMalformed);
10
- await expect(connection.receive(JSON.stringify({
11
- type: MessageType.System, event: 'close', payload: {}
12
- }))).rejects.toBeInstanceOf(SocketMessageMalformed);
13
- });
14
- test('permits only authentication frames before a server carrier authenticates the connection', async () => {
15
- const connection = createBasicConnection();
16
- connection.requiresAuthentication = true;
17
- await expect(connection.receive(JSON.stringify({
18
- type: MessageType.Message, payload: 'before-auth'
19
- }))).rejects.toBeInstanceOf(SocketUnauthorized);
20
- connection.stage = AuthenticationStage.Authenticated;
21
- await connection.receive(JSON.stringify({ type: MessageType.Message, payload: 'after-auth' }));
22
- expect(connection.consume()).toEqual(['after-auth', undefined, 0]);
23
- });
24
- test('answers an unknown call with a typed error instead of rejecting dispatch', async () => {
25
- const connection = createBasicConnection();
26
- const sent = [];
27
- connection.send = async (message) => {
28
- if (typeof message !== 'string')
29
- sent.push(message);
30
- };
31
- await connection.receive(JSON.stringify({
32
- type: MessageType.Call, id: 'call-1', method: 'missing', payload: []
33
- }));
34
- expect(sent).toHaveLength(1);
35
- expect(sent[0]?.type).toBe(MessageType.Error);
36
- expect(ResilientError.ensure(sent[0]?.payload)).toBeInstanceOf(SocketUnsupported);
37
- });
38
- test('isolates rejecting listeners and still runs their peers', async () => {
39
- const connection = createBasicConnection();
40
- let observed = false;
41
- connection.listen(async () => { throw new Error('listener failed'); });
42
- connection.listen(async () => { observed = true; });
43
- await connection.receive(JSON.stringify({ type: MessageType.Message, payload: 'event' }));
44
- expect(observed).toBe(true);
45
- });
46
- });
47
- //# sourceMappingURL=model.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"model.spec.js","sourceRoot":"","sources":["model.spec.ts"],"names":[],"mappings":"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"}