lutaml-model 0.8.16 → 0.8.18

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 (230) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/downstream-performance.yml +27 -1
  3. data/.github/workflows/js-pr-check.yml +102 -0
  4. data/.github/workflows/js-sync.yml +51 -0
  5. data/.github/workflows/opal.yml +26 -6
  6. data/.github/workflows/performance.yml +32 -7
  7. data/.github/workflows/rake.yml +78 -32
  8. data/.github/workflows/release.yml +0 -3
  9. data/.gitmodules +6 -0
  10. data/.rubocop_todo.yml +76 -12
  11. data/Gemfile +16 -1
  12. data/README.adoc +267 -0
  13. data/Rakefile +166 -4
  14. data/docs/_guides/schema-import.adoc +42 -0
  15. data/docs/_guides/xml/namespace-semantics.adoc +2 -0
  16. data/docs/_guides/xml-mapping.adoc +21 -0
  17. data/docs/_guides/xml-namespace-qualification.adoc +142 -0
  18. data/docs/_pages/validation.adoc +65 -0
  19. data/docs/_tutorials/xml-element-attribute-namespace-guide.adoc +2 -0
  20. data/docs/_tutorials/xml-schema-primer-style-guide.adoc +2 -0
  21. data/docs/namespace-management.adoc +2 -0
  22. data/docs/xml-schema-qualification.md +6 -0
  23. data/lib/compat/opal/generate_boot.rb +123 -0
  24. data/lib/compat/opal/js_bundle_entry.rb +42 -0
  25. data/lib/compat/opal/lutaml_model_boot.rb +497 -0
  26. data/lib/compat/opal/moxml_boot.rb +68 -0
  27. data/lib/compat/opal/yaml_compat.rb +32 -0
  28. data/lib/lutaml/json.rb +1 -1
  29. data/lib/lutaml/jsonld.rb +1 -4
  30. data/lib/lutaml/key_value/transform.rb +3 -8
  31. data/lib/lutaml/key_value/transformation/value_serializer.rb +14 -1
  32. data/lib/lutaml/key_value/transformation.rb +17 -5
  33. data/lib/lutaml/model/adapter_resolver.rb +2 -2
  34. data/lib/lutaml/model/attribute.rb +88 -11
  35. data/lib/lutaml/model/cached_type_resolver.rb +1 -1
  36. data/lib/lutaml/model/choice.rb +34 -0
  37. data/lib/lutaml/model/compiled_rule.rb +7 -0
  38. data/lib/lutaml/model/error/union_schema_unsupported_error.rb +11 -0
  39. data/lib/lutaml/model/global_context.rb +11 -8
  40. data/lib/lutaml/model/instrumentation.rb +2 -2
  41. data/lib/lutaml/model/mapping/mapping_rule.rb +0 -6
  42. data/lib/lutaml/model/register.rb +2 -2
  43. data/lib/lutaml/model/runtime_compatibility.rb +50 -0
  44. data/lib/lutaml/model/schema/class_loader.rb +58 -0
  45. data/lib/lutaml/model/schema/compiled_output.rb +83 -0
  46. data/lib/lutaml/model/schema/definitions/attribute.rb +32 -0
  47. data/lib/lutaml/model/schema/definitions/choice.rb +20 -0
  48. data/lib/lutaml/model/schema/definitions/facet.rb +40 -0
  49. data/lib/lutaml/model/schema/definitions/group_import.rb +22 -0
  50. data/lib/lutaml/model/schema/definitions/member_walk.rb +33 -0
  51. data/lib/lutaml/model/schema/definitions/model.rb +40 -0
  52. data/lib/lutaml/model/schema/definitions/namespace.rb +23 -0
  53. data/lib/lutaml/model/schema/definitions/restricted_type.rb +30 -0
  54. data/lib/lutaml/model/schema/definitions/sequence.rb +19 -0
  55. data/lib/lutaml/model/schema/definitions/simple_content.rb +22 -0
  56. data/lib/lutaml/model/schema/definitions/transform_facet.rb +21 -0
  57. data/lib/lutaml/model/schema/definitions/type_ref.rb +20 -0
  58. data/lib/lutaml/model/schema/definitions/union_type.rb +28 -0
  59. data/lib/lutaml/model/schema/definitions/xml_root.rb +20 -0
  60. data/lib/lutaml/model/schema/definitions.rb +24 -0
  61. data/lib/lutaml/model/schema/file_writer.rb +70 -0
  62. data/lib/lutaml/model/schema/generator/definitions_collection.rb +16 -2
  63. data/lib/lutaml/model/schema/generator/property.rb +21 -4
  64. data/lib/lutaml/model/schema/module_nesting.rb +31 -0
  65. data/lib/lutaml/model/schema/namespace_naming.rb +46 -0
  66. data/lib/lutaml/model/schema/registry_generator.rb +115 -0
  67. data/lib/lutaml/model/schema/renderers/base.rb +40 -0
  68. data/lib/lutaml/model/schema/renderers/mappings.rb +72 -0
  69. data/lib/lutaml/model/schema/renderers/member_decls.rb +115 -0
  70. data/lib/lutaml/model/schema/renderers/model.rb +121 -0
  71. data/lib/lutaml/model/schema/renderers/namespace.rb +30 -0
  72. data/lib/lutaml/model/schema/renderers/registration.rb +64 -0
  73. data/lib/lutaml/model/schema/renderers/required_files_calculator.rb +93 -0
  74. data/lib/lutaml/model/schema/renderers/restricted_type.rb +88 -0
  75. data/lib/lutaml/model/schema/renderers/union.rb +83 -0
  76. data/lib/lutaml/model/schema/renderers.rb +19 -0
  77. data/lib/lutaml/model/schema/rnc_compiler/source_resolver.rb +47 -0
  78. data/lib/lutaml/model/schema/rnc_compiler.rb +62 -0
  79. data/lib/lutaml/model/schema/rng_compiler/define_classifier.rb +91 -0
  80. data/lib/lutaml/model/schema/rng_compiler/element_visitor.rb +392 -0
  81. data/lib/lutaml/model/schema/rng_compiler/member_collector.rb +30 -0
  82. data/lib/lutaml/model/schema/rng_compiler/rng_helpers.rb +152 -0
  83. data/lib/lutaml/model/schema/rng_compiler/value_type_resolver.rb +125 -0
  84. data/lib/lutaml/model/schema/rng_compiler.rb +220 -0
  85. data/lib/lutaml/model/schema/templates.rb +162 -0
  86. data/lib/lutaml/model/schema/xml_compiler/element_order.rb +41 -0
  87. data/lib/lutaml/model/schema/xml_compiler/registry_generator.rb +31 -107
  88. data/lib/lutaml/model/schema/xml_compiler/spec_builder/complex_types.rb +191 -0
  89. data/lib/lutaml/model/schema/xml_compiler/spec_builder/members.rb +216 -0
  90. data/lib/lutaml/model/schema/xml_compiler/spec_builder/simple_types.rb +153 -0
  91. data/lib/lutaml/model/schema/xml_compiler/spec_builder.rb +167 -0
  92. data/lib/lutaml/model/schema/xml_compiler/supported_data_types.rb +87 -0
  93. data/lib/lutaml/model/schema/xml_compiler.rb +38 -517
  94. data/lib/lutaml/model/schema.rb +19 -0
  95. data/lib/lutaml/model/serialize/attribute_definition.rb +14 -2
  96. data/lib/lutaml/model/serialize/builder.rb +15 -2
  97. data/lib/lutaml/model/serialize/value_mapping.rb +9 -57
  98. data/lib/lutaml/model/serialize.rb +6 -9
  99. data/lib/lutaml/model/services/rule_value_extractor.rb +2 -3
  100. data/lib/lutaml/model/services.rb +0 -2
  101. data/lib/lutaml/model/store.rb +2 -1
  102. data/lib/lutaml/model/toml.rb +1 -1
  103. data/lib/lutaml/model/transform.rb +17 -39
  104. data/lib/lutaml/model/transformation_registry.rb +1 -1
  105. data/lib/lutaml/model/type.rb +1 -0
  106. data/lib/lutaml/model/union.rb +320 -0
  107. data/lib/lutaml/model/utils.rb +6 -0
  108. data/lib/lutaml/model/validation.rb +1 -4
  109. data/lib/lutaml/model/version.rb +1 -1
  110. data/lib/lutaml/model.rb +19 -0
  111. data/lib/lutaml/{jsonld → rdf}/context.rb +1 -1
  112. data/lib/lutaml/{jsonld/transform.rb → rdf/linked_data_transform.rb} +33 -35
  113. data/lib/lutaml/{jsonld → rdf}/term_definition.rb +1 -1
  114. data/lib/lutaml/rdf.rb +3 -0
  115. data/lib/lutaml/toml.rb +1 -1
  116. data/lib/lutaml/xml/adapter.rb +1 -1
  117. data/lib/lutaml/xml/adapter_element.rb +2 -2
  118. data/lib/lutaml/xml/adapter_loader.rb +1 -1
  119. data/lib/lutaml/xml/builder/base.rb +1 -1
  120. data/lib/lutaml/xml/builder.rb +1 -1
  121. data/lib/lutaml/xml/error/schema_validation_error.rb +25 -0
  122. data/lib/lutaml/xml/model_transform.rb +5 -1
  123. data/lib/lutaml/xml/schema/relaxng_schema.rb +5 -0
  124. data/lib/lutaml/xml/schema/xsd_schema.rb +4 -0
  125. data/lib/lutaml/xml/serialization/format_conversion.rb +48 -0
  126. data/lib/lutaml/xml/serialization/instance_methods.rb +13 -0
  127. data/lib/lutaml/xml/transformation/element_builder.rb +59 -31
  128. data/lib/lutaml/xml/transformation/ordered_applier.rb +6 -0
  129. data/lib/lutaml/xml/xsd_validator.rb +66 -0
  130. data/lib/lutaml/xml.rb +53 -12
  131. data/lib/lutaml/yamlld/adapter.rb +25 -0
  132. data/lib/lutaml/yamlld.rb +25 -0
  133. data/lutaml-model.gemspec +4 -2
  134. data/spec/fixtures/xml/schema/rnc/address_book.rnc +15 -0
  135. data/spec/fixtures/xml/schema/rnc/book_features.rnc +18 -0
  136. data/spec/fixtures/xml/schema/rnc/includes/book.rnc +6 -0
  137. data/spec/fixtures/xml/schema/rnc/includes/circular_a.rnc +8 -0
  138. data/spec/fixtures/xml/schema/rnc/includes/circular_b.rnc +8 -0
  139. data/spec/fixtures/xml/schema/rnc/includes/library.rnc +8 -0
  140. data/spec/fixtures/xml/schema/rng/address_book.rng +16 -0
  141. data/spec/fixtures/xml/schema/rng/book.rng +27 -0
  142. data/spec/fixtures/xml/schema/rng/fixed_value.rng +11 -0
  143. data/spec/fixtures/xml/schema/rng/fragment_in_choice.rng +30 -0
  144. data/spec/fixtures/xml/schema/rng/full_name.rng +39 -0
  145. data/spec/fixtures/xml/schema/rng/integer_range.rng +32 -0
  146. data/spec/fixtures/xml/schema/rng/list_type.rng +12 -0
  147. data/spec/fixtures/xml/schema/rng/namespaced.rng +9 -0
  148. data/spec/fixtures/xml/schema/rng/paragraph.rng +13 -0
  149. data/spec/fixtures/xml/schema/rng/person.rng +23 -0
  150. data/spec/fixtures/xml/schema/rng/union.rng +14 -0
  151. data/spec/fixtures/xml/validate_xml_with_address.xsd +13 -0
  152. data/spec/fixtures/xml/validate_xml_with_contact.xsd +11 -0
  153. data/spec/fixtures/xml/validate_xml_with_person.xsd +11 -0
  154. data/spec/fixtures/xml/validate_xml_with_person_strict.xsd +17 -0
  155. data/spec/fixtures/xml/validate_xml_with_product.xsd +37 -0
  156. data/spec/lutaml/integration/multi_format_spec.rb +23 -0
  157. data/spec/lutaml/model/attribute_apply_value_map_spec.rb +134 -0
  158. data/spec/lutaml/model/attribute_spec.rb +177 -13
  159. data/spec/lutaml/model/boot_manifest_spec.rb +30 -0
  160. data/spec/lutaml/model/choice_restrict_spec.rb +225 -0
  161. data/spec/lutaml/model/collection_spec.rb +18 -0
  162. data/spec/lutaml/model/custom_model_spec.rb +4 -4
  163. data/spec/lutaml/model/mixed_content_spec.rb +173 -2
  164. data/spec/lutaml/model/multiple_mapping_spec.rb +4 -4
  165. data/spec/lutaml/model/opal_smoke_spec.rb +67 -2
  166. data/spec/lutaml/model/ordered_content_spec.rb +33 -3
  167. data/spec/lutaml/model/raw_element_spec.rb +125 -0
  168. data/spec/lutaml/model/rule_value_extractor_spec.rb +7 -14
  169. data/spec/lutaml/model/runtime_compatibility_spec.rb +25 -0
  170. data/spec/lutaml/model/schema/renderers/model_spec.rb +149 -0
  171. data/spec/lutaml/model/schema/renderers/namespace_spec.rb +36 -0
  172. data/spec/lutaml/model/schema/renderers/restricted_type_spec.rb +75 -0
  173. data/spec/lutaml/model/schema/renderers/union_spec.rb +58 -0
  174. data/spec/lutaml/model/transform_apply_value_map_spec.rb +64 -0
  175. data/spec/lutaml/model/uninitialized_class_spec.rb +1 -1
  176. data/spec/lutaml/model/union_attribute_spec.rb +658 -0
  177. data/spec/lutaml/model/union_spec.rb +257 -0
  178. data/spec/lutaml/model/utils_spec.rb +14 -0
  179. data/spec/lutaml/model/xsd_form_default_patterns_spec.rb +2 -2
  180. data/spec/lutaml/model/xsd_patterns_spec.rb +4 -4
  181. data/spec/lutaml/{jsonld → rdf}/context_spec.rb +2 -2
  182. data/spec/lutaml/{jsonld/transform_spec.rb → rdf/linked_data_transform_spec.rb} +15 -1
  183. data/spec/lutaml/{jsonld → rdf}/term_definition_spec.rb +2 -2
  184. data/spec/lutaml/turtle/transform_spec.rb +2 -2
  185. data/spec/lutaml/xml/enhanced_mapping_spec.rb +230 -1
  186. data/spec/lutaml/xml/mapping_spec.rb +4 -4
  187. data/spec/lutaml/xml/namespace_placement_spec.rb +11 -8
  188. data/spec/lutaml/xml/namespace_three_phase_spec.rb +1 -1
  189. data/spec/lutaml/xml/opal_xml_spec.rb +22 -20
  190. data/spec/lutaml/xml/prefix_control_spec.rb +4 -4
  191. data/spec/lutaml/xml/schema/compiler_spec.rb +21 -4
  192. data/spec/lutaml/xml/schema/rnc_compiler_spec.rb +404 -0
  193. data/spec/lutaml/xml/schema/rng_compiler_spec.rb +893 -0
  194. data/spec/lutaml/xml/serializable_namespace_spec.rb +6 -6
  195. data/spec/lutaml/xml/type_namespace_examples_spec.rb +1 -1
  196. data/spec/lutaml/xml/type_namespace_integration_spec.rb +3 -3
  197. data/spec/lutaml/xml/validate_xml_with_constructs_spec.rb +222 -0
  198. data/spec/lutaml/xml/validate_xml_with_spec.rb +186 -0
  199. data/spec/lutaml/yamlld/adapter_spec.rb +56 -0
  200. data/spec/lutaml/yamlld/registration_spec.rb +33 -0
  201. data/spec/spec_helper.rb +28 -11
  202. data/spec/support/opal.rb +5 -2
  203. metadata +108 -37
  204. data/lib/lutaml/model/schema/xml_compiler/attribute.rb +0 -106
  205. data/lib/lutaml/model/schema/xml_compiler/attribute_group.rb +0 -47
  206. data/lib/lutaml/model/schema/xml_compiler/choice.rb +0 -67
  207. data/lib/lutaml/model/schema/xml_compiler/complex_content.rb +0 -27
  208. data/lib/lutaml/model/schema/xml_compiler/complex_content_restriction.rb +0 -34
  209. data/lib/lutaml/model/schema/xml_compiler/complex_type.rb +0 -173
  210. data/lib/lutaml/model/schema/xml_compiler/element.rb +0 -121
  211. data/lib/lutaml/model/schema/xml_compiler/group.rb +0 -113
  212. data/lib/lutaml/model/schema/xml_compiler/restriction.rb +0 -104
  213. data/lib/lutaml/model/schema/xml_compiler/sequence.rb +0 -52
  214. data/lib/lutaml/model/schema/xml_compiler/simple_content.rb +0 -40
  215. data/lib/lutaml/model/schema/xml_compiler/simple_type.rb +0 -265
  216. data/lib/lutaml/model/schema/xml_compiler/xml_namespace_class.rb +0 -110
  217. data/lib/lutaml/model/services/default_value_resolver.rb +0 -60
  218. data/spec/lutaml/model/services/default_value_resolver_spec.rb +0 -162
  219. data/spec/lutaml/xml/schema/compiler/attribute_group_spec.rb +0 -71
  220. data/spec/lutaml/xml/schema/compiler/attribute_spec.rb +0 -67
  221. data/spec/lutaml/xml/schema/compiler/choice_spec.rb +0 -74
  222. data/spec/lutaml/xml/schema/compiler/complex_content_restriction_spec.rb +0 -60
  223. data/spec/lutaml/xml/schema/compiler/complex_content_spec.rb +0 -41
  224. data/spec/lutaml/xml/schema/compiler/complex_type_spec.rb +0 -202
  225. data/spec/lutaml/xml/schema/compiler/element_spec.rb +0 -68
  226. data/spec/lutaml/xml/schema/compiler/group_spec.rb +0 -90
  227. data/spec/lutaml/xml/schema/compiler/restriction_spec.rb +0 -77
  228. data/spec/lutaml/xml/schema/compiler/sequence_spec.rb +0 -65
  229. data/spec/lutaml/xml/schema/compiler/simple_content_spec.rb +0 -61
  230. data/spec/lutaml/xml/schema/compiler/simple_type_spec.rb +0 -184
