relaton 3.0.1 → 3.0.3

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 (57) hide show
  1. checksums.yaml +4 -4
  2. data/lib/relaton/bib/converter/csl.rb +3 -2
  3. data/lib/relaton/bib/model/docidentifier.rb +61 -0
  4. data/lib/relaton/bib.rb +2 -1
  5. data/lib/relaton/bipm/CLAUDE.md +14 -0
  6. data/lib/relaton/bipm.rb +0 -1
  7. data/lib/relaton/bsi/model/docidentifier.rb +0 -4
  8. data/lib/relaton/calconnect/data_fetcher.rb +2 -2
  9. data/lib/relaton/ccsds/data/fetcher.rb +2 -1
  10. data/lib/relaton/ccsds/model/docidentifier.rb +0 -4
  11. data/lib/relaton/core/data_fetcher.rb +2 -1
  12. data/lib/relaton/core/processor.rb +1 -1
  13. data/lib/relaton/core.rb +7 -0
  14. data/lib/relaton/db/cache.rb +3 -3
  15. data/lib/relaton/db/registry.rb +1 -1
  16. data/lib/relaton/db.rb +22 -3
  17. data/lib/relaton/doi/crossref.rb +2 -1
  18. data/lib/relaton/doi/parser.rb +3 -2
  19. data/lib/relaton/etsi/data_fetcher.rb +3 -3
  20. data/lib/relaton/gb/sec_scraper.rb +3 -3
  21. data/lib/relaton/iec/data_fetcher.rb +3 -2
  22. data/lib/relaton/iec/model/docidentifier.rb +0 -4
  23. data/lib/relaton/ietf/CLAUDE.md +27 -2
  24. data/lib/relaton/ietf/bibxml_parser.rb +38 -0
  25. data/lib/relaton/ietf/data_fetcher.rb +3 -30
  26. data/lib/relaton/ietf/scraper.rb +60 -3
  27. data/lib/relaton/ietf/wg_name_resolver.rb +2 -2
  28. data/lib/relaton/iho/CLAUDE.md +4 -0
  29. data/lib/relaton/iho/bibliography.rb +7 -1
  30. data/lib/relaton/index/dataset_lock.rb +4 -3
  31. data/lib/relaton/index/shard_source.rb +3 -2
  32. data/lib/relaton/index/sqlite_backend.rb +5 -3
  33. data/lib/relaton/isbn/open_library.rb +2 -1
  34. data/lib/relaton/iso/data_fetcher.rb +6 -6
  35. data/lib/relaton/iso/model/docidentifier.rb +0 -4
  36. data/lib/relaton/itu/data_fetcher.rb +2 -2
  37. data/lib/relaton/itu/hit_collection.rb +3 -3
  38. data/lib/relaton/itu/recommendation_fields.rb +2 -2
  39. data/lib/relaton/jis/data_fetcher.rb +2 -1
  40. data/lib/relaton/json.rb +21 -0
  41. data/lib/relaton/logger/channels/gh_issue.rb +3 -3
  42. data/lib/relaton/logger/formatter_json.rb +2 -1
  43. data/lib/relaton/nist/CLAUDE.md +7 -0
  44. data/lib/relaton/nist/bibliography.rb +31 -0
  45. data/lib/relaton/nist/cswp.rb +137 -0
  46. data/lib/relaton/nist/cswp.yaml +155 -0
  47. data/lib/relaton/nist/docidentifier.rb +0 -4
  48. data/lib/relaton/nist/processor.rb +20 -0
  49. data/lib/relaton/nist/pubs_export.rb +2 -1
  50. data/lib/relaton/nist.rb +1 -0
  51. data/lib/relaton/ogc/data_fetcher.rb +2 -2
  52. data/lib/relaton/omg/scraper.rb +3 -3
  53. data/lib/relaton/plateau/data_fetcher.rb +2 -1
  54. data/lib/relaton/un/hit_collection.rb +4 -3
  55. data/lib/relaton/version.rb +1 -1
  56. data/lib/relaton.rb +1 -0
  57. metadata +45 -88
