@a2ui/web_core 0.8.0 → 0.9.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/.tsbuildinfo +1 -0
- package/LICENSE +203 -0
- package/README.md +50 -4
- package/package.json +42 -72
- package/{dist/src → src}/v0_8/data/guards.js +13 -13
- package/src/v0_8/data/guards.test.d.ts +2 -0
- package/src/v0_8/data/guards.test.d.ts.map +1 -0
- package/src/v0_8/data/guards.test.js +174 -0
- package/src/v0_8/data/guards.test.js.map +1 -0
- package/{dist/src → src}/v0_8/data/model-processor.d.ts +1 -1
- package/{dist/src → src}/v0_8/data/model-processor.d.ts.map +1 -1
- package/{dist/src → src}/v0_8/data/model-processor.js +51 -40
- package/src/v0_8/data/model-processor.js.map +1 -0
- package/src/v0_8/data/model-processor.test.d.ts +2 -0
- package/src/v0_8/data/model-processor.test.d.ts.map +1 -0
- package/src/v0_8/data/model-processor.test.js +712 -0
- package/src/v0_8/data/model-processor.test.js.map +1 -0
- package/src/v0_8/errors.d.ts +35 -0
- package/src/v0_8/errors.d.ts.map +1 -0
- package/src/v0_8/errors.js +65 -0
- package/src/v0_8/errors.js.map +1 -0
- package/src/v0_8/events/validation-event.d.ts.map +1 -0
- package/{dist/src → src}/v0_8/events/validation-event.js.map +1 -1
- package/{dist/src → src}/v0_8/index.d.ts +35 -4
- package/{dist/src → src}/v0_8/index.d.ts.map +1 -1
- package/src/v0_8/index.js +28 -0
- package/src/v0_8/index.js.map +1 -0
- package/src/v0_8/schema/common-types.d.ts +1189 -0
- package/src/v0_8/schema/common-types.d.ts.map +1 -0
- package/src/v0_8/schema/common-types.js +381 -0
- package/src/v0_8/schema/common-types.js.map +1 -0
- package/src/v0_8/schema/server-to-client.d.ts +17949 -0
- package/src/v0_8/schema/server-to-client.d.ts.map +1 -0
- package/src/v0_8/schema/server-to-client.js +228 -0
- package/src/v0_8/schema/server-to-client.js.map +1 -0
- package/src/v0_8/schema/verify-schema.test.d.ts +17 -0
- package/src/v0_8/schema/verify-schema.test.d.ts.map +1 -0
- package/src/v0_8/schema/verify-schema.test.js +167 -0
- package/src/v0_8/schema/verify-schema.test.js.map +1 -0
- package/{dist/src → src}/v0_8/schemas/server_to_client.json +1 -1
- package/src/v0_8/schemas/server_to_client_with_standard_catalog.json +817 -787
- package/{dist/src → src}/v0_8/schemas/standard_catalog_definition.json +26 -0
- package/{dist/src → src}/v0_8/styles/behavior.js +13 -13
- package/{dist/src → src}/v0_8/styles/border.js +13 -13
- package/{dist/src → src}/v0_8/styles/colors.js +13 -13
- package/{dist/src → src}/v0_8/styles/colors.js.map +1 -1
- package/src/v0_8/styles/icons.d.ts +11 -0
- package/{dist/src → src}/v0_8/styles/icons.d.ts.map +1 -1
- package/{dist/src → src}/v0_8/styles/icons.js +17 -14
- package/{dist/src → src}/v0_8/styles/icons.js.map +1 -1
- package/src/v0_8/styles/index.js +35 -0
- package/{dist/src → src}/v0_8/styles/layout.js +13 -13
- package/{dist/src → src}/v0_8/styles/layout.js.map +1 -1
- package/src/v0_8/styles/opacity.js +24 -0
- package/src/v0_8/{events/index.ts → styles/shared.js} +3 -4
- package/src/v0_8/styles/styles.test.d.ts +2 -0
- package/src/v0_8/styles/styles.test.d.ts.map +1 -0
- package/src/v0_8/styles/styles.test.js +86 -0
- package/src/v0_8/styles/styles.test.js.map +1 -0
- package/{dist/src → src}/v0_8/styles/type.js +13 -13
- package/{dist/src → src}/v0_8/styles/utils.js +13 -13
- package/{dist/src → src}/v0_8/types/client-event.d.ts +10 -8
- package/src/v0_8/types/client-event.d.ts.map +1 -0
- package/src/v0_8/types/client-event.js +17 -0
- package/src/v0_8/types/colors.js +19 -0
- package/src/v0_8/types/components.d.ts +41 -0
- package/src/v0_8/types/components.d.ts.map +1 -0
- package/src/v0_8/types/components.js +17 -0
- package/src/v0_8/types/primitives.d.ts +9 -0
- package/src/v0_8/types/primitives.d.ts.map +1 -0
- package/src/v0_8/types/primitives.js +17 -0
- package/{dist/src → src}/v0_8/types/types.d.ts +44 -22
- package/src/v0_8/types/types.d.ts.map +1 -0
- package/src/v0_8/types/types.js +17 -0
- package/src/v0_9/basic_catalog/components/basic_components.d.ts +3359 -0
- package/src/v0_9/basic_catalog/components/basic_components.d.ts.map +1 -0
- package/src/v0_9/basic_catalog/components/basic_components.js +448 -0
- package/src/v0_9/basic_catalog/components/basic_components.js.map +1 -0
- package/src/v0_9/basic_catalog/components/basic_components.test.d.ts +2 -0
- package/src/v0_9/basic_catalog/components/basic_components.test.d.ts.map +1 -0
- package/src/v0_9/basic_catalog/components/basic_components.test.js +46 -0
- package/src/v0_9/basic_catalog/components/basic_components.test.js.map +1 -0
- package/src/v0_9/basic_catalog/expressions/expression_parser.d.ts +38 -0
- package/src/v0_9/basic_catalog/expressions/expression_parser.d.ts.map +1 -0
- package/src/v0_9/basic_catalog/expressions/expression_parser.js +294 -0
- package/src/v0_9/basic_catalog/expressions/expression_parser.js.map +1 -0
- package/src/v0_9/basic_catalog/expressions/expression_parser.test.d.ts +2 -0
- package/src/v0_9/basic_catalog/expressions/expression_parser.test.d.ts.map +1 -0
- package/src/v0_9/basic_catalog/expressions/expression_parser.test.js +126 -0
- package/src/v0_9/basic_catalog/expressions/expression_parser.test.js.map +1 -0
- package/src/v0_9/basic_catalog/functions/basic_functions.d.ts +32 -0
- package/src/v0_9/basic_catalog/functions/basic_functions.d.ts.map +1 -0
- package/src/v0_9/basic_catalog/functions/basic_functions.js +212 -0
- package/src/v0_9/basic_catalog/functions/basic_functions.js.map +1 -0
- package/src/v0_9/basic_catalog/functions/basic_functions.test.d.ts +2 -0
- package/src/v0_9/basic_catalog/functions/basic_functions.test.d.ts.map +1 -0
- package/src/v0_9/basic_catalog/functions/basic_functions.test.js +301 -0
- package/src/v0_9/basic_catalog/functions/basic_functions.test.js.map +1 -0
- package/src/v0_9/basic_catalog/functions/basic_functions_api.d.ts +930 -0
- package/src/v0_9/basic_catalog/functions/basic_functions_api.d.ts.map +1 -0
- package/src/v0_9/basic_catalog/functions/basic_functions_api.js +466 -0
- package/src/v0_9/basic_catalog/functions/basic_functions_api.js.map +1 -0
- package/src/v0_9/basic_catalog/index.d.ts +5 -0
- package/src/v0_9/basic_catalog/index.d.ts.map +1 -0
- package/src/v0_9/basic_catalog/index.js +20 -0
- package/src/v0_9/basic_catalog/index.js.map +1 -0
- package/src/v0_9/catalog/function_invoker.d.ts +12 -0
- package/src/v0_9/catalog/function_invoker.d.ts.map +1 -0
- package/src/v0_9/catalog/function_invoker.js +17 -0
- package/src/v0_9/catalog/function_invoker.js.map +1 -0
- package/src/v0_9/catalog/types.d.ts +80 -0
- package/src/v0_9/catalog/types.d.ts.map +1 -0
- package/src/v0_9/catalog/types.js +68 -0
- package/src/v0_9/catalog/types.js.map +1 -0
- package/src/v0_9/catalog/types.test.d.ts +2 -0
- package/src/v0_9/catalog/types.test.d.ts.map +1 -0
- package/src/v0_9/catalog/types.test.js +88 -0
- package/src/v0_9/catalog/types.test.js.map +1 -0
- package/src/v0_9/common/events.d.ts +45 -0
- package/src/v0_9/common/events.d.ts.map +1 -0
- package/src/v0_9/common/events.js +58 -0
- package/src/v0_9/common/events.js.map +1 -0
- package/src/v0_9/common/events.test.d.ts +2 -0
- package/src/v0_9/common/events.test.d.ts.map +1 -0
- package/src/v0_9/common/events.test.js +58 -0
- package/src/v0_9/common/events.test.js.map +1 -0
- package/src/v0_9/errors.d.ts +40 -0
- package/src/v0_9/errors.d.ts.map +1 -0
- package/src/v0_9/errors.js +69 -0
- package/src/v0_9/errors.js.map +1 -0
- package/src/v0_9/index.d.ts +152 -0
- package/src/v0_9/index.d.ts.map +1 -0
- package/src/v0_9/index.js +41 -0
- package/src/v0_9/index.js.map +1 -0
- package/src/v0_9/processing/message-processor.d.ts +70 -0
- package/src/v0_9/processing/message-processor.d.ts.map +1 -0
- package/src/v0_9/processing/message-processor.js +289 -0
- package/src/v0_9/processing/message-processor.js.map +1 -0
- package/src/v0_9/processing/message-processor.test.js +547 -0
- package/src/v0_9/processing/message-processor.test.js.map +1 -0
- package/src/v0_9/reactivity/signals.d.ts +43 -0
- package/src/v0_9/reactivity/signals.d.ts.map +1 -0
- package/src/v0_9/reactivity/signals.js +17 -0
- package/src/v0_9/reactivity/signals.js.map +1 -0
- package/src/v0_9/reactivity/signals.test.d.ts +17 -0
- package/src/v0_9/reactivity/signals.test.d.ts.map +1 -0
- package/src/v0_9/reactivity/signals.test.js +100 -0
- package/src/v0_9/reactivity/signals.test.js.map +1 -0
- package/src/v0_9/rendering/component-context.d.ts +35 -0
- package/src/v0_9/rendering/component-context.d.ts.map +1 -0
- package/src/v0_9/rendering/component-context.js +49 -0
- package/src/v0_9/rendering/component-context.js.map +1 -0
- package/src/v0_9/rendering/component-context.test.d.ts +2 -0
- package/src/v0_9/rendering/component-context.test.d.ts.map +1 -0
- package/src/v0_9/rendering/component-context.test.js +55 -0
- package/src/v0_9/rendering/component-context.test.js.map +1 -0
- package/src/v0_9/rendering/data-context.d.ts +99 -0
- package/src/v0_9/rendering/data-context.d.ts.map +1 -0
- package/src/v0_9/rendering/data-context.js +310 -0
- package/src/v0_9/rendering/data-context.js.map +1 -0
- package/src/v0_9/rendering/data-context.test.js +379 -0
- package/src/v0_9/rendering/data-context.test.js.map +1 -0
- package/src/v0_9/rendering/generic-binder.d.ts +122 -0
- package/src/v0_9/rendering/generic-binder.d.ts.map +1 -0
- package/src/v0_9/rendering/generic-binder.js +315 -0
- package/src/v0_9/rendering/generic-binder.js.map +1 -0
- package/src/v0_9/rendering/generic-binder.test.d.ts +2 -0
- package/src/v0_9/rendering/generic-binder.test.d.ts.map +1 -0
- package/src/v0_9/rendering/generic-binder.test.js +166 -0
- package/src/v0_9/rendering/generic-binder.test.js.map +1 -0
- package/src/v0_9/schema/client-capabilities.d.ts +34 -0
- package/src/v0_9/schema/client-capabilities.d.ts.map +1 -0
- package/src/v0_9/schema/client-capabilities.js +17 -0
- package/src/v0_9/schema/client-capabilities.js.map +1 -0
- package/src/v0_9/schema/client-to-server.d.ts +208 -0
- package/src/v0_9/schema/client-to-server.d.ts.map +1 -0
- package/src/v0_9/schema/client-to-server.js +104 -0
- package/src/v0_9/schema/client-to-server.js.map +1 -0
- package/src/v0_9/schema/client-to-server.test.d.ts +2 -0
- package/src/v0_9/schema/client-to-server.test.d.ts.map +1 -0
- package/src/v0_9/schema/client-to-server.test.js +85 -0
- package/src/v0_9/schema/client-to-server.test.js.map +1 -0
- package/{dist/src → src}/v0_9/schema/common-types.d.ts +318 -88
- package/src/v0_9/schema/common-types.d.ts.map +1 -0
- package/src/v0_9/schema/common-types.js +141 -0
- package/src/v0_9/schema/common-types.js.map +1 -0
- package/src/v0_9/schema/index.d.ts +5 -0
- package/src/v0_9/schema/index.d.ts.map +1 -0
- package/src/v0_9/schema/index.js +20 -0
- package/src/v0_9/schema/index.js.map +1 -0
- package/src/v0_9/schema/server-to-client.d.ts +307 -0
- package/src/v0_9/schema/server-to-client.d.ts.map +1 -0
- package/src/v0_9/schema/server-to-client.js +92 -0
- package/src/v0_9/schema/server-to-client.js.map +1 -0
- package/src/v0_9/schema/verify-schema.test.d.ts +17 -0
- package/src/v0_9/schema/verify-schema.test.d.ts.map +1 -0
- package/src/v0_9/schema/verify-schema.test.js +174 -0
- package/src/v0_9/schema/verify-schema.test.js.map +1 -0
- package/src/v0_9/schemas/basic_catalog.json +1387 -0
- package/src/v0_9/schemas/client_capabilities.json +97 -0
- package/src/v0_9/schemas/client_data_model.json +22 -0
- package/src/v0_9/schemas/client_to_server.json +104 -0
- package/src/v0_9/schemas/client_to_server_list.json +10 -0
- package/src/v0_9/schemas/common_types.json +315 -0
- package/src/v0_9/schemas/sample.json +22 -0
- package/src/v0_9/schemas/server_capabilities.json +26 -0
- package/src/v0_9/schemas/server_to_client.json +131 -0
- package/src/v0_9/schemas/server_to_client_list.json +10 -0
- package/src/v0_9/state/component-model.d.ts +36 -0
- package/src/v0_9/state/component-model.d.ts.map +1 -0
- package/src/v0_9/state/component-model.js +65 -0
- package/src/v0_9/state/component-model.js.map +1 -0
- package/{dist/src → src}/v0_9/state/component-model.test.js +23 -0
- package/src/v0_9/state/component-model.test.js.map +1 -0
- package/src/v0_9/state/data-model.d.ts +75 -0
- package/src/v0_9/state/data-model.d.ts.map +1 -0
- package/src/v0_9/state/data-model.js +235 -0
- package/src/v0_9/state/data-model.js.map +1 -0
- package/{dist/src → src}/v0_9/state/data-model.test.js +77 -17
- package/src/v0_9/state/data-model.test.js.map +1 -0
- package/src/v0_9/state/surface-components-model.d.ts +45 -0
- package/src/v0_9/state/surface-components-model.d.ts.map +1 -0
- package/src/v0_9/state/surface-components-model.js +86 -0
- package/src/v0_9/state/surface-components-model.js.map +1 -0
- package/{dist/src → src}/v0_9/state/surface-components-model.test.js +44 -2
- package/src/v0_9/state/surface-components-model.test.js.map +1 -0
- package/{dist/src → src}/v0_9/state/surface-group-model.d.ts +28 -1
- package/src/v0_9/state/surface-group-model.d.ts.map +1 -0
- package/{dist/src → src}/v0_9/state/surface-group-model.js +44 -1
- package/src/v0_9/state/surface-group-model.js.map +1 -0
- package/{dist/src → src}/v0_9/state/surface-group-model.test.js +47 -6
- package/src/v0_9/state/surface-group-model.test.js.map +1 -0
- package/src/v0_9/state/surface-model.d.ts +62 -0
- package/src/v0_9/state/surface-model.d.ts.map +1 -0
- package/src/v0_9/state/surface-model.js +101 -0
- package/src/v0_9/state/surface-model.js.map +1 -0
- package/src/v0_9/state/surface-model.test.js +93 -0
- package/src/v0_9/state/surface-model.test.js.map +1 -0
- package/src/v0_9/test/function_execution.spec.d.ts +17 -0
- package/src/v0_9/test/function_execution.spec.d.ts.map +1 -0
- package/src/v0_9/test/function_execution.spec.js +127 -0
- package/src/v0_9/test/function_execution.spec.js.map +1 -0
- package/src/v0_9/test/test-utils.d.ts.map +1 -0
- package/{dist/src → src}/v0_9/test/test-utils.js +15 -0
- package/src/v0_9/test/test-utils.js.map +1 -0
- package/dist/.tsbuildinfo +0 -1
- package/dist/src/v0_8/data/model-processor.js.map +0 -1
- package/dist/src/v0_8/events/validation-event.d.ts.map +0 -1
- package/dist/src/v0_8/index.js +0 -12
- package/dist/src/v0_8/index.js.map +0 -1
- package/dist/src/v0_8/schemas/server_to_client_with_standard_catalog.json +0 -823
- package/dist/src/v0_8/styles/icons.d.ts +0 -11
- package/dist/src/v0_8/styles/index.js +0 -35
- package/dist/src/v0_8/styles/opacity.js +0 -24
- package/dist/src/v0_8/styles/shared.js +0 -17
- package/dist/src/v0_8/types/client-event.d.ts.map +0 -1
- package/dist/src/v0_8/types/client-event.js +0 -17
- package/dist/src/v0_8/types/colors.js +0 -19
- package/dist/src/v0_8/types/components.d.ts +0 -176
- package/dist/src/v0_8/types/components.d.ts.map +0 -1
- package/dist/src/v0_8/types/components.js +0 -17
- package/dist/src/v0_8/types/primitives.d.ts +0 -43
- package/dist/src/v0_8/types/primitives.d.ts.map +0 -1
- package/dist/src/v0_8/types/primitives.js +0 -17
- package/dist/src/v0_8/types/types.d.ts.map +0 -1
- package/dist/src/v0_8/types/types.js +0 -17
- package/dist/src/v0_9/catalog/types.d.ts +0 -27
- package/dist/src/v0_9/catalog/types.d.ts.map +0 -1
- package/dist/src/v0_9/catalog/types.js +0 -11
- package/dist/src/v0_9/catalog/types.js.map +0 -1
- package/dist/src/v0_9/common/events.d.ts +0 -24
- package/dist/src/v0_9/common/events.d.ts.map +0 -1
- package/dist/src/v0_9/common/events.js +0 -29
- package/dist/src/v0_9/common/events.js.map +0 -1
- package/dist/src/v0_9/index.d.ts +0 -11
- package/dist/src/v0_9/index.d.ts.map +0 -1
- package/dist/src/v0_9/index.js +0 -11
- package/dist/src/v0_9/index.js.map +0 -1
- package/dist/src/v0_9/processing/message-processor.d.ts +0 -34
- package/dist/src/v0_9/processing/message-processor.d.ts.map +0 -1
- package/dist/src/v0_9/processing/message-processor.js +0 -128
- package/dist/src/v0_9/processing/message-processor.js.map +0 -1
- package/dist/src/v0_9/processing/message-processor.test.js +0 -112
- package/dist/src/v0_9/processing/message-processor.test.js.map +0 -1
- package/dist/src/v0_9/rendering/component-context.d.ts +0 -17
- package/dist/src/v0_9/rendering/component-context.d.ts.map +0 -1
- package/dist/src/v0_9/rendering/component-context.js +0 -21
- package/dist/src/v0_9/rendering/component-context.js.map +0 -1
- package/dist/src/v0_9/rendering/data-context.d.ts +0 -37
- package/dist/src/v0_9/rendering/data-context.d.ts.map +0 -1
- package/dist/src/v0_9/rendering/data-context.js +0 -97
- package/dist/src/v0_9/rendering/data-context.js.map +0 -1
- package/dist/src/v0_9/rendering/data-context.test.js +0 -71
- package/dist/src/v0_9/rendering/data-context.test.js.map +0 -1
- package/dist/src/v0_9/schema/common-types.d.ts.map +0 -1
- package/dist/src/v0_9/schema/common-types.js +0 -92
- package/dist/src/v0_9/schema/common-types.js.map +0 -1
- package/dist/src/v0_9/schema/index.d.ts +0 -3
- package/dist/src/v0_9/schema/index.d.ts.map +0 -1
- package/dist/src/v0_9/schema/index.js +0 -3
- package/dist/src/v0_9/schema/index.js.map +0 -1
- package/dist/src/v0_9/schema/server-to-client.d.ts +0 -84
- package/dist/src/v0_9/schema/server-to-client.d.ts.map +0 -1
- package/dist/src/v0_9/schema/server-to-client.js +0 -21
- package/dist/src/v0_9/schema/server-to-client.js.map +0 -1
- package/dist/src/v0_9/state/component-model.d.ts +0 -16
- package/dist/src/v0_9/state/component-model.d.ts.map +0 -1
- package/dist/src/v0_9/state/component-model.js +0 -24
- package/dist/src/v0_9/state/component-model.js.map +0 -1
- package/dist/src/v0_9/state/component-model.test.js.map +0 -1
- package/dist/src/v0_9/state/data-model.d.ts +0 -47
- package/dist/src/v0_9/state/data-model.d.ts.map +0 -1
- package/dist/src/v0_9/state/data-model.js +0 -191
- package/dist/src/v0_9/state/data-model.js.map +0 -1
- package/dist/src/v0_9/state/data-model.test.js.map +0 -1
- package/dist/src/v0_9/state/surface-components-model.d.ts +0 -19
- package/dist/src/v0_9/state/surface-components-model.d.ts.map +0 -1
- package/dist/src/v0_9/state/surface-components-model.js +0 -42
- package/dist/src/v0_9/state/surface-components-model.js.map +0 -1
- package/dist/src/v0_9/state/surface-components-model.test.js.map +0 -1
- package/dist/src/v0_9/state/surface-group-model.d.ts.map +0 -1
- package/dist/src/v0_9/state/surface-group-model.js.map +0 -1
- package/dist/src/v0_9/state/surface-group-model.test.js.map +0 -1
- package/dist/src/v0_9/state/surface-model.d.ts +0 -23
- package/dist/src/v0_9/state/surface-model.d.ts.map +0 -1
- package/dist/src/v0_9/state/surface-model.js +0 -28
- package/dist/src/v0_9/state/surface-model.js.map +0 -1
- package/dist/src/v0_9/state/surface-model.test.js +0 -39
- package/dist/src/v0_9/state/surface-model.test.js.map +0 -1
- package/dist/src/v0_9/test/test-utils.d.ts.map +0 -1
- package/dist/src/v0_9/test/test-utils.js.map +0 -1
- package/src/v0_8/data/guards.ts +0 -236
- package/src/v0_8/data/model-processor.ts +0 -855
- package/src/v0_8/events/base.ts +0 -24
- package/src/v0_8/events/validation-event.ts +0 -66
- package/src/v0_8/index.ts +0 -12
- package/src/v0_8/styles/behavior.ts +0 -55
- package/src/v0_8/styles/border.ts +0 -42
- package/src/v0_8/styles/colors.ts +0 -100
- package/src/v0_8/styles/icons.ts +0 -60
- package/src/v0_8/styles/index.ts +0 -37
- package/src/v0_8/styles/layout.ts +0 -235
- package/src/v0_8/styles/opacity.ts +0 -24
- package/src/v0_8/styles/shared.ts +0 -17
- package/src/v0_8/styles/type.ts +0 -156
- package/src/v0_8/styles/utils.ts +0 -104
- package/src/v0_8/types/client-event.ts +0 -80
- package/src/v0_8/types/colors.ts +0 -66
- package/src/v0_8/types/components.ts +0 -213
- package/src/v0_8/types/primitives.ts +0 -60
- package/src/v0_8/types/types.ts +0 -557
- package/src/v0_9/catalog/types.ts +0 -38
- package/src/v0_9/common/events.ts +0 -44
- package/src/v0_9/index.ts +0 -12
- package/src/v0_9/processing/message-processor.test.ts +0 -133
- package/src/v0_9/processing/message-processor.ts +0 -150
- package/src/v0_9/rendering/component-context.ts +0 -36
- package/src/v0_9/rendering/data-context.test.ts +0 -85
- package/src/v0_9/rendering/data-context.ts +0 -110
- package/src/v0_9/schema/common-types.ts +0 -125
- package/src/v0_9/schema/index.ts +0 -2
- package/src/v0_9/schema/server-to-client.ts +0 -23
- package/src/v0_9/state/component-model.test.ts +0 -50
- package/src/v0_9/state/component-model.ts +0 -32
- package/src/v0_9/state/data-model.test.ts +0 -257
- package/src/v0_9/state/data-model.ts +0 -239
- package/src/v0_9/state/surface-components-model.test.ts +0 -59
- package/src/v0_9/state/surface-components-model.ts +0 -48
- package/src/v0_9/state/surface-group-model.test.ts +0 -82
- package/src/v0_9/state/surface-group-model.ts +0 -66
- package/src/v0_9/state/surface-model.test.ts +0 -44
- package/src/v0_9/state/surface-model.ts +0 -39
- package/src/v0_9/test/test-utils.ts +0 -22
- /package/{dist/src → src}/v0_8/data/guards.d.ts +0 -0
- /package/{dist/src → src}/v0_8/data/guards.d.ts.map +0 -0
- /package/{dist/src → src}/v0_8/data/guards.js.map +0 -0
- /package/{dist/src → src}/v0_8/events/base.d.ts +0 -0
- /package/{dist/src → src}/v0_8/events/base.d.ts.map +0 -0
- /package/{dist/src → src}/v0_8/events/base.js +0 -0
- /package/{dist/src → src}/v0_8/events/base.js.map +0 -0
- /package/{dist/src → src}/v0_8/events/index.d.ts +0 -0
- /package/{dist/src → src}/v0_8/events/index.d.ts.map +0 -0
- /package/{dist/src → src}/v0_8/events/index.js +0 -0
- /package/{dist/src → src}/v0_8/events/index.js.map +0 -0
- /package/{dist/src → src}/v0_8/events/validation-event.d.ts +0 -0
- /package/{dist/src → src}/v0_8/events/validation-event.js +0 -0
- /package/{dist/src → src}/v0_8/schemas/a2ui_client_capabilities_schema.json +0 -0
- /package/{dist/src → src}/v0_8/schemas/catalog_description_schema.json +0 -0
- /package/{dist/src → src}/v0_8/schemas/client_to_server.json +0 -0
- /package/{dist/src → src}/v0_8/styles/behavior.d.ts +0 -0
- /package/{dist/src → src}/v0_8/styles/behavior.d.ts.map +0 -0
- /package/{dist/src → src}/v0_8/styles/behavior.js.map +0 -0
- /package/{dist/src → src}/v0_8/styles/border.d.ts +0 -0
- /package/{dist/src → src}/v0_8/styles/border.d.ts.map +0 -0
- /package/{dist/src → src}/v0_8/styles/border.js.map +0 -0
- /package/{dist/src → src}/v0_8/styles/colors.d.ts +0 -0
- /package/{dist/src → src}/v0_8/styles/colors.d.ts.map +0 -0
- /package/{dist/src → src}/v0_8/styles/index.d.ts +0 -0
- /package/{dist/src → src}/v0_8/styles/index.d.ts.map +0 -0
- /package/{dist/src → src}/v0_8/styles/index.js.map +0 -0
- /package/{dist/src → src}/v0_8/styles/layout.d.ts +0 -0
- /package/{dist/src → src}/v0_8/styles/layout.d.ts.map +0 -0
- /package/{dist/src → src}/v0_8/styles/opacity.d.ts +0 -0
- /package/{dist/src → src}/v0_8/styles/opacity.d.ts.map +0 -0
- /package/{dist/src → src}/v0_8/styles/opacity.js.map +0 -0
- /package/{dist/src → src}/v0_8/styles/shared.d.ts +0 -0
- /package/{dist/src → src}/v0_8/styles/shared.d.ts.map +0 -0
- /package/{dist/src → src}/v0_8/styles/shared.js.map +0 -0
- /package/{dist/src → src}/v0_8/styles/type.d.ts +0 -0
- /package/{dist/src → src}/v0_8/styles/type.d.ts.map +0 -0
- /package/{dist/src → src}/v0_8/styles/type.js.map +0 -0
- /package/{dist/src → src}/v0_8/styles/utils.d.ts +0 -0
- /package/{dist/src → src}/v0_8/styles/utils.d.ts.map +0 -0
- /package/{dist/src → src}/v0_8/styles/utils.js.map +0 -0
- /package/{dist/src → src}/v0_8/types/client-event.js.map +0 -0
- /package/{dist/src → src}/v0_8/types/colors.d.ts +0 -0
- /package/{dist/src → src}/v0_8/types/colors.d.ts.map +0 -0
- /package/{dist/src → src}/v0_8/types/colors.js.map +0 -0
- /package/{dist/src → src}/v0_8/types/components.js.map +0 -0
- /package/{dist/src → src}/v0_8/types/primitives.js.map +0 -0
- /package/{dist/src → src}/v0_8/types/types.js.map +0 -0
- /package/{dist/src → src}/v0_9/processing/message-processor.test.d.ts +0 -0
- /package/{dist/src → src}/v0_9/processing/message-processor.test.d.ts.map +0 -0
- /package/{dist/src → src}/v0_9/rendering/data-context.test.d.ts +0 -0
- /package/{dist/src → src}/v0_9/rendering/data-context.test.d.ts.map +0 -0
- /package/{dist/src → src}/v0_9/state/component-model.test.d.ts +0 -0
- /package/{dist/src → src}/v0_9/state/component-model.test.d.ts.map +0 -0
- /package/{dist/src → src}/v0_9/state/data-model.test.d.ts +0 -0
- /package/{dist/src → src}/v0_9/state/data-model.test.d.ts.map +0 -0
- /package/{dist/src → src}/v0_9/state/surface-components-model.test.d.ts +0 -0
- /package/{dist/src → src}/v0_9/state/surface-components-model.test.d.ts.map +0 -0
- /package/{dist/src → src}/v0_9/state/surface-group-model.test.d.ts +0 -0
- /package/{dist/src → src}/v0_9/state/surface-group-model.test.d.ts.map +0 -0
- /package/{dist/src → src}/v0_9/state/surface-model.test.d.ts +0 -0
- /package/{dist/src → src}/v0_9/state/surface-model.test.d.ts.map +0 -0
- /package/{dist/src → src}/v0_9/test/test-utils.d.ts +0 -0
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2025 Google LLC
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* https://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { z } from 'zod';
|
|
17
|
+
import { A2uiExpressionError } from '../errors.js';
|
|
18
|
+
/**
|
|
19
|
+
* Robust check for a Preact Signal that works across package boundaries.
|
|
20
|
+
*/
|
|
21
|
+
export function isSignal(val) {
|
|
22
|
+
return val && typeof val === 'object' && 'value' in val && 'peek' in val;
|
|
23
|
+
}
|
|
24
|
+
export function createFunctionImplementation(api, execute) {
|
|
25
|
+
return {
|
|
26
|
+
name: api.name,
|
|
27
|
+
returnType: api.returnType,
|
|
28
|
+
schema: api.schema,
|
|
29
|
+
execute: execute,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* A collection of available components and functions.
|
|
34
|
+
*/
|
|
35
|
+
export class Catalog {
|
|
36
|
+
constructor(id, components, functions = [], themeSchema) {
|
|
37
|
+
this.id = id;
|
|
38
|
+
const compMap = new Map();
|
|
39
|
+
for (const comp of components) {
|
|
40
|
+
compMap.set(comp.name, comp);
|
|
41
|
+
}
|
|
42
|
+
this.components = compMap;
|
|
43
|
+
const funcMap = new Map();
|
|
44
|
+
for (const fn of functions) {
|
|
45
|
+
funcMap.set(fn.name, fn);
|
|
46
|
+
}
|
|
47
|
+
this.functions = funcMap;
|
|
48
|
+
this.themeSchema = themeSchema;
|
|
49
|
+
this.invoker = (name, rawArgs, ctx, abortSignal) => {
|
|
50
|
+
const fn = this.functions.get(name);
|
|
51
|
+
if (!fn) {
|
|
52
|
+
throw new A2uiExpressionError(`Function not found in catalog '${this.id}': ${name}`, name);
|
|
53
|
+
}
|
|
54
|
+
// Provides runtime safety: Coerces and strips invalid arguments before execute()
|
|
55
|
+
try {
|
|
56
|
+
const safeArgs = fn.schema.parse(rawArgs);
|
|
57
|
+
return fn.execute(safeArgs, ctx, abortSignal);
|
|
58
|
+
}
|
|
59
|
+
catch (e) {
|
|
60
|
+
if (e?.name === 'ZodError' || e instanceof z.ZodError) {
|
|
61
|
+
throw new A2uiExpressionError(`Validation failed for function '${name}': ${e.message}`, name, e.errors ?? e.issues);
|
|
62
|
+
}
|
|
63
|
+
throw e;
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/v0_9/catalog/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAGtB,OAAO,EAAC,mBAAmB,EAAC,MAAM,cAAc,CAAC;AAEjD;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAQ;IAC/B,OAAO,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,IAAI,GAAG,IAAI,MAAM,IAAI,GAAG,CAAC;AAC3E,CAAC;AA6CD,MAAM,UAAU,4BAA4B,CAI1C,GAAwD,EACxD,OAIwE;IAExE,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,OAAO,EAAE,OAIG;KACb,CAAC;AACJ,CAAC;AAkCD;;GAEG;AACH,MAAM,OAAO,OAAO;IAyBlB,YACE,EAAU,EACV,UAAe,EACf,YAAsC,EAAE,EACxC,WAA8B;QAE9B,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QAEb,MAAM,OAAO,GAAG,IAAI,GAAG,EAAa,CAAC;QACrC,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC/B,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;QAE1B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkC,CAAC;QAC1D,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;QAEzB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAE/B,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,EAAE;YACjD,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACpC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,MAAM,IAAI,mBAAmB,CAC3B,kCAAkC,IAAI,CAAC,EAAE,MAAM,IAAI,EAAE,EACrD,IAAI,CACL,CAAC;YACJ,CAAC;YAED,iFAAiF;YACjF,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC1C,OAAO,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;YAChD,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBAChB,IAAI,CAAC,EAAE,IAAI,KAAK,UAAU,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;oBACtD,MAAM,IAAI,mBAAmB,CAC3B,mCAAmC,IAAI,MAAM,CAAC,CAAC,OAAO,EAAE,EACxD,IAAI,EACJ,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CACrB,CAAC;gBACJ,CAAC;gBACD,MAAM,CAAC,CAAC;YACV,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.test.d.ts","sourceRoot":"","sources":["../../../../src/v0_9/catalog/types.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2025 Google LLC
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* https://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import assert from 'node:assert';
|
|
17
|
+
import { describe, it } from 'node:test';
|
|
18
|
+
import { Catalog, createFunctionImplementation, } from './types.js';
|
|
19
|
+
import { A2uiExpressionError } from '../errors.js';
|
|
20
|
+
import { z } from 'zod';
|
|
21
|
+
describe('Catalog Types', () => {
|
|
22
|
+
it('creates a catalog with functions', () => {
|
|
23
|
+
const mockComponent = {
|
|
24
|
+
name: 'MockComp',
|
|
25
|
+
schema: z.object({}),
|
|
26
|
+
};
|
|
27
|
+
const mockFunc = createFunctionImplementation({
|
|
28
|
+
name: 'mockFunc',
|
|
29
|
+
returnType: 'string',
|
|
30
|
+
schema: z.object({}),
|
|
31
|
+
}, () => 'result');
|
|
32
|
+
const catalog = new Catalog('test-cat', [mockComponent], [mockFunc]);
|
|
33
|
+
assert.strictEqual(catalog.id, 'test-cat');
|
|
34
|
+
assert.strictEqual(catalog.components.size, 1);
|
|
35
|
+
assert.strictEqual(catalog.components.get('MockComp'), mockComponent);
|
|
36
|
+
assert.ok(catalog.functions);
|
|
37
|
+
assert.strictEqual(catalog.functions.size, 1);
|
|
38
|
+
assert.strictEqual(catalog.functions.get('mockFunc'), mockFunc);
|
|
39
|
+
});
|
|
40
|
+
it('throws A2uiExpressionError when function is not found', () => {
|
|
41
|
+
const catalog = new Catalog('test-cat', []);
|
|
42
|
+
const ctx = {};
|
|
43
|
+
assert.throws(() => catalog.invoker('nonExistent', {}, ctx), (err) => {
|
|
44
|
+
return (err instanceof A2uiExpressionError &&
|
|
45
|
+
err.message.includes('Function not found') &&
|
|
46
|
+
err.expression === 'nonExistent');
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
it('throws A2uiExpressionError when zod validation fails', () => {
|
|
50
|
+
const mockFunc = createFunctionImplementation({
|
|
51
|
+
name: 'test',
|
|
52
|
+
returnType: 'string',
|
|
53
|
+
schema: z.object({
|
|
54
|
+
requiredField: z.string(),
|
|
55
|
+
}),
|
|
56
|
+
}, () => 'result');
|
|
57
|
+
const catalog = new Catalog('test-cat', [], [mockFunc]);
|
|
58
|
+
const ctx = {};
|
|
59
|
+
assert.throws(() => catalog.invoker('test', {}, ctx), (err) => {
|
|
60
|
+
return (err instanceof A2uiExpressionError &&
|
|
61
|
+
err.message.includes('Validation failed') &&
|
|
62
|
+
err.expression === 'test' &&
|
|
63
|
+
Array.isArray(err.details));
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
describe('InferredComponentApiSchemaType', () => {
|
|
68
|
+
it('infers the correct schema type from a ComponentApi', () => {
|
|
69
|
+
const mockSchema = z.object({
|
|
70
|
+
field1: z.string(),
|
|
71
|
+
field2: z.number().optional(),
|
|
72
|
+
});
|
|
73
|
+
const mockApi = {
|
|
74
|
+
name: 'MockComp',
|
|
75
|
+
schema: mockSchema,
|
|
76
|
+
};
|
|
77
|
+
assert.ok(mockApi);
|
|
78
|
+
// inferredIsAny only accepts "true" if `InferredType` is "any".
|
|
79
|
+
// This happens when `mockApi: ComponentApi`, but doesn't when
|
|
80
|
+
// `mockApi {} satisfies ComponentApi`!
|
|
81
|
+
const inferredIsAny = false;
|
|
82
|
+
assert.strictEqual(inferredIsAny, false);
|
|
83
|
+
// typesMatchExact only accepts "true" if `TypesAreEquivalent`
|
|
84
|
+
const typesMatchExact = true;
|
|
85
|
+
assert.strictEqual(typesMatchExact, true);
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
//# sourceMappingURL=types.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.test.js","sourceRoot":"","sources":["../../../../src/v0_9/catalog/types.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/** Standard cleanup interface returned by all subscriptions. */
|
|
2
|
+
export interface Subscription {
|
|
3
|
+
/** Unsubscribes from the event source. */
|
|
4
|
+
unsubscribe(): void;
|
|
5
|
+
}
|
|
6
|
+
/** A function that handles emitted events. */
|
|
7
|
+
export type EventListener<T> = (data: T) => void | Promise<void>;
|
|
8
|
+
/**
|
|
9
|
+
* Public interface exposed by models.
|
|
10
|
+
* Allows ONLY subscribing to events.
|
|
11
|
+
*/
|
|
12
|
+
export interface EventSource<T> {
|
|
13
|
+
/**
|
|
14
|
+
* Subscribes to the event.
|
|
15
|
+
*
|
|
16
|
+
* @param listener The listener function to call when the event is emitted.
|
|
17
|
+
* @returns A subscription object that can be used to unsubscribe.
|
|
18
|
+
*/
|
|
19
|
+
subscribe(listener: EventListener<T>): Subscription;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Internal implementation used by the model.
|
|
23
|
+
* Implements EventSource but also provides the 'emit' method.
|
|
24
|
+
*/
|
|
25
|
+
export declare class EventEmitter<T> implements EventSource<T> {
|
|
26
|
+
private listeners;
|
|
27
|
+
/**
|
|
28
|
+
* Subscribes to the event.
|
|
29
|
+
*
|
|
30
|
+
* @param listener The listener function to call when the event is emitted.
|
|
31
|
+
* @returns A subscription object that can be used to unsubscribe.
|
|
32
|
+
*/
|
|
33
|
+
subscribe(listener: EventListener<T>): Subscription;
|
|
34
|
+
/**
|
|
35
|
+
* Emits an event to all subscribers.
|
|
36
|
+
*
|
|
37
|
+
* @param data The data to pass to subscribers.
|
|
38
|
+
*/
|
|
39
|
+
emit(data: T): Promise<void>;
|
|
40
|
+
/**
|
|
41
|
+
* Removes all listeners.
|
|
42
|
+
*/
|
|
43
|
+
dispose(): void;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../../src/v0_9/common/events.ts"],"names":[],"mappings":"AAgBA,gEAAgE;AAChE,MAAM,WAAW,YAAY;IAC3B,0CAA0C;IAC1C,WAAW,IAAI,IAAI,CAAC;CACrB;AAED,8CAA8C;AAC9C,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAEjE;;;GAGG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC;CACrD;AAED;;;GAGG;AACH,qBAAa,YAAY,CAAC,CAAC,CAAE,YAAW,WAAW,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,SAAS,CAA+B;IAEhD;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,YAAY;IAOnD;;;;OAIG;IACG,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAUlC;;OAEG;IACH,OAAO,IAAI,IAAI;CAGhB"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2025 Google LLC
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* https://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Internal implementation used by the model.
|
|
18
|
+
* Implements EventSource but also provides the 'emit' method.
|
|
19
|
+
*/
|
|
20
|
+
export class EventEmitter {
|
|
21
|
+
constructor() {
|
|
22
|
+
this.listeners = new Set();
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Subscribes to the event.
|
|
26
|
+
*
|
|
27
|
+
* @param listener The listener function to call when the event is emitted.
|
|
28
|
+
* @returns A subscription object that can be used to unsubscribe.
|
|
29
|
+
*/
|
|
30
|
+
subscribe(listener) {
|
|
31
|
+
this.listeners.add(listener);
|
|
32
|
+
return {
|
|
33
|
+
unsubscribe: () => this.listeners.delete(listener),
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Emits an event to all subscribers.
|
|
38
|
+
*
|
|
39
|
+
* @param data The data to pass to subscribers.
|
|
40
|
+
*/
|
|
41
|
+
async emit(data) {
|
|
42
|
+
for (const listener of this.listeners) {
|
|
43
|
+
try {
|
|
44
|
+
await listener(data);
|
|
45
|
+
}
|
|
46
|
+
catch (e) {
|
|
47
|
+
console.error('EventEmitter error:', e);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Removes all listeners.
|
|
53
|
+
*/
|
|
54
|
+
dispose() {
|
|
55
|
+
this.listeners.clear();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../../src/v0_9/common/events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAyBH;;;GAGG;AACH,MAAM,OAAO,YAAY;IAAzB;QACU,cAAS,GAAG,IAAI,GAAG,EAAoB,CAAC;IAoClD,CAAC;IAlCC;;;;;OAKG;IACH,SAAS,CAAC,QAA0B;QAClC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7B,OAAO;YACL,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC;SACnD,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,IAAI,CAAC,IAAO;QAChB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,IAAI,CAAC;gBACH,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,OAAO;QACL,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.test.d.ts","sourceRoot":"","sources":["../../../../src/v0_9/common/events.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2025 Google LLC
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* https://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import assert from 'node:assert';
|
|
17
|
+
import { describe, it } from 'node:test';
|
|
18
|
+
import { EventEmitter } from './events.js';
|
|
19
|
+
describe('Events', () => {
|
|
20
|
+
it('handles subscriptions and unsubscriptions correctly', async () => {
|
|
21
|
+
const emitter = new EventEmitter();
|
|
22
|
+
let callCount = 0;
|
|
23
|
+
let lastValue = '';
|
|
24
|
+
const listener = (val) => {
|
|
25
|
+
callCount++;
|
|
26
|
+
lastValue = val;
|
|
27
|
+
};
|
|
28
|
+
const sub = emitter.subscribe(listener);
|
|
29
|
+
await emitter.emit('hello');
|
|
30
|
+
assert.strictEqual(callCount, 1);
|
|
31
|
+
assert.strictEqual(lastValue, 'hello');
|
|
32
|
+
sub.unsubscribe();
|
|
33
|
+
await emitter.emit('world');
|
|
34
|
+
assert.strictEqual(callCount, 1); // Should not increase
|
|
35
|
+
assert.strictEqual(lastValue, 'hello'); // Should not change
|
|
36
|
+
});
|
|
37
|
+
it('handles errors thrown by listeners', async () => {
|
|
38
|
+
const emitter = new EventEmitter();
|
|
39
|
+
const originalConsoleError = console.error;
|
|
40
|
+
let errorLogged = false;
|
|
41
|
+
console.error = (msg, e) => {
|
|
42
|
+
if (msg === 'EventEmitter error:' && e.message === 'Test Error') {
|
|
43
|
+
errorLogged = true;
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
try {
|
|
47
|
+
emitter.subscribe(() => {
|
|
48
|
+
throw new Error('Test Error');
|
|
49
|
+
});
|
|
50
|
+
await emitter.emit('trigger');
|
|
51
|
+
assert.strictEqual(errorLogged, true);
|
|
52
|
+
}
|
|
53
|
+
finally {
|
|
54
|
+
console.error = originalConsoleError;
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
//# sourceMappingURL=events.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.test.js","sourceRoot":"","sources":["../../../../src/v0_9/common/events.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAC,QAAQ,EAAE,EAAE,EAAC,MAAM,WAAW,CAAC;AACvC,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AAEzC,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACnE,MAAM,OAAO,GAAG,IAAI,YAAY,EAAU,CAAC;QAC3C,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,SAAS,GAAG,EAAE,CAAC;QAEnB,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAE,EAAE;YAC/B,SAAS,EAAE,CAAC;YACZ,SAAS,GAAG,GAAG,CAAC;QAClB,CAAC,CAAC;QAEF,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAExC,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QACjC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAEvC,GAAG,CAAC,WAAW,EAAE,CAAC;QAElB,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,sBAAsB;QACxD,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,oBAAoB;IAC9D,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,OAAO,GAAG,IAAI,YAAY,EAAU,CAAC;QAC3C,MAAM,oBAAoB,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3C,IAAI,WAAW,GAAG,KAAK,CAAC;QAExB,OAAO,CAAC,KAAK,GAAG,CAAC,GAAW,EAAE,CAAM,EAAE,EAAE;YACtC,IAAI,GAAG,KAAK,qBAAqB,IAAI,CAAC,CAAC,OAAO,KAAK,YAAY,EAAE,CAAC;gBAChE,WAAW,GAAG,IAAI,CAAC;YACrB,CAAC;QACH,CAAC,CAAC;QAEF,IAAI,CAAC;YACH,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE;gBACrB,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;YAChC,CAAC,CAAC,CAAC;YACH,MAAM,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC9B,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QACxC,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,KAAK,GAAG,oBAAoB,CAAC;QACvC,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base class for all A2UI specific errors.
|
|
3
|
+
*
|
|
4
|
+
* Includes a machine-readable `code` for categorical handling and ensures
|
|
5
|
+
* proper stack trace capturing.
|
|
6
|
+
*/
|
|
7
|
+
export declare class A2uiError extends Error {
|
|
8
|
+
/** A machine-readable string identifying the error category. */
|
|
9
|
+
readonly code: string;
|
|
10
|
+
constructor(message: string, code?: string);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Thrown when JSON validation fails or schemas are mismatched.
|
|
14
|
+
*/
|
|
15
|
+
export declare class A2uiValidationError extends A2uiError {
|
|
16
|
+
readonly details?: any | undefined;
|
|
17
|
+
constructor(message: string, details?: any | undefined);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Thrown during DataModel mutations (invalid paths, type mismatches).
|
|
21
|
+
*/
|
|
22
|
+
export declare class A2uiDataError extends A2uiError {
|
|
23
|
+
readonly path?: string | undefined;
|
|
24
|
+
constructor(message: string, path?: string | undefined);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Thrown during string interpolation and function evaluation.
|
|
28
|
+
*/
|
|
29
|
+
export declare class A2uiExpressionError extends A2uiError {
|
|
30
|
+
readonly expression?: string | undefined;
|
|
31
|
+
readonly details?: any | undefined;
|
|
32
|
+
constructor(message: string, expression?: string | undefined, details?: any | undefined);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Thrown for structural issues in the UI tree (missing surfaces, duplicate components).
|
|
36
|
+
*/
|
|
37
|
+
export declare class A2uiStateError extends A2uiError {
|
|
38
|
+
constructor(message: string);
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/v0_9/errors.ts"],"names":[],"mappings":"AAwBA;;;;;GAKG;AACH,qBAAa,SAAU,SAAQ,KAAK;IAClC,gEAAgE;IAChE,SAAgB,IAAI,EAAE,MAAM,CAAC;gBAEjB,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAwB;CAU5D;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,SAAS;aAG9B,OAAO,CAAC,EAAE,GAAG;gBAD7B,OAAO,EAAE,MAAM,EACC,OAAO,CAAC,EAAE,GAAG,YAAA;CAIhC;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,SAAS;aAGxB,IAAI,CAAC,EAAE,MAAM;gBAD7B,OAAO,EAAE,MAAM,EACC,IAAI,CAAC,EAAE,MAAM,YAAA;CAIhC;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,SAAS;aAG9B,UAAU,CAAC,EAAE,MAAM;aACnB,OAAO,CAAC,EAAE,GAAG;gBAF7B,OAAO,EAAE,MAAM,EACC,UAAU,CAAC,EAAE,MAAM,YAAA,EACnB,OAAO,CAAC,EAAE,GAAG,YAAA;CAIhC;AAED;;GAEG;AACH,qBAAa,cAAe,SAAQ,SAAS;gBAC/B,OAAO,EAAE,MAAM;CAG5B"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2025 Google LLC
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* https://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Base class for all A2UI specific errors.
|
|
18
|
+
*
|
|
19
|
+
* Includes a machine-readable `code` for categorical handling and ensures
|
|
20
|
+
* proper stack trace capturing.
|
|
21
|
+
*/
|
|
22
|
+
export class A2uiError extends Error {
|
|
23
|
+
constructor(message, code = 'UNKNOWN_ERROR') {
|
|
24
|
+
super(message);
|
|
25
|
+
this.name = this.constructor.name;
|
|
26
|
+
this.code = code;
|
|
27
|
+
// Maintains proper stack trace for where our error was thrown (only available on V8)
|
|
28
|
+
if (Error.captureStackTrace) {
|
|
29
|
+
Error.captureStackTrace(this, this.constructor);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Thrown when JSON validation fails or schemas are mismatched.
|
|
35
|
+
*/
|
|
36
|
+
export class A2uiValidationError extends A2uiError {
|
|
37
|
+
constructor(message, details) {
|
|
38
|
+
super(message, 'VALIDATION_ERROR');
|
|
39
|
+
this.details = details;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Thrown during DataModel mutations (invalid paths, type mismatches).
|
|
44
|
+
*/
|
|
45
|
+
export class A2uiDataError extends A2uiError {
|
|
46
|
+
constructor(message, path) {
|
|
47
|
+
super(message, 'DATA_ERROR');
|
|
48
|
+
this.path = path;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Thrown during string interpolation and function evaluation.
|
|
53
|
+
*/
|
|
54
|
+
export class A2uiExpressionError extends A2uiError {
|
|
55
|
+
constructor(message, expression, details) {
|
|
56
|
+
super(message, 'EXPRESSION_ERROR');
|
|
57
|
+
this.expression = expression;
|
|
58
|
+
this.details = details;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Thrown for structural issues in the UI tree (missing surfaces, duplicate components).
|
|
63
|
+
*/
|
|
64
|
+
export class A2uiStateError extends A2uiError {
|
|
65
|
+
constructor(message) {
|
|
66
|
+
super(message, 'STATE_ERROR');
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/v0_9/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAUH;;;;;GAKG;AACH,MAAM,OAAO,SAAU,SAAQ,KAAK;IAIlC,YAAY,OAAe,EAAE,OAAe,eAAe;QACzD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,qFAAqF;QACrF,IAAK,KAA4B,CAAC,iBAAiB,EAAE,CAAC;YACnD,KAA4B,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,mBAAoB,SAAQ,SAAS;IAChD,YACE,OAAe,EACC,OAAa;QAE7B,KAAK,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;QAFnB,YAAO,GAAP,OAAO,CAAM;IAG/B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,SAAS;IAC1C,YACE,OAAe,EACC,IAAa;QAE7B,KAAK,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAFb,SAAI,GAAJ,IAAI,CAAS;IAG/B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,mBAAoB,SAAQ,SAAS;IAChD,YACE,OAAe,EACC,UAAmB,EACnB,OAAa;QAE7B,KAAK,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;QAHnB,eAAU,GAAV,UAAU,CAAS;QACnB,YAAO,GAAP,OAAO,CAAM;IAG/B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,cAAe,SAAQ,SAAS;IAC3C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAChC,CAAC;CACF"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core rendering and state management logic for A2UI v0.9.
|
|
3
|
+
*
|
|
4
|
+
* This module exports the fundamental building blocks for building web-based A2UI renderers,
|
|
5
|
+
* including the data model, component model, and expression parsing logic.
|
|
6
|
+
*/
|
|
7
|
+
export * from './catalog/function_invoker.js';
|
|
8
|
+
export * from './catalog/types.js';
|
|
9
|
+
export * from './common/events.js';
|
|
10
|
+
export * from './processing/message-processor.js';
|
|
11
|
+
export * from './rendering/component-context.js';
|
|
12
|
+
export * from './rendering/data-context.js';
|
|
13
|
+
export * from './rendering/generic-binder.js';
|
|
14
|
+
export * from './schema/index.js';
|
|
15
|
+
export * from './state/component-model.js';
|
|
16
|
+
export * from './state/data-model.js';
|
|
17
|
+
export * from './state/surface-components-model.js';
|
|
18
|
+
export * from './state/surface-group-model.js';
|
|
19
|
+
export * from './state/surface-model.js';
|
|
20
|
+
export * from './errors.js';
|
|
21
|
+
export { effect, Signal, signal } from '@preact/signals-core';
|
|
22
|
+
export declare const Schemas: {
|
|
23
|
+
A2uiMessageSchemaRaw: {
|
|
24
|
+
$schema: string;
|
|
25
|
+
$id: string;
|
|
26
|
+
title: string;
|
|
27
|
+
description: string;
|
|
28
|
+
type: string;
|
|
29
|
+
oneOf: {
|
|
30
|
+
$ref: string;
|
|
31
|
+
}[];
|
|
32
|
+
$defs: {
|
|
33
|
+
CreateSurfaceMessage: {
|
|
34
|
+
type: string;
|
|
35
|
+
properties: {
|
|
36
|
+
version: {
|
|
37
|
+
const: string;
|
|
38
|
+
};
|
|
39
|
+
createSurface: {
|
|
40
|
+
type: string;
|
|
41
|
+
description: string;
|
|
42
|
+
properties: {
|
|
43
|
+
surfaceId: {
|
|
44
|
+
type: string;
|
|
45
|
+
description: string;
|
|
46
|
+
};
|
|
47
|
+
catalogId: {
|
|
48
|
+
description: string;
|
|
49
|
+
type: string;
|
|
50
|
+
};
|
|
51
|
+
theme: {
|
|
52
|
+
$ref: string;
|
|
53
|
+
description: string;
|
|
54
|
+
};
|
|
55
|
+
sendDataModel: {
|
|
56
|
+
type: string;
|
|
57
|
+
description: string;
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
required: string[];
|
|
61
|
+
additionalProperties: boolean;
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
required: string[];
|
|
65
|
+
additionalProperties: boolean;
|
|
66
|
+
};
|
|
67
|
+
UpdateComponentsMessage: {
|
|
68
|
+
type: string;
|
|
69
|
+
properties: {
|
|
70
|
+
version: {
|
|
71
|
+
const: string;
|
|
72
|
+
};
|
|
73
|
+
updateComponents: {
|
|
74
|
+
type: string;
|
|
75
|
+
description: string;
|
|
76
|
+
properties: {
|
|
77
|
+
surfaceId: {
|
|
78
|
+
type: string;
|
|
79
|
+
description: string;
|
|
80
|
+
};
|
|
81
|
+
components: {
|
|
82
|
+
type: string;
|
|
83
|
+
description: string;
|
|
84
|
+
minItems: number;
|
|
85
|
+
items: {
|
|
86
|
+
$ref: string;
|
|
87
|
+
};
|
|
88
|
+
};
|
|
89
|
+
};
|
|
90
|
+
required: string[];
|
|
91
|
+
additionalProperties: boolean;
|
|
92
|
+
};
|
|
93
|
+
};
|
|
94
|
+
required: string[];
|
|
95
|
+
additionalProperties: boolean;
|
|
96
|
+
};
|
|
97
|
+
UpdateDataModelMessage: {
|
|
98
|
+
type: string;
|
|
99
|
+
properties: {
|
|
100
|
+
version: {
|
|
101
|
+
const: string;
|
|
102
|
+
};
|
|
103
|
+
updateDataModel: {
|
|
104
|
+
type: string;
|
|
105
|
+
description: string;
|
|
106
|
+
properties: {
|
|
107
|
+
surfaceId: {
|
|
108
|
+
type: string;
|
|
109
|
+
description: string;
|
|
110
|
+
};
|
|
111
|
+
path: {
|
|
112
|
+
type: string;
|
|
113
|
+
description: string;
|
|
114
|
+
};
|
|
115
|
+
value: {
|
|
116
|
+
description: string;
|
|
117
|
+
additionalProperties: boolean;
|
|
118
|
+
};
|
|
119
|
+
};
|
|
120
|
+
required: string[];
|
|
121
|
+
additionalProperties: boolean;
|
|
122
|
+
};
|
|
123
|
+
};
|
|
124
|
+
required: string[];
|
|
125
|
+
additionalProperties: boolean;
|
|
126
|
+
};
|
|
127
|
+
DeleteSurfaceMessage: {
|
|
128
|
+
type: string;
|
|
129
|
+
properties: {
|
|
130
|
+
version: {
|
|
131
|
+
const: string;
|
|
132
|
+
};
|
|
133
|
+
deleteSurface: {
|
|
134
|
+
type: string;
|
|
135
|
+
description: string;
|
|
136
|
+
properties: {
|
|
137
|
+
surfaceId: {
|
|
138
|
+
type: string;
|
|
139
|
+
description: string;
|
|
140
|
+
};
|
|
141
|
+
};
|
|
142
|
+
required: string[];
|
|
143
|
+
additionalProperties: boolean;
|
|
144
|
+
};
|
|
145
|
+
};
|
|
146
|
+
required: string[];
|
|
147
|
+
additionalProperties: boolean;
|
|
148
|
+
};
|
|
149
|
+
};
|
|
150
|
+
};
|
|
151
|
+
};
|
|
152
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/v0_9/index.ts"],"names":[],"mappings":"AAgBA;;;;;GAKG;AAEH,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mCAAmC,CAAC;AAClD,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,qCAAqC,CAAC;AACpD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAE5B,OAAO,EAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAC,MAAM,sBAAsB,CAAC;AAI5D,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAEnB,CAAC"}
|