@@ -0,0 +1,497 @@
1
+ # frozen_string_literal: true
2
+
3
+ # DO NOT EDIT — regenerate with:
4
+ # ruby lib/compat/opal/generate_boot.rb
5
+ #
6
+ # Opal does not support Ruby autoload (it is a no-op at parse time).
7
+ # This file explicitly requires every autoload target in lib/lutaml/**
8
+ # so that nested constants resolve at runtime under Opal.
9
+ #
10
+ # Native-only paths excluded under Opal:
11
+ # - nokogiri/ox/rexml adapters (C extensions unavailable)
12
+ # - XSD / RELAX NG schema generators (require Nokogiri)
13
+ # - lutaml/model/cli (thor-based, runtime-irrelevant under Opal)
14
+ #
15
+ # Ordering: lutaml/model and lutaml/xml define the Lutaml::Model and
16
+ # Lutaml::Xml namespaces, so they load first. Remaining paths are
17
+ # ordered by depth (shallower first) so parent files declare their
18
+ # child namespaces before children load.
19
+ #
20
+ # Loaded by the Opal Rakefile before spec_helper.
21
+
22
+ require "lutaml/model"
23
+ require "lutaml/xml"
24
+ require "lutaml/hash_format"
25
+ require "lutaml/json"
26
+ require "lutaml/jsonl"
27
+ require "lutaml/jsonld"
28
+ require "lutaml/key_value"
29
+ require "lutaml/toml"
30
+ require "lutaml/turtle"
31
+ require "lutaml/yaml"
32
+ require "lutaml/yamlld"
33
+ require "lutaml/yamls"
34
+ require "lutaml/hash_format/adapter"
35
+ require "lutaml/jsonl/adapter"
36
+ require "lutaml/jsonld/adapter"
37
+ require "lutaml/key_value/adapter"
38
+ require "lutaml/key_value/data_model"
39
+ require "lutaml/key_value/document"
40
+ require "lutaml/key_value/mapping"
41
+ require "lutaml/key_value/mapping_rule"
42
+ require "lutaml/key_value/transform"
43
+ require "lutaml/key_value/transformation"
44
+ require "lutaml/key_value/transformation_builder"
45
+ require "lutaml/model/adapter_resolver"
46
+ require "lutaml/model/adapter_scope"
47
+ require "lutaml/model/attribute"
48
+ require "lutaml/model/attribute_validator"
49
+ require "lutaml/model/cached_type_resolver"
50
+ require "lutaml/model/choice"
51
+ require "lutaml/model/collection"
52
+ require "lutaml/model/collection_handler"
53
+ require "lutaml/model/comparable_model"
54
+ require "lutaml/model/comparable_nil"
55
+ require "lutaml/model/compiled_rule"
56
+ require "lutaml/model/config"
57
+ require "lutaml/model/configuration"
58
+ require "lutaml/model/consolidation_map"
59
+ require "lutaml/model/consolidation_rule"
60
+ require "lutaml/model/constants"
61
+ require "lutaml/model/context_registry"
62
+ require "lutaml/model/deep_dupable"
63
+ require "lutaml/model/error"
64
+ require "lutaml/model/errors"
65
+ require "lutaml/model/finalization_cache"
66
+ require "lutaml/model/format_registry"
67
+ require "lutaml/model/global_context"
68
+ require "lutaml/model/global_register"
69
+ require "lutaml/model/hash"
70
+ require "lutaml/model/import_registry"
71
+ require "lutaml/model/instrumentation"
72
+ require "lutaml/model/json"
73
+ require "lutaml/model/json_adapter"
74
+ require "lutaml/model/jsonl"
75
+ require "lutaml/model/liquefiable"
76
+ require "lutaml/model/liquid"
77
+ require "lutaml/model/mapping_hash"
78
+ require "lutaml/model/model_transformer"
79
+ require "lutaml/model/one_entry_cache"
80
+ require "lutaml/model/organization"
81
+ require "lutaml/model/register"
82
+ require "lutaml/model/registrable"
83
+ require "lutaml/model/render_policy"
84
+ require "lutaml/model/runtime_compatibility"
85
+ require "lutaml/model/schema"
86
+ require "lutaml/model/schema_location"
87
+ require "lutaml/model/sequence"
88
+ require "lutaml/model/serializable"
89
+ require "lutaml/model/serialize"
90
+ require "lutaml/model/services"
91
+ require "lutaml/model/store"
92
+ require "lutaml/model/toml"
93
+ require "lutaml/model/transform"
94
+ require "lutaml/model/transformation"
95
+ require "lutaml/model/transformation_builder"
96
+ require "lutaml/model/transformation_registry"
97
+ require "lutaml/model/type"
98
+ require "lutaml/model/type_context"
99
+ require "lutaml/model/type_registry"
100
+ require "lutaml/model/type_resolver"
101
+ require "lutaml/model/type_substitution"
102
+ require "lutaml/model/uninitialized_class"
103
+ require "lutaml/model/union"
104
+ require "lutaml/model/utils"
105
+ require "lutaml/model/validation"
106
+ require "lutaml/model/value_transformer"
107
+ require "lutaml/model/version"
108
+ require "lutaml/model/yaml"
109
+ require "lutaml/model/yamls"
110
+ require "lutaml/rdf/context"
111
+ require "lutaml/rdf/error"
112
+ require "lutaml/rdf/iri"
113
+ require "lutaml/rdf/language_tagged"
114
+ require "lutaml/rdf/linked_data_transform"
115
+ require "lutaml/rdf/literal"
116
+ require "lutaml/rdf/mapping"
117
+ require "lutaml/rdf/mapping_rule"
118
+ require "lutaml/rdf/member_rule"
119
+ require "lutaml/rdf/namespace"
120
+ require "lutaml/rdf/namespace_set"
121
+ require "lutaml/rdf/namespaces"
122
+ require "lutaml/rdf/term_definition"
123
+ require "lutaml/rdf/transform"
124
+ require "lutaml/turtle/adapter"
125
+ require "lutaml/turtle/mapping"
126
+ require "lutaml/turtle/transform"
127
+ require "lutaml/xml/adapter"
128
+ require "lutaml/xml/adapter_element"
129
+ require "lutaml/xml/adapter_loader"
130
+ require "lutaml/xml/attribute_namespace_resolver"
131
+ require "lutaml/xml/blank_namespace"
132
+ require "lutaml/xml/blank_namespace_handler"
133
+ require "lutaml/xml/builder"
134
+ require "lutaml/xml/configurable"
135
+ require "lutaml/xml/data_model"
136
+ require "lutaml/xml/decisions"
137
+ require "lutaml/xml/declaration_handler"
138
+ require "lutaml/xml/declaration_plan"
139
+ require "lutaml/xml/declaration_plan_query"
140
+ require "lutaml/xml/declaration_planner"
141
+ require "lutaml/xml/doctype_extractor"
142
+ require "lutaml/xml/document"
143
+ require "lutaml/xml/element"
144
+ require "lutaml/xml/element_prefix_resolver"
145
+ require "lutaml/xml/encoding_normalizer"
146
+ require "lutaml/xml/format_chooser"
147
+ require "lutaml/xml/hoisting_algorithm"
148
+ require "lutaml/xml/listener"
149
+ require "lutaml/xml/mapping"
150
+ require "lutaml/xml/mapping_rule"
151
+ require "lutaml/xml/model_transform"
152
+ require "lutaml/xml/namespace"
153
+ require "lutaml/xml/namespace_class_registry"
154
+ require "lutaml/xml/namespace_collector"
155
+ require "lutaml/xml/namespace_declaration"
156
+ require "lutaml/xml/namespace_declaration_builder"
157
+ require "lutaml/xml/namespace_declaration_data"
158
+ require "lutaml/xml/namespace_inheritance_resolver"
159
+ require "lutaml/xml/namespace_inheritance_strategy"
160
+ require "lutaml/xml/namespace_needs"
161
+ require "lutaml/xml/namespace_resolution_strategy"
162
+ require "lutaml/xml/namespace_resolver"
163
+ require "lutaml/xml/namespace_scope_config"
164
+ require "lutaml/xml/namespace_type_resolver"
165
+ require "lutaml/xml/namespace_usage"
166
+ require "lutaml/xml/oga"
167
+ require "lutaml/xml/parsed_namespace_declaration"
168
+ require "lutaml/xml/parsed_namespace_set"
169
+ require "lutaml/xml/polymorphic_value_handler"
170
+ require "lutaml/xml/qualified_inheritance_strategy"
171
+ require "lutaml/xml/rexml"
172
+ require "lutaml/xml/schema"
173
+ require "lutaml/xml/schema_location"
174
+ require "lutaml/xml/serialization"
175
+ require "lutaml/xml/shared_dsl"
176
+ require "lutaml/xml/transform"
177
+ require "lutaml/xml/transformation"
178
+ require "lutaml/xml/transformation_builder"
179
+ require "lutaml/xml/transformation_support"
180
+ require "lutaml/xml/type_namespace"
181
+ require "lutaml/xml/type_namespace_resolver"
182
+ require "lutaml/xml/unqualified_inheritance_strategy"
183
+ require "lutaml/xml/w3c"
184
+ require "lutaml/xml/xml_attribute"
185
+ require "lutaml/xml/xml_element"
186
+ require "lutaml/xml/xsd_validator"
187
+ require "lutaml/yaml/adapter"
188
+ require "lutaml/yaml/schema"
189
+ require "lutaml/yamlld/adapter"
190
+ require "lutaml/yamls/adapter"
191
+ require "lutaml/hash_format/adapter/document"
192
+ require "lutaml/hash_format/adapter/mapping"
193
+ require "lutaml/hash_format/adapter/mapping_rule"
194
+ require "lutaml/hash_format/adapter/standard_adapter"
195
+ require "lutaml/hash_format/adapter/transform"
196
+ require "lutaml/json/adapter/document"
197
+ require "lutaml/json/adapter/mapping"
198
+ require "lutaml/json/adapter/mapping_rule"
199
+ require "lutaml/json/adapter/standard_adapter"
200
+ require "lutaml/json/adapter/transform"
201
+ require "lutaml/json/schema/json_schema"
202
+ require "lutaml/jsonl/adapter/document"
203
+ require "lutaml/jsonl/adapter/mapping"
204
+ require "lutaml/jsonl/adapter/mapping_rule"
205
+ require "lutaml/jsonl/adapter/standard_adapter"
206
+ require "lutaml/jsonl/adapter/transform"
207
+ require "lutaml/key_value/adapter/hash"
208
+ require "lutaml/key_value/adapter/json"
209
+ require "lutaml/key_value/adapter/jsonl"
210
+ require "lutaml/key_value/adapter/toml"
211
+ require "lutaml/key_value/adapter/yaml"
212
+ require "lutaml/key_value/adapter/yamls"
213
+ require "lutaml/key_value/data_model/element"
214
+ require "lutaml/key_value/transformation/collection_serializer"
215
+ require "lutaml/key_value/transformation/rule_compiler"
216
+ require "lutaml/key_value/transformation/value_serializer"
217
+ require "lutaml/model/cached_type_resolver/mutex_hash_cache"
218
+ require "lutaml/model/consolidation/engine"
219
+ require "lutaml/model/consolidation_rule/dispatch_block"
220
+ require "lutaml/model/consolidation_rule/gather_rule"
221
+ require "lutaml/model/consolidation_rule/pattern_content_rule"
222
+ require "lutaml/model/consolidation_rule/pattern_element_rule"
223
+ require "lutaml/model/error/choice_lower_bound_error"
224
+ require "lutaml/model/error/choice_upper_bound_error"
225
+ require "lutaml/model/error/collection_count_out_of_range_error"
226
+ require "lutaml/model/error/collection_true_missing_error"
227
+ require "lutaml/model/error/element_count_out_of_range_error"
228
+ require "lutaml/model/error/format_adapter_not_specified_error"
229
+ require "lutaml/model/error/import_model_with_root_error"
230
+ require "lutaml/model/error/incorrect_mapping_argument_error"
231
+ require "lutaml/model/error/incorrect_sequence_error"
232
+ require "lutaml/model/error/invalid_attribute_name_error"
233
+ require "lutaml/model/error/invalid_attribute_options_error"
234
+ require "lutaml/model/error/invalid_attribute_type_error"
235
+ require "lutaml/model/error/invalid_choice_range_error"
236
+ require "lutaml/model/error/invalid_format_error"
237
+ require "lutaml/model/error/invalid_value_error"
238
+ require "lutaml/model/error/liquid_class_not_found_error"
239
+ require "lutaml/model/error/liquid_drop_already_registered_error"
240
+ require "lutaml/model/error/liquid_not_enabled_error"
241
+ require "lutaml/model/error/mapping_already_exists_error"
242
+ require "lutaml/model/error/mapping_attribute_missing_error"
243
+ require "lutaml/model/error/mapping_attribute_type_error"
244
+ require "lutaml/model/error/mixed_content_collection_error"
245
+ require "lutaml/model/error/multiple_mappings_error"
246
+ require "lutaml/model/error/no_attributes_defined_liquid_error"
247
+ require "lutaml/model/error/no_mapping_found_error"
248
+ require "lutaml/model/error/no_root_mapping_error"
249
+ require "lutaml/model/error/no_root_namespace_error"
250
+ require "lutaml/model/error/ordered_content_mapping_error"
251
+ require "lutaml/model/error/pattern_not_matched_error"
252
+ require "lutaml/model/error/polymorphic_error"
253
+ require "lutaml/model/error/required_attribute_missing_error"
254
+ require "lutaml/model/error/reverse_transform_block_not_defined_error"
255
+ require "lutaml/model/error/reverse_transformation_declaration_error"
256
+ require "lutaml/model/error/sorting_configuration_conflict_error"
257
+ require "lutaml/model/error/transform_block_not_defined_error"
258
+ require "lutaml/model/error/type_error"
259
+ require "lutaml/model/error/type_not_enabled_error"
260
+ require "lutaml/model/error/type_only_mapping_error"
261
+ require "lutaml/model/error/type_only_namespace_error"
262
+ require "lutaml/model/error/undefined_attribute_error"
263
+ require "lutaml/model/error/union_schema_unsupported_error"
264
+ require "lutaml/model/error/unknown_adapter_type_error"
265
+ require "lutaml/model/error/unknown_sequence_mapping_error"
266
+ require "lutaml/model/error/unknown_type_error"
267
+ require "lutaml/model/error/unresolvable_type_error"
268
+ require "lutaml/model/error/validation_error"
269
+ require "lutaml/model/error/validation_failed_error"
270
+ require "lutaml/model/liquid/indexed_access"
271
+ require "lutaml/model/liquid/mapping"
272
+ require "lutaml/model/mapping/listener"
273
+ require "lutaml/model/mapping/mapping"
274
+ require "lutaml/model/mapping/mapping_rule"
275
+ require "lutaml/model/mapping/model_mapping"
276
+ require "lutaml/model/mapping/model_mapping_rule"
277
+ require "lutaml/model/register/model_tree_importer"
278
+ require "lutaml/model/register/namespace_binding"
279
+ require "lutaml/model/schema/base_schema"
280
+ require "lutaml/model/schema/class_loader"
281
+ require "lutaml/model/schema/compiled_output"
282
+ require "lutaml/model/schema/decorators"
283
+ require "lutaml/model/schema/definitions"
284
+ require "lutaml/model/schema/file_writer"
285
+ require "lutaml/model/schema/generator"
286
+ require "lutaml/model/schema/helpers"
287
+ require "lutaml/model/schema/json_schema"
288
+ require "lutaml/model/schema/module_nesting"
289
+ require "lutaml/model/schema/namespace_naming"
290
+ require "lutaml/model/schema/registry_generator"
291
+ require "lutaml/model/schema/renderer"
292
+ require "lutaml/model/schema/renderers"
293
+ require "lutaml/model/schema/shared_methods"
294
+ require "lutaml/model/schema/templates"
295
+ require "lutaml/model/schema/yaml_schema"
296
+ require "lutaml/model/serialize/attribute_definition"
297
+ require "lutaml/model/serialize/builder"
298
+ require "lutaml/model/serialize/deserialization_context"
299
+ require "lutaml/model/serialize/enum_handling"
300
+ require "lutaml/model/serialize/format_conversion"
301
+ require "lutaml/model/serialize/initialization"
302
+ require "lutaml/model/serialize/model_import"
303
+ require "lutaml/model/serialize/transformation_builder"
304
+ require "lutaml/model/serialize/value_mapping"
305
+ require "lutaml/model/services/base"
306
+ require "lutaml/model/services/logger"
307
+ require "lutaml/model/services/rule_value_extractor"
308
+ require "lutaml/model/services/transformer"
309
+ require "lutaml/model/services/type"
310
+ require "lutaml/model/services/validator"
311
+ require "lutaml/model/type/base64_binary"
312
+ require "lutaml/model/type/boolean"
313
+ require "lutaml/model/type/date"
314
+ require "lutaml/model/type/date_time"
315
+ require "lutaml/model/type/decimal"
316
+ require "lutaml/model/type/duration"
317
+ require "lutaml/model/type/float"
318
+ require "lutaml/model/type/hash"
319
+ require "lutaml/model/type/hex_binary"
320
+ require "lutaml/model/type/integer"
321
+ require "lutaml/model/type/qname"
322
+ require "lutaml/model/type/reference"
323
+ require "lutaml/model/type/string"
324
+ require "lutaml/model/type/symbol"
325
+ require "lutaml/model/type/time"
326
+ require "lutaml/model/type/time_without_date"
327
+ require "lutaml/model/type/uninitialized_class_guard"
328
+ require "lutaml/model/type/uri"
329
+ require "lutaml/model/type/value"
330
+ require "lutaml/rdf/namespaces/dcterms_namespace"
331
+ require "lutaml/rdf/namespaces/owl_namespace"
332
+ require "lutaml/rdf/namespaces/rdf_namespace"
333
+ require "lutaml/rdf/namespaces/rdfs_namespace"
334
+ require "lutaml/rdf/namespaces/skos_namespace"
335
+ require "lutaml/rdf/namespaces/xsd_namespace"
336
+ require "lutaml/toml/adapter/document"
337
+ require "lutaml/toml/adapter/mapping"
338
+ require "lutaml/toml/adapter/mapping_rule"
339
+ require "lutaml/toml/adapter/transform"
340
+ require "lutaml/xml/adapter/adapter_helpers"
341
+ require "lutaml/xml/adapter/base_adapter"
342
+ require "lutaml/xml/adapter/namespace_data"
343
+ require "lutaml/xml/adapter/namespace_uri_collector"
344
+ require "lutaml/xml/adapter/oga_adapter"
345
+ require "lutaml/xml/adapter/plan_based_builder"
346
+ require "lutaml/xml/adapter/rexml_adapter"
347
+ require "lutaml/xml/adapter/xml_parser"
348
+ require "lutaml/xml/adapter/xml_serializer"
349
+ require "lutaml/xml/builder/base"
350
+ require "lutaml/xml/builder/oga"
351
+ require "lutaml/xml/builder/rexml"
352
+ require "lutaml/xml/decisions/decision"
353
+ require "lutaml/xml/decisions/decision_context"
354
+ require "lutaml/xml/decisions/decision_engine"
355
+ require "lutaml/xml/decisions/decision_rule"
356
+ require "lutaml/xml/decisions/element_prefix_resolver"
357
+ require "lutaml/xml/decisions/rules"
358
+ require "lutaml/xml/declaration_plan/attribute_node"
359
+ require "lutaml/xml/declaration_plan/element_node"
360
+ require "lutaml/xml/error/invalid_namespace_error"
361
+ require "lutaml/xml/error/invalid_xsd_type_error"
362
+ require "lutaml/xml/error/namespace_mismatch_error"
363
+ require "lutaml/xml/error/schema_validation_error"
364
+ require "lutaml/xml/error/xml_configuration_error"
365
+ require "lutaml/xml/error/xml_error"
366
+ require "lutaml/xml/oga/element"
367
+ require "lutaml/xml/ox/element"
368
+ require "lutaml/xml/rexml/element"
369
+ require "lutaml/xml/serialization/format_conversion"
370
+ require "lutaml/xml/serialization/instance_methods"
371
+ require "lutaml/xml/serialization/model_import_ext"
372
+ require "lutaml/xml/transformation/custom_method_wrapper"
373
+ require "lutaml/xml/transformation/element_builder"
374
+ require "lutaml/xml/transformation/ordered_applier"
375
+ require "lutaml/xml/transformation/rule_applier"
376
+ require "lutaml/xml/transformation/rule_compiler"
377
+ require "lutaml/xml/transformation/skip_logic"
378
+ require "lutaml/xml/transformation/value_serializer"
379
+ require "lutaml/xml/type/configurable"
380
+ require "lutaml/xml/type/value_xml_mapping"
381
+ require "lutaml/xml/type_namespace/collector"
382
+ require "lutaml/xml/type_namespace/declaration"
383
+ require "lutaml/xml/type_namespace/planner"
384
+ require "lutaml/xml/type_namespace/reference"
385
+ require "lutaml/xml/type_namespace/resolver"
386
+ require "lutaml/yaml/adapter/document"
387
+ require "lutaml/yaml/adapter/mapping"
388
+ require "lutaml/yaml/adapter/mapping_rule"
389
+ require "lutaml/yaml/adapter/standard_adapter"
390
+ require "lutaml/yaml/adapter/transform"
391
+ require "lutaml/yaml/schema/yaml_schema"
392
+ require "lutaml/yamls/adapter/document"
393
+ require "lutaml/yamls/adapter/mapping"
394
+ require "lutaml/yamls/adapter/mapping_rule"
395
+ require "lutaml/yamls/adapter/standard_adapter"
396
+ require "lutaml/yamls/adapter/transform"
397
+ require "lutaml/yamls/adapter/yamls_sequence"
398
+ require "lutaml/yamls/adapter/yamls_sequence_rule"
399
+ require "lutaml/key_value/adapter/hash/document"
400
+ require "lutaml/key_value/adapter/hash/mapping"
401
+ require "lutaml/key_value/adapter/hash/mapping_rule"
402
+ require "lutaml/key_value/adapter/hash/standard_adapter"
403
+ require "lutaml/key_value/adapter/hash/transform"
404
+ require "lutaml/key_value/adapter/json/document"
405
+ require "lutaml/key_value/adapter/json/mapping"
406
+ require "lutaml/key_value/adapter/json/mapping_rule"
407
+ require "lutaml/key_value/adapter/json/standard_adapter"
408
+ require "lutaml/key_value/adapter/json/transform"
409
+ require "lutaml/key_value/adapter/jsonl/document"
410
+ require "lutaml/key_value/adapter/jsonl/mapping"
411
+ require "lutaml/key_value/adapter/jsonl/mapping_rule"
412
+ require "lutaml/key_value/adapter/jsonl/standard_adapter"
413
+ require "lutaml/key_value/adapter/jsonl/transform"
414
+ require "lutaml/key_value/adapter/toml/document"
415
+ require "lutaml/key_value/adapter/toml/mapping"
416
+ require "lutaml/key_value/adapter/toml/mapping_rule"
417
+ require "lutaml/key_value/adapter/toml/transform"
418
+ require "lutaml/key_value/adapter/yaml/document"
419
+ require "lutaml/key_value/adapter/yaml/mapping"
420
+ require "lutaml/key_value/adapter/yaml/mapping_rule"
421
+ require "lutaml/key_value/adapter/yaml/standard_adapter"
422
+ require "lutaml/key_value/adapter/yaml/transform"
423
+ require "lutaml/key_value/adapter/yamls/document"
424
+ require "lutaml/key_value/adapter/yamls/mapping"
425
+ require "lutaml/key_value/adapter/yamls/mapping_rule"
426
+ require "lutaml/key_value/adapter/yamls/standard_adapter"
427
+ require "lutaml/key_value/adapter/yamls/transform"
428
+ require "lutaml/model/error/register/not_registrable_class_error"
429
+ require "lutaml/model/error/type/invalid_value_error"
430
+ require "lutaml/model/error/type/max_bound_error"
431
+ require "lutaml/model/error/type/max_length_error"
432
+ require "lutaml/model/error/type/min_bound_error"
433
+ require "lutaml/model/error/type/min_length_error"
434
+ require "lutaml/model/error/type/pattern_not_matched_error"
435
+ require "lutaml/model/schema/decorators/attribute"
436
+ require "lutaml/model/schema/decorators/choices"
437
+ require "lutaml/model/schema/decorators/class_definition"
438
+ require "lutaml/model/schema/decorators/definition_collection"
439
+ require "lutaml/model/schema/definitions/attribute"
440
+ require "lutaml/model/schema/definitions/choice"
441
+ require "lutaml/model/schema/definitions/facet"
442
+ require "lutaml/model/schema/definitions/group_import"
443
+ require "lutaml/model/schema/definitions/member_walk"
444
+ require "lutaml/model/schema/definitions/model"
445
+ require "lutaml/model/schema/definitions/namespace"
446
+ require "lutaml/model/schema/definitions/restricted_type"
447
+ require "lutaml/model/schema/definitions/sequence"
448
+ require "lutaml/model/schema/definitions/simple_content"
449
+ require "lutaml/model/schema/definitions/transform_facet"
450
+ require "lutaml/model/schema/definitions/type_ref"
451
+ require "lutaml/model/schema/definitions/union_type"
452
+ require "lutaml/model/schema/definitions/xml_root"
453
+ require "lutaml/model/schema/generator/definition"
454
+ require "lutaml/model/schema/generator/definitions_collection"
455
+ require "lutaml/model/schema/generator/properties_collection"
456
+ require "lutaml/model/schema/generator/property"
457
+ require "lutaml/model/schema/generator/ref"
458
+ require "lutaml/model/schema/helpers/template_helper"
459
+ require "lutaml/model/schema/renderers/base"
460
+ require "lutaml/model/schema/renderers/mappings"
461
+ require "lutaml/model/schema/renderers/member_decls"
462
+ require "lutaml/model/schema/renderers/model"
463
+ require "lutaml/model/schema/renderers/namespace"
464
+ require "lutaml/model/schema/renderers/registration"
465
+ require "lutaml/model/schema/renderers/required_files_calculator"
466
+ require "lutaml/model/schema/renderers/restricted_type"
467
+ require "lutaml/model/schema/renderers/union"
468
+ require "lutaml/model/schema/rnc_compiler/source_resolver"
469
+ require "lutaml/model/schema/rng_compiler/define_classifier"
470
+ require "lutaml/model/schema/rng_compiler/element_visitor"
471
+ require "lutaml/model/schema/rng_compiler/member_collector"
472
+ require "lutaml/model/schema/rng_compiler/rng_helpers"
473
+ require "lutaml/model/schema/rng_compiler/value_type_resolver"
474
+ require "lutaml/model/schema/xml_compiler/element_order"
475
+ require "lutaml/model/schema/xml_compiler/registry_generator"
476
+ require "lutaml/model/schema/xml_compiler/spec_builder"
477
+ require "lutaml/model/schema/xml_compiler/supported_data_types"
478
+ require "lutaml/model/services/type/validator"
479
+ require "lutaml/xml/decisions/rules/attribute_usage_rule"
480
+ require "lutaml/xml/decisions/rules/default_preference_rule"
481
+ require "lutaml/xml/decisions/rules/element_form_default_rule"
482
+ require "lutaml/xml/decisions/rules/element_form_default_unqualified_rule"
483
+ require "lutaml/xml/decisions/rules/element_form_option_rule"
484
+ require "lutaml/xml/decisions/rules/explicit_option_rule"
485
+ require "lutaml/xml/decisions/rules/format_preservation_rule"
486
+ require "lutaml/xml/decisions/rules/hoisted_on_parent_rule"
487
+ require "lutaml/xml/decisions/rules/inherit_from_parent_rule"
488
+ require "lutaml/xml/decisions/rules/inherit_parent_prefix_rule"
489
+ require "lutaml/xml/decisions/rules/namespace_scope_rule"
490
+ require "lutaml/xml/decisions/rules/reuse_parent_prefix_rule"
491
+ require "lutaml/xml/decisions/rules/used_prefix_rule"
492
+ require "lutaml/model/schema/xml_compiler/spec_builder/complex_types"
493
+ require "lutaml/model/schema/xml_compiler/spec_builder/members"
494
+ require "lutaml/model/schema/xml_compiler/spec_builder/simple_types"
495
+ require "lutaml/model/services/type/validator/number"
496
+ require "lutaml/model/services/type/validator/string"
497
+ require "lutaml/model/services/type/validator/symbol"
@@ -0,0 +1,68 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Opal-only boot for moxml — mirrors moxml's shipped
4
+ # `lib/compat/opal/moxml_boot.rb` so both Oga and REXML adapters are
5
+ # eager-loaded (Opal ignores autoload; without this, nested Moxml
6
+ # constants NameError at runtime).
7
+ #
8
+ # Requires the REXML gem's lib dir to be on Opal's load path so
9
+ # `require "rexml/formatters/pretty"` (pulled in by moxml's
10
+ # customized_rexml/formatter) resolves. The Rakefile sets that up.
11
+ #
12
+ # moxml's own boot loads the same list. We maintain our own copy so we
13
+ # can reorder or gate entries if a future moxml release introduces an
14
+ # Opal-incompatible file before its shipped boot catches up.
15
+
16
+ if RUBY_ENGINE == "opal"
17
+ require "moxml/version"
18
+ require "moxml/error"
19
+ require "moxml/native_attachment"
20
+ require "moxml/native_attachment/opal"
21
+ require "moxml/xml_utils"
22
+ require "moxml/xml_utils/encoder"
23
+ require "moxml/node"
24
+ require "moxml/node_set"
25
+ require "moxml/document"
26
+ require "moxml/element"
27
+ require "moxml/attribute"
28
+ require "moxml/text"
29
+ require "moxml/cdata"
30
+ require "moxml/comment"
31
+ require "moxml/processing_instruction"
32
+ require "moxml/declaration"
33
+ require "moxml/namespace"
34
+ require "moxml/doctype"
35
+ require "moxml/entity_reference"
36
+ require "moxml/entity_registry"
37
+ require "moxml/adapter"
38
+ require "moxml/adapter/base"
39
+ require "moxml/adapter/customized_rexml"
40
+ require "moxml/adapter/customized_rexml/entity_reference"
41
+ require "moxml/adapter/customized_rexml/formatter"
42
+ require "moxml/sax"
43
+ require "moxml/sax/handler"
44
+ require "moxml/sax/element_handler"
45
+ require "moxml/sax/block_handler"
46
+ require "moxml/sax/namespace_splitter"
47
+ require "moxml/adapter/rexml"
48
+ require "moxml/adapter/customized_oga"
49
+ require "moxml/adapter/customized_oga/xml_declaration"
50
+ require "moxml/adapter/customized_oga/xml_generator"
51
+ require "moxml/adapter/oga"
52
+ require "moxml/document_builder"
53
+ require "moxml/builder"
54
+ require "moxml/context"
55
+ require "moxml/config"
56
+ require "moxml/xpath"
57
+ require "moxml/xpath/engine"
58
+ require "moxml/xpath/context"
59
+ require "moxml/xpath/conversion"
60
+ require "moxml/xpath/cache"
61
+ require "moxml/xpath/lexer"
62
+ require "moxml/xpath/parser"
63
+ require "moxml/xpath/compiler"
64
+ require "moxml/xpath/errors"
65
+ require "moxml/xpath/ast/node"
66
+ require "moxml/xpath/ruby/node"
67
+ require "moxml/xpath/ruby/generator"
68
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Opal runtime YAML compat.
4
+ #
5
+ # Opal's `nodejs/yaml` ships `YAML.load` only. lutaml-model's YAML adapter
6
+ # uses `YAML.safe_load(src, permitted_classes: [...])` and `YAML.dump(obj)`.
7
+ # Provide both as thin wrappers — nodejs/yaml is already backed by
8
+ # jsyaml.safeLoad, so `load` semantics are equivalent to MRI's safe_load
9
+ # with the default permitted classes (the perm_classes argument is
10
+ # accepted but ignored, matching Opal's stronger-by-default posture).
11
+
12
+ if RUBY_ENGINE == "opal"
13
+ require "nodejs/yaml"
14
+
15
+ module ::YAML
16
+ class << self
17
+ # Accept MRI's full safe_load kwargs for API parity; nodejs/yaml's
18
+ # safeLoad is already safe-by-default so the kwargs are unused.
19
+ def safe_load(yaml, **_kwargs)
20
+ load(yaml)
21
+ end
22
+
23
+ def dump(obj, io = nil)
24
+ dumped = `#{@__yaml__}.safeDump(#{obj})`
25
+ return dumped unless io
26
+
27
+ io.write(dumped)
28
+ io
29
+ end
30
+ end
31
+ end
32
+ end
data/lib/lutaml/json.rb CHANGED
@@ -34,7 +34,7 @@ module Lutaml
34
34
 
