@siliconst/metaui 1.4.21 → 1.4.37

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 (555) hide show
  1. package/README.md +1 -1
  2. package/package.json +1 -1
  3. package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator-dbg.js +22 -20
  4. package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator-dbg.js.map +1 -1
  5. package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator.d.ts +3 -3
  6. package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator.d.ts.map +1 -1
  7. package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator.js +1 -1
  8. package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator.js.map +1 -1
  9. package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator.ts +24 -16
  10. package/src/nz/co/siliconst/ui5/metaui/ai/RestLLMProxy-dbg.js.map +1 -1
  11. package/src/nz/co/siliconst/ui5/metaui/ai/RestLLMProxy.js.map +1 -1
  12. package/src/nz/co/siliconst/ui5/metaui/ai/RestLLMProxy.ts +2 -2
  13. package/src/nz/co/siliconst/ui5/metaui/constants/MetaUIConstants-dbg.js +111 -0
  14. package/src/nz/co/siliconst/ui5/metaui/constants/MetaUIConstants-dbg.js.map +1 -0
  15. package/src/nz/co/siliconst/ui5/metaui/constants/MetaUIConstants.d.ts +95 -0
  16. package/src/nz/co/siliconst/ui5/metaui/constants/MetaUIConstants.d.ts.map +1 -0
  17. package/src/nz/co/siliconst/ui5/metaui/constants/MetaUIConstants.js +2 -0
  18. package/src/nz/co/siliconst/ui5/metaui/constants/MetaUIConstants.js.map +1 -0
  19. package/src/nz/co/siliconst/ui5/metaui/constants/MetaUIConstants.ts +101 -0
  20. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl-dbg.js.map +1 -1
  21. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl.js.map +1 -1
  22. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControl.ts +1 -1
  23. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControlRenderer-dbg.js.map +1 -1
  24. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControlRenderer.d.ts.map +1 -1
  25. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControlRenderer.js.map +1 -1
  26. package/src/nz/co/siliconst/ui5/metaui/controls/BaseHardwareControlRenderer.ts +2 -1
  27. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl-dbg.js +2 -2
  28. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl-dbg.js.map +1 -1
  29. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl.js +1 -1
  30. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl.js.map +1 -1
  31. package/src/nz/co/siliconst/ui5/metaui/controls/CameraControl.ts +3 -3
  32. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost-dbg.js +47 -47
  33. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost-dbg.js.map +1 -1
  34. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.d.ts +6 -2
  35. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.d.ts.map +1 -1
  36. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.js +1 -1
  37. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.js.map +1 -1
  38. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.ts +62 -66
  39. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl-dbg.js +0 -9
  40. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl-dbg.js.map +1 -1
  41. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.d.ts +0 -9
  42. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.d.ts.map +1 -1
  43. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.js +1 -1
  44. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.js.map +1 -1
  45. package/src/nz/co/siliconst/ui5/metaui/controls/GeolocationControl.ts +3 -9
  46. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl-dbg.js +0 -11
  47. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl-dbg.js.map +1 -1
  48. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.d.ts +0 -11
  49. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.d.ts.map +1 -1
  50. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.js +1 -1
  51. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.js.map +1 -1
  52. package/src/nz/co/siliconst/ui5/metaui/controls/RichTextControl.ts +2 -9
  53. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl-dbg.js +2 -7
  54. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl-dbg.js.map +1 -1
  55. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.d.ts +0 -5
  56. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.d.ts.map +1 -1
  57. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.js +1 -1
  58. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.js.map +1 -1
  59. package/src/nz/co/siliconst/ui5/metaui/controls/SignatureControl.ts +3 -7
  60. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl-dbg.js +1 -6
  61. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl-dbg.js.map +1 -1
  62. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.d.ts +0 -5
  63. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.d.ts.map +1 -1
  64. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.js +1 -1
  65. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.js.map +1 -1
  66. package/src/nz/co/siliconst/ui5/metaui/controls/VoiceInputControl.ts +9 -12
  67. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost-dbg.js +170 -74
  68. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost-dbg.js.map +1 -1
  69. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.d.ts +29 -4
  70. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.d.ts.map +1 -1
  71. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.js +1 -1
  72. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.js.map +1 -1
  73. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.ts +179 -79
  74. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate-dbg.js +41 -38
  75. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate-dbg.js.map +1 -1
  76. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.d.ts +5 -3
  77. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.d.ts.map +1 -1
  78. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.js +1 -1
  79. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.js.map +1 -1
  80. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.ts +46 -38
  81. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate-dbg.js +41 -2
  82. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate-dbg.js.map +1 -1
  83. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.d.ts +6 -2
  84. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.d.ts.map +1 -1
  85. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.js +1 -1
  86. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.js.map +1 -1
  87. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DialogDelegate.ts +47 -2
  88. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate-dbg.js.map +1 -1
  89. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate.d.ts +1 -1
  90. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate.d.ts.map +1 -1
  91. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate.js.map +1 -1
  92. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ODataDelegate.ts +8 -7
  93. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate-dbg.js +7 -2
  94. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate-dbg.js.map +1 -1
  95. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.d.ts +5 -2
  96. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.d.ts.map +1 -1
  97. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.js +1 -1
  98. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.js.map +1 -1
  99. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/ValidationDelegate.ts +10 -5
  100. package/src/nz/co/siliconst/ui5/metaui/core/Engine-dbg.js +215 -38
  101. package/src/nz/co/siliconst/ui5/metaui/core/Engine-dbg.js.map +1 -1
  102. package/src/nz/co/siliconst/ui5/metaui/core/Engine.d.ts +21 -3
  103. package/src/nz/co/siliconst/ui5/metaui/core/Engine.d.ts.map +1 -1
  104. package/src/nz/co/siliconst/ui5/metaui/core/Engine.js +1 -1
  105. package/src/nz/co/siliconst/ui5/metaui/core/Engine.js.map +1 -1
  106. package/src/nz/co/siliconst/ui5/metaui/core/Engine.ts +218 -40
  107. package/src/nz/co/siliconst/ui5/metaui/core/LayoutMutator-dbg.js +86 -0
  108. package/src/nz/co/siliconst/ui5/metaui/core/LayoutMutator-dbg.js.map +1 -0
  109. package/src/nz/co/siliconst/ui5/metaui/core/LayoutMutator.d.ts +16 -0
  110. package/src/nz/co/siliconst/ui5/metaui/core/LayoutMutator.d.ts.map +1 -0
  111. package/src/nz/co/siliconst/ui5/metaui/core/LayoutMutator.js +2 -0
  112. package/src/nz/co/siliconst/ui5/metaui/core/LayoutMutator.js.map +1 -0
  113. package/src/nz/co/siliconst/ui5/metaui/core/LayoutMutator.ts +82 -0
  114. package/src/nz/co/siliconst/ui5/metaui/core/LayoutScorer-dbg.js +142 -0
  115. package/src/nz/co/siliconst/ui5/metaui/core/LayoutScorer-dbg.js.map +1 -0
  116. package/src/nz/co/siliconst/ui5/metaui/core/LayoutScorer.d.ts +24 -0
  117. package/src/nz/co/siliconst/ui5/metaui/core/LayoutScorer.d.ts.map +1 -0
  118. package/src/nz/co/siliconst/ui5/metaui/core/LayoutScorer.js +2 -0
  119. package/src/nz/co/siliconst/ui5/metaui/core/LayoutScorer.js.map +1 -0
  120. package/src/nz/co/siliconst/ui5/metaui/core/LayoutScorer.ts +147 -0
  121. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager-dbg.js +8 -0
  122. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager-dbg.js.map +1 -1
  123. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.d.ts.map +1 -1
  124. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.js +1 -1
  125. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.js.map +1 -1
  126. package/src/nz/co/siliconst/ui5/metaui/core/PipelineManager.ts +7 -0
  127. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry-dbg.js +153 -50
  128. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry-dbg.js.map +1 -1
  129. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.d.ts +15 -0
  130. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.d.ts.map +1 -1
  131. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.js +1 -1
  132. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.js.map +1 -1
  133. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.ts +164 -53
  134. package/src/nz/co/siliconst/ui5/metaui/core/PolicyEngine-dbg.js +310 -0
  135. package/src/nz/co/siliconst/ui5/metaui/core/PolicyEngine-dbg.js.map +1 -0
  136. package/src/nz/co/siliconst/ui5/metaui/core/PolicyEngine.d.ts +73 -0
  137. package/src/nz/co/siliconst/ui5/metaui/core/PolicyEngine.d.ts.map +1 -0
  138. package/src/nz/co/siliconst/ui5/metaui/core/PolicyEngine.js +2 -0
  139. package/src/nz/co/siliconst/ui5/metaui/core/PolicyEngine.js.map +1 -0
  140. package/src/nz/co/siliconst/ui5/metaui/core/PolicyEngine.ts +307 -0
  141. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer-dbg.js +35 -14
  142. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer-dbg.js.map +1 -1
  143. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.d.ts.map +1 -1
  144. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.js +1 -1
  145. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.js.map +1 -1
  146. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.ts +40 -15
  147. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator-dbg.js +15 -3
  148. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator-dbg.js.map +1 -1
  149. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.d.ts.map +1 -1
  150. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.js +1 -1
  151. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.js.map +1 -1
  152. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.ts +15 -1
  153. package/src/nz/co/siliconst/ui5/metaui/core/StateManager-dbg.js +82 -16
  154. package/src/nz/co/siliconst/ui5/metaui/core/StateManager-dbg.js.map +1 -1
  155. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.d.ts +16 -0
  156. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.d.ts.map +1 -1
  157. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.js +1 -1
  158. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.js.map +1 -1
  159. package/src/nz/co/siliconst/ui5/metaui/core/StateManager.ts +89 -17
  160. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin-dbg.js.map +1 -1
  161. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin.d.ts +12 -1
  162. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin.d.ts.map +1 -1
  163. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin.ts +13 -1
  164. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPolicyPlugin-dbg.js +2 -0
  165. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPolicyPlugin-dbg.js.map +1 -0
  166. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPolicyPlugin.d.ts +50 -0
  167. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPolicyPlugin.d.ts.map +1 -0
  168. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPolicyPlugin.js +2 -0
  169. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPolicyPlugin.js.map +1 -0
  170. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPolicyPlugin.ts +49 -0
  171. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema-dbg.js.map +1 -1
  172. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema.d.ts +23 -1
  173. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema.d.ts.map +1 -1
  174. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema.ts +27 -1
  175. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout-dbg.js +31 -36
  176. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout-dbg.js.map +1 -1
  177. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.d.ts.map +1 -1
  178. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.js +1 -1
  179. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.js.map +1 -1
  180. package/src/nz/co/siliconst/ui5/metaui/layouts/FormLayout.ts +26 -29
  181. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout-dbg.js +47 -11
  182. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout-dbg.js.map +1 -1
  183. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.d.ts.map +1 -1
  184. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.js +1 -1
  185. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.js.map +1 -1
  186. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.ts +48 -12
  187. package/src/nz/co/siliconst/ui5/metaui/library-preload.js +74 -58
  188. package/src/nz/co/siliconst/ui5/metaui/library-preload.js.map +1 -1
  189. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory-dbg.js +3 -2
  190. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory-dbg.js.map +1 -1
  191. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory.d.ts.map +1 -1
  192. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory.js +1 -1
  193. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory.js.map +1 -1
  194. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory.ts +3 -2
  195. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver-dbg.js.map +1 -1
  196. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver.js.map +1 -1
  197. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver.ts +3 -3
  198. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper-dbg.js +2 -1
  199. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper-dbg.js.map +1 -1
  200. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper.d.ts +1 -1
  201. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper.d.ts.map +1 -1
  202. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper.js +1 -1
  203. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper.js.map +1 -1
  204. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper.ts +4 -3
  205. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/OpenApiHeuristicEngine-dbg.js +2 -2
  206. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/OpenApiHeuristicEngine-dbg.js.map +1 -1
  207. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/OpenApiHeuristicEngine.js.map +1 -1
  208. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/OpenApiHeuristicEngine.ts +2 -2
  209. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic-dbg.js +12 -8
  210. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic-dbg.js.map +1 -1
  211. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic.d.ts.map +1 -1
  212. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic.js +1 -1
  213. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic.js.map +1 -1
  214. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic.ts +15 -11
  215. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser-dbg.js +20 -12
  216. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser-dbg.js.map +1 -1
  217. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser.d.ts +4 -4
  218. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser.d.ts.map +1 -1
  219. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser.js +1 -1
  220. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser.js.map +1 -1
  221. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser.ts +24 -16
  222. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser-dbg.js +18 -11
  223. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser-dbg.js.map +1 -1
  224. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser.d.ts +4 -4
  225. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser.d.ts.map +1 -1
  226. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser.js +1 -1
  227. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser.js.map +1 -1
  228. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser.ts +22 -15
  229. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper-dbg.js +24 -100
  230. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper-dbg.js.map +1 -1
  231. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper.d.ts +8 -72
  232. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper.d.ts.map +1 -1
  233. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper.js +1 -1
  234. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper.js.map +1 -1
  235. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper.ts +45 -108
  236. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin-dbg.js.map +1 -1
  237. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin.d.ts.map +1 -1
  238. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin.js.map +1 -1
  239. package/src/nz/co/siliconst/ui5/metaui/plugins/actions/ClearFormActionPlugin.ts +2 -1
  240. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin-dbg.js +24 -18
  241. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin-dbg.js.map +1 -1
  242. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.d.ts +1 -1
  243. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.d.ts.map +1 -1
  244. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.js +1 -1
  245. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.js.map +1 -1
  246. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.ts +23 -21
  247. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin-dbg.js +5 -5
  248. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin-dbg.js.map +1 -1
  249. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.d.ts +1 -1
  250. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.d.ts.map +1 -1
  251. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.js +1 -1
  252. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.js.map +1 -1
  253. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.ts +7 -7
  254. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin-dbg.js +129 -9
  255. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin-dbg.js.map +1 -1
  256. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.d.ts +46 -10
  257. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.d.ts.map +1 -1
  258. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.js +1 -1
  259. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.js.map +1 -1
  260. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.ts +145 -15
  261. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin-dbg.js +35 -14
  262. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin-dbg.js.map +1 -1
  263. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.d.ts +1 -1
  264. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.d.ts.map +1 -1
  265. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.js +1 -1
  266. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.js.map +1 -1
  267. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.ts +38 -14
  268. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin-dbg.js +4 -4
  269. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin-dbg.js.map +1 -1
  270. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.d.ts +1 -1
  271. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.d.ts.map +1 -1
  272. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.js +1 -1
  273. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.js.map +1 -1
  274. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.ts +5 -5
  275. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin-dbg.js +69 -20
  276. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin-dbg.js.map +1 -1
  277. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.d.ts +2 -1
  278. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.d.ts.map +1 -1
  279. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.js +1 -1
  280. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.js.map +1 -1
  281. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.ts +77 -21
  282. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin-dbg.js +3 -3
  283. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin-dbg.js.map +1 -1
  284. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.d.ts +1 -1
  285. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.d.ts.map +1 -1
  286. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.js +1 -1
  287. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.js.map +1 -1
  288. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.ts +5 -5
  289. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin-dbg.js +3 -3
  290. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin-dbg.js.map +1 -1
  291. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.d.ts +1 -1
  292. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.d.ts.map +1 -1
  293. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.js +1 -1
  294. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.js.map +1 -1
  295. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.ts +5 -5
  296. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin-dbg.js +1 -0
  297. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin-dbg.js.map +1 -1
  298. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin.d.ts.map +1 -1
  299. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin.js +1 -1
  300. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin.js.map +1 -1
  301. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin.ts +6 -5
  302. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin-dbg.js +8 -3
  303. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin-dbg.js.map +1 -1
  304. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.d.ts +1 -1
  305. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.d.ts.map +1 -1
  306. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.js +1 -1
  307. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.js.map +1 -1
  308. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.ts +10 -5
  309. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin-dbg.js +3 -3
  310. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin-dbg.js.map +1 -1
  311. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin.d.ts +1 -1
  312. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin.d.ts.map +1 -1
  313. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin.js +1 -1
  314. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin.js.map +1 -1
  315. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/EmailPlugin.ts +4 -4
  316. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin-dbg.js +3 -3
  317. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin-dbg.js.map +1 -1
  318. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.d.ts +1 -1
  319. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.d.ts.map +1 -1
  320. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.js +1 -1
  321. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.js.map +1 -1
  322. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.ts +5 -5
  323. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin-dbg.js +4 -4
  324. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin-dbg.js.map +1 -1
  325. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.d.ts +1 -1
  326. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.d.ts.map +1 -1
  327. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.js +1 -1
  328. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.js.map +1 -1
  329. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.ts +5 -5
  330. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin-dbg.js +3 -3
  331. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin-dbg.js.map +1 -1
  332. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin.d.ts +1 -1
  333. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin.d.ts.map +1 -1
  334. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin.js +1 -1
  335. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin.js.map +1 -1
  336. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/LinkPlugin.ts +4 -4
  337. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin-dbg.js.map +1 -1
  338. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.d.ts +1 -1
  339. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.d.ts.map +1 -1
  340. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.js.map +1 -1
  341. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.ts +1 -1
  342. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin-dbg.js +7 -6
  343. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin-dbg.js.map +1 -1
  344. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.d.ts +1 -1
  345. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.d.ts.map +1 -1
  346. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.js +1 -1
  347. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.js.map +1 -1
  348. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.ts +9 -8
  349. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin-dbg.js +2 -2
  350. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin-dbg.js.map +1 -1
  351. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.d.ts +1 -1
  352. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.d.ts.map +1 -1
  353. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.js +1 -1
  354. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.js.map +1 -1
  355. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.ts +3 -3
  356. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin-dbg.js +36 -21
  357. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin-dbg.js.map +1 -1
  358. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.d.ts +1 -1
  359. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.d.ts.map +1 -1
  360. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.js +1 -1
  361. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.js.map +1 -1
  362. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.ts +40 -23
  363. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin-dbg.js +9 -6
  364. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin-dbg.js.map +1 -1
  365. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.d.ts +1 -1
  366. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.d.ts.map +1 -1
  367. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.js +1 -1
  368. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.js.map +1 -1
  369. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ObjectPlugin.ts +10 -8
  370. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin-dbg.js +3 -3
  371. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin-dbg.js.map +1 -1
  372. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin.d.ts +1 -1
  373. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin.d.ts.map +1 -1
  374. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin.js +1 -1
  375. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin.js.map +1 -1
  376. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/PasswordPlugin.ts +4 -4
  377. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin-dbg.js +3 -3
  378. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin-dbg.js.map +1 -1
  379. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.d.ts +1 -1
  380. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.d.ts.map +1 -1
  381. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.js +1 -1
  382. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.js.map +1 -1
  383. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.ts +5 -5
  384. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin-dbg.js +29 -12
  385. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin-dbg.js.map +1 -1
  386. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin.d.ts +5 -1
  387. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin.d.ts.map +1 -1
  388. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin.js +1 -1
  389. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin.js.map +1 -1
  390. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin.ts +30 -10
  391. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin-dbg.js +4 -4
  392. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin-dbg.js.map +1 -1
  393. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.d.ts +1 -1
  394. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.d.ts.map +1 -1
  395. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.js +1 -1
  396. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.js.map +1 -1
  397. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.ts +5 -5
  398. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin-dbg.js +4 -4
  399. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin-dbg.js.map +1 -1
  400. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.d.ts +1 -1
  401. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.d.ts.map +1 -1
  402. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.js +1 -1
  403. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.js.map +1 -1
  404. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.ts +5 -5
  405. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin-dbg.js +3 -3
  406. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin-dbg.js.map +1 -1
  407. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.d.ts +1 -1
  408. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.d.ts.map +1 -1
  409. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.js +1 -1
  410. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.js.map +1 -1
  411. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.ts +4 -4
  412. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin-dbg.js +3 -3
  413. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin-dbg.js.map +1 -1
  414. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin.d.ts +1 -1
  415. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin.d.ts.map +1 -1
  416. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin.js +1 -1
  417. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin.js.map +1 -1
  418. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin.ts +5 -5
  419. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin-dbg.js +3 -3
  420. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin-dbg.js.map +1 -1
  421. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.d.ts +1 -1
  422. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.d.ts.map +1 -1
  423. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.js +1 -1
  424. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.js.map +1 -1
  425. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.ts +4 -4
  426. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin-dbg.js +2 -2
  427. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin-dbg.js.map +1 -1
  428. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.d.ts +1 -1
  429. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.d.ts.map +1 -1
  430. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.js +1 -1
  431. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.js.map +1 -1
  432. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.ts +3 -3
  433. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin-dbg.js +58 -56
  434. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin-dbg.js.map +1 -1
  435. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.d.ts +2 -5
  436. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.d.ts.map +1 -1
  437. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.js +1 -1
  438. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.js.map +1 -1
  439. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.ts +66 -55
  440. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin-dbg.js +3 -3
  441. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin-dbg.js.map +1 -1
  442. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.d.ts +1 -1
  443. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.d.ts.map +1 -1
  444. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.js +1 -1
  445. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.js.map +1 -1
  446. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.ts +4 -4
  447. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin-dbg.js +4 -4
  448. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin-dbg.js.map +1 -1
  449. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.d.ts +1 -1
  450. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.d.ts.map +1 -1
  451. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.js +1 -1
  452. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.js.map +1 -1
  453. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.ts +5 -5
  454. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin-dbg.js.map +1 -1
  455. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.d.ts.map +1 -1
  456. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.js.map +1 -1
  457. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.ts +5 -3
  458. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin-dbg.js +2 -1
  459. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin-dbg.js.map +1 -1
  460. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin.d.ts.map +1 -1
  461. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin.js +1 -1
  462. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin.js.map +1 -1
  463. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/ODataListBindingPlugin.ts +6 -3
  464. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin-dbg.js +30 -9
  465. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin-dbg.js.map +1 -1
  466. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.d.ts +2 -2
  467. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.d.ts.map +1 -1
  468. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.js +1 -1
  469. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.js.map +1 -1
  470. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteDropdownPlugin.ts +41 -13
  471. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin-dbg.js.map +1 -1
  472. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.d.ts.map +1 -1
  473. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.js.map +1 -1
  474. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.ts +5 -3
  475. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNotNullConditionPlugin-dbg.js +41 -0
  476. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNotNullConditionPlugin-dbg.js.map +1 -0
  477. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNotNullConditionPlugin.d.ts +24 -0
  478. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNotNullConditionPlugin.d.ts.map +1 -0
  479. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNotNullConditionPlugin.js +2 -0
  480. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNotNullConditionPlugin.js.map +1 -0
  481. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNotNullConditionPlugin.ts +34 -0
  482. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNullConditionPlugin-dbg.js +41 -0
  483. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNullConditionPlugin-dbg.js.map +1 -0
  484. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNullConditionPlugin.d.ts +24 -0
  485. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNullConditionPlugin.d.ts.map +1 -0
  486. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNullConditionPlugin.js +2 -0
  487. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNullConditionPlugin.js.map +1 -0
  488. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/IsNullConditionPlugin.ts +34 -0
  489. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericGreaterThanConditionPlugin-dbg.js +52 -0
  490. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericGreaterThanConditionPlugin-dbg.js.map +1 -0
  491. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericGreaterThanConditionPlugin.d.ts +30 -0
  492. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericGreaterThanConditionPlugin.d.ts.map +1 -0
  493. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericGreaterThanConditionPlugin.js +2 -0
  494. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericGreaterThanConditionPlugin.js.map +1 -0
  495. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericGreaterThanConditionPlugin.ts +45 -0
  496. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericLessThanConditionPlugin-dbg.js +52 -0
  497. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericLessThanConditionPlugin-dbg.js.map +1 -0
  498. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericLessThanConditionPlugin.d.ts +30 -0
  499. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericLessThanConditionPlugin.d.ts.map +1 -0
  500. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericLessThanConditionPlugin.js +2 -0
  501. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericLessThanConditionPlugin.js.map +1 -0
  502. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/NumericLessThanConditionPlugin.ts +45 -0
  503. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/StringEqualsConditionPlugin-dbg.js +41 -0
  504. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/StringEqualsConditionPlugin-dbg.js.map +1 -0
  505. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/StringEqualsConditionPlugin.d.ts +24 -0
  506. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/StringEqualsConditionPlugin.d.ts.map +1 -0
  507. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/StringEqualsConditionPlugin.js +2 -0
  508. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/StringEqualsConditionPlugin.js.map +1 -0
  509. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/conditions/StringEqualsConditionPlugin.ts +34 -0
  510. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/EditableEffectPlugin-dbg.js +40 -0
  511. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/EditableEffectPlugin-dbg.js.map +1 -0
  512. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/EditableEffectPlugin.d.ts +28 -0
  513. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/EditableEffectPlugin.d.ts.map +1 -0
  514. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/EditableEffectPlugin.js +2 -0
  515. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/EditableEffectPlugin.js.map +1 -0
  516. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/EditableEffectPlugin.ts +34 -0
  517. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/RequirementEffectPlugin-dbg.js +40 -0
  518. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/RequirementEffectPlugin-dbg.js.map +1 -0
  519. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/RequirementEffectPlugin.d.ts +28 -0
  520. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/RequirementEffectPlugin.d.ts.map +1 -0
  521. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/RequirementEffectPlugin.js +2 -0
  522. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/RequirementEffectPlugin.js.map +1 -0
  523. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/RequirementEffectPlugin.ts +34 -0
  524. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/ValidityEffectPlugin-dbg.js +40 -0
  525. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/ValidityEffectPlugin-dbg.js.map +1 -0
  526. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/ValidityEffectPlugin.d.ts +28 -0
  527. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/ValidityEffectPlugin.d.ts.map +1 -0
  528. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/ValidityEffectPlugin.js +2 -0
  529. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/ValidityEffectPlugin.js.map +1 -0
  530. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/ValidityEffectPlugin.ts +34 -0
  531. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/VisibilityEffectPlugin-dbg.js +40 -0
  532. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/VisibilityEffectPlugin-dbg.js.map +1 -0
  533. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/VisibilityEffectPlugin.d.ts +28 -0
  534. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/VisibilityEffectPlugin.d.ts.map +1 -0
  535. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/VisibilityEffectPlugin.js +2 -0
  536. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/VisibilityEffectPlugin.js.map +1 -0
  537. package/src/nz/co/siliconst/ui5/metaui/plugins/policies/effects/VisibilityEffectPlugin.ts +34 -0
  538. package/src/nz/co/siliconst/ui5/metaui/services/SchemaProvider-dbg.js +33 -0
  539. package/src/nz/co/siliconst/ui5/metaui/services/SchemaProvider-dbg.js.map +1 -0
  540. package/src/nz/co/siliconst/ui5/metaui/services/SchemaProvider.d.ts +14 -0
  541. package/src/nz/co/siliconst/ui5/metaui/services/SchemaProvider.d.ts.map +1 -0
  542. package/src/nz/co/siliconst/ui5/metaui/services/SchemaProvider.js +2 -0
  543. package/src/nz/co/siliconst/ui5/metaui/services/SchemaProvider.js.map +1 -0
  544. package/src/nz/co/siliconst/ui5/metaui/services/SchemaProvider.ts +24 -0
  545. package/src/nz/co/siliconst/ui5/metaui/utils/Logger-dbg.js.map +1 -1
  546. package/src/nz/co/siliconst/ui5/metaui/utils/Logger.d.ts.map +1 -1
  547. package/src/nz/co/siliconst/ui5/metaui/utils/Logger.js.map +1 -1
  548. package/src/nz/co/siliconst/ui5/metaui/utils/Logger.ts +1 -1
  549. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine-dbg.js +0 -75
  550. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine-dbg.js.map +0 -1
  551. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.d.ts +0 -47
  552. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.d.ts.map +0 -1
  553. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.js +0 -2
  554. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.js.map +0 -1
  555. package/src/nz/co/siliconst/ui5/metaui/core/ConditionEngine.ts +0 -72
