@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 @@
|
|
|
1
|
+
{"version":3,"file":"OpenApiExtractor.d.ts","sourceRoot":"../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/swagger/OpenApiExtractor.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,qDAAqD,CAAC;IACrE,OAAO,SAAS,MAAM,oBAAoB,CAAC;IAE3C,UAAiB,aAAa;QAC1B,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;KAChB;IAED;;;;;;;;OAQG;IACH,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,SAAS;QAEnD;;;;;;WAMG;eACW,cAAc,CAAC,SAAS,EAAE,OAAO,GAAG,aAAa,EAAE;KAsIpE;CAEA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
sap.ui.define(["sap/ui/base/Object"],function(e){"use strict";const t=e.extend("nz.co.siliconst.ui5.metaui.swagger.OpenApiExtractor",{});t.extractTargets=function e(t){const s=[];if(!t||typeof t!=="object"){return s}const o=t;if(typeof o.openapi==="string"&&o.openapi.startsWith("3.")&&o.components&&typeof o.components.schemas==="object"){Object.keys(o.components.schemas).forEach(e=>{s.push({key:"#/components/schemas/"+e,text:"Schema: "+e})})}if(typeof o.swagger==="string"&&o.swagger.startsWith("2.")&&typeof o.definitions==="object"&&o.definitions!==null){Object.keys(o.definitions).forEach(e=>{s.push({key:"#/definitions/"+e,text:"Definition: "+e})})}if(typeof o.paths==="object"&&o.paths!==null){Object.keys(o.paths).forEach(e=>{const t=o.paths[e];if(t&&typeof t==="object"){Object.keys(t).forEach(t=>{const o=e.replace(/\//g,"~1");s.push({key:"#/paths/"+o+"/"+t,text:"Operation: "+t.toUpperCase()+" "+e})})}})}if(s.length>1){let e=-1;let t=-1;const i=o.info;const n=i&&typeof i.title==="string"?i.title.toLowerCase().replace(/[^a-z0-9]/g,""):"";const c=i&&typeof i.title==="string"?i.title.toLowerCase().split(/[\s_-]+/):[];s.forEach((s,i)=>{let f=0;if(s.key.includes("/schemas/")||s.key.includes("/definitions/")){const e=s.key.split("/").pop()||"";const t=e.toLowerCase();const i=t.replace(/[^a-z0-9]/g,"");if(n&&i===n)f+=30;else if(n&&n.includes(i))f+=15;else if(n&&i.includes(n))f+=15;c.forEach(e=>{if(e.length>3&&t.includes(e))f+=5});const r=["root","main","app","application","payload","document"];if(r.some(e=>t.includes(e)))f+=5;let a=null;if(s.key.startsWith("#/components/schemas/")&&typeof o.components==="object"&&o.components!==null){const t=o.components;if(typeof t.schemas==="object"&&t.schemas!==null){a=t.schemas[e]||null}}else if(s.key.startsWith("#/definitions/")&&typeof o.definitions==="object"&&o.definitions!==null){a=o.definitions[e]||null}if(a&&typeof a==="object"){const e=e=>{if(!e||typeof e!=="object")return;const t=e;if(t.properties&&typeof t.properties==="object"){f+=Object.keys(t.properties).length*2;Object.values(t.properties).forEach(e=>{if(e&&typeof e==="object"){const t=e;if(t.$ref)f+=20;if(t.items&&typeof t.items==="object"&&t.items.$ref)f+=20}})}if(t.required&&Array.isArray(t.required)){f+=t.required.length*5}};e(a);if(a.allOf&&Array.isArray(a.allOf)){a.allOf.forEach(e)}if(a.anyOf&&Array.isArray(a.anyOf)){a.anyOf.forEach(e)}if(a.oneOf&&Array.isArray(a.oneOf)){a.oneOf.forEach(e)}}}if(f>e){e=f;t=i}});if(t!==-1&&e>0){const e=s.splice(t,1)[0];e.text=`(Recommended) ${e.text}`;s.unshift(e)}}return s};return t});
|
|
2
|
+
//# sourceMappingURL=OpenApiExtractor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OpenApiExtractor.js","names":["OpenApiExtractor","UI5Object","extend","extractTargets","rawSchema","aTargets","oSchema","openapi","startsWith","components","schemas","Object","keys","forEach","sKey","push","key","text","swagger","definitions","paths","sPath","methods","sMethod","escapedPath","replace","toUpperCase","length","bestScore","bestIndex","info","title","toLowerCase","titleWords","split","target","index","score","includes","name","pop","nameLower","nameClean","word","genericRoots","some","r","schemaDef","scoreSchemaNode","node","nodeObj","properties","values","prop","propObj","$ref","items","required","Array","isArray","allOf","anyOf","oneOf","primary","splice","unshift"],"sources":["OpenApiExtractor.ts"],"sourcesContent":["import UI5Object from \"sap/ui/base/Object\";\n\nexport interface OpenApiTarget {\n key: string;\n text: string;\n}\n\n/**\n * @class\n * OpenApiExtractor utility.\n * Dynamically crawls OpenAPI/Swagger JSON specifications to find all valid \n * root endpoints and schema definitions that can be used as a schemaTarget.\n * \n * @extends sap.ui.base.Object\n * @alias nz.co.siliconst.ui5.metaui.swagger.OpenApiExtractor\n */\nexport default class OpenApiExtractor extends UI5Object {\n\n /**\n * Parses an OpenAPI document and extracts an array of valid targets.\n * \n * @public\n * @param oSchema The parsed JSON schema object.\n * @returns Array of target bindings.\n */\n public static extractTargets(rawSchema: unknown): OpenApiTarget[] {\n const aTargets: OpenApiTarget[] = [];\n if (!rawSchema || typeof rawSchema !== \"object\") {\n return aTargets;\n }\n\n const oSchema = rawSchema as Record<string, unknown>;\n\n // OpenAPI 3.0 (components/schemas)\n if (typeof oSchema.openapi === \"string\" && oSchema.openapi.startsWith(\"3.\") && oSchema.components && typeof (oSchema.components as Record<string,unknown>).schemas === \"object\") {\n Object.keys((oSchema.components as Record<string,unknown>).schemas as Record<string,unknown>).forEach((sKey) => {\n aTargets.push({\n key: \"#/components/schemas/\" + sKey,\n text: \"Schema: \" + sKey\n });\n });\n }\n \n // Swagger 2.0 (definitions)\n if (typeof oSchema.swagger === \"string\" && oSchema.swagger.startsWith(\"2.\") && typeof oSchema.definitions === \"object\" && oSchema.definitions !== null) {\n Object.keys(oSchema.definitions as Record<string,unknown>).forEach((sKey) => {\n aTargets.push({\n key: \"#/definitions/\" + sKey,\n text: \"Definition: \" + sKey\n });\n });\n }\n\n // Extract endpoints\n if (typeof oSchema.paths === \"object\" && oSchema.paths !== null) {\n Object.keys(oSchema.paths as Record<string,unknown>).forEach((sPath) => {\n const methods = (oSchema.paths as Record<string,unknown>)[sPath];\n if (methods && typeof methods === \"object\") {\n Object.keys(methods).forEach((sMethod) => {\n const escapedPath = sPath.replace(/\\//g, \"~1\");\n aTargets.push({\n key: \"#/paths/\" + escapedPath + \"/\" + sMethod,\n text: \"Operation: \" + sMethod.toUpperCase() + \" \" + sPath\n });\n });\n }\n });\n }\n\n // Primary Schema Detection\n if (aTargets.length > 1) {\n let bestScore = -1;\n let bestIndex = -1;\n \n const info = oSchema.info as Record<string, unknown> | undefined;\n const title = (info && typeof info.title === \"string\") ? info.title.toLowerCase().replace(/[^a-z0-9]/g, \"\") : \"\";\n const titleWords = (info && typeof info.title === \"string\") ? info.title.toLowerCase().split(/[\\s_-]+/) : [];\n \n aTargets.forEach((target, index) => {\n let score = 0;\n \n // Only score Schemas/Definitions, not operations for the primary node heuristic\n if (target.key.includes(\"/schemas/\") || target.key.includes(\"/definitions/\")) {\n const name = target.key.split(\"/\").pop() || \"\";\n const nameLower = name.toLowerCase();\n const nameClean = nameLower.replace(/[^a-z0-9]/g, \"\");\n \n if (title && nameClean === title) score += 30; // Reduced from 100\n else if (title && title.includes(nameClean)) score += 15; // Reduced from 50\n else if (title && nameClean.includes(title)) score += 15; // Reduced from 50\n \n titleWords.forEach((word: string) => {\n if (word.length > 3 && nameLower.includes(word)) score += 5; // Reduced from 10\n });\n \n const genericRoots = [\"root\", \"main\", \"app\", \"application\", \"payload\", \"document\"];\n if (genericRoots.some(r => nameLower.includes(r))) score += 5;\n\n // Complexity Fallback\n let schemaDef: Record<string, unknown> | null = null;\n if (target.key.startsWith(\"#/components/schemas/\") && typeof oSchema.components === \"object\" && oSchema.components !== null) {\n const components = oSchema.components as Record<string, unknown>;\n if (typeof components.schemas === \"object\" && components.schemas !== null) {\n schemaDef = (components.schemas as Record<string, Record<string, unknown>>)[name] || null;\n }\n } else if (target.key.startsWith(\"#/definitions/\") && typeof oSchema.definitions === \"object\" && oSchema.definitions !== null) {\n schemaDef = (oSchema.definitions as Record<string, Record<string, unknown>>)[name] || null;\n }\n\n if (schemaDef && typeof schemaDef === \"object\") {\n const scoreSchemaNode = (node: unknown) => {\n if (!node || typeof node !== \"object\") return;\n const nodeObj = node as Record<string, unknown>;\n if (nodeObj.properties && typeof nodeObj.properties === \"object\") {\n score += Object.keys(nodeObj.properties).length * 2; // +2 per property\n Object.values(nodeObj.properties).forEach((prop: unknown) => {\n if (prop && typeof prop === \"object\") {\n const propObj = prop as Record<string, unknown>;\n if (propObj.$ref) score += 20; // +20 for referencing sub-schemas (aggregate root)\n if (propObj.items && typeof propObj.items === \"object\" && (propObj.items as Record<string, unknown>).$ref) score += 20;\n }\n });\n }\n \n if (nodeObj.required && Array.isArray(nodeObj.required)) {\n score += nodeObj.required.length * 5; // +5 per required constraint\n }\n };\n\n scoreSchemaNode(schemaDef);\n\n // Handle OpenAPI composition structures\n if (schemaDef.allOf && Array.isArray(schemaDef.allOf)) {\n schemaDef.allOf.forEach(scoreSchemaNode);\n }\n if (schemaDef.anyOf && Array.isArray(schemaDef.anyOf)) {\n schemaDef.anyOf.forEach(scoreSchemaNode);\n }\n if (schemaDef.oneOf && Array.isArray(schemaDef.oneOf)) {\n schemaDef.oneOf.forEach(scoreSchemaNode);\n }\n }\n }\n \n if (score > bestScore) {\n bestScore = score;\n bestIndex = index;\n }\n });\n\n if (bestIndex !== -1 && bestScore > 0) {\n const primary = aTargets.splice(bestIndex, 1)[0];\n primary.text = `(Recommended) ${primary.text}`;\n aTargets.unshift(primary);\n }\n }\n\n return aTargets;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import UI5Object from "sap/ui/base/Object";
|
|
2
|
+
|
|
3
|
+
export interface OpenApiTarget {
|
|
4
|
+
key: string;
|
|
5
|
+
text: string;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @class
|
|
10
|
+
* OpenApiExtractor utility.
|
|
11
|
+
* Dynamically crawls OpenAPI/Swagger JSON specifications to find all valid
|
|
12
|
+
* root endpoints and schema definitions that can be used as a schemaTarget.
|
|
13
|
+
*
|
|
14
|
+
* @extends sap.ui.base.Object
|
|
15
|
+
* @alias nz.co.siliconst.ui5.metaui.swagger.OpenApiExtractor
|
|
16
|
+
*/
|
|
17
|
+
export default class OpenApiExtractor extends UI5Object {
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Parses an OpenAPI document and extracts an array of valid targets.
|
|
21
|
+
*
|
|
22
|
+
* @public
|
|
23
|
+
* @param oSchema The parsed JSON schema object.
|
|
24
|
+
* @returns Array of target bindings.
|
|
25
|
+
*/
|
|
26
|
+
public static extractTargets(rawSchema: unknown): OpenApiTarget[] {
|
|
27
|
+
const aTargets: OpenApiTarget[] = [];
|
|
28
|
+
if (!rawSchema || typeof rawSchema !== "object") {
|
|
29
|
+
return aTargets;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
const oSchema = rawSchema as Record<string, unknown>;
|
|
33
|
+
|
|
34
|
+
// OpenAPI 3.0 (components/schemas)
|
|
35
|
+
if (typeof oSchema.openapi === "string" && oSchema.openapi.startsWith("3.") && oSchema.components && typeof (oSchema.components as Record<string,unknown>).schemas === "object") {
|
|
36
|
+
Object.keys((oSchema.components as Record<string,unknown>).schemas as Record<string,unknown>).forEach((sKey) => {
|
|
37
|
+
aTargets.push({
|
|
38
|
+
key: "#/components/schemas/" + sKey,
|
|
39
|
+
text: "Schema: " + sKey
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// Swagger 2.0 (definitions)
|
|
45
|
+
if (typeof oSchema.swagger === "string" && oSchema.swagger.startsWith("2.") && typeof oSchema.definitions === "object" && oSchema.definitions !== null) {
|
|
46
|
+
Object.keys(oSchema.definitions as Record<string,unknown>).forEach((sKey) => {
|
|
47
|
+
aTargets.push({
|
|
48
|
+
key: "#/definitions/" + sKey,
|
|
49
|
+
text: "Definition: " + sKey
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// Extract endpoints
|
|
55
|
+
if (typeof oSchema.paths === "object" && oSchema.paths !== null) {
|
|
56
|
+
Object.keys(oSchema.paths as Record<string,unknown>).forEach((sPath) => {
|
|
57
|
+
const methods = (oSchema.paths as Record<string,unknown>)[sPath];
|
|
58
|
+
if (methods && typeof methods === "object") {
|
|
59
|
+
Object.keys(methods).forEach((sMethod) => {
|
|
60
|
+
const escapedPath = sPath.replace(/\//g, "~1");
|
|
61
|
+
aTargets.push({
|
|
62
|
+
key: "#/paths/" + escapedPath + "/" + sMethod,
|
|
63
|
+
text: "Operation: " + sMethod.toUpperCase() + " " + sPath
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// Primary Schema Detection
|
|
71
|
+
if (aTargets.length > 1) {
|
|
72
|
+
let bestScore = -1;
|
|
73
|
+
let bestIndex = -1;
|
|
74
|
+
|
|
75
|
+
const info = oSchema.info as Record<string, unknown> | undefined;
|
|
76
|
+
const title = (info && typeof info.title === "string") ? info.title.toLowerCase().replace(/[^a-z0-9]/g, "") : "";
|
|
77
|
+
const titleWords = (info && typeof info.title === "string") ? info.title.toLowerCase().split(/[\s_-]+/) : [];
|
|
78
|
+
|
|
79
|
+
aTargets.forEach((target, index) => {
|
|
80
|
+
let score = 0;
|
|
81
|
+
|
|
82
|
+
// Only score Schemas/Definitions, not operations for the primary node heuristic
|
|
83
|
+
if (target.key.includes("/schemas/") || target.key.includes("/definitions/")) {
|
|
84
|
+
const name = target.key.split("/").pop() || "";
|
|
85
|
+
const nameLower = name.toLowerCase();
|
|
86
|
+
const nameClean = nameLower.replace(/[^a-z0-9]/g, "");
|
|
87
|
+
|
|
88
|
+
if (title && nameClean === title) score += 30; // Reduced from 100
|
|
89
|
+
else if (title && title.includes(nameClean)) score += 15; // Reduced from 50
|
|
90
|
+
else if (title && nameClean.includes(title)) score += 15; // Reduced from 50
|
|
91
|
+
|
|
92
|
+
titleWords.forEach((word: string) => {
|
|
93
|
+
if (word.length > 3 && nameLower.includes(word)) score += 5; // Reduced from 10
|
|
94
|
+
});
|
|
95
|
+
|
|
96
|
+
const genericRoots = ["root", "main", "app", "application", "payload", "document"];
|
|
97
|
+
if (genericRoots.some(r => nameLower.includes(r))) score += 5;
|
|
98
|
+
|
|
99
|
+
// Complexity Fallback
|
|
100
|
+
let schemaDef: Record<string, unknown> | null = null;
|
|
101
|
+
if (target.key.startsWith("#/components/schemas/") && typeof oSchema.components === "object" && oSchema.components !== null) {
|
|
102
|
+
const components = oSchema.components as Record<string, unknown>;
|
|
103
|
+
if (typeof components.schemas === "object" && components.schemas !== null) {
|
|
104
|
+
schemaDef = (components.schemas as Record<string, Record<string, unknown>>)[name] || null;
|
|
105
|
+
}
|
|
106
|
+
} else if (target.key.startsWith("#/definitions/") && typeof oSchema.definitions === "object" && oSchema.definitions !== null) {
|
|
107
|
+
schemaDef = (oSchema.definitions as Record<string, Record<string, unknown>>)[name] || null;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
if (schemaDef && typeof schemaDef === "object") {
|
|
111
|
+
const scoreSchemaNode = (node: unknown) => {
|
|
112
|
+
if (!node || typeof node !== "object") return;
|
|
113
|
+
const nodeObj = node as Record<string, unknown>;
|
|
114
|
+
if (nodeObj.properties && typeof nodeObj.properties === "object") {
|
|
115
|
+
score += Object.keys(nodeObj.properties).length * 2; // +2 per property
|
|
116
|
+
Object.values(nodeObj.properties).forEach((prop: unknown) => {
|
|
117
|
+
if (prop && typeof prop === "object") {
|
|
118
|
+
const propObj = prop as Record<string, unknown>;
|
|
119
|
+
if (propObj.$ref) score += 20; // +20 for referencing sub-schemas (aggregate root)
|
|
120
|
+
if (propObj.items && typeof propObj.items === "object" && (propObj.items as Record<string, unknown>).$ref) score += 20;
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
if (nodeObj.required && Array.isArray(nodeObj.required)) {
|
|
126
|
+
score += nodeObj.required.length * 5; // +5 per required constraint
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
|
|
130
|
+
scoreSchemaNode(schemaDef);
|
|
131
|
+
|
|
132
|
+
// Handle OpenAPI composition structures
|
|
133
|
+
if (schemaDef.allOf && Array.isArray(schemaDef.allOf)) {
|
|
134
|
+
schemaDef.allOf.forEach(scoreSchemaNode);
|
|
135
|
+
}
|
|
136
|
+
if (schemaDef.anyOf && Array.isArray(schemaDef.anyOf)) {
|
|
137
|
+
schemaDef.anyOf.forEach(scoreSchemaNode);
|
|
138
|
+
}
|
|
139
|
+
if (schemaDef.oneOf && Array.isArray(schemaDef.oneOf)) {
|
|
140
|
+
schemaDef.oneOf.forEach(scoreSchemaNode);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
if (score > bestScore) {
|
|
146
|
+
bestScore = score;
|
|
147
|
+
bestIndex = index;
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
|
|
151
|
+
if (bestIndex !== -1 && bestScore > 0) {
|
|
152
|
+
const primary = aTargets.splice(bestIndex, 1)[0];
|
|
153
|
+
primary.text = `(Recommended) ${primary.text}`;
|
|
154
|
+
aTargets.unshift(primary);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
return aTargets;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
@@ -1,226 +0,0 @@
|
|
|
1
|
-
sap.ui.define(["../utils/Logger", "./SwaggerTypeMapper", "./SwaggerUIMapper", "./SwaggerRefResolver"], function (___utils_Logger, ___SwaggerTypeMapper, ___SwaggerUIMapper, ___SwaggerRefResolver) {
|
|
2
|
-
"use strict";
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* @file SwaggerBuilder.ts
|
|
6
|
-
* @description Facade orchestration for translating Swagger/OpenAPI JSON into native MetaUI ISchema.
|
|
7
|
-
* Strict Single Responsibility architecture delegates mapping logic to dedicated utilities.
|
|
8
|
-
*/
|
|
9
|
-
const Logger = ___utils_Logger["Logger"];
|
|
10
|
-
const SwaggerTypeMapper = ___SwaggerTypeMapper["SwaggerTypeMapper"];
|
|
11
|
-
const SwaggerUIMapper = ___SwaggerUIMapper["SwaggerUIMapper"];
|
|
12
|
-
const SwaggerRefResolver = ___SwaggerRefResolver["SwaggerRefResolver"];
|
|
13
|
-
class SwaggerBuilder {
|
|
14
|
-
/**
|
|
15
|
-
* Determines if the provided JSON payload is a Swagger or OpenAPI document.
|
|
16
|
-
*
|
|
17
|
-
* @param {any} rawSchema The raw JSON schema to test.
|
|
18
|
-
* @returns {boolean} True if the document contains 'openapi' or 'swagger' root keys.
|
|
19
|
-
*/
|
|
20
|
-
canHandle(rawSchema) {
|
|
21
|
-
return !!(rawSchema && (rawSchema.openapi || rawSchema.swagger));
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Builds a strict MetaUI ISchema from the provided OpenAPI payload.
|
|
26
|
-
*
|
|
27
|
-
* @param {any} rawSchema The OpenAPI root document.
|
|
28
|
-
* @returns {ISchema} The translated MetaUI schema.
|
|
29
|
-
*/
|
|
30
|
-
build(rawSchema) {
|
|
31
|
-
return SwaggerBuilder.build(rawSchema);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Asynchronously fetches a remote OpenAPI document and compiles it into a MetaUI ISchema.
|
|
36
|
-
*
|
|
37
|
-
* @param {string} url The URL to fetch the JSON payload from.
|
|
38
|
-
* @param {string} [targetDefinition] Optional. The specific entity schema to extract.
|
|
39
|
-
* @returns {Promise<ISchema>} A Promise resolving to the compiled ISchema.
|
|
40
|
-
*/
|
|
41
|
-
static async fetchAndBuild(url, targetDefinition) {
|
|
42
|
-
try {
|
|
43
|
-
const response = await fetch(url);
|
|
44
|
-
if (!response.ok) {
|
|
45
|
-
throw new Error(`HTTP error! status: ${response.status}`);
|
|
46
|
-
}
|
|
47
|
-
const swaggerRoot = await response.json();
|
|
48
|
-
return this.build(swaggerRoot, targetDefinition);
|
|
49
|
-
} catch (error) {
|
|
50
|
-
const msg = "Failed to fetch Swagger JSON from URL: " + error.message;
|
|
51
|
-
Logger.error("[MetaUI SwaggerBuilder]", msg);
|
|
52
|
-
throw new Error(msg);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* Synchronously builds a MetaUI ISchema from a provided OpenAPI root document.
|
|
58
|
-
* Automatically extracts the requested definition from `components.schemas` or falls back to the first available.
|
|
59
|
-
*
|
|
60
|
-
* @param {any} swaggerRoot The OpenAPI root document.
|
|
61
|
-
* @param {string} [targetDefinition] Optional. The specific entity schema to extract.
|
|
62
|
-
* @returns {ISchema} The translated MetaUI schema.
|
|
63
|
-
*/
|
|
64
|
-
static build(swaggerRoot, targetDefinition) {
|
|
65
|
-
if (!swaggerRoot || typeof swaggerRoot !== "object") {
|
|
66
|
-
throw new Error("[MetaUI SwaggerBuilder] Invalid Swagger root object provided.");
|
|
67
|
-
}
|
|
68
|
-
let targetObject = swaggerRoot;
|
|
69
|
-
if (!targetDefinition) {
|
|
70
|
-
if (swaggerRoot.components && swaggerRoot.components.schemas) {
|
|
71
|
-
const keys = Object.keys(swaggerRoot.components.schemas);
|
|
72
|
-
if (keys.length > 0) targetDefinition = keys[0];
|
|
73
|
-
} else if (swaggerRoot.definitions) {
|
|
74
|
-
const keys = Object.keys(swaggerRoot.definitions);
|
|
75
|
-
if (keys.length > 0) targetDefinition = keys[0];
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
if (targetDefinition) {
|
|
79
|
-
let found = false;
|
|
80
|
-
if (swaggerRoot.components && swaggerRoot.components.schemas && swaggerRoot.components.schemas[targetDefinition]) {
|
|
81
|
-
targetObject = swaggerRoot.components.schemas[targetDefinition];
|
|
82
|
-
found = true;
|
|
83
|
-
} else if (swaggerRoot.definitions && swaggerRoot.definitions[targetDefinition]) {
|
|
84
|
-
targetObject = swaggerRoot.definitions[targetDefinition];
|
|
85
|
-
found = true;
|
|
86
|
-
}
|
|
87
|
-
if (!found) {
|
|
88
|
-
throw new Error(`[MetaUI SwaggerBuilder] Could not find target definition '${targetDefinition}' in components/schemas or definitions.`);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
const schema = {
|
|
92
|
-
title: targetObject.title || swaggerRoot.info?.title || targetDefinition,
|
|
93
|
-
type: targetObject.type === "array" ? "array" : "object",
|
|
94
|
-
layoutStrategy: targetObject.type === "array" ? "table" : "form"
|
|
95
|
-
};
|
|
96
|
-
if (targetObject.additionalProperties === true) {
|
|
97
|
-
schema.additionalProperties = true;
|
|
98
|
-
}
|
|
99
|
-
if (schema.type === "object") {
|
|
100
|
-
const requiredKeys = Array.isArray(targetObject.required) ? targetObject.required : [];
|
|
101
|
-
schema.properties = this.mapProperties(targetObject.properties || {}, requiredKeys, swaggerRoot);
|
|
102
|
-
} else if (schema.type === "array" && targetObject.items) {
|
|
103
|
-
schema.items = this.mapPropertyMetadata(targetObject.items, "items", false, swaggerRoot);
|
|
104
|
-
}
|
|
105
|
-
return schema;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
/**
|
|
109
|
-
* Recursively traverses and translates an OpenAPI properties block into MetaUI IPropertyMetadata.
|
|
110
|
-
*
|
|
111
|
-
* @param {Record<string, any>} properties The OpenAPI properties object.
|
|
112
|
-
* @param {string[]} requiredKeys An array of keys marked as required in the parent schema.
|
|
113
|
-
* @param {any} swaggerRoot The root document (used for $ref resolution).
|
|
114
|
-
* @returns {Record<string, IPropertyMetadata>} The mapped MetaUI properties object.
|
|
115
|
-
*/
|
|
116
|
-
static mapProperties(properties, requiredKeys, swaggerRoot) {
|
|
117
|
-
const normalizedProps = {};
|
|
118
|
-
for (const key of Object.keys(properties)) {
|
|
119
|
-
const isRequired = requiredKeys.includes(key);
|
|
120
|
-
let propDef = properties[key];
|
|
121
|
-
if (propDef.$ref) {
|
|
122
|
-
const resolved = SwaggerRefResolver.resolve(propDef.$ref, swaggerRoot);
|
|
123
|
-
if (resolved) {
|
|
124
|
-
propDef = {
|
|
125
|
-
...resolved,
|
|
126
|
-
...propDef
|
|
127
|
-
};
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
normalizedProps[key] = this.mapPropertyMetadata(propDef, key, isRequired, swaggerRoot);
|
|
131
|
-
}
|
|
132
|
-
return normalizedProps;
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
/**
|
|
136
|
-
* Translates a single OpenAPI property schema into a MetaUI IPropertyMetadata block.
|
|
137
|
-
* Handles local $ref resolution, allOf merging, type mapping, and UI directive injection.
|
|
138
|
-
*
|
|
139
|
-
* @param {any} swaggerProp The OpenAPI property definition.
|
|
140
|
-
* @param {string} keyName The technical key of the property.
|
|
141
|
-
* @param {boolean} isRequired Whether this property is strictly required.
|
|
142
|
-
* @param {any} swaggerRoot The root document (used for $ref resolution).
|
|
143
|
-
* @returns {IPropertyMetadata} The compiled MetaUI property metadata.
|
|
144
|
-
*/
|
|
145
|
-
static mapPropertyMetadata(swaggerProp, keyName, isRequired, swaggerRoot) {
|
|
146
|
-
let currentProp = swaggerProp;
|
|
147
|
-
if (currentProp.$ref) {
|
|
148
|
-
const resolved = SwaggerRefResolver.resolve(currentProp.$ref, swaggerRoot);
|
|
149
|
-
if (resolved) {
|
|
150
|
-
currentProp = {
|
|
151
|
-
...resolved,
|
|
152
|
-
...currentProp
|
|
153
|
-
};
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
if (Array.isArray(currentProp.allOf)) {
|
|
157
|
-
let merged = {
|
|
158
|
-
...currentProp
|
|
159
|
-
};
|
|
160
|
-
delete merged.allOf;
|
|
161
|
-
for (const subSchema of currentProp.allOf) {
|
|
162
|
-
let resolvedSub = subSchema;
|
|
163
|
-
if (subSchema.$ref) {
|
|
164
|
-
resolvedSub = SwaggerRefResolver.resolve(subSchema.$ref, swaggerRoot) || {};
|
|
165
|
-
}
|
|
166
|
-
merged = {
|
|
167
|
-
...merged,
|
|
168
|
-
...resolvedSub
|
|
169
|
-
};
|
|
170
|
-
}
|
|
171
|
-
currentProp = merged;
|
|
172
|
-
}
|
|
173
|
-
const type = SwaggerTypeMapper.mapType(currentProp.type);
|
|
174
|
-
const metaProp = {
|
|
175
|
-
type: type,
|
|
176
|
-
required: isRequired
|
|
177
|
-
};
|
|
178
|
-
const uiDirective = SwaggerUIMapper.build(currentProp, keyName);
|
|
179
|
-
if (Object.keys(uiDirective).length > 0) {
|
|
180
|
-
metaProp.ui = uiDirective;
|
|
181
|
-
}
|
|
182
|
-
if (typeof currentProp.maxLength === "number") metaProp.maxLength = currentProp.maxLength;
|
|
183
|
-
if (typeof currentProp.minLength === "number") metaProp.minLength = currentProp.minLength;
|
|
184
|
-
if (typeof currentProp.maximum === "number") metaProp.maximum = currentProp.maximum;
|
|
185
|
-
if (typeof currentProp.minimum === "number") metaProp.minimum = currentProp.minimum;
|
|
186
|
-
if (typeof currentProp.pattern === "string") metaProp.pattern = currentProp.pattern;
|
|
187
|
-
if (typeof currentProp.multipleOf === "number") metaProp.multipleOf = currentProp.multipleOf;
|
|
188
|
-
if (currentProp.default !== undefined) metaProp.default = currentProp.default;
|
|
189
|
-
if (typeof currentProp.nullable === "boolean") metaProp.nullable = currentProp.nullable;
|
|
190
|
-
if (typeof currentProp.writeOnly === "boolean") metaProp.writeOnly = currentProp.writeOnly;
|
|
191
|
-
if (currentProp.example !== undefined) metaProp.example = currentProp.example;
|
|
192
|
-
if (typeof currentProp.deprecated === "boolean") metaProp.deprecated = currentProp.deprecated;
|
|
193
|
-
if (currentProp.exclusiveMinimum !== undefined) metaProp.exclusiveMinimum = currentProp.exclusiveMinimum;
|
|
194
|
-
if (currentProp.exclusiveMaximum !== undefined) metaProp.exclusiveMaximum = currentProp.exclusiveMaximum;
|
|
195
|
-
if (Array.isArray(currentProp.enum)) {
|
|
196
|
-
metaProp.enum = currentProp.enum;
|
|
197
|
-
if (!metaProp.ui) metaProp.ui = {};
|
|
198
|
-
if (!metaProp.ui.widget) {
|
|
199
|
-
if (type === "array") {
|
|
200
|
-
metaProp.ui.widget = "multiSelect";
|
|
201
|
-
} else {
|
|
202
|
-
metaProp.ui.widget = "select";
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
if (type === "object") {
|
|
207
|
-
if (currentProp.properties) {
|
|
208
|
-
const childRequired = Array.isArray(currentProp.required) ? currentProp.required : [];
|
|
209
|
-
metaProp.properties = this.mapProperties(currentProp.properties, childRequired, swaggerRoot);
|
|
210
|
-
}
|
|
211
|
-
if (currentProp.additionalProperties === true) {
|
|
212
|
-
metaProp.additionalProperties = true;
|
|
213
|
-
}
|
|
214
|
-
} else if (type === "array" && currentProp.items) {
|
|
215
|
-
metaProp.items = this.mapPropertyMetadata(currentProp.items, "items", false, swaggerRoot);
|
|
216
|
-
}
|
|
217
|
-
return metaProp;
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
var __exports = {
|
|
221
|
-
__esModule: true
|
|
222
|
-
};
|
|
223
|
-
__exports.SwaggerBuilder = SwaggerBuilder;
|
|
224
|
-
return __exports;
|
|
225
|
-
});
|
|
226
|
-
//# sourceMappingURL=SwaggerBuilder-dbg.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SwaggerBuilder-dbg.js","names":["Logger","___utils_Logger","SwaggerTypeMapper","___SwaggerTypeMapper","SwaggerUIMapper","___SwaggerUIMapper","SwaggerRefResolver","___SwaggerRefResolver","SwaggerBuilder","canHandle","rawSchema","openapi","swagger","build","fetchAndBuild","url","targetDefinition","response","fetch","ok","Error","status","swaggerRoot","json","error","msg","message","targetObject","components","schemas","keys","Object","length","definitions","found","schema","title","info","type","layoutStrategy","additionalProperties","requiredKeys","Array","isArray","required","properties","mapProperties","items","mapPropertyMetadata","normalizedProps","key","isRequired","includes","propDef","$ref","resolved","resolve","swaggerProp","keyName","currentProp","allOf","merged","subSchema","resolvedSub","mapType","metaProp","uiDirective","ui","maxLength","minLength","maximum","minimum","pattern","multipleOf","default","undefined","nullable","writeOnly","example","deprecated","exclusiveMinimum","exclusiveMaximum","enum","widget","childRequired","__exports","__esModule"],"sources":["SwaggerBuilder.ts"],"sourcesContent":["/**\n * @file SwaggerBuilder.ts\n * @description Facade orchestration for translating Swagger/OpenAPI JSON into native MetaUI ISchema.\n * Strict Single Responsibility architecture delegates mapping logic to dedicated utilities.\n */\n\nimport { ISchema, IPropertyMetadata } from \"../interfaces/ISchema\";\nimport { ISchemaBuilderPlugin } from \"../interfaces/ISchemaBuilderPlugin\";\nimport { Logger } from \"../utils/Logger\";\nimport { SwaggerTypeMapper } from \"./SwaggerTypeMapper\";\nimport { SwaggerUIMapper } from \"./SwaggerUIMapper\";\nimport { SwaggerRefResolver } from \"./SwaggerRefResolver\";\n\nexport class SwaggerBuilder implements ISchemaBuilderPlugin {\n\n /**\n * Determines if the provided JSON payload is a Swagger or OpenAPI document.\n * \n * @param {any} rawSchema The raw JSON schema to test.\n * @returns {boolean} True if the document contains 'openapi' or 'swagger' root keys.\n */\n public canHandle(rawSchema: any): boolean {\n return !!(rawSchema && (rawSchema.openapi || rawSchema.swagger));\n }\n\n /**\n * Builds a strict MetaUI ISchema from the provided OpenAPI payload.\n * \n * @param {any} rawSchema The OpenAPI root document.\n * @returns {ISchema} The translated MetaUI schema.\n */\n public build(rawSchema: any): ISchema {\n return SwaggerBuilder.build(rawSchema);\n }\n\n /**\n * Asynchronously fetches a remote OpenAPI document and compiles it into a MetaUI ISchema.\n * \n * @param {string} url The URL to fetch the JSON payload from.\n * @param {string} [targetDefinition] Optional. The specific entity schema to extract.\n * @returns {Promise<ISchema>} A Promise resolving to the compiled ISchema.\n */\n public static async fetchAndBuild(url: string, targetDefinition?: string): Promise<ISchema> {\n try {\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n const swaggerRoot = await response.json();\n return this.build(swaggerRoot, targetDefinition);\n } catch (error) {\n const msg = \"Failed to fetch Swagger JSON from URL: \" + (error as Error).message;\n Logger.error(\"[MetaUI SwaggerBuilder]\", msg);\n throw new Error(msg);\n }\n }\n\n /**\n * Synchronously builds a MetaUI ISchema from a provided OpenAPI root document.\n * Automatically extracts the requested definition from `components.schemas` or falls back to the first available.\n * \n * @param {any} swaggerRoot The OpenAPI root document.\n * @param {string} [targetDefinition] Optional. The specific entity schema to extract.\n * @returns {ISchema} The translated MetaUI schema.\n */\n public static build(swaggerRoot: any, targetDefinition?: string): ISchema {\n if (!swaggerRoot || typeof swaggerRoot !== \"object\") {\n throw new Error(\"[MetaUI SwaggerBuilder] Invalid Swagger root object provided.\");\n }\n\n let targetObject = swaggerRoot;\n\n if (!targetDefinition) {\n if (swaggerRoot.components && swaggerRoot.components.schemas) {\n const keys = Object.keys(swaggerRoot.components.schemas);\n if (keys.length > 0) targetDefinition = keys[0];\n } else if (swaggerRoot.definitions) {\n const keys = Object.keys(swaggerRoot.definitions);\n if (keys.length > 0) targetDefinition = keys[0];\n }\n }\n\n if (targetDefinition) {\n let found = false;\n if (swaggerRoot.components && swaggerRoot.components.schemas && swaggerRoot.components.schemas[targetDefinition]) {\n targetObject = swaggerRoot.components.schemas[targetDefinition];\n found = true;\n } else if (swaggerRoot.definitions && swaggerRoot.definitions[targetDefinition]) {\n targetObject = swaggerRoot.definitions[targetDefinition];\n found = true;\n }\n\n if (!found) {\n throw new Error(`[MetaUI SwaggerBuilder] Could not find target definition '${targetDefinition}' in components/schemas or definitions.`);\n }\n }\n\n const schema: ISchema = {\n title: targetObject.title || swaggerRoot.info?.title || targetDefinition,\n type: targetObject.type === \"array\" ? \"array\" : \"object\",\n layoutStrategy: targetObject.type === \"array\" ? \"table\" : \"form\"\n };\n\n if (targetObject.additionalProperties === true) {\n schema.additionalProperties = true;\n }\n\n if (schema.type === \"object\") {\n const requiredKeys = Array.isArray(targetObject.required) ? targetObject.required : [];\n schema.properties = this.mapProperties(targetObject.properties || {}, requiredKeys, swaggerRoot);\n } else if (schema.type === \"array\" && targetObject.items) {\n schema.items = this.mapPropertyMetadata(targetObject.items, \"items\", false, swaggerRoot);\n }\n\n return schema;\n }\n\n /**\n * Recursively traverses and translates an OpenAPI properties block into MetaUI IPropertyMetadata.\n * \n * @param {Record<string, any>} properties The OpenAPI properties object.\n * @param {string[]} requiredKeys An array of keys marked as required in the parent schema.\n * @param {any} swaggerRoot The root document (used for $ref resolution).\n * @returns {Record<string, IPropertyMetadata>} The mapped MetaUI properties object.\n */\n private static mapProperties(properties: Record<string, any>, requiredKeys: string[], swaggerRoot: any): Record<string, IPropertyMetadata> {\n const normalizedProps: Record<string, IPropertyMetadata> = {};\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 = SwaggerRefResolver.resolve(propDef.$ref, swaggerRoot);\n if (resolved) {\n propDef = { ...resolved, ...propDef };\n }\n }\n\n normalizedProps[key] = this.mapPropertyMetadata(propDef, key, isRequired, swaggerRoot);\n }\n \n return normalizedProps;\n }\n\n /**\n * Translates a single OpenAPI property schema into a MetaUI IPropertyMetadata block.\n * Handles local $ref resolution, allOf merging, type mapping, and UI directive injection.\n * \n * @param {any} swaggerProp The OpenAPI property definition.\n * @param {string} keyName The technical key of the property.\n * @param {boolean} isRequired Whether this property is strictly required.\n * @param {any} swaggerRoot The root document (used for $ref resolution).\n * @returns {IPropertyMetadata} The compiled MetaUI property metadata.\n */\n private static mapPropertyMetadata(swaggerProp: any, keyName: string, isRequired: boolean, swaggerRoot: any): IPropertyMetadata {\n let currentProp = swaggerProp;\n\n if (currentProp.$ref) {\n const resolved = SwaggerRefResolver.resolve(currentProp.$ref, swaggerRoot);\n if (resolved) {\n currentProp = { ...resolved, ...currentProp };\n }\n }\n\n if (Array.isArray(currentProp.allOf)) {\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 = SwaggerRefResolver.resolve(subSchema.$ref, swaggerRoot) || {};\n }\n merged = { ...merged, ...resolvedSub };\n }\n currentProp = merged;\n }\n\n const type = SwaggerTypeMapper.mapType(currentProp.type);\n\n const metaProp: IPropertyMetadata = {\n type: type,\n required: isRequired\n };\n\n const uiDirective = SwaggerUIMapper.build(currentProp, keyName);\n if (Object.keys(uiDirective).length > 0) {\n metaProp.ui = uiDirective;\n }\n\n if (typeof currentProp.maxLength === \"number\") metaProp.maxLength = currentProp.maxLength;\n if (typeof currentProp.minLength === \"number\") metaProp.minLength = currentProp.minLength;\n if (typeof currentProp.maximum === \"number\") metaProp.maximum = currentProp.maximum;\n if (typeof currentProp.minimum === \"number\") metaProp.minimum = currentProp.minimum;\n if (typeof currentProp.pattern === \"string\") metaProp.pattern = currentProp.pattern;\n\n if (typeof currentProp.multipleOf === \"number\") metaProp.multipleOf = currentProp.multipleOf;\n \n if (currentProp.default !== undefined) metaProp.default = currentProp.default;\n if (typeof currentProp.nullable === \"boolean\") metaProp.nullable = currentProp.nullable;\n if (typeof currentProp.writeOnly === \"boolean\") metaProp.writeOnly = currentProp.writeOnly;\n if (currentProp.example !== undefined) metaProp.example = currentProp.example;\n if (typeof currentProp.deprecated === \"boolean\") metaProp.deprecated = currentProp.deprecated;\n if (currentProp.exclusiveMinimum !== undefined) metaProp.exclusiveMinimum = currentProp.exclusiveMinimum;\n if (currentProp.exclusiveMaximum !== undefined) metaProp.exclusiveMaximum = currentProp.exclusiveMaximum;\n\n if (Array.isArray(currentProp.enum)) {\n metaProp.enum = currentProp.enum;\n if (!metaProp.ui) metaProp.ui = {};\n if (!metaProp.ui.widget) {\n if (type === \"array\") {\n metaProp.ui.widget = \"multiSelect\";\n } else {\n metaProp.ui.widget = \"select\";\n }\n }\n }\n\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, swaggerRoot);\n }\n if (currentProp.additionalProperties === true) {\n metaProp.additionalProperties = true;\n }\n } else if (type === \"array\" && currentProp.items) {\n metaProp.items = this.mapPropertyMetadata(currentProp.items, \"items\", false, swaggerRoot);\n }\n\n return metaProp;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
declare module "nz/co/siliconst/ui5/metaui/swagger/SwaggerBuilder" {
|
|
2
|
-
/**
|
|
3
|
-
* @file SwaggerBuilder.ts
|
|
4
|
-
* @description Facade orchestration for translating Swagger/OpenAPI JSON into native MetaUI ISchema.
|
|
5
|
-
* Strict Single Responsibility architecture delegates mapping logic to dedicated utilities.
|
|
6
|
-
*/
|
|
7
|
-
import { ISchema } from "nz/co/siliconst/ui5/metaui/interfaces/ISchema";
|
|
8
|
-
import { ISchemaBuilderPlugin } from "nz/co/siliconst/ui5/metaui/interfaces/ISchemaBuilderPlugin";
|
|
9
|
-
export class SwaggerBuilder implements ISchemaBuilderPlugin {
|
|
10
|
-
/**
|
|
11
|
-
* Determines if the provided JSON payload is a Swagger or OpenAPI document.
|
|
12
|
-
*
|
|
13
|
-
* @param {any} rawSchema The raw JSON schema to test.
|
|
14
|
-
* @returns {boolean} True if the document contains 'openapi' or 'swagger' root keys.
|
|
15
|
-
*/
|
|
16
|
-
canHandle(rawSchema: any): boolean;
|
|
17
|
-
/**
|
|
18
|
-
* Builds a strict MetaUI ISchema from the provided OpenAPI payload.
|
|
19
|
-
*
|
|
20
|
-
* @param {any} rawSchema The OpenAPI root document.
|
|
21
|
-
* @returns {ISchema} The translated MetaUI schema.
|
|
22
|
-
*/
|
|
23
|
-
build(rawSchema: any): ISchema;
|
|
24
|
-
/**
|
|
25
|
-
* Asynchronously fetches a remote OpenAPI document and compiles it into a MetaUI ISchema.
|
|
26
|
-
*
|
|
27
|
-
* @param {string} url The URL to fetch the JSON payload from.
|
|
28
|
-
* @param {string} [targetDefinition] Optional. The specific entity schema to extract.
|
|
29
|
-
* @returns {Promise<ISchema>} A Promise resolving to the compiled ISchema.
|
|
30
|
-
*/
|
|
31
|
-
static fetchAndBuild(url: string, targetDefinition?: string): Promise<ISchema>;
|
|
32
|
-
/**
|
|
33
|
-
* Synchronously builds a MetaUI ISchema from a provided OpenAPI root document.
|
|
34
|
-
* Automatically extracts the requested definition from `components.schemas` or falls back to the first available.
|
|
35
|
-
*
|
|
36
|
-
* @param {any} swaggerRoot The OpenAPI root document.
|
|
37
|
-
* @param {string} [targetDefinition] Optional. The specific entity schema to extract.
|
|
38
|
-
* @returns {ISchema} The translated MetaUI schema.
|
|
39
|
-
*/
|
|
40
|
-
static build(swaggerRoot: any, targetDefinition?: string): ISchema;
|
|
41
|
-
/**
|
|
42
|
-
* Recursively traverses and translates an OpenAPI properties block into MetaUI IPropertyMetadata.
|
|
43
|
-
*
|
|
44
|
-
* @param {Record<string, any>} properties The OpenAPI properties object.
|
|
45
|
-
* @param {string[]} requiredKeys An array of keys marked as required in the parent schema.
|
|
46
|
-
* @param {any} swaggerRoot The root document (used for $ref resolution).
|
|
47
|
-
* @returns {Record<string, IPropertyMetadata>} The mapped MetaUI properties object.
|
|
48
|
-
*/
|
|
49
|
-
private static mapProperties;
|
|
50
|
-
/**
|
|
51
|
-
* Translates a single OpenAPI property schema into a MetaUI IPropertyMetadata block.
|
|
52
|
-
* Handles local $ref resolution, allOf merging, type mapping, and UI directive injection.
|
|
53
|
-
*
|
|
54
|
-
* @param {any} swaggerProp The OpenAPI property definition.
|
|
55
|
-
* @param {string} keyName The technical key of the property.
|
|
56
|
-
* @param {boolean} isRequired Whether this property is strictly required.
|
|
57
|
-
* @param {any} swaggerRoot The root document (used for $ref resolution).
|
|
58
|
-
* @returns {IPropertyMetadata} The compiled MetaUI property metadata.
|
|
59
|
-
*/
|
|
60
|
-
private static mapPropertyMetadata;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
//# sourceMappingURL=SwaggerBuilder.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SwaggerBuilder.d.ts","sourceRoot":"../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/swagger/SwaggerBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,mDAAmD,CAAC;IACnE;;;;OAIG;IAEH,OAAO,EAAE,OAAO,EAAqB,MAAM,+CAA+C,CAAC;IAC3F,OAAO,EAAE,oBAAoB,EAAE,MAAM,4DAA4D,CAAC;IAMlG,MAAa,cAAe,YAAW,oBAAoB;QAEvD;;;;;WAKG;QACI,SAAS,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO;QAIzC;;;;;WAKG;QACI,KAAK,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO;QAIrC;;;;;;WAMG;eACiB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;QAe3F;;;;;;;WAOG;eACW,KAAK,CAAC,WAAW,EAAE,GAAG,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO;QAoDzE;;;;;;;WAOG;QACH,OAAO,CAAC,MAAM,CAAC,aAAa;QAoB5B;;;;;;;;;WASG;QACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;KA6ErC;CAEA"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
sap.ui.define(["../utils/Logger","./SwaggerTypeMapper","./SwaggerUIMapper","./SwaggerRefResolver"],function(e,t,i,r){"use strict";const a=e["Logger"];const n=t["SwaggerTypeMapper"];const s=i["SwaggerUIMapper"];const o=r["SwaggerRefResolver"];class f{canHandle(e){return!!(e&&(e.openapi||e.swagger))}build(e){return f.build(e)}static async fetchAndBuild(e,t){try{const i=await fetch(e);if(!i.ok){throw new Error(`HTTP error! status: ${i.status}`)}const r=await i.json();return this.build(r,t)}catch(e){const t="Failed to fetch Swagger JSON from URL: "+e.message;a.error("[MetaUI SwaggerBuilder]",t);throw new Error(t)}}static build(e,t){if(!e||typeof e!=="object"){throw new Error("[MetaUI SwaggerBuilder] Invalid Swagger root object provided.")}let i=e;if(!t){if(e.components&&e.components.schemas){const i=Object.keys(e.components.schemas);if(i.length>0)t=i[0]}else if(e.definitions){const i=Object.keys(e.definitions);if(i.length>0)t=i[0]}}if(t){let r=false;if(e.components&&e.components.schemas&&e.components.schemas[t]){i=e.components.schemas[t];r=true}else if(e.definitions&&e.definitions[t]){i=e.definitions[t];r=true}if(!r){throw new Error(`[MetaUI SwaggerBuilder] Could not find target definition '${t}' in components/schemas or definitions.`)}}const r={title:i.title||e.info?.title||t,type:i.type==="array"?"array":"object",layoutStrategy:i.type==="array"?"table":"form"};if(i.additionalProperties===true){r.additionalProperties=true}if(r.type==="object"){const t=Array.isArray(i.required)?i.required:[];r.properties=this.mapProperties(i.properties||{},t,e)}else if(r.type==="array"&&i.items){r.items=this.mapPropertyMetadata(i.items,"items",false,e)}return r}static mapProperties(e,t,i){const r={};for(const a of Object.keys(e)){const n=t.includes(a);let s=e[a];if(s.$ref){const e=o.resolve(s.$ref,i);if(e){s={...e,...s}}}r[a]=this.mapPropertyMetadata(s,a,n,i)}return r}static mapPropertyMetadata(e,t,i,r){let a=e;if(a.$ref){const e=o.resolve(a.$ref,r);if(e){a={...e,...a}}}if(Array.isArray(a.allOf)){let e={...a};delete e.allOf;for(const t of a.allOf){let i=t;if(t.$ref){i=o.resolve(t.$ref,r)||{}}e={...e,...i}}a=e}const f=n.mapType(a.type);const l={type:f,required:i};const u=s.build(a,t);if(Object.keys(u).length>0){l.ui=u}if(typeof a.maxLength==="number")l.maxLength=a.maxLength;if(typeof a.minLength==="number")l.minLength=a.minLength;if(typeof a.maximum==="number")l.maximum=a.maximum;if(typeof a.minimum==="number")l.minimum=a.minimum;if(typeof a.pattern==="string")l.pattern=a.pattern;if(typeof a.multipleOf==="number")l.multipleOf=a.multipleOf;if(a.default!==undefined)l.default=a.default;if(typeof a.nullable==="boolean")l.nullable=a.nullable;if(typeof a.writeOnly==="boolean")l.writeOnly=a.writeOnly;if(a.example!==undefined)l.example=a.example;if(typeof a.deprecated==="boolean")l.deprecated=a.deprecated;if(a.exclusiveMinimum!==undefined)l.exclusiveMinimum=a.exclusiveMinimum;if(a.exclusiveMaximum!==undefined)l.exclusiveMaximum=a.exclusiveMaximum;if(Array.isArray(a.enum)){l.enum=a.enum;if(!l.ui)l.ui={};if(!l.ui.widget){if(f==="array"){l.ui.widget="multiSelect"}else{l.ui.widget="select"}}}if(f==="object"){if(a.properties){const e=Array.isArray(a.required)?a.required:[];l.properties=this.mapProperties(a.properties,e,r)}if(a.additionalProperties===true){l.additionalProperties=true}}else if(f==="array"&&a.items){l.items=this.mapPropertyMetadata(a.items,"items",false,r)}return l}}var l={__esModule:true};l.SwaggerBuilder=f;return l});
|
|
2
|
-
//# sourceMappingURL=SwaggerBuilder.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SwaggerBuilder.js","names":["Logger","___utils_Logger","SwaggerTypeMapper","___SwaggerTypeMapper","SwaggerUIMapper","___SwaggerUIMapper","SwaggerRefResolver","___SwaggerRefResolver","SwaggerBuilder","canHandle","rawSchema","openapi","swagger","build","fetchAndBuild","url","targetDefinition","response","fetch","ok","Error","status","swaggerRoot","json","this","error","msg","message","targetObject","components","schemas","keys","Object","length","definitions","found","schema","title","info","type","layoutStrategy","additionalProperties","requiredKeys","Array","isArray","required","properties","mapProperties","items","mapPropertyMetadata","normalizedProps","key","isRequired","includes","propDef","$ref","resolved","resolve","swaggerProp","keyName","currentProp","allOf","merged","subSchema","resolvedSub","mapType","metaProp","uiDirective","ui","maxLength","minLength","maximum","minimum","pattern","multipleOf","default","undefined","nullable","writeOnly","example","deprecated","exclusiveMinimum","exclusiveMaximum","enum","widget","childRequired","__exports","__esModule"],"sources":["SwaggerBuilder.ts"],"sourcesContent":["/**\n * @file SwaggerBuilder.ts\n * @description Facade orchestration for translating Swagger/OpenAPI JSON into native MetaUI ISchema.\n * Strict Single Responsibility architecture delegates mapping logic to dedicated utilities.\n */\n\nimport { ISchema, IPropertyMetadata } from \"../interfaces/ISchema\";\nimport { ISchemaBuilderPlugin } from \"../interfaces/ISchemaBuilderPlugin\";\nimport { Logger } from \"../utils/Logger\";\nimport { SwaggerTypeMapper } from \"./SwaggerTypeMapper\";\nimport { SwaggerUIMapper } from \"./SwaggerUIMapper\";\nimport { SwaggerRefResolver } from \"./SwaggerRefResolver\";\n\nexport class SwaggerBuilder implements ISchemaBuilderPlugin {\n\n /**\n * Determines if the provided JSON payload is a Swagger or OpenAPI document.\n * \n * @param {any} rawSchema The raw JSON schema to test.\n * @returns {boolean} True if the document contains 'openapi' or 'swagger' root keys.\n */\n public canHandle(rawSchema: any): boolean {\n return !!(rawSchema && (rawSchema.openapi || rawSchema.swagger));\n }\n\n /**\n * Builds a strict MetaUI ISchema from the provided OpenAPI payload.\n * \n * @param {any} rawSchema The OpenAPI root document.\n * @returns {ISchema} The translated MetaUI schema.\n */\n public build(rawSchema: any): ISchema {\n return SwaggerBuilder.build(rawSchema);\n }\n\n /**\n * Asynchronously fetches a remote OpenAPI document and compiles it into a MetaUI ISchema.\n * \n * @param {string} url The URL to fetch the JSON payload from.\n * @param {string} [targetDefinition] Optional. The specific entity schema to extract.\n * @returns {Promise<ISchema>} A Promise resolving to the compiled ISchema.\n */\n public static async fetchAndBuild(url: string, targetDefinition?: string): Promise<ISchema> {\n try {\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n const swaggerRoot = await response.json();\n return this.build(swaggerRoot, targetDefinition);\n } catch (error) {\n const msg = \"Failed to fetch Swagger JSON from URL: \" + (error as Error).message;\n Logger.error(\"[MetaUI SwaggerBuilder]\", msg);\n throw new Error(msg);\n }\n }\n\n /**\n * Synchronously builds a MetaUI ISchema from a provided OpenAPI root document.\n * Automatically extracts the requested definition from `components.schemas` or falls back to the first available.\n * \n * @param {any} swaggerRoot The OpenAPI root document.\n * @param {string} [targetDefinition] Optional. The specific entity schema to extract.\n * @returns {ISchema} The translated MetaUI schema.\n */\n public static build(swaggerRoot: any, targetDefinition?: string): ISchema {\n if (!swaggerRoot || typeof swaggerRoot !== \"object\") {\n throw new Error(\"[MetaUI SwaggerBuilder] Invalid Swagger root object provided.\");\n }\n\n let targetObject = swaggerRoot;\n\n if (!targetDefinition) {\n if (swaggerRoot.components && swaggerRoot.components.schemas) {\n const keys = Object.keys(swaggerRoot.components.schemas);\n if (keys.length > 0) targetDefinition = keys[0];\n } else if (swaggerRoot.definitions) {\n const keys = Object.keys(swaggerRoot.definitions);\n if (keys.length > 0) targetDefinition = keys[0];\n }\n }\n\n if (targetDefinition) {\n let found = false;\n if (swaggerRoot.components && swaggerRoot.components.schemas && swaggerRoot.components.schemas[targetDefinition]) {\n targetObject = swaggerRoot.components.schemas[targetDefinition];\n found = true;\n } else if (swaggerRoot.definitions && swaggerRoot.definitions[targetDefinition]) {\n targetObject = swaggerRoot.definitions[targetDefinition];\n found = true;\n }\n\n if (!found) {\n throw new Error(`[MetaUI SwaggerBuilder] Could not find target definition '${targetDefinition}' in components/schemas or definitions.`);\n }\n }\n\n const schema: ISchema = {\n title: targetObject.title || swaggerRoot.info?.title || targetDefinition,\n type: targetObject.type === \"array\" ? \"array\" : \"object\",\n layoutStrategy: targetObject.type === \"array\" ? \"table\" : \"form\"\n };\n\n if (targetObject.additionalProperties === true) {\n schema.additionalProperties = true;\n }\n\n if (schema.type === \"object\") {\n const requiredKeys = Array.isArray(targetObject.required) ? targetObject.required : [];\n schema.properties = this.mapProperties(targetObject.properties || {}, requiredKeys, swaggerRoot);\n } else if (schema.type === \"array\" && targetObject.items) {\n schema.items = this.mapPropertyMetadata(targetObject.items, \"items\", false, swaggerRoot);\n }\n\n return schema;\n }\n\n /**\n * Recursively traverses and translates an OpenAPI properties block into MetaUI IPropertyMetadata.\n * \n * @param {Record<string, any>} properties The OpenAPI properties object.\n * @param {string[]} requiredKeys An array of keys marked as required in the parent schema.\n * @param {any} swaggerRoot The root document (used for $ref resolution).\n * @returns {Record<string, IPropertyMetadata>} The mapped MetaUI properties object.\n */\n private static mapProperties(properties: Record<string, any>, requiredKeys: string[], swaggerRoot: any): Record<string, IPropertyMetadata> {\n const normalizedProps: Record<string, IPropertyMetadata> = {};\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 = SwaggerRefResolver.resolve(propDef.$ref, swaggerRoot);\n if (resolved) {\n propDef = { ...resolved, ...propDef };\n }\n }\n\n normalizedProps[key] = this.mapPropertyMetadata(propDef, key, isRequired, swaggerRoot);\n }\n \n return normalizedProps;\n }\n\n /**\n * Translates a single OpenAPI property schema into a MetaUI IPropertyMetadata block.\n * Handles local $ref resolution, allOf merging, type mapping, and UI directive injection.\n * \n * @param {any} swaggerProp The OpenAPI property definition.\n * @param {string} keyName The technical key of the property.\n * @param {boolean} isRequired Whether this property is strictly required.\n * @param {any} swaggerRoot The root document (used for $ref resolution).\n * @returns {IPropertyMetadata} The compiled MetaUI property metadata.\n */\n private static mapPropertyMetadata(swaggerProp: any, keyName: string, isRequired: boolean, swaggerRoot: any): IPropertyMetadata {\n let currentProp = swaggerProp;\n\n if (currentProp.$ref) {\n const resolved = SwaggerRefResolver.resolve(currentProp.$ref, swaggerRoot);\n if (resolved) {\n currentProp = { ...resolved, ...currentProp };\n }\n }\n\n if (Array.isArray(currentProp.allOf)) {\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 = SwaggerRefResolver.resolve(subSchema.$ref, swaggerRoot) || {};\n }\n merged = { ...merged, ...resolvedSub };\n }\n currentProp = merged;\n }\n\n const type = SwaggerTypeMapper.mapType(currentProp.type);\n\n const metaProp: IPropertyMetadata = {\n type: type,\n required: isRequired\n };\n\n const uiDirective = SwaggerUIMapper.build(currentProp, keyName);\n if (Object.keys(uiDirective).length > 0) {\n metaProp.ui = uiDirective;\n }\n\n if (typeof currentProp.maxLength === \"number\") metaProp.maxLength = currentProp.maxLength;\n if (typeof currentProp.minLength === \"number\") metaProp.minLength = currentProp.minLength;\n if (typeof currentProp.maximum === \"number\") metaProp.maximum = currentProp.maximum;\n if (typeof currentProp.minimum === \"number\") metaProp.minimum = currentProp.minimum;\n if (typeof currentProp.pattern === \"string\") metaProp.pattern = currentProp.pattern;\n\n if (typeof currentProp.multipleOf === \"number\") metaProp.multipleOf = currentProp.multipleOf;\n \n if (currentProp.default !== undefined) metaProp.default = currentProp.default;\n if (typeof currentProp.nullable === \"boolean\") metaProp.nullable = currentProp.nullable;\n if (typeof currentProp.writeOnly === \"boolean\") metaProp.writeOnly = currentProp.writeOnly;\n if (currentProp.example !== undefined) metaProp.example = currentProp.example;\n if (typeof currentProp.deprecated === \"boolean\") metaProp.deprecated = currentProp.deprecated;\n if (currentProp.exclusiveMinimum !== undefined) metaProp.exclusiveMinimum = currentProp.exclusiveMinimum;\n if (currentProp.exclusiveMaximum !== undefined) metaProp.exclusiveMaximum = currentProp.exclusiveMaximum;\n\n if (Array.isArray(currentProp.enum)) {\n metaProp.enum = currentProp.enum;\n if (!metaProp.ui) metaProp.ui = {};\n if (!metaProp.ui.widget) {\n if (type === \"array\") {\n metaProp.ui.widget = \"multiSelect\";\n } else {\n metaProp.ui.widget = \"select\";\n }\n }\n }\n\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, swaggerRoot);\n }\n if (currentProp.additionalProperties === true) {\n metaProp.additionalProperties = true;\n }\n } else if (type === \"array\" && currentProp.items) {\n metaProp.items = this.mapPropertyMetadata(currentProp.items, \"items\", false, swaggerRoot);\n }\n\n return metaProp;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|