@siliconst/metaui 1.4.17 → 1.4.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (395) hide show
  1. package/package.json +1 -1
  2. package/src/nz/co/siliconst/ui5/metaui/ai/AIConfig-dbg.js +47 -0
  3. package/src/nz/co/siliconst/ui5/metaui/ai/AIConfig-dbg.js.map +1 -0
  4. package/src/nz/co/siliconst/ui5/metaui/ai/AIConfig.d.ts +28 -0
  5. package/src/nz/co/siliconst/ui5/metaui/ai/AIConfig.d.ts.map +1 -0
  6. package/src/nz/co/siliconst/ui5/metaui/ai/AIConfig.js +2 -0
  7. package/src/nz/co/siliconst/ui5/metaui/ai/AIConfig.js.map +1 -0
  8. package/src/nz/co/siliconst/ui5/metaui/ai/AIConfig.ts +39 -0
  9. package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator-dbg.js +83 -0
  10. package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator-dbg.js.map +1 -0
  11. package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator.d.ts +30 -0
  12. package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator.d.ts.map +1 -0
  13. package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator.js +2 -0
  14. package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator.js.map +1 -0
  15. package/src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator.ts +74 -0
  16. package/src/nz/co/siliconst/ui5/metaui/ai/MockLLMProxy-dbg.js +61 -0
  17. package/src/nz/co/siliconst/ui5/metaui/ai/MockLLMProxy-dbg.js.map +1 -0
  18. package/src/nz/co/siliconst/ui5/metaui/ai/MockLLMProxy.d.ts +13 -0
  19. package/src/nz/co/siliconst/ui5/metaui/ai/MockLLMProxy.d.ts.map +1 -0
  20. package/src/nz/co/siliconst/ui5/metaui/ai/MockLLMProxy.js +2 -0
  21. package/src/nz/co/siliconst/ui5/metaui/ai/MockLLMProxy.js.map +1 -0
  22. package/src/nz/co/siliconst/ui5/metaui/ai/MockLLMProxy.ts +59 -0
  23. package/src/nz/co/siliconst/ui5/metaui/ai/RestLLMProxy-dbg.js +50 -0
  24. package/src/nz/co/siliconst/ui5/metaui/ai/RestLLMProxy-dbg.js.map +1 -0
  25. package/src/nz/co/siliconst/ui5/metaui/ai/RestLLMProxy.d.ts +12 -0
  26. package/src/nz/co/siliconst/ui5/metaui/ai/RestLLMProxy.d.ts.map +1 -0
  27. package/src/nz/co/siliconst/ui5/metaui/ai/RestLLMProxy.js +2 -0
  28. package/src/nz/co/siliconst/ui5/metaui/ai/RestLLMProxy.js.map +1 -0
  29. package/src/nz/co/siliconst/ui5/metaui/ai/RestLLMProxy.ts +44 -0
  30. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost-dbg.js +79 -13
  31. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost-dbg.js.map +1 -1
  32. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.d.ts +12 -0
  33. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.d.ts.map +1 -1
  34. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.js +1 -1
  35. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.js.map +1 -1
  36. package/src/nz/co/siliconst/ui5/metaui/controls/DynamicHost.ts +77 -15
  37. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost-dbg.js +31 -1
  38. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost-dbg.js.map +1 -1
  39. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.d.ts +15 -0
  40. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.d.ts.map +1 -1
  41. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.js +1 -1
  42. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.js.map +1 -1
  43. package/src/nz/co/siliconst/ui5/metaui/controls/host/GeneratorHost.ts +26 -1
  44. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate-dbg.js +35 -0
  45. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate-dbg.js.map +1 -1
  46. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.d.ts +8 -0
  47. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.d.ts.map +1 -1
  48. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.js +1 -1
  49. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.js.map +1 -1
  50. package/src/nz/co/siliconst/ui5/metaui/controls/host/delegates/DataSyncDelegate.ts +37 -0
  51. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator-dbg.js +11 -32
  52. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator-dbg.js.map +1 -1
  53. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator.d.ts.map +1 -1
  54. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator.js +1 -1
  55. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator.js.map +1 -1
  56. package/src/nz/co/siliconst/ui5/metaui/core/DefaultLayoutGenerator.ts +9 -13
  57. package/src/nz/co/siliconst/ui5/metaui/core/Engine-dbg.js +6 -2
  58. package/src/nz/co/siliconst/ui5/metaui/core/Engine-dbg.js.map +1 -1
  59. package/src/nz/co/siliconst/ui5/metaui/core/Engine.d.ts +2 -0
  60. package/src/nz/co/siliconst/ui5/metaui/core/Engine.d.ts.map +1 -1
  61. package/src/nz/co/siliconst/ui5/metaui/core/Engine.js +1 -1
  62. package/src/nz/co/siliconst/ui5/metaui/core/Engine.js.map +1 -1
  63. package/src/nz/co/siliconst/ui5/metaui/core/Engine.ts +12 -7
  64. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry-dbg.js +3 -0
  65. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry-dbg.js.map +1 -1
  66. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.d.ts.map +1 -1
  67. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.js +1 -1
  68. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.js.map +1 -1
  69. package/src/nz/co/siliconst/ui5/metaui/core/PluginRegistry.ts +3 -0
  70. package/src/nz/co/siliconst/ui5/metaui/core/SchemaBuilderRegistry-dbg.js +3 -3
  71. package/src/nz/co/siliconst/ui5/metaui/core/SchemaBuilderRegistry-dbg.js.map +1 -1
  72. package/src/nz/co/siliconst/ui5/metaui/core/SchemaBuilderRegistry.d.ts +1 -1
  73. package/src/nz/co/siliconst/ui5/metaui/core/SchemaBuilderRegistry.d.ts.map +1 -1
  74. package/src/nz/co/siliconst/ui5/metaui/core/SchemaBuilderRegistry.js +1 -1
  75. package/src/nz/co/siliconst/ui5/metaui/core/SchemaBuilderRegistry.js.map +1 -1
  76. package/src/nz/co/siliconst/ui5/metaui/core/SchemaBuilderRegistry.ts +3 -3
  77. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer-dbg.js +4 -4
  78. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer-dbg.js.map +1 -1
  79. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.d.ts +2 -2
  80. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.d.ts.map +1 -1
  81. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.js +1 -1
  82. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.js.map +1 -1
  83. package/src/nz/co/siliconst/ui5/metaui/core/SchemaNormalizer.ts +10 -10
  84. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator-dbg.js +1 -1
  85. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator-dbg.js.map +1 -1
  86. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.js +1 -1
  87. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.js.map +1 -1
  88. package/src/nz/co/siliconst/ui5/metaui/core/SchemaValidator.ts +1 -1
  89. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin-dbg.js.map +1 -1
  90. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin.d.ts +1 -1
  91. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin.d.ts.map +1 -1
  92. package/src/nz/co/siliconst/ui5/metaui/interfaces/IPlugin.ts +1 -1
  93. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema-dbg.js.map +1 -1
  94. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema.d.ts +19 -3
  95. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema.d.ts.map +1 -1
  96. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchema.ts +22 -3
  97. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchemaBuilderPlugin-dbg.js.map +1 -1
  98. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchemaBuilderPlugin.d.ts +3 -2
  99. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchemaBuilderPlugin.d.ts.map +1 -1
  100. package/src/nz/co/siliconst/ui5/metaui/interfaces/ISchemaBuilderPlugin.ts +3 -2
  101. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout-dbg.js +18 -2
  102. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout-dbg.js.map +1 -1
  103. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.d.ts.map +1 -1
  104. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.js +1 -1
  105. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.js.map +1 -1
  106. package/src/nz/co/siliconst/ui5/metaui/layouts/TableLayout.ts +19 -2
  107. package/src/nz/co/siliconst/ui5/metaui/library-dbg.js +1 -1
  108. package/src/nz/co/siliconst/ui5/metaui/library-dbg.js.map +1 -1
  109. package/src/nz/co/siliconst/ui5/metaui/library-preload.js +62 -43
  110. package/src/nz/co/siliconst/ui5/metaui/library-preload.js.map +1 -1
  111. package/src/nz/co/siliconst/ui5/metaui/library.d.ts +4 -0
  112. package/src/nz/co/siliconst/ui5/metaui/library.d.ts.map +1 -1
  113. package/src/nz/co/siliconst/ui5/metaui/library.js +1 -1
  114. package/src/nz/co/siliconst/ui5/metaui/library.js.map +1 -1
  115. package/src/nz/co/siliconst/ui5/metaui/library.ts +6 -0
  116. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiBuilder-dbg.js +93 -0
  117. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiBuilder-dbg.js.map +1 -0
  118. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiBuilder.d.ts +52 -0
  119. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiBuilder.d.ts.map +1 -0
  120. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiBuilder.js +2 -0
  121. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiBuilder.js.map +1 -0
  122. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiBuilder.ts +88 -0
  123. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory-dbg.js +47 -0
  124. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory-dbg.js.map +1 -0
  125. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory.d.ts +25 -0
  126. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory.d.ts.map +1 -0
  127. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory.js +2 -0
  128. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory.js.map +1 -0
  129. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiParserFactory.ts +43 -0
  130. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver-dbg.js +68 -0
  131. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver-dbg.js.map +1 -0
  132. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver.d.ts +21 -0
  133. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver.d.ts.map +1 -0
  134. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver.js +2 -0
  135. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver.js.map +1 -0
  136. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiRefResolver.ts +61 -0
  137. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiTypeMapper-dbg.js +45 -0
  138. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiTypeMapper-dbg.js.map +1 -0
  139. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiTypeMapper.d.ts +25 -0
  140. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiTypeMapper.d.ts.map +1 -0
  141. package/src/nz/co/siliconst/ui5/metaui/{swagger/SwaggerTypeMapper.js → openapi/OpenApiTypeMapper.js} +2 -2
  142. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiTypeMapper.js.map +1 -0
  143. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiTypeMapper.ts +36 -0
  144. package/src/nz/co/siliconst/ui5/metaui/{swagger/SwaggerUIMapper-dbg.js → openapi/OpenApiUIMapper-dbg.js} +23 -14
  145. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper-dbg.js.map +1 -0
  146. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper.d.ts +34 -0
  147. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper.d.ts.map +1 -0
  148. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper.js +2 -0
  149. package/src/nz/co/siliconst/ui5/metaui/openapi/OpenApiUIMapper.js.map +1 -0
  150. package/src/nz/co/siliconst/ui5/metaui/{swagger/SwaggerUIMapper.ts → openapi/OpenApiUIMapper.ts} +22 -13
  151. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/OpenApiHeuristicEngine-dbg.js +50 -0
  152. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/OpenApiHeuristicEngine-dbg.js.map +1 -0
  153. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/OpenApiHeuristicEngine.d.ts +25 -0
  154. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/OpenApiHeuristicEngine.d.ts.map +1 -0
  155. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/OpenApiHeuristicEngine.js +2 -0
  156. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/OpenApiHeuristicEngine.js.map +1 -0
  157. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/OpenApiHeuristicEngine.ts +43 -0
  158. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/interfaces/IHeuristicPlugin-dbg.js +2 -0
  159. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/interfaces/IHeuristicPlugin-dbg.js.map +1 -0
  160. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/interfaces/IHeuristicPlugin.d.ts +23 -0
  161. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/interfaces/IHeuristicPlugin.d.ts.map +1 -0
  162. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/interfaces/IHeuristicPlugin.js +2 -0
  163. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/interfaces/IHeuristicPlugin.js.map +1 -0
  164. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/interfaces/IHeuristicPlugin.ts +21 -0
  165. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic-dbg.js +117 -0
  166. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic-dbg.js.map +1 -0
  167. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic.d.ts +47 -0
  168. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic.d.ts.map +1 -0
  169. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic.js +2 -0
  170. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic.js.map +1 -0
  171. package/src/nz/co/siliconst/ui5/metaui/openapi/heuristics/plugins/ProtobufVariantHeuristic.ts +113 -0
  172. package/src/nz/co/siliconst/ui5/metaui/openapi/interfaces/IOpenApiParserPlugin-dbg.js +2 -0
  173. package/src/nz/co/siliconst/ui5/metaui/openapi/interfaces/IOpenApiParserPlugin-dbg.js.map +1 -0
  174. package/src/nz/co/siliconst/ui5/metaui/openapi/interfaces/IOpenApiParserPlugin.d.ts +26 -0
  175. package/src/nz/co/siliconst/ui5/metaui/openapi/interfaces/IOpenApiParserPlugin.d.ts.map +1 -0
  176. package/src/nz/co/siliconst/ui5/metaui/openapi/interfaces/IOpenApiParserPlugin.js +2 -0
  177. package/src/nz/co/siliconst/ui5/metaui/openapi/interfaces/IOpenApiParserPlugin.js.map +1 -0
  178. package/src/nz/co/siliconst/ui5/metaui/openapi/interfaces/IOpenApiParserPlugin.ts +25 -0
  179. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser-dbg.js +106 -0
  180. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser-dbg.js.map +1 -0
  181. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser.d.ts +27 -0
  182. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser.d.ts.map +1 -0
  183. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser.js +2 -0
  184. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser.js.map +1 -0
  185. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi2Parser.ts +104 -0
  186. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser-dbg.js +107 -0
  187. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser-dbg.js.map +1 -0
  188. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser.d.ts +27 -0
  189. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser.d.ts.map +1 -0
  190. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser.js +2 -0
  191. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser.js.map +1 -0
  192. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApi3Parser.ts +105 -0
  193. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper-dbg.js +347 -0
  194. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper-dbg.js.map +1 -0
  195. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper.d.ts +110 -0
  196. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper.d.ts.map +1 -0
  197. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper.js +2 -0
  198. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper.js.map +1 -0
  199. package/src/nz/co/siliconst/ui5/metaui/openapi/parsers/OpenApiPropertyMapper.ts +377 -0
  200. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin-dbg.js +11 -0
  201. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin-dbg.js.map +1 -1
  202. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.d.ts.map +1 -1
  203. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.js +1 -1
  204. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.js.map +1 -1
  205. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ArrayPlugin.ts +13 -0
  206. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin-dbg.js +2 -2
  207. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin-dbg.js.map +1 -1
  208. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.js +1 -1
  209. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.js.map +1 -1
  210. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BarcodeScannerPlugin.ts +2 -2
  211. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin-dbg.js +31 -7
  212. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin-dbg.js.map +1 -1
  213. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.d.ts +17 -1
  214. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.d.ts.map +1 -1
  215. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.js +1 -1
  216. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.js.map +1 -1
  217. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BasePlugin.ts +33 -8
  218. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin-dbg.js +3 -4
  219. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin-dbg.js.map +1 -1
  220. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.d.ts.map +1 -1
  221. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.js +1 -1
  222. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.js.map +1 -1
  223. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/BooleanPlugin.ts +3 -4
  224. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin-dbg.js +2 -2
  225. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin-dbg.js.map +1 -1
  226. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.js +1 -1
  227. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.js.map +1 -1
  228. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CameraPlugin.ts +2 -2
  229. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin-dbg.js +1 -1
  230. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin-dbg.js.map +1 -1
  231. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.js +1 -1
  232. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.js.map +1 -1
  233. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/CodeEditorPlugin.ts +1 -1
  234. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin-dbg.js +4 -8
  235. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin-dbg.js.map +1 -1
  236. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.d.ts.map +1 -1
  237. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.js +1 -1
  238. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.js.map +1 -1
  239. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DatePlugin.ts +4 -8
  240. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin-dbg.js +4 -8
  241. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin-dbg.js.map +1 -1
  242. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.d.ts.map +1 -1
  243. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.js +1 -1
  244. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.js.map +1 -1
  245. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DateTimePlugin.ts +4 -8
  246. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin-dbg.js +217 -0
  247. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin-dbg.js.map +1 -0
  248. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin.d.ts +26 -0
  249. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin.d.ts.map +1 -0
  250. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin.js +2 -0
  251. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin.js.map +1 -0
  252. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DictionaryMapPlugin.ts +249 -0
  253. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin-dbg.js +3 -4
  254. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin-dbg.js.map +1 -1
  255. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.d.ts.map +1 -1
  256. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.js +1 -1
  257. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.js.map +1 -1
  258. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/DropdownPlugin.ts +3 -4
  259. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin-dbg.js +3 -3
  260. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin-dbg.js.map +1 -1
  261. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.js +1 -1
  262. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.js.map +1 -1
  263. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/FileUploaderPlugin.ts +3 -3
  264. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin-dbg.js +3 -4
  265. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin-dbg.js.map +1 -1
  266. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.d.ts.map +1 -1
  267. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.js +1 -1
  268. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.js.map +1 -1
  269. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/GeolocationPlugin.ts +4 -5
  270. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin-dbg.js +1 -1
  271. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin-dbg.js.map +1 -1
  272. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.js +1 -1
  273. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.js.map +1 -1
  274. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MessageStripPlugin.ts +1 -1
  275. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin-dbg.js +115 -49
  276. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin-dbg.js.map +1 -1
  277. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.d.ts +17 -2
  278. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.d.ts.map +1 -1
  279. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.js +1 -1
  280. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.js.map +1 -1
  281. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiInputPlugin.ts +114 -54
  282. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin-dbg.js +3 -4
  283. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin-dbg.js.map +1 -1
  284. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.d.ts.map +1 -1
  285. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.js +1 -1
  286. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.js.map +1 -1
  287. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/MultiSelectPlugin.ts +3 -4
  288. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin-dbg.js +3 -2
  289. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin-dbg.js.map +1 -1
  290. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.d.ts.map +1 -1
  291. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.js +1 -1
  292. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.js.map +1 -1
  293. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/NumberPlugin.ts +3 -2
  294. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin-dbg.js +2 -2
  295. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin-dbg.js.map +1 -1
  296. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.js +1 -1
  297. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.js.map +1 -1
  298. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RatingIndicatorPlugin.ts +2 -2
  299. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin-dbg.js +194 -0
  300. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin-dbg.js.map +1 -0
  301. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin.d.ts +25 -0
  302. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin.d.ts.map +1 -0
  303. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin.js +2 -0
  304. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin.js.map +1 -0
  305. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/ReferencePlugin.ts +192 -0
  306. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin-dbg.js +2 -2
  307. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin-dbg.js.map +1 -1
  308. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.js +1 -1
  309. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.js.map +1 -1
  310. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/RichTextPlugin.ts +2 -2
  311. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin-dbg.js +2 -2
  312. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin-dbg.js.map +1 -1
  313. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.js +1 -1
  314. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.js.map +1 -1
  315. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SignaturePlugin.ts +2 -2
  316. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin-dbg.js +2 -2
  317. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin-dbg.js.map +1 -1
  318. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.js +1 -1
  319. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.js.map +1 -1
  320. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SliderPlugin.ts +2 -2
  321. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin-dbg.js +2 -2
  322. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin-dbg.js.map +1 -1
  323. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin.js +1 -1
  324. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin.js.map +1 -1
  325. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StepInputPlugin.ts +2 -2
  326. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin-dbg.js +2 -2
  327. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin-dbg.js.map +1 -1
  328. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.js +1 -1
  329. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.js.map +1 -1
  330. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/StringPlugin.ts +2 -2
  331. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin-dbg.js +3 -4
  332. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin-dbg.js.map +1 -1
  333. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.d.ts.map +1 -1
  334. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.js +1 -1
  335. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.js.map +1 -1
  336. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/SwitchPlugin.ts +3 -4
  337. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin-dbg.js +2 -2
  338. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin-dbg.js.map +1 -1
  339. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.js +1 -1
  340. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.js.map +1 -1
  341. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TextAreaPlugin.ts +2 -2
  342. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin-dbg.js +4 -8
  343. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin-dbg.js.map +1 -1
  344. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.d.ts.map +1 -1
  345. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.js +1 -1
  346. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.js.map +1 -1
  347. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/TimePlugin.ts +4 -8
  348. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin-dbg.js +3 -4
  349. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin-dbg.js.map +1 -1
  350. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.d.ts.map +1 -1
  351. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.js +1 -1
  352. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.js.map +1 -1
  353. package/src/nz/co/siliconst/ui5/metaui/plugins/controls/VoiceInputPlugin.ts +3 -4
  354. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin-dbg.js +2 -2
  355. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin-dbg.js.map +1 -1
  356. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.js +1 -1
  357. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.js.map +1 -1
  358. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/LiveSearchPlugin.ts +2 -2
  359. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin-dbg.js +2 -2
  360. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin-dbg.js.map +1 -1
  361. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.js +1 -1
  362. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.js.map +1 -1
  363. package/src/nz/co/siliconst/ui5/metaui/plugins/datasources/RemoteValueHelpPlugin.ts +2 -2
  364. package/src/nz/co/siliconst/ui5/metaui/swagger/OpenApiExtractor-dbg.js +146 -0
  365. package/src/nz/co/siliconst/ui5/metaui/swagger/OpenApiExtractor-dbg.js.map +1 -0
  366. package/src/nz/co/siliconst/ui5/metaui/swagger/OpenApiExtractor.d.ts +27 -0
  367. package/src/nz/co/siliconst/ui5/metaui/swagger/OpenApiExtractor.d.ts.map +1 -0
  368. package/src/nz/co/siliconst/ui5/metaui/swagger/OpenApiExtractor.js +2 -0
  369. package/src/nz/co/siliconst/ui5/metaui/swagger/OpenApiExtractor.js.map +1 -0
  370. package/src/nz/co/siliconst/ui5/metaui/swagger/OpenApiExtractor.ts +160 -0
  371. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerBuilder-dbg.js +0 -226
  372. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerBuilder-dbg.js.map +0 -1
  373. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerBuilder.d.ts +0 -63
  374. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerBuilder.d.ts.map +0 -1
  375. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerBuilder.js +0 -2
  376. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerBuilder.js.map +0 -1
  377. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerBuilder.ts +0 -233
  378. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerRefResolver-dbg.js +0 -43
  379. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerRefResolver-dbg.js.map +0 -1
  380. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerRefResolver.d.ts +0 -15
  381. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerRefResolver.d.ts.map +0 -1
  382. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerRefResolver.js +0 -2
  383. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerRefResolver.js.map +0 -1
  384. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerRefResolver.ts +0 -37
  385. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerTypeMapper-dbg.js +0 -37
  386. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerTypeMapper-dbg.js.map +0 -1
  387. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerTypeMapper.d.ts +0 -18
  388. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerTypeMapper.d.ts.map +0 -1
  389. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerTypeMapper.js.map +0 -1
  390. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerTypeMapper.ts +0 -28
  391. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerUIMapper-dbg.js.map +0 -1
  392. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerUIMapper.d.ts +0 -27
  393. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerUIMapper.d.ts.map +0 -1
  394. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerUIMapper.js +0 -2
  395. package/src/nz/co/siliconst/ui5/metaui/swagger/SwaggerUIMapper.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@siliconst/metaui",
