relaton-nist 1.19.1 → 1.19.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 84f25c99f7dfa62a09294c042a3774332fdb018841028aa7ef0dde5b07c9788c
4
- data.tar.gz: 618fca8f81fe125d4c265c02d1cf4a65c8188b960f7dd91332e91b4ec22bb05d
3
+ metadata.gz: 7a4b4d939bc25c7c8968747b391784b5e0238a6961b5544d6f48cd77848addf9
4
+ data.tar.gz: f5684a7aa32f04b30fed89c1d43dc0c5247562a94bf97b1d65f6b0c80de2f054
5
5
  SHA512:
6
- metadata.gz: 2e4c3cfdec6fbe121b8b669e7beca74df804bbda725c358fc0be0bccc8853d12644f79937edf9eebd06fb06a0a91b92b37d61ad9267784ed6a3f476d2f3ea8ac
7
- data.tar.gz: 517f957beaf97d42b0cf0d8fc9749ef9af2f99f2db0510a994be4e4ac56003f2d6c5ad2fa46d6f574b0868c520e79797911dbbe5d6a1516382f6625f486b6e17
6
+ metadata.gz: aa2d613dc42ac689b422b73d0b930459bbfdad99ca8e0e4302a8f586931f89f90ae0189d6d052e8e003659b75df4f5a07941835d4f03f4e98ead50ebcfef738d
7
+ data.tar.gz: 19b7411e9f15891b7513dd934a678702fcfaccc80512385e2354d69ca66f2cf3617b2f8e88ce47b7141ee885dc933e59931731dec14e1b90e550964184f4ff92
data/README.adoc CHANGED
@@ -10,7 +10,8 @@ image:https://img.shields.io/github/commits-since/relaton/relaton-nist/latest.sv
10
10
 
11
11
  == Purpose
12
12
 
13
- `relaton-nist` provides bibliographic information of NIST publications using the
13
+ Relaton for NIST provides bibliographic information of NIST publications using
14
+ the
14
15
  https://github.com/metanorma/metanorma-model-nist#nist-bibliographic-item-model[NistBibliographicItem model].
15
16
 
16
17
  Relaton for NIST has been developed in cooperation with the NIST Cybersecurity
@@ -18,18 +19,25 @@ Resource Center (CSRC) and the Computer Security Division (ITL/CSD).
18
19
 
19
20
  == Data sources
20
21
 
21
- Relaton for NIST retrieves bibliographic information from two sources:
22
+ === General
22
23
 
