@sharpee/channel-service 1.0.0 → 1.1.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/README.md +69 -0
- package/channel-service.d.ts +3 -3
- package/channel-service.d.ts.map +1 -1
- package/index.d.ts +1 -1
- package/index.d.ts.map +1 -1
- package/package.json +5 -5
- package/render-to-string.d.ts +1 -1
- package/render-to-string.d.ts.map +1 -1
- package/render-to-string.js +7 -1
- package/render-to-string.js.map +1 -1
- package/renderer/index.d.ts.map +1 -1
- package/renderer/json-tree-fallback.d.ts.map +1 -1
- package/renderer/renderer.d.ts +1 -1
- package/renderer/renderer.d.ts.map +1 -1
- package/renderer/types.d.ts +1 -1
- package/renderer/types.d.ts.map +1 -1
- package/utils/flatten.d.ts +1 -1
- package/utils/flatten.d.ts.map +1 -1
- package/wire/decoder.d.ts +1 -1
- package/wire/decoder.d.ts.map +1 -1
- package/wire/index.d.ts +1 -1
- package/wire/index.d.ts.map +1 -1
package/README.md
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# @sharpee/channel-service
|
|
2
|
+
|
|
3
|
+
Universal channel-I/O wire producer for Sharpee surfaces (ADR-163).
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @sharpee/channel-service
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Overview
|
|
12
|
+
|
|
13
|
+
- **Channels are the universal UI surface** (ADR-163) - channels carry all story-to-UI signals (text, status, media, layout) over a single packet stream; transport sits under channels.
|
|
14
|
+
- **`ChannelService`** - the in-process producer. It walks an `IChannelRegistry`, invokes each channel's `produce`, and emits wire packets. It runs wherever the engine runs (Node CLI, multi-user server, browser).
|
|
15
|
+
- **Capability-filtered manifest** - `buildManifest()` returns a `CmgtPacket` tailored to the client's `ClientCapabilities`; `build(...)` returns a per-turn `TurnPacket`.
|
|
16
|
+
- **Wire decoder** - `createDecoder` / `Decoder` enforce bootstrap ordering on the consuming side.
|
|
17
|
+
- **Consumer-side renderer** (ADR-165) - `Renderer` / `createRenderer` route decoded packets to per-channel renderers.
|
|
18
|
+
- **Domain-agnostic** - standard channel definitions (`main`, `prompt`, `score`, etc.) live in `@sharpee/stdlib`; channel and wire types are re-exported from `@sharpee/if-domain`, their canonical home.
|
|
19
|
+
|
|
20
|
+
## Usage
|
|
21
|
+
|
|
22
|
+
```typescript
|
|
23
|
+
import {
|
|
24
|
+
ChannelService,
|
|
25
|
+
createDecoder,
|
|
26
|
+
createRenderer,
|
|
27
|
+
renderToString,
|
|
28
|
+
flattenContent,
|
|
29
|
+
type IChannelRegistry,
|
|
30
|
+
type ClientCapabilities,
|
|
31
|
+
type TurnPacket,
|
|
32
|
+
} from '@sharpee/channel-service';
|
|
33
|
+
|
|
34
|
+
// Producer side (runs with the engine)
|
|
35
|
+
const service = new ChannelService(registry, capabilities);
|
|
36
|
+
const manifest = service.buildManifest(); // CmgtPacket
|
|
37
|
+
const packet: TurnPacket = service.build({ world, events, blocks, turn });
|
|
38
|
+
|
|
39
|
+
// Consumer side — decode, then render to channel surfaces
|
|
40
|
+
const decoder = createDecoder();
|
|
41
|
+
const decoded = decoder.decode(packet);
|
|
42
|
+
const renderer = createRenderer({ /* channel renderers */ });
|
|
43
|
+
renderer.apply(decoded);
|
|
44
|
+
|
|
45
|
+
// CLI / tooling — project an ITextBlock[] to a single string
|
|
46
|
+
const text = renderToString(blocks);
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Key Exports
|
|
50
|
+
|
|
51
|
+
| Export | Side | Description |
|
|
52
|
+
|--------|------|-------------|
|
|
53
|
+
| `ChannelService`, `PROTOCOL_VERSION` | producer | Builds the manifest and per-turn packets |
|
|
54
|
+
| `createDecoder`, `Decoder`, `DecoderState` | consumer | Decodes the wire stream with bootstrap-order enforcement |
|
|
55
|
+
| `Renderer`, `createRenderer`, `createJsonTreeFallbackFactory` | consumer | Routes packets to per-channel renderers (ADR-165) |
|
|
56
|
+
| `renderToString`, `renderStatusLine` | tooling | Single-string projection of an `ITextBlock[]` |
|
|
57
|
+
| `flattenContent` | shared | Projects `TextContent` arrays to plain strings |
|
|
58
|
+
| `IOChannel`, `IChannelRegistry`, `ClientCapabilities`, `TurnPacket`, `CmgtPacket`, `HelloPacket`, `CommandPacket`, `WirePacket` | types | Channel and wire contracts (re-exported from `@sharpee/if-domain`) |
|
|
59
|
+
|
|
60
|
+
## Related Packages
|
|
61
|
+
|
|
62
|
+
- [@sharpee/if-domain](https://www.npmjs.com/package/@sharpee/if-domain) - Canonical channel and wire types
|
|
63
|
+
- [@sharpee/stdlib](https://www.npmjs.com/package/@sharpee/stdlib) - Standard channel definitions
|
|
64
|
+
- [@sharpee/text-blocks](https://www.npmjs.com/package/@sharpee/text-blocks) - `ITextBlock` / `IDecoration` interfaces
|
|
65
|
+
- [@sharpee/sharpee](https://www.npmjs.com/package/@sharpee/sharpee) - Full platform bundle
|
|
66
|
+
|
|
67
|
+
## License
|
|
68
|
+
|
|
69
|
+
MIT
|
package/channel-service.d.ts
CHANGED
|
@@ -29,9 +29,9 @@
|
|
|
29
29
|
* @see ADR-163 — Channel-Service Platform — §6, §11, §13, §14
|
|
30
30
|
* @see ADR-165 — Renderer Architecture (consumer side)
|
|
31
31
|
*/
|
|
32
|
-
import type { IChannelRegistry, ClientCapabilities, CmgtPacket, TurnPacket } from
|
|
33
|
-
import type { ITextBlock } from
|
|
34
|
-
import type { ISemanticEvent } from
|
|
32
|
+
import type { IChannelRegistry, ClientCapabilities, CmgtPacket, TurnPacket } from '@sharpee/if-domain';
|
|
33
|
+
import type { ITextBlock } from '@sharpee/text-blocks';
|
|
34
|
+
import type { ISemanticEvent } from '@sharpee/core';
|
|
35
35
|
/**
|
|
36
36
|
* Wire-protocol version emitted in every CMGT manifest. Bumped on
|
|
37
37
|
* breaking shape changes to packet kinds or `ChannelDefinition` fields.
|
package/channel-service.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel-service.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"channel-service.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/channel-service/src/channel-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAEhB,kBAAkB,EAGlB,UAAU,EACV,UAAU,EACX,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAElC;;;;;;;GAOG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,CAAC;IAC3C,QAAQ,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;IACvC,uEAAuE;IACvE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,qBAAa,cAAc;IAYvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAZ/B;;;;;;;OAOG;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8B;gBAGtC,QAAQ,EAAE,gBAAgB,EAC1B,YAAY,EAAE,kBAAkB;IAGnD;;;;;;;;OAQG;IACH,aAAa,IAAI,UAAU;IAa3B;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU;IA0BpC;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAKlB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACH,OAAO,CAAC,aAAa;CAmDtB"}
|
package/index.d.ts
CHANGED
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
*/
|
|
34
34
|
export { ChannelService, PROTOCOL_VERSION } from './channel-service';
|
|
35
35
|
export type { BuildInput } from './channel-service';
|
|
36
|
-
export type { IOChannel, IChannelRegistry, ChannelProduceContext, ChannelContentType, ChannelMode, ChannelEmitPolicy, ClientCapabilities, CapabilityFlag, ChannelDefinition, HelloPacket, CmgtPacket, TurnPacket, CommandPacket, WirePacket, } from
|
|
36
|
+
export type { IOChannel, IChannelRegistry, ChannelProduceContext, ChannelContentType, ChannelMode, ChannelEmitPolicy, ClientCapabilities, CapabilityFlag, ChannelDefinition, HelloPacket, CmgtPacket, TurnPacket, CommandPacket, WirePacket, } from '@sharpee/if-domain';
|
|
37
37
|
export { createDecoder, type Decoder, type DecoderState } from './wire';
|
|
38
38
|
export { flattenContent } from './utils/flatten';
|
|
39
39
|
export { renderToString, renderStatusLine } from './render-to-string';
|
package/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/channel-service/src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrE,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,YAAY,EACV,SAAS,EACT,gBAAgB,EAChB,qBAAqB,EACrB,kBAAkB,EAClB,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,UAAU,EACV,aAAa,EACb,UAAU,GACX,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,aAAa,EAAE,KAAK,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,QAAQ,CAAC;AAExE,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAQjD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtE,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAG3D,OAAO,EACL,QAAQ,EACR,cAAc,EACd,6BAA6B,EAC7B,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,GACzB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,eAAe,EACf,SAAS,EACT,iBAAiB,EACjB,UAAU,GACX,MAAM,YAAY,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sharpee/channel-service",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "Channel-service platform — universal channel-I/O wire producer (ADR-163)",
|
|
5
5
|
"main": "./index.js",
|
|
6
6
|
"types": "./index.d.ts",
|
|
@@ -12,10 +12,10 @@
|
|
|
12
12
|
}
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@sharpee/core": "^1.
|
|
16
|
-
"@sharpee/if-domain": "^1.
|
|
17
|
-
"@sharpee/text-blocks": "^1.
|
|
18
|
-
"@sharpee/world-model": "^1.
|
|
15
|
+
"@sharpee/core": "^1.1.0",
|
|
16
|
+
"@sharpee/if-domain": "^1.1.0",
|
|
17
|
+
"@sharpee/text-blocks": "^1.1.0",
|
|
18
|
+
"@sharpee/world-model": "^1.1.0"
|
|
19
19
|
},
|
|
20
20
|
"keywords": [
|
|
21
21
|
"interactive-fiction",
|
package/render-to-string.d.ts
CHANGED
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
* @see ADR-174 — Decoration Architecture and Engine-Internal Prose Pipeline
|
|
30
30
|
* @see ADR-163 — Channel-Service Platform
|
|
31
31
|
*/
|
|
32
|
-
import type { ITextBlock } from
|
|
32
|
+
import type { ITextBlock } from '@sharpee/text-blocks';
|
|
33
33
|
/**
|
|
34
34
|
* CLI render options
|
|
35
35
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-to-string.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"render-to-string.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/channel-service/src/render-to-string.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,KAAK,EAAE,UAAU,EAA4B,MAAM,sBAAsB,CAAC;AAGjF;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,+CAA+C;IAC/C,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,iDAAiD;IACjD,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEhC,uDAAuD;IACvD,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AA0JD;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,UAAU,EAAE,EACpB,OAAO,GAAE,gBAAqB,GAC7B,MAAM,CA+BR;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,UAAU,EAAE,EACpB,OAAO,GAAE,gBAAqB,GAC7B,MAAM,CA6BR"}
|
package/render-to-string.js
CHANGED
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
34
|
exports.renderToString = renderToString;
|
|
35
35
|
exports.renderStatusLine = renderStatusLine;
|
|
36
|
-
const text_blocks_1 = require("
|
|
36
|
+
const text_blocks_1 = require("@sharpee/text-blocks");
|
|
37
37
|
/**
|
|
38
38
|
* ANSI escape codes
|
|
39
39
|
*/
|
|
@@ -129,6 +129,12 @@ function renderContent(content, options) {
|
|
|
129
129
|
* Render a decoration to string
|
|
130
130
|
*/
|
|
131
131
|
function renderDecoration(decoration, options) {
|
|
132
|
+
// ADR-183 void breaks map to terminal line breaks. Non-web clients have no CSS,
|
|
133
|
+
// so the renderer maps the class to behavior directly (independent of ansi).
|
|
134
|
+
if (decoration.className === 'sharpee-br')
|
|
135
|
+
return '\n';
|
|
136
|
+
if (decoration.className === 'sharpee-p')
|
|
137
|
+
return '\n\n';
|
|
132
138
|
const innerText = renderContent(decoration.content, options);
|
|
133
139
|
if (!options.ansi) {
|
|
134
140
|
// Plain text fallback
|
package/render-to-string.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-to-string.js","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/channel-service/src/render-to-string.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;;
|
|
1
|
+
{"version":3,"file":"render-to-string.js","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/channel-service/src/render-to-string.ts"],"names":[],"mappings":"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"}
|
package/renderer/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/channel-service/src/renderer/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,YAAY,EACV,eAAe,EACf,QAAQ,IAAI,SAAS,EACrB,iBAAiB,EACjB,UAAU,GACX,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAE5E,OAAO,EACL,6BAA6B,EAC7B,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,GACzB,MAAM,sBAAsB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-tree-fallback.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"json-tree-fallback.d.ts","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/channel-service/src/renderer/json-tree-fallback.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;AAE5D;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;AAE3E;;;;;;;;;;GAUG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,CAAC,EAAE;IACnD,IAAI,CAAC,EAAE,mBAAmB,CAAC;IAC3B,MAAM,CAAC,EAAE,kBAAkB,CAAC;CAC7B,GAAG,CAAC,SAAS,EAAE,MAAM,KAAK,eAAe,CAkBzC"}
|
package/renderer/renderer.d.ts
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
*
|
|
13
13
|
* @see ADR-165 — Renderer Architecture
|
|
14
14
|
*/
|
|
15
|
-
import type { CmgtPacket, CommandPacket, TurnPacket } from
|
|
15
|
+
import type { CmgtPacket, CommandPacket, TurnPacket } from '@sharpee/if-domain';
|
|
16
16
|
import type { ChannelRenderer, ChannelStateStore, Renderer as RendererInterface, SlotHandle } from './types';
|
|
17
17
|
import { type FallbackOutputSink, type FallbackWarningSink } from './json-tree-fallback';
|
|
18
18
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/channel-service/src/renderer/renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAEV,UAAU,EACV,aAAa,EACb,UAAU,EACX,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EACjB,QAAQ,IAAI,iBAAiB,EAC7B,UAAU,EACX,MAAM,SAAS,CAAC;AACjB,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACzB,MAAM,sBAAsB,CAAC;AAE9B;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC;;;OAGG;IACH,cAAc,CAAC,EAAE,kBAAkB,CAAC;IACpC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,mBAAmB,CAAC;CACpC;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,QAAS,YAAW,iBAAiB;IAChD,OAAO,CAAC,SAAS,CAAsC;IACvD,OAAO,CAAC,iBAAiB,CAAsC;IAC/D,OAAO,CAAC,KAAK,CAAyB;IACtC,OAAO,CAAC,KAAK,CAAiC;IAC9C,OAAO,CAAC,eAAe,CAA2C;IAClE,OAAO,CAAC,eAAe,CAAC,CAAa;IACrC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA4B;IACjD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAyC;gBAE3D,IAAI,GAAE,eAAoB;IAetC;;;OAGG;IACH,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI;IAIpE;;;OAGG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI;IAIpD;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAQxC;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,GAAG,IAAI;IAItD;;;OAGG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAW/B;;;;;;;;;OASG;IACH,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAoBnC;;;;;;;;OAQG;IACH,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IA8BzC;;;OAGG;IACH,gBAAgB,IAAI,iBAAiB;IAQrC;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAuBzB;;;;;;OAMG;IACH,OAAO,CAAC,WAAW;IAoBnB;;;;;OAKG;IACH,OAAO,CAAC,eAAe;CAUxB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,GAAE,eAAoB,GAAG,QAAQ,CAEnE"}
|
package/renderer/types.d.ts
CHANGED
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
*
|
|
23
23
|
* @see ADR-165 — Renderer Architecture
|
|
24
24
|
*/
|
|
25
|
-
import type { ChannelDefinition, CmgtPacket, CommandPacket, TurnPacket } from
|
|
25
|
+
import type { ChannelDefinition, CmgtPacket, CommandPacket, TurnPacket } from '@sharpee/if-domain';
|
|
26
26
|
/**
|
|
27
27
|
* Per-channel rendering logic (ADR-165 §1).
|
|
28
28
|
*
|
package/renderer/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/channel-service/src/renderer/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,UAAU,EACV,aAAa,EACb,UAAU,EACX,MAAM,oBAAoB,CAAC;AAE5B;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAE1D;;;;;;OAMG;IACH,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAE/B;;;;;;;;;OASG;IACH,MAAM,CAAC,CAAC,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,UAAU,GAAG,IAAI,CAAC;IAEhE;;;;;;OAMG;IACH,SAAS,CAAC,IAAI,IAAI,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,iBAAiB;IAChC,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,EAAE,GAAG,SAAS,CAAC;CACtD;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC;AAEjC;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,QAAQ;IACvB;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAEpC;;;;;;;;;OASG;IACH,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAE1C;;;;;OAKG;IACH,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAC;IAErE;;;;OAIG;IACH,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,GAAG,IAAI,CAAC;IAEvD;;;;OAIG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAEhC;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAErD;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC;IAEzC;;;;OAIG;IACH,gBAAgB,IAAI,iBAAiB,CAAC;CACvC"}
|
package/utils/flatten.d.ts
CHANGED
package/utils/flatten.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flatten.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"flatten.d.ts","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/channel-service/src/utils/flatten.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,MAAM,CAU1E"}
|
package/wire/decoder.d.ts
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
*
|
|
17
17
|
* @see ADR-163 §11 — bootstrap order invariants
|
|
18
18
|
*/
|
|
19
|
-
import type { CmgtPacket, TurnPacket, WirePacket } from
|
|
19
|
+
import type { CmgtPacket, TurnPacket, WirePacket } from '@sharpee/if-domain';
|
|
20
20
|
/**
|
|
21
21
|
* State exposed by the decoder after each `ingest` call.
|
|
22
22
|
*
|
package/wire/decoder.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decoder.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"decoder.d.ts","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/channel-service/src/wire/decoder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE7E;;;;;;;;;GASG;AACH,MAAM,MAAM,YAAY,GACpB;IAAE,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;CAAE,GACpC;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GACtD;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1D;;;;GAIG;AACH,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,UAAU,GAAG,IAAI,CAAC;IACrC;;;OAGG;IACH,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC;CACrC;AAoDD;;GAEG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAEvC"}
|
package/wire/index.d.ts
CHANGED
|
@@ -14,6 +14,6 @@
|
|
|
14
14
|
* implementation stays in this package because it carries
|
|
15
15
|
* bootstrap-order enforcement state.
|
|
16
16
|
*/
|
|
17
|
-
export type { HelloPacket, CmgtPacket, TurnPacket, CommandPacket, WirePacket, ChannelDefinition, ChannelContentType, ChannelMode, ChannelEmitPolicy, ClientCapabilities, } from
|
|
17
|
+
export type { HelloPacket, CmgtPacket, TurnPacket, CommandPacket, WirePacket, ChannelDefinition, ChannelContentType, ChannelMode, ChannelEmitPolicy, ClientCapabilities, } from '@sharpee/if-domain';
|
|
18
18
|
export { createDecoder, type Decoder, type DecoderState } from './decoder';
|
|
19
19
|
//# sourceMappingURL=index.d.ts.map
|
package/wire/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/channel-service/src/wire/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,YAAY,EAEV,WAAW,EACX,UAAU,EACV,UAAU,EACV,aAAa,EACb,UAAU,EAEV,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,EACX,iBAAiB,EAEjB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,aAAa,EAAE,KAAK,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC"}
|