@sharpee/channel-service 3.1.0 → 3.5.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/index.d.ts +8 -8
- package/index.d.ts.map +1 -1
- package/index.js +14 -14
- package/index.js.map +1 -1
- package/package.json +5 -5
- package/renderer/index.d.ts +3 -3
- package/renderer/index.d.ts.map +1 -1
- package/renderer/index.js +5 -5
- package/renderer/index.js.map +1 -1
- package/renderer/json-tree-fallback.d.ts +1 -1
- package/renderer/json-tree-fallback.d.ts.map +1 -1
- package/renderer/renderer.d.ts +17 -6
- package/renderer/renderer.d.ts.map +1 -1
- package/renderer/renderer.js +42 -10
- package/renderer/renderer.js.map +1 -1
- package/renderer/types.d.ts +10 -0
- package/renderer/types.d.ts.map +1 -1
- package/wire/index.d.ts +1 -1
- package/wire/index.d.ts.map +1 -1
- package/wire/index.js +2 -2
- package/wire/index.js.map +1 -1
package/index.d.ts
CHANGED
|
@@ -31,13 +31,13 @@
|
|
|
31
31
|
* @see ADR-163 — Channel-Service Platform
|
|
32
32
|
* @see ADR-165 — Renderer Architecture (consumer side)
|
|
33
33
|
*/
|
|
34
|
-
export { ChannelService, PROTOCOL_VERSION } from './channel-service';
|
|
35
|
-
export type { BuildInput } from './channel-service';
|
|
34
|
+
export { ChannelService, PROTOCOL_VERSION } from './channel-service.js';
|
|
35
|
+
export type { BuildInput } from './channel-service.js';
|
|
36
36
|
export type { IOChannel, IChannelRegistry, ChannelProduceContext, ChannelContentType, ChannelMode, ChannelEmitPolicy, ClientCapabilities, CapabilityFlag, ChannelDefinition, HelloPacket, CmgtPacket, TurnPacket, CommandPacket, WirePacket, } from '@sharpee/if-domain';
|
|
37
|
-
export { createDecoder, type Decoder, type DecoderState } from './wire';
|
|
38
|
-
export { flattenContent } from './utils/flatten';
|
|
39
|
-
export { renderToString, renderStatusLine } from './render-to-string';
|
|
40
|
-
export type { CLIRenderOptions } from './render-to-string';
|
|
41
|
-
export { Renderer, createRenderer, createJsonTreeFallbackFactory, type RendererOptions, type FallbackOutputSink, type FallbackWarningSink, } from './renderer';
|
|
42
|
-
export type { ChannelRenderer, IRenderer, ChannelStateStore, SlotHandle, } from './renderer';
|
|
37
|
+
export { createDecoder, type Decoder, type DecoderState } from './wire/index.js';
|
|
38
|
+
export { flattenContent } from './utils/flatten.js';
|
|
39
|
+
export { renderToString, renderStatusLine } from './render-to-string.js';
|
|
40
|
+
export type { CLIRenderOptions } from './render-to-string.js';
|
|
41
|
+
export { Renderer, createRenderer, createJsonTreeFallbackFactory, type RendererOptions, type FallbackOutputSink, type FallbackWarningSink, } from './renderer/index.js';
|
|
42
|
+
export type { ChannelRenderer, IRenderer, ChannelStateStore, SlotHandle, } from './renderer/index.js';
|
|
43
43
|
//# sourceMappingURL=index.d.ts.map
|
package/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee_v2/packages/channel-service/src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee_v2/packages/channel-service/src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD,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,iBAAiB,CAAC;AAEjF,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAQpD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzE,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG9D,OAAO,EACL,QAAQ,EACR,cAAc,EACd,6BAA6B,EAC7B,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,GACzB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,eAAe,EACf,SAAS,EACT,iBAAiB,EACjB,UAAU,GACX,MAAM,qBAAqB,CAAC"}
|
package/index.js
CHANGED
|
@@ -34,25 +34,25 @@
|
|
|
34
34
|
*/
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.createJsonTreeFallbackFactory = exports.createRenderer = exports.Renderer = exports.renderStatusLine = exports.renderToString = exports.flattenContent = exports.createDecoder = exports.PROTOCOL_VERSION = exports.ChannelService = void 0;
|
|
37
|
-
var
|
|
38
|
-
Object.defineProperty(exports, "ChannelService", { enumerable: true, get: function () { return
|
|
39
|
-
Object.defineProperty(exports, "PROTOCOL_VERSION", { enumerable: true, get: function () { return
|
|
40
|
-
var
|
|
41
|
-
Object.defineProperty(exports, "createDecoder", { enumerable: true, get: function () { return
|
|
42
|
-
var
|
|
43
|
-
Object.defineProperty(exports, "flattenContent", { enumerable: true, get: function () { return
|
|
37
|
+
var channel_service_js_1 = require("./channel-service.js");
|
|
38
|
+
Object.defineProperty(exports, "ChannelService", { enumerable: true, get: function () { return channel_service_js_1.ChannelService; } });
|
|
39
|
+
Object.defineProperty(exports, "PROTOCOL_VERSION", { enumerable: true, get: function () { return channel_service_js_1.PROTOCOL_VERSION; } });
|
|
40
|
+
var index_js_1 = require("./wire/index.js");
|
|
41
|
+
Object.defineProperty(exports, "createDecoder", { enumerable: true, get: function () { return index_js_1.createDecoder; } });
|
|
42
|
+
var flatten_js_1 = require("./utils/flatten.js");
|
|
43
|
+
Object.defineProperty(exports, "flattenContent", { enumerable: true, get: function () { return flatten_js_1.flattenContent; } });
|
|
44
44
|
// Display flatteners (ADR-174 Phase 2 — `renderToString` / `renderStatusLine`
|
|
45
45
|
// migrated here from `@sharpee/text-service` per OQ-1 resolution).
|
|
46
46
|
// Used by transcript tooling, dev scripts, and chat overlays that need a
|
|
47
47
|
// single string projection of an `ITextBlock[]`. `flattenContent` (above)
|
|
48
48
|
// is the lower-level helper used inside producer closures; `renderToString`
|
|
49
49
|
// adds smart block-joining, ANSI translation, and status-block filtering.
|
|
50
|
-
var
|
|
51
|
-
Object.defineProperty(exports, "renderToString", { enumerable: true, get: function () { return
|
|
52
|
-
Object.defineProperty(exports, "renderStatusLine", { enumerable: true, get: function () { return
|
|
50
|
+
var render_to_string_js_1 = require("./render-to-string.js");
|
|
51
|
+
Object.defineProperty(exports, "renderToString", { enumerable: true, get: function () { return render_to_string_js_1.renderToString; } });
|
|
52
|
+
Object.defineProperty(exports, "renderStatusLine", { enumerable: true, get: function () { return render_to_string_js_1.renderStatusLine; } });
|
|
53
53
|
// Consumer-side renderer (ADR-165) — see ./renderer.
|
|
54
|
-
var
|
|
55
|
-
Object.defineProperty(exports, "Renderer", { enumerable: true, get: function () { return
|
|
56
|
-
Object.defineProperty(exports, "createRenderer", { enumerable: true, get: function () { return
|
|
57
|
-
Object.defineProperty(exports, "createJsonTreeFallbackFactory", { enumerable: true, get: function () { return
|
|
54
|
+
var index_js_2 = require("./renderer/index.js");
|
|
55
|
+
Object.defineProperty(exports, "Renderer", { enumerable: true, get: function () { return index_js_2.Renderer; } });
|
|
56
|
+
Object.defineProperty(exports, "createRenderer", { enumerable: true, get: function () { return index_js_2.createRenderer; } });
|
|
57
|
+
Object.defineProperty(exports, "createJsonTreeFallbackFactory", { enumerable: true, get: function () { return index_js_2.createJsonTreeFallbackFactory; } });
|
|
58
58
|
//# sourceMappingURL=index.js.map
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../repos/sharpee_v2/packages/channel-service/src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;;;AAEH,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../repos/sharpee_v2/packages/channel-service/src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;;;AAEH,2DAAwE;AAA/D,oHAAA,cAAc,OAAA;AAAE,sHAAA,gBAAgB,OAAA;AAoBzC,4CAAiF;AAAxE,yGAAA,aAAa,OAAA;AAEtB,iDAAoD;AAA3C,4GAAA,cAAc,OAAA;AAEvB,8EAA8E;AAC9E,mEAAmE;AACnE,yEAAyE;AACzE,0EAA0E;AAC1E,4EAA4E;AAC5E,0EAA0E;AAC1E,6DAAyE;AAAhE,qHAAA,cAAc,OAAA;AAAE,uHAAA,gBAAgB,OAAA;AAGzC,qDAAqD;AACrD,gDAO6B;AAN3B,oGAAA,QAAQ,OAAA;AACR,0GAAA,cAAc,OAAA;AACd,yHAAA,6BAA6B,OAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sharpee/channel-service",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.5.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": "^3.
|
|
16
|
-
"@sharpee/if-domain": "^3.
|
|
17
|
-
"@sharpee/text-blocks": "^3.
|
|
18
|
-
"@sharpee/world-model": "^3.
|
|
15
|
+
"@sharpee/core": "^3.5.0",
|
|
16
|
+
"@sharpee/if-domain": "^3.5.0",
|
|
17
|
+
"@sharpee/text-blocks": "^3.5.0",
|
|
18
|
+
"@sharpee/world-model": "^3.5.0"
|
|
19
19
|
},
|
|
20
20
|
"keywords": [
|
|
21
21
|
"interactive-fiction",
|
package/renderer/index.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* needed by concrete renderer hosts (browser, CLI, multi-user web
|
|
7
7
|
* client) per ADR-165 §1, §2, §3, §5, §7.
|
|
8
8
|
*/
|
|
9
|
-
export type { ChannelRenderer, Renderer as IRenderer, ChannelStateStore, SlotHandle, } from './types';
|
|
10
|
-
export { Renderer, createRenderer, type RendererOptions } from './renderer';
|
|
11
|
-
export { createJsonTreeFallbackFactory, type FallbackOutputSink, type FallbackWarningSink, } from './json-tree-fallback';
|
|
9
|
+
export type { ChannelRenderer, Renderer as IRenderer, ChannelStateStore, SlotHandle, } from './types.js';
|
|
10
|
+
export { Renderer, createRenderer, type RendererOptions } from './renderer.js';
|
|
11
|
+
export { createJsonTreeFallbackFactory, type FallbackOutputSink, type FallbackWarningSink, } from './json-tree-fallback.js';
|
|
12
12
|
//# sourceMappingURL=index.d.ts.map
|
package/renderer/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../repos/sharpee_v2/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,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../repos/sharpee_v2/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,YAAY,CAAC;AAEpB,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAE/E,OAAO,EACL,6BAA6B,EAC7B,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,GACzB,MAAM,yBAAyB,CAAC"}
|
package/renderer/index.js
CHANGED
|
@@ -9,9 +9,9 @@
|
|
|
9
9
|
*/
|
|
10
10
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
11
|
exports.createJsonTreeFallbackFactory = exports.createRenderer = exports.Renderer = void 0;
|
|
12
|
-
var
|
|
13
|
-
Object.defineProperty(exports, "Renderer", { enumerable: true, get: function () { return
|
|
14
|
-
Object.defineProperty(exports, "createRenderer", { enumerable: true, get: function () { return
|
|
15
|
-
var
|
|
16
|
-
Object.defineProperty(exports, "createJsonTreeFallbackFactory", { enumerable: true, get: function () { return
|
|
12
|
+
var renderer_js_1 = require("./renderer.js");
|
|
13
|
+
Object.defineProperty(exports, "Renderer", { enumerable: true, get: function () { return renderer_js_1.Renderer; } });
|
|
14
|
+
Object.defineProperty(exports, "createRenderer", { enumerable: true, get: function () { return renderer_js_1.createRenderer; } });
|
|
15
|
+
var json_tree_fallback_js_1 = require("./json-tree-fallback.js");
|
|
16
|
+
Object.defineProperty(exports, "createJsonTreeFallbackFactory", { enumerable: true, get: function () { return json_tree_fallback_js_1.createJsonTreeFallbackFactory; } });
|
|
17
17
|
//# sourceMappingURL=index.js.map
|
package/renderer/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee_v2/packages/channel-service/src/renderer/index.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AASH,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee_v2/packages/channel-service/src/renderer/index.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AASH,6CAA+E;AAAtE,uGAAA,QAAQ,OAAA;AAAE,6GAAA,cAAc,OAAA;AAEjC,iEAIiC;AAH/B,sIAAA,6BAA6B,OAAA"}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
*
|
|
16
16
|
* @see ADR-165 — Renderer Architecture — §3, AC-3
|
|
17
17
|
*/
|
|
18
|
-
import type { ChannelRenderer } from './types';
|
|
18
|
+
import type { ChannelRenderer } from './types.js';
|
|
19
19
|
/**
|
|
20
20
|
* Sink for warnings emitted by the fallback. Defaults to
|
|
21
21
|
* `console.warn`. Tests inject a recording sink; concrete platform
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-tree-fallback.d.ts","sourceRoot":"","sources":["../../../../../../../repos/sharpee_v2/packages/channel-service/src/renderer/json-tree-fallback.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"json-tree-fallback.d.ts","sourceRoot":"","sources":["../../../../../../../repos/sharpee_v2/packages/channel-service/src/renderer/json-tree-fallback.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD;;;;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
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
* @see ADR-165 — Renderer Architecture
|
|
14
14
|
*/
|
|
15
15
|
import type { CmgtPacket, CommandPacket, TurnPacket } from '@sharpee/if-domain';
|
|
16
|
-
import type { ChannelRenderer, ChannelStateStore, Renderer as RendererInterface, SlotHandle } from './types';
|
|
17
|
-
import { type FallbackOutputSink, type FallbackWarningSink } from './json-tree-fallback';
|
|
16
|
+
import type { ChannelRenderer, ChannelStateStore, Renderer as RendererInterface, SlotHandle } from './types.js';
|
|
17
|
+
import { type FallbackOutputSink, type FallbackWarningSink } from './json-tree-fallback.js';
|
|
18
18
|
/**
|
|
19
19
|
* Optional construction options for the `Renderer`.
|
|
20
20
|
*/
|
|
@@ -54,6 +54,8 @@ export interface RendererOptions {
|
|
|
54
54
|
*/
|
|
55
55
|
export declare class Renderer implements RendererInterface {
|
|
56
56
|
private renderers;
|
|
57
|
+
private rendererFactories;
|
|
58
|
+
private factoryRenderers;
|
|
57
59
|
private fallbackRenderers;
|
|
58
60
|
private state;
|
|
59
61
|
private slots;
|
|
@@ -67,6 +69,13 @@ export declare class Renderer implements RendererInterface {
|
|
|
67
69
|
* re-registering replaces the prior renderer for that id.
|
|
68
70
|
*/
|
|
69
71
|
registerRenderer(channelId: string, renderer: ChannelRenderer): void;
|
|
72
|
+
/**
|
|
73
|
+
* Register a renderer factory for a channel-id prefix (ADR-241 D4).
|
|
74
|
+
* Longest matching prefix wins; `''` is the match-all default.
|
|
75
|
+
* Instances are built lazily per channel id and cached until the
|
|
76
|
+
* next manifest (their `onDestroy` runs with everyone else's).
|
|
77
|
+
*/
|
|
78
|
+
registerRendererFactory(prefix: string, factory: (channelId: string) => ChannelRenderer): void;
|
|
70
79
|
/**
|
|
71
80
|
* Register a slot (ADR-165 §7). Stories that replace the
|
|
72
81
|
* platform-default layout call this for each region.
|
|
@@ -125,10 +134,12 @@ export declare class Renderer implements RendererInterface {
|
|
|
125
134
|
*/
|
|
126
135
|
private handleClear;
|
|
127
136
|
/**
|
|
128
|
-
* Resolve the renderer for a channel id
|
|
129
|
-
*
|
|
130
|
-
*
|
|
131
|
-
*
|
|
137
|
+
* Resolve the renderer for a channel id: exact registration first
|
|
138
|
+
* (last-write-wins, so story overrides beat every default), then
|
|
139
|
+
* the longest matching registered factory prefix (ADR-241 D4 —
|
|
140
|
+
* instances lazily built and cached per id), then the JSON-tree
|
|
141
|
+
* fallback (cached so the one-time warning fires once per channel
|
|
142
|
+
* id, not once per emission).
|
|
132
143
|
*/
|
|
133
144
|
private resolveRenderer;
|
|
134
145
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../../../../../../repos/sharpee_v2/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,
|
|
1
|
+
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../../../../../../repos/sharpee_v2/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,YAAY,CAAC;AACpB,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACzB,MAAM,yBAAyB,CAAC;AAEjC;;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,CAA6D;IACtF,OAAO,CAAC,gBAAgB,CAAsC;IAC9D,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;;;;;OAKG;IACH,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,eAAe,GAAG,IAAI;IAI9F;;;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;IAyBnC;;;;;;;;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;;;;;;;OAOG;IACH,OAAO,CAAC,eAAe;CAwBxB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,GAAE,eAAoB,GAAG,QAAQ,CAEnE"}
|
package/renderer/renderer.js
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
exports.Renderer = void 0;
|
|
18
18
|
exports.createRenderer = createRenderer;
|
|
19
|
-
const
|
|
19
|
+
const json_tree_fallback_js_1 = require("./json-tree-fallback.js");
|
|
20
20
|
/**
|
|
21
21
|
* Concrete `Renderer` host (ADR-165 §2).
|
|
22
22
|
*
|
|
@@ -34,6 +34,8 @@ const json_tree_fallback_1 = require("./json-tree-fallback");
|
|
|
34
34
|
*/
|
|
35
35
|
class Renderer {
|
|
36
36
|
renderers = new Map();
|
|
37
|
+
rendererFactories = new Map();
|
|
38
|
+
factoryRenderers = new Map();
|
|
37
39
|
fallbackRenderers = new Map();
|
|
38
40
|
state = {};
|
|
39
41
|
slots = new Map();
|
|
@@ -46,7 +48,7 @@ class Renderer {
|
|
|
46
48
|
// eslint-disable-next-line no-console
|
|
47
49
|
console.warn(m);
|
|
48
50
|
});
|
|
49
|
-
this.buildFallback = (0,
|
|
51
|
+
this.buildFallback = (0, json_tree_fallback_js_1.createJsonTreeFallbackFactory)({
|
|
50
52
|
warn: opts.fallbackWarn ?? this.warn,
|
|
51
53
|
output: opts.fallbackOutput,
|
|
52
54
|
});
|
|
@@ -61,6 +63,15 @@ class Renderer {
|
|
|
61
63
|
registerRenderer(channelId, renderer) {
|
|
62
64
|
this.renderers.set(channelId, renderer);
|
|
63
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* Register a renderer factory for a channel-id prefix (ADR-241 D4).
|
|
68
|
+
* Longest matching prefix wins; `''` is the match-all default.
|
|
69
|
+
* Instances are built lazily per channel id and cached until the
|
|
70
|
+
* next manifest (their `onDestroy` runs with everyone else's).
|
|
71
|
+
*/
|
|
72
|
+
registerRendererFactory(prefix, factory) {
|
|
73
|
+
this.rendererFactories.set(prefix, factory);
|
|
74
|
+
}
|
|
64
75
|
/**
|
|
65
76
|
* Register a slot (ADR-165 §7). Stories that replace the
|
|
66
77
|
* platform-default layout call this for each region.
|
|
@@ -109,14 +120,18 @@ class Renderer {
|
|
|
109
120
|
applyCmgt(packet) {
|
|
110
121
|
if (this.currentManifest) {
|
|
111
122
|
for (const channel of this.currentManifest.channels) {
|
|
112
|
-
const r = this.renderers.get(channel.id) ??
|
|
123
|
+
const r = this.renderers.get(channel.id) ??
|
|
124
|
+
this.factoryRenderers.get(channel.id) ??
|
|
125
|
+
this.fallbackRenderers.get(channel.id);
|
|
113
126
|
r?.onDestroy?.();
|
|
114
127
|
}
|
|
115
128
|
}
|
|
116
129
|
this.state = {};
|
|
117
130
|
this.currentManifest = packet;
|
|
118
|
-
// Reset fallback
|
|
119
|
-
//
|
|
131
|
+
// Reset the factory + fallback caches so a re-mounted session
|
|
132
|
+
// rebuilds instances (and re-issues the one-time fallback warning
|
|
133
|
+
// if a channel still lacks a renderer).
|
|
134
|
+
this.factoryRenderers.clear();
|
|
120
135
|
this.fallbackRenderers.clear();
|
|
121
136
|
for (const channel of packet.channels) {
|
|
122
137
|
const r = this.resolveRenderer(channel.id);
|
|
@@ -213,20 +228,37 @@ class Renderer {
|
|
|
213
228
|
// Reset state store entry first (ADR-165 §4 says state is
|
|
214
229
|
// reset BEFORE onClear runs).
|
|
215
230
|
delete this.state[channel.id];
|
|
216
|
-
const renderer = this.renderers.get(channel.id);
|
|
231
|
+
const renderer = this.renderers.get(channel.id) ?? this.factoryRenderers.get(channel.id);
|
|
217
232
|
renderer?.onClear?.(target ?? channel.id);
|
|
218
233
|
}
|
|
219
234
|
}
|
|
220
235
|
/**
|
|
221
|
-
* Resolve the renderer for a channel id
|
|
222
|
-
*
|
|
223
|
-
*
|
|
224
|
-
*
|
|
236
|
+
* Resolve the renderer for a channel id: exact registration first
|
|
237
|
+
* (last-write-wins, so story overrides beat every default), then
|
|
238
|
+
* the longest matching registered factory prefix (ADR-241 D4 —
|
|
239
|
+
* instances lazily built and cached per id), then the JSON-tree
|
|
240
|
+
* fallback (cached so the one-time warning fires once per channel
|
|
241
|
+
* id, not once per emission).
|
|
225
242
|
*/
|
|
226
243
|
resolveRenderer(channelId) {
|
|
227
244
|
const registered = this.renderers.get(channelId);
|
|
228
245
|
if (registered)
|
|
229
246
|
return registered;
|
|
247
|
+
const cached = this.factoryRenderers.get(channelId);
|
|
248
|
+
if (cached)
|
|
249
|
+
return cached;
|
|
250
|
+
let bestPrefix = null;
|
|
251
|
+
for (const prefix of this.rendererFactories.keys()) {
|
|
252
|
+
if (!channelId.startsWith(prefix))
|
|
253
|
+
continue;
|
|
254
|
+
if (bestPrefix === null || prefix.length > bestPrefix.length)
|
|
255
|
+
bestPrefix = prefix;
|
|
256
|
+
}
|
|
257
|
+
if (bestPrefix !== null) {
|
|
258
|
+
const built = this.rendererFactories.get(bestPrefix)(channelId);
|
|
259
|
+
this.factoryRenderers.set(channelId, built);
|
|
260
|
+
return built;
|
|
261
|
+
}
|
|
230
262
|
let fallback = this.fallbackRenderers.get(channelId);
|
|
231
263
|
if (!fallback) {
|
|
232
264
|
fallback = this.buildFallback(channelId);
|
package/renderer/renderer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee_v2/packages/channel-service/src/renderer/renderer.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;;
|
|
1
|
+
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee_v2/packages/channel-service/src/renderer/renderer.ts"],"names":[],"mappings":"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"}
|
package/renderer/types.d.ts
CHANGED
|
@@ -147,6 +147,16 @@ export interface Renderer {
|
|
|
147
147
|
* story overrides replace them.
|
|
148
148
|
*/
|
|
149
149
|
registerRenderer(channelId: string, renderer: ChannelRenderer): void;
|
|
150
|
+
/**
|
|
151
|
+
* Register a renderer FACTORY for a channel-id prefix (ADR-241 D4).
|
|
152
|
+
* When a manifest channel has no exact-id renderer, the longest
|
|
153
|
+
* matching registered prefix builds one lazily (cached per id, per
|
|
154
|
+
* manifest). The empty prefix `''` matches every channel — the
|
|
155
|
+
* consumer's generic default. Exact-id registrations always win;
|
|
156
|
+
* the JSON-tree fallback remains the last resort when no factory
|
|
157
|
+
* matches.
|
|
158
|
+
*/
|
|
159
|
+
registerRendererFactory(prefix: string, factory: (channelId: string) => ChannelRenderer): void;
|
|
150
160
|
/**
|
|
151
161
|
* Subscribe to `CommandPacket`s emitted by channel renderers.
|
|
152
162
|
* The consumer's host loop pumps these back to the engine.
|
package/renderer/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../repos/sharpee_v2/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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../repos/sharpee_v2/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;;;;;;;;OAQG;IACH,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,eAAe,GAAG,IAAI,CAAC;IAE/F;;;;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/wire/index.d.ts
CHANGED
|
@@ -15,5 +15,5 @@
|
|
|
15
15
|
* bootstrap-order enforcement state.
|
|
16
16
|
*/
|
|
17
17
|
export type { HelloPacket, CmgtPacket, TurnPacket, CommandPacket, WirePacket, ChannelDefinition, ChannelContentType, ChannelMode, ChannelEmitPolicy, ClientCapabilities, } from '@sharpee/if-domain';
|
|
18
|
-
export { createDecoder, type Decoder, type DecoderState } from './decoder';
|
|
18
|
+
export { createDecoder, type Decoder, type DecoderState } from './decoder.js';
|
|
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":["../../../../../../../repos/sharpee_v2/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,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../repos/sharpee_v2/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,cAAc,CAAC"}
|
package/wire/index.js
CHANGED
|
@@ -17,6 +17,6 @@
|
|
|
17
17
|
*/
|
|
18
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
19
|
exports.createDecoder = void 0;
|
|
20
|
-
var
|
|
21
|
-
Object.defineProperty(exports, "createDecoder", { enumerable: true, get: function () { return
|
|
20
|
+
var decoder_js_1 = require("./decoder.js");
|
|
21
|
+
Object.defineProperty(exports, "createDecoder", { enumerable: true, get: function () { return decoder_js_1.createDecoder; } });
|
|
22
22
|
//# sourceMappingURL=index.js.map
|
package/wire/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee_v2/packages/channel-service/src/wire/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;AAkBH,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee_v2/packages/channel-service/src/wire/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;AAkBH,2CAA8E;AAArE,2GAAA,aAAa,OAAA"}
|