@xemahq/ui-kernel 0.2.0 → 0.4.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/dist/lib/biome-host/composition-validation.d.ts +22 -0
- package/dist/lib/biome-host/composition-validation.d.ts.map +1 -0
- package/dist/lib/biome-host/composition-validation.js +127 -0
- package/dist/lib/biome-host/composition-validation.js.map +1 -0
- package/dist/lib/biome-host/define-web-biome.d.ts +30 -0
- package/dist/lib/biome-host/define-web-biome.d.ts.map +1 -0
- package/dist/lib/biome-host/define-web-biome.js +42 -0
- package/dist/lib/biome-host/define-web-biome.js.map +1 -0
- package/dist/lib/biome-host/errors.d.ts +2 -0
- package/dist/lib/biome-host/errors.d.ts.map +1 -0
- package/dist/lib/biome-host/errors.js +146 -0
- package/dist/lib/biome-host/errors.js.map +1 -0
- package/dist/lib/biome-host/frontend-biome.d.ts +1 -0
- package/dist/lib/biome-host/frontend-biome.d.ts.map +1 -1
- package/dist/lib/biome-host/host-bridge.d.ts +6 -0
- package/dist/lib/biome-host/host-bridge.d.ts.map +1 -1
- package/dist/lib/biome-host/host-bridge.js.map +1 -1
- package/dist/lib/biome-host/index.d.ts +5 -0
- package/dist/lib/biome-host/index.d.ts.map +1 -1
- package/dist/lib/biome-host/index.js +5 -0
- package/dist/lib/biome-host/index.js.map +1 -1
- package/dist/lib/biome-host/realtime-hooks.d.ts +5 -0
- package/dist/lib/biome-host/realtime-hooks.d.ts.map +1 -0
- package/dist/lib/biome-host/realtime-hooks.js +28 -0
- package/dist/lib/biome-host/realtime-hooks.js.map +1 -0
- package/dist/lib/biome-host/realtime-port.d.ts +30 -0
- package/dist/lib/biome-host/realtime-port.d.ts.map +1 -0
- package/dist/lib/biome-host/realtime-port.js +3 -0
- package/dist/lib/biome-host/realtime-port.js.map +1 -0
- package/dist/lib/biome-host/response-envelope.d.ts +3 -0
- package/dist/lib/biome-host/response-envelope.d.ts.map +1 -0
- package/dist/lib/biome-host/response-envelope.js +25 -0
- package/dist/lib/biome-host/response-envelope.js.map +1 -0
- package/dist/registry/lib/composition-validation-host.d.ts +3 -0
- package/dist/registry/lib/composition-validation-host.d.ts.map +1 -0
- package/dist/registry/lib/composition-validation-host.js +10 -0
- package/dist/registry/lib/composition-validation-host.js.map +1 -0
- package/dist/session/shell/SessionWorkspaceShell.d.ts.map +1 -1
- package/dist/session/shell/SessionWorkspaceShell.js +9 -6
- package/dist/session/shell/SessionWorkspaceShell.js.map +1 -1
- package/dist/ui/chrome/ErrorCard.d.ts.map +1 -1
- package/dist/ui/chrome/ErrorCard.js +2 -9
- package/dist/ui/chrome/ErrorCard.js.map +1 -1
- package/package.json +1 -1
- package/src/lib/biome-host/define-web-biome.ts +161 -0
- package/src/lib/biome-host/errors.ts +220 -0
- package/src/lib/biome-host/frontend-biome.ts +20 -2
- package/src/lib/biome-host/host-bridge.ts +44 -0
- package/src/lib/biome-host/index.ts +5 -0
- package/src/lib/biome-host/realtime-hooks.ts +74 -0
- package/src/lib/biome-host/realtime-port.ts +109 -0
- package/src/lib/biome-host/response-envelope.ts +69 -0
- package/src/session/shell/SessionWorkspaceShell.tsx +19 -13
- package/src/ui/chrome/ErrorCard.tsx +8 -13
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { FrontendBiome } from './frontend-biome';
|
|
2
|
+
export declare enum CompositionDiagnosticSeverity {
|
|
3
|
+
Error = "error",
|
|
4
|
+
Warning = "warning"
|
|
5
|
+
}
|
|
6
|
+
export declare enum CompositionDiagnosticCode {
|
|
7
|
+
DuplicateRoutePath = "duplicate_route_path",
|
|
8
|
+
DuplicateNavId = "duplicate_nav_id",
|
|
9
|
+
UnknownSlot = "unknown_slot",
|
|
10
|
+
OrphanedPanelSlot = "orphaned_panel_slot"
|
|
11
|
+
}
|
|
12
|
+
export interface CompositionDiagnostic {
|
|
13
|
+
readonly code: CompositionDiagnosticCode;
|
|
14
|
+
readonly severity: CompositionDiagnosticSeverity;
|
|
15
|
+
readonly biomeIds: readonly string[];
|
|
16
|
+
readonly message: string;
|
|
17
|
+
}
|
|
18
|
+
export interface ValidateBiomeCompositionOptions {
|
|
19
|
+
readonly knownSlots: ReadonlySet<string>;
|
|
20
|
+
}
|
|
21
|
+
export declare function validateBiomeComposition(biomes: readonly FrontendBiome[], options: ValidateBiomeCompositionOptions): readonly CompositionDiagnostic[];
|
|
22
|
+
//# sourceMappingURL=composition-validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composition-validation.d.ts","sourceRoot":"","sources":["../../../src/lib/biome-host/composition-validation.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGtD,oBAAY,6BAA6B;IAMvC,KAAK,UAAU;IAOf,OAAO,YAAY;CACpB;AAGD,oBAAY,yBAAyB;IAEnC,kBAAkB,yBAAyB;IAE3C,cAAc,qBAAqB;IAKnC,WAAW,iBAAiB;IAK5B,iBAAiB,wBAAwB;CAC1C;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAC;IACzC,QAAQ,CAAC,QAAQ,EAAE,6BAA6B,CAAC;IAEjD,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAErC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,+BAA+B;IAM9C,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC1C;AAwBD,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,SAAS,aAAa,EAAE,EAChC,OAAO,EAAE,+BAA+B,GACvC,SAAS,qBAAqB,EAAE,CA6FlC"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CompositionDiagnosticCode = exports.CompositionDiagnosticSeverity = void 0;
|
|
4
|
+
exports.validateBiomeComposition = validateBiomeComposition;
|
|
5
|
+
var CompositionDiagnosticSeverity;
|
|
6
|
+
(function (CompositionDiagnosticSeverity) {
|
|
7
|
+
CompositionDiagnosticSeverity["Error"] = "error";
|
|
8
|
+
CompositionDiagnosticSeverity["Warning"] = "warning";
|
|
9
|
+
})(CompositionDiagnosticSeverity || (exports.CompositionDiagnosticSeverity = CompositionDiagnosticSeverity = {}));
|
|
10
|
+
var CompositionDiagnosticCode;
|
|
11
|
+
(function (CompositionDiagnosticCode) {
|
|
12
|
+
CompositionDiagnosticCode["DuplicateRoutePath"] = "duplicate_route_path";
|
|
13
|
+
CompositionDiagnosticCode["DuplicateNavId"] = "duplicate_nav_id";
|
|
14
|
+
CompositionDiagnosticCode["UnknownSlot"] = "unknown_slot";
|
|
15
|
+
CompositionDiagnosticCode["OrphanedPanelSlot"] = "orphaned_panel_slot";
|
|
16
|
+
})(CompositionDiagnosticCode || (exports.CompositionDiagnosticCode = CompositionDiagnosticCode = {}));
|
|
17
|
+
function biomeOwnedSlotOwner(slot) {
|
|
18
|
+
const slashIndex = slot.indexOf('/');
|
|
19
|
+
if (slashIndex <= 0)
|
|
20
|
+
return null;
|
|
21
|
+
if (slot.indexOf('/', slashIndex + 1) !== -1)
|
|
22
|
+
return null;
|
|
23
|
+
const owner = slot.slice(0, slashIndex);
|
|
24
|
+
const name = slot.slice(slashIndex + 1);
|
|
25
|
+
if (owner.length === 0 || name.length === 0)
|
|
26
|
+
return null;
|
|
27
|
+
return owner;
|
|
28
|
+
}
|
|
29
|
+
function validateBiomeComposition(biomes, options) {
|
|
30
|
+
const diagnostics = [];
|
|
31
|
+
const biomeIds = new Set(biomes.map((b) => b.id));
|
|
32
|
+
const routeOwners = new Map();
|
|
33
|
+
for (const biome of biomes) {
|
|
34
|
+
for (const route of biome.routes ?? []) {
|
|
35
|
+
const scope = route.projectScoped ? 'project' : 'root';
|
|
36
|
+
const key = `${scope}:${route.path}`;
|
|
37
|
+
const owners = routeOwners.get(key);
|
|
38
|
+
if (owners)
|
|
39
|
+
owners.push(biome.id);
|
|
40
|
+
else
|
|
41
|
+
routeOwners.set(key, [biome.id]);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
for (const [key, owners] of routeOwners) {
|
|
45
|
+
if (owners.length < 2)
|
|
46
|
+
continue;
|
|
47
|
+
const [scope, path] = splitFirst(key, ':');
|
|
48
|
+
diagnostics.push({
|
|
49
|
+
code: CompositionDiagnosticCode.DuplicateRoutePath,
|
|
50
|
+
severity: CompositionDiagnosticSeverity.Error,
|
|
51
|
+
biomeIds: owners,
|
|
52
|
+
message: `Route path '${path}' (${scope}-scoped) is contributed by multiple biomes: ` +
|
|
53
|
+
`${owners.join(', ')}. Each route must be unique within its scope — ` +
|
|
54
|
+
`only one would mount and the others would be unreachable.`,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
const navOwners = new Map();
|
|
58
|
+
for (const biome of biomes) {
|
|
59
|
+
for (const navItem of biome.navItems ?? []) {
|
|
60
|
+
const owners = navOwners.get(navItem.id);
|
|
61
|
+
if (owners)
|
|
62
|
+
owners.push(biome.id);
|
|
63
|
+
else
|
|
64
|
+
navOwners.set(navItem.id, [biome.id]);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
for (const [navId, owners] of navOwners) {
|
|
68
|
+
if (owners.length < 2)
|
|
69
|
+
continue;
|
|
70
|
+
diagnostics.push({
|
|
71
|
+
code: CompositionDiagnosticCode.DuplicateNavId,
|
|
72
|
+
severity: CompositionDiagnosticSeverity.Error,
|
|
73
|
+
biomeIds: owners,
|
|
74
|
+
message: `Nav id '${navId}' is contributed by multiple biomes: ${owners.join(', ')}. ` +
|
|
75
|
+
`Nav ids must be unique — a duplicate silently overwrites the ` +
|
|
76
|
+
`feature-route mapping and collides as a render key.`,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
for (const biome of biomes) {
|
|
80
|
+
for (const panel of biome.panels ?? []) {
|
|
81
|
+
if (options.knownSlots.has(panel.slot))
|
|
82
|
+
continue;
|
|
83
|
+
const owner = biomeOwnedSlotOwner(panel.slot);
|
|
84
|
+
if (owner === null) {
|
|
85
|
+
diagnostics.push({
|
|
86
|
+
code: CompositionDiagnosticCode.UnknownSlot,
|
|
87
|
+
severity: CompositionDiagnosticSeverity.Warning,
|
|
88
|
+
biomeIds: [biome.id],
|
|
89
|
+
message: `Biome '${biome.id}' panel '${panel.id}' targets slot '${panel.slot}', ` +
|
|
90
|
+
`which is neither a known host slot nor a well-formed ` +
|
|
91
|
+
`'<owner>/<name>' biome-owned slot. It will never render — ` +
|
|
92
|
+
`check for a typo against the host slot catalog.`,
|
|
93
|
+
});
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
96
|
+
if (!biomeIds.has(owner)) {
|
|
97
|
+
diagnostics.push({
|
|
98
|
+
code: CompositionDiagnosticCode.OrphanedPanelSlot,
|
|
99
|
+
severity: CompositionDiagnosticSeverity.Warning,
|
|
100
|
+
biomeIds: [biome.id],
|
|
101
|
+
message: `Biome '${biome.id}' panel '${panel.id}' targets biome-owned slot ` +
|
|
102
|
+
`'${panel.slot}', but its owner biome '${owner}' is not registered. ` +
|
|
103
|
+
`The panel will never render until '${owner}' is enabled.`,
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return sortDiagnostics(diagnostics);
|
|
109
|
+
}
|
|
110
|
+
function splitFirst(value, sep) {
|
|
111
|
+
const idx = value.indexOf(sep);
|
|
112
|
+
if (idx === -1)
|
|
113
|
+
return [value, ''];
|
|
114
|
+
return [value.slice(0, idx), value.slice(idx + sep.length)];
|
|
115
|
+
}
|
|
116
|
+
function sortDiagnostics(diagnostics) {
|
|
117
|
+
return diagnostics.slice().sort((a, b) => {
|
|
118
|
+
if (a.code !== b.code)
|
|
119
|
+
return a.code.localeCompare(b.code);
|
|
120
|
+
const ai = a.biomeIds.join(',');
|
|
121
|
+
const bi = b.biomeIds.join(',');
|
|
122
|
+
if (ai !== bi)
|
|
123
|
+
return ai.localeCompare(bi);
|
|
124
|
+
return a.message.localeCompare(b.message);
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=composition-validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composition-validation.js","sourceRoot":"","sources":["../../../src/lib/biome-host/composition-validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { FrontendBiome, FrontendBiomeFactory, RouteAccess } from './frontend-biome';
|
|
2
|
+
import type { ComponentType } from 'react';
|
|
3
|
+
export interface WebBiomePage {
|
|
4
|
+
readonly slug: string;
|
|
5
|
+
readonly id?: string;
|
|
6
|
+
readonly label: string;
|
|
7
|
+
readonly icon?: ComponentType<{
|
|
8
|
+
className?: string | undefined;
|
|
9
|
+
}>;
|
|
10
|
+
readonly category?: string;
|
|
11
|
+
readonly scope?: 'org' | 'project';
|
|
12
|
+
readonly access?: RouteAccess;
|
|
13
|
+
readonly load: () => Promise<{
|
|
14
|
+
default: ComponentType<unknown>;
|
|
15
|
+
}>;
|
|
16
|
+
readonly weight?: number;
|
|
17
|
+
readonly navHidden?: boolean;
|
|
18
|
+
}
|
|
19
|
+
export interface DefineWebBiomeOptions {
|
|
20
|
+
readonly id: string;
|
|
21
|
+
readonly displayName: string;
|
|
22
|
+
readonly init?: FrontendBiome['init'];
|
|
23
|
+
readonly dispose?: FrontendBiome['dispose'];
|
|
24
|
+
readonly pages: readonly WebBiomePage[];
|
|
25
|
+
readonly panels?: FrontendBiome['panels'];
|
|
26
|
+
readonly session?: FrontendBiome['session'];
|
|
27
|
+
readonly outputRenderers?: FrontendBiome['outputRenderers'];
|
|
28
|
+
}
|
|
29
|
+
export declare function defineWebBiome(options: DefineWebBiomeOptions): FrontendBiomeFactory;
|
|
30
|
+
//# sourceMappingURL=define-web-biome.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define-web-biome.d.ts","sourceRoot":"","sources":["../../../src/lib/biome-host/define-web-biome.ts"],"names":[],"mappings":"AA0CA,OAAO,KAAK,EACV,aAAa,EACb,oBAAoB,EAEpB,WAAW,EAEZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,MAAM,WAAW,YAAY;IAM3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAOtB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IAErB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC,CAAC;IAMlE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAK3B,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;IAEnC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAE9B,QAAQ,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC;QAAE,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC,CAAA;KAAE,CAAC,CAAC;IAKlE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAKzB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,qBAAqB;IAEpC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAEtC,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IAE5C,QAAQ,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;IAExC,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IAE1C,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IAE5C,QAAQ,CAAC,eAAe,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;CAC7D;AAMD,wBAAgB,cAAc,CAC5B,OAAO,EAAE,qBAAqB,GAC7B,oBAAoB,CAuCtB"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.defineWebBiome = defineWebBiome;
|
|
4
|
+
const biome_builders_1 = require("./biome-builders");
|
|
5
|
+
function defineWebBiome(options) {
|
|
6
|
+
return () => {
|
|
7
|
+
const navItems = [];
|
|
8
|
+
const routes = [];
|
|
9
|
+
for (const page of options.pages) {
|
|
10
|
+
routes.push({
|
|
11
|
+
path: page.slug,
|
|
12
|
+
projectScoped: page.scope === 'project',
|
|
13
|
+
element: (0, biome_builders_1.lazyRoute)(page.load),
|
|
14
|
+
...(page.access ? { access: page.access } : {}),
|
|
15
|
+
});
|
|
16
|
+
if (!page.navHidden) {
|
|
17
|
+
navItems.push({
|
|
18
|
+
id: page.id ?? page.slug,
|
|
19
|
+
label: page.label,
|
|
20
|
+
route: page.slug,
|
|
21
|
+
...(page.icon ? { icon: page.icon } : {}),
|
|
22
|
+
...(page.category !== undefined ? { category: page.category } : {}),
|
|
23
|
+
...(page.weight !== undefined ? { weight: page.weight } : {}),
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return {
|
|
28
|
+
id: options.id,
|
|
29
|
+
displayName: options.displayName,
|
|
30
|
+
navItems,
|
|
31
|
+
routes,
|
|
32
|
+
...(options.init ? { init: options.init } : {}),
|
|
33
|
+
...(options.dispose ? { dispose: options.dispose } : {}),
|
|
34
|
+
...(options.panels ? { panels: options.panels } : {}),
|
|
35
|
+
...(options.session ? { session: options.session } : {}),
|
|
36
|
+
...(options.outputRenderers
|
|
37
|
+
? { outputRenderers: options.outputRenderers }
|
|
38
|
+
: {}),
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=define-web-biome.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define-web-biome.js","sourceRoot":"","sources":["../../../src/lib/biome-host/define-web-biome.ts"],"names":[],"mappings":";;AAuHA,wCAyCC;AAxHD,qDAA6C;AA+E7C,SAAgB,cAAc,CAC5B,OAA8B;IAE9B,OAAO,GAAG,EAAE;QACV,MAAM,QAAQ,GAA0B,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAwB,EAAE,CAAC;QAEvC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,aAAa,EAAE,IAAI,CAAC,KAAK,KAAK,SAAS;gBACvC,OAAO,EAAE,IAAA,0BAAS,EAAC,IAAI,CAAC,IAAI,CAAC;gBAC7B,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAChD,CAAC,CAAC;YAEH,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACpB,QAAQ,CAAC,IAAI,CAAC;oBACZ,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,IAAI;oBACxB,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,KAAK,EAAE,IAAI,CAAC,IAAI;oBAChB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACzC,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnE,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC9D,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO;YACL,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,QAAQ;YACR,MAAM;YACN,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrD,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,GAAG,CAAC,OAAO,CAAC,eAAe;gBACzB,CAAC,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE;gBAC9C,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/lib/biome-host/errors.ts"],"names":[],"mappings":"AA0MA,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,OAAO,EACd,QAAQ,SAA4C,GACnD,MAAM,CAcR"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getUserFacingErrorMessage = getUserFacingErrorMessage;
|
|
4
|
+
function collapseWhitespace(value) {
|
|
5
|
+
return value.split(/\s+/).join(' ').trim();
|
|
6
|
+
}
|
|
7
|
+
function getGenericErrorMessage(message, fallback) {
|
|
8
|
+
const normalized = collapseWhitespace(message);
|
|
9
|
+
if (/failed to fetch/i.test(normalized)) {
|
|
10
|
+
return 'Could not reach the service. Check your connection and try again.';
|
|
11
|
+
}
|
|
12
|
+
return normalized || fallback;
|
|
13
|
+
}
|
|
14
|
+
function normalizeValidationMessage(rawMessage) {
|
|
15
|
+
const parts = rawMessage
|
|
16
|
+
.split(',')
|
|
17
|
+
.map((part) => collapseWhitespace(part))
|
|
18
|
+
.filter(Boolean);
|
|
19
|
+
if (parts.length === 0) {
|
|
20
|
+
return 'Some required fields are missing or invalid. Please review your input and try again.';
|
|
21
|
+
}
|
|
22
|
+
const preview = parts.slice(0, 2).join('; ');
|
|
23
|
+
const suffix = parts.length > 2 ? '; and more.' : '.';
|
|
24
|
+
return `Some required fields are missing or invalid (${preview}${suffix})`;
|
|
25
|
+
}
|
|
26
|
+
function isApiClientErrorLike(error) {
|
|
27
|
+
if (!error || typeof error !== 'object') {
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
const record = error;
|
|
31
|
+
return (record['name'] === 'ApiClientError' &&
|
|
32
|
+
typeof record['statusCode'] === 'number' &&
|
|
33
|
+
typeof record['message'] === 'string');
|
|
34
|
+
}
|
|
35
|
+
function isOrvalClientErrorLike(error) {
|
|
36
|
+
if (!error || typeof error !== 'object') {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
const record = error;
|
|
40
|
+
return (record['name'] === 'ClientError' &&
|
|
41
|
+
typeof record['status'] === 'number' &&
|
|
42
|
+
typeof record['message'] === 'string' &&
|
|
43
|
+
Object.hasOwn(record, 'body'));
|
|
44
|
+
}
|
|
45
|
+
function readStringList(value) {
|
|
46
|
+
if (!Array.isArray(value)) {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
if (value.some((entry) => typeof entry !== 'string')) {
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
return value;
|
|
53
|
+
}
|
|
54
|
+
function normalizeWorkflowWalletMissingMessage(envelope) {
|
|
55
|
+
if (envelope.code !== 'WORKFLOW_WALLET_NOT_FOUND') {
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
const missing = readStringList(envelope.details?.['missing']);
|
|
59
|
+
if (missing === null || missing.length === 0) {
|
|
60
|
+
return 'One or more required wallets are missing for this project.';
|
|
61
|
+
}
|
|
62
|
+
return `Missing wallet${missing.length > 1 ? 's' : ''}: ${missing.join(', ')}. Add ${missing.length > 1 ? 'them' : 'it'} in Project Settings -> Wallets.`;
|
|
63
|
+
}
|
|
64
|
+
function getApiClientErrorMessage(error, fallback) {
|
|
65
|
+
if (error.statusCode === 0) {
|
|
66
|
+
return collapseWhitespace(error.message) || fallback;
|
|
67
|
+
}
|
|
68
|
+
if (error.statusCode === 400) {
|
|
69
|
+
const raw = collapseWhitespace(error.message);
|
|
70
|
+
if (raw.includes(' must ') || raw.includes('regular expression')) {
|
|
71
|
+
return normalizeValidationMessage(raw);
|
|
72
|
+
}
|
|
73
|
+
return raw || 'The request is invalid. Please check your input and try again.';
|
|
74
|
+
}
|
|
75
|
+
if (error.statusCode === 401) {
|
|
76
|
+
return 'Your session expired. Please sign in again.';
|
|
77
|
+
}
|
|
78
|
+
if (error.statusCode === 403) {
|
|
79
|
+
return 'You do not have permission to perform this action.';
|
|
80
|
+
}
|
|
81
|
+
if (error.statusCode === 404) {
|
|
82
|
+
return 'The requested resource was not found.';
|
|
83
|
+
}
|
|
84
|
+
if (error.statusCode >= 500) {
|
|
85
|
+
return 'The service is temporarily unavailable. Please try again in a moment.';
|
|
86
|
+
}
|
|
87
|
+
return collapseWhitespace(error.message) || fallback;
|
|
88
|
+
}
|
|
89
|
+
function getOrvalClientErrorMessage(error, fallback) {
|
|
90
|
+
if (error.status >= 500) {
|
|
91
|
+
return 'The service is temporarily unavailable. Please try again in a moment.';
|
|
92
|
+
}
|
|
93
|
+
if (error.status === 409) {
|
|
94
|
+
const body = error.body;
|
|
95
|
+
if (body && typeof body === 'object') {
|
|
96
|
+
const record = body;
|
|
97
|
+
if (record['error'] === 'session_busy') {
|
|
98
|
+
return 'Your last message is still running. Wait for the agent to finish, then try again.';
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
const body = error.body;
|
|
103
|
+
if (body && typeof body === 'object') {
|
|
104
|
+
const record = body;
|
|
105
|
+
const payload = (() => {
|
|
106
|
+
const message = record['message'];
|
|
107
|
+
if (message && typeof message === 'object') {
|
|
108
|
+
return message;
|
|
109
|
+
}
|
|
110
|
+
return {
|
|
111
|
+
code: typeof record['code'] === 'string' ? record['code'] : undefined,
|
|
112
|
+
message: typeof record['message'] === 'string' ? record['message'] : undefined,
|
|
113
|
+
details: record['details'] && typeof record['details'] === 'object'
|
|
114
|
+
? record['details']
|
|
115
|
+
: undefined,
|
|
116
|
+
};
|
|
117
|
+
})();
|
|
118
|
+
const workflowWalletMessage = normalizeWorkflowWalletMissingMessage(payload);
|
|
119
|
+
if (workflowWalletMessage !== null) {
|
|
120
|
+
return workflowWalletMessage;
|
|
121
|
+
}
|
|
122
|
+
if (typeof payload.message === 'string' && payload.message.trim().length > 0) {
|
|
123
|
+
return collapseWhitespace(payload.message);
|
|
124
|
+
}
|
|
125
|
+
if (typeof record['message'] === 'string' && record['message'].trim().length > 0) {
|
|
126
|
+
return collapseWhitespace(record['message']);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return getGenericErrorMessage(error.message, fallback);
|
|
130
|
+
}
|
|
131
|
+
function getUserFacingErrorMessage(error, fallback = 'Something went wrong. Please try again.') {
|
|
132
|
+
if (typeof error === 'string') {
|
|
133
|
+
return collapseWhitespace(error) || fallback;
|
|
134
|
+
}
|
|
135
|
+
if (isApiClientErrorLike(error)) {
|
|
136
|
+
return getApiClientErrorMessage(error, fallback);
|
|
137
|
+
}
|
|
138
|
+
if (isOrvalClientErrorLike(error)) {
|
|
139
|
+
return getOrvalClientErrorMessage(error, fallback);
|
|
140
|
+
}
|
|
141
|
+
if (error instanceof Error) {
|
|
142
|
+
return getGenericErrorMessage(error.message, fallback);
|
|
143
|
+
}
|
|
144
|
+
return fallback;
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/lib/biome-host/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frontend-biome.d.ts","sourceRoot":"","sources":["../../../src/lib/biome-host/frontend-biome.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAYpE,MAAM,WAAW,mBAAmB;IAElC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAQvB,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"frontend-biome.d.ts","sourceRoot":"","sources":["../../../src/lib/biome-host/frontend-biome.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAYpE,MAAM,WAAW,mBAAmB;IAElC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAQvB,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC,CAAC;IAWlE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAM3B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAK1B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAQD,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,WAAW,GAAG,gBAAgB,CAAC;AAEpE,MAAM,WAAW,iBAAiB;IAEhC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,OAAO,EAAE,MAAM,SAAS,CAAC;IASlC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAKhC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAQD,MAAM,WAAW,iBAAiB;IAEhC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,QAAQ,CAAC,MAAM,EAAE,MAAM,SAAS,CAAC;IAEjC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAUD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAE5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAE5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAQ7B,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAOhE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACnD,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAC/C,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAO/C,QAAQ,CAAC,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAexC,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,0BAA0B,EAAE,CAAC;CAClE;AAYD,MAAM,WAAW,0BAA0B;IAOzC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAQ5B,QAAQ,CAAC,MAAM,EAAE,MAAM,aAAa,CAAC;QAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CACpE;AAaD,MAAM,MAAM,oBAAoB,GAAG,CAAC,MAAM,EAAE,UAAU,KAAK,aAAa,CAAC"}
|
|
@@ -2,6 +2,7 @@ import type { QueryClient } from '@tanstack/react-query';
|
|
|
2
2
|
import { type ReactNode } from 'react';
|
|
3
3
|
import type { CapabilityPort } from '../capabilities';
|
|
4
4
|
import type { SystemBus } from '../system-bus';
|
|
5
|
+
import type { RealtimeSource } from './realtime-port';
|
|
5
6
|
export interface HostBridgeNavigation {
|
|
6
7
|
push(path: string): void;
|
|
7
8
|
replace(path: string): void;
|
|
@@ -29,6 +30,9 @@ export interface HostBridgeToast {
|
|
|
29
30
|
export interface HostBridgeRequestContext {
|
|
30
31
|
readonly correlationId: string;
|
|
31
32
|
}
|
|
33
|
+
export interface HostBridgeErrors {
|
|
34
|
+
getUserFacingErrorMessage(error: unknown, fallback?: string): string;
|
|
35
|
+
}
|
|
32
36
|
export interface PageBackTarget {
|
|
33
37
|
readonly to: string;
|
|
34
38
|
readonly label?: string;
|
|
@@ -54,6 +58,8 @@ export interface HostBridge {
|
|
|
54
58
|
readonly pageMeta: HostBridgePageMeta;
|
|
55
59
|
readonly system: SystemBus;
|
|
56
60
|
readonly capabilities: CapabilityPort;
|
|
61
|
+
readonly realtime?: RealtimeSource;
|
|
62
|
+
readonly errors?: HostBridgeErrors;
|
|
57
63
|
}
|
|
58
64
|
export declare const HostBridgeContext: import("react").Context<HostBridge | null>;
|
|
59
65
|
export declare function useHostBridge(): HostBridge;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host-bridge.d.ts","sourceRoot":"","sources":["../../../src/lib/biome-host/host-bridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAElE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"host-bridge.d.ts","sourceRoot":"","sources":["../../../src/lib/biome-host/host-bridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host-bridge.js","sourceRoot":"","sources":["../../../src/lib/biome-host/host-bridge.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"host-bridge.js","sourceRoot":"","sources":["../../../src/lib/biome-host/host-bridge.ts"],"names":[],"mappings":";;;AAiQA,sCASC;AAxQD,iCAAkE;AAuPrD,QAAA,iBAAiB,GAAG,IAAA,qBAAa,EAAoB,IAAI,CAAC,CAAC;AACxE,yBAAiB,CAAC,WAAW,GAAG,mBAAmB,CAAC;AAOpD,SAAgB,aAAa;IAC3B,MAAM,MAAM,GAAG,IAAA,kBAAU,EAAC,yBAAiB,CAAC,CAAC;IAC7C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,gFAAgF;YAC9E,0EAA0E,CAC7E,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -4,6 +4,7 @@ export * from './biome-navigation';
|
|
|
4
4
|
export * from './biome-scope';
|
|
5
5
|
export * from './biome-scoped-query';
|
|
6
6
|
export * from './biome-builders';
|
|
7
|
+
export * from './define-web-biome';
|
|
7
8
|
export * from './create-biome-orval-config';
|
|
8
9
|
export * from './biome-registry';
|
|
9
10
|
export * from './session-contributions';
|
|
@@ -12,4 +13,8 @@ export * from './host-sources';
|
|
|
12
13
|
export * from './nav';
|
|
13
14
|
export * from './biome-mode';
|
|
14
15
|
export * from './agent-validation';
|
|
16
|
+
export * from './realtime-port';
|
|
17
|
+
export * from './realtime-hooks';
|
|
18
|
+
export * from './errors';
|
|
19
|
+
export * from './response-envelope';
|
|
15
20
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/biome-host/index.ts"],"names":[],"mappings":"AAcA,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,OAAO,CAAC;AACtB,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/biome-host/index.ts"],"names":[],"mappings":"AAcA,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,OAAO,CAAC;AACtB,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,qBAAqB,CAAC"}
|
|
@@ -20,6 +20,7 @@ __exportStar(require("./biome-navigation"), exports);
|
|
|
20
20
|
__exportStar(require("./biome-scope"), exports);
|
|
21
21
|
__exportStar(require("./biome-scoped-query"), exports);
|
|
22
22
|
__exportStar(require("./biome-builders"), exports);
|
|
23
|
+
__exportStar(require("./define-web-biome"), exports);
|
|
23
24
|
__exportStar(require("./create-biome-orval-config"), exports);
|
|
24
25
|
__exportStar(require("./biome-registry"), exports);
|
|
25
26
|
__exportStar(require("./session-contributions"), exports);
|
|
@@ -28,4 +29,8 @@ __exportStar(require("./host-sources"), exports);
|
|
|
28
29
|
__exportStar(require("./nav"), exports);
|
|
29
30
|
__exportStar(require("./biome-mode"), exports);
|
|
30
31
|
__exportStar(require("./agent-validation"), exports);
|
|
32
|
+
__exportStar(require("./realtime-port"), exports);
|
|
33
|
+
__exportStar(require("./realtime-hooks"), exports);
|
|
34
|
+
__exportStar(require("./errors"), exports);
|
|
35
|
+
__exportStar(require("./response-envelope"), exports);
|
|
31
36
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/biome-host/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAcA,mDAAiC;AACjC,gDAA8B;AAC9B,qDAAmC;AACnC,gDAA8B;AAC9B,uDAAqC;AACrC,mDAAiC;AACjC,8DAA4C;AAC5C,mDAAiC;AACjC,0DAAwC;AACxC,qDAAmC;AACnC,iDAA+B;AAC/B,wCAAsB;AACtB,+CAA6B;AAC7B,qDAAmC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/biome-host/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAcA,mDAAiC;AACjC,gDAA8B;AAC9B,qDAAmC;AACnC,gDAA8B;AAC9B,uDAAqC;AACrC,mDAAiC;AACjC,qDAAmC;AACnC,8DAA4C;AAC5C,mDAAiC;AACjC,0DAAwC;AACxC,qDAAmC;AACnC,iDAA+B;AAC/B,wCAAsB;AACtB,+CAA6B;AAC7B,qDAAmC;AACnC,kDAAgC;AAChC,mDAAiC;AACjC,2CAAyB;AACzB,sDAAoC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { RealtimeCloudEvent, RealtimeConnectionState, RealtimeScope } from './realtime-port';
|
|
2
|
+
export declare function useCloudEvent(eventType: string, handler: (event: RealtimeCloudEvent) => void): void;
|
|
3
|
+
export declare function useRealtimeStatus(): RealtimeConnectionState;
|
|
4
|
+
export declare function useEventScope(scope: RealtimeScope): void;
|
|
5
|
+
//# sourceMappingURL=realtime-hooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"realtime-hooks.d.ts","sourceRoot":"","sources":["../../../src/lib/biome-host/realtime-hooks.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EACV,kBAAkB,EAClB,uBAAuB,EACvB,aAAa,EAEd,MAAM,iBAAiB,CAAC;AAiCzB,wBAAgB,aAAa,CAC3B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,GAC3C,IAAI,CAGN;AAGD,wBAAgB,iBAAiB,IAAI,uBAAuB,CAG3D;AAOD,wBAAgB,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAGxD"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useCloudEvent = useCloudEvent;
|
|
4
|
+
exports.useRealtimeStatus = useRealtimeStatus;
|
|
5
|
+
exports.useEventScope = useEventScope;
|
|
6
|
+
const host_bridge_1 = require("./host-bridge");
|
|
7
|
+
function requireRealtime(realtime) {
|
|
8
|
+
if (!realtime) {
|
|
9
|
+
throw new Error('useCloudEvent/useRealtimeStatus/useEventScope require a realtime ' +
|
|
10
|
+
'transport, but the host has not wired `bridge.realtime`. The host ' +
|
|
11
|
+
'must provide a RealtimeSource (e.g. backed by @xemahq/realtime-client) ' +
|
|
12
|
+
'on the HostBridge to use kernel realtime hooks.');
|
|
13
|
+
}
|
|
14
|
+
return realtime;
|
|
15
|
+
}
|
|
16
|
+
function useCloudEvent(eventType, handler) {
|
|
17
|
+
const bridge = (0, host_bridge_1.useHostBridge)();
|
|
18
|
+
requireRealtime(bridge.realtime).useCloudEvent(eventType, handler);
|
|
19
|
+
}
|
|
20
|
+
function useRealtimeStatus() {
|
|
21
|
+
const bridge = (0, host_bridge_1.useHostBridge)();
|
|
22
|
+
return requireRealtime(bridge.realtime).useRealtimeStatus();
|
|
23
|
+
}
|
|
24
|
+
function useEventScope(scope) {
|
|
25
|
+
const bridge = (0, host_bridge_1.useHostBridge)();
|
|
26
|
+
requireRealtime(bridge.realtime).useEventScope(scope);
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=realtime-hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"realtime-hooks.js","sourceRoot":"","sources":["../../../src/lib/biome-host/realtime-hooks.ts"],"names":[],"mappings":";;AAmDA,sCAMC;AAGD,8CAGC;AAOD,sCAGC;AA7DD,+CAA8C;AAc9C,SAAS,eAAe,CAAC,QAAoC;IAC3D,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CACb,mEAAmE;YACjE,oEAAoE;YACpE,yEAAyE;YACzE,iDAAiD,CACpD,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAeD,SAAgB,aAAa,CAC3B,SAAiB,EACjB,OAA4C;IAE5C,MAAM,MAAM,GAAG,IAAA,2BAAa,GAAE,CAAC;IAC/B,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACrE,CAAC;AAGD,SAAgB,iBAAiB;IAC/B,MAAM,MAAM,GAAG,IAAA,2BAAa,GAAE,CAAC;IAC/B,OAAO,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,iBAAiB,EAAE,CAAC;AAC9D,CAAC;AAOD,SAAgB,aAAa,CAAC,KAAoB;IAChD,MAAM,MAAM,GAAG,IAAA,2BAAa,GAAE,CAAC;IAC/B,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACxD,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export interface RealtimeCloudEvent {
|
|
2
|
+
id?: string;
|
|
3
|
+
type: string;
|
|
4
|
+
source?: string;
|
|
5
|
+
subject?: string;
|
|
6
|
+
data?: unknown;
|
|
7
|
+
ehorgid: string;
|
|
8
|
+
ehprojectid?: string;
|
|
9
|
+
ehuserid?: string;
|
|
10
|
+
ehglobalseq?: string;
|
|
11
|
+
ehorgseq?: string;
|
|
12
|
+
ehprojectseq?: string;
|
|
13
|
+
ehsessionseq?: string;
|
|
14
|
+
__hint?: unknown;
|
|
15
|
+
}
|
|
16
|
+
export type RealtimeStatus = 'idle' | 'connecting' | 'connected' | 'reconnecting' | 'closed';
|
|
17
|
+
export interface RealtimeConnectionState {
|
|
18
|
+
readonly status: RealtimeStatus;
|
|
19
|
+
readonly connectionId?: string;
|
|
20
|
+
}
|
|
21
|
+
export interface RealtimeScope {
|
|
22
|
+
readonly kind: 'project' | 'session';
|
|
23
|
+
readonly id: string;
|
|
24
|
+
}
|
|
25
|
+
export interface RealtimeSource {
|
|
26
|
+
useCloudEvent(eventType: string, handler: (event: RealtimeCloudEvent) => void): void;
|
|
27
|
+
useRealtimeStatus(): RealtimeConnectionState;
|
|
28
|
+
useEventScope(scope: RealtimeScope): void;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=realtime-port.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"realtime-port.d.ts","sourceRoot":"","sources":["../../../src/lib/biome-host/realtime-port.ts"],"names":[],"mappings":"AA6BA,MAAM,WAAW,kBAAkB;IAEjC,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ,IAAI,EAAE,MAAM,CAAC;IAEb,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,OAAO,EAAE,MAAM,CAAC;IAEhB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAGD,MAAM,MAAM,cAAc,GACtB,MAAM,GACN,YAAY,GACZ,WAAW,GACX,cAAc,GACd,QAAQ,CAAC;AAGb,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAEhC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAOD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAWD,MAAM,WAAW,cAAc;IAO7B,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,GAAG,IAAI,CAAC;IAErF,iBAAiB,IAAI,uBAAuB,CAAC;IAM7C,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC;CAC3C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"realtime-port.js","sourceRoot":"","sources":["../../../src/lib/biome-host/realtime-port.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response-envelope.d.ts","sourceRoot":"","sources":["../../../src/lib/biome-host/response-envelope.ts"],"names":[],"mappings":"AA+BA,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,CAAC,EAAE,CAYjD;AAeD,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,CAAC,CAU/C"}
|