@@ -0,0 +1,155 @@
1
+ # CSWP ids the CSRC pubs-export feed does not list (relaton#406).
2
+ #
3
+ # Source: the RIS files `bib/NIST.CSWP.*.ris` on the `nist-pages` branch of
4
+ # usnistgov/NIST-Tech-Pubs (the NIST Library MODS/MARC releases hold no CSWP).
5
+ #
6
+ # legacy: a dated id from before the series was numbered -> the numbered id,
7
+ # matched by the exact RIS title (TI). A dated translation maps to the
8
+ # numbered translation. `06222021-draft` has no numbered RIS; its title is
9
+ # the CSRC `CSWP 19` initial public draft.
10
+ # Not mapped: `02042022-1`..`-5` have no SN and share the title
11
+ # "Cybersecurity White Paper: EO Response", so no numbered id matches.
12
+ #
13
+ # translations: numbered id + ISO 639-2 language code -> the RIS fields (TI,
14
+ # PY, DO, AU). The original is the numbered id without the language code.
15
+ legacy:
16
+ "01142020": "9"
17
+ "01162020es": "10 spa"
18
+ "01162020id": "10 ind"
19
+ "01162020pt": "10 por"
20
+ "01262018": "5"
21
+ "02042020-1": "11"
22
+ "02042020-2": "11A"
23
+ "02042020-3": "11B"
24
+ "02042020-4": "11C"
25
+ "02042020-5": "11D"
26
+ "02042020-6": "11E"
27
+ "02042020-7": "11F"
28
+ "02122014": "1"
29
+ "02122014pl": "1 pol"
30
+ "02192014": "2"
31
+ "04162018": "6"
32
+ "04162018ar": "6 ara"
33
+ "04162018bg": "6 bul"
34
+ "04162018es": "6 spa"
35
+ "04162018fr": "6 fre"
36
+ "04162018id": "6 ind"
37
+ "04162018pt": "6 por"
38
+ "04212016": "4"
39
+ "04222019": "8"
40
+ "04232020": "13"
41
+ "04282021": "15"
42
+ "06032014": "3"
43
+ "06222021-draft": "19 ipd"
44
+ "09102018": "7"
45
+ "09292021": "21"
46
+ translations:
47
+ "1 pol":
48
+ title: Framework for Improving Critical Infrastructure Cybersecurity, Version 1.0 (Polish translation)
49
+ year: "2014"
50
+ doi: 10.6028/NIST.CSWP.1.pol
51
+ authors:
52
+ - Stine, Kevin
53
+ "6 ara":
54
+ title: Framework for Improving Critical Infrastructure Cybersecurity, Version 1.1 (Arabic translation)
55
+ year: "2018"
56
+ doi: 10.6028/NIST.CSWP.6.ara
57
+ authors:
58
+ - Stine, Kevin
59
+ "6 bul":
60
+ title: Framework for Improving Critical Infrastructure Cybersecurity, Version 1.1 (Bulgarian translation)
61
+ year: "2018"
62
+ doi: 10.6028/NIST.CSWP.6.bul
63
+ authors:
64
+ - Stine, Kevin
65
+ "6 fre":
66
+ title: Framework for Improving Critical Infrastructure Cybersecurity, Version 1.1 (French Translation)
67
+ year: "2018"
68
+ doi: 10.6028/NIST.CSWP.6.fre
69
+ authors:
70
+ - Stine, Kevin
71
+ "6 gre":
72
+ title: Greek Translation of the Framework for Improving Critical Infrastructure Cybersecurity
73
+ year: "2018"
74
+ doi: 10.6028/NIST.CSWP.6.gre
75
+ authors:
76
+ - Stine, Kevin
77
+ "6 ind":
78
+ title: Framework for Improving Critical Infrastructure Cybersecurity, Version 1.1 (Indonesian Translation)
79
+ year: "2018"
80
+ doi: 10.6028/NIST.CSWP.6.ind
81
+ authors:
82
+ - Stine, Kevin
83
+ "6 jpn":
84
+ title: Japanese Translation of Framework for Improving Critical Infrastructure Cybersecurity Version 1.1 (Cybersecurity Framework)
85
+ year: "2018"
86
+ doi: 10.6028/NIST.CSWP.6.jpn
87
+ authors:
88
+ - Stine, Kevin
89
+ "6 kor":
90
+ title: Korean Translation of the Framework for Improving Critical Infrastructure Cybersecurity Version 1.1
91
+ year: "2024"
92
+ doi: 10.6028/NIST.CSWP.6.kor
93
+ authors:
94
+ - Stine, Kevin
95
+ "6 may":
96
+ title: Malay Translation of the Framework for Improving Critical Infrastructure Cybersecurity V1.1
97
+ year: "2018"
98
+ doi: 10.6028/NIST.CSWP.6.may
99
+ authors:
100
+ - Stine, Kevin
101
+ "6 nor":
102
+ title: Norwegian Translation of the Framework for Improving Critical Infrastructure Cybersecurity Version 1.1
103
+ year: "2018"
104
+ doi: 10.6028/NIST.CSWP.6.nor
105
+ authors:
106
+ - Stine, Kevin
107
+ "6 por":
108
+ title: Portuguese Translation of the Framework for Improving Critical Infrastructure Cybersecurity Version 1.1 (Cybersecurity Framework)
109
+ year: "2018"
110
+ doi: 10.6028/NIST.CSWP.6.por
111
+ authors:
112
+ - Stine, Kevin
113
+ "6 spa":
114
+ title: Framework for Improving Critical Infrastructure Cybersecurity, Version 1.1 (Spanish translation)
115
+ year: "2018"
116
+ doi: 10.6028/NIST.CSWP.6.spa
117
+ authors:
118
+ - Stine, Kevin
119
+ "6 ukr":
120
+ title: Ukranian Translation of the Framework for Improving Critical Infrastructure Cybersecurity Version 1.1 (Cybersecurity Framework)
121
+ year: "2018"
122
+ doi: 10.6028/NIST.CSWP.6.ukr
123
+ authors:
124
+ - Stine, Kevin
125
+ "10 ara":
126
+ title: "NIST Privacy Framework: A Tool for Improving Privacy Through Enterprise Risk Management, Version 1.0 (Arabic translation)"
127
+ year: "2022"
128
+ doi: 10.6028/NIST.CSWP.10.ara
129
+ authors:
130
+ - Lefkovitz, Naomi
131
+ - Boeckl, Katie
132
+ "10 ind":
133
+ title: Indonesian Translation of the NIST Privacy Framework Version 1.0
134
+ year: "2020"
135
+ doi: 10.6028/NIST.CSWP.10.ind
136
+ authors:
137
+ - Lefkovitz, Naomi
138
+ "10 may":
139
+ title: "NIST Privacy Framework: A Tool for Improving Privacy Through Enterprise Risk Management, Version 1.0 (Malay translation)"
140
+ year: "2024"
141
+ doi: 10.6028/NIST.CSWP.10.may
142
+ authors:
143
+ - Lefkovitz, Naomi
144
+ "10 por":
145
+ title: Portuguese Translation of the NIST Privacy Framework Version 1.0
146
+ year: "2021"
147
+ doi: 10.6028/NIST.CSWP.10.por
148
+ authors:
149
+ - Lefkovitz, Naomi
150
+ "10 spa":
151
+ title: Spanish Translation of the NIST Privacy Framework Version 1.0
152
+ year: "2021"
153
+ doi: 10.6028/NIST.CSWP.10.spa
154
+ authors:
155
+ - Lefkovitz, Naomi
@@ -74,10 +74,6 @@ module Relaton
74
74
  original_content
