lutaml 0.10.17 → 0.10.19

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 (312) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +5 -0
  3. data/.rubocop_todo.yml +149 -17
  4. data/CLAUDE.md +17 -0
  5. data/frontend/dist/app.iife.js +24 -0
  6. data/frontend/dist/style.css +1 -0
  7. data/frontend/index.html +26 -0
  8. data/frontend/package-lock.json +2805 -0
  9. data/frontend/package.json +26 -0
  10. data/frontend/src/App.vue +59 -0
  11. data/frontend/src/app.ts +8 -0
  12. data/frontend/src/components/AppHeader.vue +127 -0
  13. data/frontend/src/components/AppSidebar.vue +119 -0
  14. data/frontend/src/components/ClassDetails.vue +247 -0
  15. data/frontend/src/components/DiagramView.vue +79 -0
  16. data/frontend/src/components/PackageDetails.vue +92 -0
  17. data/frontend/src/components/PackageTreeNode.vue +64 -0
  18. data/frontend/src/components/SearchResults.vue +48 -0
  19. data/frontend/src/components/WelcomeView.vue +66 -0
  20. data/frontend/src/shims-vue.d.ts +5 -0
  21. data/frontend/src/stores/dataStore.ts +79 -0
  22. data/frontend/src/stores/uiStore.ts +167 -0
  23. data/frontend/src/styles/main.css +1566 -0
  24. data/frontend/src/types.ts +221 -0
  25. data/frontend/tests/e2e/__screenshots__/new-dark-mode.png +0 -0
  26. data/frontend/tests/e2e/__screenshots__/new-package-details.png +0 -0
  27. data/frontend/tests/e2e/__screenshots__/new-search-modal.png +0 -0
  28. data/frontend/tests/e2e/__screenshots__/new-sidebar-collapsed.png +0 -0
  29. data/frontend/tests/e2e/__screenshots__/new-welcome.png +0 -0
  30. data/frontend/tests/e2e/render.spec.ts +188 -0
  31. data/frontend/tsconfig.json +20 -0
  32. data/frontend/vite.config.ts +26 -0
  33. data/frontend/vitest.config.ts +8 -0
  34. data/lib/lutaml/cli/element_identifier.rb +0 -2
  35. data/lib/lutaml/cli/enhanced_formatter.rb +0 -1
  36. data/lib/lutaml/cli/interactive_shell/bookmark_commands.rb +0 -3
  37. data/lib/lutaml/cli/interactive_shell/export_handler.rb +0 -2
  38. data/lib/lutaml/cli/interactive_shell/help_display.rb +0 -3
  39. data/lib/lutaml/cli/interactive_shell/navigation_commands.rb +0 -3
  40. data/lib/lutaml/cli/interactive_shell/query_commands.rb +0 -3
  41. data/lib/lutaml/cli/interactive_shell.rb +8 -8
  42. data/lib/lutaml/cli/lml_commands.rb +0 -6
  43. data/lib/lutaml/cli/uml/build_command.rb +78 -62
  44. data/lib/lutaml/cli/uml/diagram_command.rb +27 -9
  45. data/lib/lutaml/cli/uml/export_command.rb +0 -1
  46. data/lib/lutaml/cli/uml/find_command.rb +0 -3
  47. data/lib/lutaml/cli/uml/info_command.rb +0 -1
  48. data/lib/lutaml/cli/uml/inspect_command.rb +0 -3
  49. data/lib/lutaml/cli/uml/ls_command.rb +0 -3
  50. data/lib/lutaml/cli/uml/repl_command.rb +0 -1
  51. data/lib/lutaml/cli/uml/search_command.rb +0 -3
  52. data/lib/lutaml/cli/uml/serve_command.rb +0 -1
  53. data/lib/lutaml/cli/uml/shared_helpers.rb +0 -2
  54. data/lib/lutaml/cli/uml/spa_command.rb +23 -13
  55. data/lib/lutaml/cli/uml/stats_command.rb +0 -3
  56. data/lib/lutaml/cli/uml/tree_command.rb +0 -3
  57. data/lib/lutaml/cli/uml/validate_command.rb +0 -5
  58. data/lib/lutaml/cli/uml/verify_command.rb +0 -3
  59. data/lib/lutaml/cli/uml.rb +24 -0
  60. data/lib/lutaml/cli/uml_commands.rb +0 -18
  61. data/lib/lutaml/cli.rb +14 -2
  62. data/lib/lutaml/converter/xmi_to_uml.rb +2 -2
  63. data/lib/lutaml/converter/xmi_to_uml_generalization.rb +1 -1
  64. data/lib/lutaml/converter.rb +10 -0
  65. data/lib/lutaml/ea/diagram/element_renderers/class_renderer.rb +0 -2
  66. data/lib/lutaml/ea/diagram/element_renderers/connector_renderer.rb +0 -2
  67. data/lib/lutaml/ea/diagram/element_renderers/package_renderer.rb +0 -2
  68. data/lib/lutaml/ea/diagram/element_renderers.rb +18 -0
  69. data/lib/lutaml/ea/diagram/extractor.rb +35 -49
  70. data/lib/lutaml/ea/diagram/layout_engine.rb +0 -2
  71. data/lib/lutaml/ea/diagram/path_builder.rb +0 -2
  72. data/lib/lutaml/ea/diagram/style_resolver.rb +0 -3
  73. data/lib/lutaml/ea/diagram/svg_renderer.rb +0 -6
  74. data/lib/lutaml/ea/diagram.rb +10 -25
  75. data/lib/lutaml/ea.rb +7 -0
  76. data/lib/lutaml/formatter/base.rb +0 -3
  77. data/lib/lutaml/formatter/graphviz.rb +0 -2
  78. data/lib/lutaml/layout/graph_viz_engine.rb +0 -1
  79. data/lib/lutaml/model_transformations/format_registry.rb +0 -2
  80. data/lib/lutaml/model_transformations/parsers/qea_parser.rb +0 -3
  81. data/lib/lutaml/model_transformations/parsers/xmi_parser.rb +0 -3
  82. data/lib/lutaml/model_transformations/transformation_engine.rb +0 -4
  83. data/lib/lutaml/qea/benchmark.rb +0 -2
  84. data/lib/lutaml/qea/database.rb +53 -3
  85. data/lib/lutaml/qea/factory/association_builder.rb +0 -2
  86. data/lib/lutaml/qea/factory/association_transformer.rb +0 -4
  87. data/lib/lutaml/qea/factory/attribute_tag_transformer.rb +0 -3
  88. data/lib/lutaml/qea/factory/attribute_transformer.rb +0 -4
  89. data/lib/lutaml/qea/factory/class_transformer.rb +0 -11
  90. data/lib/lutaml/qea/factory/constraint_transformer.rb +0 -3
  91. data/lib/lutaml/qea/factory/data_type_transformer.rb +0 -8
  92. data/lib/lutaml/qea/factory/diagram_transformer.rb +0 -5
  93. data/lib/lutaml/qea/factory/document_builder.rb +0 -2
  94. data/lib/lutaml/qea/factory/ea_to_uml_factory.rb +0 -7
  95. data/lib/lutaml/qea/factory/enum_transformer.rb +0 -5
  96. data/lib/lutaml/qea/factory/generalization_builder.rb +0 -5
  97. data/lib/lutaml/qea/factory/generalization_transformer.rb +0 -3
  98. data/lib/lutaml/qea/factory/instance_transformer.rb +0 -4
  99. data/lib/lutaml/qea/factory/object_property_transformer.rb +0 -3
  100. data/lib/lutaml/qea/factory/operation_transformer.rb +0 -3
  101. data/lib/lutaml/qea/factory/package_transformer.rb +0 -7
  102. data/lib/lutaml/qea/factory/tagged_value_transformer.rb +0 -3
  103. data/lib/lutaml/qea/factory/transformer_registry.rb +0 -8
  104. data/lib/lutaml/qea/factory.rb +37 -0
  105. data/lib/lutaml/qea/infrastructure.rb +12 -0
  106. data/lib/lutaml/qea/models/ea_attribute.rb +0 -2
  107. data/lib/lutaml/qea/models/ea_attribute_tag.rb +0 -2
  108. data/lib/lutaml/qea/models/ea_complexity_type.rb +0 -2
  109. data/lib/lutaml/qea/models/ea_connector.rb +0 -2
  110. data/lib/lutaml/qea/models/ea_connector_type.rb +0 -2
  111. data/lib/lutaml/qea/models/ea_constraint_type.rb +0 -2
  112. data/lib/lutaml/qea/models/ea_datatype.rb +0 -2
  113. data/lib/lutaml/qea/models/ea_diagram.rb +0 -2
  114. data/lib/lutaml/qea/models/ea_diagram_link.rb +0 -2
  115. data/lib/lutaml/qea/models/ea_diagram_object.rb +0 -2
  116. data/lib/lutaml/qea/models/ea_diagram_type.rb +0 -2
  117. data/lib/lutaml/qea/models/ea_document.rb +0 -2
  118. data/lib/lutaml/qea/models/ea_object.rb +0 -2
  119. data/lib/lutaml/qea/models/ea_object_constraint.rb +0 -2
  120. data/lib/lutaml/qea/models/ea_object_property.rb +0 -2
  121. data/lib/lutaml/qea/models/ea_object_type.rb +0 -2
  122. data/lib/lutaml/qea/models/ea_operation.rb +0 -2
  123. data/lib/lutaml/qea/models/ea_operation_param.rb +0 -2
  124. data/lib/lutaml/qea/models/ea_package.rb +0 -2
  125. data/lib/lutaml/qea/models/ea_script.rb +0 -2
  126. data/lib/lutaml/qea/models/ea_status_type.rb +0 -2
  127. data/lib/lutaml/qea/models/ea_stereotype.rb +0 -2
  128. data/lib/lutaml/qea/models/ea_tagged_value.rb +0 -2
  129. data/lib/lutaml/qea/models/ea_xref.rb +0 -2
  130. data/lib/lutaml/qea/models.rb +35 -0
  131. data/lib/lutaml/qea/parser.rb +0 -4
  132. data/lib/lutaml/qea/repositories/object_repository.rb +0 -2
  133. data/lib/lutaml/qea/repositories.rb +10 -0
  134. data/lib/lutaml/qea/services/database_loader.rb +0 -29
  135. data/lib/lutaml/qea/services.rb +10 -0
  136. data/lib/lutaml/qea/validation/association_validator.rb +0 -2
  137. data/lib/lutaml/qea/validation/attribute_validator.rb +0 -2
  138. data/lib/lutaml/qea/validation/base_validator.rb +0 -2
  139. data/lib/lutaml/qea/validation/class_validator.rb +0 -2
  140. data/lib/lutaml/qea/validation/database/circular_reference_validator.rb +0 -2
  141. data/lib/lutaml/qea/validation/database/orphan_validator.rb +0 -2
  142. data/lib/lutaml/qea/validation/database/referential_integrity_validator.rb +0 -2
  143. data/lib/lutaml/qea/validation/database.rb +16 -0
  144. data/lib/lutaml/qea/validation/diagram_validator.rb +0 -2
  145. data/lib/lutaml/qea/validation/operation_validator.rb +0 -2
  146. data/lib/lutaml/qea/validation/package_validator.rb +0 -2
  147. data/lib/lutaml/qea/validation/validation_engine.rb +0 -14
  148. data/lib/lutaml/qea/validation/validation_result.rb +0 -2
  149. data/lib/lutaml/qea/validation.rb +27 -0
  150. data/lib/lutaml/qea/verification/document_verifier.rb +0 -7
  151. data/lib/lutaml/qea/verification.rb +14 -0
  152. data/lib/lutaml/qea.rb +15 -14
  153. data/lib/lutaml/uml/abstraction.rb +1 -0
  154. data/lib/lutaml/uml/action.rb +2 -0
  155. data/lib/lutaml/uml/activity.rb +1 -0
  156. data/lib/lutaml/uml/actor.rb +1 -0
  157. data/lib/lutaml/uml/association.rb +2 -4
  158. data/lib/lutaml/uml/association_generalization.rb +2 -0
  159. data/lib/lutaml/uml/behavior.rb +1 -0
  160. data/lib/lutaml/uml/cardinality.rb +2 -0
  161. data/lib/lutaml/uml/class.rb +2 -8
  162. data/lib/lutaml/uml/classifier.rb +2 -4
  163. data/lib/lutaml/uml/comment.rb +2 -0
  164. data/lib/lutaml/uml/connector.rb +2 -0
  165. data/lib/lutaml/uml/connector_end.rb +2 -0
  166. data/lib/lutaml/uml/constraint.rb +2 -0
  167. data/lib/lutaml/uml/data_type.rb +2 -6
  168. data/lib/lutaml/uml/dependency.rb +2 -0
  169. data/lib/lutaml/uml/diagram.rb +2 -4
  170. data/lib/lutaml/uml/diagram_link.rb +2 -0
  171. data/lib/lutaml/uml/diagram_object.rb +2 -0
  172. data/lib/lutaml/uml/document.rb +2 -12
  173. data/lib/lutaml/uml/enum.rb +2 -4
  174. data/lib/lutaml/uml/event.rb +1 -0
  175. data/lib/lutaml/uml/fidelity.rb +2 -0
  176. data/lib/lutaml/uml/final_state.rb +1 -0
  177. data/lib/lutaml/uml/fontname.rb +2 -0
  178. data/lib/lutaml/uml/general_attribute.rb +2 -0
  179. data/lib/lutaml/uml/generalization.rb +2 -2
  180. data/lib/lutaml/uml/group.rb +2 -0
  181. data/lib/lutaml/uml/instance.rb +2 -0
  182. data/lib/lutaml/uml/model.rb +2 -0
  183. data/lib/lutaml/uml/model_helpers.rb +16 -5
  184. data/lib/lutaml/uml/namespace.rb +2 -0
  185. data/lib/lutaml/uml/node/attribute.rb +0 -4
  186. data/lib/lutaml/uml/node/base.rb +0 -2
  187. data/lib/lutaml/uml/node/class_node.rb +0 -7
  188. data/lib/lutaml/uml/node/class_relationship.rb +0 -3
  189. data/lib/lutaml/uml/node/document.rb +0 -3
  190. data/lib/lutaml/uml/node/method_argument.rb +0 -4
  191. data/lib/lutaml/uml/node/operation.rb +0 -4
  192. data/lib/lutaml/uml/node/relationship.rb +0 -4
  193. data/lib/lutaml/uml/opaque_behavior.rb +1 -0
  194. data/lib/lutaml/uml/operation.rb +2 -2
  195. data/lib/lutaml/uml/operation_parameter.rb +2 -0
  196. data/lib/lutaml/uml/package.rb +2 -6
  197. data/lib/lutaml/uml/parsers/dsl.rb +0 -4
  198. data/lib/lutaml/uml/parsers/yaml.rb +0 -1
  199. data/lib/lutaml/uml/port.rb +1 -0
  200. data/lib/lutaml/uml/primitive_type.rb +2 -0
  201. data/lib/lutaml/uml/property.rb +2 -0
  202. data/lib/lutaml/uml/pseudostate.rb +1 -0
  203. data/lib/lutaml/uml/qualified_name.rb +0 -2
  204. data/lib/lutaml/uml/realization.rb +1 -0
  205. data/lib/lutaml/uml/region.rb +1 -0
  206. data/lib/lutaml/uml/state.rb +2 -0
  207. data/lib/lutaml/uml/state_machine.rb +1 -0
  208. data/lib/lutaml/uml/tagged_value.rb +2 -0
  209. data/lib/lutaml/uml/top_element.rb +2 -3
  210. data/lib/lutaml/uml/top_element_attribute.rb +2 -0
  211. data/lib/lutaml/uml/transition.rb +2 -0
  212. data/lib/lutaml/uml/trigger.rb +2 -0
  213. data/lib/lutaml/uml/validation/document_structure_validator.rb +0 -2
  214. data/lib/lutaml/uml/value.rb +2 -0
  215. data/lib/lutaml/uml/vertex.rb +1 -0
  216. data/lib/lutaml/uml.rb +26 -11
  217. data/lib/lutaml/uml_repository/class_lookup_index.rb +15 -16
  218. data/lib/lutaml/uml_repository/exporters/json_exporter.rb +0 -1
  219. data/lib/lutaml/uml_repository/exporters/markdown/formatting.rb +0 -2
  220. data/lib/lutaml/uml_repository/exporters/markdown.rb +20 -0
  221. data/lib/lutaml/uml_repository/exporters/markdown_exporter.rb +0 -7
  222. data/lib/lutaml/uml_repository/index_builder.rb +4 -6
  223. data/lib/lutaml/uml_repository/index_builders/association_index.rb +113 -111
  224. data/lib/lutaml/uml_repository/index_builders/class_index.rb +86 -78
  225. data/lib/lutaml/uml_repository/index_builders/package_index.rb +45 -40
  226. data/lib/lutaml/uml_repository/index_builders.rb +13 -0
  227. data/lib/lutaml/uml_repository/lazy_repository.rb +0 -2
  228. data/lib/lutaml/uml_repository/package_exporter.rb +0 -1
  229. data/lib/lutaml/uml_repository/package_loader.rb +0 -3
  230. data/lib/lutaml/uml_repository/presenters/association_presenter.rb +0 -3
  231. data/lib/lutaml/uml_repository/presenters/attribute_presenter.rb +0 -3
  232. data/lib/lutaml/uml_repository/presenters/class_presenter.rb +0 -3
  233. data/lib/lutaml/uml_repository/presenters/datatype_presenter.rb +0 -3
  234. data/lib/lutaml/uml_repository/presenters/diagram_presenter.rb +0 -5
  235. data/lib/lutaml/uml_repository/presenters/enum_presenter.rb +0 -3
  236. data/lib/lutaml/uml_repository/presenters/package_presenter.rb +0 -3
  237. data/lib/lutaml/uml_repository/presenters/presenter_factory.rb +0 -2
  238. data/lib/lutaml/uml_repository/queries/association_query.rb +0 -3
  239. data/lib/lutaml/uml_repository/queries/class_query.rb +0 -4
  240. data/lib/lutaml/uml_repository/queries/diagram_query.rb +0 -3
  241. data/lib/lutaml/uml_repository/queries/inheritance_query.rb +0 -3
  242. data/lib/lutaml/uml_repository/queries/package_query.rb +0 -3
  243. data/lib/lutaml/uml_repository/queries/search_query.rb +52 -18
  244. data/lib/lutaml/uml_repository/query_dsl/conditions/block_condition.rb +0 -2
  245. data/lib/lutaml/uml_repository/query_dsl/conditions/hash_condition.rb +0 -2
  246. data/lib/lutaml/uml_repository/query_dsl/conditions/package_condition.rb +0 -3
  247. data/lib/lutaml/uml_repository/query_dsl/query_builder.rb +0 -6
  248. data/lib/lutaml/uml_repository/repository/loader.rb +0 -3
  249. data/lib/lutaml/uml_repository/repository.rb +3 -21
  250. data/lib/lutaml/uml_repository/repository_enhanced.rb +10 -6
  251. data/lib/lutaml/uml_repository/static_site/configuration.rb +109 -0
  252. data/lib/lutaml/uml_repository/static_site/data_transformer.rb +17 -17
  253. data/lib/lutaml/uml_repository/static_site/generator.rb +41 -359
  254. data/lib/lutaml/uml_repository/static_site/id_generator.rb +7 -2
  255. data/lib/lutaml/uml_repository/static_site/models/spa_association.rb +0 -3
  256. data/lib/lutaml/uml_repository/static_site/models/spa_association_end.rb +0 -3
  257. data/lib/lutaml/uml_repository/static_site/models/spa_attribute.rb +23 -7
  258. data/lib/lutaml/uml_repository/static_site/models/spa_cardinality.rb +9 -2
  259. data/lib/lutaml/uml_repository/static_site/models/spa_class.rb +28 -32
  260. data/lib/lutaml/uml_repository/static_site/models/spa_diagram.rb +2 -4
  261. data/lib/lutaml/uml_repository/static_site/models/spa_document.rb +0 -11
  262. data/lib/lutaml/uml_repository/static_site/models/spa_inherited_association.rb +1 -3
  263. data/lib/lutaml/uml_repository/static_site/models/spa_inherited_attribute.rb +1 -4
  264. data/lib/lutaml/uml_repository/static_site/models/spa_literal.rb +0 -2
  265. data/lib/lutaml/uml_repository/static_site/models/spa_metadata.rb +16 -3
  266. data/lib/lutaml/uml_repository/static_site/models/spa_operation.rb +4 -7
  267. data/lib/lutaml/uml_repository/static_site/models/spa_package.rb +10 -10
  268. data/lib/lutaml/uml_repository/static_site/models/spa_package_tree_node.rb +8 -11
  269. data/lib/lutaml/uml_repository/static_site/models/spa_parameter.rb +0 -2
  270. data/lib/lutaml/uml_repository/static_site/models/spa_search_entry.rb +2 -5
  271. data/lib/lutaml/uml_repository/static_site/models/spa_search_index.rb +29 -0
  272. data/lib/lutaml/uml_repository/static_site/models/spa_statistics.rb +5 -7
  273. data/lib/lutaml/uml_repository/static_site/models/spa_tree_class_ref.rb +3 -4
  274. data/lib/lutaml/uml_repository/static_site/models.rb +48 -0
  275. data/lib/lutaml/uml_repository/static_site/output/multi_file_strategy.rb +69 -0
  276. data/lib/lutaml/uml_repository/static_site/output/strategy.rb +36 -0
  277. data/lib/lutaml/uml_repository/static_site/output/vue_inlined_strategy.rb +113 -0
  278. data/lib/lutaml/uml_repository/static_site/output.rb +15 -0
  279. data/lib/lutaml/uml_repository/static_site/search_index_builder.rb +15 -41
  280. data/lib/lutaml/uml_repository/static_site/serializers/association_serializer.rb +70 -0
  281. data/lib/lutaml/uml_repository/static_site/serializers/attribute_serializer.rb +2 -42
  282. data/lib/lutaml/uml_repository/static_site/serializers/base.rb +66 -0
  283. data/lib/lutaml/uml_repository/static_site/serializers/class_serializer.rb +10 -40
  284. data/lib/lutaml/uml_repository/static_site/serializers/diagram_serializer.rb +1 -18
  285. data/lib/lutaml/uml_repository/static_site/serializers/inheritance_resolver.rb +26 -144
  286. data/lib/lutaml/uml_repository/static_site/serializers/metadata_builder.rb +57 -6
  287. data/lib/lutaml/uml_repository/static_site/serializers/operation_serializer.rb +3 -11
  288. data/lib/lutaml/uml_repository/static_site/serializers/package_serializer.rb +3 -30
  289. data/lib/lutaml/uml_repository/static_site/serializers/package_tree_builder.rb +1 -19
  290. data/lib/lutaml/uml_repository/static_site/serializers.rb +30 -0
  291. data/lib/lutaml/uml_repository/static_site.rb +15 -11
  292. data/lib/lutaml/uml_repository/statistics_calculator.rb +0 -2
  293. data/lib/lutaml/uml_repository/validators/repository_validator.rb +40 -27
  294. data/lib/lutaml/uml_repository/web_ui/app.rb +1 -2
  295. data/lib/lutaml/uml_repository.rb +21 -1
  296. data/lib/lutaml/version.rb +1 -1
  297. data/lib/lutaml/xmi/parsers/xmi_base.rb +3 -2
  298. data/lib/lutaml/xmi/parsers/xmi_class_members.rb +1 -1
  299. data/lib/lutaml/xmi/parsers/xmi_connector.rb +1 -1
  300. data/lib/lutaml/xmi/parsers/xml.rb +0 -3
  301. data/lib/lutaml/xmi/xmi_lookup_service.rb +0 -2
  302. data/lib/lutaml/xmi.rb +5 -1
  303. data/lib/lutaml.rb +11 -9
  304. metadata +54 -10
  305. data/TODO.cleanups/05-replace-marshal-load.md +0 -37
  306. data/TODO.cleanups/06-replace-eval-in-tests.md +0 -41
  307. data/TODO.cleanups/10-split-large-files.md +0 -47
  308. data/lib/lutaml/qea/lookup_indexes.rb +0 -72
  309. data/lib/lutaml/uml_repository/static_site/association_serialization.rb +0 -82
  310. data/lib/lutaml/xml/parsers/xml.rb +0 -45
  311. data/lib/lutaml/xml/parsers/xsd.rb +0 -35
  312. data/lib/lutaml/xml.rb +0 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 330cf6a6d4021d51bfb8ee166e4f6dce5697ed5fff82cdc6043a6d304d7e853d