3
- "version": "1.4.17",
3
+ "version": "1.4.20",
4
4
  "description": "Dynamic Metadata UI5 Engine",
5
5
  "author": "SiliconStreetDev1",
6
6
  "license": "MIT",
@@ -0,0 +1,47 @@
1
+ sap.ui.define(["./MockLLMProxy"], function (___MockLLMProxy) {
2
+ "use strict";
3
+
4
+ /**
5
+ * @file AIConfig.ts
6
+ * @description Global configuration singleton for AI Inference integrations.
7
+ */
8
+ const MockLLMProxy = ___MockLLMProxy["MockLLMProxy"];
9
+ class AIConfig {
10
+ static activeProxy = new MockLLMProxy();
11
+ static endpointUrl = "/api/mock/ai";
12
+
13
+ /**
14
+ * Sets the active proxy instance (e.g. Mock vs Rest).
15
+ */
16
+ static setProxy(proxy) {
17
+ this.activeProxy = proxy;
18
+ }
19
+
20
+ /**
21
+ * Gets the current active proxy.
22
+ */
23
+ static getProxy() {
24
+ return this.activeProxy;
25
+ }
26
+
27
+ /**
28
+ * Configures the remote URL for the REST LLM Proxy to hit.
29
+ */
30
+ static setEndpointUrl(url) {
31
+ this.endpointUrl = url;
32
+ }
33
+
34
+ /**
35
+ * Gets the configured remote URL.
36
+ */
37
+ static getEndpointUrl() {
38
+ return this.endpointUrl;
39
+ }
40
+ }
41
+ var __exports = {
42
+ __esModule: true
43
+ };
44
+ __exports.AIConfig = AIConfig;
45
+ return __exports;
46
+ });
47
+ //# sourceMappingURL=AIConfig-dbg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AIConfig-dbg.js","names":["MockLLMProxy","___MockLLMProxy","AIConfig","activeProxy","endpointUrl","setProxy","proxy","getProxy","setEndpointUrl","url","getEndpointUrl","__exports","__esModule"],"sources":["AIConfig.ts"],"sourcesContent":["/**\n * @file AIConfig.ts\n * @description Global configuration singleton for AI Inference integrations.\n */\nimport { BaseAIGenerator } from \"./BaseAIGenerator\";\nimport { MockLLMProxy } from \"./MockLLMProxy\";\n\nexport class AIConfig {\n private static activeProxy: BaseAIGenerator = new MockLLMProxy();\n private static endpointUrl: string = \"/api/mock/ai\";\n\n /**\n * Sets the active proxy instance (e.g. Mock vs Rest).\n */\n public static setProxy(proxy: BaseAIGenerator): void {\n this.activeProxy = proxy;\n }\n\n /**\n * Gets the current active proxy.\n */\n public static getProxy(): BaseAIGenerator {\n return this.activeProxy;\n }\n\n /**\n * Configures the remote URL for the REST LLM Proxy to hit.\n */\n public static setEndpointUrl(url: string): void {\n this.endpointUrl = url;\n }\n\n /**\n * Gets the configured remote URL.\n */\n public static getEndpointUrl(): string {\n return this.endpointUrl;\n }\n}\n"],"mappings":";;;EAAA;AACA;AACA;AACA;EAHA,MAKSA,YAAY,GAAAC,eAAA;EAEd,MAAMC,QAAQ,CAAC;IAClB,OAAeC,WAAW,GAAoB,IAAIH,YAAY,CAAC,CAAC;IAChE,OAAeI,WAAW,GAAW,cAAc;;IAEnD;AACJ;AACA;IACI,OAAcC,QAAQA,CAACC,KAAsB,EAAQ;MACjD,IAAI,CAACH,WAAW,GAAGG,KAAK;IAC5B;;IAEA;AACJ;AACA;IACI,OAAcC,QAAQA,CAAA,EAAoB;MACtC,OAAO,IAAI,CAACJ,WAAW;IAC3B;;IAEA;AACJ;AACA;IACI,OAAcK,cAAcA,CAACC,GAAW,EAAQ;MAC5C,IAAI,CAACL,WAAW,GAAGK,GAAG;IAC1B;;IAEA;AACJ;AACA;IACI,OAAcC,cAAcA,CAAA,EAAW;MACnC,OAAO,IAAI,CAACN,WAAW;IAC3B;EACJ;EAAC,IAAAO,SAAA;IAAAC,UAAA;EAAA;EAAAD,SAAA,CAAAT,QAAA,GAAAA,QAAA;EAAA,OAAAS,SAAA;AAAA","ignoreList":[]}
@@ -0,0 +1,28 @@
1
+ declare module "nz/co/siliconst/ui5/metaui/ai/AIConfig" {
2
+ /**
3
+ * @file AIConfig.ts
4
+ * @description Global configuration singleton for AI Inference integrations.
5
+ */
6
+ import { BaseAIGenerator } from "nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator";
7
+ export class AIConfig {
8
+ private static activeProxy;
9
+ private static endpointUrl;
10
+ /**
11
+ * Sets the active proxy instance (e.g. Mock vs Rest).
12
+ */
13
+ static setProxy(proxy: BaseAIGenerator): void;
14
+ /**
15
+ * Gets the current active proxy.
16
+ */
17
+ static getProxy(): BaseAIGenerator;
18
+ /**
19
+ * Configures the remote URL for the REST LLM Proxy to hit.
20
+ */
21
+ static setEndpointUrl(url: string): void;
22
+ /**
23
+ * Gets the configured remote URL.
24
+ */
25
+ static getEndpointUrl(): string;
26
+ }
27
+ }
28
+ //# sourceMappingURL=AIConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AIConfig.d.ts","sourceRoot":"../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/ai/AIConfig.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,wCAAwC,CAAC;IACxD;;;OAGG;IACH,OAAO,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAC;IAGhF,MAAa,QAAQ;QACjB,OAAO,CAAC,MAAM,CAAC,WAAW,CAAuC;QACjE,OAAO,CAAC,MAAM,CAAC,WAAW,CAA0B;QAEpD;;WAEG;eACW,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;QAIpD;;WAEG;eACW,QAAQ,IAAI,eAAe;QAIzC;;WAEG;eACW,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;QAI/C;;WAEG;eACW,cAAc,IAAI,MAAM;KAGzC;CAEA"}
@@ -0,0 +1,2 @@
1
+ sap.ui.define(["./MockLLMProxy"],function(t){"use strict";const i=t["MockLLMProxy"];class r{static activeProxy=new i;static endpointUrl="/api/mock/ai";static setProxy(t){this.activeProxy=t}static getProxy(){return this.activeProxy}static setEndpointUrl(t){this.endpointUrl=t}static getEndpointUrl(){return this.endpointUrl}}var e={__esModule:true};e.AIConfig=r;return e});
2
+ //# sourceMappingURL=AIConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AIConfig.js","names":["MockLLMProxy","___MockLLMProxy","AIConfig","static","setProxy","proxy","this","activeProxy","getProxy","setEndpointUrl","url","endpointUrl","getEndpointUrl","__exports","__esModule"],"sources":["AIConfig.ts"],"sourcesContent":["/**\n * @file AIConfig.ts\n * @description Global configuration singleton for AI Inference integrations.\n */\nimport { BaseAIGenerator } from \"./BaseAIGenerator\";\nimport { MockLLMProxy } from \"./MockLLMProxy\";\n\nexport class AIConfig {\n private static activeProxy: BaseAIGenerator = new MockLLMProxy();\n private static endpointUrl: string = \"/api/mock/ai\";\n\n /**\n * Sets the active proxy instance (e.g. Mock vs Rest).\n */\n public static setProxy(proxy: BaseAIGenerator): void {\n this.activeProxy = proxy;\n }\n\n /**\n * Gets the current active proxy.\n */\n public static getProxy(): BaseAIGenerator {\n return this.activeProxy;\n }\n\n /**\n * Configures the remote URL for the REST LLM Proxy to hit.\n */\n public static setEndpointUrl(url: string): void {\n this.endpointUrl = url;\n }\n\n /**\n * Gets the configured remote URL.\n */\n public static getEndpointUrl(): string {\n return this.endpointUrl;\n }\n}\n"],"mappings":"0DAAA,MAKSA,EAAYC,EAAA,gBAEd,MAAMC,EACTC,mBAA8C,IAAIH,EAClDG,mBAAqC,eAKrC,eAAcC,CAASC,GACnBC,KAAKC,YAAcF,CACvB,CAKA,eAAcG,GACV,OAAOF,KAAKC,WAChB,CAKA,qBAAcE,CAAeC,GACzBJ,KAAKK,YAAcD,CACvB,CAKA,qBAAcE,GACV,OAAON,KAAKK,WAChB,EACH,IAAAE,EAAA,CAAAC,WAAA,MAAAD,EAAAX,WAAA,OAAAW,CAAA","ignoreList":[]}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * @file AIConfig.ts
3
+ * @description Global configuration singleton for AI Inference integrations.
4
+ */
5
+ import { BaseAIGenerator } from "./BaseAIGenerator";
6
+ import { MockLLMProxy } from "./MockLLMProxy";
7
+
8
+ export class AIConfig {
9
+ private static activeProxy: BaseAIGenerator = new MockLLMProxy();
10
+ private static endpointUrl: string = "/api/mock/ai";
11
+
12
+ /**
13
+ * Sets the active proxy instance (e.g. Mock vs Rest).
14
+ */
15
+ public static setProxy(proxy: BaseAIGenerator): void {
16
+ this.activeProxy = proxy;
17
+ }
18
+
19
+ /**
20
+ * Gets the current active proxy.
21
+ */
22
+ public static getProxy(): BaseAIGenerator {
23
+ return this.activeProxy;
24
+ }
25
+
26
+ /**
27
+ * Configures the remote URL for the REST LLM Proxy to hit.
28
+ */
29
+ public static setEndpointUrl(url: string): void {
30
+ this.endpointUrl = url;
31
+ }
32
+
33
+ /**
34
+ * Gets the configured remote URL.
35
+ */
36
+ public static getEndpointUrl(): string {
37
+ return this.endpointUrl;
38
+ }
39
+ }
@@ -0,0 +1,83 @@
1
+ sap.ui.define([], function () {
2
+ "use strict";
3
+
4
+ /**
5
+ * @file BaseAIGenerator.ts
6
+ * @description Abstract base class defining the contract for AI Schema Generation Proxies.
7
+ */
8
+
9
+ class BaseAIGenerator {
10
+ /**
11
+ * Generates a schema dynamically for the provided data payload.
12
+ * @param data The raw data to infer from.
13
+ * @param partialSchema The manual overrides provided by the developer.
14
+ * @returns A promise resolving to the final merged schema.
15
+ */
16
+ async generateSchema(data, partialSchema) {
17
+ // 1. Build a structural skeleton of the data (no real values).
18
+ const dataSkeleton = this.buildDataSkeleton(data, partialSchema);
19
+ if (Object.keys(dataSkeleton).length === 0) {
20
+ // Nothing to infer, the partial schema covered everything.
21
+ return partialSchema || {
22
+ type: "object",
23
+ properties: {}
24
+ };
25
+ }
26
+
27
+ // 2. Delegate to the subclass to get the schema from the LLM.
28
+ const llmGeneratedSchema = await this.callLLM(dataSkeleton);
29
+
30
+ // 3. Deep merge the partial schema over the LLM schema.
31
+ return this.deepMergeSchemas(llmGeneratedSchema, partialSchema);
32
+ }
33
+
34
+ /**
35
+ * Abstract method implemented by proxies to handle network/mock calls.
36
+ * @param dataSkeleton The structure of unknown fields.
37
+ */
38
+
39
+ /**
40
+ * Strips actual values and ignores fields already defined in the partial schema.
41
+ */
42
+ buildDataSkeleton(data, partialSchema) {
43
+ const skeleton = {};
44
+ if (!data || typeof data !== "object") return skeleton;
45
+ const definedKeys = partialSchema?.properties ? Object.keys(partialSchema.properties) : [];
46
+ for (const key of Object.keys(data)) {
47
+ if (!definedKeys.includes(key)) {
48
+ skeleton[key] = `type: ${typeof data[key]}`;
49
+ }
50
+ }
51
+ return skeleton;
52
+ }
53
+
54
+ /**
55
+ * Merges a manual partial schema over the LLM generated schema.
56
+ */
57
+ deepMergeSchemas(base, override) {
58
+ if (!override) return base;
59
+ const merged = {
60
+ ...base
61
+ };
62
+ for (const key of Object.keys(override)) {
63
+ const overrideVal = override[key];
64
+ const baseVal = merged[key];
65
+ if (baseVal && typeof baseVal === "object" && !Array.isArray(baseVal) && overrideVal && typeof overrideVal === "object" && !Array.isArray(overrideVal)) {
66
+ merged[key] = {
67
+ ...baseVal,
68
+ ...overrideVal
69
+ };
70
+ } else {
71
+ merged[key] = overrideVal;
72
+ }
73
+ }
74
+ return merged;
75
+ }
76
+ }
77
+ var __exports = {
78
+ __esModule: true
79
+ };
80
+ __exports.BaseAIGenerator = BaseAIGenerator;
81
+ return __exports;
82
+ });
83
+ //# sourceMappingURL=BaseAIGenerator-dbg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseAIGenerator-dbg.js","names":["BaseAIGenerator","generateSchema","data","partialSchema","dataSkeleton","buildDataSkeleton","Object","keys","length","type","properties","llmGeneratedSchema","callLLM","deepMergeSchemas","skeleton","definedKeys","key","includes","base","override","merged","overrideVal","baseVal","Array","isArray","__exports","__esModule"],"sources":["BaseAIGenerator.ts"],"sourcesContent":["/**\n * @file BaseAIGenerator.ts\n * @description Abstract base class defining the contract for AI Schema Generation Proxies.\n */\nimport { ISchema } from \"../interfaces/ISchema\";\n\nexport abstract class BaseAIGenerator {\n\n /**\n * Generates a schema dynamically for the provided data payload.\n * @param data The raw data to infer from.\n * @param partialSchema The manual overrides provided by the developer.\n * @returns A promise resolving to the final merged schema.\n */\n public async generateSchema(data: object, partialSchema?: ISchema): Promise<ISchema> {\n // 1. Build a structural skeleton of the data (no real values).\n const dataSkeleton = this.buildDataSkeleton(data, partialSchema);\n\n if (Object.keys(dataSkeleton).length === 0) {\n // Nothing to infer, the partial schema covered everything.\n return partialSchema || { type: \"object\", properties: {} };\n }\n\n // 2. Delegate to the subclass to get the schema from the LLM.\n const llmGeneratedSchema = await this.callLLM(dataSkeleton);\n\n // 3. Deep merge the partial schema over the LLM schema.\n return this.deepMergeSchemas(llmGeneratedSchema, partialSchema);\n }\n\n /**\n * Abstract method implemented by proxies to handle network/mock calls.\n * @param dataSkeleton The structure of unknown fields.\n */\n protected abstract callLLM(dataSkeleton: Record<string, string>): Promise<ISchema>;\n\n /**\n * Strips actual values and ignores fields already defined in the partial schema.\n */\n private buildDataSkeleton(data: unknown, partialSchema?: ISchema): Record<string, string> {\n const skeleton: Record<string, string> = {};\n if (!data || typeof data !== \"object\") return skeleton;\n\n const definedKeys = partialSchema?.properties ? Object.keys(partialSchema.properties) : [];\n\n for (const key of Object.keys(data)) {\n if (!definedKeys.includes(key)) {\n skeleton[key] = `type: ${typeof data[key]}`;\n }\n }\n return skeleton;\n }\n\n /**\n * Merges a manual partial schema over the LLM generated schema.\n */\n private deepMergeSchemas(base: ISchema, override?: ISchema): ISchema {\n if (!override) return base;\n \n const merged: Record<string, unknown> = { ...base };\n for (const key of Object.keys(override)) {\n const overrideVal = (override as any)[key];\n const baseVal = merged[key];\n\n if (baseVal && typeof baseVal === \"object\" && !Array.isArray(baseVal) &&\n overrideVal && typeof overrideVal === \"object\" && !Array.isArray(overrideVal)) {\n merged[key] = { ...baseVal, ...overrideVal };\n } else {\n merged[key] = overrideVal;\n }\n }\n return merged;\n }\n}\n"],"mappings":";;;EAAA;AACA;AACA;AACA;;EAGO,MAAeA,eAAe,CAAC;IAElC;AACJ;AACA;AACA;AACA;AACA;IACI,MAAaC,cAAcA,CAACC,IAAY,EAAEC,aAAuB,EAAoB;MACjF;MACA,MAAMC,YAAY,GAAG,IAAI,CAACC,iBAAiB,CAACH,IAAI,EAAEC,aAAa,CAAC;MAEhE,IAAIG,MAAM,CAACC,IAAI,CAACH,YAAY,CAAC,CAACI,MAAM,KAAK,CAAC,EAAE;QACxC;QACA,OAAOL,aAAa,IAAI;UAAEM,IAAI,EAAE,QAAQ;UAAEC,UAAU,EAAE,CAAC;QAAE,CAAC;MAC9D;;MAEA;MACA,MAAMC,kBAAkB,GAAG,MAAM,IAAI,CAACC,OAAO,CAACR,YAAY,CAAC;;MAE3D;MACA,OAAO,IAAI,CAACS,gBAAgB,CAACF,kBAAkB,EAAER,aAAa,CAAC;IACnE;;IAEA;AACJ;AACA;AACA;;IAGI;AACJ;AACA;IACYE,iBAAiBA,CAACH,IAAa,EAAEC,aAAuB,EAA0B;MACtF,MAAMW,QAAgC,GAAG,CAAC,CAAC;MAC3C,IAAI,CAACZ,IAAI,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE,OAAOY,QAAQ;MAEtD,MAAMC,WAAW,GAAGZ,aAAa,EAAEO,UAAU,GAAGJ,MAAM,CAACC,IAAI,CAACJ,aAAa,CAACO,UAAU,CAAC,GAAG,EAAE;MAE1F,KAAK,MAAMM,GAAG,IAAIV,MAAM,CAACC,IAAI,CAACL,IAAI,CAAC,EAAE;QACjC,IAAI,CAACa,WAAW,CAACE,QAAQ,CAACD,GAAG,CAAC,EAAE;UAC5BF,QAAQ,CAACE,GAAG,CAAC,GAAG,SAAS,OAAOd,IAAI,CAACc,GAAG,CAAC,EAAE;QAC/C;MACJ;MACA,OAAOF,QAAQ;IACnB;;IAEA;AACJ;AACA;IACYD,gBAAgBA,CAACK,IAAa,EAAEC,QAAkB,EAAW;MACjE,IAAI,CAACA,QAAQ,EAAE,OAAOD,IAAI;MAE1B,MAAME,MAA+B,GAAG;QAAE,GAAGF;MAAK,CAAC;MACnD,KAAK,MAAMF,GAAG,IAAIV,MAAM,CAACC,IAAI,CAACY,QAAQ,CAAC,EAAE;QACrC,MAAME,WAAW,GAAIF,QAAQ,CAASH,GAAG,CAAC;QAC1C,MAAMM,OAAO,GAAGF,MAAM,CAACJ,GAAG,CAAC;QAE3B,IAAIM,OAAO,IAAI,OAAOA,OAAO,KAAK,QAAQ,IAAI,CAACC,KAAK,CAACC,OAAO,CAACF,OAAO,CAAC,IACjED,WAAW,IAAI,OAAOA,WAAW,KAAK,QAAQ,IAAI,CAACE,KAAK,CAACC,OAAO,CAACH,WAAW,CAAC,EAAE;UAC/ED,MAAM,CAACJ,GAAG,CAAC,GAAG;YAAE,GAAGM,OAAO;YAAE,GAAGD;UAAY,CAAC;QAChD,CAAC,MAAM;UACHD,MAAM,CAACJ,GAAG,CAAC,GAAGK,WAAW;QAC7B;MACJ;MACA,OAAOD,MAAM;IACjB;EACJ;EAAC,IAAAK,SAAA;IAAAC,UAAA;EAAA;EAAAD,SAAA,CAAAzB,eAAA,GAAAA,eAAA;EAAA,OAAAyB,SAAA;AAAA","ignoreList":[]}
@@ -0,0 +1,30 @@
1
+ declare module "nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator" {
2
+ /**
3
+ * @file BaseAIGenerator.ts
4
+ * @description Abstract base class defining the contract for AI Schema Generation Proxies.
5
+ */
6
+ import { ISchema } from "nz/co/siliconst/ui5/metaui/interfaces/ISchema";
7
+ export abstract class BaseAIGenerator {
8
+ /**
9
+ * Generates a schema dynamically for the provided data payload.
10
+ * @param data The raw data to infer from.
11
+ * @param partialSchema The manual overrides provided by the developer.
12
+ * @returns A promise resolving to the final merged schema.
13
+ */
14
+ generateSchema(data: object, partialSchema?: ISchema): Promise<ISchema>;
15
+ /**
16
+ * Abstract method implemented by proxies to handle network/mock calls.
17
+ * @param dataSkeleton The structure of unknown fields.
18
+ */
19
+ protected abstract callLLM(dataSkeleton: Record<string, string>): Promise<ISchema>;
20
+ /**
21
+ * Strips actual values and ignores fields already defined in the partial schema.
22
+ */
23
+ private buildDataSkeleton;
24
+ /**
25
+ * Merges a manual partial schema over the LLM generated schema.
26
+ */
27
+ private deepMergeSchemas;
28
+ }
29
+ }
30
+ //# sourceMappingURL=BaseAIGenerator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseAIGenerator.d.ts","sourceRoot":"../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,+CAA+C,CAAC;IAC/D;;;OAGG;IACH,OAAO,EAAE,OAAO,EAAE,MAAM,+CAA+C,CAAC;IAExE,eAAsB,eAAe;QAEjC;;;;;WAKG;QACU,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAgBpF;;;WAGG;QACH,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;QAElF;;WAEG;QACH,OAAO,CAAC,iBAAiB;QAczB;;WAEG;QACH,OAAO,CAAC,gBAAgB;KAiB3B;CAEA"}
@@ -0,0 +1,2 @@
1
+ sap.ui.define([],function(){"use strict";class e{async generateSchema(e,t){const r=this.buildDataSkeleton(e,t);if(Object.keys(r).length===0){return t||{type:"object",properties:{}}}const s=await this.callLLM(r);return this.deepMergeSchemas(s,t)}buildDataSkeleton(e,t){const r={};if(!e||typeof e!=="object")return r;const s=t?.properties?Object.keys(t.properties):[];for(const t of Object.keys(e)){if(!s.includes(t)){r[t]=`type: ${typeof e[t]}`}}return r}deepMergeSchemas(e,t){if(!t)return e;const r={...e};for(const e of Object.keys(t)){const s=t[e];const o=r[e];if(o&&typeof o==="object"&&!Array.isArray(o)&&s&&typeof s==="object"&&!Array.isArray(s)){r[e]={...o,...s}}else{r[e]=s}}return r}}var t={__esModule:true};t.BaseAIGenerator=e;return t});
2
+ //# sourceMappingURL=BaseAIGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseAIGenerator.js","names":["BaseAIGenerator","generateSchema","data","partialSchema","dataSkeleton","this","buildDataSkeleton","Object","keys","length","type","properties","llmGeneratedSchema","callLLM","deepMergeSchemas","skeleton","definedKeys","key","includes","base","override","merged","overrideVal","baseVal","Array","isArray","__exports","__esModule"],"sources":["BaseAIGenerator.ts"],"sourcesContent":["/**\n * @file BaseAIGenerator.ts\n * @description Abstract base class defining the contract for AI Schema Generation Proxies.\n */\nimport { ISchema } from \"../interfaces/ISchema\";\n\nexport abstract class BaseAIGenerator {\n\n /**\n * Generates a schema dynamically for the provided data payload.\n * @param data The raw data to infer from.\n * @param partialSchema The manual overrides provided by the developer.\n * @returns A promise resolving to the final merged schema.\n */\n public async generateSchema(data: object, partialSchema?: ISchema): Promise<ISchema> {\n // 1. Build a structural skeleton of the data (no real values).\n const dataSkeleton = this.buildDataSkeleton(data, partialSchema);\n\n if (Object.keys(dataSkeleton).length === 0) {\n // Nothing to infer, the partial schema covered everything.\n return partialSchema || { type: \"object\", properties: {} };\n }\n\n // 2. Delegate to the subclass to get the schema from the LLM.\n const llmGeneratedSchema = await this.callLLM(dataSkeleton);\n\n // 3. Deep merge the partial schema over the LLM schema.\n return this.deepMergeSchemas(llmGeneratedSchema, partialSchema);\n }\n\n /**\n * Abstract method implemented by proxies to handle network/mock calls.\n * @param dataSkeleton The structure of unknown fields.\n */\n protected abstract callLLM(dataSkeleton: Record<string, string>): Promise<ISchema>;\n\n /**\n * Strips actual values and ignores fields already defined in the partial schema.\n */\n private buildDataSkeleton(data: unknown, partialSchema?: ISchema): Record<string, string> {\n const skeleton: Record<string, string> = {};\n if (!data || typeof data !== \"object\") return skeleton;\n\n const definedKeys = partialSchema?.properties ? Object.keys(partialSchema.properties) : [];\n\n for (const key of Object.keys(data)) {\n if (!definedKeys.includes(key)) {\n skeleton[key] = `type: ${typeof data[key]}`;\n }\n }\n return skeleton;\n }\n\n /**\n * Merges a manual partial schema over the LLM generated schema.\n */\n private deepMergeSchemas(base: ISchema, override?: ISchema): ISchema {\n if (!override) return base;\n \n const merged: Record<string, unknown> = { ...base };\n for (const key of Object.keys(override)) {\n const overrideVal = (override as any)[key];\n const baseVal = merged[key];\n\n if (baseVal && typeof baseVal === \"object\" && !Array.isArray(baseVal) &&\n overrideVal && typeof overrideVal === \"object\" && !Array.isArray(overrideVal)) {\n merged[key] = { ...baseVal, ...overrideVal };\n } else {\n merged[key] = overrideVal;\n }\n }\n return merged;\n }\n}\n"],"mappings":"yCAMO,MAAeA,EAQlB,oBAAaC,CAAeC,EAAcC,GAEtC,MAAMC,EAAeC,KAAKC,kBAAkBJ,EAAMC,GAElD,GAAII,OAAOC,KAAKJ,GAAcK,SAAW,EAAG,CAExC,OAAON,GAAiB,CAAEO,KAAM,SAAUC,WAAY,CAAC,EAC3D,CAGA,MAAMC,QAA2BP,KAAKQ,QAAQT,GAG9C,OAAOC,KAAKS,iBAAiBF,EAAoBT,EACrD,CAWQG,kBAAkBJ,EAAeC,GACrC,MAAMY,EAAmC,CAAC,EAC1C,IAAKb,UAAeA,IAAS,SAAU,OAAOa,EAE9C,MAAMC,EAAcb,GAAeQ,WAAaJ,OAAOC,KAAKL,EAAcQ,YAAc,GAExF,IAAK,MAAMM,KAAOV,OAAOC,KAAKN,GAAO,CACjC,IAAKc,EAAYE,SAASD,GAAM,CAC5BF,EAASE,GAAO,gBAAgBf,EAAKe,IACzC,CACJ,CACA,OAAOF,CACX,CAKQD,iBAAiBK,EAAeC,GACpC,IAAKA,EAAU,OAAOD,EAEtB,MAAME,EAAkC,IAAKF,GAC7C,IAAK,MAAMF,KAAOV,OAAOC,KAAKY,GAAW,CACrC,MAAME,EAAeF,EAAiBH,GACtC,MAAMM,EAAUF,EAAOJ,GAEvB,GAAIM,UAAkBA,IAAY,WAAaC,MAAMC,QAAQF,IACzDD,UAAsBA,IAAgB,WAAaE,MAAMC,QAAQH,GAAc,CAC/ED,EAAOJ,GAAO,IAAKM,KAAYD,EACnC,KAAO,CACHD,EAAOJ,GAAOK,CAClB,CACJ,CACA,OAAOD,CACX,EACH,IAAAK,EAAA,CAAAC,WAAA,MAAAD,EAAA1B,kBAAA,OAAA0B,CAAA","ignoreList":[]}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * @file BaseAIGenerator.ts
3
+ * @description Abstract base class defining the contract for AI Schema Generation Proxies.
4
+ */
5
+ import { ISchema } from "../interfaces/ISchema";
6
+
7
+ export abstract class BaseAIGenerator {
8
+
9
+ /**
10
+ * Generates a schema dynamically for the provided data payload.
11
+ * @param data The raw data to infer from.
12
+ * @param partialSchema The manual overrides provided by the developer.
13
+ * @returns A promise resolving to the final merged schema.
14
+ */
15
+ public async generateSchema(data: object, partialSchema?: ISchema): Promise<ISchema> {
16
+ // 1. Build a structural skeleton of the data (no real values).
17
+ const dataSkeleton = this.buildDataSkeleton(data, partialSchema);
18
+
19
+ if (Object.keys(dataSkeleton).length === 0) {
20
+ // Nothing to infer, the partial schema covered everything.
21
+ return partialSchema || { type: "object", properties: {} };
22
+ }
23
+
24
+ // 2. Delegate to the subclass to get the schema from the LLM.
25
+ const llmGeneratedSchema = await this.callLLM(dataSkeleton);
26
+
27
+ // 3. Deep merge the partial schema over the LLM schema.
28
+ return this.deepMergeSchemas(llmGeneratedSchema, partialSchema);
29
+ }
30
+
31
+ /**
32
+ * Abstract method implemented by proxies to handle network/mock calls.
33
+ * @param dataSkeleton The structure of unknown fields.
34
+ */
35
+ protected abstract callLLM(dataSkeleton: Record<string, string>): Promise<ISchema>;
36
+
37
+ /**
38
+ * Strips actual values and ignores fields already defined in the partial schema.
39
+ */
40
+ private buildDataSkeleton(data: unknown, partialSchema?: ISchema): Record<string, string> {
41
+ const skeleton: Record<string, string> = {};
42
+ if (!data || typeof data !== "object") return skeleton;
43
+
44
+ const definedKeys = partialSchema?.properties ? Object.keys(partialSchema.properties) : [];
45
+
46
+ for (const key of Object.keys(data)) {
47
+ if (!definedKeys.includes(key)) {
48
+ skeleton[key] = `type: ${typeof data[key]}`;
49
+ }
50
+ }
51
+ return skeleton;
52
+ }
53
+
54
+ /**
55
+ * Merges a manual partial schema over the LLM generated schema.
56
+ */
57
+ private deepMergeSchemas(base: ISchema, override?: ISchema): ISchema {
58
+ if (!override) return base;
59
+
60
+ const merged: Record<string, unknown> = { ...base };
61
+ for (const key of Object.keys(override)) {
62
+ const overrideVal = (override as any)[key];
63
+ const baseVal = merged[key];
64
+
65
+ if (baseVal && typeof baseVal === "object" && !Array.isArray(baseVal) &&
66
+ overrideVal && typeof overrideVal === "object" && !Array.isArray(overrideVal)) {
67
+ merged[key] = { ...baseVal, ...overrideVal };
68
+ } else {
69
+ merged[key] = overrideVal;
70
+ }
71
+ }
72
+ return merged;
73
+ }
74
+ }
@@ -0,0 +1,61 @@
1
+ sap.ui.define(["./BaseAIGenerator", "../utils/Logger"], function (___BaseAIGenerator, ___utils_Logger) {
2
+ "use strict";
3
+
4
+ /**
5
+ * @file MockLLMProxy.ts
6
+ * @description Simulates an LLM backend call with a timeout.
7
+ */
8
+ const BaseAIGenerator = ___BaseAIGenerator["BaseAIGenerator"];
9
+ const Logger = ___utils_Logger["Logger"];
10
+ class MockLLMProxy extends BaseAIGenerator {
11
+ callLLM(dataSkeleton) {
12
+ return new Promise(resolve => {
13
+ Logger.info("[MockLLMProxy]", "Simulating AI Schema generation for keys:", Object.keys(dataSkeleton));
14
+ setTimeout(() => {
15
+ const schema = {
16
+ type: "object",
17
+ properties: {}
18
+ };
19
+
20
+ // Naive mocked mapping for demo purposes.
21
+ // In reality, the LLM provides this enriched schema.
22
+ for (const key of Object.keys(dataSkeleton)) {
23
+ const metadata = {
24
+ type: dataSkeleton[key].includes("number") ? "number" : "string",
25
+ ui: {
26
+ label: this.camelCaseToTitle(key)
27
+ }
28
+ };
29
+ if (key.toLowerCase().includes("email")) {
30
+ metadata.ui.widget = "email";
31
+ metadata.ui.format = "email";
32
+ } else if (key.toLowerCase().includes("phone")) {
33
+ metadata.ui.widget = "phone";
34
+ metadata.ui.format = "phone";
35
+ } else if (key.toLowerCase().includes("date")) {
36
+ metadata.ui.widget = "date";
37
+ } else if (key.toLowerCase().includes("active") || key.toLowerCase().includes("is")) {
38
+ metadata.type = "boolean";
39
+ metadata.ui.widget = "switch";
40
+ } else if (key.toLowerCase().includes("limit") || key.toLowerCase().includes("amount") || key.toLowerCase().includes("salary")) {
41
+ metadata.type = "number";
42
+ metadata.ui.widget = "currency";
43
+ }
44
+ schema.properties[key] = metadata;
45
+ }
46
+ Logger.info("[MockLLMProxy]", "Schema generation complete.");
47
+ resolve(schema);
48
+ }, 1500); // Emulate 1.5s network/LLM latency
49
+ });
50
+ }
51
+ camelCaseToTitle(str) {
52
+ return str.replace(/([A-Z])/g, ' $1').replace(/^./, s => s.toUpperCase());
53
+ }
54
+ }
55
+ var __exports = {
56
+ __esModule: true
57
+ };
58
+ __exports.MockLLMProxy = MockLLMProxy;
59
+ return __exports;
60
+ });
61
+ //# sourceMappingURL=MockLLMProxy-dbg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MockLLMProxy-dbg.js","names":["BaseAIGenerator","___BaseAIGenerator","Logger","___utils_Logger","MockLLMProxy","callLLM","dataSkeleton","Promise","resolve","info","Object","keys","setTimeout","schema","type","properties","key","metadata","includes","ui","label","camelCaseToTitle","toLowerCase","widget","format","str","replace","s","toUpperCase","__exports","__esModule"],"sources":["MockLLMProxy.ts"],"sourcesContent":["/**\n * @file MockLLMProxy.ts\n * @description Simulates an LLM backend call with a timeout.\n */\nimport { BaseAIGenerator } from \"./BaseAIGenerator\";\nimport { ISchema, IPropertyMetadata } from \"../interfaces/ISchema\";\nimport { Logger } from \"../utils/Logger\";\n\nexport class MockLLMProxy extends BaseAIGenerator {\n \n protected callLLM(dataSkeleton: Record<string, string>): Promise<ISchema> {\n return new Promise((resolve) => {\n Logger.info(\"[MockLLMProxy]\", \"Simulating AI Schema generation for keys:\", Object.keys(dataSkeleton));\n \n setTimeout(() => {\n const schema: ISchema = {\n type: \"object\",\n properties: {}\n };\n\n // Naive mocked mapping for demo purposes.\n // In reality, the LLM provides this enriched schema.\n for (const key of Object.keys(dataSkeleton)) {\n const metadata: IPropertyMetadata = {\n type: dataSkeleton[key].includes(\"number\") ? \"number\" : \"string\",\n ui: {\n label: this.camelCaseToTitle(key)\n }\n };\n\n if (key.toLowerCase().includes(\"email\")) {\n metadata.ui!.widget = \"email\";\n metadata.ui!.format = \"email\";\n } else if (key.toLowerCase().includes(\"phone\")) {\n metadata.ui!.widget = \"phone\";\n metadata.ui!.format = \"phone\";\n } else if (key.toLowerCase().includes(\"date\")) {\n metadata.ui!.widget = \"date\";\n } else if (key.toLowerCase().includes(\"active\") || key.toLowerCase().includes(\"is\")) {\n metadata.type = \"boolean\";\n metadata.ui!.widget = \"switch\";\n } else if (key.toLowerCase().includes(\"limit\") || key.toLowerCase().includes(\"amount\") || key.toLowerCase().includes(\"salary\")) {\n metadata.type = \"number\";\n metadata.ui!.widget = \"currency\";\n }\n\n schema.properties![key] = metadata;\n }\n\n Logger.info(\"[MockLLMProxy]\", \"Schema generation complete.\");\n resolve(schema);\n }, 1500); // Emulate 1.5s network/LLM latency\n });\n }\n\n private camelCaseToTitle(str: string): string {\n return str.replace(/([A-Z])/g, ' $1').replace(/^./, (s) => s.toUpperCase());\n }\n}\n"],"mappings":";;;EAAA;AACA;AACA;AACA;EAHA,MAISA,eAAe,GAAAC,kBAAA;EAAA,MAEfC,MAAM,GAAAC,eAAA;EAER,MAAMC,YAAY,SAASJ,eAAe,CAAC;IAEpCK,OAAOA,CAACC,YAAoC,EAAoB;MACtE,OAAO,IAAIC,OAAO,CAAEC,OAAO,IAAK;QAC5BN,MAAM,CAACO,IAAI,CAAC,gBAAgB,EAAE,2CAA2C,EAAEC,MAAM,CAACC,IAAI,CAACL,YAAY,CAAC,CAAC;QAErGM,UAAU,CAAC,MAAM;UACb,MAAMC,MAAe,GAAG;YACpBC,IAAI,EAAE,QAAQ;YACdC,UAAU,EAAE,CAAC;UACjB,CAAC;;UAED;UACA;UACA,KAAK,MAAMC,GAAG,IAAIN,MAAM,CAACC,IAAI,CAACL,YAAY,CAAC,EAAE;YACzC,MAAMW,QAA2B,GAAG;cAChCH,IAAI,EAAER,YAAY,CAACU,GAAG,CAAC,CAACE,QAAQ,CAAC,QAAQ,CAAC,GAAG,QAAQ,GAAG,QAAQ;cAChEC,EAAE,EAAE;gBACAC,KAAK,EAAE,IAAI,CAACC,gBAAgB,CAACL,GAAG;cACpC;YACJ,CAAC;YAED,IAAIA,GAAG,CAACM,WAAW,CAAC,CAAC,CAACJ,QAAQ,CAAC,OAAO,CAAC,EAAE;cACrCD,QAAQ,CAACE,EAAE,CAAEI,MAAM,GAAG,OAAO;cAC7BN,QAAQ,CAACE,EAAE,CAAEK,MAAM,GAAG,OAAO;YACjC,CAAC,MAAM,IAAIR,GAAG,CAACM,WAAW,CAAC,CAAC,CAACJ,QAAQ,CAAC,OAAO,CAAC,EAAE;cAC5CD,QAAQ,CAACE,EAAE,CAAEI,MAAM,GAAG,OAAO;cAC7BN,QAAQ,CAACE,EAAE,CAAEK,MAAM,GAAG,OAAO;YACjC,CAAC,MAAM,IAAIR,GAAG,CAACM,WAAW,CAAC,CAAC,CAACJ,QAAQ,CAAC,MAAM,CAAC,EAAE;cAC3CD,QAAQ,CAACE,EAAE,CAAEI,MAAM,GAAG,MAAM;YAChC,CAAC,MAAM,IAAIP,GAAG,CAACM,WAAW,CAAC,CAAC,CAACJ,QAAQ,CAAC,QAAQ,CAAC,IAAIF,GAAG,CAACM,WAAW,CAAC,CAAC,CAACJ,QAAQ,CAAC,IAAI,CAAC,EAAE;cACjFD,QAAQ,CAACH,IAAI,GAAG,SAAS;cACzBG,QAAQ,CAACE,EAAE,CAAEI,MAAM,GAAG,QAAQ;YAClC,CAAC,MAAM,IAAIP,GAAG,CAACM,WAAW,CAAC,CAAC,CAACJ,QAAQ,CAAC,OAAO,CAAC,IAAIF,GAAG,CAACM,WAAW,CAAC,CAAC,CAACJ,QAAQ,CAAC,QAAQ,CAAC,IAAIF,GAAG,CAACM,WAAW,CAAC,CAAC,CAACJ,QAAQ,CAAC,QAAQ,CAAC,EAAE;cAC5HD,QAAQ,CAACH,IAAI,GAAG,QAAQ;cACxBG,QAAQ,CAACE,EAAE,CAAEI,MAAM,GAAG,UAAU;YACpC;YAEAV,MAAM,CAACE,UAAU,CAAEC,GAAG,CAAC,GAAGC,QAAQ;UACtC;UAEAf,MAAM,CAACO,IAAI,CAAC,gBAAgB,EAAE,6BAA6B,CAAC;UAC5DD,OAAO,CAACK,MAAM,CAAC;QACnB,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;MACd,CAAC,CAAC;IACN;IAEQQ,gBAAgBA,CAACI,GAAW,EAAU;MAC1C,OAAOA,GAAG,CAACC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAACA,OAAO,CAAC,IAAI,EAAGC,CAAC,IAAKA,CAAC,CAACC,WAAW,CAAC,CAAC,CAAC;IAC/E;EACJ;EAAC,IAAAC,SAAA;IAAAC,UAAA;EAAA;EAAAD,SAAA,CAAAzB,YAAA,GAAAA,YAAA;EAAA,OAAAyB,SAAA;AAAA","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ declare module "nz/co/siliconst/ui5/metaui/ai/MockLLMProxy" {
2
+ /**
3
+ * @file MockLLMProxy.ts
4
+ * @description Simulates an LLM backend call with a timeout.
5
+ */
6
+ import { BaseAIGenerator } from "nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator";
7
+ import { ISchema } from "nz/co/siliconst/ui5/metaui/interfaces/ISchema";
8
+ export class MockLLMProxy extends BaseAIGenerator {
9
+ protected callLLM(dataSkeleton: Record<string, string>): Promise<ISchema>;
10
+ private camelCaseToTitle;
11
+ }
12
+ }
13
+ //# sourceMappingURL=MockLLMProxy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MockLLMProxy.d.ts","sourceRoot":"../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/ai/MockLLMProxy.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,4CAA4C,CAAC;IAC5D;;;OAGG;IACH,OAAO,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAC;IAChF,OAAO,EAAE,OAAO,EAAqB,MAAM,+CAA+C,CAAC;IAG3F,MAAa,YAAa,SAAQ,eAAe;QAE7C,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;QA6CzE,OAAO,CAAC,gBAAgB;KAG3B;CAEA"}
@@ -0,0 +1,2 @@
1
+ sap.ui.define(["./BaseAIGenerator","../utils/Logger"],function(e,o){"use strict";const t=e["BaseAIGenerator"];const i=o["Logger"];class s extends t{callLLM(e){return new Promise(o=>{i.info("[MockLLMProxy]","Simulating AI Schema generation for keys:",Object.keys(e));setTimeout(()=>{const t={type:"object",properties:{}};for(const o of Object.keys(e)){const i={type:e[o].includes("number")?"number":"string",ui:{label:this.camelCaseToTitle(o)}};if(o.toLowerCase().includes("email")){i.ui.widget="email";i.ui.format="email"}else if(o.toLowerCase().includes("phone")){i.ui.widget="phone";i.ui.format="phone"}else if(o.toLowerCase().includes("date")){i.ui.widget="date"}else if(o.toLowerCase().includes("active")||o.toLowerCase().includes("is")){i.type="boolean";i.ui.widget="switch"}else if(o.toLowerCase().includes("limit")||o.toLowerCase().includes("amount")||o.toLowerCase().includes("salary")){i.type="number";i.ui.widget="currency"}t.properties[o]=i}i.info("[MockLLMProxy]","Schema generation complete.");o(t)},1500)})}camelCaseToTitle(e){return e.replace(/([A-Z])/g," $1").replace(/^./,e=>e.toUpperCase())}}var r={__esModule:true};r.MockLLMProxy=s;return r});
2
+ //# sourceMappingURL=MockLLMProxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MockLLMProxy.js","names":["BaseAIGenerator","___BaseAIGenerator","Logger","___utils_Logger","MockLLMProxy","callLLM","dataSkeleton","Promise","resolve","info","Object","keys","setTimeout","schema","type","properties","key","metadata","includes","ui","label","this","camelCaseToTitle","toLowerCase","widget","format","str","replace","s","toUpperCase","__exports","__esModule"],"sources":["MockLLMProxy.ts"],"sourcesContent":["/**\n * @file MockLLMProxy.ts\n * @description Simulates an LLM backend call with a timeout.\n */\nimport { BaseAIGenerator } from \"./BaseAIGenerator\";\nimport { ISchema, IPropertyMetadata } from \"../interfaces/ISchema\";\nimport { Logger } from \"../utils/Logger\";\n\nexport class MockLLMProxy extends BaseAIGenerator {\n \n protected callLLM(dataSkeleton: Record<string, string>): Promise<ISchema> {\n return new Promise((resolve) => {\n Logger.info(\"[MockLLMProxy]\", \"Simulating AI Schema generation for keys:\", Object.keys(dataSkeleton));\n \n setTimeout(() => {\n const schema: ISchema = {\n type: \"object\",\n properties: {}\n };\n\n // Naive mocked mapping for demo purposes.\n // In reality, the LLM provides this enriched schema.\n for (const key of Object.keys(dataSkeleton)) {\n const metadata: IPropertyMetadata = {\n type: dataSkeleton[key].includes(\"number\") ? \"number\" : \"string\",\n ui: {\n label: this.camelCaseToTitle(key)\n }\n };\n\n if (key.toLowerCase().includes(\"email\")) {\n metadata.ui!.widget = \"email\";\n metadata.ui!.format = \"email\";\n } else if (key.toLowerCase().includes(\"phone\")) {\n metadata.ui!.widget = \"phone\";\n metadata.ui!.format = \"phone\";\n } else if (key.toLowerCase().includes(\"date\")) {\n metadata.ui!.widget = \"date\";\n } else if (key.toLowerCase().includes(\"active\") || key.toLowerCase().includes(\"is\")) {\n metadata.type = \"boolean\";\n metadata.ui!.widget = \"switch\";\n } else if (key.toLowerCase().includes(\"limit\") || key.toLowerCase().includes(\"amount\") || key.toLowerCase().includes(\"salary\")) {\n metadata.type = \"number\";\n metadata.ui!.widget = \"currency\";\n }\n\n schema.properties![key] = metadata;\n }\n\n Logger.info(\"[MockLLMProxy]\", \"Schema generation complete.\");\n resolve(schema);\n }, 1500); // Emulate 1.5s network/LLM latency\n });\n }\n\n private camelCaseToTitle(str: string): string {\n return str.replace(/([A-Z])/g, ' $1').replace(/^./, (s) => s.toUpperCase());\n }\n}\n"],"mappings":"iFAAA,MAISA,EAAeC,EAAA,yBAEfC,EAAMC,EAAA,UAER,MAAMC,UAAqBJ,EAEpBK,QAAQC,GACd,OAAO,IAAIC,QAASC,IAChBN,EAAOO,KAAK,iBAAkB,4CAA6CC,OAAOC,KAAKL,IAEvFM,WAAW,KACP,MAAMC,EAAkB,CACpBC,KAAM,SACNC,WAAY,CAAC,GAKjB,IAAK,MAAMC,KAAON,OAAOC,KAAKL,GAAe,CACzC,MAAMW,EAA8B,CAChCH,KAAMR,EAAaU,GAAKE,SAAS,UAAY,SAAW,SACxDC,GAAI,CACAC,MAAOC,KAAKC,iBAAiBN,KAIrC,GAAIA,EAAIO,cAAcL,SAAS,SAAU,CACrCD,EAASE,GAAIK,OAAS,QACtBP,EAASE,GAAIM,OAAS,OAC1B,MAAO,GAAIT,EAAIO,cAAcL,SAAS,SAAU,CAC5CD,EAASE,GAAIK,OAAS,QACtBP,EAASE,GAAIM,OAAS,OAC1B,MAAO,GAAIT,EAAIO,cAAcL,SAAS,QAAS,CAC3CD,EAASE,GAAIK,OAAS,MAC1B,MAAO,GAAIR,EAAIO,cAAcL,SAAS,WAAaF,EAAIO,cAAcL,SAAS,MAAO,CACjFD,EAASH,KAAO,UAChBG,EAASE,GAAIK,OAAS,QAC1B,MAAO,GAAIR,EAAIO,cAAcL,SAAS,UAAYF,EAAIO,cAAcL,SAAS,WAAaF,EAAIO,cAAcL,SAAS,UAAW,CAC5HD,EAASH,KAAO,SAChBG,EAASE,GAAIK,OAAS,UAC1B,CAEAX,EAAOE,WAAYC,GAAOC,CAC9B,CAEAf,EAAOO,KAAK,iBAAkB,+BAC9BD,EAAQK,IACT,OAEX,CAEQS,iBAAiBI,GACrB,OAAOA,EAAIC,QAAQ,WAAY,OAAOA,QAAQ,KAAOC,GAAMA,EAAEC,cACjE,EACH,IAAAC,EAAA,CAAAC,WAAA,MAAAD,EAAA1B,eAAA,OAAA0B,CAAA","ignoreList":[]}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * @file MockLLMProxy.ts
3
+ * @description Simulates an LLM backend call with a timeout.
4
+ */
5
+ import { BaseAIGenerator } from "./BaseAIGenerator";
6
+ import { ISchema, IPropertyMetadata } from "../interfaces/ISchema";
7
+ import { Logger } from "../utils/Logger";
8
+
9
+ export class MockLLMProxy extends BaseAIGenerator {
10
+
11
+ protected callLLM(dataSkeleton: Record<string, string>): Promise<ISchema> {
12
+ return new Promise((resolve) => {
13
+ Logger.info("[MockLLMProxy]", "Simulating AI Schema generation for keys:", Object.keys(dataSkeleton));
14
+
15
+ setTimeout(() => {
16
+ const schema: ISchema = {
17
+ type: "object",
18
+ properties: {}
19
+ };
20
+
21
+ // Naive mocked mapping for demo purposes.
22
+ // In reality, the LLM provides this enriched schema.
23
+ for (const key of Object.keys(dataSkeleton)) {
24
+ const metadata: IPropertyMetadata = {
25
+ type: dataSkeleton[key].includes("number") ? "number" : "string",
26
+ ui: {
27
+ label: this.camelCaseToTitle(key)
28
+ }
29
+ };
30
+
31
+ if (key.toLowerCase().includes("email")) {
32
+ metadata.ui!.widget = "email";
33
+ metadata.ui!.format = "email";
34
+ } else if (key.toLowerCase().includes("phone")) {
35
+ metadata.ui!.widget = "phone";
36
+ metadata.ui!.format = "phone";
37
+ } else if (key.toLowerCase().includes("date")) {
38
+ metadata.ui!.widget = "date";
39
+ } else if (key.toLowerCase().includes("active") || key.toLowerCase().includes("is")) {
40
+ metadata.type = "boolean";
41
+ metadata.ui!.widget = "switch";
42
+ } else if (key.toLowerCase().includes("limit") || key.toLowerCase().includes("amount") || key.toLowerCase().includes("salary")) {
43
+ metadata.type = "number";
44
+ metadata.ui!.widget = "currency";
45
+ }
46
+
47
+ schema.properties![key] = metadata;
48
+ }
49
+
50
+ Logger.info("[MockLLMProxy]", "Schema generation complete.");
51
+ resolve(schema);
52
+ }, 1500); // Emulate 1.5s network/LLM latency
53
+ });
54
+ }
55
+
56
+ private camelCaseToTitle(str: string): string {
57
+ return str.replace(/([A-Z])/g, ' $1').replace(/^./, (s) => s.toUpperCase());
58
+ }
59
+ }
@@ -0,0 +1,50 @@
1
+ sap.ui.define(["./BaseAIGenerator", "../utils/Logger", "./AIConfig"], function (___BaseAIGenerator, ___utils_Logger, ___AIConfig) {
2
+ "use strict";
3
+
4
+ /**
5
+ * @file RestLLMProxy.ts
6
+ * @description Real HTTP REST client for communicating with an external LLM generation endpoint.
7
+ */
8
+ const BaseAIGenerator = ___BaseAIGenerator["BaseAIGenerator"];
9
+ const Logger = ___utils_Logger["Logger"];
10
+ const AIConfig = ___AIConfig["AIConfig"];
11
+ class RestLLMProxy extends BaseAIGenerator {
12
+ async callLLM(dataSkeleton) {
13
+ const endpoint = AIConfig.getEndpointUrl();
14
+ if (!endpoint) {
15
+ throw new Error("[RestLLMProxy] No AI Endpoint configured in AIConfig.");
16
+ }
17
+ Logger.info("[RestLLMProxy]", `Sending skeleton to ${endpoint}...`);
18
+ try {
19
+ const response = await fetch(endpoint, {
20
+ method: "POST",
21
+ headers: {
22
+ "Content-Type": "application/json"
23
+ },
24
+ body: JSON.stringify({
25
+ skeleton: dataSkeleton
26
+ })
27
+ });
28
+ if (!response.ok) {
29
+ throw new Error(`HTTP error! status: ${response.status}`);
30
+ }
31
+ const schema = await response.json();
32
+ Logger.info("[RestLLMProxy]", "Successfully received schema from backend.");
33
+ return schema;
34
+ } catch (e) {
35
+ Logger.error("[RestLLMProxy]", `Failed to fetch LLM schema: ${e.message}`);
36
+ // Fallback to empty schema on error so the app doesn't crash completely
37
+ return {
38
+ type: "object",
39
+ properties: {}
40
+ };
41
+ }
42
+ }
43
+ }
44
+ var __exports = {
45
+ __esModule: true
46
+ };
47
+ __exports.RestLLMProxy = RestLLMProxy;
48
+ return __exports;
49
+ });
50
+ //# sourceMappingURL=RestLLMProxy-dbg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RestLLMProxy-dbg.js","names":["BaseAIGenerator","___BaseAIGenerator","Logger","___utils_Logger","AIConfig","___AIConfig","RestLLMProxy","callLLM","dataSkeleton","endpoint","getEndpointUrl","Error","info","response","fetch","method","headers","body","JSON","stringify","skeleton","ok","status","schema","json","e","error","message","type","properties","__exports","__esModule"],"sources":["RestLLMProxy.ts"],"sourcesContent":["/**\n * @file RestLLMProxy.ts\n * @description Real HTTP REST client for communicating with an external LLM generation endpoint.\n */\nimport { BaseAIGenerator } from \"./BaseAIGenerator\";\nimport { ISchema } from \"../interfaces/ISchema\";\nimport { Logger } from \"../utils/Logger\";\nimport { AIConfig } from \"./AIConfig\";\n\nexport class RestLLMProxy extends BaseAIGenerator {\n\n protected async callLLM(dataSkeleton: Record<string, string>): Promise<ISchema> {\n const endpoint = AIConfig.getEndpointUrl();\n if (!endpoint) {\n throw new Error(\"[RestLLMProxy] No AI Endpoint configured in AIConfig.\");\n }\n\n Logger.info(\"[RestLLMProxy]\", `Sending skeleton to ${endpoint}...`);\n\n try {\n const response = await fetch(endpoint, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({\n skeleton: dataSkeleton\n })\n });\n\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n\n const schema: ISchema = await response.json();\n Logger.info(\"[RestLLMProxy]\", \"Successfully received schema from backend.\");\n return schema;\n } catch (e: Error) {\n Logger.error(\"[RestLLMProxy]\", `Failed to fetch LLM schema: ${e.message}`);\n // Fallback to empty schema on error so the app doesn't crash completely\n return { type: \"object\", properties: {} };\n }\n }\n}\n"],"mappings":";;;EAAA;AACA;AACA;AACA;EAHA,MAISA,eAAe,GAAAC,kBAAA;EAAA,MAEfC,MAAM,GAAAC,eAAA;EAAA,MACNC,QAAQ,GAAAC,WAAA;EAEV,MAAMC,YAAY,SAASN,eAAe,CAAC;IAE9C,MAAgBO,OAAOA,CAACC,YAAoC,EAAoB;MAC5E,MAAMC,QAAQ,GAAGL,QAAQ,CAACM,cAAc,CAAC,CAAC;MAC1C,IAAI,CAACD,QAAQ,EAAE;QACX,MAAM,IAAIE,KAAK,CAAC,uDAAuD,CAAC;MAC5E;MAEAT,MAAM,CAACU,IAAI,CAAC,gBAAgB,EAAE,uBAAuBH,QAAQ,KAAK,CAAC;MAEnE,IAAI;QACA,MAAMI,QAAQ,GAAG,MAAMC,KAAK,CAACL,QAAQ,EAAE;UACnCM,MAAM,EAAE,MAAM;UACdC,OAAO,EAAE;YACL,cAAc,EAAE;UACpB,CAAC;UACDC,IAAI,EAAEC,IAAI,CAACC,SAAS,CAAC;YACjBC,QAAQ,EAAEZ;UACd,CAAC;QACL,CAAC,CAAC;QAEF,IAAI,CAACK,QAAQ,CAACQ,EAAE,EAAE;UACd,MAAM,IAAIV,KAAK,CAAC,uBAAuBE,QAAQ,CAACS,MAAM,EAAE,CAAC;QAC7D;QAEA,MAAMC,MAAe,GAAG,MAAMV,QAAQ,CAACW,IAAI,CAAC,CAAC;QAC7CtB,MAAM,CAACU,IAAI,CAAC,gBAAgB,EAAE,4CAA4C,CAAC;QAC3E,OAAOW,MAAM;MACjB,CAAC,CAAC,OAAOE,CAAQ,EAAE;QACfvB,MAAM,CAACwB,KAAK,CAAC,gBAAgB,EAAE,+BAA+BD,CAAC,CAACE,OAAO,EAAE,CAAC;QAC1E;QACA,OAAO;UAAEC,IAAI,EAAE,QAAQ;UAAEC,UAAU,EAAE,CAAC;QAAE,CAAC;MAC7C;IACJ;EACJ;EAAC,IAAAC,SAAA;IAAAC,UAAA;EAAA;EAAAD,SAAA,CAAAxB,YAAA,GAAAA,YAAA;EAAA,OAAAwB,SAAA;AAAA","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ declare module "nz/co/siliconst/ui5/metaui/ai/RestLLMProxy" {
2
+ /**
3
+ * @file RestLLMProxy.ts
4
+ * @description Real HTTP REST client for communicating with an external LLM generation endpoint.
5
+ */
6
+ import { BaseAIGenerator } from "nz/co/siliconst/ui5/metaui/ai/BaseAIGenerator";
7
+ import { ISchema } from "nz/co/siliconst/ui5/metaui/interfaces/ISchema";
8
+ export class RestLLMProxy extends BaseAIGenerator {
9
+ protected callLLM(dataSkeleton: Record<string, string>): Promise<ISchema>;
10
+ }
11
+ }
12
+ //# sourceMappingURL=RestLLMProxy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RestLLMProxy.d.ts","sourceRoot":"../../../../../../../..","sources":["src/nz/co/siliconst/ui5/metaui/ai/RestLLMProxy.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,4CAA4C,CAAC;IAC5D;;;OAGG;IACH,OAAO,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAC;IAChF,OAAO,EAAE,OAAO,EAAE,MAAM,+CAA+C,CAAC;IAIxE,MAAa,YAAa,SAAQ,eAAe;kBAE7B,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;KAgClF;CAEA"}
@@ -0,0 +1,2 @@
1
+ sap.ui.define(["./BaseAIGenerator","../utils/Logger","./AIConfig"],function(e,t,o){"use strict";const r=e["BaseAIGenerator"];const n=t["Logger"];const s=o["AIConfig"];class i extends r{async callLLM(e){const t=s.getEndpointUrl();if(!t){throw new Error("[RestLLMProxy] No AI Endpoint configured in AIConfig.")}n.info("[RestLLMProxy]",`Sending skeleton to ${t}...`);try{const o=await fetch(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({skeleton:e})});if(!o.ok){throw new Error(`HTTP error! status: ${o.status}`)}const r=await o.json();n.info("[RestLLMProxy]","Successfully received schema from backend.");return r}catch(e){n.error("[RestLLMProxy]",`Failed to fetch LLM schema: ${e.message}`);return{type:"object",properties:{}}}}}var a={__esModule:true};a.RestLLMProxy=i;return a});
2
+ //# sourceMappingURL=RestLLMProxy.js.map