@almadar/ui 6.9.0 → 6.10.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/{EntityBindingContext-Bn3ePJQC.d.cts → EntityBindingContext-Y4zXyNJZ.d.cts} +14 -2
- package/dist/{EntityBindingContext-Bn3ePJQC.d.ts → EntityBindingContext-Y4zXyNJZ.d.ts} +14 -2
- package/dist/avl/index.cjs +4 -2
- package/dist/avl/index.js +4 -2
- package/dist/components/index.d.cts +2 -2
- package/dist/components/index.d.ts +2 -2
- package/dist/providers/index.cjs +29 -10
- package/dist/providers/index.d.cts +1 -1
- package/dist/providers/index.d.ts +1 -1
- package/dist/providers/index.js +29 -10
- package/dist/runtime/index.cjs +4 -2
- package/dist/runtime/index.d.cts +6 -4
- package/dist/runtime/index.d.ts +6 -4
- package/dist/runtime/index.js +4 -2
- package/package.json +3 -3
|
@@ -175,6 +175,12 @@ interface ServerBridgeTransport {
|
|
|
175
175
|
*/
|
|
176
176
|
sendEvent: (orbitalName: string, event: string, payload?: EventPayload, clientId?: string, tick?: string, sourceTrait?: string) => Promise<OrbitalEventResponse>;
|
|
177
177
|
}
|
|
178
|
+
/**
|
|
179
|
+
* Supplies the bearer token the hosting server authenticates with. Resolved
|
|
180
|
+
* per request (tokens expire); `undefined` sends the request unauthenticated
|
|
181
|
+
* (dev servers with an auth bypass, standalone playground).
|
|
182
|
+
*/
|
|
183
|
+
type AccessTokenProvider = () => Promise<string | undefined>;
|
|
178
184
|
/**
|
|
179
185
|
* Access the server bridge. Returns a no-op stub when outside the provider.
|
|
180
186
|
*/
|
|
@@ -189,9 +195,15 @@ interface ServerBridgeProviderProps {
|
|
|
189
195
|
* directly). Mutually exclusive with `serverUrl`.
|
|
190
196
|
*/
|
|
191
197
|
transport?: ServerBridgeTransport;
|
|
198
|
+
/**
|
|
199
|
+
* Bearer token for the HTTP transport (`Authorization` on every fetch;
|
|
200
|
+
* `access_token` on the SSE URL, since EventSource cannot set headers).
|
|
201
|
+
* Ignored with a custom `transport`.
|
|
202
|
+
*/
|
|
203
|
+
getAccessToken?: AccessTokenProvider;
|
|
192
204
|
children: ReactNode;
|
|
193
205
|
}
|
|
194
|
-
declare function ServerBridgeProvider({ schema, serverUrl, transport: customTransport, children, }: ServerBridgeProviderProps): React.JSX.Element;
|
|
206
|
+
declare function ServerBridgeProvider({ schema, serverUrl, transport: customTransport, getAccessToken, children, }: ServerBridgeProviderProps): React.JSX.Element;
|
|
195
207
|
|
|
196
208
|
/**
|
|
197
209
|
* TraitProvider Component
|
|
@@ -272,4 +284,4 @@ declare function useEntityBindingSnapshot(traitName: string | undefined): {
|
|
|
272
284
|
state: string;
|
|
273
285
|
};
|
|
274
286
|
|
|
275
|
-
export { EntityBindingContext as E, type SendEventResult as S, TraitContext as T, type EntityBindingSource as a, type EntitySchemaContextValue as b, EntitySchemaProvider as c, type EntitySchemaProviderProps as d, type ServerBridgeContextValue as e, ServerBridgeProvider as f, type ServerBridgeProviderProps as g, type ServerBridgeTransport as h, type ServerClientEffect as i, type ServerResponseMeta as j, type TraitContextValue as k, type TraitInstance as l, TraitProvider as m, type TraitProviderProps as n, useEntitySchema as o, useEntitySchemaOptional as p, useServerBridge as q, useTrait as r, useTraitContext as s, useEntityBindingSnapshot as u };
|
|
287
|
+
export { type AccessTokenProvider as A, EntityBindingContext as E, type SendEventResult as S, TraitContext as T, type EntityBindingSource as a, type EntitySchemaContextValue as b, EntitySchemaProvider as c, type EntitySchemaProviderProps as d, type ServerBridgeContextValue as e, ServerBridgeProvider as f, type ServerBridgeProviderProps as g, type ServerBridgeTransport as h, type ServerClientEffect as i, type ServerResponseMeta as j, type TraitContextValue as k, type TraitInstance as l, TraitProvider as m, type TraitProviderProps as n, useEntitySchema as o, useEntitySchemaOptional as p, useServerBridge as q, useTrait as r, useTraitContext as s, useEntityBindingSnapshot as u };
|
|
@@ -175,6 +175,12 @@ interface ServerBridgeTransport {
|
|
|
175
175
|
*/
|
|
176
176
|
sendEvent: (orbitalName: string, event: string, payload?: EventPayload, clientId?: string, tick?: string, sourceTrait?: string) => Promise<OrbitalEventResponse>;
|
|
177
177
|
}
|
|
178
|
+
/**
|
|
179
|
+
* Supplies the bearer token the hosting server authenticates with. Resolved
|
|
180
|
+
* per request (tokens expire); `undefined` sends the request unauthenticated
|
|
181
|
+
* (dev servers with an auth bypass, standalone playground).
|
|
182
|
+
*/
|
|
183
|
+
type AccessTokenProvider = () => Promise<string | undefined>;
|
|
178
184
|
/**
|
|
179
185
|
* Access the server bridge. Returns a no-op stub when outside the provider.
|
|
180
186
|
*/
|
|
@@ -189,9 +195,15 @@ interface ServerBridgeProviderProps {
|
|
|
189
195
|
* directly). Mutually exclusive with `serverUrl`.
|
|
190
196
|
*/
|
|
191
197
|
transport?: ServerBridgeTransport;
|
|
198
|
+
/**
|
|
199
|
+
* Bearer token for the HTTP transport (`Authorization` on every fetch;
|
|
200
|
+
* `access_token` on the SSE URL, since EventSource cannot set headers).
|
|
201
|
+
* Ignored with a custom `transport`.
|
|
202
|
+
*/
|
|
203
|
+
getAccessToken?: AccessTokenProvider;
|
|
192
204
|
children: ReactNode;
|
|
193
205
|
}
|
|
194
|
-
declare function ServerBridgeProvider({ schema, serverUrl, transport: customTransport, children, }: ServerBridgeProviderProps): React.JSX.Element;
|
|
206
|
+
declare function ServerBridgeProvider({ schema, serverUrl, transport: customTransport, getAccessToken, children, }: ServerBridgeProviderProps): React.JSX.Element;
|
|
195
207
|
|
|
196
208
|
/**
|
|
197
209
|
* TraitProvider Component
|
|
@@ -272,4 +284,4 @@ declare function useEntityBindingSnapshot(traitName: string | undefined): {
|
|
|
272
284
|
state: string;
|
|
273
285
|
};
|
|
274
286
|
|
|
275
|
-
export { EntityBindingContext as E, type SendEventResult as S, TraitContext as T, type EntityBindingSource as a, type EntitySchemaContextValue as b, EntitySchemaProvider as c, type EntitySchemaProviderProps as d, type ServerBridgeContextValue as e, ServerBridgeProvider as f, type ServerBridgeProviderProps as g, type ServerBridgeTransport as h, type ServerClientEffect as i, type ServerResponseMeta as j, type TraitContextValue as k, type TraitInstance as l, TraitProvider as m, type TraitProviderProps as n, useEntitySchema as o, useEntitySchemaOptional as p, useServerBridge as q, useTrait as r, useTraitContext as s, useEntityBindingSnapshot as u };
|
|
287
|
+
export { type AccessTokenProvider as A, EntityBindingContext as E, type SendEventResult as S, TraitContext as T, type EntityBindingSource as a, type EntitySchemaContextValue as b, EntitySchemaProvider as c, type EntitySchemaProviderProps as d, type ServerBridgeContextValue as e, ServerBridgeProvider as f, type ServerBridgeProviderProps as g, type ServerBridgeTransport as h, type ServerClientEffect as i, type ServerResponseMeta as j, type TraitContextValue as k, type TraitInstance as l, TraitProvider as m, type TraitProviderProps as n, useEntitySchema as o, useEntitySchemaOptional as p, useServerBridge as q, useTrait as r, useTraitContext as s, useEntityBindingSnapshot as u };
|
package/dist/avl/index.cjs
CHANGED
|
@@ -59920,7 +59920,7 @@ function TraitInitializer({ traits: traits2, routeParams, orbitalNames, onNaviga
|
|
|
59920
59920
|
}, [bridge.connected, orbitalNames, bridge.sendEvent, uiSlots, onNavigate, onNavigateBack, embeddedTraits, activeTraitNames, withActiveTraits, routeParams]);
|
|
59921
59921
|
return /* @__PURE__ */ jsxRuntime.jsx(providers.EntityBindingContext.Provider, { value: entityBindingSource, children });
|
|
59922
59922
|
}
|
|
59923
|
-
function SchemaRunner({ schema, serverUrl, transport, mockData, pageName, routeParams, onNavigate, onNavigateBack, onLocalFallback, persistence }) {
|
|
59923
|
+
function SchemaRunner({ schema, serverUrl, transport, getAccessToken, mockData, pageName, routeParams, onNavigate, onNavigateBack, onLocalFallback, persistence }) {
|
|
59924
59924
|
const { traits: traits2, allEntities, allTraits, ir } = useResolvedSchema(schema, pageName);
|
|
59925
59925
|
const allPageTraits = React96.useMemo(() => {
|
|
59926
59926
|
let base;
|
|
@@ -60077,7 +60077,7 @@ function SchemaRunner({ schema, serverUrl, transport, mockData, pageName, routeP
|
|
|
60077
60077
|
}
|
|
60078
60078
|
) });
|
|
60079
60079
|
if (serverUrl || transport) {
|
|
60080
|
-
return /* @__PURE__ */ jsxRuntime.jsx(providers.ServerBridgeProvider, { schema, serverUrl, transport, children: inner });
|
|
60080
|
+
return /* @__PURE__ */ jsxRuntime.jsx(providers.ServerBridgeProvider, { schema, serverUrl, transport, getAccessToken, children: inner });
|
|
60081
60081
|
}
|
|
60082
60082
|
return inner;
|
|
60083
60083
|
}
|
|
@@ -60089,6 +60089,7 @@ function OrbPreview({
|
|
|
60089
60089
|
className,
|
|
60090
60090
|
serverUrl,
|
|
60091
60091
|
transport,
|
|
60092
|
+
getAccessToken,
|
|
60092
60093
|
initialPagePath,
|
|
60093
60094
|
isolated = false
|
|
60094
60095
|
}) {
|
|
@@ -60269,6 +60270,7 @@ function OrbPreview({
|
|
|
60269
60270
|
schema: parseResult.schema,
|
|
60270
60271
|
serverUrl,
|
|
60271
60272
|
transport,
|
|
60273
|
+
getAccessToken,
|
|
60272
60274
|
mockData: effectiveMockData,
|
|
60273
60275
|
pageName: currentPage,
|
|
60274
60276
|
routeParams,
|
package/dist/avl/index.js
CHANGED
|
@@ -59844,7 +59844,7 @@ function TraitInitializer({ traits: traits2, routeParams, orbitalNames, onNaviga
|
|
|
59844
59844
|
}, [bridge.connected, orbitalNames, bridge.sendEvent, uiSlots, onNavigate, onNavigateBack, embeddedTraits, activeTraitNames, withActiveTraits, routeParams]);
|
|
59845
59845
|
return /* @__PURE__ */ jsx(EntityBindingContext.Provider, { value: entityBindingSource, children });
|
|
59846
59846
|
}
|
|
59847
|
-
function SchemaRunner({ schema, serverUrl, transport, mockData, pageName, routeParams, onNavigate, onNavigateBack, onLocalFallback, persistence }) {
|
|
59847
|
+
function SchemaRunner({ schema, serverUrl, transport, getAccessToken, mockData, pageName, routeParams, onNavigate, onNavigateBack, onLocalFallback, persistence }) {
|
|
59848
59848
|
const { traits: traits2, allEntities, allTraits, ir } = useResolvedSchema(schema, pageName);
|
|
59849
59849
|
const allPageTraits = useMemo(() => {
|
|
59850
59850
|
let base;
|
|
@@ -60001,7 +60001,7 @@ function SchemaRunner({ schema, serverUrl, transport, mockData, pageName, routeP
|
|
|
60001
60001
|
}
|
|
60002
60002
|
) });
|
|
60003
60003
|
if (serverUrl || transport) {
|
|
60004
|
-
return /* @__PURE__ */ jsx(ServerBridgeProvider, { schema, serverUrl, transport, children: inner });
|
|
60004
|
+
return /* @__PURE__ */ jsx(ServerBridgeProvider, { schema, serverUrl, transport, getAccessToken, children: inner });
|
|
60005
60005
|
}
|
|
60006
60006
|
return inner;
|
|
60007
60007
|
}
|
|
@@ -60013,6 +60013,7 @@ function OrbPreview({
|
|
|
60013
60013
|
className,
|
|
60014
60014
|
serverUrl,
|
|
60015
60015
|
transport,
|
|
60016
|
+
getAccessToken,
|
|
60016
60017
|
initialPagePath,
|
|
60017
60018
|
isolated = false
|
|
60018
60019
|
}) {
|
|
@@ -60193,6 +60194,7 @@ function OrbPreview({
|
|
|
60193
60194
|
schema: parseResult.schema,
|
|
60194
60195
|
serverUrl,
|
|
60195
60196
|
transport,
|
|
60197
|
+
getAccessToken,
|
|
60196
60198
|
mockData: effectiveMockData,
|
|
60197
60199
|
pageName: currentPage,
|
|
60198
60200
|
routeParams,
|
|
@@ -7925,7 +7925,7 @@ interface DataGridProps extends DataDndProps {
|
|
|
7925
7925
|
*/
|
|
7926
7926
|
look?: "dense" | "spacious" | "striped" | "borderless" | "card-rows";
|
|
7927
7927
|
}
|
|
7928
|
-
declare function DataGrid({ entity, fields, columns, itemActions, maxInlineActions, scrollX, cols, gap, minCardWidth, className, isLoading, error, imageField, selectable, selectionEvent, infiniteScroll, loadMoreEvent, hasMore, children, pageSize, renderItem: schemaRenderItem, dragGroup, accepts, sortable, dropEvent, reorderEvent, positionEvent, dndItemIdField, dndRoot, look, }: DataGridProps): string | number | bigint | boolean | Iterable<React__default.ReactNode> | Promise<string | number | bigint | boolean | React__default.ReactPortal | React__default.ReactElement<unknown, string | React__default.JSXElementConstructor<any>> | Iterable<React__default.ReactNode> | null | undefined> |
|
|
7928
|
+
declare function DataGrid({ entity, fields, columns, itemActions, maxInlineActions, scrollX, cols, gap, minCardWidth, className, isLoading, error, imageField, selectable, selectionEvent, infiniteScroll, loadMoreEvent, hasMore, children, pageSize, renderItem: schemaRenderItem, dragGroup, accepts, sortable, dropEvent, reorderEvent, positionEvent, dndItemIdField, dndRoot, look, }: DataGridProps): string | number | bigint | boolean | React__default.JSX.Element | Iterable<React__default.ReactNode> | Promise<string | number | bigint | boolean | React__default.ReactPortal | React__default.ReactElement<unknown, string | React__default.JSXElementConstructor<any>> | Iterable<React__default.ReactNode> | null | undefined> | null | undefined;
|
|
7929
7929
|
declare namespace DataGrid {
|
|
7930
7930
|
var displayName: string;
|
|
7931
7931
|
}
|
|
@@ -8079,7 +8079,7 @@ interface DataListProps extends DataDndProps {
|
|
|
8079
8079
|
*/
|
|
8080
8080
|
look?: "dense" | "spacious" | "striped" | "borderless" | "card-rows";
|
|
8081
8081
|
}
|
|
8082
|
-
declare function DataList({ entity, fields, columns, itemActions, maxInlineActions, itemClickEvent, gap, variant, groupBy, senderField, senderLabelField, currentUser, emptyMessage, className, isLoading, error, reorderable: _reorderable, reorderEvent: _reorderEvent, swipeLeftEvent: _swipeLeftEvent, swipeLeftActions: _swipeLeftActions, swipeRightEvent: _swipeRightEvent, swipeRightActions: _swipeRightActions, longPressEvent: _longPressEvent, infiniteScroll, loadMoreEvent, hasMore, children, pageSize, sortBy, sortDirection, renderItem: schemaRenderItem, dragGroup, accepts, sortable: sortableProp, dropEvent, reorderEvent: dndReorderEvent, positionEvent, dndItemIdField, dndRoot, look, }: DataListProps): string | number | bigint | boolean | Iterable<React__default.ReactNode> | Promise<string | number | bigint | boolean | React__default.ReactPortal | React__default.ReactElement<unknown, string | React__default.JSXElementConstructor<any>> | Iterable<React__default.ReactNode> | null | undefined> |
|
|
8082
|
+
declare function DataList({ entity, fields, columns, itemActions, maxInlineActions, itemClickEvent, gap, variant, groupBy, senderField, senderLabelField, currentUser, emptyMessage, className, isLoading, error, reorderable: _reorderable, reorderEvent: _reorderEvent, swipeLeftEvent: _swipeLeftEvent, swipeLeftActions: _swipeLeftActions, swipeRightEvent: _swipeRightEvent, swipeRightActions: _swipeRightActions, longPressEvent: _longPressEvent, infiniteScroll, loadMoreEvent, hasMore, children, pageSize, sortBy, sortDirection, renderItem: schemaRenderItem, dragGroup, accepts, sortable: sortableProp, dropEvent, reorderEvent: dndReorderEvent, positionEvent, dndItemIdField, dndRoot, look, }: DataListProps): string | number | bigint | boolean | React__default.JSX.Element | Iterable<React__default.ReactNode> | Promise<string | number | bigint | boolean | React__default.ReactPortal | React__default.ReactElement<unknown, string | React__default.JSXElementConstructor<any>> | Iterable<React__default.ReactNode> | null | undefined> | null | undefined;
|
|
8083
8083
|
declare namespace DataList {
|
|
8084
8084
|
var displayName: string;
|
|
8085
8085
|
}
|
|
@@ -7925,7 +7925,7 @@ interface DataGridProps extends DataDndProps {
|
|
|
7925
7925
|
*/
|
|
7926
7926
|
look?: "dense" | "spacious" | "striped" | "borderless" | "card-rows";
|
|
7927
7927
|
}
|
|
7928
|
-
declare function DataGrid({ entity, fields, columns, itemActions, maxInlineActions, scrollX, cols, gap, minCardWidth, className, isLoading, error, imageField, selectable, selectionEvent, infiniteScroll, loadMoreEvent, hasMore, children, pageSize, renderItem: schemaRenderItem, dragGroup, accepts, sortable, dropEvent, reorderEvent, positionEvent, dndItemIdField, dndRoot, look, }: DataGridProps): string | number | bigint | boolean | Iterable<React__default.ReactNode> | Promise<string | number | bigint | boolean | React__default.ReactPortal | React__default.ReactElement<unknown, string | React__default.JSXElementConstructor<any>> | Iterable<React__default.ReactNode> | null | undefined> |
|
|
7928
|
+
declare function DataGrid({ entity, fields, columns, itemActions, maxInlineActions, scrollX, cols, gap, minCardWidth, className, isLoading, error, imageField, selectable, selectionEvent, infiniteScroll, loadMoreEvent, hasMore, children, pageSize, renderItem: schemaRenderItem, dragGroup, accepts, sortable, dropEvent, reorderEvent, positionEvent, dndItemIdField, dndRoot, look, }: DataGridProps): string | number | bigint | boolean | React__default.JSX.Element | Iterable<React__default.ReactNode> | Promise<string | number | bigint | boolean | React__default.ReactPortal | React__default.ReactElement<unknown, string | React__default.JSXElementConstructor<any>> | Iterable<React__default.ReactNode> | null | undefined> | null | undefined;
|
|
7929
7929
|
declare namespace DataGrid {
|
|
7930
7930
|
var displayName: string;
|
|
7931
7931
|
}
|
|
@@ -8079,7 +8079,7 @@ interface DataListProps extends DataDndProps {
|
|
|
8079
8079
|
*/
|
|
8080
8080
|
look?: "dense" | "spacious" | "striped" | "borderless" | "card-rows";
|
|
8081
8081
|
}
|
|
8082
|
-
declare function DataList({ entity, fields, columns, itemActions, maxInlineActions, itemClickEvent, gap, variant, groupBy, senderField, senderLabelField, currentUser, emptyMessage, className, isLoading, error, reorderable: _reorderable, reorderEvent: _reorderEvent, swipeLeftEvent: _swipeLeftEvent, swipeLeftActions: _swipeLeftActions, swipeRightEvent: _swipeRightEvent, swipeRightActions: _swipeRightActions, longPressEvent: _longPressEvent, infiniteScroll, loadMoreEvent, hasMore, children, pageSize, sortBy, sortDirection, renderItem: schemaRenderItem, dragGroup, accepts, sortable: sortableProp, dropEvent, reorderEvent: dndReorderEvent, positionEvent, dndItemIdField, dndRoot, look, }: DataListProps): string | number | bigint | boolean | Iterable<React__default.ReactNode> | Promise<string | number | bigint | boolean | React__default.ReactPortal | React__default.ReactElement<unknown, string | React__default.JSXElementConstructor<any>> | Iterable<React__default.ReactNode> | null | undefined> |
|
|
8082
|
+
declare function DataList({ entity, fields, columns, itemActions, maxInlineActions, itemClickEvent, gap, variant, groupBy, senderField, senderLabelField, currentUser, emptyMessage, className, isLoading, error, reorderable: _reorderable, reorderEvent: _reorderEvent, swipeLeftEvent: _swipeLeftEvent, swipeLeftActions: _swipeLeftActions, swipeRightEvent: _swipeRightEvent, swipeRightActions: _swipeRightActions, longPressEvent: _longPressEvent, infiniteScroll, loadMoreEvent, hasMore, children, pageSize, sortBy, sortDirection, renderItem: schemaRenderItem, dragGroup, accepts, sortable: sortableProp, dropEvent, reorderEvent: dndReorderEvent, positionEvent, dndItemIdField, dndRoot, look, }: DataListProps): string | number | bigint | boolean | React__default.JSX.Element | Iterable<React__default.ReactNode> | Promise<string | number | bigint | boolean | React__default.ReactPortal | React__default.ReactElement<unknown, string | React__default.JSXElementConstructor<any>> | Iterable<React__default.ReactNode> | null | undefined> | null | undefined;
|
|
8083
8083
|
declare namespace DataList {
|
|
8084
8084
|
var displayName: string;
|
|
8085
8085
|
}
|
package/dist/providers/index.cjs
CHANGED
|
@@ -53946,13 +53946,19 @@ function deriveEventsUrl(serverUrl) {
|
|
|
53946
53946
|
const apiRoot = trimmed.replace(/\/[^/]*$/, "");
|
|
53947
53947
|
return `${apiRoot}/events`;
|
|
53948
53948
|
}
|
|
53949
|
-
function
|
|
53949
|
+
async function authHeaders(getAccessToken) {
|
|
53950
|
+
const headers = { "Content-Type": "application/json" };
|
|
53951
|
+
const token = getAccessToken ? await getAccessToken() : void 0;
|
|
53952
|
+
if (token) headers.Authorization = `Bearer ${token}`;
|
|
53953
|
+
return headers;
|
|
53954
|
+
}
|
|
53955
|
+
function createHttpTransport(serverUrl, getAccessToken) {
|
|
53950
53956
|
return {
|
|
53951
53957
|
register: async (schema) => {
|
|
53952
53958
|
try {
|
|
53953
53959
|
const res = await fetch(`${serverUrl}/register`, {
|
|
53954
53960
|
method: "POST",
|
|
53955
|
-
headers:
|
|
53961
|
+
headers: await authHeaders(getAccessToken),
|
|
53956
53962
|
body: JSON.stringify({ schema })
|
|
53957
53963
|
});
|
|
53958
53964
|
const result = await res.json();
|
|
@@ -53968,7 +53974,7 @@ function createHttpTransport(serverUrl) {
|
|
|
53968
53974
|
},
|
|
53969
53975
|
unregister: async () => {
|
|
53970
53976
|
try {
|
|
53971
|
-
await fetch(`${serverUrl}/unregister`, { method: "DELETE" });
|
|
53977
|
+
await fetch(`${serverUrl}/unregister`, { method: "DELETE", headers: await authHeaders(getAccessToken) });
|
|
53972
53978
|
} catch {
|
|
53973
53979
|
}
|
|
53974
53980
|
},
|
|
@@ -53976,7 +53982,7 @@ function createHttpTransport(serverUrl) {
|
|
|
53976
53982
|
const body = { event, payload, clientId, tick, sourceTrait };
|
|
53977
53983
|
const res = await fetch(`${serverUrl}/${orbitalName}/events`, {
|
|
53978
53984
|
method: "POST",
|
|
53979
|
-
headers:
|
|
53985
|
+
headers: await authHeaders(getAccessToken),
|
|
53980
53986
|
body: JSON.stringify(body)
|
|
53981
53987
|
});
|
|
53982
53988
|
return res.json();
|
|
@@ -53996,6 +54002,7 @@ function ServerBridgeProvider({
|
|
|
53996
54002
|
schema,
|
|
53997
54003
|
serverUrl,
|
|
53998
54004
|
transport: customTransport,
|
|
54005
|
+
getAccessToken,
|
|
53999
54006
|
children
|
|
54000
54007
|
}) {
|
|
54001
54008
|
if (!serverUrl && !customTransport) {
|
|
@@ -54007,8 +54014,8 @@ function ServerBridgeProvider({
|
|
|
54007
54014
|
const eventBus = useEventBus();
|
|
54008
54015
|
const [connected, setConnected] = React89.useState(false);
|
|
54009
54016
|
const transport = React89.useMemo(
|
|
54010
|
-
() => customTransport ?? createHttpTransport(serverUrl),
|
|
54011
|
-
[serverUrl, customTransport]
|
|
54017
|
+
() => customTransport ?? createHttpTransport(serverUrl, getAccessToken),
|
|
54018
|
+
[serverUrl, customTransport, getAccessToken]
|
|
54012
54019
|
);
|
|
54013
54020
|
const registerSchema = React89.useCallback(
|
|
54014
54021
|
async () => transport.register(schema),
|
|
@@ -54145,16 +54152,28 @@ function ServerBridgeProvider({
|
|
|
54145
54152
|
React89.useEffect(() => {
|
|
54146
54153
|
if (!serverUrl) return;
|
|
54147
54154
|
if (typeof EventSource === "undefined") return;
|
|
54148
|
-
|
|
54149
|
-
|
|
54155
|
+
let release;
|
|
54156
|
+
let cancelled = false;
|
|
54157
|
+
const subscribe = (parsed) => {
|
|
54150
54158
|
serverBridgeLog.debug("push:received", {
|
|
54151
54159
|
event: parsed.event,
|
|
54152
54160
|
sourceOrbital: parsed.source?.orbital,
|
|
54153
54161
|
sourceTrait: parsed.source?.trait
|
|
54154
54162
|
});
|
|
54155
54163
|
reEmitServerEvent(eventBus, parsed, "push");
|
|
54156
|
-
}
|
|
54157
|
-
|
|
54164
|
+
};
|
|
54165
|
+
void (async () => {
|
|
54166
|
+
const token = getAccessToken ? await getAccessToken() : void 0;
|
|
54167
|
+
if (cancelled) return;
|
|
54168
|
+
const params = new URLSearchParams({ clientId: getTabClientId() });
|
|
54169
|
+
if (token) params.set("access_token", token);
|
|
54170
|
+
release = acquirePushChannel(`${deriveEventsUrl(serverUrl)}?${params.toString()}`, subscribe);
|
|
54171
|
+
})();
|
|
54172
|
+
return () => {
|
|
54173
|
+
cancelled = true;
|
|
54174
|
+
release?.();
|
|
54175
|
+
};
|
|
54176
|
+
}, [serverUrl, eventBus, getAccessToken]);
|
|
54158
54177
|
return /* @__PURE__ */ jsxRuntime.jsx(ServerBridgeContext.Provider, { value: { connected, sendEvent }, children });
|
|
54159
54178
|
}
|
|
54160
54179
|
var log13 = logger.createLogger("almadar:ui:trait-provider");
|
|
@@ -4,7 +4,7 @@ export { ANONYMOUS_USER } from '@almadar/core';
|
|
|
4
4
|
import { U as UIThemeDefinition, j as UserData } from '../UserContext-g_LcDiGN.cjs';
|
|
5
5
|
export { a as CurrentPagePathContext, b as CurrentPagePathProvider, c as CurrentPagePathProviderProps, d as DesignThemeProvider, O as OrbitalThemeProvider, e as OrbitalThemeProviderProps, h as UserContext, i as UserContextValue, k as UserProvider, l as UserProviderProps, u as useCurrentPagePath, m as useDesignTheme, n as useHasPermission, o as useHasRole, q as useUser, r as useUserForEvaluation } from '../UserContext-g_LcDiGN.cjs';
|
|
6
6
|
import { E as EventBusContextType } from '../event-bus-types-Bl78kokd.cjs';
|
|
7
|
-
export { E as EntityBindingContext, a as EntityBindingSource, b as EntitySchemaContextValue, c as EntitySchemaProvider, d as EntitySchemaProviderProps, S as SendEventResult, e as ServerBridgeContextValue, f as ServerBridgeProvider, g as ServerBridgeProviderProps, h as ServerBridgeTransport, i as ServerClientEffect, j as ServerResponseMeta, T as TraitContext, k as TraitContextValue, l as TraitInstance, m as TraitProvider, n as TraitProviderProps, u as useEntityBindingSnapshot, o as useEntitySchema, p as useEntitySchemaOptional, q as useServerBridge, r as useTrait, s as useTraitContext } from '../EntityBindingContext-
|
|
7
|
+
export { A as AccessTokenProvider, E as EntityBindingContext, a as EntityBindingSource, b as EntitySchemaContextValue, c as EntitySchemaProvider, d as EntitySchemaProviderProps, S as SendEventResult, e as ServerBridgeContextValue, f as ServerBridgeProvider, g as ServerBridgeProviderProps, h as ServerBridgeTransport, i as ServerClientEffect, j as ServerResponseMeta, T as TraitContext, k as TraitContextValue, l as TraitInstance, m as TraitProvider, n as TraitProviderProps, u as useEntityBindingSnapshot, o as useEntitySchema, p as useEntitySchemaOptional, q as useServerBridge, r as useTrait, s as useTraitContext } from '../EntityBindingContext-Y4zXyNJZ.cjs';
|
|
8
8
|
import { j as UseOfflineExecutorResult, U as UseOfflineExecutorOptions } from '../offline-executor-QUdKOj7f.cjs';
|
|
9
9
|
export { c as NavigationContextValue, d as NavigationProvider, e as NavigationProviderProps, f as NavigationState, k as comparePathSpecificity, m as extractRouteParams, n as findPageByName, o as findPageByPath, p as getAllPages, q as getDefaultPage, r as matchPath, s as matchPathAmong, t as pathMatches, u as useActivePage, v as useInitPayload, w as useNavigateTo, x as useNavigation, y as useNavigationId, z as useNavigationState } from '../offline-executor-QUdKOj7f.cjs';
|
|
10
10
|
export { G as GameAudioContext, a as GameAudioContextValue, b as GameAudioProvider, c as GameAudioProviderProps, u as useGameAudioContext, d as useGameAudioContextOptional } from '../GameAudioProvider-Dk_Y3LN3.cjs';
|
|
@@ -4,7 +4,7 @@ export { ANONYMOUS_USER } from '@almadar/core';
|
|
|
4
4
|
import { U as UIThemeDefinition, j as UserData } from '../UserContext-g_LcDiGN.js';
|
|
5
5
|
export { a as CurrentPagePathContext, b as CurrentPagePathProvider, c as CurrentPagePathProviderProps, d as DesignThemeProvider, O as OrbitalThemeProvider, e as OrbitalThemeProviderProps, h as UserContext, i as UserContextValue, k as UserProvider, l as UserProviderProps, u as useCurrentPagePath, m as useDesignTheme, n as useHasPermission, o as useHasRole, q as useUser, r as useUserForEvaluation } from '../UserContext-g_LcDiGN.js';
|
|
6
6
|
import { E as EventBusContextType } from '../event-bus-types-Bl78kokd.js';
|
|
7
|
-
export { E as EntityBindingContext, a as EntityBindingSource, b as EntitySchemaContextValue, c as EntitySchemaProvider, d as EntitySchemaProviderProps, S as SendEventResult, e as ServerBridgeContextValue, f as ServerBridgeProvider, g as ServerBridgeProviderProps, h as ServerBridgeTransport, i as ServerClientEffect, j as ServerResponseMeta, T as TraitContext, k as TraitContextValue, l as TraitInstance, m as TraitProvider, n as TraitProviderProps, u as useEntityBindingSnapshot, o as useEntitySchema, p as useEntitySchemaOptional, q as useServerBridge, r as useTrait, s as useTraitContext } from '../EntityBindingContext-
|
|
7
|
+
export { A as AccessTokenProvider, E as EntityBindingContext, a as EntityBindingSource, b as EntitySchemaContextValue, c as EntitySchemaProvider, d as EntitySchemaProviderProps, S as SendEventResult, e as ServerBridgeContextValue, f as ServerBridgeProvider, g as ServerBridgeProviderProps, h as ServerBridgeTransport, i as ServerClientEffect, j as ServerResponseMeta, T as TraitContext, k as TraitContextValue, l as TraitInstance, m as TraitProvider, n as TraitProviderProps, u as useEntityBindingSnapshot, o as useEntitySchema, p as useEntitySchemaOptional, q as useServerBridge, r as useTrait, s as useTraitContext } from '../EntityBindingContext-Y4zXyNJZ.js';
|
|
8
8
|
import { j as UseOfflineExecutorResult, U as UseOfflineExecutorOptions } from '../offline-executor-QUdKOj7f.js';
|
|
9
9
|
export { c as NavigationContextValue, d as NavigationProvider, e as NavigationProviderProps, f as NavigationState, k as comparePathSpecificity, m as extractRouteParams, n as findPageByName, o as findPageByPath, p as getAllPages, q as getDefaultPage, r as matchPath, s as matchPathAmong, t as pathMatches, u as useActivePage, v as useInitPayload, w as useNavigateTo, x as useNavigation, y as useNavigationId, z as useNavigationState } from '../offline-executor-QUdKOj7f.js';
|
|
10
10
|
export { G as GameAudioContext, a as GameAudioContextValue, b as GameAudioProvider, c as GameAudioProviderProps, u as useGameAudioContext, d as useGameAudioContextOptional } from '../GameAudioProvider-Ctceau1s.js';
|
package/dist/providers/index.js
CHANGED
|
@@ -53872,13 +53872,19 @@ function deriveEventsUrl(serverUrl) {
|
|
|
53872
53872
|
const apiRoot = trimmed.replace(/\/[^/]*$/, "");
|
|
53873
53873
|
return `${apiRoot}/events`;
|
|
53874
53874
|
}
|
|
53875
|
-
function
|
|
53875
|
+
async function authHeaders(getAccessToken) {
|
|
53876
|
+
const headers = { "Content-Type": "application/json" };
|
|
53877
|
+
const token = getAccessToken ? await getAccessToken() : void 0;
|
|
53878
|
+
if (token) headers.Authorization = `Bearer ${token}`;
|
|
53879
|
+
return headers;
|
|
53880
|
+
}
|
|
53881
|
+
function createHttpTransport(serverUrl, getAccessToken) {
|
|
53876
53882
|
return {
|
|
53877
53883
|
register: async (schema) => {
|
|
53878
53884
|
try {
|
|
53879
53885
|
const res = await fetch(`${serverUrl}/register`, {
|
|
53880
53886
|
method: "POST",
|
|
53881
|
-
headers:
|
|
53887
|
+
headers: await authHeaders(getAccessToken),
|
|
53882
53888
|
body: JSON.stringify({ schema })
|
|
53883
53889
|
});
|
|
53884
53890
|
const result = await res.json();
|
|
@@ -53894,7 +53900,7 @@ function createHttpTransport(serverUrl) {
|
|
|
53894
53900
|
},
|
|
53895
53901
|
unregister: async () => {
|
|
53896
53902
|
try {
|
|
53897
|
-
await fetch(`${serverUrl}/unregister`, { method: "DELETE" });
|
|
53903
|
+
await fetch(`${serverUrl}/unregister`, { method: "DELETE", headers: await authHeaders(getAccessToken) });
|
|
53898
53904
|
} catch {
|
|
53899
53905
|
}
|
|
53900
53906
|
},
|
|
@@ -53902,7 +53908,7 @@ function createHttpTransport(serverUrl) {
|
|
|
53902
53908
|
const body = { event, payload, clientId, tick, sourceTrait };
|
|
53903
53909
|
const res = await fetch(`${serverUrl}/${orbitalName}/events`, {
|
|
53904
53910
|
method: "POST",
|
|
53905
|
-
headers:
|
|
53911
|
+
headers: await authHeaders(getAccessToken),
|
|
53906
53912
|
body: JSON.stringify(body)
|
|
53907
53913
|
});
|
|
53908
53914
|
return res.json();
|
|
@@ -53922,6 +53928,7 @@ function ServerBridgeProvider({
|
|
|
53922
53928
|
schema,
|
|
53923
53929
|
serverUrl,
|
|
53924
53930
|
transport: customTransport,
|
|
53931
|
+
getAccessToken,
|
|
53925
53932
|
children
|
|
53926
53933
|
}) {
|
|
53927
53934
|
if (!serverUrl && !customTransport) {
|
|
@@ -53933,8 +53940,8 @@ function ServerBridgeProvider({
|
|
|
53933
53940
|
const eventBus = useEventBus();
|
|
53934
53941
|
const [connected, setConnected] = useState(false);
|
|
53935
53942
|
const transport = useMemo(
|
|
53936
|
-
() => customTransport ?? createHttpTransport(serverUrl),
|
|
53937
|
-
[serverUrl, customTransport]
|
|
53943
|
+
() => customTransport ?? createHttpTransport(serverUrl, getAccessToken),
|
|
53944
|
+
[serverUrl, customTransport, getAccessToken]
|
|
53938
53945
|
);
|
|
53939
53946
|
const registerSchema = useCallback(
|
|
53940
53947
|
async () => transport.register(schema),
|
|
@@ -54071,16 +54078,28 @@ function ServerBridgeProvider({
|
|
|
54071
54078
|
useEffect(() => {
|
|
54072
54079
|
if (!serverUrl) return;
|
|
54073
54080
|
if (typeof EventSource === "undefined") return;
|
|
54074
|
-
|
|
54075
|
-
|
|
54081
|
+
let release;
|
|
54082
|
+
let cancelled = false;
|
|
54083
|
+
const subscribe = (parsed) => {
|
|
54076
54084
|
serverBridgeLog.debug("push:received", {
|
|
54077
54085
|
event: parsed.event,
|
|
54078
54086
|
sourceOrbital: parsed.source?.orbital,
|
|
54079
54087
|
sourceTrait: parsed.source?.trait
|
|
54080
54088
|
});
|
|
54081
54089
|
reEmitServerEvent(eventBus, parsed, "push");
|
|
54082
|
-
}
|
|
54083
|
-
|
|
54090
|
+
};
|
|
54091
|
+
void (async () => {
|
|
54092
|
+
const token = getAccessToken ? await getAccessToken() : void 0;
|
|
54093
|
+
if (cancelled) return;
|
|
54094
|
+
const params = new URLSearchParams({ clientId: getTabClientId() });
|
|
54095
|
+
if (token) params.set("access_token", token);
|
|
54096
|
+
release = acquirePushChannel(`${deriveEventsUrl(serverUrl)}?${params.toString()}`, subscribe);
|
|
54097
|
+
})();
|
|
54098
|
+
return () => {
|
|
54099
|
+
cancelled = true;
|
|
54100
|
+
release?.();
|
|
54101
|
+
};
|
|
54102
|
+
}, [serverUrl, eventBus, getAccessToken]);
|
|
54084
54103
|
return /* @__PURE__ */ jsx(ServerBridgeContext.Provider, { value: { connected, sendEvent }, children });
|
|
54085
54104
|
}
|
|
54086
54105
|
var log13 = createLogger("almadar:ui:trait-provider");
|
package/dist/runtime/index.cjs
CHANGED
|
@@ -54147,7 +54147,7 @@ function TraitInitializer({ traits: traits2, routeParams, orbitalNames, onNaviga
|
|
|
54147
54147
|
}, [bridge.connected, orbitalNames, bridge.sendEvent, uiSlots, onNavigate, onNavigateBack, embeddedTraits, activeTraitNames, withActiveTraits, routeParams]);
|
|
54148
54148
|
return /* @__PURE__ */ jsxRuntime.jsx(providers.EntityBindingContext.Provider, { value: entityBindingSource, children });
|
|
54149
54149
|
}
|
|
54150
|
-
function SchemaRunner({ schema, serverUrl, transport, mockData, pageName, routeParams, onNavigate, onNavigateBack, onLocalFallback, persistence }) {
|
|
54150
|
+
function SchemaRunner({ schema, serverUrl, transport, getAccessToken, mockData, pageName, routeParams, onNavigate, onNavigateBack, onLocalFallback, persistence }) {
|
|
54151
54151
|
const { traits: traits2, allEntities, allTraits, ir } = useResolvedSchema(schema, pageName);
|
|
54152
54152
|
const allPageTraits = React87.useMemo(() => {
|
|
54153
54153
|
let base;
|
|
@@ -54304,7 +54304,7 @@ function SchemaRunner({ schema, serverUrl, transport, mockData, pageName, routeP
|
|
|
54304
54304
|
}
|
|
54305
54305
|
) });
|
|
54306
54306
|
if (serverUrl || transport) {
|
|
54307
|
-
return /* @__PURE__ */ jsxRuntime.jsx(providers.ServerBridgeProvider, { schema, serverUrl, transport, children: inner });
|
|
54307
|
+
return /* @__PURE__ */ jsxRuntime.jsx(providers.ServerBridgeProvider, { schema, serverUrl, transport, getAccessToken, children: inner });
|
|
54308
54308
|
}
|
|
54309
54309
|
return inner;
|
|
54310
54310
|
}
|
|
@@ -54316,6 +54316,7 @@ function OrbPreview({
|
|
|
54316
54316
|
className,
|
|
54317
54317
|
serverUrl,
|
|
54318
54318
|
transport,
|
|
54319
|
+
getAccessToken,
|
|
54319
54320
|
initialPagePath,
|
|
54320
54321
|
isolated = false
|
|
54321
54322
|
}) {
|
|
@@ -54496,6 +54497,7 @@ function OrbPreview({
|
|
|
54496
54497
|
schema: parseResult.schema,
|
|
54497
54498
|
serverUrl,
|
|
54498
54499
|
transport,
|
|
54500
|
+
getAccessToken,
|
|
54499
54501
|
mockData: effectiveMockData,
|
|
54500
54502
|
pageName: currentPage,
|
|
54501
54503
|
routeParams,
|
package/dist/runtime/index.d.cts
CHANGED
|
@@ -5,8 +5,8 @@ import * as _almadar_runtime from '@almadar/runtime';
|
|
|
5
5
|
import { TraitState, EffectHandlers } from '@almadar/runtime';
|
|
6
6
|
import { K as KeyCaptureTable } from '../useKeyboardRouter-CVn8lfiX.cjs';
|
|
7
7
|
import { c as useUISlots } from '../UISlotContext-BlRDbHDy.cjs';
|
|
8
|
-
import { a as EntityBindingSource, h as ServerBridgeTransport } from '../EntityBindingContext-
|
|
9
|
-
export { b as EntitySchemaContextValue, c as EntitySchemaProvider, d as EntitySchemaProviderProps, e as ServerBridgeContextValue, f as ServerBridgeProvider, i as ServerClientEffect, T as TraitContext, k as TraitContextValue, l as TraitInstance, m as TraitProvider, n as TraitProviderProps, o as useEntitySchema, p as useEntitySchemaOptional, q as useServerBridge, r as useTrait, s as useTraitContext } from '../EntityBindingContext-
|
|
8
|
+
import { a as EntityBindingSource, h as ServerBridgeTransport, A as AccessTokenProvider } from '../EntityBindingContext-Y4zXyNJZ.cjs';
|
|
9
|
+
export { b as EntitySchemaContextValue, c as EntitySchemaProvider, d as EntitySchemaProviderProps, e as ServerBridgeContextValue, f as ServerBridgeProvider, i as ServerClientEffect, T as TraitContext, k as TraitContextValue, l as TraitInstance, m as TraitProvider, n as TraitProviderProps, o as useEntitySchema, p as useEntitySchemaOptional, q as useServerBridge, r as useTrait, s as useTraitContext } from '../EntityBindingContext-Y4zXyNJZ.cjs';
|
|
10
10
|
export { PERF_NAMESPACE, PerfEntry, PreparedPreviewSchema, adjustSchemaForMockData, buildMockData, clearPerf, perfEnd, perfStart, perfTime, prepareSchemaForPreview, wrapCallbackForEvent } from '@almadar/runtime/ui';
|
|
11
11
|
import React__default, { ReactNode } from 'react';
|
|
12
12
|
export { S as SlotHostManifest, a as SlotHostRegion, b as assertUniqueSlotsPerHost } from '../slot-host-Czc2JAxo.cjs';
|
|
@@ -246,6 +246,8 @@ interface OrbPreviewProps {
|
|
|
246
246
|
* `OrbitalServerRuntime.processOrbitalEvent` directly without HTTP.
|
|
247
247
|
*/
|
|
248
248
|
transport?: ServerBridgeTransport;
|
|
249
|
+
/** Bearer token for `serverUrl` requests (see `ServerBridgeProviderProps.getAccessToken`). */
|
|
250
|
+
getAccessToken?: AccessTokenProvider;
|
|
249
251
|
/**
|
|
250
252
|
* Initial page path to render (e.g. `/deals`). Resolves against the
|
|
251
253
|
* schema's `pages[]` to seed `currentPage` so the right orbital's traits
|
|
@@ -275,7 +277,7 @@ interface OrbPreviewProps {
|
|
|
275
277
|
* <OrbPreview schema={schema} serverUrl="/api/orbitals" />
|
|
276
278
|
* ```
|
|
277
279
|
*/
|
|
278
|
-
declare function OrbPreview({ schema, mockData, autoMock, height, className, serverUrl, transport, initialPagePath, isolated, }: OrbPreviewProps): React__default.ReactElement;
|
|
280
|
+
declare function OrbPreview({ schema, mockData, autoMock, height, className, serverUrl, transport, getAccessToken, initialPagePath, isolated, }: OrbPreviewProps): React__default.ReactElement;
|
|
279
281
|
declare namespace OrbPreview {
|
|
280
282
|
var displayName: string;
|
|
281
283
|
}
|
|
@@ -418,4 +420,4 @@ declare function useOrbitalPluginHost(): {
|
|
|
418
420
|
*/
|
|
419
421
|
declare function OrbitalPluginHost({ plugins, mode, transport, deny, navigate, notify, onTransition, children, }: OrbitalPluginHostProps): React__default.ReactElement;
|
|
420
422
|
|
|
421
|
-
export { BrowserPlayground, type BrowserPlaygroundProps, type ClientEventBus, type CreateClientEffectHandlersOptions, OrbPreview, type OrbPreviewProps, OrbitalPluginHost, type OrbitalPluginHostProps, type PluginHostDenyVerb, type PluginHostInbound, type PluginHostPlugin, type ResolvedSchemaResult, ServerBridgeTransport, type SlotPatternEntry, type SlotSetter, type SlotSource, type TraitStateMachineResult, type UseTraitStateMachineOptions, clearSchemaCache, createClientEffectHandlers, useDeclaredCaptureTable, useOrbitalPluginHost, useResolvedSchema, useTraitStateMachine };
|
|
423
|
+
export { AccessTokenProvider, BrowserPlayground, type BrowserPlaygroundProps, type ClientEventBus, type CreateClientEffectHandlersOptions, OrbPreview, type OrbPreviewProps, OrbitalPluginHost, type OrbitalPluginHostProps, type PluginHostDenyVerb, type PluginHostInbound, type PluginHostPlugin, type ResolvedSchemaResult, ServerBridgeTransport, type SlotPatternEntry, type SlotSetter, type SlotSource, type TraitStateMachineResult, type UseTraitStateMachineOptions, clearSchemaCache, createClientEffectHandlers, useDeclaredCaptureTable, useOrbitalPluginHost, useResolvedSchema, useTraitStateMachine };
|
package/dist/runtime/index.d.ts
CHANGED
|
@@ -5,8 +5,8 @@ import * as _almadar_runtime from '@almadar/runtime';
|
|
|
5
5
|
import { TraitState, EffectHandlers } from '@almadar/runtime';
|
|
6
6
|
import { K as KeyCaptureTable } from '../useKeyboardRouter-B1pIi9jo.js';
|
|
7
7
|
import { c as useUISlots } from '../UISlotContext-CB89mv7N.js';
|
|
8
|
-
import { a as EntityBindingSource, h as ServerBridgeTransport } from '../EntityBindingContext-
|
|
9
|
-
export { b as EntitySchemaContextValue, c as EntitySchemaProvider, d as EntitySchemaProviderProps, e as ServerBridgeContextValue, f as ServerBridgeProvider, i as ServerClientEffect, T as TraitContext, k as TraitContextValue, l as TraitInstance, m as TraitProvider, n as TraitProviderProps, o as useEntitySchema, p as useEntitySchemaOptional, q as useServerBridge, r as useTrait, s as useTraitContext } from '../EntityBindingContext-
|
|
8
|
+
import { a as EntityBindingSource, h as ServerBridgeTransport, A as AccessTokenProvider } from '../EntityBindingContext-Y4zXyNJZ.js';
|
|
9
|
+
export { b as EntitySchemaContextValue, c as EntitySchemaProvider, d as EntitySchemaProviderProps, e as ServerBridgeContextValue, f as ServerBridgeProvider, i as ServerClientEffect, T as TraitContext, k as TraitContextValue, l as TraitInstance, m as TraitProvider, n as TraitProviderProps, o as useEntitySchema, p as useEntitySchemaOptional, q as useServerBridge, r as useTrait, s as useTraitContext } from '../EntityBindingContext-Y4zXyNJZ.js';
|
|
10
10
|
export { PERF_NAMESPACE, PerfEntry, PreparedPreviewSchema, adjustSchemaForMockData, buildMockData, clearPerf, perfEnd, perfStart, perfTime, prepareSchemaForPreview, wrapCallbackForEvent } from '@almadar/runtime/ui';
|
|
11
11
|
import React__default, { ReactNode } from 'react';
|
|
12
12
|
export { S as SlotHostManifest, a as SlotHostRegion, b as assertUniqueSlotsPerHost } from '../slot-host-Czc2JAxo.js';
|
|
@@ -246,6 +246,8 @@ interface OrbPreviewProps {
|
|
|
246
246
|
* `OrbitalServerRuntime.processOrbitalEvent` directly without HTTP.
|
|
247
247
|
*/
|
|
248
248
|
transport?: ServerBridgeTransport;
|
|
249
|
+
/** Bearer token for `serverUrl` requests (see `ServerBridgeProviderProps.getAccessToken`). */
|
|
250
|
+
getAccessToken?: AccessTokenProvider;
|
|
249
251
|
/**
|
|
250
252
|
* Initial page path to render (e.g. `/deals`). Resolves against the
|
|
251
253
|
* schema's `pages[]` to seed `currentPage` so the right orbital's traits
|
|
@@ -275,7 +277,7 @@ interface OrbPreviewProps {
|
|
|
275
277
|
* <OrbPreview schema={schema} serverUrl="/api/orbitals" />
|
|
276
278
|
* ```
|
|
277
279
|
*/
|
|
278
|
-
declare function OrbPreview({ schema, mockData, autoMock, height, className, serverUrl, transport, initialPagePath, isolated, }: OrbPreviewProps): React__default.ReactElement;
|
|
280
|
+
declare function OrbPreview({ schema, mockData, autoMock, height, className, serverUrl, transport, getAccessToken, initialPagePath, isolated, }: OrbPreviewProps): React__default.ReactElement;
|
|
279
281
|
declare namespace OrbPreview {
|
|
280
282
|
var displayName: string;
|
|
281
283
|
}
|
|
@@ -418,4 +420,4 @@ declare function useOrbitalPluginHost(): {
|
|
|
418
420
|
*/
|
|
419
421
|
declare function OrbitalPluginHost({ plugins, mode, transport, deny, navigate, notify, onTransition, children, }: OrbitalPluginHostProps): React__default.ReactElement;
|
|
420
422
|
|
|
421
|
-
export { BrowserPlayground, type BrowserPlaygroundProps, type ClientEventBus, type CreateClientEffectHandlersOptions, OrbPreview, type OrbPreviewProps, OrbitalPluginHost, type OrbitalPluginHostProps, type PluginHostDenyVerb, type PluginHostInbound, type PluginHostPlugin, type ResolvedSchemaResult, ServerBridgeTransport, type SlotPatternEntry, type SlotSetter, type SlotSource, type TraitStateMachineResult, type UseTraitStateMachineOptions, clearSchemaCache, createClientEffectHandlers, useDeclaredCaptureTable, useOrbitalPluginHost, useResolvedSchema, useTraitStateMachine };
|
|
423
|
+
export { AccessTokenProvider, BrowserPlayground, type BrowserPlaygroundProps, type ClientEventBus, type CreateClientEffectHandlersOptions, OrbPreview, type OrbPreviewProps, OrbitalPluginHost, type OrbitalPluginHostProps, type PluginHostDenyVerb, type PluginHostInbound, type PluginHostPlugin, type ResolvedSchemaResult, ServerBridgeTransport, type SlotPatternEntry, type SlotSetter, type SlotSource, type TraitStateMachineResult, type UseTraitStateMachineOptions, clearSchemaCache, createClientEffectHandlers, useDeclaredCaptureTable, useOrbitalPluginHost, useResolvedSchema, useTraitStateMachine };
|
package/dist/runtime/index.js
CHANGED
|
@@ -54073,7 +54073,7 @@ function TraitInitializer({ traits: traits2, routeParams, orbitalNames, onNaviga
|
|
|
54073
54073
|
}, [bridge.connected, orbitalNames, bridge.sendEvent, uiSlots, onNavigate, onNavigateBack, embeddedTraits, activeTraitNames, withActiveTraits, routeParams]);
|
|
54074
54074
|
return /* @__PURE__ */ jsx(EntityBindingContext.Provider, { value: entityBindingSource, children });
|
|
54075
54075
|
}
|
|
54076
|
-
function SchemaRunner({ schema, serverUrl, transport, mockData, pageName, routeParams, onNavigate, onNavigateBack, onLocalFallback, persistence }) {
|
|
54076
|
+
function SchemaRunner({ schema, serverUrl, transport, getAccessToken, mockData, pageName, routeParams, onNavigate, onNavigateBack, onLocalFallback, persistence }) {
|
|
54077
54077
|
const { traits: traits2, allEntities, allTraits, ir } = useResolvedSchema(schema, pageName);
|
|
54078
54078
|
const allPageTraits = useMemo(() => {
|
|
54079
54079
|
let base;
|
|
@@ -54230,7 +54230,7 @@ function SchemaRunner({ schema, serverUrl, transport, mockData, pageName, routeP
|
|
|
54230
54230
|
}
|
|
54231
54231
|
) });
|
|
54232
54232
|
if (serverUrl || transport) {
|
|
54233
|
-
return /* @__PURE__ */ jsx(ServerBridgeProvider, { schema, serverUrl, transport, children: inner });
|
|
54233
|
+
return /* @__PURE__ */ jsx(ServerBridgeProvider, { schema, serverUrl, transport, getAccessToken, children: inner });
|
|
54234
54234
|
}
|
|
54235
54235
|
return inner;
|
|
54236
54236
|
}
|
|
@@ -54242,6 +54242,7 @@ function OrbPreview({
|
|
|
54242
54242
|
className,
|
|
54243
54243
|
serverUrl,
|
|
54244
54244
|
transport,
|
|
54245
|
+
getAccessToken,
|
|
54245
54246
|
initialPagePath,
|
|
54246
54247
|
isolated = false
|
|
54247
54248
|
}) {
|
|
@@ -54422,6 +54423,7 @@ function OrbPreview({
|
|
|
54422
54423
|
schema: parseResult.schema,
|
|
54423
54424
|
serverUrl,
|
|
54424
54425
|
transport,
|
|
54426
|
+
getAccessToken,
|
|
54425
54427
|
mockData: effectiveMockData,
|
|
54426
54428
|
pageName: currentPage,
|
|
54427
54429
|
routeParams,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@almadar/ui",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.10.0",
|
|
4
4
|
"description": "React UI components, hooks, and providers for Almadar",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": [
|
|
@@ -118,11 +118,11 @@
|
|
|
118
118
|
"access": "public"
|
|
119
119
|
},
|
|
120
120
|
"dependencies": {
|
|
121
|
-
"@almadar/core": "^10.
|
|
121
|
+
"@almadar/core": "^10.86.0",
|
|
122
122
|
"@almadar/evaluator": "^2.44.0",
|
|
123
123
|
"@almadar/logger": "^1.12.0",
|
|
124
124
|
"@almadar/runtime": "^6.71.0",
|
|
125
|
-
"@almadar/std": "^16.
|
|
125
|
+
"@almadar/std": "^16.207.0",
|
|
126
126
|
"@almadar/syntax": "^1.16.0",
|
|
127
127
|
"@dnd-kit/core": "^6.3.1",
|
|
128
128
|
"@dnd-kit/sortable": "^10.0.0",
|