4
- data.tar.gz: 4bd730f3e5a2ae0427d2157bb862788ddd516280d86b9f791ec3e46473710dac
3
+ metadata.gz: c13d434118617c3c74306f71dfffaeaa2803b07b0251267798da192d7f6b599f
4
+ data.tar.gz: c76e117160fadf1b041cc3e6a51fb1ee055416e9014fe7a0fedbfac85344f4e4
5
5
  SHA512:
6
- metadata.gz: b1cf1135be7d630644fbf782c1070231a54c0c3341b8c1be7c688a4d3c29d2aa34c26ef900f056c8d50f9c10b674e0470d46646de49b5386de51896e45a79ee3
7
- data.tar.gz: 5b716ba1f4bd818a81f7fd54567add05c1ed0682fb407379db5d086fc8c636586e5a162480b821a23be4977d31ebe986be61531851faad122ddf0c74785bd59c
6
+ metadata.gz: f5ff34832797c015997e5b3c2d0c61cd0c3b5c0cd2ca944af09f98b4bab2e3a383386551b9572cea28eeb95fa71743a6453abd95b3d8e8ea80cda05961f30972
7
+ data.tar.gz: 0e72e6c2c5ef782512e80036e714029a6ae7a620924b7346db474e2ff20e5f2b8e7da8285feead75afe90fc0a9d06cec9b4dcd754eeeb40f4bbb57315a0d5a2f
data/.gitignore CHANGED
@@ -21,4 +21,9 @@ old-docs
21
21
 