75
75
  end
76
76
 
77
- def to_s
78
- content.to_s
79
- end
80
-
81
77
  # `#exclude` (no args) clones the whole graph (incl. a supplement's
82
78
  # base), since `walk_chain` mutates it in place. `@raw_content` freezes
83
79
  # the stripped rendering — `content` is live from `@pubid`, and the
@@ -21,6 +21,26 @@ module Relaton
21
21
  Bibliography.get(code, date, opts)
22
22
  end
23
23
 
24
+ # Two kinds of Cswp table reference reach `get` as written and are not
25
+ # cached (relaton#406). A legacy dated id answers the numbered record
26
+ # with the dated id added, and Db would store that record under the
27
+ # numbered id's row, so a later "NIST CSWP 9" would carry the dated id.
28
+ # A translation that pubid reads in another form ("NIST CSWP
29
+ # 04162018ar" as "...04162018a", "NIST CSWP 6 spa" as "...6(spa)").
30
+ #
31
+ # @param ref [String]
32
+ # @return [Pubid::Nist::Identifier, nil]
33
+ def cache_pubid(ref)
34
+ pubid = super
35
+ return if pubid.nil?
36
+
37
+ require_relative "cswp"
38
+ type, = Cswp.lookup(ref)
39
+ return pubid if type.nil? || (type == :translation && pubid.to_s == ref)
40
+
41
+ nil
42
+ end
43
+
24
44
  #
