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