22
22
  # Transient planning files
23
23
  TODO.*/
24
+ TODO.*.md
24
25
  .rubocop_todo.yml.tmp
26
+
27
+ # Frontend build artifacts
28
+ frontend/node_modules/
29
+ TODO.migrate/
data/.rubocop_todo.yml CHANGED
@@ -1,21 +1,72 @@
1
1
  # This configuration was generated by
2
- # `rubocop --auto-gen-config --no-offense-counts`
3
- # on 2026-05-13 08:26:11 UTC using RuboCop version 1.86.1.
2
+ # `rubocop --auto-gen-config`
3
+ # on 2026-05-22 10:40:49 UTC using RuboCop version 1.86.1.
4
4
  # The point is for the user to remove these configuration records
5
5
  # one by one as the offenses are removed from the code base.
6
6
  # Note that changes in the inspected code, or installation of new
7
7
  # versions of RuboCop, may require this file to be generated again.
8
8
 
9
+ # Offense count: 2
10
+ # This cop supports safe autocorrection (--autocorrect).
11
+ # Configuration parameters: EnforcedStyle, IndentationWidth.
12
+ # SupportedStyles: with_first_argument, with_fixed_indentation
13
+ Layout/ArgumentAlignment:
14
+ Exclude:
15
+ - 'lib/lutaml/uml_repository/static_site/data_transformer.rb'
16
+ - 'lib/lutaml/uml_repository/static_site/generator.rb'
17
+
18
+ # Offense count: 1
19
+ # This cop supports safe autocorrection (--autocorrect).
20
+ # Configuration parameters: IndentationWidth.
21
+ Layout/AssignmentIndentation:
22
+ Exclude:
23
+ - 'lib/lutaml/uml_repository/static_site/output/vue_inlined_strategy.rb'
24
+
25
+ # Offense count: 21
26
+ # This cop supports safe autocorrection (--autocorrect).
27
+ # Configuration parameters: AllowMultipleStyles, EnforcedHashRocketStyle, EnforcedColonStyle, EnforcedLastArgumentHashStyle.
28
+ # SupportedHashRocketStyles: key, separator, table
29
+ # SupportedColonStyles: key, separator, table
30
+ # SupportedLastArgumentHashStyles: always_inspect, always_ignore, ignore_implicit, ignore_explicit
31
+ Layout/HashAlignment:
32
+ Exclude:
33
+ - 'lib/lutaml/uml_repository/static_site/models/spa_attribute.rb'
34
+ - 'lib/lutaml/uml_repository/static_site/models/spa_class.rb'
35
+ - 'lib/lutaml/uml_repository/static_site/models/spa_operation.rb'
36
+ - 'lib/lutaml/uml_repository/static_site/models/spa_package.rb'
37
+ - 'lib/lutaml/uml_repository/static_site/models/spa_package_tree_node.rb'
38
+ - 'lib/lutaml/uml_repository/static_site/models/spa_tree_class_ref.rb'
39
+ - 'lib/lutaml/uml_repository/static_site/serializers/metadata_builder.rb'
40
+
41
+ # Offense count: 216
9
42
  # This cop supports safe autocorrection (--autocorrect).
