lutaml-xsd 1.2.77 → 1.2.79

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9348b8456689993378705b9289ce593db195f7440d77aeb6aaf5d5dda095cc68
4
- data.tar.gz: 958720fe60cf140d78ebe3891069d4e0f64ffa37f37290c24f236499ae8dc187
3
+ metadata.gz: fc71d86940b282e842650b924ddfbef4c92dbb7d39645dec6e57cf80c5edbd81
4
+ data.tar.gz: e7643e86eb653d99ac2a72c39792b828994c1203a0fbbc89042856456ba59855
5
5
  SHA512:
6
- metadata.gz: 9e883e13a5538b8d26493881aef3512513a12952fcc08f464f16ce77e2cde3142bfe082b85700a9b6545a6e2e4bf546d7449408a9d3e20af5175541622ab202b
7
- data.tar.gz: 31990577df015678c7986199fda9ab5e751be44925b5bcf6a7eaa198e32eb884f6ad98920873070ed4f70d2b1f1a0d41084769911bc1f0f9c9e2450ce05e3e89
6
+ metadata.gz: 65b97ebeb74d183e3347e801b4d67fc183dec70698e501dd60fffcedcafbcc9a33f97d830aab3449a9ab72c8ca5ab0699aa41a5aafbbbd731512134408afcade
7
+ data.tar.gz: a4ae99c07f652e26102f6bae1f6a3d1c241d032436e2c424f4e03f06921b6feb0ef46798febf19598ec005fbbf6757829638c543e557ab399e6c2ffb785264b2
data/.gitignore CHANGED
@@ -35,3 +35,6 @@ examples/*/pkg/
35
35
  examples/*.html
36
36
  examples/archive-old/
37
37
  examples/02-urban-function/urban_function_docs.html
38
+
39
+ # Lockfiles are never committed: CI and consumers resolve fresh.
40
+ Gemfile.lock
data/TODO.conformance.md CHANGED
@@ -120,21 +120,22 @@ pinned commit) is measured via `rake conformance:w3c`:
120
120
 
121
121
  | mode | pass-rate |
122
122
  |---|---|
123
- | pipeline | 4557/4696 (97.0%) |
123
+ | pipeline | 4569/4696 (97.3%) |
124
124
 
125
125
  (2026-11-02, bundled-stack measurement on main with the escape,
126
126
  hint-following, pattern-alternative, identity-crash, engine-set,
127
127
  engine-refresh, IC value-space, IC field-resolution, facade-silence,
128
128
  regex-semantics, redefine-refresh, gmonth-refresh, digit-vintage,
129
- stgh-refresh and group-ref rounds; moxml 0.6.1 (gemspec floor
130
- `~> 0.6.0` per the owner — the 0.6 line drops the Opal surface;
131
- measured conformance-neutral), lutaml-model 0.8.155, engine leptris
132
- 1.9.401.0.) Same-stack comparison: 1.2.43 baseline 3961 (84.3%) →
133
- 4039 (86.0%) → 4090 (87.1%) → 4360 (92.8%, lockfile refresh) → 4411
134
- (93.9%) → 4430 (94.3%) → 4435 (94.4%) → 4436 (94.5%) → 4439 (94.5%)
135
- → 4454 (94.9%) → 4495 (95.7%) → 4524 (96.3%) → 4534 (96.6%) → 4540
136
- (96.7%) → 4542 (96.7%) → 4546 (96.8%) → 4557 (97.0%), +596 net over
137
- the 1.2.43 baseline. The escapes round (PR #197 — \d→\p{Nd},
129
+ stgh-refresh, group-ref, attribute-group-redefine and
130
+ notation-length rounds; moxml
131
+ 0.6.1 (gemspec floor `~> 0.6.0` per the owner — the 0.6 line drops
132
+ the Opal surface; measured conformance-neutral), lutaml-model
133
+ 0.8.155, engine leptris 1.9.401.0.) Same-stack comparison: 1.2.43
134
+ baseline 3961 (84.3%) → 4039 (86.0%) → 4090 (87.1%) → 4360 (92.8%,
135
+ lockfile refresh) → 4411 (93.9%) → 4430 (94.3%) → 4435 (94.4%) →
136
+ 4436 (94.5%) → 4439 (94.5%) → 4454 (94.9%) → 4495 (95.7%) → 4524
137
+ (96.3%) → 4534 (96.6%) → 4540 (96.7%) → 4542 (96.7%) → 4546 (96.8%)
138
+ → 4557 (97.0%) → 4565 (97.2%) → 4569 (97.3%), +608 net over the 1.2.43 baseline. The escapes round (PR #197 — \d→\p{Nd},
138
139
  \w/\W/\s to their XSD value spaces) collapses Regex 120→69;
139
140
  same-step pattern facets now behave as alternatives and
140
141
  whitespace-only text reaches the facets intact (PR #200), Regex
@@ -358,6 +359,35 @@ tuple keys, node-set field violations and absent-field rows handled, cross-eleme
358
359
  zero regressions. Group remainder: groupB009/010 + groupO004
359
360
  (false-reject class), groupH008/J003/006/008/L008 under-detections
360
361
  (choice-of-group capacity depth).
362
+ - ATTRIBUTE-GROUP-REDEFINE ROUND (2026-11-02, PR #218): +8 net
363
+ (AttributeGroup 17→11, Schema 14→12, Attribute 10→9; suite
364
+ 4557→4565 = 97.2%). lutaml-model does NOT chase xs:redefine
365
+ targets — the original document was never parsed, so the
366
+ redefined group's self-ref hook had nothing to hook to and
367
+ expansions truncated at the cycle guard. The resolver now chases
368
+ the redefine target itself (relative to the defining file, via
369
+ the repository's source path), indexes it, keeps the ORIGINAL
370
+ declaration as the hook target, and expands the redefining body
371
+ with the self-ref resolved to that original (attgC007/attgD036).
372
+ Wildcards nested in attributeGroup DECLARATIONS reach types
373
+ through the group's resolution (attgD019). All remaining
374
+ AttributeGroup failures are ENGINE-only strict re-checks on
375
+ composed shapes (the moxml#510 thread).
376
+ - NOTATION-LENGTH ROUND (2026-11-02): +4 DataTypes cases (16→12,
377
+ suite 4565→4569 = 97.3%). length/minLength/maxLength are
378
+ FORBIDDEN on QName and NOTATION and every type derived from them
379
+ (XSD 1.0 §4.3.1.2) — a restriction carrying them is IGNORED there,
380
+ and the suite expects the instance to validate. The attribute side
381
+ had no such exemption (the element side already did): the rule now
382
+ walks the restriction's base chain — through NAMED simpleTypes,
383
+ depth-guarded — and skips the length-family check when it reaches
384
+ QName or NOTATION (NOTATION_length001/003, NOTATION_minLength003,
385
+ NOTATION_maxLength001; the direct base is a named type one hop
386
+ above NOTATION, so a direct-base check alone would miss them).
387
+ Zero regressions. DataTypes remainder: anyURI shapes (we-accept),
388
+ duration/dateTime/gMonthDay/gYear corners (engine-bound and
389
+ contested-highlight), gMonth_pattern001 (bugzilla 6901 — do not
390
+ chase), double018 (disputed reading).
361
391
  - REGEX SEMANTICS ROUND (2026-10-31, PR #208): \w/\W now carry their
362
392
  Appendix F complements (\w = [^\p{P}\p{Z}\p{C}], class interiors
363
393
  via the exact positive partition L/M/N/S), \I/\C complements added
@@ -37,6 +37,12 @@ module Lutaml
37
37
  CONTENT_KINDS = %i[complex_content simple_content].freeze
38
38
  CONTENT_PART_KINDS = %i[extension restriction].freeze
39
39
 
40
+ # length/minLength/maxLength are forbidden on QName and
41
+ # NOTATION and every type derived from them (XSD 1.0
42
+ # §4.3.1.2): a restriction carrying them is ignored there.
43
+ FORBIDDEN_LENGTH_BASES = %w[QName NOTATION].freeze
44
+ FORBIDDEN_LENGTH_DEPTH_LIMIT = 8
45
+
40
46
  # Rule category
41
47
  #
42
48
  # @return [Symbol] :constraint
@@ -268,14 +274,23 @@ module Lutaml
268
274
  return [] if depth > 5
269
275
  return [] unless group
270
276
 
277
+ own = (group.name || group.ref).to_s.split(":").last
271
278
  attrs = Array(group.attribute)
272
279
 
273
280
  # An attributeGroup may reference other attributeGroups —
274
- # their declarations flow into the expansion (attgD004).
281
+ # their declarations flow into the expansion (attgD004). A
282
+ # reference to the group's OWN name inside an xs:redefine
283
+ # body is the §4.2.2 hook to the ORIGINAL definition.
275
284
  Array(group.attribute_group).each do |nested_ref|
276
285
  local = (nested_ref.ref || nested_ref.name).to_s
277
286
  .split(":").last
278
- declaration = repository&.resolve_attribute_group(local)
287
+ declaration =
288
+ if !local.empty? && local == own &&
289
+ repository&.redefined_original_for(local)
290
+ repository.redefined_original_for(local)
291
+ else
292
+ repository&.resolve_attribute_group(local)
293
+ end
279
294
  next unless declaration
280
295
 
281
296
  attrs.concat(expand_attribute_group(declaration, repository,
@@ -653,7 +668,7 @@ module Lutaml
653
668
 
654
669
  def restriction_violation(value, restriction, repository, depth)
655
670
  base_violation(value, restriction, repository, depth) ||
656
- facet_violations(value, restriction).first
671
+ facet_violations(value, restriction, repository, depth).first
657
672
  end
658
673
 
659
674
  # The restriction's base chain is validated first: a built-in
@@ -673,15 +688,36 @@ module Lutaml
673
688
  end
674
689
 
675
690
  # @return [Array<Hash>] every violated facet (first wins)
676
- def facet_violations(value, restriction)
691
+ def facet_violations(value, restriction, repository, depth)
677
692
  violations = []
678
693
  violations << enumeration_violation(value, restriction)
679
694
  violations << pattern_violation(value, restriction)
680
- violations << length_violation(value, restriction)
695
+ unless forbidden_length_base?(restriction, repository, depth)
696
+ violations << length_violation(value, restriction)
697
+ end
681
698
  violations << range_violation(value, restriction)
682
699
  violations.compact
683
700
  end
684
701
 
702
+ def forbidden_length_base?(restriction, repository, depth)
703
+ return false if depth > FORBIDDEN_LENGTH_DEPTH_LIMIT
704
+
705
+ base = restriction.base.to_s
706
+ return false unless base.match?(/\S/)
707
+
708
+ local = base.split(":").last
709
+ return true if FORBIDDEN_LENGTH_BASES.include?(local)
710
+
711
+ named = repository&.resolve_named_type(local)
712
+ return false unless simple_type_model?(named)
713
+
714
+ named_restriction = named.restriction
715
+ return false unless named_restriction
716
+
717
+ forbidden_length_base?(named_restriction, repository,
718
+ depth + 1)
719
+ end
720
+
685
721
  def enumeration_violation(value, restriction)
686
722
  allowed = Array(restriction.enumeration).map(&:value)
687
723
  return nil if allowed.empty? || allowed.include?(value)
@@ -889,10 +925,15 @@ module Lutaml
889
925
  complex_type_wildcard_support?
890
926
  wildcards << complex_wildcard if complex_wildcard
891
927
 
928
+ # A wildcard nested in an attributeGroup DECLARATION reaches
929
+ # the type only through the group's resolution — the type's
930
+ # ref particle carries no children of its own (attgD019).
892
931
  Array(schema_def.attribute_group).each do |group|
893
932
  Array(group.any_attribute).each do |wildcard|
894
933
  wildcards << wildcard
895
934
  end
935
+
936
+ collect_group_wildcards(group, repository, wildcards, 0)
896
937
  end
897
938
 
898
939
  CONTENT_KINDS.each do |content_kind|
@@ -916,6 +957,29 @@ module Lutaml
916
957
  wildcards
917
958
  end
918
959
 
960
+ # The wildcards of an attributeGroup reference's DECLARATION,
961
+ # following nested attributeGroup refs (depth-guarded).
962
+ #
963
+ # @return [void]
964
+ def collect_group_wildcards(group, repository, wildcards, depth)
965
+ return if depth > 5
966
+
967
+ local = (group.ref || group.name).to_s.split(":").last
968
+ return if local.to_s.empty?
969
+
970
+ declaration = repository&.resolve_attribute_group(local)
971
+ return unless declaration
972
+
973
+ Array(declaration.any_attribute).each do |wildcard|
974
+ wildcards << wildcard
975
+ end
976
+
977
+ Array(declaration.attribute_group).each do |nested|
978
+ collect_group_wildcards(nested, repository, wildcards,
979
+ depth + 1)
980
+ end
981
+ end
982
+
919
983
  # The named base type of the derivation shape, when present.
920
984
  #
921
985
  # @return [Lutaml::Xml::Schema::Xsd::ComplexType, nil]
@@ -49,6 +49,7 @@ module Lutaml
49
49
  @named_types = {}
50
50
  @attributes = Hash.new { |hash, key| hash[key] = [] }
51
51
  @attribute_groups = {}
52
+ @redefined_originals = {}
52
53
  @elements = index_elements
53
54
  end
54
55
 
@@ -100,6 +101,16 @@ module Lutaml
100
101
  @attribute_groups[local_name]
101
102
  end
102
103
 
104
+ # The pre-redefinition declaration of an attributeGroup that an
105
+ # xs:redefine replaced — the target of the redefining body's
106
+ # self-reference hook.
107
+ #
108
+ # @param local_name [String]
109
+ # @return [Object, nil]
110
+ def redefined_original_for(local_name)
111
+ @redefined_originals[local_name]
112
+ end
113
+
103
114
  # Owner schema's target namespace for a resolved declaration
104
115
  # (parsed element models carry no owner-schema link).
105
116
  #
@@ -538,6 +549,46 @@ module Lutaml
538
549
 
539
550
  index_schema(index, nested)
540
551
  end
552
+
553
+ # xs:redefine replaces an attributeGroup with a body whose
554
+ # self-reference is the §4.2.2 hook to the ORIGINAL
555
+ # definition. lutaml-model does NOT chase the redefine
556
+ # target, so the original document is parsed here (relative
557
+ # to the defining file) and indexed; the original
558
+ # declaration is kept for that hook and the redefining body
559
+ # indexed under the name (attgC007/attgD036). Runs after the
560
+ # nested descent so included declarations are already in.
561
+ Array(schema.redefine).each do |red|
562
+ target_path = nil
563
+ base = begin
564
+ File.dirname(@repository.source_path_for(schema))
565
+ rescue StandardError
566
+ nil
567
+ end
568
+ if base && red.schema_path.to_s.match?(/\S/)
569
+ candidate = File.expand_path(red.schema_path.to_s, base)
570
+ target_path = candidate if File.exist?(candidate)
571
+ end
572
+ if target_path
573
+ begin
574
+ target = Lutaml::Xml::Schema::Xsd.parse(
575
+ File.read(target_path), location: target_path
576
+ )
577
+ index_schema(index, target, held_signatures, namespace,
578
+ defaults_schema)
579
+ rescue StandardError
580
+ nil
581
+ end
582
+ end
583
+ Array(red.attribute_group).each do |group|
584
+ name = group.name.to_s
585
+ next if name.empty?
586
+
587
+ original = @attribute_groups[name]
588
+ @redefined_originals[name] = original if original
589
+ @attribute_groups[name] = group
590
+ end
591
+ end
541
592
  end
542
593
 
543
594
  def index_attribute(attribute, namespace)
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Lutaml
4
4
  module Xsd
5
- VERSION = "1.2.77"
5
+ VERSION = "1.2.79"
6
6
  end
7
7
  end
data/lutaml-xsd.gemspec CHANGED
@@ -32,7 +32,7 @@ Gem::Specification.new do |spec|
32
32
  end
33
33
 
34
34
  spec.add_dependency "liquid", ">= 4.0", "< 6.0"
35
- spec.add_dependency "lutaml-model", "~> 0.8.123"
35
+ spec.add_dependency "lutaml-model", "~> 0.8.156"
36
36
  spec.add_dependency "lutaml-store", "~> 0.3"
37
37
  spec.add_dependency "moxml", "~> 0.6.0"
38
38
  spec.add_dependency "paint", "~> 2.3"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lutaml-xsd
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.77
4
+ version: 1.2.79
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
@@ -36,14 +36,14 @@ dependencies:
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: 0.8.123
39
+ version: 0.8.156
40
40
  type: :runtime
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: 0.8.123
46
+ version: 0.8.156
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: lutaml-store
49
49
  requirement: !ruby/object:Gem::Requirement
@@ -190,7 +190,6 @@ files:
190
190
  - CLAUDE.md
191
191
  - CODE_OF_CONDUCT.md
192
192
  - Gemfile
193
- - Gemfile.lock
194
193
  - LICENSE.md
195
194
  - README.adoc
196
195
  - Rakefile
data/Gemfile.lock DELETED
@@ -1,327 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- lutaml-xsd (1.2.77)
5
- liquid (>= 4.0, < 6.0)
6
- lutaml-model (~> 0.8.123)
7
- lutaml-store (~> 0.3)
8
- moxml (~> 0.6.0)
9
- paint (~> 2.3)
10
- rng (~> 0.3.9)
11
- rubyzip (~> 3.4)
12
- table_tennis (~> 0.0.7)
13
- thor (~> 1.0)
14
- tty-prompt (~> 0.23)
15
- xsdvi
16
-
17
- GEM
18
- remote: https://rubygems.org/
19
- specs:
20
- ast (2.4.3)
21
- base64 (0.3.0)
22
- bigdecimal (4.1.3)
23
- canon (0.3.118)
24
- diff-lcs
25
- json
26
- leptris (~> 1.9.398)
27
- moxml (~> 0.6.0)
28
- paint
29
- rainbow
30
- table_tennis
31
- thor (~> 1.4)
32
- unicode-name
33
- yeptris (~> 0.6.52)
34
- concurrent-ruby (1.3.8)
35
- csv (3.3.7)
36
- diff-lcs (1.6.2)
37
- ffi (1.17.4-aarch64-linux-gnu)
38
- ffi (1.17.4-aarch64-linux-musl)
39
- ffi (1.17.4-arm-linux-gnu)
40
- ffi (1.17.4-arm-linux-musl)
41
- ffi (1.17.4-arm64-darwin)
42
- ffi (1.17.4-x64-mingw-ucrt)
43
- ffi (1.17.4-x86_64-darwin)
44
- ffi (1.17.4-x86_64-linux-gnu)
45
- ffi (1.17.4-x86_64-linux-musl)
46
- fiddle (1.1.8)
47
- json (3.1.0)
48
- language_server-protocol (3.17.0.6)
49
- leptris (1.9.401.0-aarch64-linux)
50
- ffi (~> 1.15)
51
- leptris (1.9.401.0-aarch64-linux-musl)
52
- ffi (~> 1.15)
53
- leptris (1.9.401.0-arm-linux)
54
- ffi (~> 1.15)
55
- leptris (1.9.401.0-arm-linux-musl)
56
- ffi (~> 1.15)
57
- leptris (1.9.401.0-arm64-darwin)
58
- ffi (~> 1.15)
59
- leptris (1.9.401.0-x64-mingw-ucrt)
60
- ffi (~> 1.15)
61
- leptris (1.9.401.0-x86_64-darwin)
62
- ffi (~> 1.15)
63
- leptris (1.9.401.0-x86_64-linux)
64
- ffi (~> 1.15)
65
- leptris (1.9.401.0-x86_64-linux-musl)
66
- ffi (~> 1.15)
67
- lint_roller (1.1.0)
68
- liquid (5.14.0)
69
- bigdecimal
70
- strscan (>= 3.1.1)
71
- lutaml-model (0.8.155)
72
- base64 (>= 0.1.1)
73
- bigdecimal
74
- canon
75
- concurrent-ruby
76
- liquid (>= 4.0, < 6.0)
77
- moxml (>= 0.5.139, < 0.7)
78
- ostruct
79
- rubyzip (~> 3.7)
80
- thor (~> 1.4)
81
- lutaml-store (0.3.2)
82
- lutaml-model (~> 0.8.15)
83
- rubyzip (>= 2.3, < 4)
84
- memo_wise (1.13.0)
85
- moxml (0.6.1)
86
- nokogiri (1.19.4-aarch64-linux-gnu)
87
- racc (~> 1.4)
88
- nokogiri (1.19.4-aarch64-linux-musl)
89
- racc (~> 1.4)
90
- nokogiri (1.19.4-arm-linux-gnu)
91
- racc (~> 1.4)
92
- nokogiri (1.19.4-arm-linux-musl)
93
- racc (~> 1.4)
94
- nokogiri (1.19.4-arm64-darwin)
95
- racc (~> 1.4)
96
- nokogiri (1.19.4-x64-mingw-ucrt)
97
- racc (~> 1.4)
98
- nokogiri (1.19.4-x86_64-darwin)
99
- racc (~> 1.4)
100
- nokogiri (1.19.4-x86_64-linux-gnu)
101
- racc (~> 1.4)
102
- nokogiri (1.19.4-x86_64-linux-musl)
103
- racc (~> 1.4)
104
- ostruct (0.6.3)
105
- paint (2.3.0)
106
- parallel (2.3.0)
107
- parser (3.3.12.0)
108
- ast (~> 2.4.1)
109
- racc
110
- parslet (2.0.0)
111
- pastel (0.8.0)
112
- tty-color (~> 0.5)
113
- prism (1.9.0)
114
- racc (1.8.1)
115
- rainbow (3.1.1)
116
- rake (13.4.2)
117
- regexp_parser (2.13.1)
118
- rexml (3.4.4)
119
- rng (0.3.9)
120
- lutaml-model (~> 0.8.114)
121
- moxml
122
- parslet
123
- thor
124
- rspec (3.13.2)
125
- rspec-core (~> 3.13.0)
126
- rspec-expectations (~> 3.13.0)
127
- rspec-mocks (~> 3.13.0)
128
- rspec-core (3.13.6)
129
- rspec-support (~> 3.13.0)
130
- rspec-expectations (3.13.5)
131
- diff-lcs (>= 1.2.0, < 2.0)
132
- rspec-support (~> 3.13.0)
133
- rspec-mocks (3.13.8)
134
- diff-lcs (>= 1.2.0, < 2.0)
135
- rspec-support (~> 3.13.0)
136
- rspec-support (3.13.7)
137
- rubocop (1.92.0)
138
- json (>= 2.3)
139
- language_server-protocol (~> 3.17.0.2)
140
- lint_roller (~> 1.1.0)
141
- parallel (>= 1.10)
142
- parser (>= 3.3.0.2)
143
- rainbow (>= 2.2.2, < 4.0)
144
- regexp_parser (>= 2.11.3, < 3.0)
145
- rubocop-ast (>= 1.49.0, < 2.0)
146
- ruby-progressbar (~> 1.7)
147
- unicode-display_width (>= 2.4.0, < 4.0)
148
- rubocop-ast (1.50.0)
149
- parser (>= 3.3.7.2)
150
- prism (~> 1.7)
151
- rubocop-performance (1.27.0)
152
- lint_roller (~> 1.1)
153
- rubocop (>= 1.89.0, < 2.0)
154
- rubocop-ast (>= 1.47.1, < 2.0)
155
- ruby-progressbar (1.13.0)
156
- rubyzip (3.7.0)
157
- strscan (3.1.8)
158
- table_tennis (0.0.7)
159
- csv (~> 3.3)
160
- ffi (~> 1.17)
161
- memo_wise (~> 1.11)
162
- paint (~> 2.3)
163
- unicode-display_width (~> 3.1)
164
- thor (1.5.0)
165
- tty-color (0.6.0)
166
- tty-cursor (0.7.1)
167
- tty-prompt (0.23.1)
168
- pastel (~> 0.8)
169
- tty-reader (~> 0.8)
170
- tty-reader (0.9.0)
171
- tty-cursor (~> 0.7)
172
- tty-screen (~> 0.8)
173
- wisper (~> 2.0)
174
- tty-screen (0.8.2)
175
- unicode-display_width (3.3.0)
176
- unicode-emoji (~> 4.3)
177
- unicode-emoji (4.3.0)
178
- unicode-name (1.15.1)
179
- unicode-types (~> 1.12)
180
- unicode-types (1.12.0)
181
- wisper (2.0.1)
182
- xsdvi (1.0.2)
183
- nokogiri (~> 1.16)
184
- thor (~> 1.3)
185
- yeptris (0.6.53.0-aarch64-linux)
186
- ffi (~> 1.15)
187
- yeptris (0.6.53.0-aarch64-linux-musl)
188
- ffi (~> 1.15)
189
- yeptris (0.6.53.0-arm-linux-eabihf)
190
- ffi (~> 1.15)
191
- yeptris (0.6.53.0-arm-linux-musleabihf)
192
- ffi (~> 1.15)
193
- yeptris (0.6.53.0-arm64-darwin)
194
- ffi (~> 1.15)
195
- yeptris (0.6.53.0-x64-mingw-ucrt)
196
- ffi (~> 1.15)
197
- yeptris (0.6.53.0-x86_64-darwin)
198
- ffi (~> 1.15)
199
- yeptris (0.6.53.0-x86_64-linux)
200
- ffi (~> 1.15)
201
- yeptris (0.6.53.0-x86_64-linux-musl)
202
- ffi (~> 1.15)
203
-
204
- PLATFORMS
205
- aarch64-linux
206
- aarch64-linux-gnu
207
- aarch64-linux-musl
208
- arm-linux
209
- arm-linux-eabihf
210
- arm-linux-gnu
211
- arm-linux-musl
212
- arm-linux-musleabihf
213
- arm64-darwin
214
- x64-mingw-ucrt
215
- x86_64-darwin
216
- x86_64-linux
217
- x86_64-linux-gnu
218
- x86_64-linux-musl
219
-
220
- DEPENDENCIES
221
- base64
222
- canon
223
- fiddle
224
- leptris
225
- liquid
226
- lutaml-xsd!
227
- rake
228
- rexml
229
- rspec
230
- rubocop
231
- rubocop-performance
232
-
233
- CHECKSUMS
234
- ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383
235
- base64 (0.3.0) sha256=27337aeabad6ffae05c265c450490628ef3ebd4b67be58257393227588f5a97b
236
- bigdecimal (4.1.3) sha256=61ebe1e5e559bdc3cc6f2c0ee7f427321fc838f59611c294356eb04d6e21cf66
237
- bundler (4.0.23) sha256=407ba8a1d928f412847f819aa5f8b6aef7c59fb51feb517112af8a165487287b
238
- canon (0.3.118) sha256=a6d5e30b9a7af3b8cb264e3ddab54e47149f81b87753e4cc9b62e295ebfde173
239
- concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1
240
- csv (3.3.7) sha256=15a3f16f6628da8664d455eb634e7f22031bcf53044923caf56975109e71b9f8
241
- diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962
242
- ffi (1.17.4-aarch64-linux-gnu) sha256=b208f06f91ffd8f5e1193da3cae3d2ccfc27fc36fba577baf698d26d91c080df
243
- ffi (1.17.4-aarch64-linux-musl) sha256=9286b7a615f2676245283aef0a0a3b475ae3aae2bb5448baace630bb77b91f39
244
- ffi (1.17.4-arm-linux-gnu) sha256=d6dbddf7cb77bf955411af5f187a65b8cd378cb003c15c05697f5feee1cb1564
245
- ffi (1.17.4-arm-linux-musl) sha256=9d4838ded0465bef6e2426935f6bcc93134b6616785a84ffd2a3d82bc3cf6f95
246
- ffi (1.17.4-arm64-darwin) sha256=19071aaf1419251b0a46852abf960e77330a3b334d13a4ab51d58b31a937001b
247
- ffi (1.17.4-x64-mingw-ucrt) sha256=f6ff9618cfccc494138bddade27aa06c74c6c7bc367a1ea1103d80c2fcb9ed35
248
- ffi (1.17.4-x86_64-darwin) sha256=aa70390523cf3235096cf64962b709b4cfbd5c082a2cb2ae714eb0fe2ccda496
249
- ffi (1.17.4-x86_64-linux-gnu) sha256=9d3db14c2eae074b382fa9c083fe95aec6e0a1451da249eab096c34002bc752d
250
- ffi (1.17.4-x86_64-linux-musl) sha256=3fdf9888483de005f8ef8d1cf2d3b20d86626af206cbf780f6a6a12439a9c49e
251
- fiddle (1.1.8) sha256=7fa8ee3627271497f3add5503acdbc3f40b32f610fc1cf49634f083ef3f32eee
252
- json (3.1.0) sha256=3ce7ccf8fde58960177a3a756c31f292a4c1e1dedee884547096a5b0604e3bd8
253
- language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0
254
- leptris (1.9.401.0-aarch64-linux) sha256=47ec59d69cd7c496b8e680bc1710316eb7c3758f2773f694f8eae564b208e13c
255
- leptris (1.9.401.0-aarch64-linux-musl) sha256=17ce4ab5f1764bfc0c9f6af2d2b58c6fad7e62efad6d0b6fcf9ac9afe9b6f4f2
256
- leptris (1.9.401.0-arm-linux) sha256=9841eb6226141ed731df9ffdedd704e06805a2af197f68492423e492b26e7791
257
- leptris (1.9.401.0-arm-linux-musl) sha256=00b805fc80caec46af58dd63d552e66b75b10f788451820b9fe6516c042f149b
258
- leptris (1.9.401.0-arm64-darwin) sha256=998e27a93547fb91a0987fbcdf702ecfb0966547691ab621058bf69a5e27d295
259
- leptris (1.9.401.0-x64-mingw-ucrt) sha256=7bfbdd1c74e06f8467491a6f981d6ad3d2a03905684c5763ab83f4dfde24fe28
260
- leptris (1.9.401.0-x86_64-darwin) sha256=32de3947eced5a85fdbe4d6371ac525fba9c41b84b0f91e5a79e84deeaeef8ce
261
- leptris (1.9.401.0-x86_64-linux) sha256=a6eb1c7107a659d8a5877f06d4fb398b3a7eb410a2c6c2ee9da72838f7c6bba9
262
- leptris (1.9.401.0-x86_64-linux-musl) sha256=40c2222a670e80a7cdc0283ca48b4e7ce03b5a4690b60a0b1281d4afac5f3627
263
- lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87
264
- liquid (5.14.0) sha256=e1020c2b2ee58c7a4d3bfdc7a331537bd27a783353748bff0bf27c6ac0c17065
265
- lutaml-model (0.8.155) sha256=3d90f2fb4fdf41a42d4a05b62b3f6644b433070b82291a9371deaa8e68a1e02d
266
- lutaml-store (0.3.2) sha256=9c455dbab32b4c635c48a27213f6f56fda191731c4574eb6187184ba0588a672
267
- lutaml-xsd (1.2.77)
268
- memo_wise (1.13.0) sha256=30220c38c4cef410849bc73553c58664dc2c91c6379e4a1df22aea02358b716b
269
- moxml (0.6.1) sha256=5b7677258bbad372f0725a421f8adeae37b65d6f7871da2747e2c1906cdac7ea
270
- nokogiri (1.19.4-aarch64-linux-gnu) sha256=1269fb644a6de405057a53dd5c762b1209b43ca7424f839454d3dbc677c31a8f
271
- nokogiri (1.19.4-aarch64-linux-musl) sha256=35c65b9ce72b3bb03207bdbe7067915019dc18c1b9b59139684bd6690fdd01af
272
- nokogiri (1.19.4-arm-linux-gnu) sha256=a301313e38bb065d68239e79734bcd6f56fb6efaacebde29e9abf2a4735340ca
273
- nokogiri (1.19.4-arm-linux-musl) sha256=588923c101bcfa78869734d247d25b598674323e7f22474fc468f6e5647311eb
274
- nokogiri (1.19.4-arm64-darwin) sha256=a46db9853286e6597b36ebc6953817d15acf3a299583eb3f89fdc6f91dd63527
275
- nokogiri (1.19.4-x64-mingw-ucrt) sha256=051da97b8eccfdb5444fed40246a35e10d7298b9efe759b4cd25455ea04c587e
276
- nokogiri (1.19.4-x86_64-darwin) sha256=7fd17057d3e1f00e9954a74b3cd76595d3d4a5ef233b7ed9599047c204f70551
277
- nokogiri (1.19.4-x86_64-linux-gnu) sha256=379fae440b28915e3f19d752ce2dcf8465ed2b2fbefd2a7ca0dd497bc981a06a
278
- nokogiri (1.19.4-x86_64-linux-musl) sha256=17dfb7c1fa194ae02fbf7c51a7afc8d278045ab3fdacfd86f91d02d7b274470b
279
- ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912
280
- paint (2.3.0) sha256=327d623e4038619d5bd99ae5db07973859cd78400c7f0329eea283cef8e83be5
281
- parallel (2.3.0) sha256=f75a3e904101ce6a1ccb6b8dc800cbafd42166d83330192438dcf29395167a6f
282
- parser (3.3.12.0) sha256=21a6d7f755d5a24dfbdc6e6b772e4e879a52e7631a88bc5a3a134606052c9828
283
- parslet (2.0.0) sha256=d45130695d39b43d7e6a91f4d2ec66b388a8d822bae38de9b4de9a5fbde1f606
284
- pastel (0.8.0) sha256=481da9fb7d2f6e6b1a08faf11fa10363172dc40fd47848f096ae21209f805a75
285
- prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85
286
- racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f
287
- rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a
288
- rake (13.4.2) sha256=cb825b2bd5f1f8e91ca37bddb4b9aaf345551b4731da62949be002fa89283701
289
- regexp_parser (2.13.1) sha256=5aedb6b7c35688f51e86eef17a15374dfd287c83f4ca644b2c5f3ec50a33b44b
290
- rexml (3.4.4) sha256=19e0a2c3425dfbf2d4fc1189747bdb2f849b6c5e74180401b15734bc97b5d142
291
- rng (0.3.9) sha256=177bf292ca95916eef16fd27d1a89c7c9beb53e7149983eee7afb3b79e902d79
292
- rspec (3.13.2) sha256=206284a08ad798e61f86d7ca3e376718d52c0bc944626b2349266f239f820587
293
- rspec-core (3.13.6) sha256=a8823c6411667b60a8bca135364351dda34cd55e44ff94c4be4633b37d828b2d
294
- rspec-expectations (3.13.5) sha256=33a4d3a1d95060aea4c94e9f237030a8f9eae5615e9bd85718fe3a09e4b58836
295
- rspec-mocks (3.13.8) sha256=086ad3d3d17533f4237643de0b5c42f04b66348c28bf6b9c2d3f4a3b01af1d47
296
- rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c
297
- rubocop (1.92.0) sha256=2af68041fb2e70bd9321d0479b49fad07f8008a3d0758c83347b4917128c56e0
298
- rubocop-ast (1.50.0) sha256=b9ca88300da0803ee222ad20cdb30494c0a784eed06fdc35d254b06d662788db
299
- rubocop-performance (1.27.0) sha256=eeeb1374d062a368ee1c787b70eb0b0cc4b184cb1f8565f424760946146d61ce
300
- ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33
301
- rubyzip (3.7.0) sha256=65c19294da75297a939006f3516deacc33185fbd721ff1954f7a231db6d3e121
302
- strscan (3.1.8) sha256=aae2db611a225559f21ffbb71765c9a4e60fd262534a9ea84f4f11c7f32f679e
303
- table_tennis (0.0.7) sha256=b45b50dc7714e3bea5b31d2ad2b7d6bdc2995fc7a686976017c17424e1094a28
304
- thor (1.5.0) sha256=e3a9e55fe857e44859ce104a84675ab6e8cd59c650a49106a05f55f136425e73
305
- tty-color (0.6.0) sha256=6f9c37ca3a4e2367fb2e6d09722762647d6f455c111f05b59f35730eeb24332a
306
- tty-cursor (0.7.1) sha256=79534185e6a777888d88628b14b6a1fdf5154a603f285f80b1753e1908e0bf48
307
- tty-prompt (0.23.1) sha256=fcdbce905238993f27eecfdf67597a636bc839d92192f6a0eef22b8166449ec8
308
- tty-reader (0.9.0) sha256=c62972c985c0b1566f0e56743b6a7882f979d3dc32ff491ed490a076f899c2b1
309
- tty-screen (0.8.2) sha256=c090652115beae764336c28802d633f204fb84da93c6a968aa5d8e319e819b50
310
- unicode-display_width (3.3.0) sha256=4b7aa66a4b11db50f6f7e98411215cd0dd10eaecb665d36eec5bcacb3fa0b613
311
- unicode-emoji (4.3.0) sha256=11c02fa73290378c066bb0562cd4c87d8e1b706fbbe0059ca12746a4244de8ce
312
- unicode-name (1.15.1) sha256=b8f2e3ca14bc24799f84a4f74d43a3612d02a051700d88bc6ca8e3bd53cda3f6
313
- unicode-types (1.12.0) sha256=7e26a4352cecc2a50325a3793df834b732581ca9f25c5e29f46f3378934363f6
314
- wisper (2.0.1) sha256=ce17bc5c3a166f241a2e6613848b025c8146fce2defba505920c1d1f3f88fae6
315
- xsdvi (1.0.2) sha256=edf56a78f0fa25e4a5791d235ea8740cfb620eafa4abb79442b30160cf7292fc
316
- yeptris (0.6.53.0-aarch64-linux) sha256=7cdd709010b824925443a0f7435e8ad7a5c6ba78f8c884b8f0ce7ca3e0d6f91f
317
- yeptris (0.6.53.0-aarch64-linux-musl) sha256=50e142d4f7e844d5bc730320dd77c1efd8d52316c6781916581072c907805620
318
- yeptris (0.6.53.0-arm-linux-eabihf) sha256=06db60d56596c3c2db3c59bebd4dbb8d350454a3b21a4bb1890c546d8bf38f4a
319
- yeptris (0.6.53.0-arm-linux-musleabihf) sha256=84500c17a1b5aa3742141b64e0a30b9d09fdb3872ddf2a71975d98469ea7abcd
320
- yeptris (0.6.53.0-arm64-darwin) sha256=f02a8c810e7e225a4955758e881a166c319c9d42c13f47b22f3da554c3714764
321
- yeptris (0.6.53.0-x64-mingw-ucrt) sha256=d29e25bdd8b54b7f0ee44e8d6efb8ef121054c9fbf2b5efd89dfe4d8c2c62425
322
- yeptris (0.6.53.0-x86_64-darwin) sha256=fee07aef3396d3c4c5795f7b5e0a401d6159a52f92be1d891323fb7ed238333d
323
- yeptris (0.6.53.0-x86_64-linux) sha256=e71696ccfdf4d13237363c665a8da2188405ee6ee266fa26b691655d9b83dbf6
324
- yeptris (0.6.53.0-x86_64-linux-musl) sha256=e2161ee12c2095177ae980d367fdfc016687b96d9e10fa9a0b05e62f22f3c931
325
-
326
- BUNDLED WITH
327
- 4.0.23