@siliconst/metaui 1.4.14 → 1.4.20

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.
Files changed (405) hide show
  1. package/package.json +1 -1
  2. package/src/nz/co/siliconst/ui5/metaui/ai/AIConfig-dbg.js +47 -0
  3. package/src/nz/co/siliconst/ui5/metaui/ai/AIConfig-dbg.js.map +1 -0
  4. package/src/nz/co/siliconst/ui5/metaui/ai/AIConfig.d.ts +28 -0
  5. package/src/nz/co/siliconst/ui5/metaui/ai/AIConfig.d.ts.map +1 -0
  6. package/src/nz/co/siliconst/ui5/metaui/ai/AIConfig.js +2 -0
  7. package/src/nz/co/siliconst/ui5/metaui/ai/AIConfig.js.map +1 -0
  8. package/src/nz/co/siliconst/ui5/metaui/ai/AIConfig.ts +39 -0
  9. package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator-dbg.js +83 -0
  10. package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator-dbg.js.map +1 -0
  11. package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator.d.ts +30 -0
  12. package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator.d.ts.map +1 -0
  13. package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator.js +2 -0
  14. package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator.js.map +1 -0
  15. package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator.ts +74 -0
  16. package/src/nz/co/siliconst/ui5/metaui/ai/MockLLMProxy-dbg.js +61 -0
  17. package/src/nz/co/siliconst/ui5/metaui/ai/MockLLMProxy-dbg.js.map +1 -0
  18. package/src/nz/co/siliconst/ui5/metaui/ai/MockLLMProxy.d.ts +13 -0
  19. package/src/nz/co/siliconst/ui5/metaui/ai/MockLLMProxy.d.ts.map +1 -0
  20. package/src/nz/co/siliconst/ui5/metaui/ai/MockLLMProxy.js +2 -0
  21. package/src/nz/co/siliconst/ui5/metaui/ai/MockLLMProxy.js.map +1 -0
  22. package/src/nz/co/siliconst/ui5/metaui/ai/MockLLMProxy.ts +59 -0
  23. package/src/nz/co/siliconst/ui5/metaui/ai/RestLLMProxy-dbg.js +50 -0
  24. package/src/nz/co/siliconst/ui5/metaui/ai/RestLLMProxy-dbg.js.map +1 -0
  25. package/src/nz/co/siliconst/ui5/metaui/ai/RestLLMProxy.d.ts +12 -0
  26. package/src/nz/co/siliconst/ui5/metaui/ai/RestLLMProxy.d.ts.map +1 -0
  27. package/src/nz/co/siliconst/ui5/metaui/ai/RestLLMProxy.js +2 -0
  28. package/src/nz/co/siliconst/ui5/metaui/ai/RestLLMProxy.js.map +1 -0
  29. package/src/nz/co/siliconst/ui5/metaui/ai/RestLLMProxy.ts +44 -0
  30. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost-dbg.js +79 -13
  31. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost-dbg.js.map +1 -1
  32. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.d.ts +12 -0
  33. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.d.ts.map +1 -1
  34. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.js +1 -1
  35. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.js.map +1 -1
  36. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.ts +77 -15
  37. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost-dbg.js +31 -1
  38. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost-dbg.js.map +1 -1
  39. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.d.ts +15 -0
  40. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.d.ts.map +1 -1
  41. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.js +1 -1
  42. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.js.map +1 -1
  43. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.ts +26 -1
  44. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate-dbg.js +35 -0
  45. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate-dbg.js.map +1 -1
  46. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.d.ts +8 -0
  47. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.d.ts.map +1 -1
  48. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.js +1 -1
  49. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.js.map +1 -1
  50. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.ts +37 -0
  51. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate-dbg.js +28 -6
  52. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate-dbg.js.map +1 -1
  53. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.d.ts +3 -2
  54. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.d.ts.map +1 -1
  55. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.js +1 -1
  56. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.js.map +1 -1
  57. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.ts +30 -6
  58. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator-dbg.js +11 -32
  59. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator-dbg.js.map +1 -1
  60. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator.d.ts.map +1 -1
  61. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator.js +1 -1
  62. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator.js.map +1 -1
  63. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator.ts +9 -13
  64. package/src/nz/co/siliconst/ui5/metaui/core/Engine-dbg.js +6 -2
  65. package/src/nz/co/siliconst/ui5/metaui/core/Engine-dbg.js.map +1 -1
  66. package/src/nz/co/siliconst/ui5/metaui/core/Engine.d.ts +2 -0
  67. package/src/nz/co/siliconst/ui5/metaui/core/Engine.d.ts.map +1 -1
  68. package/src/nz/co/siliconst/ui5/metaui/core/Engine.js +1 -1
  69. package/src/nz/co/siliconst/ui5/metaui/core/Engine.js.map +1 -1
  70. package/src/nz/co/siliconst/ui5/metaui/core/Engine.ts +12 -7
  71. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry-dbg.js +4 -0
  72. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry-dbg.js.map +1 -1
  73. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.d.ts.map +1 -1
  74. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.js +1 -1
  75. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.js.map +1 -1
  76. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.ts +4 -0
  77. package/src/nz/co/siliconst/ui5/metaui/core/SchemaBuilderRegistry-dbg.js +3 -3
  78. package/src/nz/co/siliconst/ui5/metaui/core/SchemaBuilderRegistry-dbg.js.map +1 -1
  79. package/src/nz/co/siliconst/ui5/metaui/core/SchemaBuilderRegistry.d.ts +1 -1
  80. package/src/nz/co/siliconst/ui5/metaui/core/SchemaBuilderRegistry.d.ts.map +1 -1
  81. package/src/nz/co/siliconst/ui5/metaui/core/SchemaBuilderRegistry.js +1 -1
  82. package/src/nz/co/siliconst/ui5/metaui/core/SchemaBuilderRegistry.js.map +1 -1
  83. package/src/nz/co/siliconst/ui5/metaui/core/SchemaBuilderRegistry.ts +3 -3
  84. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer-dbg.js +4 -4
  85. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer-dbg.js.map +1 -1
  86. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.d.ts +2 -2
  87. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.d.ts.map +1 -1
  88. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.js +1 -1
  89. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.js.map +1 -1
  90. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.ts +10 -10
  91. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator-dbg.js +1 -1
  92. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator-dbg.js.map +1 -1
  93. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.js +1 -1
  94. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.js.map +1 -1
  95. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.ts +1 -1
  96. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin-dbg.js.map +1 -1
  97. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin.d.ts +1 -1
  98. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin.d.ts.map +1 -1
  99. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin.ts +1 -1
  100. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema-dbg.js.map +1 -1
  101. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema.d.ts +19 -3
  102. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema.d.ts.map +1 -1
  103. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema.ts +22 -3
  104. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchemaBuilderPlugin-dbg.js.map +1 -1
  105. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchemaBuilderPlugin.d.ts +3 -2
  106. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchemaBuilderPlugin.d.ts.map +1 -1
  107. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchemaBuilderPlugin.ts +3 -2
  108. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout-dbg.js +18 -2
  109. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout-dbg.js.map +1 -1
  110. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.d.ts.map +1 -1
  111. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.js +1 -1
  112. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.js.map +1 -1
  113. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.ts +19 -2
  114. package/src/nz/co/siliconst/ui5/metaui/library-dbg.js +1 -1
  115. package/src/nz/co/siliconst/ui5/metaui/library-dbg.js.map +1 -1
  116. package/src/nz/co/siliconst/ui5/metaui/library-preload.js +63 -43
  117. package/src/nz/co/siliconst/ui5/metaui/library-preload.js.map +1 -1
  118. package/src/nz/co/siliconst/ui5/metaui/library.d.ts +4 -0
  119. package/src/nz/co/siliconst/ui5/metaui/library.d.ts.map +1 -1
  120. package/src/nz/co/siliconst/ui5/metaui/library.js +1 -1
  121. package/src/nz/co/siliconst/ui5/metaui/library.js.map +1 -1
  122. package/src/nz/co/siliconst/ui5/metaui/library.ts +6 -0
  123. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiBuilder-dbg.js +93 -0
  124. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiBuilder-dbg.js.map +1 -0
  125. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiBuilder.d.ts +52 -0
  126. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiBuilder.d.ts.map +1 -0
  127. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiBuilder.js +2 -0
  128. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiBuilder.js.map +1 -0
  129. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiBuilder.ts +88 -0
  130. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory-dbg.js +47 -0
  131. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory-dbg.js.map +1 -0
  132. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory.d.ts +25 -0
  133. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory.d.ts.map +1 -0
  134. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory.js +2 -0
  135. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory.js.map +1 -0
  136. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory.ts +43 -0
  137. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver-dbg.js +68 -0
  138. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver-dbg.js.map +1 -0
  139. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver.d.ts +21 -0
  140. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver.d.ts.map +1 -0
  141. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver.js +2 -0
  142. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver.js.map +1 -0
  143. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver.ts +61 -0
  144. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiTypeMapper-dbg.js +45 -0
  145. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiTypeMapper-dbg.js.map +1 -0
  146. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiTypeMapper.d.ts +25 -0
  147. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiTypeMapper.d.ts.map +1 -0
  148. package/src/nz/co/siliconst/ui5/metaui/{swagger/SwaggerTypeMapper.js → openapi/OpenApiTypeMapper.js} +2 -2
  149. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiTypeMapper.js.map +1 -0
  150. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiTypeMapper.ts +36 -0
  151. package/src/nz/co/siliconst/ui5/metaui/{swagger/SwaggerUIMapper-dbg.js → openapi/OpenApiUIMapper-dbg.js} +23 -14
  152. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper-dbg.js.map +1 -0
  153. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper.d.ts +34 -0
  154. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper.d.ts.map +1 -0
  155. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper.js +2 -0
  156. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper.js.map +1 -0
  157. package/src/nz/co/siliconst/ui5/metaui/{swagger/SwaggerUIMapper.ts → openapi/OpenApiUIMapper.ts} +22 -13
  158. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/OpenApiHeuristicEngine-dbg.js +50 -0
  159. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/OpenApiHeuristicEngine-dbg.js.map +1 -0
  160. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/OpenApiHeuristicEngine.d.ts +25 -0
  161. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/OpenApiHeuristicEngine.d.ts.map +1 -0
  162. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/OpenApiHeuristicEngine.js +2 -0
  163. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/OpenApiHeuristicEngine.js.map +1 -0
  164. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/OpenApiHeuristicEngine.ts +43 -0
  165. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/interfaces/IHeuristicPlugin-dbg.js +2 -0
  166. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/interfaces/IHeuristicPlugin-dbg.js.map +1 -0
  167. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/interfaces/IHeuristicPlugin.d.ts +23 -0
  168. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/interfaces/IHeuristicPlugin.d.ts.map +1 -0
  169. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/interfaces/IHeuristicPlugin.js +2 -0
  170. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/interfaces/IHeuristicPlugin.js.map +1 -0
  171. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/interfaces/IHeuristicPlugin.ts +21 -0
  172. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic-dbg.js +117 -0
  173. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic-dbg.js.map +1 -0
  174. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic.d.ts +47 -0
  175. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic.d.ts.map +1 -0
  176. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic.js +2 -0
  177. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic.js.map +1 -0
  178. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic.ts +113 -0
  179. package/src/nz/co/siliconst/ui5/metaui/openapi/interfaces/IOpenApiParserPlugin-dbg.js +2 -0
  180. package/src/nz/co/siliconst/ui5/metaui/openapi/interfaces/IOpenApiParserPlugin-dbg.js.map +1 -0
  181. package/src/nz/co/siliconst/ui5/metaui/openapi/interfaces/IOpenApiParserPlugin.d.ts +26 -0
  182. package/src/nz/co/siliconst/ui5/metaui/openapi/interfaces/IOpenApiParserPlugin.d.ts.map +1 -0
  183. package/src/nz/co/siliconst/ui5/metaui/openapi/interfaces/IOpenApiParserPlugin.js +2 -0
  184. package/src/nz/co/siliconst/ui5/metaui/openapi/interfaces/IOpenApiParserPlugin.js.map +1 -0
  185. package/src/nz/co/siliconst/ui5/metaui/openapi/interfaces/IOpenApiParserPlugin.ts +25 -0
  186. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser-dbg.js +106 -0
  187. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser-dbg.js.map +1 -0
  188. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser.d.ts +27 -0
  189. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser.d.ts.map +1 -0
  190. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser.js +2 -0
  191. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser.js.map +1 -0
  192. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser.ts +104 -0
  193. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser-dbg.js +107 -0
  194. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser-dbg.js.map +1 -0
  195. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser.d.ts +27 -0
  196. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser.d.ts.map +1 -0
  197. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser.js +2 -0
  198. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser.js.map +1 -0
  199. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser.ts +105 -0
  200. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper-dbg.js +347 -0
  201. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper-dbg.js.map +1 -0
  202. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper.d.ts +110 -0
  203. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper.d.ts.map +1 -0
  204. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper.js +2 -0
  205. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper.js.map +1 -0
  206. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper.ts +377 -0
  207. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin-dbg.js +11 -0
  208. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin-dbg.js.map +1 -1
  209. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.d.ts.map +1 -1
  210. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.js +1 -1
  211. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.js.map +1 -1
  212. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.ts +13 -0
  213. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin-dbg.js +2 -2
  214. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin-dbg.js.map +1 -1
  215. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.js +1 -1
  216. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.js.map +1 -1
  217. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.ts +2 -2
  218. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin-dbg.js +34 -27
  219. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin-dbg.js.map +1 -1
  220. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.d.ts +17 -1
  221. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.d.ts.map +1 -1
  222. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.js +1 -1
  223. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.js.map +1 -1
  224. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.ts +36 -11
  225. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin-dbg.js +4 -4
  226. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin-dbg.js.map +1 -1
  227. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.js +1 -1
  228. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.js.map +1 -1
  229. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.ts +4 -4
  230. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin-dbg.js +2 -2
  231. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin-dbg.js.map +1 -1
  232. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.js +1 -1
  233. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.js.map +1 -1
  234. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.ts +2 -2
  235. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin-dbg.js +1 -1
  236. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin-dbg.js.map +1 -1
  237. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.js +1 -1
  238. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.js.map +1 -1
  239. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.ts +1 -1
  240. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin-dbg.js +5 -8
  241. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin-dbg.js.map +1 -1
  242. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.d.ts.map +1 -1
  243. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.js +1 -1
  244. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.js.map +1 -1
  245. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.ts +5 -8
  246. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin-dbg.js +5 -8
  247. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin-dbg.js.map +1 -1
  248. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.d.ts.map +1 -1
  249. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.js +1 -1
  250. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.js.map +1 -1
  251. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.ts +5 -8
  252. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin-dbg.js +217 -0
  253. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin-dbg.js.map +1 -0
  254. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin.d.ts +26 -0
  255. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin.d.ts.map +1 -0
  256. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin.js +2 -0
  257. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin.js.map +1 -0
  258. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin.ts +249 -0
  259. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin-dbg.js +4 -4
  260. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin-dbg.js.map +1 -1
  261. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.js +1 -1
  262. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.js.map +1 -1
  263. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.ts +4 -4
  264. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin-dbg.js +4 -3
  265. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin-dbg.js.map +1 -1
  266. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.d.ts.map +1 -1
  267. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.js +1 -1
  268. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.js.map +1 -1
  269. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.ts +4 -3
  270. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin-dbg.js +3 -4
  271. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin-dbg.js.map +1 -1
  272. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.d.ts.map +1 -1
  273. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.js +1 -1
  274. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.js.map +1 -1
  275. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.ts +4 -5
  276. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin-dbg.js +2 -1
  277. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin-dbg.js.map +1 -1
  278. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.d.ts.map +1 -1
  279. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.js +1 -1
  280. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.js.map +1 -1
  281. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.ts +2 -1
  282. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin-dbg.js +116 -49
  283. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin-dbg.js.map +1 -1
  284. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.d.ts +17 -2
  285. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.d.ts.map +1 -1
  286. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.js +1 -1
  287. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.js.map +1 -1
  288. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.ts +115 -54
  289. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin-dbg.js +4 -4
  290. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin-dbg.js.map +1 -1
  291. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.js +1 -1
  292. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.js.map +1 -1
  293. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.ts +4 -4
  294. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin-dbg.js +37 -12
  295. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin-dbg.js.map +1 -1
  296. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.d.ts +4 -4
  297. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.d.ts.map +1 -1
  298. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.js +1 -1
  299. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.js.map +1 -1
  300. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.ts +40 -15
  301. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin-dbg.js +3 -2
  302. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin-dbg.js.map +1 -1
  303. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.d.ts.map +1 -1
  304. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.js +1 -1
  305. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.js.map +1 -1
  306. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.ts +3 -2
  307. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin-dbg.js +194 -0
  308. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin-dbg.js.map +1 -0
  309. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin.d.ts +25 -0
  310. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin.d.ts.map +1 -0
  311. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin.js +2 -0
  312. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin.js.map +1 -0
  313. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin.ts +192 -0
  314. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin-dbg.js +2 -2
  315. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin-dbg.js.map +1 -1
  316. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.js +1 -1
  317. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.js.map +1 -1
  318. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.ts +2 -2
  319. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin-dbg.js +2 -2
  320. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin-dbg.js.map +1 -1
  321. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.js +1 -1
  322. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.js.map +1 -1
  323. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.ts +2 -2
  324. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin-dbg.js +3 -2
  325. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin-dbg.js.map +1 -1
  326. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.d.ts.map +1 -1
  327. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.js +1 -1
  328. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.js.map +1 -1
  329. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.ts +3 -2
  330. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin-dbg.js +79 -0
  331. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin-dbg.js.map +1 -0
  332. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin.d.ts +35 -0
  333. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin.d.ts.map +1 -0
  334. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin.js +2 -0
  335. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin.js.map +1 -0
  336. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin.ts +80 -0
  337. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin-dbg.js +2 -2
  338. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin-dbg.js.map +1 -1
  339. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.js +1 -1
  340. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.js.map +1 -1
  341. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.ts +2 -2
  342. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin-dbg.js +4 -4
  343. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin-dbg.js.map +1 -1
  344. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.js +1 -1
  345. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.js.map +1 -1
  346. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.ts +4 -4
  347. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin-dbg.js +2 -2
  348. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin-dbg.js.map +1 -1
  349. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.js +1 -1
  350. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.js.map +1 -1
  351. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.ts +2 -2
  352. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin-dbg.js +5 -8
  353. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin-dbg.js.map +1 -1
  354. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.d.ts.map +1 -1
  355. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.js +1 -1
  356. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.js.map +1 -1
  357. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.ts +5 -8
  358. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin-dbg.js +3 -4
  359. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin-dbg.js.map +1 -1
  360. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.d.ts.map +1 -1
  361. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.js +1 -1
  362. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.js.map +1 -1
  363. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.ts +3 -4
  364. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin-dbg.js +2 -2
  365. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin-dbg.js.map +1 -1
  366. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.js +1 -1
  367. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.js.map +1 -1
  368. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.ts +2 -2
  369. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin-dbg.js +2 -2
  370. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin-dbg.js.map +1 -1
  371. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.js +1 -1
  372. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.js.map +1 -1
  373. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.ts +2 -2
  374. package/src/nz/co/siliconst/ui5/metaui/swagger/OpenApiExtractor-dbg.js +146 -0
  375. package/src/nz/co/siliconst/ui5/metaui/swagger/OpenApiExtractor-dbg.js.map +1 -0
  376. package/src/nz/co/siliconst/ui5/metaui/swagger/OpenApiExtractor.d.ts +27 -0
  377. package/src/nz/co/siliconst/ui5/metaui/swagger/OpenApiExtractor.d.ts.map +1 -0
  378. package/src/nz/co/siliconst/ui5/metaui/swagger/OpenApiExtractor.js +2 -0
  379. package/src/nz/co/siliconst/ui5/metaui/swagger/OpenApiExtractor.js.map +1 -0
  380. package/src/nz/co/siliconst/ui5/metaui/swagger/OpenApiExtractor.ts +160 -0
  381. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerBuilder-dbg.js +0 -226
  382. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerBuilder-dbg.js.map +0 -1
  383. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerBuilder.d.ts +0 -63
  384. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerBuilder.d.ts.map +0 -1
  385. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerBuilder.js +0 -2
  386. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerBuilder.js.map +0 -1
  387. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerBuilder.ts +0 -233
  388. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerRefResolver-dbg.js +0 -43
  389. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerRefResolver-dbg.js.map +0 -1
  390. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerRefResolver.d.ts +0 -15
  391. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerRefResolver.d.ts.map +0 -1
  392. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerRefResolver.js +0 -2
  393. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerRefResolver.js.map +0 -1
  394. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerRefResolver.ts +0 -37
  395. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerTypeMapper-dbg.js +0 -37
  396. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerTypeMapper-dbg.js.map +0 -1
  397. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerTypeMapper.d.ts +0 -18
  398. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerTypeMapper.d.ts.map +0 -1
  399. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerTypeMapper.js.map +0 -1
  400. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerTypeMapper.ts +0 -28
  401. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerUIMapper-dbg.js.map +0 -1
  402. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerUIMapper.d.ts +0 -27
  403. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerUIMapper.d.ts.map +0 -1
  404. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerUIMapper.js +0 -2
  405. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerUIMapper.js.map +0 -1