10
43
  # Configuration parameters: Max, AllowHeredoc, AllowURI, AllowQualifiedName, URISchemes, AllowRBSInlineAnnotation, AllowCopDirectives, AllowedPatterns, SplitStrings.
11
44
  # URISchemes: http, https
12
45
  Layout/LineLength:
13
46
  Enabled: false
14
47
 
48
+ # Offense count: 22
49
+ # This cop supports safe autocorrection (--autocorrect).
50
+ # Configuration parameters: AllowInHeredoc.
51
+ Layout/TrailingWhitespace:
52
+ Exclude:
53
+ - 'lib/lutaml/uml_repository/static_site/data_transformer.rb'
54
+ - 'lib/lutaml/uml_repository/static_site/generator.rb'
55
+ - 'lib/lutaml/uml_repository/static_site/models/spa_attribute.rb'
56
+ - 'lib/lutaml/uml_repository/static_site/models/spa_class.rb'
57
+ - 'lib/lutaml/uml_repository/static_site/models/spa_operation.rb'
58
+ - 'lib/lutaml/uml_repository/static_site/models/spa_package.rb'
59
+ - 'lib/lutaml/uml_repository/static_site/models/spa_package_tree_node.rb'
60
+ - 'lib/lutaml/uml_repository/static_site/models/spa_tree_class_ref.rb'
61
+ - 'lib/lutaml/uml_repository/static_site/output/vue_inlined_strategy.rb'
62
+ - 'lib/lutaml/uml_repository/static_site/serializers/metadata_builder.rb'
63
+
64
+ # Offense count: 1
15
65
  Lint/BinaryOperatorWithIdenticalOperands:
16
66
  Exclude:
17
67
  - 'spec/lutaml/qea/lookup_tables_spec.rb'
18
68
 
69
+ # Offense count: 15
19
70
  # Configuration parameters: AllowedMethods.
20
71
  # AllowedMethods: enums
21
72
  Lint/ConstantDefinitionInBlock:
@@ -26,12 +77,14 @@ Lint/ConstantDefinitionInBlock:
26
77
  - 'spec/lutaml/model_transformations_spec.rb'
27
78
  - 'spec/lutaml/uml_repository/presenters/presenter_factory_spec.rb'
28
79
 
80
+ # Offense count: 2
29
81
  # Configuration parameters: IgnoreLiteralBranches, IgnoreConstantBranches, IgnoreDuplicateElseBranch.
30
82
  Lint/DuplicateBranch:
31
83
  Exclude:
32
84
  - 'lib/lutaml/uml/model_helpers.rb'
33
85
  - 'lib/lutaml/uml_repository/queries/package_query.rb'
34
86
 
87
+ # Offense count: 4
35
88
  # Configuration parameters: AllowComments, AllowEmptyLambdas.
36
89
  Lint/EmptyBlock:
37
90
  Exclude:
@@ -40,22 +93,25 @@ Lint/EmptyBlock:
40
93
  - 'spec/lutaml/uml_repository/package_exporter_spec.rb'