23
- * bibliographic feed from the NIST Cybersecurity Resource Center (CSRC) of
24
- all CSRC publications (in Relaton JSON)
25
- * bibliographic dataset from the NIST Library through the Information Services
26
- Office (ISO) that contains information about all NIST Technical Publications
27
- (https://github.com/usnistgov/NIST-Tech-Pubs[GitHub])
24
+ Relaton for NIST retrieves bibliographic information from two sources,
25
+ in the following priority:
26
+
27
+ . NIST Cybersecurity Resource Center (CSRC)
28
+
29
+ . NIST Library of the NIST Information Services Office (ISO)
30
+
31
+
32
+ === NIST Cybersecurity Resource Center (CSRC)
33
+
34
+ The NIST CSRC bibliographic feed is used as the primary source for all CSRC
35
+ publications.
28
36
 
29
37
  Bibliographic information offered through CSRC is provided with enhanced
30
- metadata that is not available in the NIST Library dataset, including:
38
+ metadata unavailable from the NIST Library dataset, including:
31
39
 
32
- * public drafts (the NIST Library dataset only contains final publications)
40
+ * versioned drafts (the NIST Library dataset only contains the latest publication: latest draft or final publication)
33
41
  * revision information: revision number, iteration
34
42
  * document stage information: retired, withdrawn, etc.
35
43
  * bibliographic dates, including issued date, updated date, published date,
@@ -37,20 +45,38 @@ metadata that is not available in the NIST Library dataset, including:
37
45
  * document relationships: supersession and replacements
38
46
  * contacts: enhanced name parts and affiliation information
39
47
 
40
- Relaton for NIST, therefore, uses the following order of priority for the data
41
- sources:
42
-
43
- . bibliographic feed from NIST CSRC
44
- . NIST Library dataset
45
-
46
- The NIST CSRC provides:
48
+ The NIST CSRC provides the following documents:
47
49
 
48
50
  * NIST SP 800-*
49
51
  * NIST SP 500-*
50
52
  * NIST SP 1800-*
51
53
  * NIST FIPS {31, 39, 41, 46, 46-$$*$$, 48, 65, 73, 74, 81, 83, 87, 102, 112, 113, 139, 140-$$*$$, 141, 171, 180, 180-$$*$$, 181, 186, 186-$$*$$, 188, 190, 191, 196, 197, 198, 198-1, 199, 200, 201, 201-*, 202}
52
54
 
53
- The NIST Library dataset provides documents listed in the https://github.com/relaton/relaton-data-nist/blob/main/index-v1.yaml[index].
55
+ As this feed is provided by CSRC in the native Relaton JSON format, no data
56
+ transform is necessary.
57
+
58
+
59
+ === NIST Library
60
+
61
+ The NIST Library offers the full NIST Technical Publications dataset at
62
+ https://github.com/usnistgov/NIST-Tech-Pubs[GitHub].
63
+
64
+ The library data is managed internally using MARC21, and the GitHub repository
65
+ offers this information via MARC21 XML and MODS (in XML).
66
+
67
+ Relaton for NIST uses the MODS dataset obtained from the following location:
68
+
69
+ * https://github.com/usnistgov/NIST-Tech-Pubs/releases[NIST-Tech-Pubs/releases],
70
+ the `allrecords-MODS.xml` file
71
+
72
+ The MODS XML file is parsed using the
73
+ https://github.com/relaton/loc_mods[`loc_mods`] library and its data mapped to
74
+ the Relaton model.
75
+
76
+ The NIST Library dataset provides documents listed in the
77
+ https://github.com/relaton/relaton-data-nist/blob/main/index-v1.yaml[index].
78
+
79
+
54
80
 
55
81
  == Installation
56
82
 
@@ -63,104 +89,85 @@ gem 'relaton-nist'
63
89
 
64
90
  And then execute:
65
91
 
66
- $ bundle
92
+ [source,sh]
93
+ ----
94
+ $ bundle
95
+ ----
67
96
 
68
97
  Or install it yourself as:
69
98
 
70
- $ gem install relaton_nist
99
+ [source,sh]
100
+ ----
101
+ $ gem install relaton_nist
102
+ ----
71
103
 
72
104
  == Usage
73
105
 
74
- === Search for a standard using keywords
106
+ === Retrieving an entry
75
107
 
108
+ ==== By NIST PubID
109
+
110
+ Relaton supports using the
111
+ https://www.nist.gov/system/files/documents/2022/04/01/PubID_Syntax_NIST_TechPubs.pdf[NIST PubID]
112
+ as the retrieval key for bibliographic entries.
113
+
114
+ NOTE: Relaton for NIST is the first public implementation of the
115
+ https://www.nist.gov/news-events/news/2021/08/nist-technical-series-publications-proposed-publication-identifier-syntax[NIST PubID].
116
+
117
+
118
+ .Retrieving a bibliographic entry using NIST PubID
119
+ [example]
120
+ ====
76
121
  [source,ruby]
77
122
  ----
78
- require 'relaton_nist'
79
- => true
123
+ > require 'relaton_nist'
124
+ =>
125
+ true
80
126
 
81
- hit_collection = RelatonNist::NistBibliography.search("NISTIR 8200")
127
+ > hit_collection = RelatonNist::NistBibliography.search("NISTIR 8200")
82
128
  [relaton-nist] (NIST IR 8200) Fetching from csrc.nist.gov ...
83
129
  [relaton-nist] (NIST IR 8200) Fetching from Relaton repository ...
84
- => <RelatonNist::HitCollection:0x00000000004b28 @ref=NIST IR 8200 @fetched=false>
130
+ =>
131
+ <RelatonNist::HitCollection:0x00000000004b28 @ref=NIST IR 8200 @fetched=false>
85
132
 
86
- item = hit_collection[0].fetch
87
- => #<RelatonNist::NistBibliographicItem:0x007fc049aa6778
88
- ...
133
+ > item = hit_collection[0].fetch
134
+ =>
135
+ #<RelatonNist::NistBibliographicItem:0x007fc049aa6778
136
+ # ...
89
137
  ----
138
+ ====
90
139
 
91
- === XML serialization
92
- [source,ruby]
93
- ----
94
- item.to_xml
95
- => "<bibitem id="NISTIR8200" type="standard" schema-version="v1.2.9">
96
- <fetched>2023-10-16</fetched>
97
- <title format="text/plain" language="en" script="Latn">Interagency report on the status of international cybersecurity standardization for the internet of things (IoT)</title>
98
- ...
99
- <bibitem>"
100
- ----
101
- With argument `bibdata: true` it outputs XML wrapped by `bibdata` element and adds flavor `ext` element.
102
- [source,ruby]
103
- ----
104
- item.to_xml bibdata: true
105
- => "<bibdata type="standard" schema-version="v1.2.9">
106
- <fetched>2023-10-16</fetched>
107
- <title format="text/plain" language="en" script="Latn">Interagency report on the status of international cybersecurity standardization for the internet of things (IoT)</title>
108
- ...
109
- <ext schema-version="v1.0.0">
110
- <doctype>standard</doctype>
111
- </ext>
112
- </bibdata>"
113
- ----
114
140
 
115
- === Get code, and year
141
+ The publication year can also be given if the publication has seen multiple
142
+ revisions or editions.
143
+
144
+ .Retrieving a bibliographic entry using NIST PubID with year
145
+ [example]
146
+ ====
116
147
  [source,ruby]
117
148
  ----
118
- RelatonNist::NistBibliography.get("NIST IR 8200", "2018")
149
+ > RelatonNist::NistBibliography.get("NIST IR 8200", "2018")
119
150
  [relaton-nist] (NIST SP 8200:2018) Fetching from csrc.nist.gov ...
120
151
  [relaton-nist] (NIST IR 8200:2018) Fetching from Relaton repository...
121
152
  [relaton-nist] (NIST IR 8200:2018) Found: `NIST IR 8200`
122
- => #<RelatonNist::NistBibliographicItem:0x00007fab74a572c0
123
- ...
153
+ =>
154
+ #<RelatonNist::NistBibliographicItem:0x00007fab74a572c0
155
+ # ...
124
156
  ----
157
+ ====
125
158
 
126
- === Get short citation
127
- A short citation is a convention about a citation's format. The format for NIST publications is:
128
- ----
129
- NIST {abbrev(series)} {docnumber} {(edition), optional} {(stage), optional}
130
- # or
131
- {abbrev(series)} {docnumber} {(edition), optional} {(stage), optional}
132
- ----
133
- - `(stage)` is empty if the state is "final" (published). In case the state is "draft" it should be:
134
- * PD for public draft
135
- * IPD for initial iteration public draft or 2PD, 3PD and so one for following iterations
136
- * FPD for final public draft
137
- - `(edition)` is the date of publication or update
138
- - `docnumber` is the full NIST number, including revision, e.g., 800-52
139
-
140
- The format for FIPS publications is:
141
- ----
142
- FIPS {docnumber}
143
- # or
144
- NIST FIPS {docnumber}
145
- ----
146
- [source,ruby]
147
- ----
148
- RelatonNist::NistBibliography.get("NIST SP 800-205 (February 2019) (IPD)")
149
- [relaton-nist] (NIST SP 800-205) Fetching from csrc.nist.gov ...
150
- [relaton-nist] (NIST SP 800-205) Found: `NIST SP 800-205 (Draft)`
151
- => #<RelatonNist::NistBibliographicItem:0x00000001105afdc8
152
- ...
153
- ----
154
159
 
155
- === Get specific part, volume, version, revision, and addendum
160
+ A NIST PubID can contain these optional parameters `{ptN}{vN}{verN}{rN}{/Add}`:
156
161
 
157
- Referehces can contain optional parameters `{ptN}{vN}{verN}{rN}{/Add}`:
158
- - Part is specified as `ptN` (SP 800-57pt1)
159
- - Volume is specified as `vN` (SP 800-60v1)
160
- - Version is specified as `verN` (SP 800-45ver2)
161
- - Revision is specified as `rN` (SP 800-40r3)
162
- - Addendum is specified as `/Add` (SP 800-38A/Add)
162
+ * Part is specified as `ptN` (SP 800-57pt1)
163
+ * Volume is specified as `vN` (SP 800-60v1)
164
+ * Version is specified as `verN` (SP 800-45ver2)
165
+ * Revision is specified as `rN` (SP 800-40r3) or `-N`
166
+ * Addendum is specified as `/Add` (SP 800-38A/Add)
163
167
 
168
+ .Retrieving a bibliographic entry with a PubID that contains revision
169
+ [example]
170
+ ====
164
171
  [source,ruby]
165
172
  ----
166
173
  item = RelatonNist::NistBibliography.get 'NIST SP 800-67r1'
@@ -171,7 +178,14 @@ item = RelatonNist::NistBibliography.get 'NIST SP 800-67r1'
171
178
 
172
179
  item.docidentifier.first.id
173
180
  => "NIST SP 800-67 Rev. 1"
181
+ ----
182
+ ====
174
183
 
184
+ .Retrieving a bibliographic entry with a PubID that specifies an addendum
185
+ [example]
186
+ ====
187
+ [source,ruby]
188
+ ----
175
189
  item = RelatonNist::NistBibliography.get 'NIST SP 800-38A/Add'
176
190
  [relaton-nist] (NIST SP 800-38A/Add) Fetching from csrc.nist.gov ...
177
191
  [relaton-nist] (NIST SP 800-38A/Add) Found: `NIST SP 800-38A-Add`
@@ -181,11 +195,132 @@ item = RelatonNist::NistBibliography.get 'NIST SP 800-38A/Add'
181
195
  item.docidentifier.first.id
182
196
  => "NIST SP 800-38A-Add"
183
197
  ----
198
+ ====
199
+
200
+ ==== By NIST PubID abbreviated form
201
+
202
+ The NIST PubID "abbreviated form" is the form of PubID printed on the inner
203
+ cover of a NIST publication.
204
+
205
+ The NIST PubID abbreviated format has the following syntax:
206
+
207
+ * `NIST {abbrev(series)} {docnumber} {(edition), optional} {(stage), optional}`, or
208
+ * `{abbrev(series)} {docnumber} {(edition), optional} {(stage), optional}`
209
+
210
+ Where,
184
211
 
185
- === Typed links
212
+ `(stage)`::
213
+ empty if the state is "final" (published).
214
+ In case the state is "draft" it should be:
215
+ `PD`::: for the public draft
216
+ `IPD`::: for the initial public draft
217
+ `{n}PD`::: for subsequent public drafts, such as 2PD, 3PD and so on.
218
+ `FPD`::: for the final public draft
186
219
 
187
- NIST documents may have `src` and `doi` link types.
220
+ `(edition)`:: the date of publication or update
221
+ `docnumber`:: the full NIST document number, e.g., 800-52.
188
222
 
223
+ .Retrieving an entry using the NIST PubID abbreviated form
224
+ [example]
225
+ ====
226
+ [source,ruby]
227
+ ----
228
+ > RelatonNist::NistBibliography.get("NIST SP 800-205 (February 2019) (IPD)")
229
+ [relaton-nist] (NIST SP 800-205) Fetching from csrc.nist.gov ...
230
+ [relaton-nist] (NIST SP 800-205) Found: `NIST SP 800-205 (Draft)`
231
+ =>
232
+ #<RelatonNist::NistBibliographicItem:0x00000001105afdc8
233
+ # ...
234
+ ----
235
+ ====
236
+
237
+ ==== By FIPS PubID
238
+
239
+ The format for FIPS publications is:
240
+
241
+ * `FIPS {docnumber}`, or
242
+ * `NIST FIPS {docnumber}`
243
+
244
+
245
+ .Retrieving an entry using the FIPS PubID
246
+ [example]
247
+ ====
248
+ [source,ruby]
249
+ ----
250
+ > RelatonNist::NistBibliography.get("NIST FIPS 140-3")
251
+ [relaton-nist] INFO: (NIST FIPS 140-3) Fetching from csrc.nist.gov ...
252
+ [relaton-nist] INFO: (NIST FIPS 140-3) Found: `NIST FIPS 140-3`
253
+ =>
254
+ # #<RelatonNist::NistBibliographicItem:0x000000013b68fb50
255
+ # ...
256
+ ----
257
+ ====
258
+
259
+
260
+ === Serializing an entry
261
+
262
+ ==== To Relaton XML
263
+
264
+ .Serializing an entry to Relaton XML
265
+ [example]
266
+ ====
267
+ [source,ruby]
268
+ ----
269
+ > item.to_xml
270
+ #=> "<bibitem id="NISTIR8200" type="standard" schema-version="v1.2.9">
271
+ # <fetched>2023-10-16</fetched>
272
+ # <title format="text/plain" language="en" script="Latn">Interagency report on the status of international cybersecurity standardization for the internet of things (IoT)</title>
273
+ # ...
274
+ # <bibitem>"
275
+ ----
276
+ ====
277
+
278
+ When the option `bibdata: true` is given, the method outputs XML wrapped by
279
+ the `bibdata` element and adds a flavor-specific `ext` element.
280
+
281
+ .Serializing an entry to Relaton XML with `bibdata: true`
282
+ [example]
283
+ ====
284
+ [source,ruby]
285
+ ----
286
+ > item.to_xml bibdata: true
287
+ =>
288
+ "<bibdata type="standard" schema-version="v1.2.9">
289
+ # <fetched>2023-10-16</fetched>
290
+ # <title format="text/plain" language="en" script="Latn">Interagency report on the status of international cybersecurity standardization for the internet of things (IoT)</title>
291
+ # ...
292
+ # <ext schema-version="v1.0.0">
293
+ # <doctype>standard</doctype>
294
+ # </ext>
295
+ # </bibdata>"
296
+ ----
297
+ ====
298
+
299
+
300
+
301
+ === Accessing attributes
302
+
303
+ ==== Identifier components
304
+
305
+ A NIST PubID can contain these optional parameters `{ptN}{vN}{verN}{rN}{/Add}`.
306
+
307
+ They can be accessed through the following methods:
308
+
309
+ * `part`
310
+ * `volume`
311
+ * `version`
312
+ * `revision`
313
+ * `addendum`
314
+
315
+
316
+ ==== Typed links
317
+
318
+ NIST publications may have `src` and `doi` links, obtained using the `#link`
319
+ method.
320
+
321
+ .Accessing links of a NIST bibliographic item
322
+ [example]
323
+ ====
189
324
  [source,ruby]
190
325
  ----
191
326
  item.link
@@ -196,8 +331,20 @@ item.link
196
331
  @type="src">,
197
332
  #<RelatonBib::TypedUri:0x00000001110879a8 @content=#<Addressable::URI:0x8d4 URI:https://doi.org/10.6028/NIST.SP.800-38A-Add>, @language=nil, @script=nil, @type="doi">]
198
333
  ----
334
+ ====
335
+
336
+
337
+ === Loading entries
199
338
 
200
- === Create bibliographic item from YAML
339
+ // ==== From XML
340
+
341
+ ==== From YAML
342
+
343
+ Offline Relaton YAML files can be loaded directly as bibliographic items.
344
+
345
+ .Loading a Relaton YAML file
346
+ [example]
347
+ ====
201
348
  [source,ruby]
202
349
  ----
203
350
  hash = YAML.load_file 'spec/examples/nist_bib_item.yml'
@@ -208,40 +355,65 @@ RelatonNist::NistBibliographicItem.from_hash hash
208
355
  => #<RelatonNist::NistBibliographicItem:0x007f8b708505b8
209
356
  ...
210
357
  ----
358
+ ====
359
+
211
360
 
212
- === Fetch data
361
+ === Fetching data
213
362
 
214
- This gem uses the https://raw.githubusercontent.com/usnistgov/NIST-Tech-Pubs/nist-pages/xml/allrecords.xml dataset as one of data sources.
363
+ On a search, the CSRC data sources are fetched and stored in the user's cache.
215
364
 
216
- The method `RelatonNist::DataFetcher.fetch(output: "data", format: "yaml")` fetches all the documents from the datast and save them to the `./data` folder in YAML format.
217
- Arguments:
365
+ This gem uses the https://github.com/usnistgov/NIST-Tech-Pubs/releases/download/May2024/allrecords-MODS.xml dataset as NIST-Tech-Pubs data source.
218
366
 
219
- - `output` - folder to save documents (default './data').
220
- - `format` - the format in which the documents are saved. Possible formats are: `yaml`, `xml`, `bibxxml` (default `yaml`).
367
+ The following method fetches all the documents from the NIST-Tech-Pubs dataset, then saves them to the `./data` folder in YAML format.
221
368
 
369
+ .Fetching all data with default configuration
370
+ [example]
371
+ ====
222
372
  [source,ruby]
223
373
  ----
224
- RelatonNist::DataFetcher.fetch
374
+ > RelatonNist::DataFetcher.fetch
225
375
  Started at: 2021-09-01 18:01:01 +0200
226
376
  Stopped at: 2021-09-01 18:01:43 +0200
227
377
  Done in: 42 sec.
228
378
  => nil
229
379
  ----
380
+ ====
230
381
 
231
- === Logging
382
+ .Fetching all data to the `data` folder
383
+ [example]
384
+ ====
385
+ [source,ruby]
386
+ ----
387
+ > RelatonNist::DataFetcher.fetch(output: "data", format: "yaml")
388
+ ----
389
+ ====
390
+
391
+ Options:
392
+
393
+ `output`:: folder to save documents (default `./data`).
394
+ `format`:: format in which the documents are saved. Possible formats are:
395
+ `yaml`::: (default) save in Relaton YAML format
396
+ `xml`::: save in Relaton XML format
397
+ `bibxml`::: save in the IETF BibXML format
232
398
 
233
- RelatonNist uses the relaton-logger gem for logging. By default, it logs to STDOUT. To change the log levels and add other loggers, read the https://github.com/relaton/relaton-logger#usage[relaton-logger] documentation.
234
399
 
235
- == Development
400
+ === Logging
401
+
402
+ Relaton for NIST uses https://github.com/relaton/relaton-logger[relaton-logger]
403
+ for logging.
236
404
 
237
- After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
405
+ By default, it logs to `$STDOUT`. To change log levels and add other loggers,
406
+ refer to the https://github.com/relaton/relaton-logger#usage[relaton-logger]
407
+ documentation.
238
408
 
239
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
240
409
 
241
410
  == Contributing
242
411
 
243
- Bug reports and pull requests are welcome on GitHub at https://github.com/metanorma/relaton-nist.
412
+ Bug reports and pull requests are welcome.
244
413
 
245
414
  == License
246
415
 
247
- The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
416
+ Copyright Ribose.
417
+
418
+ The gem is available as open source under the terms of the
419
+ https://opensource.org/licenses/MIT[MIT License].
@@ -65,8 +65,8 @@ module RelatonNist
65
65
  t2 = Time.now
66
66
  puts "Stopped at: #{t2}"
67
67
  puts "Done in: #{(t2 - t1).round} sec."
68
- rescue StandardError => e
69
- Util.error "#{e.message}\n#{e.backtrace[0..5].join("\n")}"
68
+ # rescue StandardError => e
69
+ # Util.error "#{e.message}\n#{e.backtrace[0..5].join("\n")}"
70
70
  end
71
71
 
72
72
  def fetch_tech_pubs
@@ -1,3 +1,3 @@
1
1
  module RelatonNist
2
- VERSION = "1.19.1".freeze
2
+ VERSION = "1.19.3".freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: relaton-nist
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.19.1
4
+ version: 1.19.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-07-12 00:00:00.000000000 Z
11
+ date: 2024-09-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: base64