@@ -0,0 +1,146 @@
1
+ sap.ui.define(["sap/ui/base/Object"], function (UI5Object) {
2
+ "use strict";
3
+
4
+ /**
5
+ * @class
6
+ * OpenApiExtractor utility.
7
+ * Dynamically crawls OpenAPI/Swagger JSON specifications to find all valid
8
+ * root endpoints and schema definitions that can be used as a schemaTarget.
9
+ *
10
+ * @extends sap.ui.base.Object
11
+ * @alias nz.co.siliconst.ui5.metaui.swagger.OpenApiExtractor
12
+ */
13
+ const OpenApiExtractor = UI5Object.extend("nz.co.siliconst.ui5.metaui.swagger.OpenApiExtractor", {});
14
+ /**
15
+ * Parses an OpenAPI document and extracts an array of valid targets.
16
+ *
17
+ * @public
18
+ * @param oSchema The parsed JSON schema object.
19
+ * @returns Array of target bindings.
20
+ */
21
+ OpenApiExtractor.extractTargets = function extractTargets(rawSchema) {
22
+ const aTargets = [];
23
+ if (!rawSchema || typeof rawSchema !== "object") {
24
+ return aTargets;
25
+ }
26
+ const oSchema = rawSchema;
27
+
28
+ // OpenAPI 3.0 (components/schemas)
29
+ if (typeof oSchema.openapi === "string" && oSchema.openapi.startsWith("3.") && oSchema.components && typeof oSchema.components.schemas === "object") {
30
+ Object.keys(oSchema.components.schemas).forEach(sKey => {
31
+ aTargets.push({
32
+ key: "#/components/schemas/" + sKey,
33
+ text: "Schema: " + sKey
34
+ });
35
+ });
36
+ }
37
+
38
+ // Swagger 2.0 (definitions)
39
+ if (typeof oSchema.swagger === "string" && oSchema.swagger.startsWith("2.") && typeof oSchema.definitions === "object" && oSchema.definitions !== null) {
40
+ Object.keys(oSchema.definitions).forEach(sKey => {
41
+ aTargets.push({
42
+ key: "#/definitions/" + sKey,
43
+ text: "Definition: " + sKey
44
+ });
45
+ });
46
+ }
47
+
48
+ // Extract endpoints
49
+ if (typeof oSchema.paths === "object" && oSchema.paths !== null) {
50
+ Object.keys(oSchema.paths).forEach(sPath => {
51
+ const methods = oSchema.paths[sPath];
52
+ if (methods && typeof methods === "object") {
53
+ Object.keys(methods).forEach(sMethod => {
54
+ const escapedPath = sPath.replace(/\//g, "~1");
55
+ aTargets.push({
56
+ key: "#/paths/" + escapedPath + "/" + sMethod,
57
+ text: "Operation: " + sMethod.toUpperCase() + " " + sPath
58
+ });
59
+ });
60
+ }
61
+ });
62
+ }
63
+
64
+ // Primary Schema Detection
65
+ if (aTargets.length > 1) {
66
+ let bestScore = -1;
67
+ let bestIndex = -1;
68
+ const info = oSchema.info;
69
+ const title = info && typeof info.title === "string" ? info.title.toLowerCase().replace(/[^a-z0-9]/g, "") : "";
70
+ const titleWords = info && typeof info.title === "string" ? info.title.toLowerCase().split(/[\s_-]+/) : [];
71
+ aTargets.forEach((target, index) => {
72
+ let score = 0;
73
+
74
+ // Only score Schemas/Definitions, not operations for the primary node heuristic
75
+ if (target.key.includes("/schemas/") || target.key.includes("/definitions/")) {
76
+ const name = target.key.split("/").pop() || "";
77
+ const nameLower = name.toLowerCase();
78
+ const nameClean = nameLower.replace(/[^a-z0-9]/g, "");
79
+ if (title && nameClean === title) score += 30; // Reduced from 100
80
+ else if (title && title.includes(nameClean)) score += 15; // Reduced from 50
81
+ else if (title && nameClean.includes(title)) score += 15; // Reduced from 50
82
+
83
+ titleWords.forEach(word => {
84
+ if (word.length > 3 && nameLower.includes(word)) score += 5; // Reduced from 10
85
+ });
86
+ const genericRoots = ["root", "main", "app", "application", "payload", "document"];
87
+ if (genericRoots.some(r => nameLower.includes(r))) score += 5;
88
+
89
+ // Complexity Fallback
90
+ let schemaDef = null;
91
+ if (target.key.startsWith("#/components/schemas/") && typeof oSchema.components === "object" && oSchema.components !== null) {
92
+ const components = oSchema.components;
93
+ if (typeof components.schemas === "object" && components.schemas !== null) {
94
+ schemaDef = components.schemas[name] || null;
95
+ }
96
+ } else if (target.key.startsWith("#/definitions/") && typeof oSchema.definitions === "object" && oSchema.definitions !== null) {
97
+ schemaDef = oSchema.definitions[name] || null;
98
+ }
99
+ if (schemaDef && typeof schemaDef === "object") {
100
+ const scoreSchemaNode = node => {
101
+ if (!node || typeof node !== "object") return;
102
+ const nodeObj = node;
103
+ if (nodeObj.properties && typeof nodeObj.properties === "object") {
104
+ score += Object.keys(nodeObj.properties).length * 2; // +2 per property
105
+ Object.values(nodeObj.properties).forEach(prop => {
106
+ if (prop && typeof prop === "object") {
107
+ const propObj = prop;
108
+ if (propObj.$ref) score += 20; // +20 for referencing sub-schemas (aggregate root)
109
+ if (propObj.items && typeof propObj.items === "object" && propObj.items.$ref) score += 20;
110
+ }
111
+ });
112
+ }
113
+ if (nodeObj.required && Array.isArray(nodeObj.required)) {
114
+ score += nodeObj.required.length * 5; // +5 per required constraint
115
+ }
116
+ };
117
+ scoreSchemaNode(schemaDef);
118
+
119
+ // Handle OpenAPI composition structures
120
+ if (schemaDef.allOf && Array.isArray(schemaDef.allOf)) {
121
+ schemaDef.allOf.forEach(scoreSchemaNode);
122
+ }
123
+ if (schemaDef.anyOf && Array.isArray(schemaDef.anyOf)) {
124
+ schemaDef.anyOf.forEach(scoreSchemaNode);
125
+ }
126
+ if (schemaDef.oneOf && Array.isArray(schemaDef.oneOf)) {
127
+ schemaDef.oneOf.forEach(scoreSchemaNode);
128
+ }
129
+ }
130
+ }
131
+ if (score > bestScore) {
132
+ bestScore = score;
133
+ bestIndex = index;
134
+ }
135
+ });
136
+ if (bestIndex !== -1 && bestScore > 0) {
137
+ const primary = aTargets.splice(bestIndex, 1)[0];
138
+ primary.text = `(Recommended) ${primary.text}`;
139
+ aTargets.unshift(primary);
140
+ }
141
+ }
142
+ return aTargets;
143
+ };
144
+ return OpenApiExtractor;
145
+ });
146
+ //# sourceMappingURL=OpenApiExtractor-dbg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenApiExtractor-dbg.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":";;;EAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EARA,MASqBA,gBAAgB,GAASC,SAAS,CAAAC,MAAA;EAEnD;AACJ;AACA;AACA;AACA;AACA;AACA;EARqBF,gBAAgB,CASnBG,cAAc,YAAdA,cAAcA,CAACC,SAAkB,EAAmB;IAC9D,MAAMC,QAAyB,GAAG,EAAE;IACpC,IAAI,CAACD,SAAS,IAAI,OAAOA,SAAS,KAAK,QAAQ,EAAE;MAC7C,OAAOC,QAAQ;IACnB;IAEA,MAAMC,OAAO,GAAGF,SAAoC;;IAEpD;IACA,IAAI,OAAOE,OAAO,CAACC,OAAO,KAAK,QAAQ,IAAID,OAAO,CAACC,OAAO,CAACC,UAAU,CAAC,IAAI,CAAC,IAAIF,OAAO,CAACG,UAAU,IAAI,OAAQH,OAAO,CAACG,UAAU,CAA4BC,OAAO,KAAK,QAAQ,EAAE;MAC7KC,MAAM,CAACC,IAAI,CAAEN,OAAO,CAACG,UAAU,CAA4BC,OAAiC,CAAC,CAACG,OAAO,CAAEC,IAAI,IAAK;QAC5GT,QAAQ,CAACU,IAAI,CAAC;UACVC,GAAG,EAAE,uBAAuB,GAAGF,IAAI;UACnCG,IAAI,EAAE,UAAU,GAAGH;QACvB,CAAC,CAAC;MACN,CAAC,CAAC;IACN;;IAEA;IACA,IAAI,OAAOR,OAAO,CAACY,OAAO,KAAK,QAAQ,IAAIZ,OAAO,CAACY,OAAO,CAACV,UAAU,CAAC,IAAI,CAAC,IAAI,OAAOF,OAAO,CAACa,WAAW,KAAK,QAAQ,IAAIb,OAAO,CAACa,WAAW,KAAK,IAAI,EAAE;MACpJR,MAAM,CAACC,IAAI,CAACN,OAAO,CAACa,WAAqC,CAAC,CAACN,OAAO,CAAEC,IAAI,IAAK;QACzET,QAAQ,CAACU,IAAI,CAAC;UACVC,GAAG,EAAE,gBAAgB,GAAGF,IAAI;UAC5BG,IAAI,EAAE,cAAc,GAAGH;QAC3B,CAAC,CAAC;MACN,CAAC,CAAC;IACN;;IAEA;IACA,IAAI,OAAOR,OAAO,CAACc,KAAK,KAAK,QAAQ,IAAId,OAAO,CAACc,KAAK,KAAK,IAAI,EAAE;MAC7DT,MAAM,CAACC,IAAI,CAACN,OAAO,CAACc,KAA+B,CAAC,CAACP,OAAO,CAAEQ,KAAK,IAAK;QACpE,MAAMC,OAAO,GAAIhB,OAAO,CAACc,KAAK,CAA4BC,KAAK,CAAC;QAChE,IAAIC,OAAO,IAAI,OAAOA,OAAO,KAAK,QAAQ,EAAE;UACxCX,MAAM,CAACC,IAAI,CAACU,OAAO,CAAC,CAACT,OAAO,CAAEU,OAAO,IAAK;YACtC,MAAMC,WAAW,GAAGH,KAAK,CAACI,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;YAC9CpB,QAAQ,CAACU,IAAI,CAAC;cACVC,GAAG,EAAE,UAAU,GAAGQ,WAAW,GAAG,GAAG,GAAGD,OAAO;cAC7CN,IAAI,EAAE,aAAa,GAAGM,OAAO,CAACG,WAAW,CAAC,CAAC,GAAG,GAAG,GAAGL;YACxD,CAAC,CAAC;UACN,CAAC,CAAC;QACN;MACJ,CAAC,CAAC;IACN;;IAEA;IACA,IAAIhB,QAAQ,CAACsB,MAAM,GAAG,CAAC,EAAE;MACrB,IAAIC,SAAS,GAAG,CAAC,CAAC;MAClB,IAAIC,SAAS,GAAG,CAAC,CAAC;MAEV,MAAMC,IAAI,GAAGxB,OAAO,CAACwB,IAA2C;MACxE,MAAMC,KAAK,GAAID,IAAI,IAAI,OAAOA,IAAI,CAACC,KAAK,KAAK,QAAQ,GAAID,IAAI,CAACC,KAAK,CAACC,WAAW,CAAC,CAAC,CAACP,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,GAAG,EAAE;MAChH,MAAMQ,UAAU,GAAIH,IAAI,IAAI,OAAOA,IAAI,CAACC,KAAK,KAAK,QAAQ,GAAID,IAAI,CAACC,KAAK,CAACC,WAAW,CAAC,CAAC,CAACE,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;MAE5G7B,QAAQ,CAACQ,OAAO,CAAC,CAACsB,MAAM,EAAEC,KAAK,KAAK;QAChC,IAAIC,KAAK,GAAG,CAAC;;QAEb;QACA,IAAIF,MAAM,CAACnB,GAAG,CAACsB,QAAQ,CAAC,WAAW,CAAC,IAAIH,MAAM,CAACnB,GAAG,CAACsB,QAAQ,CAAC,eAAe,CAAC,EAAE;UAC1E,MAAMC,IAAI,GAAGJ,MAAM,CAACnB,GAAG,CAACkB,KAAK,CAAC,GAAG,CAAC,CAACM,GAAG,CAAC,CAAC,IAAI,EAAE;UAC9C,MAAMC,SAAS,GAAGF,IAAI,CAACP,WAAW,CAAC,CAAC;UACpC,MAAMU,SAAS,GAAGD,SAAS,CAAChB,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;UAErD,IAAIM,KAAK,IAAIW,SAAS,KAAKX,KAAK,EAAEM,KAAK,IAAI,EAAE,CAAC,CAAC;UAAA,KAC1C,IAAIN,KAAK,IAAIA,KAAK,CAACO,QAAQ,CAACI,SAAS,CAAC,EAAEL,KAAK,IAAI,EAAE,CAAC,CAAC;UAAA,KACrD,IAAIN,KAAK,IAAIW,SAAS,CAACJ,QAAQ,CAACP,KAAK,CAAC,EAAEM,KAAK,IAAI,EAAE,CAAC,CAAC;;UAE1DJ,UAAU,CAACpB,OAAO,CAAE8B,IAAY,IAAK;YACjC,IAAIA,IAAI,CAAChB,MAAM,GAAG,CAAC,IAAIc,SAAS,CAACH,QAAQ,CAACK,IAAI,CAAC,EAAEN,KAAK,IAAI,CAAC,CAAC,CAAC;UACjE,CAAC,CAAC;UAEF,MAAMO,YAAY,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,CAAC;UAClF,IAAIA,YAAY,CAACC,IAAI,CAACC,CAAC,IAAIL,SAAS,CAACH,QAAQ,CAACQ,CAAC,CAAC,CAAC,EAAET,KAAK,IAAI,CAAC;;UAE7D;UACA,IAAIU,SAAyC,GAAG,IAAI;UACpD,IAAIZ,MAAM,CAACnB,GAAG,CAACR,UAAU,CAAC,uBAAuB,CAAC,IAAI,OAAOF,OAAO,CAACG,UAAU,KAAK,QAAQ,IAAIH,OAAO,CAACG,UAAU,KAAK,IAAI,EAAE;YACzH,MAAMA,UAAU,GAAGH,OAAO,CAACG,UAAqC;YAChE,IAAI,OAAOA,UAAU,CAACC,OAAO,KAAK,QAAQ,IAAID,UAAU,CAACC,OAAO,KAAK,IAAI,EAAE;cACvEqC,SAAS,GAAItC,UAAU,CAACC,OAAO,CAA6C6B,IAAI,CAAC,IAAI,IAAI;YAC7F;UACJ,CAAC,MAAM,IAAIJ,MAAM,CAACnB,GAAG,CAACR,UAAU,CAAC,gBAAgB,CAAC,IAAI,OAAOF,OAAO,CAACa,WAAW,KAAK,QAAQ,IAAIb,OAAO,CAACa,WAAW,KAAK,IAAI,EAAE;YAC3H4B,SAAS,GAAIzC,OAAO,CAACa,WAAW,CAA6CoB,IAAI,CAAC,IAAI,IAAI;UAC9F;UAEA,IAAIQ,SAAS,IAAI,OAAOA,SAAS,KAAK,QAAQ,EAAE;YAC5C,MAAMC,eAAe,GAAIC,IAAa,IAAK;cACvC,IAAI,CAACA,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;cACvC,MAAMC,OAAO,GAAGD,IAA+B;cAC/C,IAAIC,OAAO,CAACC,UAAU,IAAI,OAAOD,OAAO,CAACC,UAAU,KAAK,QAAQ,EAAE;gBAC9Dd,KAAK,IAAI1B,MAAM,CAACC,IAAI,CAACsC,OAAO,CAACC,UAAU,CAAC,CAACxB,MAAM,GAAG,CAAC,CAAC,CAAC;gBACrDhB,MAAM,CAACyC,MAAM,CAACF,OAAO,CAACC,UAAU,CAAC,CAACtC,OAAO,CAAEwC,IAAa,IAAK;kBACzD,IAAIA,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;oBAClC,MAAMC,OAAO,GAAGD,IAA+B;oBAC/C,IAAIC,OAAO,CAACC,IAAI,EAAElB,KAAK,IAAI,EAAE,CAAC,CAAC;oBAC/B,IAAIiB,OAAO,CAACE,KAAK,IAAI,OAAOF,OAAO,CAACE,KAAK,KAAK,QAAQ,IAAKF,OAAO,CAACE,KAAK,CAA6BD,IAAI,EAAElB,KAAK,IAAI,EAAE;kBAC1H;gBACJ,CAAC,CAAC;cACN;cAEA,IAAIa,OAAO,CAACO,QAAQ,IAAIC,KAAK,CAACC,OAAO,CAACT,OAAO,CAACO,QAAQ,CAAC,EAAE;gBACrDpB,KAAK,IAAIa,OAAO,CAACO,QAAQ,CAAC9B,MAAM,GAAG,CAAC,CAAC,CAAC;cAC1C;YACJ,CAAC;YAEDqB,eAAe,CAACD,SAAS,CAAC;;YAE1B;YACA,IAAIA,SAAS,CAACa,KAAK,IAAIF,KAAK,CAACC,OAAO,CAACZ,SAAS,CAACa,KAAK,CAAC,EAAE;cACnDb,SAAS,CAACa,KAAK,CAAC/C,OAAO,CAACmC,eAAe,CAAC;YAC5C;YACA,IAAID,SAAS,CAACc,KAAK,IAAIH,KAAK,CAACC,OAAO,CAACZ,SAAS,CAACc,KAAK,CAAC,EAAE;cACnDd,SAAS,CAACc,KAAK,CAAChD,OAAO,CAACmC,eAAe,CAAC;YAC5C;YACA,IAAID,SAAS,CAACe,KAAK,IAAIJ,KAAK,CAACC,OAAO,CAACZ,SAAS,CAACe,KAAK,CAAC,EAAE;cACnDf,SAAS,CAACe,KAAK,CAACjD,OAAO,CAACmC,eAAe,CAAC;YAC5C;UACJ;QACJ;QAEA,IAAIX,KAAK,GAAGT,SAAS,EAAE;UACnBA,SAAS,GAAGS,KAAK;UACjBR,SAAS,GAAGO,KAAK;QACrB;MACJ,CAAC,CAAC;MAEF,IAAIP,SAAS,KAAK,CAAC,CAAC,IAAID,SAAS,GAAG,CAAC,EAAE;QACnC,MAAMmC,OAAO,GAAG1D,QAAQ,CAAC2D,MAAM,CAACnC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAChDkC,OAAO,CAAC9C,IAAI,GAAG,iBAAiB8C,OAAO,CAAC9C,IAAI,EAAE;QAC9CZ,QAAQ,CAAC4D,OAAO,CAACF,OAAO,CAAC;MAC7B;IACJ;IAEA,OAAO1D,QAAQ;EACnB,CAAC;EAAA,OA9IgBL,gBAAgB;AAAA","ignoreList":[]}
@@ -0,0 +1,27 @@
1
+ declare module "nz/co/siliconst/ui5/metaui/swagger/OpenApiExtractor" {
2
+ import UI5Object from "sap/ui/base/Object";
3
+ export interface OpenApiTarget {
4
+ key: string;
5
+ text: string;
6
+ }
7
+ /**
8
+ * @class
9
+ * OpenApiExtractor utility.
10
+ * Dynamically crawls OpenAPI/Swagger JSON specifications to find all valid
11
+ * root endpoints and schema definitions that can be used as a schemaTarget.
12
+ *
13
+ * @extends sap.ui.base.Object
14
+ * @alias nz.co.siliconst.ui5.metaui.swagger.OpenApiExtractor
15
+ */
16
+ export default class OpenApiExtractor extends UI5Object {
17
+ /**
18
+ * Parses an OpenAPI document and extracts an array of valid targets.
19
+ *
20
+ * @public
21
+ * @param oSchema The parsed JSON schema object.
22
+ * @returns Array of target bindings.
23
+ */
24
+ static extractTargets(rawSchema: unknown): OpenApiTarget[];
25
+ }
26
+ }
27
+ //# sourceMappingURL=OpenApiExtractor.d.ts.map
@@ -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":"8DAOA,MASqBA,EAAyBC,EAASC,OAAA,0DAAlCF,EASHG,eAAc,SAAdA,EAAeC,GACzB,MAAMC,EAA4B,GAClC,IAAKD,UAAoBA,IAAc,SAAU,CAC7C,OAAOC,CACX,CAEA,MAAMC,EAAUF,EAGhB,UAAWE,EAAQC,UAAY,UAAYD,EAAQC,QAAQC,WAAW,OAASF,EAAQG,mBAAsBH,EAAQG,WAAsCC,UAAY,SAAU,CAC7KC,OAAOC,KAAMN,EAAQG,WAAsCC,SAAmCG,QAASC,IACnGT,EAASU,KAAK,CACVC,IAAK,wBAA0BF,EAC/BG,KAAM,WAAaH,KAG/B,CAGA,UAAWR,EAAQY,UAAY,UAAYZ,EAAQY,QAAQV,WAAW,cAAgBF,EAAQa,cAAgB,UAAYb,EAAQa,cAAgB,KAAM,CACpJR,OAAOC,KAAKN,EAAQa,aAAuCN,QAASC,IAChET,EAASU,KAAK,CACVC,IAAK,iBAAmBF,EACxBG,KAAM,eAAiBH,KAGnC,CAGA,UAAWR,EAAQc,QAAU,UAAYd,EAAQc,QAAU,KAAM,CAC7DT,OAAOC,KAAKN,EAAQc,OAAiCP,QAASQ,IAC1D,MAAMC,EAAWhB,EAAQc,MAAiCC,GAC1D,GAAIC,UAAkBA,IAAY,SAAU,CACxCX,OAAOC,KAAKU,GAAST,QAASU,IAC1B,MAAMC,EAAcH,EAAMI,QAAQ,MAAO,MACzCpB,EAASU,KAAK,CACVC,IAAK,WAAaQ,EAAc,IAAMD,EACtCN,KAAM,cAAgBM,EAAQG,cAAgB,IAAML,KAGhE,GAER,CAGA,GAAIhB,EAASsB,OAAS,EAAG,CACrB,IAAIC,GAAa,EACjB,IAAIC,GAAa,EAET,MAAMC,EAAOxB,EAAQwB,KAC7B,MAAMC,EAASD,UAAeA,EAAKC,QAAU,SAAYD,EAAKC,MAAMC,cAAcP,QAAQ,aAAc,IAAM,GAC9G,MAAMQ,EAAcH,UAAeA,EAAKC,QAAU,SAAYD,EAAKC,MAAMC,cAAcE,MAAM,WAAa,GAE1G7B,EAASQ,QAAQ,CAACsB,EAAQC,KACtB,IAAIC,EAAQ,EAGZ,GAAIF,EAAOnB,IAAIsB,SAAS,cAAgBH,EAAOnB,IAAIsB,SAAS,iBAAkB,CAC1E,MAAMC,EAAOJ,EAAOnB,IAAIkB,MAAM,KAAKM,OAAS,GAC5C,MAAMC,EAAYF,EAAKP,cACvB,MAAMU,EAAYD,EAAUhB,QAAQ,aAAc,IAElD,GAAIM,GAASW,IAAcX,EAAOM,GAAS,QACtC,GAAIN,GAASA,EAAMO,SAASI,GAAYL,GAAS,QACjD,GAAIN,GAASW,EAAUJ,SAASP,GAAQM,GAAS,GAEtDJ,EAAWpB,QAAS8B,IAChB,GAAIA,EAAKhB,OAAS,GAAKc,EAAUH,SAASK,GAAON,GAAS,IAG9D,MAAMO,EAAe,CAAC,OAAQ,OAAQ,MAAO,cAAe,UAAW,YACvE,GAAIA,EAAaC,KAAKC,GAAKL,EAAUH,SAASQ,IAAKT,GAAS,EAG5D,IAAIU,EAA4C,KAChD,GAAIZ,EAAOnB,IAAIR,WAAW,iCAAmCF,EAAQG,aAAe,UAAYH,EAAQG,aAAe,KAAM,CACzH,MAAMA,EAAaH,EAAQG,WAC3B,UAAWA,EAAWC,UAAY,UAAYD,EAAWC,UAAY,KAAM,CACvEqC,EAAatC,EAAWC,QAAoD6B,IAAS,IACzF,CACJ,MAAO,GAAIJ,EAAOnB,IAAIR,WAAW,0BAA4BF,EAAQa,cAAgB,UAAYb,EAAQa,cAAgB,KAAM,CAC3H4B,EAAazC,EAAQa,YAAwDoB,IAAS,IAC1F,CAEA,GAAIQ,UAAoBA,IAAc,SAAU,CAC5C,MAAMC,EAAmBC,IACrB,IAAKA,UAAeA,IAAS,SAAU,OACvC,MAAMC,EAAUD,EAChB,GAAIC,EAAQC,mBAAqBD,EAAQC,aAAe,SAAU,CAC9Dd,GAAS1B,OAAOC,KAAKsC,EAAQC,YAAYxB,OAAS,EAClDhB,OAAOyC,OAAOF,EAAQC,YAAYtC,QAASwC,IACvC,GAAIA,UAAeA,IAAS,SAAU,CAClC,MAAMC,EAAUD,EAChB,GAAIC,EAAQC,KAAMlB,GAAS,GAC3B,GAAIiB,EAAQE,cAAgBF,EAAQE,QAAU,UAAaF,EAAQE,MAAkCD,KAAMlB,GAAS,EACxH,GAER,CAEA,GAAIa,EAAQO,UAAYC,MAAMC,QAAQT,EAAQO,UAAW,CACrDpB,GAASa,EAAQO,SAAS9B,OAAS,CACvC,GAGJqB,EAAgBD,GAGhB,GAAIA,EAAUa,OAASF,MAAMC,QAAQZ,EAAUa,OAAQ,CACnDb,EAAUa,MAAM/C,QAAQmC,EAC5B,CACA,GAAID,EAAUc,OAASH,MAAMC,QAAQZ,EAAUc,OAAQ,CACnDd,EAAUc,MAAMhD,QAAQmC,EAC5B,CACA,GAAID,EAAUe,OAASJ,MAAMC,QAAQZ,EAAUe,OAAQ,CACnDf,EAAUe,MAAMjD,QAAQmC,EAC5B,CACJ,CACJ,CAEA,GAAIX,EAAQT,EAAW,CACnBA,EAAYS,EACZR,EAAYO,CAChB,IAGJ,GAAIP,KAAe,GAAKD,EAAY,EAAG,CACnC,MAAMmC,EAAU1D,EAAS2D,OAAOnC,EAAW,GAAG,GAC9CkC,EAAQ9C,KAAO,iBAAiB8C,EAAQ9C,OACxCZ,EAAS4D,QAAQF,EACrB,CACJ,CAEA,OAAO1D,CACX,EAAC,OA9IgBL,CAAgB","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