41
94
  - 'spec/lutaml/uml_repository/repository_spec.rb'
42
95
 
96
+ # Offense count: 1
43
97
  # This cop supports safe autocorrection (--autocorrect).
44
98
  # Configuration parameters: AllowComments.
45
99
  Lint/EmptyConditionalBody:
46
100
  Exclude:
47
- - 'spec/integration/qea_xmi_equivalency_spec.rb'
48
101
  - 'spec/lutaml/qea/verification/equivalence_integration_spec.rb'
49
102
 
103
+ # Offense count: 4
50
104
  Lint/IneffectiveAccessModifier:
51
105
  Exclude:
52
106
  - 'lib/lutaml/uml_repository/repository_enhanced.rb'
53
107
 
108
+ # Offense count: 1
54
109
  # Configuration parameters: AllowedParentClasses.
55
110
  Lint/MissingSuper:
56
111
  Exclude:
57
112
  - 'lib/lutaml/uml_repository/lazy_repository.rb'
58
113
 
114
+ # Offense count: 1
59
115
  # This cop supports safe autocorrection (--autocorrect).
60
116
  # Configuration parameters: AllowUnusedKeywordArguments, IgnoreEmptyMethods, IgnoreNotImplementedMethods, NotImplementedExceptions.
61
117
  # NotImplementedExceptions: NotImplementedError
@@ -63,14 +119,14 @@ Lint/UnusedMethodArgument:
63
119
  Exclude:
64
120
  - 'lib/lutaml/cli/uml/export_command.rb'
65
121
 
122
+ # Offense count: 4
66
123
  Lint/UselessConstantScoping:
67
124
  Exclude:
68
125
  - 'lib/lutaml/cli/interactive_shell.rb'
69
126
  - 'lib/lutaml/cli/uml/diagram_command.rb'
70
127
  - 'lib/lutaml/qea/factory/ea_to_uml_factory.rb'
71
- - 'lib/lutaml/uml_repository/static_site/generator.rb'
72
- - 'lib/lutaml/uml_repository/static_site/serializers/inheritance_resolver.rb'
73
128
 
129
+ # Offense count: 13
74
130
  # Configuration parameters: AllowedMethods, AllowedPatterns, CountRepeatedAttributes, Max.
75
131
  Metrics/AbcSize:
76
132
  Exclude:
@@ -79,38 +135,52 @@ Metrics/AbcSize:
79
135
  - 'lib/lutaml/qea/factory/generalization_builder.rb'
80
136
  - 'lib/lutaml/uml_repository/exporters/markdown/class_page_builder.rb'
81
137
  - 'lib/lutaml/uml_repository/queries/search_query.rb'
138
+ - 'lib/lutaml/uml_repository/static_site/output/vue_inlined_strategy.rb'
82
139
  - 'lib/lutaml/uml_repository/static_site/serializers/class_serializer.rb'
140
+ - 'lib/lutaml/uml_repository/static_site/serializers/metadata_builder.rb'
83
141
 
142
+ # Offense count: 8
84
143
  # Configuration parameters: AllowedMethods, AllowedPatterns, Max.
85
144
  Metrics/CyclomaticComplexity:
86
145
  Exclude:
87
146
  - 'lib/lutaml/qea/factory/generalization_builder.rb'
147
+ - 'lib/lutaml/uml/model_helpers.rb'
88
148
  - 'lib/lutaml/uml_repository/index_builders/association_index.rb'
89
- - 'lib/lutaml/uml_repository/queries/search_query.rb'
90
- - 'lib/lutaml/uml_repository/static_site/serializers/class_serializer.rb'
149
+ - 'lib/lutaml/uml_repository/static_site/data_transformer.rb'
150
+ - 'lib/lutaml/uml_repository/static_site/generator.rb'
151
+ - 'lib/lutaml/uml_repository/static_site/output/vue_inlined_strategy.rb'
152
+ - 'lib/lutaml/uml_repository/static_site/serializers/base.rb'
153
+ - 'lib/lutaml/uml_repository/static_site/serializers/metadata_builder.rb'
91
154
 
155
+ # Offense count: 63
92
156
  # Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns.
93
157
  Metrics/MethodLength:
94
- Max: 17
158
+ Max: 23
95
159
 
160
+ # Offense count: 5
96
161
  # Configuration parameters: CountKeywordArgs, MaxOptionalParameters.
97
162
  Metrics/ParameterLists:
98
163
  Max: 7
99
164
 
165
+ # Offense count: 4
100
166
  # Configuration parameters: AllowedMethods, AllowedPatterns, Max.
101
167
  Metrics/PerceivedComplexity:
102
168
  Exclude:
103
169
  - 'lib/lutaml/qea/factory/ea_to_uml_factory.rb'
104
- - 'lib/lutaml/uml_repository/static_site/serializers/class_serializer.rb'
170
+ - 'lib/lutaml/uml_repository/static_site/generator.rb'
171
+ - 'lib/lutaml/uml_repository/static_site/output/vue_inlined_strategy.rb'
172
+ - 'lib/lutaml/uml_repository/static_site/serializers/base.rb'
105
173
 
174
+ # Offense count: 3
106
175
  # Configuration parameters: MinNameLength, AllowNamesEndingInNumbers, AllowedNames, ForbiddenNames.