25
45
  # Fetch all the documents from a source
26
46
  #
@@ -1,3 +1,4 @@
1
+ require "yeptris"
1
2
  require "singleton"
2
3
 
3
4
  module Relaton
@@ -61,7 +62,7 @@ module Relaton
61
62
  #
62
63
  def unzip
63
64
  Zip::File.open(DATAFILE) do |zf|
64
- JSON.parse zf.first.get_input_stream.read
65
+ Relaton::Json.parse_external zf.first.get_input_stream.read
65
66
  end
66
67
  end
67
68
  end
data/lib/relaton/nist.rb CHANGED
@@ -12,6 +12,7 @@ require_relative "nist/pubs_export"
12
12
  require_relative "nist/hit"
13
13
  require_relative "nist/hit_collection"
14
14
  require_relative "nist/scraper"
15
+ require_relative "nist/cswp"
15
16
  require_relative "nist/bibliography"
16
17
  # require_relative "nist/tech_pubs_parser"
17
18
 
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+
3
4
  require "fileutils"
4
5
  require "faraday"
5
- require "json"
6
6
  require_relative "../ogc"
7
7
  require_relative "scraper"
8
8
 
@@ -126,7 +126,7 @@ module Relaton
126
126
  resp = Faraday.new(ENDPOINT, headers: h).get
127
127
  case resp.status
128
128
  when 200
129
- json = JSON.parse(resp.body)
129
+ json = Relaton::Json.parse_external(resp.body)
130
130
  block_given? ? yield(resp[:etag], json) : json
131
131
  when 304 then []
132
132
  else raise Relaton::RequestError, "Could not access #{ENDPOINT}"
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "json"
3
+
4
4
  require "mechanize"
5
5
  require "pubid"
6
6
 
@@ -118,10 +118,10 @@ module Relaton
118
118
  script = @doc.at_xpath('//script[@type="application/ld+json"]')
119
119
  return unless script
120
120
 
121
- node = JSON.parse(script.text).find { |e| e.is_a?(Hash) && e[LD_DATE] }
121
+ node = Relaton::Json.parse_external(script.text).find { |e| e.is_a?(Hash) && e[LD_DATE] }
122
122
  value = node && node[LD_DATE].first["@value"]
123
123
  value && ::Date.parse(value)
124
- rescue JSON::ParserError, ::Date::Error
124
+ rescue ::JSON::ParserError, ::Date::Error
125
125
  nil
126
126
  end
127
127
 
