@siliconst/metaui 1.4.17 → 1.4.21
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/package.json +1 -1
- package/src/nz/co/siliconst/ui5/metaui/ai/AIConfig-dbg.js +47 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/AIConfig-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/AIConfig.d.ts +28 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/AIConfig.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/AIConfig.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/AIConfig.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/AIConfig.ts +39 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator-dbg.js +83 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator.d.ts +30 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator.ts +74 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/MockLLMProxy-dbg.js +61 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/MockLLMProxy-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/MockLLMProxy.d.ts +13 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/MockLLMProxy.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/MockLLMProxy.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/MockLLMProxy.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/MockLLMProxy.ts +59 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/RestLLMProxy-dbg.js +50 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/RestLLMProxy-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/RestLLMProxy.d.ts +12 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/RestLLMProxy.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/RestLLMProxy.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/RestLLMProxy.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/ai/RestLLMProxy.ts +44 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost-dbg.js +87 -16
- package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.d.ts +20 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.ts +79 -18
- package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost-dbg.js +44 -4
- package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.d.ts +23 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.ts +35 -5
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate-dbg.js +35 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.d.ts +8 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.ts +37 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate-dbg.js +13 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate.d.ts +4 -0
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate.ts +13 -0
- package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator-dbg.js +11 -32
- package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator.ts +9 -13
- package/src/nz/co/siliconst/ui5/metaui/core/Engine-dbg.js +14 -6
- package/src/nz/co/siliconst/ui5/metaui/core/Engine-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/Engine.d.ts +7 -1
- package/src/nz/co/siliconst/ui5/metaui/core/Engine.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/Engine.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/Engine.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/Engine.ts +21 -11
- package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry-dbg.js +6 -0
- package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.ts +6 -0
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaBuilderRegistry-dbg.js +3 -3
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaBuilderRegistry-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaBuilderRegistry.d.ts +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaBuilderRegistry.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaBuilderRegistry.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaBuilderRegistry.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaBuilderRegistry.ts +3 -3
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer-dbg.js +4 -4
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.d.ts +2 -2
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.ts +10 -10
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator-dbg.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.ts +1 -1
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin.d.ts +1 -1
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin.ts +1 -1
- package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema.d.ts +19 -3
- package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema.ts +22 -3
- package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchemaBuilderPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchemaBuilderPlugin.d.ts +3 -2
- package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchemaBuilderPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchemaBuilderPlugin.ts +3 -2
- package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout-dbg.js +18 -2
- package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.ts +19 -2
- package/src/nz/co/siliconst/ui5/metaui/library-dbg.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/library-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/library-preload.js +66 -44
- package/src/nz/co/siliconst/ui5/metaui/library-preload.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/library.d.ts +4 -0
- package/src/nz/co/siliconst/ui5/metaui/library.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/library.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/library.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/library.ts +6 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiBuilder-dbg.js +93 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiBuilder-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiBuilder.d.ts +52 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiBuilder.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiBuilder.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiBuilder.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiBuilder.ts +88 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory-dbg.js +47 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory.d.ts +25 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory.ts +43 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver-dbg.js +68 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver.d.ts +21 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver.ts +61 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiTypeMapper-dbg.js +45 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiTypeMapper-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiTypeMapper.d.ts +25 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiTypeMapper.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/{swagger/SwaggerTypeMapper.js → openapi/OpenApiTypeMapper.js} +2 -2
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiTypeMapper.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiTypeMapper.ts +36 -0
- package/src/nz/co/siliconst/ui5/metaui/{swagger/SwaggerUIMapper-dbg.js → openapi/OpenApiUIMapper-dbg.js} +29 -17
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper.d.ts +34 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/{swagger/SwaggerUIMapper.ts → openapi/OpenApiUIMapper.ts} +28 -16
- package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/OpenApiHeuristicEngine-dbg.js +50 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/OpenApiHeuristicEngine-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/OpenApiHeuristicEngine.d.ts +25 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/OpenApiHeuristicEngine.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/OpenApiHeuristicEngine.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/OpenApiHeuristicEngine.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/OpenApiHeuristicEngine.ts +43 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/interfaces/IHeuristicPlugin-dbg.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/interfaces/IHeuristicPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/interfaces/IHeuristicPlugin.d.ts +23 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/interfaces/IHeuristicPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/interfaces/IHeuristicPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/interfaces/IHeuristicPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/interfaces/IHeuristicPlugin.ts +21 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic-dbg.js +117 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic.d.ts +47 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic.ts +113 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/interfaces/IOpenApiParserPlugin-dbg.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/interfaces/IOpenApiParserPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/interfaces/IOpenApiParserPlugin.d.ts +26 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/interfaces/IOpenApiParserPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/interfaces/IOpenApiParserPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/interfaces/IOpenApiParserPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/interfaces/IOpenApiParserPlugin.ts +25 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser-dbg.js +106 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser.d.ts +27 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser.ts +104 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser-dbg.js +107 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser.d.ts +27 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser.ts +105 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper-dbg.js +347 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper.d.ts +110 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper.ts +377 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin-dbg.js +11 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.ts +13 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin-dbg.js +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.ts +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin-dbg.js +31 -7
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.d.ts +17 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.ts +33 -8
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin-dbg.js +3 -4
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.ts +3 -4
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin-dbg.js +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.ts +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin-dbg.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.ts +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin-dbg.js +4 -8
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.ts +4 -8
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin-dbg.js +4 -8
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.ts +4 -8
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin-dbg.js +217 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin.d.ts +26 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin.ts +249 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin-dbg.js +3 -4
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.ts +3 -4
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin-dbg.js +48 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin.d.ts +11 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin.ts +48 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin-dbg.js +3 -3
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.ts +3 -3
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin-dbg.js +3 -4
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.ts +4 -5
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin-dbg.js +58 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin.d.ts +11 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin.ts +57 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin-dbg.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.ts +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin-dbg.js +115 -49
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.d.ts +17 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.ts +114 -54
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin-dbg.js +3 -4
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.ts +3 -4
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin-dbg.js +3 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.ts +3 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin-dbg.js +49 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin.d.ts +11 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin.ts +49 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin-dbg.js +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.ts +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin-dbg.js +194 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin.d.ts +25 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin.ts +192 -0
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin-dbg.js +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.ts +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin-dbg.js +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.ts +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin-dbg.js +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.ts +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin-dbg.js +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin.ts +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin-dbg.js +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.ts +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin-dbg.js +3 -4
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.ts +3 -4
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin-dbg.js +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.ts +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin-dbg.js +4 -8
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.ts +4 -8
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin-dbg.js +3 -4
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.d.ts.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.ts +3 -4
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin-dbg.js +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.ts +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin-dbg.js +2 -2
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin-dbg.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.js +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.js.map +1 -1
- package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.ts +2 -2
- package/src/nz/co/siliconst/ui5/metaui/swagger/OpenApiExtractor-dbg.js +146 -0
- package/src/nz/co/siliconst/ui5/metaui/swagger/OpenApiExtractor-dbg.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/swagger/OpenApiExtractor.d.ts +27 -0
- package/src/nz/co/siliconst/ui5/metaui/swagger/OpenApiExtractor.d.ts.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/swagger/OpenApiExtractor.js +2 -0
- package/src/nz/co/siliconst/ui5/metaui/swagger/OpenApiExtractor.js.map +1 -0
- package/src/nz/co/siliconst/ui5/metaui/swagger/OpenApiExtractor.ts +160 -0
- package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerBuilder-dbg.js +0 -226
- package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerBuilder-dbg.js.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerBuilder.d.ts +0 -63
- package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerBuilder.d.ts.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerBuilder.js +0 -2
- package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerBuilder.js.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerBuilder.ts +0 -233
- package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerRefResolver-dbg.js +0 -43
- package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerRefResolver-dbg.js.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerRefResolver.d.ts +0 -15
- package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerRefResolver.d.ts.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerRefResolver.js +0 -2
- package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerRefResolver.js.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerRefResolver.ts +0 -37
- package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerTypeMapper-dbg.js +0 -37
- package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerTypeMapper-dbg.js.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerTypeMapper.d.ts +0 -18
- package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerTypeMapper.d.ts.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerTypeMapper.js.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerTypeMapper.ts +0 -28
- package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerUIMapper-dbg.js.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerUIMapper.d.ts +0 -27
- package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerUIMapper.d.ts.map +0 -1
- package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerUIMapper.js +0 -2
- package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerUIMapper.js.map +0 -1
|
@@ -0,0 +1,347 @@
|
|
|
1
|
+
sap.ui.define(["../OpenApiRefResolver", "../OpenApiTypeMapper", "../OpenApiUIMapper"], function (___OpenApiRefResolver, ___OpenApiTypeMapper, ___OpenApiUIMapper) {
|
|
2
|
+
"use strict";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @file OpenApiPropertyMapper.ts
|
|
6
|
+
* @description Extracts and maps OpenAPI properties into MetaUI IPropertyMetadata.
|
|
7
|
+
*/
|
|
8
|
+
const OpenApiRefResolver = ___OpenApiRefResolver["OpenApiRefResolver"];
|
|
9
|
+
const OpenApiTypeMapper = ___OpenApiTypeMapper["OpenApiTypeMapper"];
|
|
10
|
+
const OpenApiUIMapper = ___OpenApiUIMapper["OpenApiUIMapper"];
|
|
11
|
+
/**
|
|
12
|
+
* Utility class responsible for extracting and mapping OpenAPI properties into the native MetaUI IPropertyMetadata schema format.
|
|
13
|
+
*
|
|
14
|
+
* @public
|
|
15
|
+
*/
|
|
16
|
+
class OpenApiPropertyMapper {
|
|
17
|
+
/**
|
|
18
|
+
* Recursively traverses and translates an OpenAPI properties block into a MetaUI IPropertyMetadata dictionary.
|
|
19
|
+
*
|
|
20
|
+
* @param {Record<string, any>} properties The OpenAPI properties block.
|
|
21
|
+
* @param {string[]} requiredKeys Array of required property keys.
|
|
22
|
+
* @param {any} openApiRoot The OpenAPI root document for resolving references.
|
|
23
|
+
* @param {"2.0" | "3.0"} version The OpenAPI version.
|
|
24
|
+
* @param {number} [depth=0] Recursion depth limiter to prevent stack overflows on circular refs.
|
|
25
|
+
* @returns {Record<string, IPropertyMetadata>} The normalized MetaUI properties mapping.
|
|
26
|
+
*/
|
|
27
|
+
static mapProperties(properties, requiredKeys, openApiRoot, version, depth = 0) {
|
|
28
|
+
const normalizedProps = {};
|
|
29
|
+
if (depth > 8) return normalizedProps;
|
|
30
|
+
for (const key of Object.keys(properties)) {
|
|
31
|
+
const isRequired = requiredKeys.includes(key);
|
|
32
|
+
let propDef = properties[key];
|
|
33
|
+
if (propDef.$ref) {
|
|
34
|
+
const resolved = OpenApiRefResolver.resolve(propDef.$ref, openApiRoot);
|
|
35
|
+
if (resolved) {
|
|
36
|
+
propDef = {
|
|
37
|
+
...resolved,
|
|
38
|
+
...propDef
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
normalizedProps[key] = this.mapPropertyMetadata(propDef, key, isRequired, openApiRoot, version, depth + 1);
|
|
43
|
+
}
|
|
44
|
+
return normalizedProps;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Translates a single OpenAPI property schema block into a MetaUI IPropertyMetadata block.
|
|
49
|
+
* Delegates specific mapping tasks to focused private methods to adhere to SRP.
|
|
50
|
+
*
|
|
51
|
+
* @param {any} swaggerProp The specific OpenAPI property schema to map.
|
|
52
|
+
* @param {string} keyName The key/name of this property.
|
|
53
|
+
* @param {boolean} isRequired Whether this property is strictly required.
|
|
54
|
+
* @param {any} openApiRoot The OpenAPI root document for resolving references.
|
|
55
|
+
* @param {"2.0" | "3.0"} version The OpenAPI version.
|
|
56
|
+
* @param {number} [depth=0] Recursion depth limiter.
|
|
57
|
+
* @returns {IPropertyMetadata} The normalized MetaUI property metadata.
|
|
58
|
+
*/
|
|
59
|
+
static mapPropertyMetadata(swaggerProp, keyName, isRequired, openApiRoot, version, depth = 0) {
|
|
60
|
+
let currentProp = swaggerProp;
|
|
61
|
+
|
|
62
|
+
// 1. Resolve References
|
|
63
|
+
const refResult = this._resolveReference(currentProp, keyName, isRequired, openApiRoot, version, depth);
|
|
64
|
+
if (refResult) {
|
|
65
|
+
return refResult;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// 2. Resolve Composition (allOf)
|
|
69
|
+
currentProp = this._resolveAllOf(currentProp, openApiRoot);
|
|
70
|
+
|
|
71
|
+
// 3. Base Initialization
|
|
72
|
+
const type = OpenApiTypeMapper.mapType(currentProp.type);
|
|
73
|
+
const metaProp = {
|
|
74
|
+
type: type,
|
|
75
|
+
required: isRequired
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
// 4. UI Directive Binding
|
|
79
|
+
const uiDirective = OpenApiUIMapper.build(currentProp, keyName);
|
|
80
|
+
if (Object.keys(uiDirective).length > 0) {
|
|
81
|
+
metaProp.ui = uiDirective;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// 5. Constraints & State Modifiers
|
|
85
|
+
this._applyConstraints(metaProp, currentProp, version);
|
|
86
|
+
this._applyStateModifiers(metaProp, currentProp);
|
|
87
|
+
if (currentProp.default !== undefined) {
|
|
88
|
+
metaProp.default = currentProp.default;
|
|
89
|
+
}
|
|
90
|
+
if (Array.isArray(currentProp.enum)) {
|
|
91
|
+
metaProp.enum = currentProp.enum;
|
|
92
|
+
if (!metaProp.ui) metaProp.ui = {};
|
|
93
|
+
metaProp.ui.widget = "dropdown";
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
// 6. Polymorphism & Nesting
|
|
97
|
+
this._applyPolymorphism(metaProp, currentProp, openApiRoot, version, depth);
|
|
98
|
+
this._applyNestedTypes(metaProp, currentProp, openApiRoot, version, depth, type);
|
|
99
|
+
return metaProp;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Attempts to resolve a $ref block. If it resolves to a primitive, it inlines it.
|
|
104
|
+
* Otherwise, it returns a reference widget payload.
|
|
105
|
+
*
|
|
106
|
+
* @param {any} currentProp The current schema property definition.
|
|
107
|
+
* @param {string} keyName The structural key name.
|
|
108
|
+
* @param {boolean} isRequired Whether the property is strictly required.
|
|
109
|
+
* @param {any} openApiRoot The root API definition for relative resolution.
|
|
110
|
+
* @param {"2.0" | "3.0"} version The structural version context.
|
|
111
|
+
* @param {number} depth The recursive resolution depth.
|
|
112
|
+
* @returns {IPropertyMetadata | null} Resolved metadata, or null if no reference exists.
|
|
113
|
+
* @private
|
|
114
|
+
*/
|
|
115
|
+
static _resolveReference(currentProp, keyName, isRequired, openApiRoot, version, depth) {
|
|
116
|
+
if (!currentProp.$ref) {
|
|
117
|
+
return null;
|
|
118
|
+
}
|
|
119
|
+
const resolved = OpenApiRefResolver.resolve(currentProp.$ref, openApiRoot);
|
|
120
|
+
const resolvedType = currentProp.type || resolved && resolved.type;
|
|
121
|
+
if (resolvedType && ["string", "number", "integer", "boolean"].includes(resolvedType)) {
|
|
122
|
+
const inlineProp = {
|
|
123
|
+
...resolved,
|
|
124
|
+
...currentProp
|
|
125
|
+
};
|
|
126
|
+
delete inlineProp.$ref;
|
|
127
|
+
return this.mapPropertyMetadata(inlineProp, keyName, isRequired, openApiRoot, version, depth + 1);
|
|
128
|
+
}
|
|
129
|
+
return {
|
|
130
|
+
type: "object",
|
|
131
|
+
$ref: currentProp.$ref,
|
|
132
|
+
required: isRequired,
|
|
133
|
+
ui: {
|
|
134
|
+
widget: "reference"
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* Evaluates and merges 'allOf' arrays into a unified schema definition.
|
|
141
|
+
*
|
|
142
|
+
* @param {any} currentProp The structural property definition containing potential aggregations.
|
|
143
|
+
* @param {any} openApiRoot The base schema for deep resolution.
|
|
144
|
+
* @returns {any} A flattened and merged schema entity.
|
|
145
|
+
* @private
|
|
146
|
+
*/
|
|
147
|
+
static _resolveAllOf(currentProp, openApiRoot) {
|
|
148
|
+
if (!Array.isArray(currentProp.allOf)) {
|
|
149
|
+
return currentProp;
|
|
150
|
+
}
|
|
151
|
+
let merged = {
|
|
152
|
+
...currentProp
|
|
153
|
+
};
|
|
154
|
+
delete merged.allOf;
|
|
155
|
+
for (const subSchema of currentProp.allOf) {
|
|
156
|
+
let resolvedSub = subSchema;
|
|
157
|
+
if (subSchema.$ref) {
|
|
158
|
+
resolvedSub = OpenApiRefResolver.resolve(subSchema.$ref, openApiRoot) || {};
|
|
159
|
+
}
|
|
160
|
+
merged = this.deepMergeSchemas(merged, resolvedSub);
|
|
161
|
+
}
|
|
162
|
+
return merged;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
/**
|
|
166
|
+
* Extracts structural constraints (min/max, regex, etc.) and maps them natively to the output metadata.
|
|
167
|
+
*
|
|
168
|
+
* @param {IPropertyMetadata} metaProp The target metadata definition block.
|
|
169
|
+
* @param {any} currentProp The source OpenAPI schema chunk.
|
|
170
|
+
* @param {"2.0" | "3.0"} version The version, utilized for nuanced boundary matching.
|
|
171
|
+
* @private
|
|
172
|
+
*/
|
|
173
|
+
static _applyConstraints(metaProp, currentProp, version) {
|
|
174
|
+
// String Constraints
|
|
175
|
+
if (typeof currentProp.maxLength === "number") metaProp.maxLength = currentProp.maxLength;
|
|
176
|
+
if (typeof currentProp.minLength === "number") metaProp.minLength = currentProp.minLength;
|
|
177
|
+
if (typeof currentProp.pattern === "string") metaProp.pattern = currentProp.pattern;
|
|
178
|
+
|
|
179
|
+
// Numeric Constraints
|
|
180
|
+
if (typeof currentProp.maximum === "number") metaProp.maximum = currentProp.maximum;
|
|
181
|
+
if (typeof currentProp.minimum === "number") metaProp.minimum = currentProp.minimum;
|
|
182
|
+
if (typeof currentProp.multipleOf === "number") metaProp.multipleOf = currentProp.multipleOf;
|
|
183
|
+
|
|
184
|
+
// Array Constraints
|
|
185
|
+
if (typeof currentProp.maxItems === "number") metaProp.maxItems = currentProp.maxItems;
|
|
186
|
+
if (typeof currentProp.minItems === "number") metaProp.minItems = currentProp.minItems;
|
|
187
|
+
if (typeof currentProp.uniqueItems === "boolean") metaProp.uniqueItems = currentProp.uniqueItems;
|
|
188
|
+
|
|
189
|
+
// Object Constraints
|
|
190
|
+
if (typeof currentProp.maxProperties === "number") metaProp.maxProperties = currentProp.maxProperties;
|
|
191
|
+
if (typeof currentProp.minProperties === "number") metaProp.minProperties = currentProp.minProperties;
|
|
192
|
+
|
|
193
|
+
// Exclusive Min/Max version-specific logic
|
|
194
|
+
if (version === "2.0") {
|
|
195
|
+
if (currentProp.exclusiveMaximum === true && typeof currentProp.maximum === "number") {
|
|
196
|
+
metaProp.exclusiveMaximum = true;
|
|
197
|
+
}
|
|
198
|
+
if (currentProp.exclusiveMinimum === true && typeof currentProp.minimum === "number") {
|
|
199
|
+
metaProp.exclusiveMinimum = true;
|
|
200
|
+
}
|
|
201
|
+
} else if (version === "3.0") {
|
|
202
|
+
if (typeof currentProp.exclusiveMaximum === "number" || typeof currentProp.exclusiveMaximum === "boolean") {
|
|
203
|
+
metaProp.exclusiveMaximum = currentProp.exclusiveMaximum;
|
|
204
|
+
}
|
|
205
|
+
if (typeof currentProp.exclusiveMinimum === "number" || typeof currentProp.exclusiveMinimum === "boolean") {
|
|
206
|
+
metaProp.exclusiveMinimum = currentProp.exclusiveMinimum;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
/**
|
|
212
|
+
* Extracts operational state flags like readOnly or nullable mapping them onto the internal specification.
|
|
213
|
+
*
|
|
214
|
+
* @param {IPropertyMetadata} metaProp Target native specification.
|
|
215
|
+
* @param {any} currentProp Source raw schema payload.
|
|
216
|
+
* @private
|
|
217
|
+
*/
|
|
218
|
+
static _applyStateModifiers(metaProp, currentProp) {
|
|
219
|
+
if (currentProp.readOnly === true) metaProp.readOnly = true;
|
|
220
|
+
if (currentProp.writeOnly === true) metaProp.writeOnly = true;
|
|
221
|
+
if (currentProp.nullable === true) metaProp.nullable = true;
|
|
222
|
+
if (currentProp.deprecated === true) metaProp.deprecated = true;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
/**
|
|
226
|
+
* Extracts and maps polymorphic discriminator and union types (oneOf/anyOf) to MetaUI structural directives.
|
|
227
|
+
*
|
|
228
|
+
* @param {IPropertyMetadata} metaProp Native MetaUI definition tree.
|
|
229
|
+
* @param {any} currentProp Raw schema block.
|
|
230
|
+
* @param {any} openApiRoot Master OpenAPI root.
|
|
231
|
+
* @param {"2.0" | "3.0"} version Protocol version identifier.
|
|
232
|
+
* @param {number} depth Internal depth tracker.
|
|
233
|
+
* @private
|
|
234
|
+
*/
|
|
235
|
+
static _applyPolymorphism(metaProp, currentProp, openApiRoot, version, depth) {
|
|
236
|
+
// Discriminator handling
|
|
237
|
+
if (currentProp.discriminator) {
|
|
238
|
+
if (version === "2.0" && typeof currentProp.discriminator === "string") {
|
|
239
|
+
metaProp.discriminator = {
|
|
240
|
+
propertyName: currentProp.discriminator
|
|
241
|
+
};
|
|
242
|
+
} else if (version === "3.0" && typeof currentProp.discriminator === "object") {
|
|
243
|
+
metaProp.discriminator = {
|
|
244
|
+
propertyName: currentProp.discriminator.propertyName,
|
|
245
|
+
mapping: currentProp.discriminator.mapping
|
|
246
|
+
};
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
// Handle oneOf polymorphic mapping
|
|
251
|
+
if (Array.isArray(currentProp.oneOf)) {
|
|
252
|
+
metaProp.oneOf = [];
|
|
253
|
+
for (let i = 0; i < currentProp.oneOf.length; i++) {
|
|
254
|
+
metaProp.oneOf.push(this.mapPropertyMetadata(currentProp.oneOf[i], `Variant${i}`, false, openApiRoot, version, depth + 1));
|
|
255
|
+
}
|
|
256
|
+
if (!metaProp.ui) metaProp.ui = {};
|
|
257
|
+
metaProp.ui.widget = "polymorphic";
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
// Handle anyOf mapping
|
|
261
|
+
if (Array.isArray(currentProp.anyOf)) {
|
|
262
|
+
metaProp.anyOf = [];
|
|
263
|
+
for (let i = 0; i < currentProp.anyOf.length; i++) {
|
|
264
|
+
metaProp.anyOf.push(this.mapPropertyMetadata(currentProp.anyOf[i], `AnyVariant${i}`, false, openApiRoot, version, depth + 1));
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
// Handle not mapping
|
|
269
|
+
if (currentProp.not) {
|
|
270
|
+
metaProp.not = this.mapPropertyMetadata(currentProp.not, `NotVariant`, false, openApiRoot, version, depth + 1);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
/**
|
|
275
|
+
* Recursively traverses into nested objects and arrays constructing the structural node trees.
|
|
276
|
+
*
|
|
277
|
+
* @param {IPropertyMetadata} metaProp The localized destination structure.
|
|
278
|
+
* @param {any} currentProp The source chunk representing a complex element.
|
|
279
|
+
* @param {any} openApiRoot The OpenAPI dictionary context.
|
|
280
|
+
* @param {"2.0" | "3.0"} version System schema version.
|
|
281
|
+
* @param {number} depth Invocation stack depth.
|
|
282
|
+
* @param {string} type Normalized atomic structure type.
|
|
283
|
+
* @private
|
|
284
|
+
*/
|
|
285
|
+
static _applyNestedTypes(metaProp, currentProp, openApiRoot, version, depth, type) {
|
|
286
|
+
if (type === "object") {
|
|
287
|
+
if (currentProp.properties) {
|
|
288
|
+
const childRequired = Array.isArray(currentProp.required) ? currentProp.required : [];
|
|
289
|
+
metaProp.properties = this.mapProperties(currentProp.properties, childRequired, openApiRoot, version, depth + 1);
|
|
290
|
+
}
|
|
291
|
+
if (currentProp.additionalProperties) {
|
|
292
|
+
if (currentProp.additionalProperties === true) {
|
|
293
|
+
metaProp.additionalProperties = true;
|
|
294
|
+
} else if (typeof currentProp.additionalProperties === "object") {
|
|
295
|
+
metaProp.additionalProperties = this.mapPropertyMetadata(currentProp.additionalProperties, "value", false, openApiRoot, version, depth + 1);
|
|
296
|
+
if (!metaProp.ui) metaProp.ui = {};
|
|
297
|
+
metaProp.ui.widget = "dictionary";
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
// Opaque JSON object definition mapping
|
|
302
|
+
if (!currentProp.properties && !currentProp.additionalProperties) {
|
|
303
|
+
if (!metaProp.ui) metaProp.ui = {};
|
|
304
|
+
metaProp.ui.widget = "codeEditor";
|
|
305
|
+
}
|
|
306
|
+
} else if (type === "array" && currentProp.items) {
|
|
307
|
+
metaProp.items = this.mapPropertyMetadata(currentProp.items, "items", false, openApiRoot, version, depth + 1);
|
|
308
|
+
if (metaProp.items.type !== "object") {
|
|
309
|
+
if (!metaProp.ui) metaProp.ui = {};
|
|
310
|
+
metaProp.ui.widget = "multiInput";
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
/**
|
|
316
|
+
* Recursively deep-merges two OpenAPI objects, ensuring array boundaries and nested structures are preserved.
|
|
317
|
+
*
|
|
318
|
+
* @param {any} target The target base object.
|
|
319
|
+
* @param {any} source The source object providing override details.
|
|
320
|
+
* @returns {any} The synthesized output object.
|
|
321
|
+
*/
|
|
322
|
+
static deepMergeSchemas(target, source) {
|
|
323
|
+
const output = Object.assign({}, target);
|
|
324
|
+
if (source === null || typeof source !== "object") return output;
|
|
325
|
+
Object.keys(source).forEach(key => {
|
|
326
|
+
if (Array.isArray(source[key])) {
|
|
327
|
+
output[key] = Array.isArray(target[key]) ? Array.from(new Set([...target[key], ...source[key]])) : [...source[key]];
|
|
328
|
+
} else if (typeof source[key] === "object" && source[key] !== null) {
|
|
329
|
+
if (target[key] && typeof target[key] === "object") {
|
|
330
|
+
output[key] = this.deepMergeSchemas(target[key], source[key]);
|
|
331
|
+
} else {
|
|
332
|
+
output[key] = Object.assign({}, source[key]);
|
|
333
|
+
}
|
|
334
|
+
} else {
|
|
335
|
+
output[key] = source[key];
|
|
336
|
+
}
|
|
337
|
+
});
|
|
338
|
+
return output;
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
var __exports = {
|
|
342
|
+
__esModule: true
|
|
343
|
+
};
|
|
344
|
+
__exports.OpenApiPropertyMapper = OpenApiPropertyMapper;
|
|
345
|
+
return __exports;
|
|
346
|
+
});
|
|
347
|
+
//# sourceMappingURL=OpenApiPropertyMapper-dbg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OpenApiPropertyMapper-dbg.js","names":["OpenApiRefResolver","___OpenApiRefResolver","OpenApiTypeMapper","___OpenApiTypeMapper","OpenApiUIMapper","___OpenApiUIMapper","OpenApiPropertyMapper","mapProperties","properties","requiredKeys","openApiRoot","version","depth","normalizedProps","key","Object","keys","isRequired","includes","propDef","$ref","resolved","resolve","mapPropertyMetadata","swaggerProp","keyName","currentProp","refResult","_resolveReference","_resolveAllOf","type","mapType","metaProp","required","uiDirective","build","length","ui","_applyConstraints","_applyStateModifiers","default","undefined","Array","isArray","enum","widget","_applyPolymorphism","_applyNestedTypes","resolvedType","inlineProp","allOf","merged","subSchema","resolvedSub","deepMergeSchemas","maxLength","minLength","pattern","maximum","minimum","multipleOf","maxItems","minItems","uniqueItems","maxProperties","minProperties","exclusiveMaximum","exclusiveMinimum","readOnly","writeOnly","nullable","deprecated","discriminator","propertyName","mapping","oneOf","i","push","anyOf","not","childRequired","additionalProperties","items","target","source","output","assign","forEach","from","Set","__exports","__esModule"],"sources":["OpenApiPropertyMapper.ts"],"sourcesContent":["/**\n * @file OpenApiPropertyMapper.ts\n * @description Extracts and maps OpenAPI properties into MetaUI IPropertyMetadata.\n */\n\nimport { IPropertyMetadata } from \"../../interfaces/ISchema\";\nimport { OpenApiRefResolver } from \"../OpenApiRefResolver\";\nimport { OpenApiTypeMapper } from \"../OpenApiTypeMapper\";\nimport { OpenApiUIMapper } from \"../OpenApiUIMapper\";\n\n/**\n * Utility class responsible for extracting and mapping OpenAPI properties into the native MetaUI IPropertyMetadata schema format.\n * \n * @public\n */\nexport class OpenApiPropertyMapper {\n /**\n * Recursively traverses and translates an OpenAPI properties block into a MetaUI IPropertyMetadata dictionary.\n * \n * @param {Record<string, any>} properties The OpenAPI properties block.\n * @param {string[]} requiredKeys Array of required property keys.\n * @param {any} openApiRoot The OpenAPI root document for resolving references.\n * @param {\"2.0\" | \"3.0\"} version The OpenAPI version.\n * @param {number} [depth=0] Recursion depth limiter to prevent stack overflows on circular refs.\n * @returns {Record<string, IPropertyMetadata>} The normalized MetaUI properties mapping.\n */\n public static mapProperties(\n properties: Record<string, any>, \n requiredKeys: string[], \n openApiRoot: unknown, \n version: \"2.0\" | \"3.0\", \n depth: number = 0\n ): Record<string, IPropertyMetadata> {\n const normalizedProps: Record<string, IPropertyMetadata> = {};\n \n if (depth > 8) return normalizedProps;\n\n for (const key of Object.keys(properties)) {\n const isRequired = requiredKeys.includes(key);\n let propDef = properties[key];\n\n if (propDef.$ref) {\n const resolved = OpenApiRefResolver.resolve(propDef.$ref, openApiRoot);\n if (resolved) {\n propDef = { ...resolved, ...propDef };\n }\n }\n\n normalizedProps[key] = this.mapPropertyMetadata(propDef, key, isRequired, openApiRoot, version, depth + 1);\n }\n \n return normalizedProps;\n }\n\n /**\n * Translates a single OpenAPI property schema block into a MetaUI IPropertyMetadata block.\n * Delegates specific mapping tasks to focused private methods to adhere to SRP.\n * \n * @param {any} swaggerProp The specific OpenAPI property schema to map.\n * @param {string} keyName The key/name of this property.\n * @param {boolean} isRequired Whether this property is strictly required.\n * @param {any} openApiRoot The OpenAPI root document for resolving references.\n * @param {\"2.0\" | \"3.0\"} version The OpenAPI version.\n * @param {number} [depth=0] Recursion depth limiter.\n * @returns {IPropertyMetadata} The normalized MetaUI property metadata.\n */\n public static mapPropertyMetadata(\n swaggerProp: unknown, \n keyName: string, \n isRequired: boolean, \n openApiRoot: unknown, \n version: \"2.0\" | \"3.0\", \n depth: number = 0\n ): IPropertyMetadata {\n let currentProp = swaggerProp;\n\n // 1. Resolve References\n const refResult = this._resolveReference(currentProp, keyName, isRequired, openApiRoot, version, depth);\n if (refResult) {\n return refResult;\n }\n\n // 2. Resolve Composition (allOf)\n currentProp = this._resolveAllOf(currentProp, openApiRoot);\n\n // 3. Base Initialization\n const type = OpenApiTypeMapper.mapType(currentProp.type);\n const metaProp: IPropertyMetadata = {\n type: type,\n required: isRequired\n };\n\n // 4. UI Directive Binding\n const uiDirective = OpenApiUIMapper.build(currentProp, keyName);\n if (Object.keys(uiDirective).length > 0) {\n metaProp.ui = uiDirective;\n }\n\n // 5. Constraints & State Modifiers\n this._applyConstraints(metaProp, currentProp, version);\n this._applyStateModifiers(metaProp, currentProp);\n\n if (currentProp.default !== undefined) {\n metaProp.default = currentProp.default;\n }\n\n if (Array.isArray(currentProp.enum)) {\n metaProp.enum = currentProp.enum;\n if (!metaProp.ui) metaProp.ui = {};\n metaProp.ui.widget = \"dropdown\";\n }\n\n // 6. Polymorphism & Nesting\n this._applyPolymorphism(metaProp, currentProp, openApiRoot, version, depth);\n this._applyNestedTypes(metaProp, currentProp, openApiRoot, version, depth, type);\n\n return metaProp;\n }\n\n /**\n * Attempts to resolve a $ref block. If it resolves to a primitive, it inlines it.\n * Otherwise, it returns a reference widget payload.\n * \n * @param {any} currentProp The current schema property definition.\n * @param {string} keyName The structural key name.\n * @param {boolean} isRequired Whether the property is strictly required.\n * @param {any} openApiRoot The root API definition for relative resolution.\n * @param {\"2.0\" | \"3.0\"} version The structural version context.\n * @param {number} depth The recursive resolution depth.\n * @returns {IPropertyMetadata | null} Resolved metadata, or null if no reference exists.\n * @private\n */\n private static _resolveReference(\n currentProp: unknown, \n keyName: string, \n isRequired: boolean, \n openApiRoot: unknown, \n version: \"2.0\" | \"3.0\", \n depth: number\n ): IPropertyMetadata | null {\n if (!currentProp.$ref) {\n return null;\n }\n\n const resolved = OpenApiRefResolver.resolve(currentProp.$ref, openApiRoot);\n const resolvedType = currentProp.type || (resolved && resolved.type);\n \n if (resolvedType && [\"string\", \"number\", \"integer\", \"boolean\"].includes(resolvedType)) {\n const inlineProp = { ...resolved, ...currentProp };\n delete inlineProp.$ref;\n return this.mapPropertyMetadata(inlineProp, keyName, isRequired, openApiRoot, version, depth + 1);\n }\n\n return {\n type: \"object\",\n $ref: currentProp.$ref,\n required: isRequired,\n ui: { widget: \"reference\" }\n };\n }\n\n /**\n * Evaluates and merges 'allOf' arrays into a unified schema definition.\n * \n * @param {any} currentProp The structural property definition containing potential aggregations.\n * @param {any} openApiRoot The base schema for deep resolution.\n * @returns {any} A flattened and merged schema entity.\n * @private\n */\n private static _resolveAllOf(currentProp: unknown, openApiRoot: unknown): unknown {\n if (!Array.isArray(currentProp.allOf)) {\n return currentProp;\n }\n \n let merged = { ...currentProp };\n delete merged.allOf;\n for (const subSchema of currentProp.allOf) {\n let resolvedSub = subSchema;\n if (subSchema.$ref) {\n resolvedSub = OpenApiRefResolver.resolve(subSchema.$ref, openApiRoot) || {};\n }\n merged = this.deepMergeSchemas(merged, resolvedSub);\n }\n return merged;\n }\n\n /**\n * Extracts structural constraints (min/max, regex, etc.) and maps them natively to the output metadata.\n * \n * @param {IPropertyMetadata} metaProp The target metadata definition block.\n * @param {any} currentProp The source OpenAPI schema chunk.\n * @param {\"2.0\" | \"3.0\"} version The version, utilized for nuanced boundary matching.\n * @private\n */\n private static _applyConstraints(metaProp: IPropertyMetadata, currentProp: unknown, version: \"2.0\" | \"3.0\"): void {\n // String Constraints\n if (typeof currentProp.maxLength === \"number\") metaProp.maxLength = currentProp.maxLength;\n if (typeof currentProp.minLength === \"number\") metaProp.minLength = currentProp.minLength;\n if (typeof currentProp.pattern === \"string\") metaProp.pattern = currentProp.pattern;\n\n // Numeric Constraints\n if (typeof currentProp.maximum === \"number\") metaProp.maximum = currentProp.maximum;\n if (typeof currentProp.minimum === \"number\") metaProp.minimum = currentProp.minimum;\n if (typeof currentProp.multipleOf === \"number\") metaProp.multipleOf = currentProp.multipleOf;\n \n // Array Constraints\n if (typeof currentProp.maxItems === \"number\") metaProp.maxItems = currentProp.maxItems;\n if (typeof currentProp.minItems === \"number\") metaProp.minItems = currentProp.minItems;\n if (typeof currentProp.uniqueItems === \"boolean\") metaProp.uniqueItems = currentProp.uniqueItems;\n\n // Object Constraints\n if (typeof currentProp.maxProperties === \"number\") metaProp.maxProperties = currentProp.maxProperties;\n if (typeof currentProp.minProperties === \"number\") metaProp.minProperties = currentProp.minProperties;\n\n // Exclusive Min/Max version-specific logic\n if (version === \"2.0\") {\n if (currentProp.exclusiveMaximum === true && typeof currentProp.maximum === \"number\") {\n metaProp.exclusiveMaximum = true;\n }\n if (currentProp.exclusiveMinimum === true && typeof currentProp.minimum === \"number\") {\n metaProp.exclusiveMinimum = true;\n }\n } else if (version === \"3.0\") {\n if (typeof currentProp.exclusiveMaximum === \"number\" || typeof currentProp.exclusiveMaximum === \"boolean\") {\n metaProp.exclusiveMaximum = currentProp.exclusiveMaximum;\n }\n if (typeof currentProp.exclusiveMinimum === \"number\" || typeof currentProp.exclusiveMinimum === \"boolean\") {\n metaProp.exclusiveMinimum = currentProp.exclusiveMinimum;\n }\n }\n }\n\n /**\n * Extracts operational state flags like readOnly or nullable mapping them onto the internal specification.\n * \n * @param {IPropertyMetadata} metaProp Target native specification.\n * @param {any} currentProp Source raw schema payload.\n * @private\n */\n private static _applyStateModifiers(metaProp: IPropertyMetadata, currentProp: unknown): void {\n if (currentProp.readOnly === true) metaProp.readOnly = true;\n if (currentProp.writeOnly === true) metaProp.writeOnly = true;\n if (currentProp.nullable === true) metaProp.nullable = true;\n if (currentProp.deprecated === true) metaProp.deprecated = true;\n }\n\n /**\n * Extracts and maps polymorphic discriminator and union types (oneOf/anyOf) to MetaUI structural directives.\n * \n * @param {IPropertyMetadata} metaProp Native MetaUI definition tree.\n * @param {any} currentProp Raw schema block.\n * @param {any} openApiRoot Master OpenAPI root.\n * @param {\"2.0\" | \"3.0\"} version Protocol version identifier.\n * @param {number} depth Internal depth tracker.\n * @private\n */\n private static _applyPolymorphism(\n metaProp: IPropertyMetadata, \n currentProp: unknown, \n openApiRoot: unknown, \n version: \"2.0\" | \"3.0\", \n depth: number\n ): void {\n // Discriminator handling\n if (currentProp.discriminator) {\n if (version === \"2.0\" && typeof currentProp.discriminator === \"string\") {\n metaProp.discriminator = { propertyName: currentProp.discriminator };\n } else if (version === \"3.0\" && typeof currentProp.discriminator === \"object\") {\n metaProp.discriminator = {\n propertyName: currentProp.discriminator.propertyName,\n mapping: currentProp.discriminator.mapping\n };\n }\n }\n\n // Handle oneOf polymorphic mapping\n if (Array.isArray(currentProp.oneOf)) {\n metaProp.oneOf = [];\n for (let i = 0; i < currentProp.oneOf.length; i++) {\n metaProp.oneOf.push(this.mapPropertyMetadata(currentProp.oneOf[i], `Variant${i}`, false, openApiRoot, version, depth + 1));\n }\n if (!metaProp.ui) metaProp.ui = {};\n metaProp.ui.widget = \"polymorphic\";\n }\n \n // Handle anyOf mapping\n if (Array.isArray(currentProp.anyOf)) {\n metaProp.anyOf = [];\n for (let i = 0; i < currentProp.anyOf.length; i++) {\n metaProp.anyOf.push(this.mapPropertyMetadata(currentProp.anyOf[i], `AnyVariant${i}`, false, openApiRoot, version, depth + 1));\n }\n }\n\n // Handle not mapping\n if (currentProp.not) {\n metaProp.not = this.mapPropertyMetadata(currentProp.not, `NotVariant`, false, openApiRoot, version, depth + 1);\n }\n }\n\n /**\n * Recursively traverses into nested objects and arrays constructing the structural node trees.\n * \n * @param {IPropertyMetadata} metaProp The localized destination structure.\n * @param {any} currentProp The source chunk representing a complex element.\n * @param {any} openApiRoot The OpenAPI dictionary context.\n * @param {\"2.0\" | \"3.0\"} version System schema version.\n * @param {number} depth Invocation stack depth.\n * @param {string} type Normalized atomic structure type.\n * @private\n */\n private static _applyNestedTypes(\n metaProp: IPropertyMetadata, \n currentProp: unknown, \n openApiRoot: unknown, \n version: \"2.0\" | \"3.0\", \n depth: number,\n type: string\n ): void {\n if (type === \"object\") {\n if (currentProp.properties) {\n const childRequired = Array.isArray(currentProp.required) ? currentProp.required : [];\n metaProp.properties = this.mapProperties(currentProp.properties, childRequired, openApiRoot, version, depth + 1);\n }\n \n if (currentProp.additionalProperties) {\n if (currentProp.additionalProperties === true) {\n metaProp.additionalProperties = true;\n } else if (typeof currentProp.additionalProperties === \"object\") {\n metaProp.additionalProperties = this.mapPropertyMetadata(currentProp.additionalProperties, \"value\", false, openApiRoot, version, depth + 1);\n if (!metaProp.ui) metaProp.ui = {};\n metaProp.ui.widget = \"dictionary\";\n }\n }\n \n // Opaque JSON object definition mapping\n if (!currentProp.properties && !currentProp.additionalProperties) {\n if (!metaProp.ui) metaProp.ui = {};\n metaProp.ui.widget = \"codeEditor\";\n }\n } else if (type === \"array\" && currentProp.items) {\n metaProp.items = this.mapPropertyMetadata(currentProp.items, \"items\", false, openApiRoot, version, depth + 1);\n if (metaProp.items.type !== \"object\") {\n if (!metaProp.ui) metaProp.ui = {};\n metaProp.ui.widget = \"multiInput\";\n }\n }\n }\n\n /**\n * Recursively deep-merges two OpenAPI objects, ensuring array boundaries and nested structures are preserved.\n * \n * @param {any} target The target base object.\n * @param {any} source The source object providing override details.\n * @returns {any} The synthesized output object.\n */\n public static deepMergeSchemas(target: unknown, source: unknown): unknown {\n const output = Object.assign({}, target);\n if (source === null || typeof source !== \"object\") return output;\n\n Object.keys(source).forEach(key => {\n if (Array.isArray(source[key])) {\n output[key] = Array.isArray(target[key]) \n ? Array.from(new Set([...target[key], ...source[key]])) \n : [...source[key]];\n } else if (typeof source[key] === \"object\" && source[key] !== null) {\n if (target[key] && typeof target[key] === \"object\") {\n output[key] = this.deepMergeSchemas(target[key], source[key]);\n } else {\n output[key] = Object.assign({}, source[key]);\n }\n } else {\n output[key] = source[key];\n }\n });\n return output;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
declare module "nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper" {
|
|
2
|
+
/**
|
|
3
|
+
* @file OpenApiPropertyMapper.ts
|
|
4
|
+
* @description Extracts and maps OpenAPI properties into MetaUI IPropertyMetadata.
|
|
5
|
+
*/
|
|
6
|
+
import { IPropertyMetadata } from "nz/co/siliconst/ui5/metaui/interfaces/ISchema";
|
|
7
|
+
/**
|
|
8
|
+
* Utility class responsible for extracting and mapping OpenAPI properties into the native MetaUI IPropertyMetadata schema format.
|
|
9
|
+
*
|
|
10
|
+
* @public
|
|
11
|
+
*/
|
|
12
|
+
export class OpenApiPropertyMapper {
|
|
13
|
+
/**
|
|
14
|
+
* Recursively traverses and translates an OpenAPI properties block into a MetaUI IPropertyMetadata dictionary.
|
|
15
|
+
*
|
|
16
|
+
* @param {Record<string, any>} properties The OpenAPI properties block.
|
|
17
|
+
* @param {string[]} requiredKeys Array of required property keys.
|
|
18
|
+
* @param {any} openApiRoot The OpenAPI root document for resolving references.
|
|
19
|
+
* @param {"2.0" | "3.0"} version The OpenAPI version.
|
|
20
|
+
* @param {number} [depth=0] Recursion depth limiter to prevent stack overflows on circular refs.
|
|
21
|
+
* @returns {Record<string, IPropertyMetadata>} The normalized MetaUI properties mapping.
|
|
22
|
+
*/
|
|
23
|
+
static mapProperties(properties: Record<string, any>, requiredKeys: string[], openApiRoot: unknown, version: "2.0" | "3.0", depth?: number): Record<string, IPropertyMetadata>;
|
|
24
|
+
/**
|
|
25
|
+
* Translates a single OpenAPI property schema block into a MetaUI IPropertyMetadata block.
|
|
26
|
+
* Delegates specific mapping tasks to focused private methods to adhere to SRP.
|
|
27
|
+
*
|
|
28
|
+
* @param {any} swaggerProp The specific OpenAPI property schema to map.
|
|
29
|
+
* @param {string} keyName The key/name of this property.
|
|
30
|
+
* @param {boolean} isRequired Whether this property is strictly required.
|
|
31
|
+
* @param {any} openApiRoot The OpenAPI root document for resolving references.
|
|
32
|
+
* @param {"2.0" | "3.0"} version The OpenAPI version.
|
|
33
|
+
* @param {number} [depth=0] Recursion depth limiter.
|
|
34
|
+
* @returns {IPropertyMetadata} The normalized MetaUI property metadata.
|
|
35
|
+
*/
|
|
36
|
+
static mapPropertyMetadata(swaggerProp: unknown, keyName: string, isRequired: boolean, openApiRoot: unknown, version: "2.0" | "3.0", depth?: number): IPropertyMetadata;
|
|
37
|
+
/**
|
|
38
|
+
* Attempts to resolve a $ref block. If it resolves to a primitive, it inlines it.
|
|
39
|
+
* Otherwise, it returns a reference widget payload.
|
|
40
|
+
*
|
|
41
|
+
* @param {any} currentProp The current schema property definition.
|
|
42
|
+
* @param {string} keyName The structural key name.
|
|
43
|
+
* @param {boolean} isRequired Whether the property is strictly required.
|
|
44
|
+
* @param {any} openApiRoot The root API definition for relative resolution.
|
|
45
|
+
* @param {"2.0" | "3.0"} version The structural version context.
|
|
46
|
+
* @param {number} depth The recursive resolution depth.
|
|
47
|
+
* @returns {IPropertyMetadata | null} Resolved metadata, or null if no reference exists.
|
|
48
|
+
* @private
|
|
49
|
+
*/
|
|
50
|
+
private static _resolveReference;
|
|
51
|
+
/**
|
|
52
|
+
* Evaluates and merges 'allOf' arrays into a unified schema definition.
|
|
53
|
+
*
|
|
54
|
+
* @param {any} currentProp The structural property definition containing potential aggregations.
|
|
55
|
+
* @param {any} openApiRoot The base schema for deep resolution.
|
|
56
|
+
* @returns {any} A flattened and merged schema entity.
|
|
57
|
+
* @private
|
|
58
|
+
*/
|
|
59
|
+
private static _resolveAllOf;
|
|
60
|
+
/**
|
|
61
|
+
* Extracts structural constraints (min/max, regex, etc.) and maps them natively to the output metadata.
|
|
62
|
+
*
|
|
63
|
+
* @param {IPropertyMetadata} metaProp The target metadata definition block.
|
|
64
|
+
* @param {any} currentProp The source OpenAPI schema chunk.
|
|
65
|
+
* @param {"2.0" | "3.0"} version The version, utilized for nuanced boundary matching.
|
|
66
|
+
* @private
|
|
67
|
+
*/
|
|
68
|
+
private static _applyConstraints;
|
|
69
|
+
/**
|
|
70
|
+
* Extracts operational state flags like readOnly or nullable mapping them onto the internal specification.
|
|
71
|
+
*
|
|
72
|
+
* @param {IPropertyMetadata} metaProp Target native specification.
|
|
73
|
+
* @param {any} currentProp Source raw schema payload.
|
|
74
|
+
* @private
|
|
75
|
+
*/
|
|
76
|
+
private static _applyStateModifiers;
|
|
77
|
+
/**
|
|
78
|
+
* Extracts and maps polymorphic discriminator and union types (oneOf/anyOf) to MetaUI structural directives.
|
|
79
|
+
*
|
|
80
|
+
* @param {IPropertyMetadata} metaProp Native MetaUI definition tree.
|
|
81
|
+
* @param {any} currentProp Raw schema block.
|
|
82
|
+
* @param {any} openApiRoot Master OpenAPI root.
|
|
83
|
+
* @param {"2.0" | "3.0"} version Protocol version identifier.
|
|
84
|
+
* @param {number} depth Internal depth tracker.
|
|
85
|
+
* @private
|
|
86
|
+
*/
|
|
87
|
+
private static _applyPolymorphism;
|
|
88
|
+
/**
|
|
89
|
+
* Recursively traverses into nested objects and arrays constructing the structural node trees.
|
|
90
|
+
*
|
|
91
|
+
* @param {IPropertyMetadata} metaProp The localized destination structure.
|
|
92
|
+
* @param {any} currentProp The source chunk representing a complex element.
|
|
93
|
+
* @param {any} openApiRoot The OpenAPI dictionary context.
|
|
94
|
+
* @param {"2.0" | "3.0"} version System schema version.
|
|
95
|
+
* @param {number} depth Invocation stack depth.
|
|
96
|
+
* @param {string} type Normalized atomic structure type.
|
|
97
|
+
* @private
|
|
98
|
+
*/
|
|
99
|
+
private static _applyNestedTypes;
|
|
100
|
+
/**
|
|
101
|
+
* Recursively deep-merges two OpenAPI objects, ensuring array boundaries and nested structures are preserved.
|
|
102
|
+
*
|
|
103
|
+
* @param {any} target The target base object.
|
|
104
|
+
* @param {any} source The source object providing override details.
|
|
105
|
+
* @returns {any} The synthesized output object.
|
|
106
|
+
*/
|
|
107
|
+
static deepMergeSchemas(target: unknown, source: unknown): unknown;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=OpenApiPropertyMapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OpenApiPropertyMapper.d.ts","sourceRoot":"../../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,kEAAkE,CAAC;IAClF;;;OAGG;IAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;IAKlF;;;;OAIG;IACH,MAAa,qBAAqB;QAC9B;;;;;;;;;WASG;eACW,aAAa,CACvB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC/B,YAAY,EAAE,MAAM,EAAE,EACtB,WAAW,EAAE,OAAO,EACpB,OAAO,EAAE,KAAK,GAAG,KAAK,EACtB,KAAK,GAAE,MAAU,GAClB,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC;QAsBpC;;;;;;;;;;;WAWG;eACW,mBAAmB,CAC7B,WAAW,EAAE,OAAO,EACpB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,OAAO,EACnB,WAAW,EAAE,OAAO,EACpB,OAAO,EAAE,KAAK,GAAG,KAAK,EACtB,KAAK,GAAE,MAAU,GAClB,iBAAiB;QA8CpB;;;;;;;;;;;;WAYG;QACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;QA6BhC;;;;;;;WAOG;QACH,OAAO,CAAC,MAAM,CAAC,aAAa;QAiB5B;;;;;;;WAOG;QACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;QAsChC;;;;;;WAMG;QACH,OAAO,CAAC,MAAM,CAAC,oBAAoB;QAOnC;;;;;;;;;WASG;QACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;QA2CjC;;;;;;;;;;WAUG;QACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;QAsChC;;;;;;WAMG;eACW,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO;KAqB5E;CAEA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
sap.ui.define(["../OpenApiRefResolver","../OpenApiTypeMapper","../OpenApiUIMapper"],function(e,i,t){"use strict";const r=e["OpenApiRefResolver"];const a=i["OpenApiTypeMapper"];const n=t["OpenApiUIMapper"];class s{static mapProperties(e,i,t,a,n=0){const s={};if(n>8)return s;for(const p of Object.keys(e)){const o=i.includes(p);let m=e[p];if(m.$ref){const e=r.resolve(m.$ref,t);if(e){m={...e,...m}}}s[p]=this.mapPropertyMetadata(m,p,o,t,a,n+1)}return s}static mapPropertyMetadata(e,i,t,r,s,p=0){let o=e;const m=this._resolveReference(o,i,t,r,s,p);if(m){return m}o=this._resolveAllOf(o,r);const f=a.mapType(o.type);const u={type:f,required:t};const l=n.build(o,i);if(Object.keys(l).length>0){u.ui=l}this._applyConstraints(u,o,s);this._applyStateModifiers(u,o);if(o.default!==undefined){u.default=o.default}if(Array.isArray(o.enum)){u.enum=o.enum;if(!u.ui)u.ui={};u.ui.widget="dropdown"}this._applyPolymorphism(u,o,r,s,p);this._applyNestedTypes(u,o,r,s,p,f);return u}static _resolveReference(e,i,t,a,n,s){if(!e.$ref){return null}const p=r.resolve(e.$ref,a);const o=e.type||p&&p.type;if(o&&["string","number","integer","boolean"].includes(o)){const r={...p,...e};delete r.$ref;return this.mapPropertyMetadata(r,i,t,a,n,s+1)}return{type:"object",$ref:e.$ref,required:t,ui:{widget:"reference"}}}static _resolveAllOf(e,i){if(!Array.isArray(e.allOf)){return e}let t={...e};delete t.allOf;for(const a of e.allOf){let e=a;if(a.$ref){e=r.resolve(a.$ref,i)||{}}t=this.deepMergeSchemas(t,e)}return t}static _applyConstraints(e,i,t){if(typeof i.maxLength==="number")e.maxLength=i.maxLength;if(typeof i.minLength==="number")e.minLength=i.minLength;if(typeof i.pattern==="string")e.pattern=i.pattern;if(typeof i.maximum==="number")e.maximum=i.maximum;if(typeof i.minimum==="number")e.minimum=i.minimum;if(typeof i.multipleOf==="number")e.multipleOf=i.multipleOf;if(typeof i.maxItems==="number")e.maxItems=i.maxItems;if(typeof i.minItems==="number")e.minItems=i.minItems;if(typeof i.uniqueItems==="boolean")e.uniqueItems=i.uniqueItems;if(typeof i.maxProperties==="number")e.maxProperties=i.maxProperties;if(typeof i.minProperties==="number")e.minProperties=i.minProperties;if(t==="2.0"){if(i.exclusiveMaximum===true&&typeof i.maximum==="number"){e.exclusiveMaximum=true}if(i.exclusiveMinimum===true&&typeof i.minimum==="number"){e.exclusiveMinimum=true}}else if(t==="3.0"){if(typeof i.exclusiveMaximum==="number"||typeof i.exclusiveMaximum==="boolean"){e.exclusiveMaximum=i.exclusiveMaximum}if(typeof i.exclusiveMinimum==="number"||typeof i.exclusiveMinimum==="boolean"){e.exclusiveMinimum=i.exclusiveMinimum}}}static _applyStateModifiers(e,i){if(i.readOnly===true)e.readOnly=true;if(i.writeOnly===true)e.writeOnly=true;if(i.nullable===true)e.nullable=true;if(i.deprecated===true)e.deprecated=true}static _applyPolymorphism(e,i,t,r,a){if(i.discriminator){if(r==="2.0"&&typeof i.discriminator==="string"){e.discriminator={propertyName:i.discriminator}}else if(r==="3.0"&&typeof i.discriminator==="object"){e.discriminator={propertyName:i.discriminator.propertyName,mapping:i.discriminator.mapping}}}if(Array.isArray(i.oneOf)){e.oneOf=[];for(let n=0;n<i.oneOf.length;n++){e.oneOf.push(this.mapPropertyMetadata(i.oneOf[n],`Variant${n}`,false,t,r,a+1))}if(!e.ui)e.ui={};e.ui.widget="polymorphic"}if(Array.isArray(i.anyOf)){e.anyOf=[];for(let n=0;n<i.anyOf.length;n++){e.anyOf.push(this.mapPropertyMetadata(i.anyOf[n],`AnyVariant${n}`,false,t,r,a+1))}}if(i.not){e.not=this.mapPropertyMetadata(i.not,`NotVariant`,false,t,r,a+1)}}static _applyNestedTypes(e,i,t,r,a,n){if(n==="object"){if(i.properties){const n=Array.isArray(i.required)?i.required:[];e.properties=this.mapProperties(i.properties,n,t,r,a+1)}if(i.additionalProperties){if(i.additionalProperties===true){e.additionalProperties=true}else if(typeof i.additionalProperties==="object"){e.additionalProperties=this.mapPropertyMetadata(i.additionalProperties,"value",false,t,r,a+1);if(!e.ui)e.ui={};e.ui.widget="dictionary"}}if(!i.properties&&!i.additionalProperties){if(!e.ui)e.ui={};e.ui.widget="codeEditor"}}else if(n==="array"&&i.items){e.items=this.mapPropertyMetadata(i.items,"items",false,t,r,a+1);if(e.items.type!=="object"){if(!e.ui)e.ui={};e.ui.widget="multiInput"}}}static deepMergeSchemas(e,i){const t=Object.assign({},e);if(i===null||typeof i!=="object")return t;Object.keys(i).forEach(r=>{if(Array.isArray(i[r])){t[r]=Array.isArray(e[r])?Array.from(new Set([...e[r],...i[r]])):[...i[r]]}else if(typeof i[r]==="object"&&i[r]!==null){if(e[r]&&typeof e[r]==="object"){t[r]=this.deepMergeSchemas(e[r],i[r])}else{t[r]=Object.assign({},i[r])}}else{t[r]=i[r]}});return t}}var p={__esModule:true};p.OpenApiPropertyMapper=s;return p});
|
|
2
|
+
//# sourceMappingURL=OpenApiPropertyMapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OpenApiPropertyMapper.js","names":["OpenApiRefResolver","___OpenApiRefResolver","OpenApiTypeMapper","___OpenApiTypeMapper","OpenApiUIMapper","___OpenApiUIMapper","OpenApiPropertyMapper","mapProperties","properties","requiredKeys","openApiRoot","version","depth","normalizedProps","key","Object","keys","isRequired","includes","propDef","$ref","resolved","resolve","this","mapPropertyMetadata","swaggerProp","keyName","currentProp","refResult","_resolveReference","_resolveAllOf","type","mapType","metaProp","required","uiDirective","build","length","ui","_applyConstraints","_applyStateModifiers","default","undefined","Array","isArray","enum","widget","_applyPolymorphism","_applyNestedTypes","resolvedType","inlineProp","allOf","merged","subSchema","resolvedSub","deepMergeSchemas","maxLength","minLength","pattern","maximum","minimum","multipleOf","maxItems","minItems","uniqueItems","maxProperties","minProperties","exclusiveMaximum","exclusiveMinimum","readOnly","writeOnly","nullable","deprecated","discriminator","propertyName","mapping","oneOf","i","push","anyOf","not","childRequired","additionalProperties","items","target","source","output","assign","forEach","from","Set","__exports","__esModule"],"sources":["OpenApiPropertyMapper.ts"],"sourcesContent":["/**\n * @file OpenApiPropertyMapper.ts\n * @description Extracts and maps OpenAPI properties into MetaUI IPropertyMetadata.\n */\n\nimport { IPropertyMetadata } from \"../../interfaces/ISchema\";\nimport { OpenApiRefResolver } from \"../OpenApiRefResolver\";\nimport { OpenApiTypeMapper } from \"../OpenApiTypeMapper\";\nimport { OpenApiUIMapper } from \"../OpenApiUIMapper\";\n\n/**\n * Utility class responsible for extracting and mapping OpenAPI properties into the native MetaUI IPropertyMetadata schema format.\n * \n * @public\n */\nexport class OpenApiPropertyMapper {\n /**\n * Recursively traverses and translates an OpenAPI properties block into a MetaUI IPropertyMetadata dictionary.\n * \n * @param {Record<string, any>} properties The OpenAPI properties block.\n * @param {string[]} requiredKeys Array of required property keys.\n * @param {any} openApiRoot The OpenAPI root document for resolving references.\n * @param {\"2.0\" | \"3.0\"} version The OpenAPI version.\n * @param {number} [depth=0] Recursion depth limiter to prevent stack overflows on circular refs.\n * @returns {Record<string, IPropertyMetadata>} The normalized MetaUI properties mapping.\n */\n public static mapProperties(\n properties: Record<string, any>, \n requiredKeys: string[], \n openApiRoot: unknown, \n version: \"2.0\" | \"3.0\", \n depth: number = 0\n ): Record<string, IPropertyMetadata> {\n const normalizedProps: Record<string, IPropertyMetadata> = {};\n \n if (depth > 8) return normalizedProps;\n\n for (const key of Object.keys(properties)) {\n const isRequired = requiredKeys.includes(key);\n let propDef = properties[key];\n\n if (propDef.$ref) {\n const resolved = OpenApiRefResolver.resolve(propDef.$ref, openApiRoot);\n if (resolved) {\n propDef = { ...resolved, ...propDef };\n }\n }\n\n normalizedProps[key] = this.mapPropertyMetadata(propDef, key, isRequired, openApiRoot, version, depth + 1);\n }\n \n return normalizedProps;\n }\n\n /**\n * Translates a single OpenAPI property schema block into a MetaUI IPropertyMetadata block.\n * Delegates specific mapping tasks to focused private methods to adhere to SRP.\n * \n * @param {any} swaggerProp The specific OpenAPI property schema to map.\n * @param {string} keyName The key/name of this property.\n * @param {boolean} isRequired Whether this property is strictly required.\n * @param {any} openApiRoot The OpenAPI root document for resolving references.\n * @param {\"2.0\" | \"3.0\"} version The OpenAPI version.\n * @param {number} [depth=0] Recursion depth limiter.\n * @returns {IPropertyMetadata} The normalized MetaUI property metadata.\n */\n public static mapPropertyMetadata(\n swaggerProp: unknown, \n keyName: string, \n isRequired: boolean, \n openApiRoot: unknown, \n version: \"2.0\" | \"3.0\", \n depth: number = 0\n ): IPropertyMetadata {\n let currentProp = swaggerProp;\n\n // 1. Resolve References\n const refResult = this._resolveReference(currentProp, keyName, isRequired, openApiRoot, version, depth);\n if (refResult) {\n return refResult;\n }\n\n // 2. Resolve Composition (allOf)\n currentProp = this._resolveAllOf(currentProp, openApiRoot);\n\n // 3. Base Initialization\n const type = OpenApiTypeMapper.mapType(currentProp.type);\n const metaProp: IPropertyMetadata = {\n type: type,\n required: isRequired\n };\n\n // 4. UI Directive Binding\n const uiDirective = OpenApiUIMapper.build(currentProp, keyName);\n if (Object.keys(uiDirective).length > 0) {\n metaProp.ui = uiDirective;\n }\n\n // 5. Constraints & State Modifiers\n this._applyConstraints(metaProp, currentProp, version);\n this._applyStateModifiers(metaProp, currentProp);\n\n if (currentProp.default !== undefined) {\n metaProp.default = currentProp.default;\n }\n\n if (Array.isArray(currentProp.enum)) {\n metaProp.enum = currentProp.enum;\n if (!metaProp.ui) metaProp.ui = {};\n metaProp.ui.widget = \"dropdown\";\n }\n\n // 6. Polymorphism & Nesting\n this._applyPolymorphism(metaProp, currentProp, openApiRoot, version, depth);\n this._applyNestedTypes(metaProp, currentProp, openApiRoot, version, depth, type);\n\n return metaProp;\n }\n\n /**\n * Attempts to resolve a $ref block. If it resolves to a primitive, it inlines it.\n * Otherwise, it returns a reference widget payload.\n * \n * @param {any} currentProp The current schema property definition.\n * @param {string} keyName The structural key name.\n * @param {boolean} isRequired Whether the property is strictly required.\n * @param {any} openApiRoot The root API definition for relative resolution.\n * @param {\"2.0\" | \"3.0\"} version The structural version context.\n * @param {number} depth The recursive resolution depth.\n * @returns {IPropertyMetadata | null} Resolved metadata, or null if no reference exists.\n * @private\n */\n private static _resolveReference(\n currentProp: unknown, \n keyName: string, \n isRequired: boolean, \n openApiRoot: unknown, \n version: \"2.0\" | \"3.0\", \n depth: number\n ): IPropertyMetadata | null {\n if (!currentProp.$ref) {\n return null;\n }\n\n const resolved = OpenApiRefResolver.resolve(currentProp.$ref, openApiRoot);\n const resolvedType = currentProp.type || (resolved && resolved.type);\n \n if (resolvedType && [\"string\", \"number\", \"integer\", \"boolean\"].includes(resolvedType)) {\n const inlineProp = { ...resolved, ...currentProp };\n delete inlineProp.$ref;\n return this.mapPropertyMetadata(inlineProp, keyName, isRequired, openApiRoot, version, depth + 1);\n }\n\n return {\n type: \"object\",\n $ref: currentProp.$ref,\n required: isRequired,\n ui: { widget: \"reference\" }\n };\n }\n\n /**\n * Evaluates and merges 'allOf' arrays into a unified schema definition.\n * \n * @param {any} currentProp The structural property definition containing potential aggregations.\n * @param {any} openApiRoot The base schema for deep resolution.\n * @returns {any} A flattened and merged schema entity.\n * @private\n */\n private static _resolveAllOf(currentProp: unknown, openApiRoot: unknown): unknown {\n if (!Array.isArray(currentProp.allOf)) {\n return currentProp;\n }\n \n let merged = { ...currentProp };\n delete merged.allOf;\n for (const subSchema of currentProp.allOf) {\n let resolvedSub = subSchema;\n if (subSchema.$ref) {\n resolvedSub = OpenApiRefResolver.resolve(subSchema.$ref, openApiRoot) || {};\n }\n merged = this.deepMergeSchemas(merged, resolvedSub);\n }\n return merged;\n }\n\n /**\n * Extracts structural constraints (min/max, regex, etc.) and maps them natively to the output metadata.\n * \n * @param {IPropertyMetadata} metaProp The target metadata definition block.\n * @param {any} currentProp The source OpenAPI schema chunk.\n * @param {\"2.0\" | \"3.0\"} version The version, utilized for nuanced boundary matching.\n * @private\n */\n private static _applyConstraints(metaProp: IPropertyMetadata, currentProp: unknown, version: \"2.0\" | \"3.0\"): void {\n // String Constraints\n if (typeof currentProp.maxLength === \"number\") metaProp.maxLength = currentProp.maxLength;\n if (typeof currentProp.minLength === \"number\") metaProp.minLength = currentProp.minLength;\n if (typeof currentProp.pattern === \"string\") metaProp.pattern = currentProp.pattern;\n\n // Numeric Constraints\n if (typeof currentProp.maximum === \"number\") metaProp.maximum = currentProp.maximum;\n if (typeof currentProp.minimum === \"number\") metaProp.minimum = currentProp.minimum;\n if (typeof currentProp.multipleOf === \"number\") metaProp.multipleOf = currentProp.multipleOf;\n \n // Array Constraints\n if (typeof currentProp.maxItems === \"number\") metaProp.maxItems = currentProp.maxItems;\n if (typeof currentProp.minItems === \"number\") metaProp.minItems = currentProp.minItems;\n if (typeof currentProp.uniqueItems === \"boolean\") metaProp.uniqueItems = currentProp.uniqueItems;\n\n // Object Constraints\n if (typeof currentProp.maxProperties === \"number\") metaProp.maxProperties = currentProp.maxProperties;\n if (typeof currentProp.minProperties === \"number\") metaProp.minProperties = currentProp.minProperties;\n\n // Exclusive Min/Max version-specific logic\n if (version === \"2.0\") {\n if (currentProp.exclusiveMaximum === true && typeof currentProp.maximum === \"number\") {\n metaProp.exclusiveMaximum = true;\n }\n if (currentProp.exclusiveMinimum === true && typeof currentProp.minimum === \"number\") {\n metaProp.exclusiveMinimum = true;\n }\n } else if (version === \"3.0\") {\n if (typeof currentProp.exclusiveMaximum === \"number\" || typeof currentProp.exclusiveMaximum === \"boolean\") {\n metaProp.exclusiveMaximum = currentProp.exclusiveMaximum;\n }\n if (typeof currentProp.exclusiveMinimum === \"number\" || typeof currentProp.exclusiveMinimum === \"boolean\") {\n metaProp.exclusiveMinimum = currentProp.exclusiveMinimum;\n }\n }\n }\n\n /**\n * Extracts operational state flags like readOnly or nullable mapping them onto the internal specification.\n * \n * @param {IPropertyMetadata} metaProp Target native specification.\n * @param {any} currentProp Source raw schema payload.\n * @private\n */\n private static _applyStateModifiers(metaProp: IPropertyMetadata, currentProp: unknown): void {\n if (currentProp.readOnly === true) metaProp.readOnly = true;\n if (currentProp.writeOnly === true) metaProp.writeOnly = true;\n if (currentProp.nullable === true) metaProp.nullable = true;\n if (currentProp.deprecated === true) metaProp.deprecated = true;\n }\n\n /**\n * Extracts and maps polymorphic discriminator and union types (oneOf/anyOf) to MetaUI structural directives.\n * \n * @param {IPropertyMetadata} metaProp Native MetaUI definition tree.\n * @param {any} currentProp Raw schema block.\n * @param {any} openApiRoot Master OpenAPI root.\n * @param {\"2.0\" | \"3.0\"} version Protocol version identifier.\n * @param {number} depth Internal depth tracker.\n * @private\n */\n private static _applyPolymorphism(\n metaProp: IPropertyMetadata, \n currentProp: unknown, \n openApiRoot: unknown, \n version: \"2.0\" | \"3.0\", \n depth: number\n ): void {\n // Discriminator handling\n if (currentProp.discriminator) {\n if (version === \"2.0\" && typeof currentProp.discriminator === \"string\") {\n metaProp.discriminator = { propertyName: currentProp.discriminator };\n } else if (version === \"3.0\" && typeof currentProp.discriminator === \"object\") {\n metaProp.discriminator = {\n propertyName: currentProp.discriminator.propertyName,\n mapping: currentProp.discriminator.mapping\n };\n }\n }\n\n // Handle oneOf polymorphic mapping\n if (Array.isArray(currentProp.oneOf)) {\n metaProp.oneOf = [];\n for (let i = 0; i < currentProp.oneOf.length; i++) {\n metaProp.oneOf.push(this.mapPropertyMetadata(currentProp.oneOf[i], `Variant${i}`, false, openApiRoot, version, depth + 1));\n }\n if (!metaProp.ui) metaProp.ui = {};\n metaProp.ui.widget = \"polymorphic\";\n }\n \n // Handle anyOf mapping\n if (Array.isArray(currentProp.anyOf)) {\n metaProp.anyOf = [];\n for (let i = 0; i < currentProp.anyOf.length; i++) {\n metaProp.anyOf.push(this.mapPropertyMetadata(currentProp.anyOf[i], `AnyVariant${i}`, false, openApiRoot, version, depth + 1));\n }\n }\n\n // Handle not mapping\n if (currentProp.not) {\n metaProp.not = this.mapPropertyMetadata(currentProp.not, `NotVariant`, false, openApiRoot, version, depth + 1);\n }\n }\n\n /**\n * Recursively traverses into nested objects and arrays constructing the structural node trees.\n * \n * @param {IPropertyMetadata} metaProp The localized destination structure.\n * @param {any} currentProp The source chunk representing a complex element.\n * @param {any} openApiRoot The OpenAPI dictionary context.\n * @param {\"2.0\" | \"3.0\"} version System schema version.\n * @param {number} depth Invocation stack depth.\n * @param {string} type Normalized atomic structure type.\n * @private\n */\n private static _applyNestedTypes(\n metaProp: IPropertyMetadata, \n currentProp: unknown, \n openApiRoot: unknown, \n version: \"2.0\" | \"3.0\", \n depth: number,\n type: string\n ): void {\n if (type === \"object\") {\n if (currentProp.properties) {\n const childRequired = Array.isArray(currentProp.required) ? currentProp.required : [];\n metaProp.properties = this.mapProperties(currentProp.properties, childRequired, openApiRoot, version, depth + 1);\n }\n \n if (currentProp.additionalProperties) {\n if (currentProp.additionalProperties === true) {\n metaProp.additionalProperties = true;\n } else if (typeof currentProp.additionalProperties === \"object\") {\n metaProp.additionalProperties = this.mapPropertyMetadata(currentProp.additionalProperties, \"value\", false, openApiRoot, version, depth + 1);\n if (!metaProp.ui) metaProp.ui = {};\n metaProp.ui.widget = \"dictionary\";\n }\n }\n \n // Opaque JSON object definition mapping\n if (!currentProp.properties && !currentProp.additionalProperties) {\n if (!metaProp.ui) metaProp.ui = {};\n metaProp.ui.widget = \"codeEditor\";\n }\n } else if (type === \"array\" && currentProp.items) {\n metaProp.items = this.mapPropertyMetadata(currentProp.items, \"items\", false, openApiRoot, version, depth + 1);\n if (metaProp.items.type !== \"object\") {\n if (!metaProp.ui) metaProp.ui = {};\n metaProp.ui.widget = \"multiInput\";\n }\n }\n }\n\n /**\n * Recursively deep-merges two OpenAPI objects, ensuring array boundaries and nested structures are preserved.\n * \n * @param {any} target The target base object.\n * @param {any} source The source object providing override details.\n * @returns {any} The synthesized output object.\n */\n public static deepMergeSchemas(target: unknown, source: unknown): unknown {\n const output = Object.assign({}, target);\n if (source === null || typeof source !== \"object\") return output;\n\n Object.keys(source).forEach(key => {\n if (Array.isArray(source[key])) {\n output[key] = Array.isArray(target[key]) \n ? Array.from(new Set([...target[key], ...source[key]])) \n : [...source[key]];\n } else if (typeof source[key] === \"object\" && source[key] !== null) {\n if (target[key] && typeof target[key] === \"object\") {\n output[key] = this.deepMergeSchemas(target[key], source[key]);\n } else {\n output[key] = Object.assign({}, source[key]);\n }\n } else {\n output[key] = source[key];\n }\n });\n return output;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|