107
176
  # AllowedNames: as, at, by, cc, db, id, if, in, io, ip, of, on, os, pp, to
108
177
  Naming/MethodParameterName:
109
178
  Exclude:
110
179
  - 'lib/lutaml/cli/tree_view_formatter.rb'
111
- - 'lib/lutaml/uml_repository/static_site/generator.rb'
180
+ - 'lib/lutaml/uml_repository/static_site/output/vue_inlined_strategy.rb'
112
181
  - 'spec/lutaml/parsers/serialize_xmi_to_liquid_spec.rb'
113
182
 
183
+ # Offense count: 3
114
184
  # Configuration parameters: Mode, AllowedMethods, AllowedPatterns, AllowBangMethods, WaywardPredicates.
115
185
  # AllowedMethods: call
116
186
  # WaywardPredicates: infinite?, nonzero?
@@ -119,25 +189,25 @@ Naming/PredicateMethod:
119
189
  - 'lib/lutaml/qea/factory/document_builder.rb'
120
190
  - 'spec/lutaml/xmi/liquid_drops/nil_safety_spec.rb'
121
191
 
192
+ # Offense count: 2
122
193
  # Configuration parameters: MinSize.
123
194
  Performance/CollectionLiteralInLoop:
124
195
  Exclude:
125
196
  - 'spec/lutaml/qea/infrastructure/table_reader_spec.rb'
126
197
  - 'spec/lutaml/uml_repository/index_builder_spec.rb'
127
198
 
199
+ # Offense count: 2
128
200
  Performance/MapMethodChain:
129
201
  Exclude:
130
202
  - 'lib/lutaml/cli/output_formatter.rb'
131
203
  - 'lib/lutaml/qea/models/ea_diagram_link.rb'
132
204
 
133
- RSpec/AnyInstance:
134
- Exclude:
135
- - 'spec/lutaml/uml_repository/static_site/generator_spec.rb'
136
-
205
+ # Offense count: 1
137
206
  RSpec/BeforeAfterAll:
138
207
  Exclude:
139
208
  - 'spec/lutaml/qea/verification/comprehensive_equivalence_spec.rb'
140
209
 
210
+ # Offense count: 23
141
211
  # Configuration parameters: Prefixes, AllowedPatterns.
142
212
  # Prefixes: when, with, without
143
213
  RSpec/ContextWording:
@@ -153,37 +223,43 @@ RSpec/ContextWording:
153
223
  - 'spec/lutaml/cli/uml/tree_command_spec.rb'
154
224
  - 'spec/lutaml/cli/uml/verify_command_spec.rb'
155
225
  - 'spec/lutaml/qea/integration/full_parsing_spec.rb'
156
- - 'spec/lutaml/xml/parsers/xml_spec.rb'
157
226
 
227
+ # Offense count: 23
158
228
  # Configuration parameters: IgnoredMetadata.
159
229
  RSpec/DescribeClass:
160
230
  Enabled: false
161
231
 
232
+ # Offense count: 684
162
233
  # Configuration parameters: CountAsOne.
163
234
  RSpec/ExampleLength:
164
235
  Max: 30
165
236
 
237
+ # Offense count: 7
166
238
  # This cop supports safe autocorrection (--autocorrect).
167
239
  RSpec/ExpectActual:
168
240
  Exclude:
169
241
  - 'spec/lutaml/qea/diagram_support_spec.rb'
170
242
  - 'spec/lutaml/qea/services/configuration_spec.rb'
171
243
 
244
+ # Offense count: 1
172
245
  RSpec/ExpectInLet:
173
246
  Exclude:
174
247
  - 'spec/lutaml/ea/diagram/svg_accuracy_spec.rb'
175
248
 
249
+ # Offense count: 90
176
250
  RSpec/ExpectOutput:
177
251
  Exclude:
178
252
  - 'spec/lutaml/cli/interactive_shell_spec.rb'
179
253
  - 'spec/lutaml/cli/package_commands_spec.rb'
180
254
 
255
+ # Offense count: 5
181
256
  # Configuration parameters: Max, AllowedIdentifiers, AllowedPatterns.
182
257
  RSpec/IndexedLet:
183
258
  Exclude:
184
259
  - 'spec/lutaml/qea/repositories/base_repository_spec.rb'
185
260
  - 'spec/lutaml/qea/repositories/object_repository_spec.rb'
186
261
 
262
+ # Offense count: 15
187
263
  RSpec/LeakyConstantDeclaration:
188
264
  Exclude:
189
265
  - 'spec/lutaml/model_transformations/format_registry_spec.rb'
@@ -192,10 +268,12 @@ RSpec/LeakyConstantDeclaration:
192
268
  - 'spec/lutaml/model_transformations_spec.rb'
193
269
  - 'spec/lutaml/uml_repository/presenters/presenter_factory_spec.rb'
194
270
 
271
+ # Offense count: 1
195
272
  RSpec/LeakyLocalVariable:
196
273
  Exclude:
197
274
  - 'spec/lutaml/ea/diagram/svg_accuracy_spec.rb'
198
275
 
276
+ # Offense count: 11
199
277
  # Configuration parameters: EnforcedStyle.
200
278
  # SupportedStyles: have_received, receive
201
279
  RSpec/MessageSpies:
@@ -205,24 +283,34 @@ RSpec/MessageSpies:
205
283
  - 'spec/lutaml/uml_repository/presenters/diagram_presenter_spec.rb'
206
284
  - 'spec/lutaml/uml_repository/repository_spec.rb'
207
285
 
286
+ # Offense count: 2
287
+ RSpec/MultipleDescribes:
288
+ Exclude:
289
+ - 'spec/lutaml/uml_repository/static_site/models_spec.rb'
290
+ - 'spec/lutaml/uml_repository/static_site/output_strategy_spec.rb'
291
+
292
+ # Offense count: 84
208
293
  RSpec/MultipleExpectations:
209
- Max: 7
294
+ Max: 12
210
295
 
296
+ # Offense count: 145
211
297
  # Configuration parameters: AllowSubject.
212
298
  RSpec/MultipleMemoizedHelpers:
213
299
  Max: 11
214
300
 
301
+ # Offense count: 33
215
302
  # Configuration parameters: AllowedGroups.
216
303
  RSpec/NestedGroups:
217
304
  Max: 4
218
305
 
306
+ # Offense count: 1
219
307
  # Configuration parameters: AllowedPatterns.
220
308
  # AllowedPatterns: ^expect_, ^assert_
221
309
  RSpec/NoExpectationExample:
222
310
  Exclude:
223
311
  - 'spec/lutaml/qea/verification/comprehensive_equivalence_spec.rb'
224
- - 'spec/lutaml/uml_repository/static_site/generator_spec.rb'
225
312
 
313
+ # Offense count: 12
226
314
  RSpec/RepeatedExample:
227
315
  Exclude:
228
316
  - 'spec/lutaml/cli/package_commands_spec.rb'
@@ -230,10 +318,12 @@ RSpec/RepeatedExample:
230
318
  - 'spec/lutaml/qea/validation/validation_engine_spec.rb'
231
319
  - 'spec/lutaml/uml_repository/static_site/data_transformer_spec.rb'
232
320
 
321
+ # Offense count: 2
233
322
  RSpec/RepeatedExampleGroupDescription:
234
323
  Exclude:
235
324
  - 'spec/lutaml/uml/parsers/dsl_spec.rb'
236
325
 
326
+ # Offense count: 4
237
327
  # Configuration parameters: CustomTransform, IgnoreMethods, IgnoreMetadata, InflectorPath, EnforcedInflector.
238
328
  # SupportedInflectors: default, active_support
239
329
  RSpec/SpecFilePathFormat:
@@ -243,22 +333,64 @@ RSpec/SpecFilePathFormat:
243
333
  - 'spec/lutaml/parsers/serialize_xmi_to_liquid_spec.rb'
244
334
  - 'spec/lutaml/uml_repository/web_ui/app_spec.rb'
245
335
 
336
+ # Offense count: 1
246
337
  Security/MarshalLoad:
247
338
  Exclude:
248
339
  - 'lib/lutaml/uml_repository/package_loader.rb'
249
340
 
341
+ # Offense count: 1
342
+ # This cop supports safe autocorrection (--autocorrect).
343
+ # Configuration parameters: EnforcedStyle, ProceduralMethods, FunctionalMethods, AllowedMethods, AllowedPatterns, AllowBracesOnProceduralOneLiners, BracesRequiredMethods.
344
+ # SupportedStyles: line_count_based, semantic, braces_for_chaining, always_braces
345
+ # ProceduralMethods: benchmark, bm, bmbm, create, each_with_object, measure, new, realtime, tap, with_object
346
+ # FunctionalMethods: let, let!, subject, watch
347
+ # AllowedMethods: lambda, proc, it
348
+ Style/BlockDelimiters:
349
+ Exclude:
350
+ - 'lib/lutaml/uml_repository/static_site/serializers/metadata_builder.rb'
351
+
352
+ # Offense count: 1
353
+ # This cop supports unsafe autocorrection (--autocorrect-all).
354
+ # Configuration parameters: MinBranchesCount.
355
+ Style/CaseLikeIf:
356
+ Exclude:
357
+ - 'lib/lutaml/uml/model_helpers.rb'
358
+
359
+ # Offense count: 2
250
360
  # This cop supports safe autocorrection (--autocorrect).
251
361
  Style/ComparableClamp:
252
362
  Exclude:
253
363
  - 'lib/lutaml/cli/enhanced_formatter.rb'
254
364
 
365
+ # Offense count: 1
366
+ # This cop supports safe autocorrection (--autocorrect).
367
+ Style/NegatedIfElseCondition:
368
+ Exclude:
369
+ - 'lib/lutaml/cli/uml/spa_command.rb'
370
+
371
+ # Offense count: 2
372
+ # Configuration parameters: AllowedClasses.
373
+ Style/OneClassPerFile:
374
+ Exclude:
375
+ - 'lib/lutaml/cli.rb'
376
+ - 'lib/lutaml/qea.rb'
377
+
378
+ # Offense count: 1
255
379
  # This cop supports unsafe autocorrection (--autocorrect-all).
256
380
  Style/PartitionInsteadOfDoubleSelect:
257
381
  Exclude:
258
382
  - 'lib/lutaml/qea/factory/generalization_builder.rb'
259
383
 
384
+ # Offense count: 3
260
385
  # Configuration parameters: Max.
261
386
  Style/SafeNavigationChainLength:
262
387
  Exclude:
263
388
  - 'lib/lutaml/qea/validation/attribute_validator.rb'
264
389
  - 'lib/lutaml/qea/validation/operation_validator.rb'
390
+
391
+ # Offense count: 1
392
+ # This cop supports unsafe autocorrection (--autocorrect-all).
393
+ # Configuration parameters: Mode.
394
+ Style/StringConcatenation:
395
+ Exclude:
396
+ - 'lib/lutaml/cli/uml/spa_command.rb'
data/CLAUDE.md CHANGED
@@ -22,6 +22,23 @@ Lutaml is a Ruby gem for parsing and transforming UML models from multiple forma
22
22
  - DRY: consolidate duplicated patterns (especially `format_definition`, index building, metadata construction).
23
23
  - Never commit TODO tracking files to git.
24
24
 
25
+ ## Spec Require Rules
26
+
27
+ **ALWAYS use `require_relative` in spec files. NEVER use bare `require`.**
28
+
29
+ `require` depends on `$LOAD_PATH` which is unreliable:
30
+ - Running a single spec file (`bundle exec rspec spec/foo/bar_spec.rb`) may not have `lib/` on the load path, causing `LoadError`.
31
+ - If the gem is installed globally, `require "lutaml/foo"` loads the installed gem version, not the local working copy — specs silently test the wrong code.
32
+ - `require_relative` resolves relative to the spec file's location. It always loads the exact file you intend, regardless of how the spec is run.
33
+
34
+ ```ruby
35
+ # WRONG — may load wrong file or fail
36
+ require "lutaml/uml_repository/static_site/data_transformer"
37
+
38
+ # CORRECT — always loads the local file
39
+ require_relative "../../../lib/lutaml/uml_repository/static_site/data_transformer"
40
+ ```
41
+
25
42
  ## Architecture
26
43
  - `lib/lutaml/uml/` — UML domain models (Class, Association, Package, etc.)
27
44
  - `lib/lutaml/uml_repository/` — Repository pattern over UML documents (queries, presenters, exporters, SPA)