@@ -28,10 +28,11 @@ sap.ui.define(["./parsers/OpenApi2Parser", "./parsers/OpenApi3Parser", "../utils
28
28
  Logger.error("[MetaUI OpenApiParserFactory] Invalid OpenAPI document provided.");
29
29
  return new OpenApi3Parser(); // Fallback
30
30
  }
31
- if (rawSchema.swagger === "2.0") {
31
+ const schema = rawSchema;
32
+ if (schema.swagger === "2.0") {
32
33
  return new OpenApi2Parser();
33
34
  }
34
- if (rawSchema.openapi && typeof rawSchema.openapi === "string" && rawSchema.openapi.startsWith("3")) {
35
+ if (schema.openapi && typeof schema.openapi === "string" && schema.openapi.startsWith("3")) {
35
36
  return new OpenApi3Parser();
36
37
  }
37
38
  Logger.warn("[MetaUI OpenApiParserFactory] Unable to strictly determine OpenAPI version. Defaulting to OpenAPI 3.0 Parser.");
@@ -1 +1 @@
1
- {"version":3,"file":"OpenApiParserFactory-dbg.js","names":["OpenApi2Parser","___parsers_OpenApi2Parser","OpenApi3Parser","___parsers_OpenApi3Parser","Logger","___utils_Logger","OpenApiParserFactory","getParser","rawSchema","error","swagger","openapi","startsWith","warn","__exports","__esModule"],"sources":["OpenApiParserFactory.ts"],"sourcesContent":["/**\n * @file OpenApiParserFactory.ts\n * @description Factory class to determine and instantiate the correct Swagger parser version.\n */\n\nimport { IOpenApiParserPlugin } from \"./interfaces/IOpenApiParserPlugin\";\nimport { OpenApi2Parser } from \"./parsers/OpenApi2Parser\";\nimport { OpenApi3Parser } from \"./parsers/OpenApi3Parser\";\nimport { Logger } from \"../utils/Logger\";\n\n/**\n * Factory class responsible for analyzing a raw OpenAPI document's metadata to dynamically \n * instantiate the correct, version-specific parser plugin. This isolates structural version \n * differences from the primary Engine orchestration layer.\n * \n * @public\n */\nexport class OpenApiParserFactory {\n /**\n * Inspects the root level structural signatures of an OpenAPI document (e.g., `swagger: \"2.0\"` \n * vs `openapi: \"3.x\"`) to instantiate the appropriate parsing engine.\n * \n * @param {any} rawSchema The raw, unparsed OpenAPI root JSON structure.\n * @returns {IOpenApiParserPlugin} An initialized instance of the correct concrete parser plugin.\n */\n public static getParser(rawSchema: unknown): IOpenApiParserPlugin {\n if (!rawSchema || typeof rawSchema !== \"object\") {\n Logger.error(\"[MetaUI OpenApiParserFactory] Invalid OpenAPI document provided.\");\n return new OpenApi3Parser(); // Fallback\n }\n\n if (rawSchema.swagger === \"2.0\") {\n return new OpenApi2Parser();\n }\n\n if (rawSchema.openapi && typeof rawSchema.openapi === \"string\" && rawSchema.openapi.startsWith(\"3\")) {\n return new OpenApi3Parser();\n }\n\n Logger.warn(\"[MetaUI OpenApiParserFactory] Unable to strictly determine OpenAPI version. Defaulting to OpenAPI 3.0 Parser.\");\n return new OpenApi3Parser();\n }\n}\n"],"mappings":";;;EAAA;AACA;AACA;AACA;EAHA,MAMSA,cAAc,GAAAC,yBAAA;EAAA,MACdC,cAAc,GAAAC,yBAAA;EAAA,MACdC,MAAM,GAAAC,eAAA;EAEf;AACA;AACA;AACA;AACA;AACA;AACA;EACO,MAAMC,oBAAoB,CAAC;IAC9B;AACJ;AACA;AACA;AACA;AACA;AACA;IACI,OAAcC,SAASA,CAACC,SAAkB,EAAwB;MAC9D,IAAI,CAACA,SAAS,IAAI,OAAOA,SAAS,KAAK,QAAQ,EAAE;QAC7CJ,MAAM,CAACK,KAAK,CAAC,kEAAkE,CAAC;QAChF,OAAO,IAAIP,cAAc,CAAC,CAAC,CAAC,CAAC;MACjC;MAEA,IAAIM,SAAS,CAACE,OAAO,KAAK,KAAK,EAAE;QAC7B,OAAO,IAAIV,cAAc,CAAC,CAAC;MAC/B;MAEA,IAAIQ,SAAS,CAACG,OAAO,IAAI,OAAOH,SAAS,CAACG,OAAO,KAAK,QAAQ,IAAIH,SAAS,CAACG,OAAO,CAACC,UAAU,CAAC,GAAG,CAAC,EAAE;QACjG,OAAO,IAAIV,cAAc,CAAC,CAAC;MAC/B;MAEAE,MAAM,CAACS,IAAI,CAAC,+GAA+G,CAAC;MAC5H,OAAO,IAAIX,cAAc,CAAC,CAAC;IAC/B;EACJ;EAAC,IAAAY,SAAA;IAAAC,UAAA;EAAA;EAAAD,SAAA,CAAAR,oBAAA,GAAAA,oBAAA;EAAA,OAAAQ,SAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"OpenApiParserFactory-dbg.js","names":["OpenApi2Parser","___parsers_OpenApi2Parser","OpenApi3Parser","___parsers_OpenApi3Parser","Logger","___utils_Logger","OpenApiParserFactory","getParser","rawSchema","error","schema","swagger","openapi","startsWith","warn","__exports","__esModule"],"sources":["OpenApiParserFactory.ts"],"sourcesContent":["/**\n * @file OpenApiParserFactory.ts\n * @description Factory class to determine and instantiate the correct Swagger parser version.\n */\n\nimport { IOpenApiParserPlugin } from \"./interfaces/IOpenApiParserPlugin\";\nimport { OpenApi2Parser } from \"./parsers/OpenApi2Parser\";\nimport { OpenApi3Parser } from \"./parsers/OpenApi3Parser\";\nimport { Logger } from \"../utils/Logger\";\n\n/**\n * Factory class responsible for analyzing a raw OpenAPI document's metadata to dynamically \n * instantiate the correct, version-specific parser plugin. This isolates structural version \n * differences from the primary Engine orchestration layer.\n * \n * @public\n */\nexport class OpenApiParserFactory {\n /**\n * Inspects the root level structural signatures of an OpenAPI document (e.g., `swagger: \"2.0\"` \n * vs `openapi: \"3.x\"`) to instantiate the appropriate parsing engine.\n * \n * @param {any} rawSchema The raw, unparsed OpenAPI root JSON structure.\n * @returns {IOpenApiParserPlugin} An initialized instance of the correct concrete parser plugin.\n */\n public static getParser(rawSchema: unknown): IOpenApiParserPlugin {\n if (!rawSchema || typeof rawSchema !== \"object\") {\n Logger.error(\"[MetaUI OpenApiParserFactory] Invalid OpenAPI document provided.\");\n return new OpenApi3Parser(); // Fallback\n }\n\n const schema = rawSchema as Record<string, unknown>;\n if (schema.swagger === \"2.0\") {\n return new OpenApi2Parser();\n }\n\n if (schema.openapi && typeof schema.openapi === \"string\" && schema.openapi.startsWith(\"3\")) {\n return new OpenApi3Parser();\n }\n\n Logger.warn(\"[MetaUI OpenApiParserFactory] Unable to strictly determine OpenAPI version. Defaulting to OpenAPI 3.0 Parser.\");\n return new OpenApi3Parser();\n }\n}\n"],"mappings":";;;EAAA;AACA;AACA;AACA;EAHA,MAMSA,cAAc,GAAAC,yBAAA;EAAA,MACdC,cAAc,GAAAC,yBAAA;EAAA,MACdC,MAAM,GAAAC,eAAA;EAEf;AACA;AACA;AACA;AACA;AACA;AACA;EACO,MAAMC,oBAAoB,CAAC;IAC9B;AACJ;AACA;AACA;AACA;AACA;AACA;IACI,OAAcC,SAASA,CAACC,SAAkB,EAAwB;MAC9D,IAAI,CAACA,SAAS,IAAI,OAAOA,SAAS,KAAK,QAAQ,EAAE;QAC7CJ,MAAM,CAACK,KAAK,CAAC,kEAAkE,CAAC;QAChF,OAAO,IAAIP,cAAc,CAAC,CAAC,CAAC,CAAC;MACjC;MAEA,MAAMQ,MAAM,GAAGF,SAAoC;MACnD,IAAIE,MAAM,CAACC,OAAO,KAAK,KAAK,EAAE;QAC1B,OAAO,IAAIX,cAAc,CAAC,CAAC;MAC/B;MAEA,IAAIU,MAAM,CAACE,OAAO,IAAI,OAAOF,MAAM,CAACE,OAAO,KAAK,QAAQ,IAAIF,MAAM,CAACE,OAAO,CAACC,UAAU,CAAC,GAAG,CAAC,EAAE;QACxF,OAAO,IAAIX,cAAc,CAAC,CAAC;MAC/B;MAEAE,MAAM,CAACU,IAAI,CAAC,+GAA+G,CAAC;MAC5H,OAAO,IAAIZ,cAAc,CAAC,CAAC;IAC/B;EACJ;EAAC,IAAAa,SAAA;IAAAC,UAAA;EAAA;EAAAD,SAAA,CAAAT,oBAAA,GAAAA,oBAAA;EAAA,OAAAS,SAAA;AAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"OpenApiParserFactory.d.ts","sourceRoot":"../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,yDAAyD,CAAC;IACzE;;;OAGG;IAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,oEAAoE,CAAC;IAK1G;;;;;;OAMG;IACH,MAAa,oBAAoB;QAC7B;;;;;;WAMG;eACW,SAAS,CAAC,SAAS,EAAE,OAAO,GAAG,oBAAoB;KAiBpE;CAEA"}
1
+ {"version":3,"file":"OpenApiParserFactory.d.ts","sourceRoot":"../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,yDAAyD,CAAC;IACzE;;;OAGG;IAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,oEAAoE,CAAC;IAK1G;;;;;;OAMG;IACH,MAAa,oBAAoB;QAC7B;;;;;;WAMG;eACW,SAAS,CAAC,SAAS,EAAE,OAAO,GAAG,oBAAoB;KAkBpE;CAEA"}
@@ -1,2 +1,2 @@
1
- sap.ui.define(["./parsers/OpenApi2Parser","./parsers/OpenApi3Parser","../utils/Logger"],function(e,r,n){"use strict";const t=e["OpenApi2Parser"];const s=r["OpenApi3Parser"];const a=n["Logger"];class p{static getParser(e){if(!e||typeof e!=="object"){a.error("[MetaUI OpenApiParserFactory] Invalid OpenAPI document provided.");return new s}if(e.swagger==="2.0"){return new t}if(e.openapi&&typeof e.openapi==="string"&&e.openapi.startsWith("3")){return new s}a.warn("[MetaUI OpenApiParserFactory] Unable to strictly determine OpenAPI version. Defaulting to OpenAPI 3.0 Parser.");return new s}}var i={__esModule:true};i.OpenApiParserFactory=p;return i});
1
+ sap.ui.define(["./parsers/OpenApi2Parser","./parsers/OpenApi3Parser","../utils/Logger"],function(e,r,n){"use strict";const t=e["OpenApi2Parser"];const s=r["OpenApi3Parser"];const a=n["Logger"];class p{static getParser(e){if(!e||typeof e!=="object"){a.error("[MetaUI OpenApiParserFactory] Invalid OpenAPI document provided.");return new s}const r=e;if(r.swagger==="2.0"){return new t}if(r.openapi&&typeof r.openapi==="string"&&r.openapi.startsWith("3")){return new s}a.warn("[MetaUI OpenApiParserFactory] Unable to strictly determine OpenAPI version. Defaulting to OpenAPI 3.0 Parser.");return new s}}var i={__esModule:true};i.OpenApiParserFactory=p;return i});
2
2
  //# sourceMappingURL=OpenApiParserFactory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OpenApiParserFactory.js","names":["OpenApi2Parser","___parsers_OpenApi2Parser","OpenApi3Parser","___parsers_OpenApi3Parser","Logger","___utils_Logger","OpenApiParserFactory","getParser","rawSchema","error","swagger","openapi","startsWith","warn","__exports","__esModule"],"sources":["OpenApiParserFactory.ts"],"sourcesContent":["/**\n * @file OpenApiParserFactory.ts\n * @description Factory class to determine and instantiate the correct Swagger parser version.\n */\n\nimport { IOpenApiParserPlugin } from \"./interfaces/IOpenApiParserPlugin\";\nimport { OpenApi2Parser } from \"./parsers/OpenApi2Parser\";\nimport { OpenApi3Parser } from \"./parsers/OpenApi3Parser\";\nimport { Logger } from \"../utils/Logger\";\n\n/**\n * Factory class responsible for analyzing a raw OpenAPI document's metadata to dynamically \n * instantiate the correct, version-specific parser plugin. This isolates structural version \n * differences from the primary Engine orchestration layer.\n * \n * @public\n */\nexport class OpenApiParserFactory {\n /**\n * Inspects the root level structural signatures of an OpenAPI document (e.g., `swagger: \"2.0\"` \n * vs `openapi: \"3.x\"`) to instantiate the appropriate parsing engine.\n * \n * @param {any} rawSchema The raw, unparsed OpenAPI root JSON structure.\n * @returns {IOpenApiParserPlugin} An initialized instance of the correct concrete parser plugin.\n */\n public static getParser(rawSchema: unknown): IOpenApiParserPlugin {\n if (!rawSchema || typeof rawSchema !== \"object\") {\n Logger.error(\"[MetaUI OpenApiParserFactory] Invalid OpenAPI document provided.\");\n return new OpenApi3Parser(); // Fallback\n }\n\n if (rawSchema.swagger === \"2.0\") {\n return new OpenApi2Parser();\n }\n\n if (rawSchema.openapi && typeof rawSchema.openapi === \"string\" && rawSchema.openapi.startsWith(\"3\")) {\n return new OpenApi3Parser();\n }\n\n Logger.warn(\"[MetaUI OpenApiParserFactory] Unable to strictly determine OpenAPI version. Defaulting to OpenAPI 3.0 Parser.\");\n return new OpenApi3Parser();\n }\n}\n"],"mappings":"qHAAA,MAMSA,EAAcC,EAAA,wBACdC,EAAcC,EAAA,wBACdC,EAAMC,EAAA,UASR,MAAMC,EAQT,gBAAcC,CAAUC,GACpB,IAAKA,UAAoBA,IAAc,SAAU,CAC7CJ,EAAOK,MAAM,oEACb,OAAO,IAAIP,CACf,CAEA,GAAIM,EAAUE,UAAY,MAAO,CAC7B,OAAO,IAAIV,CACf,CAEA,GAAIQ,EAAUG,gBAAkBH,EAAUG,UAAY,UAAYH,EAAUG,QAAQC,WAAW,KAAM,CACjG,OAAO,IAAIV,CACf,CAEAE,EAAOS,KAAK,iHACZ,OAAO,IAAIX,CACf,EACH,IAAAY,EAAA,CAAAC,WAAA,MAAAD,EAAAR,uBAAA,OAAAQ,CAAA","ignoreList":[]}
1
+ {"version":3,"file":"OpenApiParserFactory.js","names":["OpenApi2Parser","___parsers_OpenApi2Parser","OpenApi3Parser","___parsers_OpenApi3Parser","Logger","___utils_Logger","OpenApiParserFactory","getParser","rawSchema","error","schema","swagger","openapi","startsWith","warn","__exports","__esModule"],"sources":["OpenApiParserFactory.ts"],"sourcesContent":["/**\n * @file OpenApiParserFactory.ts\n * @description Factory class to determine and instantiate the correct Swagger parser version.\n */\n\nimport { IOpenApiParserPlugin } from \"./interfaces/IOpenApiParserPlugin\";\nimport { OpenApi2Parser } from \"./parsers/OpenApi2Parser\";\nimport { OpenApi3Parser } from \"./parsers/OpenApi3Parser\";\nimport { Logger } from \"../utils/Logger\";\n\n/**\n * Factory class responsible for analyzing a raw OpenAPI document's metadata to dynamically \n * instantiate the correct, version-specific parser plugin. This isolates structural version \n * differences from the primary Engine orchestration layer.\n * \n * @public\n */\nexport class OpenApiParserFactory {\n /**\n * Inspects the root level structural signatures of an OpenAPI document (e.g., `swagger: \"2.0\"` \n * vs `openapi: \"3.x\"`) to instantiate the appropriate parsing engine.\n * \n * @param {any} rawSchema The raw, unparsed OpenAPI root JSON structure.\n * @returns {IOpenApiParserPlugin} An initialized instance of the correct concrete parser plugin.\n */\n public static getParser(rawSchema: unknown): IOpenApiParserPlugin {\n if (!rawSchema || typeof rawSchema !== \"object\") {\n Logger.error(\"[MetaUI OpenApiParserFactory] Invalid OpenAPI document provided.\");\n return new OpenApi3Parser(); // Fallback\n }\n\n const schema = rawSchema as Record<string, unknown>;\n if (schema.swagger === \"2.0\") {\n return new OpenApi2Parser();\n }\n\n if (schema.openapi && typeof schema.openapi === \"string\" && schema.openapi.startsWith(\"3\")) {\n return new OpenApi3Parser();\n }\n\n Logger.warn(\"[MetaUI OpenApiParserFactory] Unable to strictly determine OpenAPI version. Defaulting to OpenAPI 3.0 Parser.\");\n return new OpenApi3Parser();\n }\n}\n"],"mappings":"qHAAA,MAMSA,EAAcC,EAAA,wBACdC,EAAcC,EAAA,wBACdC,EAAMC,EAAA,UASR,MAAMC,EAQT,gBAAcC,CAAUC,GACpB,IAAKA,UAAoBA,IAAc,SAAU,CAC7CJ,EAAOK,MAAM,oEACb,OAAO,IAAIP,CACf,CAEA,MAAMQ,EAASF,EACf,GAAIE,EAAOC,UAAY,MAAO,CAC1B,OAAO,IAAIX,CACf,CAEA,GAAIU,EAAOE,gBAAkBF,EAAOE,UAAY,UAAYF,EAAOE,QAAQC,WAAW,KAAM,CACxF,OAAO,IAAIX,CACf,CAEAE,EAAOU,KAAK,iHACZ,OAAO,IAAIZ,CACf,EACH,IAAAa,EAAA,CAAAC,WAAA,MAAAD,EAAAT,uBAAA,OAAAS,CAAA","ignoreList":[]}
@@ -29,11 +29,12 @@ export class OpenApiParserFactory {
29
29
  return new OpenApi3Parser(); // Fallback
30
30
  }
31
31
 
32
- if (rawSchema.swagger === "2.0") {
32
+ const schema = rawSchema as Record<string, unknown>;
33
+ if (schema.swagger === "2.0") {
33
34
  return new OpenApi2Parser();
34
35
  }
35
36
 
36
- if (rawSchema.openapi && typeof rawSchema.openapi === "string" && rawSchema.openapi.startsWith("3")) {
37
+ if (schema.openapi && typeof schema.openapi === "string" && schema.openapi.startsWith("3")) {
37
38
  return new OpenApi3Parser();
38
39
  }
39
40
 
@@ -1 +1 @@
1
- {"version":3,"file":"OpenApiRefResolver-dbg.js","names":["Logger","___utils_Logger","OpenApiRefResolver","resolve","refUrl","openApiRoot","depth","startsWith","debug","error","pathSegments","substring","split","current","segment","$ref","__exports","__esModule"],"sources":["OpenApiRefResolver.ts"],"sourcesContent":["/**\n * @file OpenApiRefResolver.ts\n * @description Utility class for resolving local $ref pointers within an OpenAPI document.\n */\nimport { Logger } from \"../utils/Logger\";\n\n/**\n * Utility class for resolving local $ref pointers within an OpenAPI document.\n * \n * @public\n */\nexport class OpenApiRefResolver {\n /**\n * Recursively traverses a local JSON Pointer $ref path (e.g., '#/components/schemas/Pet')\n * and extracts the target object from the Swagger root document.\n * External URLs or invalid references are safely ignored.\n * \n * @param {string} refUrl The $ref string path.\n * @param {any} openApiRoot The root OpenAPI document to query against.\n * @param {number} depth The current recursive depth count, used to prevent infinite loops.\n * @returns {any} The resolved schema object, or null if unresolvable.\n */\n public static resolve(refUrl: string, openApiRoot: unknown, depth: number = 0): unknown {\n if (!refUrl || !refUrl.startsWith(\"#/\")) {\n Logger.debug(`[MetaUI OpenApiBuilder] Ignoring non-local or empty $ref: ${refUrl}`, \"OpenApiBuilder\");\n return null; // Ignore external URLs per architectural rules\n }\n\n // Circular Reference Limit:\n // A hard limit is enforced to prevent stack overflow exceptions caused by infinitely \n // recursive structures (e.g., a Tree node that references another Tree node).\n if (depth > 10) {\n Logger.error(`[MetaUI OpenApiBuilder] Circular or overly deep $ref detected: ${refUrl}`, null, \"OpenApiBuilder\");\n return null;\n }\n\n // Path Segment Parsing:\n // The '#/' prefix is stripped, and the remaining path is split by '/'.\n // We incrementally descend into the swagger root using these segments.\n const pathSegments = refUrl.substring(2).split(\"/\");\n let current = openApiRoot;\n\n for (const segment of pathSegments) {\n if (current && typeof current === \"object\" && segment in current) {\n current = current[segment];\n } else {\n Logger.error(`[MetaUI OpenApiBuilder] Failed to resolve local $ref: ${refUrl}`, null, \"OpenApiBuilder\");\n return null;\n }\n }\n\n // Deep Resolution Recursion:\n // If the resolved target is itself a reference pointer, recursively resolve again\n // until we reach a terminal structure or hit the recursion depth limit.\n if (current && typeof current === \"object\" && current.$ref) {\n return this.resolve(current.$ref, openApiRoot, depth + 1);\n }\n\n return current;\n }\n}\n"],"mappings":";;;EAAA;AACA;AACA;AACA;EAHA,MAISA,MAAM,GAAAC,eAAA;EAEf;AACA;AACA;AACA;AACA;EACO,MAAMC,kBAAkB,CAAC;IAC5B;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACI,OAAcC,OAAOA,CAACC,MAAc,EAAEC,WAAoB,EAAEC,KAAa,GAAG,CAAC,EAAW;MACpF,IAAI,CAACF,MAAM,IAAI,CAACA,MAAM,CAACG,UAAU,CAAC,IAAI,CAAC,EAAE;QACrCP,MAAM,CAACQ,KAAK,CAAC,6DAA6DJ,MAAM,EAAE,EAAE,gBAAgB,CAAC;QACrG,OAAO,IAAI,CAAC,CAAC;MACjB;;MAEA;MACA;MACA;MACA,IAAIE,KAAK,GAAG,EAAE,EAAE;QACZN,MAAM,CAACS,KAAK,CAAC,kEAAkEL,MAAM,EAAE,EAAE,IAAI,EAAE,gBAAgB,CAAC;QAChH,OAAO,IAAI;MACf;;MAEA;MACA;MACA;MACA,MAAMM,YAAY,GAAGN,MAAM,CAACO,SAAS,CAAC,CAAC,CAAC,CAACC,KAAK,CAAC,GAAG,CAAC;MACnD,IAAIC,OAAO,GAAGR,WAAW;MAEzB,KAAK,MAAMS,OAAO,IAAIJ,YAAY,EAAE;QAChC,IAAIG,OAAO,IAAI,OAAOA,OAAO,KAAK,QAAQ,IAAIC,OAAO,IAAID,OAAO,EAAE;UAC9DA,OAAO,GAAGA,OAAO,CAACC,OAAO,CAAC;QAC9B,CAAC,MAAM;UACHd,MAAM,CAACS,KAAK,CAAC,yDAAyDL,MAAM,EAAE,EAAE,IAAI,EAAE,gBAAgB,CAAC;UACvG,OAAO,IAAI;QACf;MACJ;;MAEA;MACA;MACA;MACA,IAAIS,OAAO,IAAI,OAAOA,OAAO,KAAK,QAAQ,IAAIA,OAAO,CAACE,IAAI,EAAE;QACxD,OAAO,IAAI,CAACZ,OAAO,CAACU,OAAO,CAACE,IAAI,EAAEV,WAAW,EAAEC,KAAK,GAAG,CAAC,CAAC;MAC7D;MAEA,OAAOO,OAAO;IAClB;EACJ;EAAC,IAAAG,SAAA;IAAAC,UAAA;EAAA;EAAAD,SAAA,CAAAd,kBAAA,GAAAA,kBAAA;EAAA,OAAAc,SAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"OpenApiRefResolver-dbg.js","names":["Logger","___utils_Logger","OpenApiRefResolver","resolve","refUrl","openApiRoot","depth","startsWith","debug","error","pathSegments","substring","split","current","segment","$ref","__exports","__esModule"],"sources":["OpenApiRefResolver.ts"],"sourcesContent":["/**\n * @file OpenApiRefResolver.ts\n * @description Utility class for resolving local $ref pointers within an OpenAPI document.\n */\nimport { Logger } from \"../utils/Logger\";\n\n/**\n * Utility class for resolving local $ref pointers within an OpenAPI document.\n * \n * @public\n */\nexport class OpenApiRefResolver {\n /**\n * Recursively traverses a local JSON Pointer $ref path (e.g., '#/components/schemas/Pet')\n * and extracts the target object from the Swagger root document.\n * External URLs or invalid references are safely ignored.\n * \n * @param {string} refUrl The $ref string path.\n * @param {any} openApiRoot The root OpenAPI document to query against.\n * @param {number} depth The current recursive depth count, used to prevent infinite loops.\n * @returns {any} The resolved schema object, or null if unresolvable.\n */\n public static resolve(refUrl: string, openApiRoot: unknown, depth: number = 0): unknown {\n if (!refUrl || !refUrl.startsWith(\"#/\")) {\n Logger.debug(`[MetaUI OpenApiBuilder] Ignoring non-local or empty $ref: ${refUrl}`, \"OpenApiBuilder\");\n return null; // Ignore external URLs per architectural rules\n }\n\n // Circular Reference Limit:\n // A hard limit is enforced to prevent stack overflow exceptions caused by infinitely \n // recursive structures (e.g., a Tree node that references another Tree node).\n if (depth > 10) {\n Logger.error(`[MetaUI OpenApiBuilder] Circular or overly deep $ref detected: ${refUrl}`, null, \"OpenApiBuilder\");\n return null;\n }\n\n // Path Segment Parsing:\n // The '#/' prefix is stripped, and the remaining path is split by '/'.\n // We incrementally descend into the swagger root using these segments.\n const pathSegments = refUrl.substring(2).split(\"/\");\n let current = openApiRoot;\n\n for (const segment of pathSegments) {\n if (current && typeof current === \"object\" && segment in current) {\n current = (current as Record<string, unknown>)[segment];\n } else {\n Logger.error(`[MetaUI OpenApiBuilder] Failed to resolve local $ref: ${refUrl}`, null, \"OpenApiBuilder\");\n return null;\n }\n }\n\n // Deep Resolution Recursion:\n // If the resolved target is itself a reference pointer, recursively resolve again\n // until we reach a terminal structure or hit the recursion depth limit.\n if (current && typeof current === \"object\" && (current as Record<string, unknown>).$ref) {\n return this.resolve((current as Record<string, unknown>).$ref as string, openApiRoot, depth + 1);\n }\n\n return current;\n }\n}\n"],"mappings":";;;EAAA;AACA;AACA;AACA;EAHA,MAISA,MAAM,GAAAC,eAAA;EAEf;AACA;AACA;AACA;AACA;EACO,MAAMC,kBAAkB,CAAC;IAC5B;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACI,OAAcC,OAAOA,CAACC,MAAc,EAAEC,WAAoB,EAAEC,KAAa,GAAG,CAAC,EAAW;MACpF,IAAI,CAACF,MAAM,IAAI,CAACA,MAAM,CAACG,UAAU,CAAC,IAAI,CAAC,EAAE;QACrCP,MAAM,CAACQ,KAAK,CAAC,6DAA6DJ,MAAM,EAAE,EAAE,gBAAgB,CAAC;QACrG,OAAO,IAAI,CAAC,CAAC;MACjB;;MAEA;MACA;MACA;MACA,IAAIE,KAAK,GAAG,EAAE,EAAE;QACZN,MAAM,CAACS,KAAK,CAAC,kEAAkEL,MAAM,EAAE,EAAE,IAAI,EAAE,gBAAgB,CAAC;QAChH,OAAO,IAAI;MACf;;MAEA;MACA;MACA;MACA,MAAMM,YAAY,GAAGN,MAAM,CAACO,SAAS,CAAC,CAAC,CAAC,CAACC,KAAK,CAAC,GAAG,CAAC;MACnD,IAAIC,OAAO,GAAGR,WAAW;MAEzB,KAAK,MAAMS,OAAO,IAAIJ,YAAY,EAAE;QAChC,IAAIG,OAAO,IAAI,OAAOA,OAAO,KAAK,QAAQ,IAAIC,OAAO,IAAID,OAAO,EAAE;UAC9DA,OAAO,GAAIA,OAAO,CAA6BC,OAAO,CAAC;QAC3D,CAAC,MAAM;UACHd,MAAM,CAACS,KAAK,CAAC,yDAAyDL,MAAM,EAAE,EAAE,IAAI,EAAE,gBAAgB,CAAC;UACvG,OAAO,IAAI;QACf;MACJ;;MAEA;MACA;MACA;MACA,IAAIS,OAAO,IAAI,OAAOA,OAAO,KAAK,QAAQ,IAAKA,OAAO,CAA6BE,IAAI,EAAE;QACrF,OAAO,IAAI,CAACZ,OAAO,CAAEU,OAAO,CAA6BE,IAAI,EAAYV,WAAW,EAAEC,KAAK,GAAG,CAAC,CAAC;MACpG;MAEA,OAAOO,OAAO;IAClB;EACJ;EAAC,IAAAG,SAAA;IAAAC,UAAA;EAAA;EAAAD,SAAA,CAAAd,kBAAA,GAAAA,kBAAA;EAAA,OAAAc,SAAA;AAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"OpenApiRefResolver.js","names":["Logger","___utils_Logger","OpenApiRefResolver","resolve","refUrl","openApiRoot","depth","startsWith","debug","error","pathSegments","substring","split","current","segment","$ref","this","__exports","__esModule"],"sources":["OpenApiRefResolver.ts"],"sourcesContent":["/**\n * @file OpenApiRefResolver.ts\n * @description Utility class for resolving local $ref pointers within an OpenAPI document.\n */\nimport { Logger } from \"../utils/Logger\";\n\n/**\n * Utility class for resolving local $ref pointers within an OpenAPI document.\n * \n * @public\n */\nexport class OpenApiRefResolver {\n /**\n * Recursively traverses a local JSON Pointer $ref path (e.g., '#/components/schemas/Pet')\n * and extracts the target object from the Swagger root document.\n * External URLs or invalid references are safely ignored.\n * \n * @param {string} refUrl The $ref string path.\n * @param {any} openApiRoot The root OpenAPI document to query against.\n * @param {number} depth The current recursive depth count, used to prevent infinite loops.\n * @returns {any} The resolved schema object, or null if unresolvable.\n */\n public static resolve(refUrl: string, openApiRoot: unknown, depth: number = 0): unknown {\n if (!refUrl || !refUrl.startsWith(\"#/\")) {\n Logger.debug(`[MetaUI OpenApiBuilder] Ignoring non-local or empty $ref: ${refUrl}`, \"OpenApiBuilder\");\n return null; // Ignore external URLs per architectural rules\n }\n\n // Circular Reference Limit:\n // A hard limit is enforced to prevent stack overflow exceptions caused by infinitely \n // recursive structures (e.g., a Tree node that references another Tree node).\n if (depth > 10) {\n Logger.error(`[MetaUI OpenApiBuilder] Circular or overly deep $ref detected: ${refUrl}`, null, \"OpenApiBuilder\");\n return null;\n }\n\n // Path Segment Parsing:\n // The '#/' prefix is stripped, and the remaining path is split by '/'.\n // We incrementally descend into the swagger root using these segments.\n const pathSegments = refUrl.substring(2).split(\"/\");\n let current = openApiRoot;\n\n for (const segment of pathSegments) {\n if (current && typeof current === \"object\" && segment in current) {\n current = current[segment];\n } else {\n Logger.error(`[MetaUI OpenApiBuilder] Failed to resolve local $ref: ${refUrl}`, null, \"OpenApiBuilder\");\n return null;\n }\n }\n\n // Deep Resolution Recursion:\n // If the resolved target is itself a reference pointer, recursively resolve again\n // until we reach a terminal structure or hit the recursion depth limit.\n if (current && typeof current === \"object\" && current.$ref) {\n return this.resolve(current.$ref, openApiRoot, depth + 1);\n }\n\n return current;\n }\n}\n"],"mappings":"2DAAA,MAISA,EAAMC,EAAA,UAOR,MAAMC,EAWT,cAAcC,CAAQC,EAAgBC,EAAsBC,EAAgB,GACxE,IAAKF,IAAWA,EAAOG,WAAW,MAAO,CACrCP,EAAOQ,MAAM,6DAA6DJ,IAAU,kBACpF,OAAO,IACX,CAKA,GAAIE,EAAQ,GAAI,CACZN,EAAOS,MAAM,kEAAkEL,IAAU,KAAM,kBAC/F,OAAO,IACX,CAKA,MAAMM,EAAeN,EAAOO,UAAU,GAAGC,MAAM,KAC/C,IAAIC,EAAUR,EAEd,IAAK,MAAMS,KAAWJ,EAAc,CAChC,GAAIG,UAAkBA,IAAY,UAAYC,KAAWD,EAAS,CAC9DA,EAAUA,EAAQC,EACtB,KAAO,CACHd,EAAOS,MAAM,yDAAyDL,IAAU,KAAM,kBACtF,OAAO,IACX,CACJ,CAKA,GAAIS,UAAkBA,IAAY,UAAYA,EAAQE,KAAM,CACxD,OAAOC,KAAKb,QAAQU,EAAQE,KAAMV,EAAaC,EAAQ,EAC3D,CAEA,OAAOO,CACX,EACH,IAAAI,EAAA,CAAAC,WAAA,MAAAD,EAAAf,qBAAA,OAAAe,CAAA","ignoreList":[]}
1
+ {"version":3,"file":"OpenApiRefResolver.js","names":["Logger","___utils_Logger","OpenApiRefResolver","resolve","refUrl","openApiRoot","depth","startsWith","debug","error","pathSegments","substring","split","current","segment","$ref","this","__exports","__esModule"],"sources":["OpenApiRefResolver.ts"],"sourcesContent":["/**\n * @file OpenApiRefResolver.ts\n * @description Utility class for resolving local $ref pointers within an OpenAPI document.\n */\nimport { Logger } from \"../utils/Logger\";\n\n/**\n * Utility class for resolving local $ref pointers within an OpenAPI document.\n * \n * @public\n */\nexport class OpenApiRefResolver {\n /**\n * Recursively traverses a local JSON Pointer $ref path (e.g., '#/components/schemas/Pet')\n * and extracts the target object from the Swagger root document.\n * External URLs or invalid references are safely ignored.\n * \n * @param {string} refUrl The $ref string path.\n * @param {any} openApiRoot The root OpenAPI document to query against.\n * @param {number} depth The current recursive depth count, used to prevent infinite loops.\n * @returns {any} The resolved schema object, or null if unresolvable.\n */\n public static resolve(refUrl: string, openApiRoot: unknown, depth: number = 0): unknown {\n if (!refUrl || !refUrl.startsWith(\"#/\")) {\n Logger.debug(`[MetaUI OpenApiBuilder] Ignoring non-local or empty $ref: ${refUrl}`, \"OpenApiBuilder\");\n return null; // Ignore external URLs per architectural rules\n }\n\n // Circular Reference Limit:\n // A hard limit is enforced to prevent stack overflow exceptions caused by infinitely \n // recursive structures (e.g., a Tree node that references another Tree node).\n if (depth > 10) {\n Logger.error(`[MetaUI OpenApiBuilder] Circular or overly deep $ref detected: ${refUrl}`, null, \"OpenApiBuilder\");\n return null;\n }\n\n // Path Segment Parsing:\n // The '#/' prefix is stripped, and the remaining path is split by '/'.\n // We incrementally descend into the swagger root using these segments.\n const pathSegments = refUrl.substring(2).split(\"/\");\n let current = openApiRoot;\n\n for (const segment of pathSegments) {\n if (current && typeof current === \"object\" && segment in current) {\n current = (current as Record<string, unknown>)[segment];\n } else {\n Logger.error(`[MetaUI OpenApiBuilder] Failed to resolve local $ref: ${refUrl}`, null, \"OpenApiBuilder\");\n return null;\n }\n }\n\n // Deep Resolution Recursion:\n // If the resolved target is itself a reference pointer, recursively resolve again\n // until we reach a terminal structure or hit the recursion depth limit.\n if (current && typeof current === \"object\" && (current as Record<string, unknown>).$ref) {\n return this.resolve((current as Record<string, unknown>).$ref as string, openApiRoot, depth + 1);\n }\n\n return current;\n }\n}\n"],"mappings":"2DAAA,MAISA,EAAMC,EAAA,UAOR,MAAMC,EAWT,cAAcC,CAAQC,EAAgBC,EAAsBC,EAAgB,GACxE,IAAKF,IAAWA,EAAOG,WAAW,MAAO,CACrCP,EAAOQ,MAAM,6DAA6DJ,IAAU,kBACpF,OAAO,IACX,CAKA,GAAIE,EAAQ,GAAI,CACZN,EAAOS,MAAM,kEAAkEL,IAAU,KAAM,kBAC/F,OAAO,IACX,CAKA,MAAMM,EAAeN,EAAOO,UAAU,GAAGC,MAAM,KAC/C,IAAIC,EAAUR,EAEd,IAAK,MAAMS,KAAWJ,EAAc,CAChC,GAAIG,UAAkBA,IAAY,UAAYC,KAAWD,EAAS,CAC9DA,EAAWA,EAAoCC,EACnD,KAAO,CACHd,EAAOS,MAAM,yDAAyDL,IAAU,KAAM,kBACtF,OAAO,IACX,CACJ,CAKA,GAAIS,UAAkBA,IAAY,UAAaA,EAAoCE,KAAM,CACrF,OAAOC,KAAKb,QAASU,EAAoCE,KAAgBV,EAAaC,EAAQ,EAClG,CAEA,OAAOO,CACX,EACH,IAAAI,EAAA,CAAAC,WAAA,MAAAD,EAAAf,qBAAA,OAAAe,CAAA","ignoreList":[]}
@@ -42,7 +42,7 @@ export class OpenApiRefResolver {
42
42
 
43
43
  for (const segment of pathSegments) {
44
44
  if (current && typeof current === "object" && segment in current) {
45
- current = current[segment];
45
+ current = (current as Record<string, unknown>)[segment];
46
46
  } else {
47
47
  Logger.error(`[MetaUI OpenApiBuilder] Failed to resolve local $ref: ${refUrl}`, null, "OpenApiBuilder");
48
48
  return null;
@@ -52,8 +52,8 @@ export class OpenApiRefResolver {
52
52
  // Deep Resolution Recursion:
53
53
  // If the resolved target is itself a reference pointer, recursively resolve again
54
54
  // until we reach a terminal structure or hit the recursion depth limit.
55
- if (current && typeof current === "object" && current.$ref) {
56
- return this.resolve(current.$ref, openApiRoot, depth + 1);
55
+ if (current && typeof current === "object" && (current as Record<string, unknown>).$ref) {
56
+ return this.resolve((current as Record<string, unknown>).$ref as string, openApiRoot, depth + 1);
57
57
  }
58
58
 
59
59
  return current;
@@ -22,7 +22,8 @@ sap.ui.define([], function () {
22
22
  * @param {string} keyName The technical JSON key of the property.
23
23
  * @returns {IUIDirective} The constructed MetaUI UI orchestration directive.
24
24
  */
25
- static build(swaggerProp, keyName) {
25
+ static build(rawProp, keyName) {
26
+ const swaggerProp = rawProp || {};
26
27
  const ui = {};
27
28
 
28
29
  // Label Synthesis
@@ -1 +1 @@
1
- {"version":3,"file":"OpenApiUIMapper-dbg.js","names":["OpenApiUIMapper","build","swaggerProp","keyName","ui","title","label","generateLabel","readOnly","format","widget","validators","push","name","spaced","replace","split","filter","w","length","map","word","charAt","toUpperCase","slice","toLowerCase","join","trim","__exports","__esModule"],"sources":["OpenApiUIMapper.ts"],"sourcesContent":["/**\n * @file OpenApiUIMapper.ts\n * @description Utility class for mapping OpenAPI properties and formats into MetaUI IUIDirectives.\n */\nimport { IUIDirective } from \"../interfaces/ISchema\";\n\n/**\n * Utility class responsible for evaluating OpenAPI metadata and generating the corresponding \n * MetaUI UI rendering directives. This isolates all visual layout assumptions from the parsing engine.\n * \n * @public\n */\nexport class OpenApiUIMapper {\n /**\n * Evaluates an OpenAPI property definition and constructs a MetaUI IUIDirective block.\n * Extracts labels from title/description, maps readOnly state, and assigns \n * specific UI5 Fiori widgets based on the OpenAPI 'format' property.\n * \n * @param {any} swaggerProp The raw OpenAPI property schema chunk.\n * @param {string} keyName The technical JSON key of the property.\n * @returns {IUIDirective} The constructed MetaUI UI orchestration directive.\n */\n public static build(swaggerProp: unknown, keyName: string): IUIDirective {\n const ui: IUIDirective = {};\n\n // Label Synthesis\n if (swaggerProp.title) {\n ui.label = swaggerProp.title;\n } else {\n ui.label = this.generateLabel(keyName);\n }\n\n // State Mapping\n if (swaggerProp.readOnly === true) {\n ui.readOnly = true;\n }\n\n // Format to Widget Translation\n if (swaggerProp.format) {\n switch (swaggerProp.format) {\n case \"date-time\":\n ui.widget = \"datetime\";\n break;\n case \"date\":\n ui.widget = \"date\";\n break;\n case \"password\":\n ui.widget = \"password\";\n ui.format = \"password\"; // Kept for schema validation\n break;\n case \"email\":\n ui.widget = \"email\";\n ui.format = \"email\"; // Kept for schema validation\n break;\n case \"uri\":\n ui.widget = \"link\";\n ui.format = \"url\"; // Kept for schema validation\n break;\n case \"binary\":\n case \"byte\":\n ui.widget = \"fileUploader\";\n break;\n case \"uuid\":\n case \"ipv4\":\n case \"ipv6\":\n case \"hostname\":\n if (!ui.validators) ui.validators = [];\n ui.validators.push(swaggerProp.format);\n break;\n }\n }\n\n return ui;\n }\n\n /**\n * Synthesizes a human-readable Title Case label from camelCase or snake_case technical keys.\n * \n * @param {string} name The raw technical property key (e.g., 'creationTimestamp').\n * @returns {string} The formatted human-readable label (e.g., 'Creation Timestamp').\n * @private\n */\n private static generateLabel(name: string): string {\n if (!name) return \"\";\n let spaced = name.replace(/([A-Z])/g, \" $1\").replace(/_/g, \" \");\n return spaced.split(' ')\n .filter(w => w.length > 0)\n .map(word => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())\n .join(' ')\n .trim();\n }\n}\n"],"mappings":";;;EAAA;AACA;AACA;AACA;;EAGA;AACA;AACA;AACA;AACA;AACA;EACO,MAAMA,eAAe,CAAC;IACzB;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACI,OAAcC,KAAKA,CAACC,WAAoB,EAAEC,OAAe,EAAgB;MACrE,MAAMC,EAAgB,GAAG,CAAC,CAAC;;MAE3B;MACA,IAAIF,WAAW,CAACG,KAAK,EAAE;QACnBD,EAAE,CAACE,KAAK,GAAGJ,WAAW,CAACG,KAAK;MAChC,CAAC,MAAM;QACHD,EAAE,CAACE,KAAK,GAAG,IAAI,CAACC,aAAa,CAACJ,OAAO,CAAC;MAC1C;;MAEA;MACA,IAAID,WAAW,CAACM,QAAQ,KAAK,IAAI,EAAE;QAC/BJ,EAAE,CAACI,QAAQ,GAAG,IAAI;MACtB;;MAEA;MACA,IAAIN,WAAW,CAACO,MAAM,EAAE;QACpB,QAAQP,WAAW,CAACO,MAAM;UACtB,KAAK,WAAW;YACZL,EAAE,CAACM,MAAM,GAAG,UAAU;YACtB;UACJ,KAAK,MAAM;YACPN,EAAE,CAACM,MAAM,GAAG,MAAM;YAClB;UACJ,KAAK,UAAU;YACXN,EAAE,CAACM,MAAM,GAAG,UAAU;YACtBN,EAAE,CAACK,MAAM,GAAG,UAAU,CAAC,CAAC;YACxB;UACJ,KAAK,OAAO;YACRL,EAAE,CAACM,MAAM,GAAG,OAAO;YACnBN,EAAE,CAACK,MAAM,GAAG,OAAO,CAAC,CAAC;YACrB;UACJ,KAAK,KAAK;YACNL,EAAE,CAACM,MAAM,GAAG,MAAM;YAClBN,EAAE,CAACK,MAAM,GAAG,KAAK,CAAC,CAAC;YACnB;UACJ,KAAK,QAAQ;UACb,KAAK,MAAM;YACPL,EAAE,CAACM,MAAM,GAAG,cAAc;YAC1B;UACJ,KAAK,MAAM;UACX,KAAK,MAAM;UACX,KAAK,MAAM;UACX,KAAK,UAAU;YACX,IAAI,CAACN,EAAE,CAACO,UAAU,EAAEP,EAAE,CAACO,UAAU,GAAG,EAAE;YACtCP,EAAE,CAACO,UAAU,CAACC,IAAI,CAACV,WAAW,CAACO,MAAM,CAAC;YACtC;QACR;MACJ;MAEA,OAAOL,EAAE;IACb;;IAEA;AACJ;AACA;AACA;AACA;AACA;AACA;IACI,OAAeG,aAAaA,CAACM,IAAY,EAAU;MAC/C,IAAI,CAACA,IAAI,EAAE,OAAO,EAAE;MACpB,IAAIC,MAAM,GAAGD,IAAI,CAACE,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAACA,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;MAC/D,OAAOD,MAAM,CAACE,KAAK,CAAC,GAAG,CAAC,CACnBC,MAAM,CAACC,CAAC,IAAIA,CAAC,CAACC,MAAM,GAAG,CAAC,CAAC,CACzBC,GAAG,CAACC,IAAI,IAAIA,IAAI,CAACC,MAAM,CAAC,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC,GAAGF,IAAI,CAACG,KAAK,CAAC,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC,CAAC,CACvEC,IAAI,CAAC,GAAG,CAAC,CACTC,IAAI,CAAC,CAAC;IACf;EACJ;EAAC,IAAAC,SAAA;IAAAC,UAAA;EAAA;EAAAD,SAAA,CAAA5B,eAAA,GAAAA,eAAA;EAAA,OAAA4B,SAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"OpenApiUIMapper-dbg.js","names":["OpenApiUIMapper","build","rawProp","keyName","swaggerProp","ui","title","label","generateLabel","readOnly","format","widget","validators","push","name","spaced","replace","split","filter","w","length","map","word","charAt","toUpperCase","slice","toLowerCase","join","trim","__exports","__esModule"],"sources":["OpenApiUIMapper.ts"],"sourcesContent":["/**\n * @file OpenApiUIMapper.ts\n * @description Utility class for mapping OpenAPI properties and formats into MetaUI IUIDirectives.\n */\nimport { IUIDirective } from \"../interfaces/ISchema\";\n\n/**\n * Utility class responsible for evaluating OpenAPI metadata and generating the corresponding \n * MetaUI UI rendering directives. This isolates all visual layout assumptions from the parsing engine.\n * \n * @public\n */\nexport class OpenApiUIMapper {\n /**\n * Evaluates an OpenAPI property definition and constructs a MetaUI IUIDirective block.\n * Extracts labels from title/description, maps readOnly state, and assigns \n * specific UI5 Fiori widgets based on the OpenAPI 'format' property.\n * \n * @param {any} swaggerProp The raw OpenAPI property schema chunk.\n * @param {string} keyName The technical JSON key of the property.\n * @returns {IUIDirective} The constructed MetaUI UI orchestration directive.\n */\n public static build(rawProp: unknown, keyName: string): IUIDirective {\n const swaggerProp = (rawProp || {}) as Record<string, unknown>;\n const ui: IUIDirective = {};\n\n // Label Synthesis\n if (swaggerProp.title) {\n ui.label = swaggerProp.title as string;\n } else {\n ui.label = this.generateLabel(keyName);\n }\n\n // State Mapping\n if (swaggerProp.readOnly === true) {\n ui.readOnly = true;\n }\n\n // Format to Widget Translation\n if (swaggerProp.format) {\n switch (swaggerProp.format) {\n case \"date-time\":\n ui.widget = \"datetime\";\n break;\n case \"date\":\n ui.widget = \"date\";\n break;\n case \"password\":\n ui.widget = \"password\";\n ui.format = \"password\"; // Kept for schema validation\n break;\n case \"email\":\n ui.widget = \"email\";\n ui.format = \"email\"; // Kept for schema validation\n break;\n case \"uri\":\n ui.widget = \"link\";\n ui.format = \"url\"; // Kept for schema validation\n break;\n case \"binary\":\n case \"byte\":\n ui.widget = \"fileUploader\";\n break;\n case \"uuid\":\n case \"ipv4\":\n case \"ipv6\":\n case \"hostname\":\n if (!ui.validators) ui.validators = [];\n ui.validators.push(swaggerProp.format as string);\n break;\n }\n }\n\n return ui;\n }\n\n /**\n * Synthesizes a human-readable Title Case label from camelCase or snake_case technical keys.\n * \n * @param {string} name The raw technical property key (e.g., 'creationTimestamp').\n * @returns {string} The formatted human-readable label (e.g., 'Creation Timestamp').\n * @private\n */\n private static generateLabel(name: string): string {\n if (!name) return \"\";\n let spaced = name.replace(/([A-Z])/g, \" $1\").replace(/_/g, \" \");\n return spaced.split(' ')\n .filter(w => w.length > 0)\n .map(word => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())\n .join(' ')\n .trim();\n }\n}\n"],"mappings":";;;EAAA;AACA;AACA;AACA;;EAGA;AACA;AACA;AACA;AACA;AACA;EACO,MAAMA,eAAe,CAAC;IACzB;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACI,OAAcC,KAAKA,CAACC,OAAgB,EAAEC,OAAe,EAAgB;MACjE,MAAMC,WAAW,GAAIF,OAAO,IAAI,CAAC,CAA6B;MAC9D,MAAMG,EAAgB,GAAG,CAAC,CAAC;;MAE3B;MACA,IAAID,WAAW,CAACE,KAAK,EAAE;QACnBD,EAAE,CAACE,KAAK,GAAGH,WAAW,CAACE,KAAe;MAC1C,CAAC,MAAM;QACHD,EAAE,CAACE,KAAK,GAAG,IAAI,CAACC,aAAa,CAACL,OAAO,CAAC;MAC1C;;MAEA;MACA,IAAIC,WAAW,CAACK,QAAQ,KAAK,IAAI,EAAE;QAC/BJ,EAAE,CAACI,QAAQ,GAAG,IAAI;MACtB;;MAEA;MACA,IAAIL,WAAW,CAACM,MAAM,EAAE;QACpB,QAAQN,WAAW,CAACM,MAAM;UACtB,KAAK,WAAW;YACZL,EAAE,CAACM,MAAM,GAAG,UAAU;YACtB;UACJ,KAAK,MAAM;YACPN,EAAE,CAACM,MAAM,GAAG,MAAM;YAClB;UACJ,KAAK,UAAU;YACXN,EAAE,CAACM,MAAM,GAAG,UAAU;YACtBN,EAAE,CAACK,MAAM,GAAG,UAAU,CAAC,CAAC;YACxB;UACJ,KAAK,OAAO;YACRL,EAAE,CAACM,MAAM,GAAG,OAAO;YACnBN,EAAE,CAACK,MAAM,GAAG,OAAO,CAAC,CAAC;YACrB;UACJ,KAAK,KAAK;YACNL,EAAE,CAACM,MAAM,GAAG,MAAM;YAClBN,EAAE,CAACK,MAAM,GAAG,KAAK,CAAC,CAAC;YACnB;UACJ,KAAK,QAAQ;UACb,KAAK,MAAM;YACPL,EAAE,CAACM,MAAM,GAAG,cAAc;YAC1B;UACJ,KAAK,MAAM;UACX,KAAK,MAAM;UACX,KAAK,MAAM;UACX,KAAK,UAAU;YACX,IAAI,CAACN,EAAE,CAACO,UAAU,EAAEP,EAAE,CAACO,UAAU,GAAG,EAAE;YACtCP,EAAE,CAACO,UAAU,CAACC,IAAI,CAACT,WAAW,CAACM,MAAgB,CAAC;YAChD;QACR;MACJ;MAEA,OAAOL,EAAE;IACb;;IAEA;AACJ;AACA;AACA;AACA;AACA;AACA;IACI,OAAeG,aAAaA,CAACM,IAAY,EAAU;MAC/C,IAAI,CAACA,IAAI,EAAE,OAAO,EAAE;MACpB,IAAIC,MAAM,GAAGD,IAAI,CAACE,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAACA,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;MAC/D,OAAOD,MAAM,CAACE,KAAK,CAAC,GAAG,CAAC,CACnBC,MAAM,CAACC,CAAC,IAAIA,CAAC,CAACC,MAAM,GAAG,CAAC,CAAC,CACzBC,GAAG,CAACC,IAAI,IAAIA,IAAI,CAACC,MAAM,CAAC,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC,GAAGF,IAAI,CAACG,KAAK,CAAC,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC,CAAC,CACvEC,IAAI,CAAC,GAAG,CAAC,CACTC,IAAI,CAAC,CAAC;IACf;EACJ;EAAC,IAAAC,SAAA;IAAAC,UAAA;EAAA;EAAAD,SAAA,CAAA7B,eAAA,GAAAA,eAAA;EAAA,OAAA6B,SAAA;AAAA","ignoreList":[]}
@@ -20,7 +20,7 @@ declare module "nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper" {
20
20
  * @param {string} keyName The technical JSON key of the property.
21
21
  * @returns {IUIDirective} The constructed MetaUI UI orchestration directive.
22
22
  */
23
- static build(swaggerProp: unknown, keyName: string): IUIDirective;
23
+ static build(rawProp: unknown, keyName: string): IUIDirective;
24
24
  /**
25
25
  * Synthesizes a human-readable Title Case label from camelCase or snake_case technical keys.
26
26
  *
@@ -1 +1 @@
1
- {"version":3,"file":"OpenApiUIMapper.d.ts","sourceRoot":"../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,oDAAoD,CAAC;IACpE;;;OAGG;IACH,OAAO,EAAE,YAAY,EAAE,MAAM,+CAA+C,CAAC;IAE7E;;;;;OAKG;IACH,MAAa,eAAe;QACxB;;;;;;;;WAQG;eACW,KAAK,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,YAAY;QAqDxE;;;;;;WAMG;QACH,OAAO,CAAC,MAAM,CAAC,aAAa;KAS/B;CAEA"}
1
+ {"version":3,"file":"OpenApiUIMapper.d.ts","sourceRoot":"../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,oDAAoD,CAAC;IACpE;;;OAGG;IACH,OAAO,EAAE,YAAY,EAAE,MAAM,+CAA+C,CAAC;IAE7E;;;;;OAKG;IACH,MAAa,eAAe;QACxB;;;;;;;;WAQG;eACW,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,YAAY;QAsDpE;;;;;;WAMG;QACH,OAAO,CAAC,MAAM,CAAC,aAAa;KAS/B;CAEA"}
@@ -1,2 +1,2 @@
1
- sap.ui.define([],function(){"use strict";class e{static build(e,a){const t={};if(e.title){t.label=e.title}else{t.label=this.generateLabel(a)}if(e.readOnly===true){t.readOnly=true}if(e.format){switch(e.format){case"date-time":t.widget="datetime";break;case"date":t.widget="date";break;case"password":t.widget="password";t.format="password";break;case"email":t.widget="email";t.format="email";break;case"uri":t.widget="link";t.format="url";break;case"binary":case"byte":t.widget="fileUploader";break;case"uuid":case"ipv4":case"ipv6":case"hostname":if(!t.validators)t.validators=[];t.validators.push(e.format);break}}return t}static generateLabel(e){if(!e)return"";let a=e.replace(/([A-Z])/g," $1").replace(/_/g," ");return a.split(" ").filter(e=>e.length>0).map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(" ").trim()}}var a={__esModule:true};a.OpenApiUIMapper=e;return a});
1
+ sap.ui.define([],function(){"use strict";class e{static build(e,a){const t=e||{};const r={};if(t.title){r.label=t.title}else{r.label=this.generateLabel(a)}if(t.readOnly===true){r.readOnly=true}if(t.format){switch(t.format){case"date-time":r.widget="datetime";break;case"date":r.widget="date";break;case"password":r.widget="password";r.format="password";break;case"email":r.widget="email";r.format="email";break;case"uri":r.widget="link";r.format="url";break;case"binary":case"byte":r.widget="fileUploader";break;case"uuid":case"ipv4":case"ipv6":case"hostname":if(!r.validators)r.validators=[];r.validators.push(t.format);break}}return r}static generateLabel(e){if(!e)return"";let a=e.replace(/([A-Z])/g," $1").replace(/_/g," ");return a.split(" ").filter(e=>e.length>0).map(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(" ").trim()}}var a={__esModule:true};a.OpenApiUIMapper=e;return a});
2
2
  //# sourceMappingURL=OpenApiUIMapper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OpenApiUIMapper.js","names":["OpenApiUIMapper","build","swaggerProp","keyName","ui","title","label","this","generateLabel","readOnly","format","widget","validators","push","name","spaced","replace","split","filter","w","length","map","word","charAt","toUpperCase","slice","toLowerCase","join","trim","__exports","__esModule"],"sources":["OpenApiUIMapper.ts"],"sourcesContent":["/**\n * @file OpenApiUIMapper.ts\n * @description Utility class for mapping OpenAPI properties and formats into MetaUI IUIDirectives.\n */\nimport { IUIDirective } from \"../interfaces/ISchema\";\n\n/**\n * Utility class responsible for evaluating OpenAPI metadata and generating the corresponding \n * MetaUI UI rendering directives. This isolates all visual layout assumptions from the parsing engine.\n * \n * @public\n */\nexport class OpenApiUIMapper {\n /**\n * Evaluates an OpenAPI property definition and constructs a MetaUI IUIDirective block.\n * Extracts labels from title/description, maps readOnly state, and assigns \n * specific UI5 Fiori widgets based on the OpenAPI 'format' property.\n * \n * @param {any} swaggerProp The raw OpenAPI property schema chunk.\n * @param {string} keyName The technical JSON key of the property.\n * @returns {IUIDirective} The constructed MetaUI UI orchestration directive.\n */\n public static build(swaggerProp: unknown, keyName: string): IUIDirective {\n const ui: IUIDirective = {};\n\n // Label Synthesis\n if (swaggerProp.title) {\n ui.label = swaggerProp.title;\n } else {\n ui.label = this.generateLabel(keyName);\n }\n\n // State Mapping\n if (swaggerProp.readOnly === true) {\n ui.readOnly = true;\n }\n\n // Format to Widget Translation\n if (swaggerProp.format) {\n switch (swaggerProp.format) {\n case \"date-time\":\n ui.widget = \"datetime\";\n break;\n case \"date\":\n ui.widget = \"date\";\n break;\n case \"password\":\n ui.widget = \"password\";\n ui.format = \"password\"; // Kept for schema validation\n break;\n case \"email\":\n ui.widget = \"email\";\n ui.format = \"email\"; // Kept for schema validation\n break;\n case \"uri\":\n ui.widget = \"link\";\n ui.format = \"url\"; // Kept for schema validation\n break;\n case \"binary\":\n case \"byte\":\n ui.widget = \"fileUploader\";\n break;\n case \"uuid\":\n case \"ipv4\":\n case \"ipv6\":\n case \"hostname\":\n if (!ui.validators) ui.validators = [];\n ui.validators.push(swaggerProp.format);\n break;\n }\n }\n\n return ui;\n }\n\n /**\n * Synthesizes a human-readable Title Case label from camelCase or snake_case technical keys.\n * \n * @param {string} name The raw technical property key (e.g., 'creationTimestamp').\n * @returns {string} The formatted human-readable label (e.g., 'Creation Timestamp').\n * @private\n */\n private static generateLabel(name: string): string {\n if (!name) return \"\";\n let spaced = name.replace(/([A-Z])/g, \" $1\").replace(/_/g, \" \");\n return spaced.split(' ')\n .filter(w => w.length > 0)\n .map(word => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())\n .join(' ')\n .trim();\n }\n}\n"],"mappings":"yCAYO,MAAMA,EAUT,YAAcC,CAAMC,EAAsBC,GACtC,MAAMC,EAAmB,CAAC,EAG1B,GAAIF,EAAYG,MAAO,CACnBD,EAAGE,MAAQJ,EAAYG,KAC3B,KAAO,CACHD,EAAGE,MAAQC,KAAKC,cAAcL,EAClC,CAGA,GAAID,EAAYO,WAAa,KAAM,CAC/BL,EAAGK,SAAW,IAClB,CAGA,GAAIP,EAAYQ,OAAQ,CACpB,OAAQR,EAAYQ,QAChB,IAAK,YACDN,EAAGO,OAAS,WACZ,MACJ,IAAK,OACDP,EAAGO,OAAS,OACZ,MACJ,IAAK,WACDP,EAAGO,OAAS,WACZP,EAAGM,OAAS,WACZ,MACJ,IAAK,QACDN,EAAGO,OAAS,QACZP,EAAGM,OAAS,QACZ,MACJ,IAAK,MACDN,EAAGO,OAAS,OACZP,EAAGM,OAAS,MACZ,MACJ,IAAK,SACL,IAAK,OACDN,EAAGO,OAAS,eACZ,MACJ,IAAK,OACL,IAAK,OACL,IAAK,OACL,IAAK,WACD,IAAKP,EAAGQ,WAAYR,EAAGQ,WAAa,GACpCR,EAAGQ,WAAWC,KAAKX,EAAYQ,QAC/B,MAEZ,CAEA,OAAON,CACX,CASA,oBAAeI,CAAcM,GACzB,IAAKA,EAAM,MAAO,GAClB,IAAIC,EAASD,EAAKE,QAAQ,WAAY,OAAOA,QAAQ,KAAM,KAC3D,OAAOD,EAAOE,MAAM,KACfC,OAAOC,GAAKA,EAAEC,OAAS,GACvBC,IAAIC,GAAQA,EAAKC,OAAO,GAAGC,cAAgBF,EAAKG,MAAM,GAAGC,eACzDC,KAAK,KACLC,MACT,EACH,IAAAC,EAAA,CAAAC,WAAA,MAAAD,EAAA7B,kBAAA,OAAA6B,CAAA","ignoreList":[]}
1
+ {"version":3,"file":"OpenApiUIMapper.js","names":["OpenApiUIMapper","build","rawProp","keyName","swaggerProp","ui","title","label","this","generateLabel","readOnly","format","widget","validators","push","name","spaced","replace","split","filter","w","length","map","word","charAt","toUpperCase","slice","toLowerCase","join","trim","__exports","__esModule"],"sources":["OpenApiUIMapper.ts"],"sourcesContent":["/**\n * @file OpenApiUIMapper.ts\n * @description Utility class for mapping OpenAPI properties and formats into MetaUI IUIDirectives.\n */\nimport { IUIDirective } from \"../interfaces/ISchema\";\n\n/**\n * Utility class responsible for evaluating OpenAPI metadata and generating the corresponding \n * MetaUI UI rendering directives. This isolates all visual layout assumptions from the parsing engine.\n * \n * @public\n */\nexport class OpenApiUIMapper {\n /**\n * Evaluates an OpenAPI property definition and constructs a MetaUI IUIDirective block.\n * Extracts labels from title/description, maps readOnly state, and assigns \n * specific UI5 Fiori widgets based on the OpenAPI 'format' property.\n * \n * @param {any} swaggerProp The raw OpenAPI property schema chunk.\n * @param {string} keyName The technical JSON key of the property.\n * @returns {IUIDirective} The constructed MetaUI UI orchestration directive.\n */\n public static build(rawProp: unknown, keyName: string): IUIDirective {\n const swaggerProp = (rawProp || {}) as Record<string, unknown>;\n const ui: IUIDirective = {};\n\n // Label Synthesis\n if (swaggerProp.title) {\n ui.label = swaggerProp.title as string;\n } else {\n ui.label = this.generateLabel(keyName);\n }\n\n // State Mapping\n if (swaggerProp.readOnly === true) {\n ui.readOnly = true;\n }\n\n // Format to Widget Translation\n if (swaggerProp.format) {\n switch (swaggerProp.format) {\n case \"date-time\":\n ui.widget = \"datetime\";\n break;\n case \"date\":\n ui.widget = \"date\";\n break;\n case \"password\":\n ui.widget = \"password\";\n ui.format = \"password\"; // Kept for schema validation\n break;\n case \"email\":\n ui.widget = \"email\";\n ui.format = \"email\"; // Kept for schema validation\n break;\n case \"uri\":\n ui.widget = \"link\";\n ui.format = \"url\"; // Kept for schema validation\n break;\n case \"binary\":\n case \"byte\":\n ui.widget = \"fileUploader\";\n break;\n case \"uuid\":\n case \"ipv4\":\n case \"ipv6\":\n case \"hostname\":\n if (!ui.validators) ui.validators = [];\n ui.validators.push(swaggerProp.format as string);\n break;\n }\n }\n\n return ui;\n }\n\n /**\n * Synthesizes a human-readable Title Case label from camelCase or snake_case technical keys.\n * \n * @param {string} name The raw technical property key (e.g., 'creationTimestamp').\n * @returns {string} The formatted human-readable label (e.g., 'Creation Timestamp').\n * @private\n */\n private static generateLabel(name: string): string {\n if (!name) return \"\";\n let spaced = name.replace(/([A-Z])/g, \" $1\").replace(/_/g, \" \");\n return spaced.split(' ')\n .filter(w => w.length > 0)\n .map(word => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())\n .join(' ')\n .trim();\n }\n}\n"],"mappings":"yCAYO,MAAMA,EAUT,YAAcC,CAAMC,EAAkBC,GAClC,MAAMC,EAAeF,GAAW,CAAC,EACjC,MAAMG,EAAmB,CAAC,EAG1B,GAAID,EAAYE,MAAO,CACnBD,EAAGE,MAAQH,EAAYE,KAC3B,KAAO,CACHD,EAAGE,MAAQC,KAAKC,cAAcN,EAClC,CAGA,GAAIC,EAAYM,WAAa,KAAM,CAC/BL,EAAGK,SAAW,IAClB,CAGA,GAAIN,EAAYO,OAAQ,CACpB,OAAQP,EAAYO,QAChB,IAAK,YACDN,EAAGO,OAAS,WACZ,MACJ,IAAK,OACDP,EAAGO,OAAS,OACZ,MACJ,IAAK,WACDP,EAAGO,OAAS,WACZP,EAAGM,OAAS,WACZ,MACJ,IAAK,QACDN,EAAGO,OAAS,QACZP,EAAGM,OAAS,QACZ,MACJ,IAAK,MACDN,EAAGO,OAAS,OACZP,EAAGM,OAAS,MACZ,MACJ,IAAK,SACL,IAAK,OACDN,EAAGO,OAAS,eACZ,MACJ,IAAK,OACL,IAAK,OACL,IAAK,OACL,IAAK,WACD,IAAKP,EAAGQ,WAAYR,EAAGQ,WAAa,GACpCR,EAAGQ,WAAWC,KAAKV,EAAYO,QAC/B,MAEZ,CAEA,OAAON,CACX,CASA,oBAAeI,CAAcM,GACzB,IAAKA,EAAM,MAAO,GAClB,IAAIC,EAASD,EAAKE,QAAQ,WAAY,OAAOA,QAAQ,KAAM,KAC3D,OAAOD,EAAOE,MAAM,KACfC,OAAOC,GAAKA,EAAEC,OAAS,GACvBC,IAAIC,GAAQA,EAAKC,OAAO,GAAGC,cAAgBF,EAAKG,MAAM,GAAGC,eACzDC,KAAK,KACLC,MACT,EACH,IAAAC,EAAA,CAAAC,WAAA,MAAAD,EAAA9B,kBAAA,OAAA8B,CAAA","ignoreList":[]}
@@ -20,12 +20,13 @@ export class OpenApiUIMapper {
20
20
  * @param {string} keyName The technical JSON key of the property.
21
21
  * @returns {IUIDirective} The constructed MetaUI UI orchestration directive.
22
22
  */
23
- public static build(swaggerProp: unknown, keyName: string): IUIDirective {
23
+ public static build(rawProp: unknown, keyName: string): IUIDirective {
24
+ const swaggerProp = (rawProp || {}) as Record<string, unknown>;
24
25
  const ui: IUIDirective = {};
25
26
 
26
27
  // Label Synthesis
27
28
  if (swaggerProp.title) {
28
- ui.label = swaggerProp.title;
29
+ ui.label = swaggerProp.title as string;
29
30
  } else {
30
31
  ui.label = this.generateLabel(keyName);
31
32
  }
@@ -65,7 +66,7 @@ export class OpenApiUIMapper {
65
66
  case "ipv6":
66
67
  case "hostname":
67
68
  if (!ui.validators) ui.validators = [];
68
- ui.validators.push(swaggerProp.format);
69
+ ui.validators.push(swaggerProp.format as string);
69
70
  break;
70
71
  }
71
72
  }
@@ -35,8 +35,8 @@ sap.ui.define(["./plugins/ProtobufVariantHeuristic"], function (___plugins_Proto
35
35
  for (const plugin of this.plugins) {
36
36
  try {
37
37
  plugin.apply(openApiRoot);
38
- } catch (error) {
39
- throw new Error(`[MetaUI HeuristicEngine] Plugin execution failed: ${error.message}`);
38
+ } catch (e) {
39
+ throw new Error(`[MetaUI HeuristicEngine] Plugin execution failed: ${e.message}`);
40
40
  }
41
41
  }
42
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"OpenApiHeuristicEngine-dbg.js","names":["ProtobufVariantHeuristic","___plugins_ProtobufVariantHeuristic","OpenApiHeuristicEngine","plugins","constructor","push","run","openApiRoot","plugin","apply","error","Error","message","__exports","__esModule"],"sources":["OpenApiHeuristicEngine.ts"],"sourcesContent":["/**\n * @file OpenApiHeuristicEngine.ts\n * @description Orchestrator that registers and executes all IHeuristicPlugin implementations against the raw schema.\n */\n\nimport { IHeuristicPlugin } from \"./interfaces/IHeuristicPlugin\";\nimport { ProtobufVariantHeuristic } from \"./plugins/ProtobufVariantHeuristic\";\n\n/**\n * Orchestration engine that initializes and executes heuristic plugins sequentially.\n * This pipeline mutates the raw OpenAPI document in-place to normalize non-standard constructs\n * (like Protobuf unions) before the primary parsing phase occurs.\n * \n * @public\n */\nexport class OpenApiHeuristicEngine {\n private plugins: IHeuristicPlugin[] = [];\n\n /**\n * Initializes a new instance of the HeuristicEngine and registers default heuristics.\n */\n constructor() {\n // Register default heuristics\n this.plugins.push(new ProtobufVariantHeuristic());\n }\n\n /**\n * Runs all registered heuristic plugins sequentially against the raw OpenAPI document.\n * Captures and bubbles plugin-specific execution failures to prevent silent pipeline corruption.\n * \n * @param {any} openApiRoot The entire OpenAPI root document, to be mutated in-place.\n * @throws {Error} If any heuristic plugin crashes during execution.\n */\n public run(openApiRoot: unknown): void {\n for (const plugin of this.plugins) {\n try {\n plugin.apply(openApiRoot);\n } catch (error: Error) {\n throw new Error(`[MetaUI HeuristicEngine] Plugin execution failed: ${error.message}`);\n }\n }\n }\n}\n"],"mappings":";;;EAAA;AACA;AACA;AACA;EAHA,MAMSA,wBAAwB,GAAAC,mCAAA;EAEjC;AACA;AACA;AACA;AACA;AACA;AACA;EACO,MAAMC,sBAAsB,CAAC;IACxBC,OAAO,GAAuB,EAAE;;IAExC;AACJ;AACA;IACIC,WAAWA,CAAA,EAAG;MACV;MACA,IAAI,CAACD,OAAO,CAACE,IAAI,CAAC,IAAIL,wBAAwB,CAAC,CAAC,CAAC;IACrD;;IAEA;AACJ;AACA;AACA;AACA;AACA;AACA;IACWM,GAAGA,CAACC,WAAoB,EAAQ;MACnC,KAAK,MAAMC,MAAM,IAAI,IAAI,CAACL,OAAO,EAAE;QAC/B,IAAI;UACAK,MAAM,CAACC,KAAK,CAACF,WAAW,CAAC;QAC7B,CAAC,CAAC,OAAOG,KAAY,EAAE;UACnB,MAAM,IAAIC,KAAK,CAAC,qDAAqDD,KAAK,CAACE,OAAO,EAAE,CAAC;QACzF;MACJ;IACJ;EACJ;EAAC,IAAAC,SAAA;IAAAC,UAAA;EAAA;EAAAD,SAAA,CAAAX,sBAAA,GAAAA,sBAAA;EAAA,OAAAW,SAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"OpenApiHeuristicEngine-dbg.js","names":["ProtobufVariantHeuristic","___plugins_ProtobufVariantHeuristic","OpenApiHeuristicEngine","plugins","constructor","push","run","openApiRoot","plugin","apply","e","Error","message","__exports","__esModule"],"sources":["OpenApiHeuristicEngine.ts"],"sourcesContent":["/**\n * @file OpenApiHeuristicEngine.ts\n * @description Orchestrator that registers and executes all IHeuristicPlugin implementations against the raw schema.\n */\n\nimport { IHeuristicPlugin } from \"./interfaces/IHeuristicPlugin\";\nimport { ProtobufVariantHeuristic } from \"./plugins/ProtobufVariantHeuristic\";\n\n/**\n * Orchestration engine that initializes and executes heuristic plugins sequentially.\n * This pipeline mutates the raw OpenAPI document in-place to normalize non-standard constructs\n * (like Protobuf unions) before the primary parsing phase occurs.\n * \n * @public\n */\nexport class OpenApiHeuristicEngine {\n private plugins: IHeuristicPlugin[] = [];\n\n /**\n * Initializes a new instance of the HeuristicEngine and registers default heuristics.\n */\n constructor() {\n // Register default heuristics\n this.plugins.push(new ProtobufVariantHeuristic());\n }\n\n /**\n * Runs all registered heuristic plugins sequentially against the raw OpenAPI document.\n * Captures and bubbles plugin-specific execution failures to prevent silent pipeline corruption.\n * \n * @param {any} openApiRoot The entire OpenAPI root document, to be mutated in-place.\n * @throws {Error} If any heuristic plugin crashes during execution.\n */\n public run(openApiRoot: unknown): void {\n for (const plugin of this.plugins) {\n try {\n plugin.apply(openApiRoot);\n } catch (e: any) {\n throw new Error(`[MetaUI HeuristicEngine] Plugin execution failed: ${e.message}`);\n }\n }\n }\n}\n"],"mappings":";;;EAAA;AACA;AACA;AACA;EAHA,MAMSA,wBAAwB,GAAAC,mCAAA;EAEjC;AACA;AACA;AACA;AACA;AACA;AACA;EACO,MAAMC,sBAAsB,CAAC;IACxBC,OAAO,GAAuB,EAAE;;IAExC;AACJ;AACA;IACIC,WAAWA,CAAA,EAAG;MACV;MACA,IAAI,CAACD,OAAO,CAACE,IAAI,CAAC,IAAIL,wBAAwB,CAAC,CAAC,CAAC;IACrD;;IAEA;AACJ;AACA;AACA;AACA;AACA;AACA;IACWM,GAAGA,CAACC,WAAoB,EAAQ;MACnC,KAAK,MAAMC,MAAM,IAAI,IAAI,CAACL,OAAO,EAAE;QAC/B,IAAI;UACAK,MAAM,CAACC,KAAK,CAACF,WAAW,CAAC;QAC7B,CAAC,CAAC,OAAOG,CAAM,EAAE;UACb,MAAM,IAAIC,KAAK,CAAC,qDAAqDD,CAAC,CAACE,OAAO,EAAE,CAAC;QACrF;MACJ;IACJ;EACJ;EAAC,IAAAC,SAAA;IAAAC,UAAA;EAAA;EAAAD,SAAA,CAAAX,sBAAA,GAAAA,sBAAA;EAAA,OAAAW,SAAA;AAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"OpenApiHeuristicEngine.js","names":["ProtobufVariantHeuristic","___plugins_ProtobufVariantHeuristic","OpenApiHeuristicEngine","plugins","constructor","this","push","run","openApiRoot","plugin","apply","error","Error","message","__exports","__esModule"],"sources":["OpenApiHeuristicEngine.ts"],"sourcesContent":["/**\n * @file OpenApiHeuristicEngine.ts\n * @description Orchestrator that registers and executes all IHeuristicPlugin implementations against the raw schema.\n */\n\nimport { IHeuristicPlugin } from \"./interfaces/IHeuristicPlugin\";\nimport { ProtobufVariantHeuristic } from \"./plugins/ProtobufVariantHeuristic\";\n\n/**\n * Orchestration engine that initializes and executes heuristic plugins sequentially.\n * This pipeline mutates the raw OpenAPI document in-place to normalize non-standard constructs\n * (like Protobuf unions) before the primary parsing phase occurs.\n * \n * @public\n */\nexport class OpenApiHeuristicEngine {\n private plugins: IHeuristicPlugin[] = [];\n\n /**\n * Initializes a new instance of the HeuristicEngine and registers default heuristics.\n */\n constructor() {\n // Register default heuristics\n this.plugins.push(new ProtobufVariantHeuristic());\n }\n\n /**\n * Runs all registered heuristic plugins sequentially against the raw OpenAPI document.\n * Captures and bubbles plugin-specific execution failures to prevent silent pipeline corruption.\n * \n * @param {any} openApiRoot The entire OpenAPI root document, to be mutated in-place.\n * @throws {Error} If any heuristic plugin crashes during execution.\n */\n public run(openApiRoot: unknown): void {\n for (const plugin of this.plugins) {\n try {\n plugin.apply(openApiRoot);\n } catch (error: Error) {\n throw new Error(`[MetaUI HeuristicEngine] Plugin execution failed: ${error.message}`);\n }\n }\n }\n}\n"],"mappings":"8EAAA,MAMSA,EAAwBC,EAAA,4BAS1B,MAAMC,EACDC,QAA8B,GAKtCC,cAEIC,KAAKF,QAAQG,KAAK,IAAIN,EAC1B,CASOO,IAAIC,GACP,IAAK,MAAMC,KAAUJ,KAAKF,QAAS,CAC/B,IACIM,EAAOC,MAAMF,EACjB,CAAE,MAAOG,GACL,MAAM,IAAIC,MAAM,qDAAqDD,EAAME,UAC/E,CACJ,CACJ,EACH,IAAAC,EAAA,CAAAC,WAAA,MAAAD,EAAAZ,yBAAA,OAAAY,CAAA","ignoreList":[]}
1
+ {"version":3,"file":"OpenApiHeuristicEngine.js","names":["ProtobufVariantHeuristic","___plugins_ProtobufVariantHeuristic","OpenApiHeuristicEngine","plugins","constructor","this","push","run","openApiRoot","plugin","apply","e","Error","message","__exports","__esModule"],"sources":["OpenApiHeuristicEngine.ts"],"sourcesContent":["/**\n * @file OpenApiHeuristicEngine.ts\n * @description Orchestrator that registers and executes all IHeuristicPlugin implementations against the raw schema.\n */\n\nimport { IHeuristicPlugin } from \"./interfaces/IHeuristicPlugin\";\nimport { ProtobufVariantHeuristic } from \"./plugins/ProtobufVariantHeuristic\";\n\n/**\n * Orchestration engine that initializes and executes heuristic plugins sequentially.\n * This pipeline mutates the raw OpenAPI document in-place to normalize non-standard constructs\n * (like Protobuf unions) before the primary parsing phase occurs.\n * \n * @public\n */\nexport class OpenApiHeuristicEngine {\n private plugins: IHeuristicPlugin[] = [];\n\n /**\n * Initializes a new instance of the HeuristicEngine and registers default heuristics.\n */\n constructor() {\n // Register default heuristics\n this.plugins.push(new ProtobufVariantHeuristic());\n }\n\n /**\n * Runs all registered heuristic plugins sequentially against the raw OpenAPI document.\n * Captures and bubbles plugin-specific execution failures to prevent silent pipeline corruption.\n * \n * @param {any} openApiRoot The entire OpenAPI root document, to be mutated in-place.\n * @throws {Error} If any heuristic plugin crashes during execution.\n */\n public run(openApiRoot: unknown): void {\n for (const plugin of this.plugins) {\n try {\n plugin.apply(openApiRoot);\n } catch (e: any) {\n throw new Error(`[MetaUI HeuristicEngine] Plugin execution failed: ${e.message}`);\n }\n }\n }\n}\n"],"mappings":"8EAAA,MAMSA,EAAwBC,EAAA,4BAS1B,MAAMC,EACDC,QAA8B,GAKtCC,cAEIC,KAAKF,QAAQG,KAAK,IAAIN,EAC1B,CASOO,IAAIC,GACP,IAAK,MAAMC,KAAUJ,KAAKF,QAAS,CAC/B,IACIM,EAAOC,MAAMF,EACjB,CAAE,MAAOG,GACL,MAAM,IAAIC,MAAM,qDAAqDD,EAAEE,UAC3E,CACJ,CACJ,EACH,IAAAC,EAAA,CAAAC,WAAA,MAAAD,EAAAZ,yBAAA,OAAAY,CAAA","ignoreList":[]}
@@ -35,8 +35,8 @@ export class OpenApiHeuristicEngine {
35
35
  for (const plugin of this.plugins) {
36
36
  try {
37
37
  plugin.apply(openApiRoot);
38
- } catch (error: Error) {
39
- throw new Error(`[MetaUI HeuristicEngine] Plugin execution failed: ${error.message}`);
38
+ } catch (e: any) {
39
+ throw new Error(`[MetaUI HeuristicEngine] Plugin execution failed: ${e.message}`);
40
40
  }
41
41
  }
42
42
  }
@@ -21,10 +21,10 @@ sap.ui.define([], function () {
21
21
  */
22
22
  apply(openApiRoot) {
23
23
  if (!openApiRoot) return;
24
-
24
+ const root = openApiRoot;
25
25
  // In OpenAPI 2.0, scan definitions
26
- if (openApiRoot.swagger === "2.0" && openApiRoot.definitions) {
27
- this._scanDefinitions(openApiRoot.definitions);
26
+ if (root.swagger === "2.0" && root.definitions) {
27
+ this._scanDefinitions(root.definitions);
28
28
  }
29
29
  }
30
30
 
@@ -52,16 +52,19 @@ sap.ui.define([], function () {
52
52
  * @returns {boolean} True if the structure matches a Protobuf variant pattern.
53
53
  * @private
54
54
  */
55
- _isProtobufVariant(key, definition) {
55
+ _isProtobufVariant(key, rawDef) {
56
+ const definition = rawDef;
56
57
  if (definition.type !== "object" || !definition.properties) {
57
58
  return false;
58
59
  }
59
60
 
60
61
  // Must not have required fields if it's a pure union
61
- if (definition.required && definition.required.length > 0) {
62
+ const requiredFields = definition.required;
63
+ if (requiredFields && requiredFields.length > 0) {
62
64
  return false;
63
65
  }
64
- const propKeys = Object.keys(definition.properties);
66
+ const properties = definition.properties;
67
+ const propKeys = Object.keys(properties);
65
68
  if (propKeys.length < 2) {
66
69
  return false;
67
70
  }
@@ -82,10 +85,11 @@ sap.ui.define([], function () {
82
85
  * @private
83
86
  */
84
87
  _mutateToOneOf(definition) {
85
- const propKeys = Object.keys(definition.properties);
88
+ const properties = definition.properties;
89
+ const propKeys = Object.keys(properties);
86
90
  const oneOfArray = [];
87
91
  for (const propKey of propKeys) {
88
- const variantSchema = definition.properties[propKey];
92
+ const variantSchema = properties[propKey];
89
93
 
90
94
  // Reconstruct a sub-object for each variant, enforcing strict requirement of the single variant property
91
95
  const syntheticVariant = {
@@ -1 +1 @@
1
- {"version":3,"file":"ProtobufVariantHeuristic-dbg.js","names":["ProtobufVariantHeuristic","apply","openApiRoot","swagger","definitions","_scanDefinitions","key","definition","Object","entries","_isProtobufVariant","_mutateToOneOf","type","properties","required","length","propKeys","keys","allEndWithValue","every","k","endsWith","oneOfArray","propKey","variantSchema","syntheticVariant","title","description","push","oneOf","__exports","__esModule"],"sources":["ProtobufVariantHeuristic.ts"],"sourcesContent":["/**\n * @file ProtobufVariantHeuristic.ts\n * @description Scans OpenAPI 2.0 schemas for implicitly polymorphic structures (e.g., objects containing purely optional, mutually exclusive fields) and explicitly mutates them into `oneOf` structures.\n */\n\nimport { IHeuristicPlugin } from \"../interfaces/IHeuristicPlugin\";\n\n/**\n * Heuristic plugin that detects Protobuf-style Variant representations (objects with exclusively optional *_value fields)\n * and mutates the AST to a proper oneOf polymorphic array before it reaches the parsers.\n * \n * @public\n */\nexport class ProtobufVariantHeuristic implements IHeuristicPlugin {\n /**\n * Executes the heuristic logic against the OpenAPI AST.\n * Initiates a scan of the global definitions block if the document matches the OpenAPI 2.0 specification.\n * \n * @param {any} openApiRoot The entire OpenAPI root document.\n */\n public apply(openApiRoot: unknown): void {\n if (!openApiRoot) return;\n\n // In OpenAPI 2.0, scan definitions\n if (openApiRoot.swagger === \"2.0\" && openApiRoot.definitions) {\n this._scanDefinitions(openApiRoot.definitions);\n }\n }\n\n /**\n * Iterates over all root-level definitions to detect and mutate variant structures.\n * \n * @param {Record<string, any>} definitions The raw OpenAPI 2.0 definitions dictionary.\n * @private\n */\n private _scanDefinitions(definitions: Record<string, any>): void {\n for (const [key, definition] of Object.entries(definitions)) {\n // Heuristic 1: If the object name ends with \"Value\" and has multiple optional properties \n // that end with \"_value\" (common Protobuf JSON representation for variants)\n if (this._isProtobufVariant(key, definition)) {\n this._mutateToOneOf(definition);\n }\n }\n }\n\n /**\n * Evaluates a schema block against the heuristic signature of a Protobuf Variant.\n * \n * @param {string} key The schema definition name.\n * @param {any} definition The structural definition block.\n * @returns {boolean} True if the structure matches a Protobuf variant pattern.\n * @private\n */\n private _isProtobufVariant(key: string, definition: unknown): boolean {\n if (definition.type !== \"object\" || !definition.properties) {\n return false;\n }\n\n // Must not have required fields if it's a pure union\n if (definition.required && definition.required.length > 0) {\n return false;\n }\n\n const propKeys = Object.keys(definition.properties);\n if (propKeys.length < 2) {\n return false;\n }\n\n // Check if all properties end with \"_value\" (e.g. bool_value, list_value)\n const allEndWithValue = propKeys.every(k => k.endsWith(\"_value\"));\n if (allEndWithValue && (key.endsWith(\"Value\") || key.endsWith(\"Variant\"))) {\n return true;\n }\n\n return false;\n }\n\n /**\n * Mutates the AST in-place by synthesizing a `oneOf` array from the optional properties\n * and strictly purging the original object layout to force polymorphic evaluation.\n * \n * @param {any} definition The target variant object schema.\n * @private\n */\n private _mutateToOneOf(definition: unknown): void {\n const propKeys = Object.keys(definition.properties);\n const oneOfArray: unknown[] = [];\n\n for (const propKey of propKeys) {\n const variantSchema = definition.properties[propKey];\n \n // Reconstruct a sub-object for each variant, enforcing strict requirement of the single variant property\n const syntheticVariant = {\n type: \"object\",\n properties: {\n [propKey]: variantSchema\n },\n required: [propKey],\n title: variantSchema.description || propKey\n };\n \n oneOfArray.push(syntheticVariant);\n }\n\n // Mutate the original definition to become a oneOf root\n definition.oneOf = oneOfArray;\n \n // CRITICAL DESTRUCTIVE MUTATION:\n // We delete the original properties block. If this is not done, the core engine's layout\n // orchestrator will attempt to render both a standard static form AND the polymorphic switcher simultaneously.\n delete definition.properties;\n }\n}\n"],"mappings":";;;EAAA;AACA;AACA;AACA;;EAIA;AACA;AACA;AACA;AACA;AACA;EACO,MAAMA,wBAAwB,CAA6B;IAC9D;AACJ;AACA;AACA;AACA;AACA;IACWC,KAAKA,CAACC,WAAoB,EAAQ;MACrC,IAAI,CAACA,WAAW,EAAE;;MAElB;MACA,IAAIA,WAAW,CAACC,OAAO,KAAK,KAAK,IAAID,WAAW,CAACE,WAAW,EAAE;QAC1D,IAAI,CAACC,gBAAgB,CAACH,WAAW,CAACE,WAAW,CAAC;MAClD;IACJ;;IAEA;AACJ;AACA;AACA;AACA;AACA;IACYC,gBAAgBA,CAACD,WAAgC,EAAQ;MAC7D,KAAK,MAAM,CAACE,GAAG,EAAEC,UAAU,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACL,WAAW,CAAC,EAAE;QACzD;QACA;QACA,IAAI,IAAI,CAACM,kBAAkB,CAACJ,GAAG,EAAEC,UAAU,CAAC,EAAE;UAC1C,IAAI,CAACI,cAAc,CAACJ,UAAU,CAAC;QACnC;MACJ;IACJ;;IAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;IACYG,kBAAkBA,CAACJ,GAAW,EAAEC,UAAmB,EAAW;MAClE,IAAIA,UAAU,CAACK,IAAI,KAAK,QAAQ,IAAI,CAACL,UAAU,CAACM,UAAU,EAAE;QACxD,OAAO,KAAK;MAChB;;MAEA;MACA,IAAIN,UAAU,CAACO,QAAQ,IAAIP,UAAU,CAACO,QAAQ,CAACC,MAAM,GAAG,CAAC,EAAE;QACvD,OAAO,KAAK;MAChB;MAEA,MAAMC,QAAQ,GAAGR,MAAM,CAACS,IAAI,CAACV,UAAU,CAACM,UAAU,CAAC;MACnD,IAAIG,QAAQ,CAACD,MAAM,GAAG,CAAC,EAAE;QACrB,OAAO,KAAK;MAChB;;MAEA;MACA,MAAMG,eAAe,GAAGF,QAAQ,CAACG,KAAK,CAACC,CAAC,IAAIA,CAAC,CAACC,QAAQ,CAAC,QAAQ,CAAC,CAAC;MACjE,IAAIH,eAAe,KAAKZ,GAAG,CAACe,QAAQ,CAAC,OAAO,CAAC,IAAIf,GAAG,CAACe,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE;QACvE,OAAO,IAAI;MACf;MAEA,OAAO,KAAK;IAChB;;IAEA;AACJ;AACA;AACA;AACA;AACA;AACA;IACYV,cAAcA,CAACJ,UAAmB,EAAQ;MAC9C,MAAMS,QAAQ,GAAGR,MAAM,CAACS,IAAI,CAACV,UAAU,CAACM,UAAU,CAAC;MACnD,MAAMS,UAAqB,GAAG,EAAE;MAEhC,KAAK,MAAMC,OAAO,IAAIP,QAAQ,EAAE;QAC5B,MAAMQ,aAAa,GAAGjB,UAAU,CAACM,UAAU,CAACU,OAAO,CAAC;;QAEpD;QACA,MAAME,gBAAgB,GAAG;UACrBb,IAAI,EAAE,QAAQ;UACdC,UAAU,EAAE;YACR,CAACU,OAAO,GAAGC;UACf,CAAC;UACDV,QAAQ,EAAE,CAACS,OAAO,CAAC;UACnBG,KAAK,EAAEF,aAAa,CAACG,WAAW,IAAIJ;QACxC,CAAC;QAEDD,UAAU,CAACM,IAAI,CAACH,gBAAgB,CAAC;MACrC;;MAEA;MACAlB,UAAU,CAACsB,KAAK,GAAGP,UAAU;;MAE7B;MACA;MACA;MACA,OAAOf,UAAU,CAACM,UAAU;IAChC;EACJ;EAAC,IAAAiB,SAAA;IAAAC,UAAA;EAAA;EAAAD,SAAA,CAAA9B,wBAAA,GAAAA,wBAAA;EAAA,OAAA8B,SAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"ProtobufVariantHeuristic-dbg.js","names":["ProtobufVariantHeuristic","apply","openApiRoot","root","swagger","definitions","_scanDefinitions","key","definition","Object","entries","_isProtobufVariant","_mutateToOneOf","rawDef","type","properties","requiredFields","required","length","propKeys","keys","allEndWithValue","every","k","endsWith","oneOfArray","propKey","variantSchema","syntheticVariant","title","description","push","oneOf","__exports","__esModule"],"sources":["ProtobufVariantHeuristic.ts"],"sourcesContent":["/**\n * @file ProtobufVariantHeuristic.ts\n * @description Scans OpenAPI 2.0 schemas for implicitly polymorphic structures (e.g., objects containing purely optional, mutually exclusive fields) and explicitly mutates them into `oneOf` structures.\n */\n\nimport { IHeuristicPlugin } from \"../interfaces/IHeuristicPlugin\";\n\n/**\n * Heuristic plugin that detects Protobuf-style Variant representations (objects with exclusively optional *_value fields)\n * and mutates the AST to a proper oneOf polymorphic array before it reaches the parsers.\n * \n * @public\n */\nexport class ProtobufVariantHeuristic implements IHeuristicPlugin {\n /**\n * Executes the heuristic logic against the OpenAPI AST.\n * Initiates a scan of the global definitions block if the document matches the OpenAPI 2.0 specification.\n * \n * @param {any} openApiRoot The entire OpenAPI root document.\n */\n public apply(openApiRoot: unknown): void {\n if (!openApiRoot) return;\n const root = openApiRoot as Record<string, unknown>;\n // In OpenAPI 2.0, scan definitions\n if (root.swagger === \"2.0\" && root.definitions) {\n this._scanDefinitions(root.definitions as Record<string, unknown>);\n }\n }\n\n /**\n * Iterates over all root-level definitions to detect and mutate variant structures.\n * \n * @param {Record<string, any>} definitions The raw OpenAPI 2.0 definitions dictionary.\n * @private\n */\n private _scanDefinitions(definitions: Record<string, unknown>): void {\n for (const [key, definition] of Object.entries(definitions)) {\n // Heuristic 1: If the object name ends with \"Value\" and has multiple optional properties \n // that end with \"_value\" (common Protobuf JSON representation for variants)\n if (this._isProtobufVariant(key, definition)) {\n this._mutateToOneOf(definition as Record<string, unknown>);\n }\n }\n }\n\n /**\n * Evaluates a schema block against the heuristic signature of a Protobuf Variant.\n * \n * @param {string} key The schema definition name.\n * @param {any} definition The structural definition block.\n * @returns {boolean} True if the structure matches a Protobuf variant pattern.\n * @private\n */\n private _isProtobufVariant(key: string, rawDef: unknown): boolean {\n const definition = rawDef as Record<string, unknown>;\n if (definition.type !== \"object\" || !definition.properties) {\n return false;\n }\n\n // Must not have required fields if it's a pure union\n const requiredFields = definition.required as string[] | undefined;\n if (requiredFields && requiredFields.length > 0) {\n return false;\n }\n\n const properties = definition.properties as Record<string, unknown>;\n const propKeys = Object.keys(properties);\n if (propKeys.length < 2) {\n return false;\n }\n\n // Check if all properties end with \"_value\" (e.g. bool_value, list_value)\n const allEndWithValue = propKeys.every(k => k.endsWith(\"_value\"));\n if (allEndWithValue && (key.endsWith(\"Value\") || key.endsWith(\"Variant\"))) {\n return true;\n }\n\n return false;\n }\n\n /**\n * Mutates the AST in-place by synthesizing a `oneOf` array from the optional properties\n * and strictly purging the original object layout to force polymorphic evaluation.\n * \n * @param {any} definition The target variant object schema.\n * @private\n */\n private _mutateToOneOf(definition: Record<string, unknown>): void {\n const properties = definition.properties as Record<string, unknown>;\n const propKeys = Object.keys(properties);\n const oneOfArray: unknown[] = [];\n\n for (const propKey of propKeys) {\n const variantSchema = properties[propKey] as Record<string, unknown>;\n \n // Reconstruct a sub-object for each variant, enforcing strict requirement of the single variant property\n const syntheticVariant = {\n type: \"object\",\n properties: {\n [propKey]: variantSchema\n },\n required: [propKey],\n title: variantSchema.description || propKey\n };\n \n oneOfArray.push(syntheticVariant);\n }\n\n // Mutate the original definition to become a oneOf root\n definition.oneOf = oneOfArray;\n \n // CRITICAL DESTRUCTIVE MUTATION:\n // We delete the original properties block. If this is not done, the core engine's layout\n // orchestrator will attempt to render both a standard static form AND the polymorphic switcher simultaneously.\n delete definition.properties;\n }\n}\n"],"mappings":";;;EAAA;AACA;AACA;AACA;;EAIA;AACA;AACA;AACA;AACA;AACA;EACO,MAAMA,wBAAwB,CAA6B;IAC9D;AACJ;AACA;AACA;AACA;AACA;IACWC,KAAKA,CAACC,WAAoB,EAAQ;MACrC,IAAI,CAACA,WAAW,EAAE;MAClB,MAAMC,IAAI,GAAGD,WAAsC;MACnD;MACA,IAAIC,IAAI,CAACC,OAAO,KAAK,KAAK,IAAID,IAAI,CAACE,WAAW,EAAE;QAC5C,IAAI,CAACC,gBAAgB,CAACH,IAAI,CAACE,WAAsC,CAAC;MACtE;IACJ;;IAEA;AACJ;AACA;AACA;AACA;AACA;IACYC,gBAAgBA,CAACD,WAAoC,EAAQ;MACjE,KAAK,MAAM,CAACE,GAAG,EAAEC,UAAU,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACL,WAAW,CAAC,EAAE;QACzD;QACA;QACA,IAAI,IAAI,CAACM,kBAAkB,CAACJ,GAAG,EAAEC,UAAU,CAAC,EAAE;UAC1C,IAAI,CAACI,cAAc,CAACJ,UAAqC,CAAC;QAC9D;MACJ;IACJ;;IAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;IACYG,kBAAkBA,CAACJ,GAAW,EAAEM,MAAe,EAAW;MAC9D,MAAML,UAAU,GAAGK,MAAiC;MACpD,IAAIL,UAAU,CAACM,IAAI,KAAK,QAAQ,IAAI,CAACN,UAAU,CAACO,UAAU,EAAE;QACxD,OAAO,KAAK;MAChB;;MAEA;MACA,MAAMC,cAAc,GAAGR,UAAU,CAACS,QAAgC;MAClE,IAAID,cAAc,IAAIA,cAAc,CAACE,MAAM,GAAG,CAAC,EAAE;QAC7C,OAAO,KAAK;MAChB;MAEA,MAAMH,UAAU,GAAGP,UAAU,CAACO,UAAqC;MACnE,MAAMI,QAAQ,GAAGV,MAAM,CAACW,IAAI,CAACL,UAAU,CAAC;MACxC,IAAII,QAAQ,CAACD,MAAM,GAAG,CAAC,EAAE;QACrB,OAAO,KAAK;MAChB;;MAEA;MACA,MAAMG,eAAe,GAAGF,QAAQ,CAACG,KAAK,CAACC,CAAC,IAAIA,CAAC,CAACC,QAAQ,CAAC,QAAQ,CAAC,CAAC;MACjE,IAAIH,eAAe,KAAKd,GAAG,CAACiB,QAAQ,CAAC,OAAO,CAAC,IAAIjB,GAAG,CAACiB,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE;QACvE,OAAO,IAAI;MACf;MAEA,OAAO,KAAK;IAChB;;IAEA;AACJ;AACA;AACA;AACA;AACA;AACA;IACYZ,cAAcA,CAACJ,UAAmC,EAAQ;MAC9D,MAAMO,UAAU,GAAGP,UAAU,CAACO,UAAqC;MACnE,MAAMI,QAAQ,GAAGV,MAAM,CAACW,IAAI,CAACL,UAAU,CAAC;MACxC,MAAMU,UAAqB,GAAG,EAAE;MAEhC,KAAK,MAAMC,OAAO,IAAIP,QAAQ,EAAE;QAC5B,MAAMQ,aAAa,GAAGZ,UAAU,CAACW,OAAO,CAA4B;;QAEpE;QACA,MAAME,gBAAgB,GAAG;UACrBd,IAAI,EAAE,QAAQ;UACdC,UAAU,EAAE;YACR,CAACW,OAAO,GAAGC;UACf,CAAC;UACDV,QAAQ,EAAE,CAACS,OAAO,CAAC;UACnBG,KAAK,EAAEF,aAAa,CAACG,WAAW,IAAIJ;QACxC,CAAC;QAEDD,UAAU,CAACM,IAAI,CAACH,gBAAgB,CAAC;MACrC;;MAEA;MACApB,UAAU,CAACwB,KAAK,GAAGP,UAAU;;MAE7B;MACA;MACA;MACA,OAAOjB,UAAU,CAACO,UAAU;IAChC;EACJ;EAAC,IAAAkB,SAAA;IAAAC,UAAA;EAAA;EAAAD,SAAA,CAAAjC,wBAAA,GAAAA,wBAAA;EAAA,OAAAiC,SAAA;AAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"ProtobufVariantHeuristic.d.ts","sourceRoot":"../../../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,gFAAgF,CAAC;IAChG;;;OAGG;IAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,2EAA2E,CAAC;IAE7G;;;;;OAKG;IACH,MAAa,wBAAyB,YAAW,gBAAgB;QAC7D;;;;;WAKG;QACI,KAAK,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI;QASxC;;;;;WAKG;QACH,OAAO,CAAC,gBAAgB;QAUxB;;;;;;;WAOG;QACH,OAAO,CAAC,kBAAkB;QAwB1B;;;;;;WAMG;QACH,OAAO,CAAC,cAAc;KA4BzB;CAEA"}
1
+ {"version":3,"file":"ProtobufVariantHeuristic.d.ts","sourceRoot":"../../../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,gFAAgF,CAAC;IAChG;;;OAGG;IAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,2EAA2E,CAAC;IAE7G;;;;;OAKG;IACH,MAAa,wBAAyB,YAAW,gBAAgB;QAC7D;;;;;WAKG;QACI,KAAK,CAAC,WAAW,EAAE,OAAO,GAAG,IAAI;QASxC;;;;;WAKG;QACH,OAAO,CAAC,gBAAgB;QAUxB;;;;;;;WAOG;QACH,OAAO,CAAC,kBAAkB;QA2B1B;;;;;;WAMG;QACH,OAAO,CAAC,cAAc;KA6BzB;CAEA"}
@@ -1,2 +1,2 @@
1
- sap.ui.define([],function(){"use strict";class e{apply(e){if(!e)return;if(e.swagger==="2.0"&&e.definitions){this._scanDefinitions(e.definitions)}}_scanDefinitions(e){for(const[t,i]of Object.entries(e)){if(this._isProtobufVariant(t,i)){this._mutateToOneOf(i)}}}_isProtobufVariant(e,t){if(t.type!=="object"||!t.properties){return false}if(t.required&&t.required.length>0){return false}const i=Object.keys(t.properties);if(i.length<2){return false}const r=i.every(e=>e.endsWith("_value"));if(r&&(e.endsWith("Value")||e.endsWith("Variant"))){return true}return false}_mutateToOneOf(e){const t=Object.keys(e.properties);const i=[];for(const r of t){const t=e.properties[r];const s={type:"object",properties:{[r]:t},required:[r],title:t.description||r};i.push(s)}e.oneOf=i;delete e.properties}}var t={__esModule:true};t.ProtobufVariantHeuristic=e;return t});
1
+ sap.ui.define([],function(){"use strict";class e{apply(e){if(!e)return;const t=e;if(t.swagger==="2.0"&&t.definitions){this._scanDefinitions(t.definitions)}}_scanDefinitions(e){for(const[t,s]of Object.entries(e)){if(this._isProtobufVariant(t,s)){this._mutateToOneOf(s)}}}_isProtobufVariant(e,t){const s=t;if(s.type!=="object"||!s.properties){return false}const i=s.required;if(i&&i.length>0){return false}const n=s.properties;const r=Object.keys(n);if(r.length<2){return false}const o=r.every(e=>e.endsWith("_value"));if(o&&(e.endsWith("Value")||e.endsWith("Variant"))){return true}return false}_mutateToOneOf(e){const t=e.properties;const s=Object.keys(t);const i=[];for(const e of s){const s=t[e];const n={type:"object",properties:{[e]:s},required:[e],title:s.description||e};i.push(n)}e.oneOf=i;delete e.properties}}var t={__esModule:true};t.ProtobufVariantHeuristic=e;return t});
2
2
  //# sourceMappingURL=ProtobufVariantHeuristic.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProtobufVariantHeuristic.js","names":["ProtobufVariantHeuristic","apply","openApiRoot","swagger","definitions","this","_scanDefinitions","key","definition","Object","entries","_isProtobufVariant","_mutateToOneOf","type","properties","required","length","propKeys","keys","allEndWithValue","every","k","endsWith","oneOfArray","propKey","variantSchema","syntheticVariant","title","description","push","oneOf","__exports","__esModule"],"sources":["ProtobufVariantHeuristic.ts"],"sourcesContent":["/**\n * @file ProtobufVariantHeuristic.ts\n * @description Scans OpenAPI 2.0 schemas for implicitly polymorphic structures (e.g., objects containing purely optional, mutually exclusive fields) and explicitly mutates them into `oneOf` structures.\n */\n\nimport { IHeuristicPlugin } from \"../interfaces/IHeuristicPlugin\";\n\n/**\n * Heuristic plugin that detects Protobuf-style Variant representations (objects with exclusively optional *_value fields)\n * and mutates the AST to a proper oneOf polymorphic array before it reaches the parsers.\n * \n * @public\n */\nexport class ProtobufVariantHeuristic implements IHeuristicPlugin {\n /**\n * Executes the heuristic logic against the OpenAPI AST.\n * Initiates a scan of the global definitions block if the document matches the OpenAPI 2.0 specification.\n * \n * @param {any} openApiRoot The entire OpenAPI root document.\n */\n public apply(openApiRoot: unknown): void {\n if (!openApiRoot) return;\n\n // In OpenAPI 2.0, scan definitions\n if (openApiRoot.swagger === \"2.0\" && openApiRoot.definitions) {\n this._scanDefinitions(openApiRoot.definitions);\n }\n }\n\n /**\n * Iterates over all root-level definitions to detect and mutate variant structures.\n * \n * @param {Record<string, any>} definitions The raw OpenAPI 2.0 definitions dictionary.\n * @private\n */\n private _scanDefinitions(definitions: Record<string, any>): void {\n for (const [key, definition] of Object.entries(definitions)) {\n // Heuristic 1: If the object name ends with \"Value\" and has multiple optional properties \n // that end with \"_value\" (common Protobuf JSON representation for variants)\n if (this._isProtobufVariant(key, definition)) {\n this._mutateToOneOf(definition);\n }\n }\n }\n\n /**\n * Evaluates a schema block against the heuristic signature of a Protobuf Variant.\n * \n * @param {string} key The schema definition name.\n * @param {any} definition The structural definition block.\n * @returns {boolean} True if the structure matches a Protobuf variant pattern.\n * @private\n */\n private _isProtobufVariant(key: string, definition: unknown): boolean {\n if (definition.type !== \"object\" || !definition.properties) {\n return false;\n }\n\n // Must not have required fields if it's a pure union\n if (definition.required && definition.required.length > 0) {\n return false;\n }\n\n const propKeys = Object.keys(definition.properties);\n if (propKeys.length < 2) {\n return false;\n }\n\n // Check if all properties end with \"_value\" (e.g. bool_value, list_value)\n const allEndWithValue = propKeys.every(k => k.endsWith(\"_value\"));\n if (allEndWithValue && (key.endsWith(\"Value\") || key.endsWith(\"Variant\"))) {\n return true;\n }\n\n return false;\n }\n\n /**\n * Mutates the AST in-place by synthesizing a `oneOf` array from the optional properties\n * and strictly purging the original object layout to force polymorphic evaluation.\n * \n * @param {any} definition The target variant object schema.\n * @private\n */\n private _mutateToOneOf(definition: unknown): void {\n const propKeys = Object.keys(definition.properties);\n const oneOfArray: unknown[] = [];\n\n for (const propKey of propKeys) {\n const variantSchema = definition.properties[propKey];\n \n // Reconstruct a sub-object for each variant, enforcing strict requirement of the single variant property\n const syntheticVariant = {\n type: \"object\",\n properties: {\n [propKey]: variantSchema\n },\n required: [propKey],\n title: variantSchema.description || propKey\n };\n \n oneOfArray.push(syntheticVariant);\n }\n\n // Mutate the original definition to become a oneOf root\n definition.oneOf = oneOfArray;\n \n // CRITICAL DESTRUCTIVE MUTATION:\n // We delete the original properties block. If this is not done, the core engine's layout\n // orchestrator will attempt to render both a standard static form AND the polymorphic switcher simultaneously.\n delete definition.properties;\n }\n}\n"],"mappings":"yCAaO,MAAMA,EAOFC,MAAMC,GACT,IAAKA,EAAa,OAGlB,GAAIA,EAAYC,UAAY,OAASD,EAAYE,YAAa,CAC1DC,KAAKC,iBAAiBJ,EAAYE,YACtC,CACJ,CAQQE,iBAAiBF,GACrB,IAAK,MAAOG,EAAKC,KAAeC,OAAOC,QAAQN,GAAc,CAGzD,GAAIC,KAAKM,mBAAmBJ,EAAKC,GAAa,CAC1CH,KAAKO,eAAeJ,EACxB,CACJ,CACJ,CAUQG,mBAAmBJ,EAAaC,GACpC,GAAIA,EAAWK,OAAS,WAAaL,EAAWM,WAAY,CACxD,OAAO,KACX,CAGA,GAAIN,EAAWO,UAAYP,EAAWO,SAASC,OAAS,EAAG,CACvD,OAAO,KACX,CAEA,MAAMC,EAAWR,OAAOS,KAAKV,EAAWM,YACxC,GAAIG,EAASD,OAAS,EAAG,CACrB,OAAO,KACX,CAGA,MAAMG,EAAkBF,EAASG,MAAMC,GAAKA,EAAEC,SAAS,WACvD,GAAIH,IAAoBZ,EAAIe,SAAS,UAAYf,EAAIe,SAAS,YAAa,CACvE,OAAO,IACX,CAEA,OAAO,KACX,CASQV,eAAeJ,GACnB,MAAMS,EAAWR,OAAOS,KAAKV,EAAWM,YACxC,MAAMS,EAAwB,GAE9B,IAAK,MAAMC,KAAWP,EAAU,CAC5B,MAAMQ,EAAgBjB,EAAWM,WAAWU,GAG5C,MAAME,EAAmB,CACrBb,KAAM,SACNC,WAAY,CACRU,CAACA,GAAUC,GAEfV,SAAU,CAACS,GACXG,MAAOF,EAAcG,aAAeJ,GAGxCD,EAAWM,KAAKH,EACpB,CAGAlB,EAAWsB,MAAQP,SAKZf,EAAWM,UACtB,EACH,IAAAiB,EAAA,CAAAC,WAAA,MAAAD,EAAA/B,2BAAA,OAAA+B,CAAA","ignoreList":[]}
1
+ {"version":3,"file":"ProtobufVariantHeuristic.js","names":["ProtobufVariantHeuristic","apply","openApiRoot","root","swagger","definitions","this","_scanDefinitions","key","definition","Object","entries","_isProtobufVariant","_mutateToOneOf","rawDef","type","properties","requiredFields","required","length","propKeys","keys","allEndWithValue","every","k","endsWith","oneOfArray","propKey","variantSchema","syntheticVariant","title","description","push","oneOf","__exports","__esModule"],"sources":["ProtobufVariantHeuristic.ts"],"sourcesContent":["/**\n * @file ProtobufVariantHeuristic.ts\n * @description Scans OpenAPI 2.0 schemas for implicitly polymorphic structures (e.g., objects containing purely optional, mutually exclusive fields) and explicitly mutates them into `oneOf` structures.\n */\n\nimport { IHeuristicPlugin } from \"../interfaces/IHeuristicPlugin\";\n\n/**\n * Heuristic plugin that detects Protobuf-style Variant representations (objects with exclusively optional *_value fields)\n * and mutates the AST to a proper oneOf polymorphic array before it reaches the parsers.\n * \n * @public\n */\nexport class ProtobufVariantHeuristic implements IHeuristicPlugin {\n /**\n * Executes the heuristic logic against the OpenAPI AST.\n * Initiates a scan of the global definitions block if the document matches the OpenAPI 2.0 specification.\n * \n * @param {any} openApiRoot The entire OpenAPI root document.\n */\n public apply(openApiRoot: unknown): void {\n if (!openApiRoot) return;\n const root = openApiRoot as Record<string, unknown>;\n // In OpenAPI 2.0, scan definitions\n if (root.swagger === \"2.0\" && root.definitions) {\n this._scanDefinitions(root.definitions as Record<string, unknown>);\n }\n }\n\n /**\n * Iterates over all root-level definitions to detect and mutate variant structures.\n * \n * @param {Record<string, any>} definitions The raw OpenAPI 2.0 definitions dictionary.\n * @private\n */\n private _scanDefinitions(definitions: Record<string, unknown>): void {\n for (const [key, definition] of Object.entries(definitions)) {\n // Heuristic 1: If the object name ends with \"Value\" and has multiple optional properties \n // that end with \"_value\" (common Protobuf JSON representation for variants)\n if (this._isProtobufVariant(key, definition)) {\n this._mutateToOneOf(definition as Record<string, unknown>);\n }\n }\n }\n\n /**\n * Evaluates a schema block against the heuristic signature of a Protobuf Variant.\n * \n * @param {string} key The schema definition name.\n * @param {any} definition The structural definition block.\n * @returns {boolean} True if the structure matches a Protobuf variant pattern.\n * @private\n */\n private _isProtobufVariant(key: string, rawDef: unknown): boolean {\n const definition = rawDef as Record<string, unknown>;\n if (definition.type !== \"object\" || !definition.properties) {\n return false;\n }\n\n // Must not have required fields if it's a pure union\n const requiredFields = definition.required as string[] | undefined;\n if (requiredFields && requiredFields.length > 0) {\n return false;\n }\n\n const properties = definition.properties as Record<string, unknown>;\n const propKeys = Object.keys(properties);\n if (propKeys.length < 2) {\n return false;\n }\n\n // Check if all properties end with \"_value\" (e.g. bool_value, list_value)\n const allEndWithValue = propKeys.every(k => k.endsWith(\"_value\"));\n if (allEndWithValue && (key.endsWith(\"Value\") || key.endsWith(\"Variant\"))) {\n return true;\n }\n\n return false;\n }\n\n /**\n * Mutates the AST in-place by synthesizing a `oneOf` array from the optional properties\n * and strictly purging the original object layout to force polymorphic evaluation.\n * \n * @param {any} definition The target variant object schema.\n * @private\n */\n private _mutateToOneOf(definition: Record<string, unknown>): void {\n const properties = definition.properties as Record<string, unknown>;\n const propKeys = Object.keys(properties);\n const oneOfArray: unknown[] = [];\n\n for (const propKey of propKeys) {\n const variantSchema = properties[propKey] as Record<string, unknown>;\n \n // Reconstruct a sub-object for each variant, enforcing strict requirement of the single variant property\n const syntheticVariant = {\n type: \"object\",\n properties: {\n [propKey]: variantSchema\n },\n required: [propKey],\n title: variantSchema.description || propKey\n };\n \n oneOfArray.push(syntheticVariant);\n }\n\n // Mutate the original definition to become a oneOf root\n definition.oneOf = oneOfArray;\n \n // CRITICAL DESTRUCTIVE MUTATION:\n // We delete the original properties block. If this is not done, the core engine's layout\n // orchestrator will attempt to render both a standard static form AND the polymorphic switcher simultaneously.\n delete definition.properties;\n }\n}\n"],"mappings":"yCAaO,MAAMA,EAOFC,MAAMC,GACT,IAAKA,EAAa,OAClB,MAAMC,EAAOD,EAEb,GAAIC,EAAKC,UAAY,OAASD,EAAKE,YAAa,CAC5CC,KAAKC,iBAAiBJ,EAAKE,YAC/B,CACJ,CAQQE,iBAAiBF,GACrB,IAAK,MAAOG,EAAKC,KAAeC,OAAOC,QAAQN,GAAc,CAGzD,GAAIC,KAAKM,mBAAmBJ,EAAKC,GAAa,CAC1CH,KAAKO,eAAeJ,EACxB,CACJ,CACJ,CAUQG,mBAAmBJ,EAAaM,GACpC,MAAML,EAAaK,EACnB,GAAIL,EAAWM,OAAS,WAAaN,EAAWO,WAAY,CACxD,OAAO,KACX,CAGA,MAAMC,EAAiBR,EAAWS,SAClC,GAAID,GAAkBA,EAAeE,OAAS,EAAG,CAC7C,OAAO,KACX,CAEA,MAAMH,EAAaP,EAAWO,WAC9B,MAAMI,EAAWV,OAAOW,KAAKL,GAC7B,GAAII,EAASD,OAAS,EAAG,CACrB,OAAO,KACX,CAGA,MAAMG,EAAkBF,EAASG,MAAMC,GAAKA,EAAEC,SAAS,WACvD,GAAIH,IAAoBd,EAAIiB,SAAS,UAAYjB,EAAIiB,SAAS,YAAa,CACvE,OAAO,IACX,CAEA,OAAO,KACX,CASQZ,eAAeJ,GACnB,MAAMO,EAAaP,EAAWO,WAC9B,MAAMI,EAAWV,OAAOW,KAAKL,GAC7B,MAAMU,EAAwB,GAE9B,IAAK,MAAMC,KAAWP,EAAU,CAC5B,MAAMQ,EAAgBZ,EAAWW,GAGjC,MAAME,EAAmB,CACrBd,KAAM,SACNC,WAAY,CACRW,CAACA,GAAUC,GAEfV,SAAU,CAACS,GACXG,MAAOF,EAAcG,aAAeJ,GAGxCD,EAAWM,KAAKH,EACpB,CAGApB,EAAWwB,MAAQP,SAKZjB,EAAWO,UACtB,EACH,IAAAkB,EAAA,CAAAC,WAAA,MAAAD,EAAAlC,2BAAA,OAAAkC,CAAA","ignoreList":[]}
@@ -20,10 +20,10 @@ export class ProtobufVariantHeuristic implements IHeuristicPlugin {
20
20
  */
21
21
  public apply(openApiRoot: unknown): void {
22
22
  if (!openApiRoot) return;
23
-
23
+ const root = openApiRoot as Record<string, unknown>;
24
24
  // In OpenAPI 2.0, scan definitions
25
- if (openApiRoot.swagger === "2.0" && openApiRoot.definitions) {
26
- this._scanDefinitions(openApiRoot.definitions);
25
+ if (root.swagger === "2.0" && root.definitions) {
26
+ this._scanDefinitions(root.definitions as Record<string, unknown>);
27
27
  }
28
28
  }
29
29
 
@@ -33,12 +33,12 @@ export class ProtobufVariantHeuristic implements IHeuristicPlugin {
33
33
  * @param {Record<string, any>} definitions The raw OpenAPI 2.0 definitions dictionary.
34
34
  * @private
35
35
  */
36
- private _scanDefinitions(definitions: Record<string, any>): void {
36
+ private _scanDefinitions(definitions: Record<string, unknown>): void {
37
37
  for (const [key, definition] of Object.entries(definitions)) {
38
38
  // Heuristic 1: If the object name ends with "Value" and has multiple optional properties
39
39
  // that end with "_value" (common Protobuf JSON representation for variants)
40
40
  if (this._isProtobufVariant(key, definition)) {
41
- this._mutateToOneOf(definition);
41
+ this._mutateToOneOf(definition as Record<string, unknown>);
42
42
  }
43
43
  }
44
44
  }
@@ -51,17 +51,20 @@ export class ProtobufVariantHeuristic implements IHeuristicPlugin {
51
51
  * @returns {boolean} True if the structure matches a Protobuf variant pattern.
52
52
  * @private
53
53
  */
54
- private _isProtobufVariant(key: string, definition: unknown): boolean {
54
+ private _isProtobufVariant(key: string, rawDef: unknown): boolean {
55
+ const definition = rawDef as Record<string, unknown>;
55
56
  if (definition.type !== "object" || !definition.properties) {
56
57
  return false;
57
58
  }
58
59
 
59
60
  // Must not have required fields if it's a pure union
60
- if (definition.required && definition.required.length > 0) {
61
+ const requiredFields = definition.required as string[] | undefined;
62
+ if (requiredFields && requiredFields.length > 0) {
61
63
  return false;
62
64
  }
63
65
 
64
- const propKeys = Object.keys(definition.properties);
66
+ const properties = definition.properties as Record<string, unknown>;
67
+ const propKeys = Object.keys(properties);
65
68
  if (propKeys.length < 2) {
66
69
  return false;
67
70
  }
@@ -82,12 +85,13 @@ export class ProtobufVariantHeuristic implements IHeuristicPlugin {
82
85
  * @param {any} definition The target variant object schema.
83
86
  * @private
84
87
  */
85
- private _mutateToOneOf(definition: unknown): void {
86
- const propKeys = Object.keys(definition.properties);
88
+ private _mutateToOneOf(definition: Record<string, unknown>): void {
89
+ const properties = definition.properties as Record<string, unknown>;
90
+ const propKeys = Object.keys(properties);
87
91
  const oneOfArray: unknown[] = [];
88
92
 
89
93
  for (const propKey of propKeys) {
90
- const variantSchema = definition.properties[propKey];
94
+ const variantSchema = properties[propKey] as Record<string, unknown>;
91
95
 
92
96
  // Reconstruct a sub-object for each variant, enforcing strict requirement of the single variant property
93
97
  const syntheticVariant = {