@mcp-native/react-native 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/README.md +161 -28
- package/dist/component-adapters.d.ts +86 -0
- package/dist/component-adapters.d.ts.map +1 -0
- package/dist/component-adapters.js +26 -0
- package/dist/component-adapters.js.map +1 -0
- package/dist/index.d.ts +44 -31
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +519 -20
- package/dist/index.js.map +1 -1
- package/dist/iso-4217.d.ts +8 -0
- package/dist/iso-4217.d.ts.map +1 -0
- package/dist/iso-4217.js +187 -0
- package/dist/iso-4217.js.map +1 -0
- package/dist/v1.d.ts +39 -1
- package/dist/v1.d.ts.map +1 -1
- package/dist/v1.js +1068 -64
- package/dist/v1.js.map +1 -1
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { createA2uiV1ActionEnvelope, validateA2uiV1SurfaceState } from "@mcp-native/a2ui";
|
|
2
|
+
import { parseJsonObject, parseMcpNativeAction } from "@mcp-native/core";
|
|
3
|
+
import { createElement, useCallback, useEffect, useMemo, useRef, useState, } from "react";
|
|
4
|
+
import { createA2uiV1NativeRenderPlan, createA2uiV1NativeRenderPlanForLocalEdits, parseA2uiV1NativeOpenUrlDescriptor, resolveA2uiV1NativeEvent, resolveA2uiV1NativeOpenUrl, } from "./v1.js";
|
|
5
|
+
export { createNativeButtonAdapter, createNativeTextAdapter, createNativeTextInputAdapter, createNativeViewAdapter, } from "./component-adapters.js";
|
|
6
|
+
/** @deprecated Use `createA2uiV1NativeRenderPlan`. */
|
|
3
7
|
export function createNativeRenderPlan(surface) {
|
|
4
8
|
return renderNode(surface.root);
|
|
5
9
|
}
|
|
6
|
-
/**
|
|
10
|
+
/** @deprecated Use `A2uiV1NativeSurface`. */
|
|
7
11
|
export function useNativeRenderPlan(surface) {
|
|
8
12
|
return useMemo(() => createNativeRenderPlan(surface), [surface]);
|
|
9
13
|
}
|
|
@@ -20,10 +24,135 @@ export function useMcpNativeActionDispatcher(dispatcher, options) {
|
|
|
20
24
|
.then((result) => onResult?.(result), (error) => onError(error));
|
|
21
25
|
}, [dispatcher, onError, onResult]);
|
|
22
26
|
}
|
|
23
|
-
/**
|
|
27
|
+
/** @deprecated Use `A2uiV1NativeSurface`. */
|
|
24
28
|
export function McpNativeSurface({ surface, components, onAction, onBindingChange, }) {
|
|
25
29
|
const plan = useNativeRenderPlan(surface);
|
|
26
|
-
return renderElement(plan, components,
|
|
30
|
+
return renderElement(plan, components, {
|
|
31
|
+
onAction,
|
|
32
|
+
...(onBindingChange === undefined ? {} : { onBindingChange }),
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Mounts the supported A2UI v1 subset with renderer-local two-way bindings.
|
|
37
|
+
* Agent events are resolved against the latest local model at press time.
|
|
38
|
+
*/
|
|
39
|
+
export function A2uiV1NativeSurface({ surface, policy, components, onAction, openUrlPolicy, onOpenUrl, onDataModelChange, actionMetadata, locale, now = currentTimestamp, }) {
|
|
40
|
+
const validatedSurface = useMemo(() => validateA2uiV1SurfaceState(surface, policy), [policy, surface]);
|
|
41
|
+
const sourceDataModel = validatedSurface.dataModel;
|
|
42
|
+
const sourceDataModelKey = createDataModelSourceKey(validatedSurface);
|
|
43
|
+
const sourceComponentsKey = createComponentSourceKey(validatedSurface);
|
|
44
|
+
const [localState, setLocalState] = useState(() => ({
|
|
45
|
+
sourceDataModelKey,
|
|
46
|
+
sourceComponentsKey,
|
|
47
|
+
dataModel: sourceDataModel,
|
|
48
|
+
hasLocalEdits: false,
|
|
49
|
+
}));
|
|
50
|
+
const hasCurrentLocalState = localState.sourceDataModelKey === sourceDataModelKey;
|
|
51
|
+
const dataModel = hasCurrentLocalState ? localState.dataModel : sourceDataModel;
|
|
52
|
+
const hasLocalEdits = hasCurrentLocalState && localState.hasLocalEdits;
|
|
53
|
+
const tolerateInvalidLocalOpenUrls = hasLocalEdits && localState.sourceComponentsKey === sourceComponentsKey;
|
|
54
|
+
const dataModelRef = useRef(dataModel);
|
|
55
|
+
dataModelRef.current = dataModel;
|
|
56
|
+
useEffect(() => {
|
|
57
|
+
setLocalState((current) => {
|
|
58
|
+
if (current.sourceDataModelKey === sourceDataModelKey) {
|
|
59
|
+
return current;
|
|
60
|
+
}
|
|
61
|
+
return {
|
|
62
|
+
sourceDataModelKey,
|
|
63
|
+
sourceComponentsKey,
|
|
64
|
+
dataModel: sourceDataModel,
|
|
65
|
+
hasLocalEdits: false,
|
|
66
|
+
};
|
|
67
|
+
});
|
|
68
|
+
}, [sourceComponentsKey, sourceDataModel, sourceDataModelKey]);
|
|
69
|
+
const plan = useMemo(() => (tolerateInvalidLocalOpenUrls
|
|
70
|
+
? createA2uiV1NativeRenderPlanForLocalEdits
|
|
71
|
+
: createA2uiV1NativeRenderPlan)(validatedSurface, policy, {
|
|
72
|
+
dataModel,
|
|
73
|
+
...(locale === undefined ? {} : { locale }),
|
|
74
|
+
}), [dataModel, locale, policy, tolerateInvalidLocalOpenUrls, validatedSurface]);
|
|
75
|
+
const handleBindingChange = useCallback((binding, value) => {
|
|
76
|
+
const next = updateDataModelBinding(dataModelRef.current, binding, value);
|
|
77
|
+
dataModelRef.current = next;
|
|
78
|
+
setLocalState({
|
|
79
|
+
sourceDataModelKey,
|
|
80
|
+
sourceComponentsKey,
|
|
81
|
+
dataModel: next,
|
|
82
|
+
hasLocalEdits: true,
|
|
83
|
+
});
|
|
84
|
+
onDataModelChange?.(parseJsonObject(next, "renderer data model"));
|
|
85
|
+
}, [onDataModelChange, sourceComponentsKey, sourceDataModelKey]);
|
|
86
|
+
const handleEvent = useCallback((event) => {
|
|
87
|
+
const currentDataModel = dataModelRef.current;
|
|
88
|
+
const resolved = resolveA2uiV1NativeEvent(validatedSurface, policy, event.sourceComponentId, currentDataModel, {
|
|
89
|
+
...(event.instanceKey === undefined ? {} : { instanceKey: event.instanceKey }),
|
|
90
|
+
...(locale === undefined ? {} : { locale }),
|
|
91
|
+
});
|
|
92
|
+
const envelope = createA2uiV1ActionEnvelope({
|
|
93
|
+
name: resolved.name,
|
|
94
|
+
surfaceId: resolved.surfaceId,
|
|
95
|
+
sourceComponentId: resolved.sourceComponentId,
|
|
96
|
+
context: resolved.context,
|
|
97
|
+
...(resolved.userMessage === undefined ? {} : { userMessage: resolved.userMessage }),
|
|
98
|
+
...(actionMetadata === undefined ? {} : { metadata: actionMetadata }),
|
|
99
|
+
timestamp: now(),
|
|
100
|
+
});
|
|
101
|
+
if (validatedSurface.sendDataModel) {
|
|
102
|
+
onAction(envelope, parseJsonObject(currentDataModel, "renderer data model"));
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
onAction(envelope);
|
|
106
|
+
}
|
|
107
|
+
}, [actionMetadata, locale, now, onAction, policy, validatedSurface]);
|
|
108
|
+
const handleOpenUrl = useCallback((request) => {
|
|
109
|
+
const resolved = resolveA2uiV1NativeOpenUrl(validatedSurface, policy, request.sourceComponentId, dataModelRef.current, {
|
|
110
|
+
...(request.instanceKey === undefined ? {} : { instanceKey: request.instanceKey }),
|
|
111
|
+
...(locale === undefined ? {} : { locale }),
|
|
112
|
+
});
|
|
113
|
+
if (openUrlPolicy?.(resolved) === true) {
|
|
114
|
+
onOpenUrl?.(resolved);
|
|
115
|
+
}
|
|
116
|
+
}, [locale, onOpenUrl, openUrlPolicy, policy, validatedSurface]);
|
|
117
|
+
return renderElement(plan, components, {
|
|
118
|
+
useComponentVariants: true,
|
|
119
|
+
onBindingChange: handleBindingChange,
|
|
120
|
+
onV1Event: handleEvent,
|
|
121
|
+
...(openUrlPolicy === undefined || onOpenUrl === undefined
|
|
122
|
+
? {}
|
|
123
|
+
: { onV1OpenUrl: handleOpenUrl }),
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
function createDataModelSourceKey(surface) {
|
|
127
|
+
return canonicalizeJson([
|
|
128
|
+
surface.surfaceId,
|
|
129
|
+
surface.dataModelRevision ?? null,
|
|
130
|
+
surface.dataModel,
|
|
131
|
+
]);
|
|
132
|
+
}
|
|
133
|
+
function createComponentSourceKey(surface) {
|
|
134
|
+
return canonicalizeJson([...surface.components.entries()]
|
|
135
|
+
.sort(([left], [right]) => left.localeCompare(right))
|
|
136
|
+
.map(([id, component]) => [id, component]));
|
|
137
|
+
}
|
|
138
|
+
function canonicalizeJson(value) {
|
|
139
|
+
if (value === null) {
|
|
140
|
+
return "null";
|
|
141
|
+
}
|
|
142
|
+
if (typeof value === "string" || typeof value === "boolean" || typeof value === "number") {
|
|
143
|
+
return JSON.stringify(value);
|
|
144
|
+
}
|
|
145
|
+
if (Array.isArray(value)) {
|
|
146
|
+
return `[${value.map(canonicalizeJson).join(",")}]`;
|
|
147
|
+
}
|
|
148
|
+
const object = value;
|
|
149
|
+
return `{${Object.keys(object)
|
|
150
|
+
.sort()
|
|
151
|
+
.map((key) => `${JSON.stringify(key)}:${canonicalizeJson(object[key])}`)
|
|
152
|
+
.join(",")}}`;
|
|
153
|
+
}
|
|
154
|
+
function currentTimestamp() {
|
|
155
|
+
return new Date().toISOString();
|
|
27
156
|
}
|
|
28
157
|
function renderNode(node) {
|
|
29
158
|
switch (node.type) {
|
|
@@ -58,41 +187,254 @@ function renderNode(node) {
|
|
|
58
187
|
};
|
|
59
188
|
}
|
|
60
189
|
}
|
|
61
|
-
function renderElement(element, components,
|
|
190
|
+
function renderElement(element, components, handlers) {
|
|
191
|
+
const accessibilityProps = selectAccessibilityProps(element);
|
|
62
192
|
switch (element.component) {
|
|
63
|
-
case "View":
|
|
64
|
-
|
|
193
|
+
case "View": {
|
|
194
|
+
const style = selectViewStyle(element);
|
|
195
|
+
return createElement(selectViewComponent(element, components, handlers.useComponentVariants === true), {
|
|
196
|
+
key: element.key,
|
|
197
|
+
...accessibilityProps,
|
|
198
|
+
...(style === undefined ? {} : { style }),
|
|
199
|
+
}, element.children?.map((child) => renderChildElement(child, components, handlers)));
|
|
200
|
+
}
|
|
65
201
|
case "Text":
|
|
66
|
-
return createElement(components.
|
|
202
|
+
return createElement(selectTextComponent(element, components, handlers.useComponentVariants === true), {
|
|
67
203
|
key: element.key,
|
|
68
204
|
children: expectStringProp(element, "children"),
|
|
205
|
+
...accessibilityProps,
|
|
206
|
+
accessible: accessibilityProps.accessibilityElementsHidden !== true,
|
|
207
|
+
accessibilityRole: "text",
|
|
208
|
+
allowFontScaling: true,
|
|
69
209
|
});
|
|
70
210
|
case "Button": {
|
|
71
211
|
const title = expectStringProp(element, "title");
|
|
72
|
-
const
|
|
73
|
-
|
|
212
|
+
const disabled = optionalBooleanProp(element, "disabled");
|
|
213
|
+
const validationMessages = optionalStringArrayProp(element, "validationMessages");
|
|
214
|
+
const onPress = createButtonPressHandler(element, handlers);
|
|
215
|
+
return createElement(selectButtonComponent(element, components, handlers.useComponentVariants === true), {
|
|
74
216
|
key: element.key,
|
|
75
217
|
title,
|
|
76
|
-
accessibilityLabel: title,
|
|
77
|
-
|
|
218
|
+
accessibilityLabel: accessibilityProps.accessibilityLabel ?? title,
|
|
219
|
+
...accessibilityProps,
|
|
220
|
+
accessible: accessibilityProps.accessibilityElementsHidden !== true,
|
|
221
|
+
accessibilityRole: "button",
|
|
222
|
+
accessibilityState: { disabled: disabled === true },
|
|
223
|
+
...(disabled === undefined ? {} : { disabled }),
|
|
224
|
+
...(validationMessages === undefined ? {} : { validationMessages }),
|
|
225
|
+
onPress,
|
|
78
226
|
});
|
|
79
227
|
}
|
|
80
228
|
case "TextInput": {
|
|
81
|
-
const label =
|
|
229
|
+
const label = optionalStringProp(element, "label") ?? expectStringProp(element, "placeholder");
|
|
230
|
+
const placeholder = optionalStringProp(element, "placeholder") ?? label;
|
|
82
231
|
const value = optionalStringProp(element, "value");
|
|
83
232
|
const binding = optionalStringProp(element, "binding");
|
|
84
|
-
|
|
233
|
+
const invalid = optionalBooleanProp(element, "invalid");
|
|
234
|
+
const validationMessages = optionalStringArrayProp(element, "validationMessages");
|
|
235
|
+
const behaviorProps = selectTextInputBehaviorProps(element);
|
|
236
|
+
return createElement(selectTextInputComponent(element, components, handlers.useComponentVariants === true), {
|
|
85
237
|
key: element.key,
|
|
86
|
-
accessibilityLabel: label,
|
|
87
|
-
|
|
238
|
+
accessibilityLabel: accessibilityProps.accessibilityLabel ?? label,
|
|
239
|
+
...accessibilityProps,
|
|
240
|
+
accessible: accessibilityProps.accessibilityElementsHidden !== true,
|
|
241
|
+
allowFontScaling: true,
|
|
242
|
+
...behaviorProps,
|
|
243
|
+
placeholder,
|
|
244
|
+
...(invalid === undefined ? {} : { invalid }),
|
|
245
|
+
...(validationMessages === undefined ? {} : { validationMessages }),
|
|
88
246
|
...(value === undefined ? {} : { value }),
|
|
89
|
-
...(binding === undefined || onBindingChange === undefined
|
|
247
|
+
...(binding === undefined || handlers.onBindingChange === undefined
|
|
90
248
|
? {}
|
|
91
|
-
: {
|
|
249
|
+
: {
|
|
250
|
+
onChangeText: (nextValue) => handlers.onBindingChange?.(binding, nextValue),
|
|
251
|
+
}),
|
|
92
252
|
});
|
|
93
253
|
}
|
|
94
254
|
}
|
|
95
255
|
}
|
|
256
|
+
function renderChildElement(element, components, handlers) {
|
|
257
|
+
const rendered = renderElement(element, components, handlers);
|
|
258
|
+
const weight = optionalFiniteNumberProp(element, "weight");
|
|
259
|
+
if (weight === undefined) {
|
|
260
|
+
return rendered;
|
|
261
|
+
}
|
|
262
|
+
if (weight < 0) {
|
|
263
|
+
throw new TypeError(`Expected a non-negative weight at native element ${element.key}`);
|
|
264
|
+
}
|
|
265
|
+
return createElement(components.View, { key: element.key, style: { flexGrow: weight } }, rendered);
|
|
266
|
+
}
|
|
267
|
+
function selectViewComponent(element, components, useComponentVariants) {
|
|
268
|
+
if (!useComponentVariants) {
|
|
269
|
+
return components.View;
|
|
270
|
+
}
|
|
271
|
+
const layout = optionalStringProp(element, "layout");
|
|
272
|
+
const variant = optionalStringProp(element, "variant");
|
|
273
|
+
let selected;
|
|
274
|
+
if (variant === "card" || variant === "list") {
|
|
275
|
+
selected = variant;
|
|
276
|
+
}
|
|
277
|
+
else if (variant !== undefined) {
|
|
278
|
+
throw new TypeError(`Unsupported view variant ${JSON.stringify(variant)} at native element ${element.key}`);
|
|
279
|
+
}
|
|
280
|
+
else if (layout === "column" || layout === "row") {
|
|
281
|
+
selected = layout;
|
|
282
|
+
}
|
|
283
|
+
return ((selected === undefined ? undefined : components.variants?.View?.[selected]) ?? components.View);
|
|
284
|
+
}
|
|
285
|
+
function selectTextComponent(element, components, useComponentVariants) {
|
|
286
|
+
if (!useComponentVariants) {
|
|
287
|
+
return components.Text;
|
|
288
|
+
}
|
|
289
|
+
const variant = selectClosedVariant(element, "variant", ["body", "caption"], "body", "text");
|
|
290
|
+
return components.variants?.Text?.[variant] ?? components.Text;
|
|
291
|
+
}
|
|
292
|
+
function selectButtonComponent(element, components, useComponentVariants) {
|
|
293
|
+
if (!useComponentVariants) {
|
|
294
|
+
return components.Button;
|
|
295
|
+
}
|
|
296
|
+
const variant = selectClosedVariant(element, "variant", ["borderless", "default", "primary"], "default", "button");
|
|
297
|
+
return components.variants?.Button?.[variant] ?? components.Button;
|
|
298
|
+
}
|
|
299
|
+
function selectTextInputComponent(element, components, useComponentVariants) {
|
|
300
|
+
if (!useComponentVariants) {
|
|
301
|
+
return components.TextInput;
|
|
302
|
+
}
|
|
303
|
+
const variant = selectClosedVariant(element, "variant", ["longText", "number", "obscured", "shortText"], "shortText", "text input");
|
|
304
|
+
return components.variants?.TextInput?.[variant] ?? components.TextInput;
|
|
305
|
+
}
|
|
306
|
+
function selectClosedVariant(element, property, allowed, fallback, label) {
|
|
307
|
+
const value = optionalStringProp(element, property);
|
|
308
|
+
if (value === undefined) {
|
|
309
|
+
return fallback;
|
|
310
|
+
}
|
|
311
|
+
if (allowed.includes(value)) {
|
|
312
|
+
return value;
|
|
313
|
+
}
|
|
314
|
+
throw new TypeError(`Unsupported ${label} variant ${JSON.stringify(value)} at native element ${element.key}`);
|
|
315
|
+
}
|
|
316
|
+
function selectViewStyle(element) {
|
|
317
|
+
const layout = optionalStringProp(element, "layout");
|
|
318
|
+
const justify = optionalStringProp(element, "justify");
|
|
319
|
+
const align = optionalStringProp(element, "align");
|
|
320
|
+
if (layout === undefined) {
|
|
321
|
+
if (justify !== undefined || align !== undefined) {
|
|
322
|
+
throw new TypeError(`Missing layout at native element ${element.key}`);
|
|
323
|
+
}
|
|
324
|
+
return undefined;
|
|
325
|
+
}
|
|
326
|
+
if (layout !== "column" && layout !== "row") {
|
|
327
|
+
throw new TypeError(`Unsupported layout ${JSON.stringify(layout)} at native element ${element.key}`);
|
|
328
|
+
}
|
|
329
|
+
return {
|
|
330
|
+
flexDirection: layout,
|
|
331
|
+
...(justify === undefined ? {} : { justifyContent: mapJustifyContent(justify, element.key) }),
|
|
332
|
+
...(align === undefined ? {} : { alignItems: mapAlignItems(align, element.key) }),
|
|
333
|
+
};
|
|
334
|
+
}
|
|
335
|
+
function mapJustifyContent(value, elementKey) {
|
|
336
|
+
switch (value) {
|
|
337
|
+
case "start":
|
|
338
|
+
return "flex-start";
|
|
339
|
+
case "end":
|
|
340
|
+
return "flex-end";
|
|
341
|
+
case "center":
|
|
342
|
+
return "center";
|
|
343
|
+
case "spaceAround":
|
|
344
|
+
return "space-around";
|
|
345
|
+
case "spaceBetween":
|
|
346
|
+
return "space-between";
|
|
347
|
+
case "spaceEvenly":
|
|
348
|
+
return "space-evenly";
|
|
349
|
+
default:
|
|
350
|
+
throw new TypeError(`Unsupported justify value ${JSON.stringify(value)} at native element ${elementKey}`);
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
function mapAlignItems(value, elementKey) {
|
|
354
|
+
switch (value) {
|
|
355
|
+
case "start":
|
|
356
|
+
return "flex-start";
|
|
357
|
+
case "end":
|
|
358
|
+
return "flex-end";
|
|
359
|
+
case "center":
|
|
360
|
+
case "stretch":
|
|
361
|
+
return value;
|
|
362
|
+
default:
|
|
363
|
+
throw new TypeError(`Unsupported align value ${JSON.stringify(value)} at native element ${elementKey}`);
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
function selectTextInputBehaviorProps(element) {
|
|
367
|
+
const variant = optionalStringProp(element, "variant");
|
|
368
|
+
switch (variant) {
|
|
369
|
+
case undefined:
|
|
370
|
+
case "shortText":
|
|
371
|
+
return {};
|
|
372
|
+
case "longText":
|
|
373
|
+
return { multiline: true };
|
|
374
|
+
case "number":
|
|
375
|
+
return { keyboardType: "numeric" };
|
|
376
|
+
case "obscured":
|
|
377
|
+
return { secureTextEntry: true };
|
|
378
|
+
default:
|
|
379
|
+
throw new TypeError(`Unsupported text input variant ${JSON.stringify(variant)} at native element ${element.key}`);
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
function createButtonPressHandler(element, handlers) {
|
|
383
|
+
const disabled = optionalBooleanProp(element, "disabled") === true;
|
|
384
|
+
const hasAction = Object.hasOwn(element.props, "action");
|
|
385
|
+
const hasEvent = Object.hasOwn(element.props, "event");
|
|
386
|
+
const hasOpenUrl = Object.hasOwn(element.props, "openUrl");
|
|
387
|
+
const hasInvalidLocalOpenUrl = Object.hasOwn(element.props, "invalidLocalOpenUrl");
|
|
388
|
+
if (Number(hasAction) + Number(hasEvent) + Number(hasOpenUrl) + Number(hasInvalidLocalOpenUrl) !==
|
|
389
|
+
1) {
|
|
390
|
+
throw new TypeError(`Expected exactly one action, event, openUrl, or invalid local openUrl at native element ${element.key}`);
|
|
391
|
+
}
|
|
392
|
+
if (hasAction) {
|
|
393
|
+
const action = expectActionProp(element);
|
|
394
|
+
if (handlers.onAction === undefined) {
|
|
395
|
+
throw new TypeError(`Missing native action handler for element ${element.key}`);
|
|
396
|
+
}
|
|
397
|
+
return disabled ? () => undefined : () => handlers.onAction?.(action);
|
|
398
|
+
}
|
|
399
|
+
if (hasEvent) {
|
|
400
|
+
const event = expectV1EventProp(element);
|
|
401
|
+
if (handlers.onV1Event === undefined) {
|
|
402
|
+
throw new TypeError(`Missing A2UI v1 event handler for element ${element.key}`);
|
|
403
|
+
}
|
|
404
|
+
return disabled ? () => undefined : () => handlers.onV1Event?.(event);
|
|
405
|
+
}
|
|
406
|
+
if (hasOpenUrl) {
|
|
407
|
+
const request = expectV1OpenUrlProp(element);
|
|
408
|
+
if (handlers.onV1OpenUrl === undefined) {
|
|
409
|
+
throw new TypeError(`Missing A2UI v1 openUrl policy or handler for element ${element.key}`);
|
|
410
|
+
}
|
|
411
|
+
return disabled ? () => undefined : () => handlers.onV1OpenUrl?.(request);
|
|
412
|
+
}
|
|
413
|
+
expectV1InvalidLocalOpenUrlProp(element);
|
|
414
|
+
if (!disabled) {
|
|
415
|
+
throw new TypeError(`Expected invalid local openUrl element ${element.key} to be disabled`);
|
|
416
|
+
}
|
|
417
|
+
return () => undefined;
|
|
418
|
+
}
|
|
419
|
+
function selectAccessibilityProps(element) {
|
|
420
|
+
const accessibilityLabel = optionalStringProp(element, "accessibilityLabel");
|
|
421
|
+
const accessibilityHint = optionalStringProp(element, "accessibilityHint");
|
|
422
|
+
const live = optionalAccessibilityLiveProp(element);
|
|
423
|
+
const hidden = optionalBooleanProp(element, "accessibilityHidden");
|
|
424
|
+
return {
|
|
425
|
+
...(accessibilityLabel === undefined ? {} : { accessibilityLabel }),
|
|
426
|
+
...(accessibilityHint === undefined ? {} : { accessibilityHint }),
|
|
427
|
+
...(live === undefined
|
|
428
|
+
? {}
|
|
429
|
+
: { accessibilityLiveRegion: live === "off" ? "none" : live }),
|
|
430
|
+
...(hidden === undefined
|
|
431
|
+
? {}
|
|
432
|
+
: {
|
|
433
|
+
accessibilityElementsHidden: hidden,
|
|
434
|
+
importantForAccessibility: hidden ? "no-hide-descendants" : "auto",
|
|
435
|
+
}),
|
|
436
|
+
};
|
|
437
|
+
}
|
|
96
438
|
function expectStringProp(element, name) {
|
|
97
439
|
const value = element.props[name];
|
|
98
440
|
if (typeof value !== "string") {
|
|
@@ -104,6 +446,37 @@ function optionalStringProp(element, name) {
|
|
|
104
446
|
const value = element.props[name];
|
|
105
447
|
return value === undefined ? undefined : expectStringProp(element, name);
|
|
106
448
|
}
|
|
449
|
+
function optionalStringArrayProp(element, name) {
|
|
450
|
+
const value = element.props[name];
|
|
451
|
+
if (value === undefined) {
|
|
452
|
+
return undefined;
|
|
453
|
+
}
|
|
454
|
+
if (!Array.isArray(value) || value.some((item) => typeof item !== "string")) {
|
|
455
|
+
throw new TypeError(`Expected an array of strings at native element ${element.key}.${name}`);
|
|
456
|
+
}
|
|
457
|
+
return value;
|
|
458
|
+
}
|
|
459
|
+
function optionalBooleanProp(element, name) {
|
|
460
|
+
const value = element.props[name];
|
|
461
|
+
if (value !== undefined && typeof value !== "boolean") {
|
|
462
|
+
throw new TypeError(`Expected a boolean at native element ${element.key}.${name}`);
|
|
463
|
+
}
|
|
464
|
+
return value;
|
|
465
|
+
}
|
|
466
|
+
function optionalFiniteNumberProp(element, name) {
|
|
467
|
+
const value = element.props[name];
|
|
468
|
+
if (value !== undefined && (typeof value !== "number" || !Number.isFinite(value))) {
|
|
469
|
+
throw new TypeError(`Expected a finite number at native element ${element.key}.${name}`);
|
|
470
|
+
}
|
|
471
|
+
return value;
|
|
472
|
+
}
|
|
473
|
+
function optionalAccessibilityLiveProp(element) {
|
|
474
|
+
const value = element.props.accessibilityLive;
|
|
475
|
+
if (value === undefined || value === "assertive" || value === "off" || value === "polite") {
|
|
476
|
+
return value;
|
|
477
|
+
}
|
|
478
|
+
throw new TypeError(`Expected an accessibility live value at native element ${element.key}.accessibilityLive`);
|
|
479
|
+
}
|
|
107
480
|
function expectActionProp(element) {
|
|
108
481
|
const value = element.props.action;
|
|
109
482
|
const path = `native element ${element.key}.action`;
|
|
@@ -115,5 +488,131 @@ function expectActionProp(element) {
|
|
|
115
488
|
throw new TypeError(message, { cause: error });
|
|
116
489
|
}
|
|
117
490
|
}
|
|
118
|
-
|
|
491
|
+
function expectV1EventProp(element) {
|
|
492
|
+
const path = `native element ${element.key}.event`;
|
|
493
|
+
const event = parseJsonObject(element.props.event, path);
|
|
494
|
+
rejectObjectKeys(event, ["context", "instanceKey", "name", "sourceComponentId", "surfaceId", "userMessage"], path);
|
|
495
|
+
const name = expectObjectString(event, "name", path);
|
|
496
|
+
const surfaceId = expectObjectString(event, "surfaceId", path);
|
|
497
|
+
const sourceComponentId = expectObjectString(event, "sourceComponentId", path);
|
|
498
|
+
const context = parseJsonObject(event.context, `${path}.context`);
|
|
499
|
+
const instanceKey = event.instanceKey;
|
|
500
|
+
if (instanceKey !== undefined && (typeof instanceKey !== "string" || instanceKey.length === 0)) {
|
|
501
|
+
throw new TypeError(`Expected a non-empty string at ${path}.instanceKey`);
|
|
502
|
+
}
|
|
503
|
+
const userMessage = event.userMessage;
|
|
504
|
+
if (userMessage !== undefined && typeof userMessage !== "string") {
|
|
505
|
+
throw new TypeError(`Expected a string at ${path}.userMessage`);
|
|
506
|
+
}
|
|
507
|
+
return {
|
|
508
|
+
name,
|
|
509
|
+
surfaceId,
|
|
510
|
+
sourceComponentId,
|
|
511
|
+
...(instanceKey === undefined ? {} : { instanceKey }),
|
|
512
|
+
context,
|
|
513
|
+
...(userMessage === undefined ? {} : { userMessage }),
|
|
514
|
+
};
|
|
515
|
+
}
|
|
516
|
+
function expectV1OpenUrlProp(element) {
|
|
517
|
+
const path = `native element ${element.key}.openUrl`;
|
|
518
|
+
try {
|
|
519
|
+
return parseA2uiV1NativeOpenUrlDescriptor(element.props.openUrl, path);
|
|
520
|
+
}
|
|
521
|
+
catch (error) {
|
|
522
|
+
const message = error instanceof Error ? error.message : `Expected an openUrl at ${path}`;
|
|
523
|
+
throw new TypeError(message, { cause: error });
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
function expectV1InvalidLocalOpenUrlProp(element) {
|
|
527
|
+
const path = `native element ${element.key}.invalidLocalOpenUrl`;
|
|
528
|
+
const marker = parseJsonObject(element.props.invalidLocalOpenUrl, path);
|
|
529
|
+
rejectObjectKeys(marker, ["instanceKey", "sourceComponentId", "surfaceId"], path);
|
|
530
|
+
expectObjectString(marker, "instanceKey", path);
|
|
531
|
+
expectObjectString(marker, "sourceComponentId", path);
|
|
532
|
+
expectObjectString(marker, "surfaceId", path);
|
|
533
|
+
}
|
|
534
|
+
function expectObjectString(value, name, path) {
|
|
535
|
+
const field = value[name];
|
|
536
|
+
if (typeof field !== "string" || field.length === 0) {
|
|
537
|
+
throw new TypeError(`Expected a non-empty string at ${path}.${name}`);
|
|
538
|
+
}
|
|
539
|
+
return field;
|
|
540
|
+
}
|
|
541
|
+
function rejectObjectKeys(value, allowed, path) {
|
|
542
|
+
const allowedKeys = new Set(allowed);
|
|
543
|
+
for (const key of Object.keys(value)) {
|
|
544
|
+
if (!allowedKeys.has(key)) {
|
|
545
|
+
throw new TypeError(`Unexpected field ${JSON.stringify(key)} at ${path}`);
|
|
546
|
+
}
|
|
547
|
+
}
|
|
548
|
+
}
|
|
549
|
+
function updateDataModelBinding(dataModel, binding, value) {
|
|
550
|
+
if (typeof binding !== "string" || !binding.startsWith("/") || binding.length === 1) {
|
|
551
|
+
throw new TypeError(`Expected a non-root absolute JSON Pointer binding, received ${JSON.stringify(binding)}`);
|
|
552
|
+
}
|
|
553
|
+
if (typeof value !== "string") {
|
|
554
|
+
throw new TypeError("Expected a string renderer binding value");
|
|
555
|
+
}
|
|
556
|
+
const next = parseJsonObject(dataModel, "renderer data model");
|
|
557
|
+
const tokens = binding
|
|
558
|
+
.slice(1)
|
|
559
|
+
.split("/")
|
|
560
|
+
.map((token) => decodePointerToken(token, binding));
|
|
561
|
+
let cursor = next;
|
|
562
|
+
for (const [index, token] of tokens.entries()) {
|
|
563
|
+
const last = index === tokens.length - 1;
|
|
564
|
+
if (Array.isArray(cursor)) {
|
|
565
|
+
if (!/^(0|[1-9][0-9]*)$/.test(token)) {
|
|
566
|
+
throw new TypeError(`Invalid array binding index in ${JSON.stringify(binding)}`);
|
|
567
|
+
}
|
|
568
|
+
const arrayIndex = Number(token);
|
|
569
|
+
if (!Number.isSafeInteger(arrayIndex) || arrayIndex >= cursor.length) {
|
|
570
|
+
throw new TypeError(`Renderer binding ${JSON.stringify(binding)} is missing`);
|
|
571
|
+
}
|
|
572
|
+
if (last) {
|
|
573
|
+
if (typeof cursor[arrayIndex] !== "string") {
|
|
574
|
+
throw new TypeError(`Renderer binding ${JSON.stringify(binding)} must reference an existing string value`);
|
|
575
|
+
}
|
|
576
|
+
cursor[arrayIndex] = value;
|
|
577
|
+
break;
|
|
578
|
+
}
|
|
579
|
+
cursor = cursor[arrayIndex];
|
|
580
|
+
continue;
|
|
581
|
+
}
|
|
582
|
+
if (cursor === null || typeof cursor !== "object" || !Object.hasOwn(cursor, token)) {
|
|
583
|
+
throw new TypeError(`Renderer binding ${JSON.stringify(binding)} is missing`);
|
|
584
|
+
}
|
|
585
|
+
if (last) {
|
|
586
|
+
if (typeof cursor[token] !== "string") {
|
|
587
|
+
throw new TypeError(`Renderer binding ${JSON.stringify(binding)} must reference an existing string value`);
|
|
588
|
+
}
|
|
589
|
+
defineJsonProperty(cursor, token, value);
|
|
590
|
+
break;
|
|
591
|
+
}
|
|
592
|
+
cursor = cursor[token];
|
|
593
|
+
}
|
|
594
|
+
return parseJsonObject(next, "renderer data model");
|
|
595
|
+
}
|
|
596
|
+
function decodePointerToken(token, pointer) {
|
|
597
|
+
for (let index = 0; index < token.length; index += 1) {
|
|
598
|
+
if (token[index] !== "~") {
|
|
599
|
+
continue;
|
|
600
|
+
}
|
|
601
|
+
const escaped = token[index + 1];
|
|
602
|
+
if (escaped !== "0" && escaped !== "1") {
|
|
603
|
+
throw new TypeError(`Invalid JSON Pointer escape in ${JSON.stringify(pointer)}`);
|
|
604
|
+
}
|
|
605
|
+
index += 1;
|
|
606
|
+
}
|
|
607
|
+
return token.replaceAll("~1", "/").replaceAll("~0", "~");
|
|
608
|
+
}
|
|
609
|
+
function defineJsonProperty(object, key, value) {
|
|
610
|
+
Object.defineProperty(object, key, {
|
|
611
|
+
configurable: true,
|
|
612
|
+
enumerable: true,
|
|
613
|
+
value,
|
|
614
|
+
writable: true,
|
|
615
|
+
});
|
|
616
|
+
}
|
|
617
|
+
export { A2UI_V1_NATIVE_COMPONENT_NAMES, A2UI_V1_NATIVE_MAX_OPEN_URL_LENGTH, A2UI_V1_NATIVE_MAX_RENDER_NODES, createA2uiV1NativeRenderPlan, resolveA2uiV1NativeEvent, resolveA2uiV1NativeOpenUrl, } from "./v1.js";
|
|
119
618
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ISO 4217 List One currency and funds codes, published 2026-01-01 by SIX,
|
|
3
|
+
* the ISO 4217 Maintenance Agency.
|
|
4
|
+
*
|
|
5
|
+
* Source: https://www.six-group.com/dam/download/financial-information/data-center/iso-currrency/lists/list-one.xml
|
|
6
|
+
*/
|
|
7
|
+
export declare const ISO_4217_CURRENCY_CODES: Set<string>;
|
|
8
|
+
//# sourceMappingURL=iso-4217.d.ts.map
|