35
35
  # Detect available JSON adapters
36
36
  def self.detect_adapter
37
- return :standard if defined?(::JSON) && Lutaml::Model::RuntimeCompatibility.opal?
37
+ return :standard if defined?(::JSON) && Lutaml::Model.opal?
38
38
  return :oj if defined?(::Oj)
39
39
  return :multi_json if defined?(::MultiJson)
40
40
  return :standard if defined?(::JSON)
data/lib/lutaml/jsonld.rb CHANGED
@@ -5,9 +5,6 @@ require_relative "rdf"
5
5
 
6
6
  module Lutaml
7
7
  module JsonLd
8
- autoload :Context, "#{__dir__}/jsonld/context"
9
- autoload :TermDefinition, "#{__dir__}/jsonld/term_definition"
10
- autoload :Transform, "#{__dir__}/jsonld/transform"
11
8
  autoload :Adapter, "#{__dir__}/jsonld/adapter"
12
9
  end
13
10
  end
@@ -16,7 +13,7 @@ Lutaml::Model::FormatRegistry.register(
16
13
  :jsonld,
17
14
  mapping_class: Lutaml::Rdf::Mapping,
18
15
  adapter_class: Lutaml::JsonLd::Adapter,
19
- transformer: Lutaml::JsonLd::Transform,
16
+ transformer: Lutaml::Rdf::LinkedDataTransform,
20
17
  key_value: false,
21
18
  rdf: true,
22
19
  error_types: ["JSON::ParserError"],
@@ -249,8 +249,9 @@ format)
249
249
  value = apply_value_map(value, rule.value_map(:from, options), attr)
250
250
 
251
251
  if rule.has_custom_method_for_deserialization?
252
- return process_custom_method(rule, instance,
253
- value)
252
+ return unless Lutaml::Model::Utils.present?(value)
253
+
254
+ return rule.deserialize(instance, value, attributes, model_class)
254
255
  end
255
256
 
256
257
  value = rule.transform_value(attr, value, :from, format)
@@ -265,12 +266,6 @@ format)
265
266
  rule.deserialize(instance, value, attributes, self)
266
267
  end
267
268
 
268
- def process_custom_method(rule, instance, value)
269
- return unless Lutaml::Model::Utils.present?(value)
270
-
271
- model_class.new.public_send(rule.custom_methods[:from], instance, value)
272
- end
273
-
274
269
  def cast_value(value, attr, format, rule, instance)
275
270
  cast_options = rule.polymorphic ? { polymorphic: rule.polymorphic } : {}
276
271
  cast_options[:lutaml_parent] = instance if instance