@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/dist/index.js CHANGED
@@ -1,9 +1,13 @@
1
- import { parseMcpNativeAction } from "@mcp-native/core";
2
- import { createElement, useCallback, useMemo, } from "react";
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
- /** Memoizes the trusted render plan for a validated surface identity. */
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
- /** Renders a validated surface with the host's locally bundled components. */
27
+ /** @deprecated Use `A2uiV1NativeSurface`. */
24
28
  export function McpNativeSurface({ surface, components, onAction, onBindingChange, }) {
25
29
  const plan = useNativeRenderPlan(surface);
26
- return renderElement(plan, components, onAction, onBindingChange);
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, onAction, onBindingChange) {
190
+ function renderElement(element, components, handlers) {
191
+ const accessibilityProps = selectAccessibilityProps(element);
62
192
  switch (element.component) {
63
- case "View":
64
- return createElement(components.View, { key: element.key }, element.children?.map((child) => renderElement(child, components, onAction, onBindingChange)));
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.Text, {
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 action = expectActionProp(element);
73
- return createElement(components.Button, {
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
- onPress: () => onAction(action),
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 = expectStringProp(element, "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
- return createElement(components.TextInput, {
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
- placeholder: label,
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
- : { onChangeText: (nextValue) => onBindingChange(binding, nextValue) }),
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
- export { A2UI_V1_NATIVE_COMPONENT_NAMES, A2UI_V1_NATIVE_MAX_RENDER_NODES, createA2uiV1NativeRenderPlan, } from "./v1.js";
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