@@ -1,3 +1,4 @@
1
+ require "yeptris"
1
2
  require "json"
2
3
  require "relaton/core"
3
4
  require_relative "../plateau"
@@ -78,7 +79,7 @@ module Relaton
78
79
  body = hadle_response(response)
79
80
 
80
81
  # Parse the JSON response
81
- JSON.parse(body)
82
+ Relaton::Json.parse_external(body)
82
83
  rescue StandardError => e
83
84
  # Handle any errors during the fetching process
84
85
  Util.error "Error fetching JSON data from #{url}: #{e.message}"
@@ -1,7 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "yeptris"
4
+
3
5
  require "faraday"
4
- require "json"
5
6
  require "securerandom"
6
7
 
7
8
  module Relaton
@@ -28,11 +29,11 @@ module Relaton
28
29
  def search_api(text) # rubocop:disable Metrics/MethodLength
29
30
  resp = connection.post("search?l=en&rid=#{SecureRandom.uuid}") do |req|
30
31
  req.headers["Content-Type"] = "application/json"
31
- req.body = JSON.generate(search_body(text))
32
+ req.body = Yeptris::JSON.dump(search_body(text))
32
33
  end
33
34
  return unless resp.success?
34
35
 
35
- body = JSON.parse(resp.body)
36
+ body = Relaton::Json.parse_external(resp.body)
36
37
  return unless body["status"] == 1
37
38
 
38
39
  body.dig("body", "data")
@@ -1,3 +1,3 @@
1
1
  module Relaton
2
- VERSION = "3.0.1".freeze
2
+ VERSION = "3.0.3".freeze
3
3
  end
data/lib/relaton.rb CHANGED
@@ -22,6 +22,7 @@ module Relaton
22
22
  autoload :Logger, "relaton/logger"
23
23
  autoload :Equivalence, "relaton/equivalence"
24
24
  autoload :Core, "relaton/core"
25
+ autoload :Json, "relaton/json"
25
26
  autoload :Index, "relaton/index"
26
27
  autoload :Bib, "relaton/bib"
27
28
  autoload :ThreeGpp, "relaton/3gpp"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: relaton
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.1
4
+ version: 3.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-10-29 00:00:00.000000000 Z
11
+ date: 2026-10-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -42,30 +42,30 @@ dependencies:
42
42
  name: base64
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: '0.3'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: '0.3'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: bibtex-ruby
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
61
+ version: '6.2'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '0'
68
+ version: '6.2'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: cnccs
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -98,16 +98,16 @@ dependencies:
98
98
  name: sqlite3
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ">="
101
+ - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '1.7'
103
+ version: '2.10'
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ">="
108
+ - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '1.7'
110
+ version: '2.10'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: csv
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -128,14 +128,14 @@ dependencies:
128
128
  requirements:
129
129
  - - "~>"
130
130
  - !ruby/object:Gem::Version
131
- version: 2.7.0
131
+ version: '2.7'
132
132
  type: :runtime
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
- version: 2.7.0
138
+ version: '2.7'
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: faraday-net_http_persistent
141
141
  requirement: !ruby/object:Gem::Requirement
@@ -224,16 +224,16 @@ dependencies:
224
224
  name: iso639
225
225
  requirement: !ruby/object:Gem::Requirement
226
226
  requirements:
227
- - - ">="
227
+ - - "~>"
228
228
  - !ruby/object:Gem::Version
229
- version: '0'
229
+ version: '1.4'
230
230
  type: :runtime
231
231
  prerelease: false
232
232
  version_requirements: !ruby/object:Gem::Requirement
233
233
  requirements:
234
- - - ">="
234
+ - - "~>"
235
235
  - !ruby/object:Gem::Version
236
- version: '0'
236
+ version: '1.4'
237
237
  - !ruby/object:Gem::Dependency
238
238
  name: isoics
239
239
  requirement: !ruby/object:Gem::Requirement
@@ -248,20 +248,6 @@ dependencies:
248
248
  - - "~>"
249
249
  - !ruby/object:Gem::Version
250
250
  version: 0.1.6
251
- - !ruby/object:Gem::Dependency
252
- name: json
253
- requirement: !ruby/object:Gem::Requirement
254
- requirements:
255
- - - "<"
256
- - !ruby/object:Gem::Version
257
- version: '3'
258
- type: :runtime
259
- prerelease: false
260
- version_requirements: !ruby/object:Gem::Requirement
261
- requirements:
262
- - - "<"
263
- - !ruby/object:Gem::Version
264
- version: '3'
265
251
  - !ruby/object:Gem::Dependency
266
252
  name: loc_mods
267
253
  requirement: !ruby/object:Gem::Requirement
@@ -296,20 +282,14 @@ dependencies:
296
282
  requirements:
297
283
  - - "~>"
298
284
  - !ruby/object:Gem::Version
299
- version: '0.2'
300
- - - ">="
301
- - !ruby/object:Gem::Version
302
- version: 0.2.5
285
+ version: 0.2.8
303
286
  type: :runtime
304
287
  prerelease: false
305
288
  version_requirements: !ruby/object:Gem::Requirement
306
289
  requirements:
307
290
  - - "~>"
308
291
  - !ruby/object:Gem::Version
309
- version: '0.2'
310
- - - ">="
311
- - !ruby/object:Gem::Version
312
- version: 0.2.5
292
+ version: 0.2.8
313
293
  - !ruby/object:Gem::Dependency
314
294
  name: lutaml-model
315
295
  requirement: !ruby/object:Gem::Requirement
@@ -384,30 +364,30 @@ dependencies:
384
364
  name: moxml
385
365
  requirement: !ruby/object:Gem::Requirement
386
366
  requirements:
387
- - - ">="
367
+ - - "~>"
388
368
  - !ruby/object:Gem::Version
389
- version: '0.5'
369
+ version: 0.5.174
390
370
  type: :runtime
391
371
  prerelease: false
392
372
  version_requirements: !ruby/object:Gem::Requirement
393
373
  requirements:
394
- - - ">="
374
+ - - "~>"
395
375
  - !ruby/object:Gem::Version
396
- version: '0.5'
376
+ version: 0.5.174
397
377
  - !ruby/object:Gem::Dependency
398
378
  name: leptris
399
379
  requirement: !ruby/object:Gem::Requirement
400
380
  requirements:
401
- - - ">="
381
+ - - "~>"
402
382
  - !ruby/object:Gem::Version
403
- version: 1.9.80
383
+ version: 1.9.391
404
384
  type: :runtime
405
385
  prerelease: false
406
386
  version_requirements: !ruby/object:Gem::Requirement
407
387
  requirements:
408
- - - ">="
388
+ - - "~>"
409
389
  - !ruby/object:Gem::Version
410
- version: 1.9.80
390
+ version: 1.9.391
411
391
  - !ruby/object:Gem::Dependency
412
392
  name: parallel
413
393
  requirement: !ruby/object:Gem::Requirement
@@ -424,86 +404,60 @@ dependencies:
424
404
  version: '1.26'
425
405
  - !ruby/object:Gem::Dependency
426
406
  name: parsanol
427
- requirement: !ruby/object:Gem::Requirement
428
- requirements:
429
- - - ">="
430
- - !ruby/object:Gem::Version
431
- version: 1.3.112
432
- - - "<"
433
- - !ruby/object:Gem::Version
434
- version: '1.4'
435
- type: :runtime
436
- prerelease: false
437
- version_requirements: !ruby/object:Gem::Requirement
438
- requirements:
439
- - - ">="
440
- - !ruby/object:Gem::Version
441
- version: 1.3.112
442
- - - "<"
443
- - !ruby/object:Gem::Version
444
- version: '1.4'
445
- - !ruby/object:Gem::Dependency
446
- name: parslet
447
407
  requirement: !ruby/object:Gem::Requirement
448
408
  requirements:
449
409
  - - "~>"
450
410
  - !ruby/object:Gem::Version
451
- version: 2.0.0
411
+ version: 1.3.114
452
412
  type: :runtime
453
413
  prerelease: false
454
414
  version_requirements: !ruby/object:Gem::Requirement
455
415
  requirements:
456
416
  - - "~>"
457
417
  - !ruby/object:Gem::Version
458
- version: 2.0.0
418
+ version: 1.3.114
459
419
  - !ruby/object:Gem::Dependency
460
420
  name: pubid
461
421
  requirement: !ruby/object:Gem::Requirement
462
422
  requirements:
463
423
  - - "~>"
464
424
  - !ruby/object:Gem::Version
465
- version: 2.0.0.pre.alpha.62
425
+ version: 2.0.1
466
426
  type: :runtime
467
427
  prerelease: false
468
428
  version_requirements: !ruby/object:Gem::Requirement
469
429
  requirements:
470
430
  - - "~>"
471
431
  - !ruby/object:Gem::Version
472
- version: 2.0.0.pre.alpha.62
432
+ version: 2.0.1
473
433
  - !ruby/object:Gem::Dependency
474
434
  name: yeptris
475
435
  requirement: !ruby/object:Gem::Requirement
476
436
  requirements:
477
- - - ">="
437
+ - - "~>"
478
438
  - !ruby/object:Gem::Version
479
- version: '0.4'
439
+ version: 0.6.51
480
440
  type: :runtime
481
441
  prerelease: false
482
442
  version_requirements: !ruby/object:Gem::Requirement
483
443
  requirements:
484
- - - ">="
444
+ - - "~>"
485
445
  - !ruby/object:Gem::Version
486
- version: '0.4'
446
+ version: 0.6.51
487
447
  - !ruby/object:Gem::Dependency
488
448
  name: relaton-render
489
449
  requirement: !ruby/object:Gem::Requirement
490
450
  requirements:
491
- - - ">="
492
- - !ruby/object:Gem::Version
493
- version: 3.0.0.pre.alpha.1
494
- - - "<"
451
+ - - "~>"
495
452
  - !ruby/object:Gem::Version
496
- version: '4'
453
+ version: '3.0'
497
454
  type: :runtime
498
455
  prerelease: false
499
456
  version_requirements: !ruby/object:Gem::Requirement
500
457
  requirements:
501
- - - ">="
502
- - !ruby/object:Gem::Version
503
- version: 3.0.0.pre.alpha.1
504
- - - "<"
458
+ - - "~>"
505
459
  - !ruby/object:Gem::Version
506
- version: '4'
460
+ version: '3.0'
507
461
  - !ruby/object:Gem::Dependency
508
462
  name: rfcxml
509
463
  requirement: !ruby/object:Gem::Requirement
@@ -1149,6 +1103,7 @@ files:
1149
1103
  - lib/relaton/jis/scraper.rb
1150
1104
  - lib/relaton/jis/structured_identifier.rb
1151
1105
  - lib/relaton/jis/util.rb
1106
+ - lib/relaton/json.rb
1152
1107
  - lib/relaton/logger.rb
1153
1108
  - lib/relaton/logger/CLAUDE.md
1154
1109
  - lib/relaton/logger/README.adoc
@@ -1166,6 +1121,8 @@ files:
1166
1121
  - lib/relaton/nist/bibitem.rb
1167
1122
  - lib/relaton/nist/bibliography.rb
1168
1123
  - lib/relaton/nist/comment_period.rb
1124
+ - lib/relaton/nist/cswp.rb
1125
+ - lib/relaton/nist/cswp.yaml
1169
1126
  - lib/relaton/nist/data_fetcher.rb
1170
1127
  - lib/relaton/nist/date.rb
1171
1128
  - lib/relaton/nist/docidentifier.rb