@larsgw/formica 0.9.2 → 0.10.1

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 (53) hide show
  1. package/lib/bin/process-resources-index.js +0 -0
  2. package/lib/bin/process-resources.d.ts +6 -1
  3. package/lib/bin/process-resources.js +116 -25
  4. package/lib/bin/validate-catalog.js +34 -13
  5. package/lib/bin/validate-resources-text.js +3 -1
  6. package/lib/catalog/tables/taxon.js +4 -0
  7. package/lib/catalog/value.d.ts +1 -0
  8. package/lib/catalog/value.js +1 -0
  9. package/lib/resources/parse-text.js +6 -3
  10. package/lib/taxon-names/index.js +1 -1
  11. package/package.json +15 -13
  12. package/.gitattributes +0 -1
  13. package/.github/workflows/ci.yml +0 -27
  14. package/CHANGELOG.md +0 -390
  15. package/eslint.config.js +0 -34
  16. package/lib/bin/SHEETS.js +0 -0
  17. package/lib/bin/clean-links.d.ts +0 -2
  18. package/lib/bin/clean-links.js +0 -170
  19. package/lib/bin/download-place-shapes.js +0 -188
  20. package/lib/bin/index-place-shapes.js +0 -115
  21. package/lib/bin/process-resources-problems.js +0 -177
  22. package/lib/bin/validate-linked-data.js +0 -0
  23. package/lib/resources/content/clavis.js +0 -10
  24. package/lib/resources/content/index.js +0 -0
  25. package/lib/resources/content/sdd.js +0 -151
  26. package/lib/resources/sdd.js +0 -78
  27. package/src/bin/generate-linked-data.ts +0 -762
  28. package/src/bin/process-resources-index.ts +0 -100
  29. package/src/bin/process-resources.ts +0 -510
  30. package/src/bin/util.ts +0 -74
  31. package/src/bin/validate-catalog.ts +0 -122
  32. package/src/bin/validate-resources-text.ts +0 -25
  33. package/src/catalog/entities.ts +0 -62
  34. package/src/catalog/entity.ts +0 -116
  35. package/src/catalog/index.ts +0 -33
  36. package/src/catalog/tables/author.ts +0 -15
  37. package/src/catalog/tables/index.ts +0 -14
  38. package/src/catalog/tables/place.ts +0 -14
  39. package/src/catalog/tables/publisher.ts +0 -15
  40. package/src/catalog/tables/taxon.ts +0 -17
  41. package/src/catalog/tables/work.ts +0 -65
  42. package/src/catalog/value.ts +0 -51
  43. package/src/csv.ts +0 -33
  44. package/src/index.ts +0 -4
  45. package/src/module.d.ts +0 -148
  46. package/src/resources/diff-resource.ts +0 -226
  47. package/src/resources/index.ts +0 -4
  48. package/src/resources/parse-name.ts +0 -392
  49. package/src/resources/parse-text.ts +0 -408
  50. package/src/resources/resource.ts +0 -10
  51. package/src/taxon-names/index.ts +0 -79
  52. package/test/resources.js +0 -374
  53. package/tsconfig.json +0 -15
package/CHANGELOG.md DELETED
@@ -1,390 +0,0 @@
1
- ## [0.9.2](https://github.com/identification-resources/formica/compare/v0.9.1...v0.9.2) (2026-06-05)
2
-
3
-
4
- ### Bug Fixes
5
-
6
- * **catalog:** check for ID uniqueness ([eed45ad](https://github.com/identification-resources/formica/commit/eed45ad6155a03474606d84daefddac4c1c63956))
7
-
8
- ## [0.9.1](https://github.com/identification-resources/formica/compare/v0.9.0...v0.9.1) (2026-04-21)
9
-
10
-
11
- ### Bug Fixes
12
-
13
- * **resources:** fix RDF mapping of taxonomic status ([c65383e](https://github.com/identification-resources/formica/commit/c65383e4d64c674c6c3b9f69e8cae925fcdf6896))
14
-
15
-
16
- ### Features
17
-
18
- * **catalog:** add more validation for taxa ([2bbc017](https://github.com/identification-resources/formica/commit/2bbc0177f8d4a6909339cfee812c33873770f725))
19
-
20
- # [0.9.0](https://github.com/identification-resources/formica/compare/v0.8.8...v0.9.0) (2026-02-04)
21
-
22
-
23
- ### Bug Fixes
24
-
25
- * **resources:** improve taxonomic status ([0ea8fd2](https://github.com/identification-resources/formica/commit/0ea8fd220571f5f6ff05f517069aba10148c6888))
26
-
27
-
28
- ### Features
29
-
30
- * **resources:** include cluster data in DwC files ([60a28ac](https://github.com/identification-resources/formica/commit/60a28ace18b0760696735ca416a2e8d014d1c928))
31
- * **resources:** include uncertainty of synonymy in DwC if specified ([03b6734](https://github.com/identification-resources/formica/commit/03b6734851dc9c331ec88fab21e90ad3f0303c3c))
32
-
33
- ## [0.8.8](https://github.com/identification-resources/formica/compare/v0.8.7...v0.8.8) (2025-12-25)
34
-
35
-
36
- ### Features
37
-
38
- * **resources:** add 'subclass' rank ([4b10405](https://github.com/identification-resources/formica/commit/4b10405b32840c1675caf7ef24bf2bbfd821a236))
39
-
40
- ## [0.8.7](https://github.com/identification-resources/formica/compare/v0.8.6...v0.8.7) (2025-11-01)
41
-
42
-
43
- ### Bug Fixes
44
-
45
- * **resources:** fix handling of corrections ([49c05b4](https://github.com/identification-resources/formica/commit/49c05b499262e64514b832313360d1e6a4cc6378))
46
-
47
- ## [0.8.6](https://github.com/identification-resources/formica/compare/v0.8.5...v0.8.6) (2025-10-28)
48
-
49
-
50
- ### Bug Fixes
51
-
52
- * **resources:** fix diffs if last line changes ([a86c3e9](https://github.com/identification-resources/formica/commit/a86c3e97ae31cf9d509fff4a7525d56c05f79752))
53
- * **resources:** fix recognition of subgenus synonyms ([4c52599](https://github.com/identification-resources/formica/commit/4c525991dafac83176b96b2e04c5c952d777ac08))
54
-
55
-
56
- ### Features
57
-
58
- * **resources:** ignore errors in later-corrected names ([4c1f69e](https://github.com/identification-resources/formica/commit/4c1f69e81450664f122cdf00e68cb918248790e6)), closes [#5](https://github.com/identification-resources/formica/issues/5)
59
-
60
- ## [0.8.5](https://github.com/identification-resources/formica/compare/v0.8.4...v0.8.5) (2025-10-28)
61
-
62
-
63
- ### Bug Fixes
64
-
65
- * **catalog:** add mapping for typo 'male' in linked data ([a83d34e](https://github.com/identification-resources/formica/commit/a83d34e7aa57a78e410e2ea55adbf75e522d9028))
66
- * **catalog:** fix dcmitype: for algorithms, checklists ([68e353d](https://github.com/identification-resources/formica/commit/68e353d71d632e092e3e79254e6b4f575c004f1c))
67
- * **catalog:** fix typos in linked data generation ([9ad951f](https://github.com/identification-resources/formica/commit/9ad951f5c19978509c6aba7fd81470270707da99))
68
- * **resources:** add scientific name for complexes, aggregates ([843afc3](https://github.com/identification-resources/formica/commit/843afc39df1952dda4bb6339ee47f2619432bb74))
69
- * **resources:** omit generic error stack trace ([c831bc2](https://github.com/identification-resources/formica/commit/c831bc2a952ef17a9e57b012fe0568e2acc0c6ae))
70
-
71
-
72
- ### Features
73
-
74
- * **resources:** handle subgenus synonyms of genera ([4e61336](https://github.com/identification-resources/formica/commit/4e61336e36054ffd6df57ebad5479e7ceebcb235)), closes [#16](https://github.com/identification-resources/formica/issues/16)
75
- * **resources:** rework parsing of resources ([cff7730](https://github.com/identification-resources/formica/commit/cff773000c5b9e3f990c619cdd45a76a18ee39a9)), closes [#15](https://github.com/identification-resources/formica/issues/15) [#7](https://github.com/identification-resources/formica/issues/7)
76
-
77
- ## [0.8.4](https://github.com/identification-resources/formica/compare/v0.8.3...v0.8.4) (2025-09-19)
78
-
79
-
80
- ### Bug Fixes
81
-
82
- * **catalog:** clearer error message when validating ([b1c34f0](https://github.com/identification-resources/formica/commit/b1c34f00ed9a262251d2d24b3e6c46fd17730405))
83
- * **resources:** optimize diffing algorithm ([0c86c49](https://github.com/identification-resources/formica/commit/0c86c49474754dced74c8423f3e6b7ed2fd2a78f)), closes [#6](https://github.com/identification-resources/formica/issues/6)
84
-
85
-
86
- ### Features
87
-
88
- * **catalog:** map additional scope value ([80c6d26](https://github.com/identification-resources/formica/commit/80c6d269a7d5b03600991fb353280e81afcefb0e))
89
-
90
- ## [0.8.3](https://github.com/identification-resources/formica/compare/v0.8.2...v0.8.3) (2025-07-15)
91
-
92
-
93
- ### Features
94
-
95
- * **catalog:** add catalog field key_characteristics ([6529cfa](https://github.com/identification-resources/formica/commit/6529cfab81f759f926b81bdd9d5a36e84b526284))
96
-
97
- ## [0.8.2](https://github.com/identification-resources/formica/compare/v0.8.1...v0.8.2) (2025-06-26)
98
-
99
-
100
- ### Bug Fixes
101
-
102
- * **resources:** add support for documented flag ([6cb89e4](https://github.com/identification-resources/formica/commit/6cb89e428bde8665b7e8f03b5c7f47a44e15f58e))
103
- * **resources:** allow hyphens in biname pattern ([6a58a77](https://github.com/identification-resources/formica/commit/6a58a77757b8b6ae8c2d7d01440775776d183d05))
104
-
105
- ## [0.8.1](https://github.com/identification-resources/formica/compare/v0.8.0...v0.8.1) (2025-05-30)
106
-
107
-
108
- ### Bug Fixes
109
-
110
- * **catalog:** fix aspects of linked data ([1b2964f](https://github.com/identification-resources/formica/commit/1b2964f46b8409c6a67f0475faf067a80734288c))
111
- * **catalog:** set display_name to required, as documented ([3f36909](https://github.com/identification-resources/formica/commit/3f36909bbe6261cbee022139050875de37174611))
112
-
113
-
114
- ### Features
115
-
116
- * **resources:** add support for "(sub)gen. nov" pattern ([d2598eb](https://github.com/identification-resources/formica/commit/d2598ebfd2f80d9c2bcc00ce145b9fc229316e5b))
117
-
118
- # [0.8.0](https://github.com/identification-resources/formica/compare/v0.7.3...v0.8.0) (2025-05-07)
119
-
120
-
121
- ### Bug Fixes
122
-
123
- * **catalog:** remove unused obsolete 'clean-links' script ([af1ecc2](https://github.com/identification-resources/formica/commit/af1ecc2fdd0a80bb8fa7108f3d52978239d7ef01))
124
-
125
-
126
- ### Features
127
-
128
- * **catalog:** implement generation of linked data ([334616e](https://github.com/identification-resources/formica/commit/334616e2e12c0d91e49f84f06bdd00ab7a238b8e))
129
-
130
- ## [0.7.3](https://github.com/identification-resources/formica/compare/v0.7.2...v0.7.3) (2025-04-17)
131
-
132
-
133
- ### Features
134
-
135
- * **catalog:** update validation for identifiers ([156a703](https://github.com/identification-resources/formica/commit/156a7036ab09c411d091bc9d0f628831a30ba3f5))
136
-
137
- ## [0.7.2](https://github.com/identification-resources/formica/compare/v0.7.1...v0.7.2) (2025-04-02)
138
-
139
-
140
- ### Features
141
-
142
- * **catalog:** add validation for taxa.csv ([59cfcf2](https://github.com/identification-resources/formica/commit/59cfcf28ebbef42e28e648e800c178a7d528f37a))
143
-
144
- ## [0.7.1](https://github.com/identification-resources/formica/compare/v0.7.0...v0.7.1) (2025-03-25)
145
-
146
-
147
- ### Features
148
-
149
- * **resources:** add 'subphylum' rank ([8b5243b](https://github.com/identification-resources/formica/commit/8b5243bfd79b6486c613ca1178f1e1c9ec3f43a4))
150
-
151
- # [0.7.0](https://github.com/identification-resources/formica/compare/v0.6.8...v0.7.0) (2025-03-14)
152
-
153
-
154
- ### Bug Fixes
155
-
156
- * **resources:** improve diff regarding indet lines ([2615437](https://github.com/identification-resources/formica/commit/26154374f50d680c5f3e187cd6a1a5eadbac6b5d))
157
-
158
-
159
- ### Features
160
-
161
- * **resources:** change syntax of "indet" line ([d53363e](https://github.com/identification-resources/formica/commit/d53363e65bfa77a2eb247999316621f9ca0bff59))
162
-
163
-
164
- ### BREAKING CHANGES
165
-
166
- * **resources:** "indet" lines now have to be prefixed with "[indet]"
167
-
168
- ## [0.6.8](https://github.com/identification-resources/formica/compare/v0.6.7...v0.6.8) (2025-03-13)
169
-
170
-
171
- ### Features
172
-
173
- * **resources:** add support for intergeneric hybrids without parents ([3cb0c0c](https://github.com/identification-resources/formica/commit/3cb0c0cd60fc5a4ba88add623fbadc3b90d8530c))
174
- * **resources:** create index of CoL identifiers ([3792903](https://github.com/identification-resources/formica/commit/37929035374bc0c67ed2403e775e06a904bdbd4d))
175
- * **resources:** support intergeneric hybrids ([0a6696c](https://github.com/identification-resources/formica/commit/0a6696c5fd0603a0366c80c2298b6544636ed0c6))
176
-
177
- ## [0.6.7](https://github.com/identification-resources/formica/compare/v0.6.6...v0.6.7) (2025-02-26)
178
-
179
-
180
- ### Bug Fixes
181
-
182
- * **resources:** keep uncorrected name in verbatimIdentification ([dc4d5d1](https://github.com/identification-resources/formica/commit/dc4d5d17e7a412a94538f6162dfd839d808cbc30))
183
- * **resources:** update heuristics for recognizing author citations ([bca6a7f](https://github.com/identification-resources/formica/commit/bca6a7f5a6c2dc3dc421d885f6270f5464fc5ea5))
184
- * **resources:** use corrected generic name in output ([b472384](https://github.com/identification-resources/formica/commit/b4723842e87515f076230c603246082bc3bbec9d))
185
-
186
-
187
- ### Features
188
-
189
- * **resources:** add support for completeness flags ([55b5427](https://github.com/identification-resources/formica/commit/55b5427125b4f1072191cadbc461ba31d37e6f2e))
190
-
191
- ## [0.6.6](https://github.com/identification-resources/formica/compare/v0.6.5...v0.6.6) (2025-02-16)
192
-
193
-
194
- ### Features
195
-
196
- * **resources:** allow other resources in version_of ([85947b0](https://github.com/identification-resources/formica/commit/85947b0dcfbdb4bfd6537c628b34087a6e6326f7))
197
-
198
- ## [0.6.5](https://github.com/identification-resources/formica/compare/v0.6.4...v0.6.5) (2024-12-20)
199
-
200
-
201
- ### Bug Fixes
202
-
203
- * **resources:** ignore empty lines in diff mode ([3fb027e](https://github.com/identification-resources/formica/commit/3fb027e8968196910fff2e574e700ac0abee996c))
204
- * **resources:** improve (ICBN) author parsing ([d3e3faf](https://github.com/identification-resources/formica/commit/d3e3faf411d1a7dccd528a5ee78bd0823a5883b4)), closes [#13](https://github.com/identification-resources/formica/issues/13) [#14](https://github.com/identification-resources/formica/issues/14)
205
- * **resources:** support "et al." in author name ([82993bf](https://github.com/identification-resources/formica/commit/82993bffac5e7f3ed00d00c28c836f347b264a43))
206
-
207
- ## [0.6.4](https://github.com/identification-resources/formica/compare/v0.6.3...v0.6.4) (2024-12-16)
208
-
209
-
210
- ### Bug Fixes
211
-
212
- * **resources:** fix matching of some ICBN names ([3c18458](https://github.com/identification-resources/formica/commit/3c184586b64e2a31f1eb7298bcd7c80c1d119069))
213
-
214
- ## [0.6.3](https://github.com/identification-resources/formica/compare/v0.6.2...v0.6.3) (2024-04-12)
215
-
216
-
217
- ### Bug Fixes
218
-
219
- * **resources:** allow 'phylum' rank ([ff9be66](https://github.com/identification-resources/formica/commit/ff9be66abab79a86263764b54d6a2709833b14d4))
220
-
221
- ## [0.6.2](https://github.com/identification-resources/formica/compare/v0.6.1...v0.6.2) (2024-04-08)
222
-
223
-
224
- ### Bug Fixes
225
-
226
- * **catalog:** include all fields in tabular export ([c4e47bb](https://github.com/identification-resources/formica/commit/c4e47bbdf31c8f589e35c897c8207eb4dd979461))
227
-
228
-
229
- ### Features
230
-
231
- * **catalog:** add script to de-duplicate links ([b719348](https://github.com/identification-resources/formica/commit/b719348635e1b35ee80758c0cdd9938625d79ebf))
232
-
233
- ## [0.6.1](https://github.com/identification-resources/formica/compare/v0.6.0...v0.6.1) (2024-03-20)
234
-
235
-
236
- ### Bug Fixes
237
-
238
- * **resources:** allow two-part hybrid names ([8e3b836](https://github.com/identification-resources/formica/commit/8e3b8368985d1db35b62d306d833121150e91865))
239
-
240
- # [0.6.0](https://github.com/identification-resources/formica/compare/v0.5.2...v0.6.0) (2024-01-05)
241
-
242
-
243
- ### Features
244
-
245
- * **catalog:** add entry type, key type values ([ed6e4fb](https://github.com/identification-resources/formica/commit/ed6e4fb545e09cddb5d466f602bffb8a8483f043))
246
-
247
- ## [0.5.2](https://github.com/identification-resources/formica/compare/v0.5.1...v0.5.2) (2023-11-27)
248
-
249
-
250
- ### Bug Fixes
251
-
252
- * **resources:** fix GBIF index generation ([c88e2d2](https://github.com/identification-resources/formica/commit/c88e2d2b306b930ca0b00b978e3eb89b8adfb656))
253
-
254
- ## [0.5.1](https://github.com/identification-resources/formica/compare/v0.5.0...v0.5.1) (2023-11-03)
255
-
256
-
257
- ### Bug Fixes
258
-
259
- * **resources:** fix file listing in processor ([009b980](https://github.com/identification-resources/formica/commit/009b98091b0f597e91213ace82252facbe3b5fed))
260
-
261
- # [0.5.0](https://github.com/identification-resources/formica/compare/v0.4.3...v0.5.0) (2023-10-24)
262
-
263
-
264
- ### Bug Fixes
265
-
266
- * **catalog:** make validation more robust ([522db8a](https://github.com/identification-resources/formica/commit/522db8ad428c2d4645569a7f541fd203f5d628e8))
267
- * **csv:** fix csv formatting ([064e5e5](https://github.com/identification-resources/formica/commit/064e5e57b2a642d22850501ab2a0b95879779b85))
268
- * **resources:** do not count abbreviations as species ([ac0cc5a](https://github.com/identification-resources/formica/commit/ac0cc5a7cfd1f68df9b8d1d1c543a2f593839daa))
269
- * **resources:** fix typos in output column names ([0d02823](https://github.com/identification-resources/formica/commit/0d0282378b21e92fbe028a53a9d121f42e791cc5))
270
-
271
-
272
- ### Features
273
-
274
- * **resources:** encode names with spaces with underscores ([9c7efd4](https://github.com/identification-resources/formica/commit/9c7efd4daf80660be98f2fec8ef9faa5d5b42d67))
275
- * **resources:** include verbatimIdentification column ([4a2e920](https://github.com/identification-resources/formica/commit/4a2e9201467347e900f5690d2301a3b231ded822))
276
- * **resources:** move "scope" metadata to "catalog" ([286c5b2](https://github.com/identification-resources/formica/commit/286c5b223ce41336f3ebd63c1797403aad21aef6))
277
- * **resources:** update processor configuration ([64daa26](https://github.com/identification-resources/formica/commit/64daa26d70c96df24298c7b78f2b93ef0f5b2a48))
278
-
279
-
280
- ### BREAKING CHANGES
281
-
282
- * **resources:** - "intragenericEpithet" is now "infragenericEpithet"
283
- - "intraspecificEpithet" is now "infraspecificEpithet"
284
- * **resources:** Adds additional column, between "higherClassification" and "colTaxonID".
285
- * **resources:** - Instead of "-u, --update" use "-s modified"
286
- - Instead of "--update-mapping" use "-s all"
287
- * **resources:** Index will no longer contain "scope" array. "scope" field in YAML header
288
- does no longer pass validation. Use the "taxon_scope" and "scope" fields
289
- in "catalog" instead.
290
-
291
- ## [0.4.3](https://github.com/identification-resources/formica/compare/v0.4.2...v0.4.3) (2023-09-30)
292
-
293
-
294
- ### Bug Fixes
295
-
296
- * **resource:** fix regression in taxon parsing ([098477b](https://github.com/identification-resources/formica/commit/098477b5914324a3c15ec885617d4cf30996f30d))
297
-
298
- ## [0.4.2](https://github.com/identification-resources/formica/compare/v0.4.1...v0.4.2) (2023-09-30)
299
-
300
-
301
- ### Bug Fixes
302
-
303
- * **resources:** allow simpler intraspecific synonyms ([978186c](https://github.com/identification-resources/formica/commit/978186cbaf469f3085c24c2e8bc8ffb1f83f2799)), closes [#9](https://github.com/identification-resources/formica/issues/9)
304
- * **resources:** correct synonym rank determintation ([766ea2a](https://github.com/identification-resources/formica/commit/766ea2af14ff3aa64a7a2e19ed096836d38182cf))
305
- * **resources:** do not parse "indet." lines as taxa ([f4debf6](https://github.com/identification-resources/formica/commit/f4debf695b0cdb375bfb60ab5ce942fa2f7dee85)), closes [#8](https://github.com/identification-resources/formica/issues/8)
306
-
307
- ## [0.4.1](https://github.com/identification-resources/formica/compare/v0.4.0...v0.4.1) (2023-09-07)
308
-
309
-
310
- ### Bug Fixes
311
-
312
- * **catalog:** fix typo in duplicate_of schema ([fbb6333](https://github.com/identification-resources/formica/commit/fbb6333d10dd6f5846856ea8de81d941ce539d21))
313
-
314
- # [0.4.0](https://github.com/identification-resources/formica/compare/v0.3.1...v0.4.0) (2023-09-07)
315
-
316
-
317
- ### Bug Fixes
318
-
319
- * **catalog:** validation checks for unknown fields ([5fe5cf0](https://github.com/identification-resources/formica/commit/5fe5cf0b8cf4db7c4af50a897821077e410a1e09))
320
- * **catalog:** verify if required fields are missing ([c327ae4](https://github.com/identification-resources/formica/commit/c327ae458a80567aac34dd03f3970dcf9d575479))
321
-
322
-
323
- ### Features
324
-
325
- * **catalog:** add duplicate_of field ([e4a8bbe](https://github.com/identification-resources/formica/commit/e4a8bbecef9c6a40d0f2cc5d4e8bb67685a453ff))
326
-
327
- ## [0.3.1](https://github.com/identification-resources/formica/compare/v0.3.0...v0.3.1) (2023-09-04)
328
-
329
-
330
- ### Bug Fixes
331
-
332
- * **resources:** allow correction of synonyms of lowest taxa ([c737d5b](https://github.com/identification-resources/formica/commit/c737d5b09d5e5b24f4cc2c8cff88c9ada8d0ab7b))
333
- * **resources:** fix regression in c737d5b ([d4e52e9](https://github.com/identification-resources/formica/commit/d4e52e95ed1a35dabbd80b9f9aace1a824fdae98))
334
- * **resources:** handle corrections to synonyms ([21ed9b7](https://github.com/identification-resources/formica/commit/21ed9b79f77e1e6d0639d96ed9822d5212a85a2e)), closes [#4](https://github.com/identification-resources/formica/issues/4)
335
-
336
- # [0.3.0](https://github.com/identification-resources/formica/compare/v0.2.1...v0.3.0) (2023-08-20)
337
-
338
-
339
- ### Features
340
-
341
- * **resources:** add accepted ids to dwc and index ([1b5aba8](https://github.com/identification-resources/formica/commit/1b5aba8ff07bba32fc1bbf49927fef7a880eb35e))
342
- * **resources:** allow updates of just mappings ([0ea62c1](https://github.com/identification-resources/formica/commit/0ea62c143a49129709960de123c0037973356487))
343
- * **resources:** improve prefix selection heuristics ([7c2e0c9](https://github.com/identification-resources/formica/commit/7c2e0c99d9de7490314f971e8b4e9e5e190a81c2))
344
- * **resources:** improve taxon name matching ([78ff480](https://github.com/identification-resources/formica/commit/78ff480485ca42bd1d1f2893f230e61db6cb6be8)), closes [#2](https://github.com/identification-resources/formica/issues/2)
345
- * **resources:** test for rank mismatch ([0e69b7f](https://github.com/identification-resources/formica/commit/0e69b7f0a6654fa5255e797be7516cd06edb4df3)), closes [#2](https://github.com/identification-resources/formica/issues/2)
346
-
347
- ## [0.2.1](https://github.com/identification-resources/formica/compare/v0.2.0...v0.2.1) (2023-08-10)
348
-
349
-
350
- ### Bug Fixes
351
-
352
- * **resources:** do not validate old versions ([1a8dd2e](https://github.com/identification-resources/formica/commit/1a8dd2e0e373489e287d1fd89dbb7443245c5214))
353
- * **resources:** fix check for missing leaf taxa ([035f1ad](https://github.com/identification-resources/formica/commit/035f1ad20efa80b388ec3828d4ace4518c7b344e))
354
-
355
- # [0.2.0](https://github.com/identification-resources/formica/compare/v0.1.1...v0.2.0) (2023-08-09)
356
-
357
-
358
- ### Features
359
-
360
- * **catalog:** add taxon_scope column ([6a06c37](https://github.com/identification-resources/formica/commit/6a06c37ec0640a8ffbc258ad6a4d81d84d35fee9))
361
- * **resources:** check for missing leaf taxa ([387c47d](https://github.com/identification-resources/formica/commit/387c47d10bb7f1fb09a68c10dfa869bb924b7633))
362
-
363
- ## [0.1.1](https://github.com/identification-resources/formica/compare/v0.1.0...v0.1.1) (2023-05-10)
364
-
365
-
366
- ### Bug Fixes
367
-
368
- * **processor:** add Node hashbang ([51dee57](https://github.com/identification-resources/formica/commit/51dee57b8547afba449b2b846bd7d65e7927368f))
369
-
370
- # [0.1.0](https://github.com/identification-resources/formica/compare/fed91fd6f350c47bd067d221a4d0e2278a199dae...v0.1.0) (2023-03-01)
371
-
372
-
373
- ### Bug Fixes
374
-
375
- * **resources:** fix typo in taxon name pattern ([8f1b6cf](https://github.com/identification-resources/formica/commit/8f1b6cfa3858edb83c0aee589b84ad760ab815af))
376
- * **resources:** improve name parsing heuristics ([a40642e](https://github.com/identification-resources/formica/commit/a40642e9bdaeaae363584712e45f218809a5754b))
377
-
378
-
379
- ### Features
380
-
381
- * **catalog:** add SDK for catalog data ([fed91fd](https://github.com/identification-resources/formica/commit/fed91fd6f350c47bd067d221a4d0e2278a199dae))
382
- * **csv:** allow custom delims in output ([b523614](https://github.com/identification-resources/formica/commit/b523614171b0ff96347cb876a08106df413c4032))
383
- * **processor:** processor for DwC creation ([0e6f21d](https://github.com/identification-resources/formica/commit/0e6f21dfe00a2892348a4ab04fcaf3d6c8324a91))
384
- * **processor:** processor for DwC indexing ([279773b](https://github.com/identification-resources/formica/commit/279773b085676cf7cb3eb4d81496ad219ac85bce))
385
- * **resources:** add SDK for resource text files ([0acd36d](https://github.com/identification-resources/formica/commit/0acd36dde04cc1240cb8be97d48812b201b2685a))
386
- * **resources:** add support for cluster markings ([112315c](https://github.com/identification-resources/formica/commit/112315c7ebd7151c4e2cc77ab20e0cec3f579db6))
387
- * **resources:** add support for diffs as input ([9751627](https://github.com/identification-resources/formica/commit/9751627a916f47552661596048f1f0d44d89b102))
388
- * **resources:** add support for hybrids ([e49e96a](https://github.com/identification-resources/formica/commit/e49e96af9c3958bab2a3b0508b1fc8a018b80716))
389
- * **validate:** add catalog validation script ([4cdf785](https://github.com/identification-resources/formica/commit/4cdf785afb2c77320cd9b5b76483e3464c0f1cff))
390
- * **validate:** add script to validate resources ([246fb5d](https://github.com/identification-resources/formica/commit/246fb5dd8da03e736884850874cc51a11be9985c))
package/eslint.config.js DELETED
@@ -1,34 +0,0 @@
1
- const { defineConfig } = require('eslint/config')
2
-
3
- const tsParser = require('@typescript-eslint/parser')
4
- const typescriptEslint = require('@typescript-eslint/eslint-plugin')
5
- const js = require('@eslint/js')
6
-
7
- const { FlatCompat } = require('@eslint/eslintrc')
8
-
9
- const compat = new FlatCompat({
10
- baseDirectory: __dirname,
11
- recommendedConfig: js.configs.recommended,
12
- allConfig: js.configs.all
13
- })
14
-
15
- module.exports = defineConfig([{
16
- extends: compat.extends('eslint:recommended', 'plugin:@typescript-eslint/recommended'),
17
- languageOptions: {
18
- parser: tsParser,
19
- },
20
- plugins: {
21
- '@typescript-eslint': typescriptEslint,
22
- },
23
- rules: {
24
- indent: ['error', 4, {
25
- SwitchCase: 1,
26
- }],
27
- 'no-unused-vars': 'off',
28
- '@typescript-eslint/no-unused-vars': ['warn', {
29
- argsIgnorePattern: '^_',
30
- varsIgnorePattern: '^_',
31
- caughtErrorsIgnorePattern: '^_',
32
- }],
33
- },
34
- }])
package/lib/bin/SHEETS.js DELETED
File without changes
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- export {};
@@ -1,170 +0,0 @@
1
- #!/usr/bin/env node
2
- "use strict";
3
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
4
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
5
- return new (P || (P = Promise))(function (resolve, reject) {
6
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
7
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
8
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
9
- step((generator = generator.apply(thisArg, _arguments || [])).next());
10
- });
11
- };
12
- var __generator = (this && this.__generator) || function (thisArg, body) {
13
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
14
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
15
- function verb(n) { return function (v) { return step([n, v]); }; }
16
- function step(op) {
17
- if (f) throw new TypeError("Generator is already executing.");
18
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
19
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
20
- if (y = 0, t) op = [op[0] & 2, t.value];
21
- switch (op[0]) {
22
- case 0: case 1: t = op; break;
23
- case 4: _.label++; return { value: op[1], done: false };
24
- case 5: _.label++; y = op[1]; op = [0]; continue;
25
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
26
- default:
27
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
28
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
29
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
30
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
31
- if (t[2]) _.ops.pop();
32
- _.trys.pop(); continue;
33
- }
34
- op = body.call(thisArg, _);
35
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
36
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
37
- }
38
- };
39
- Object.defineProperty(exports, "__esModule", { value: true });
40
- var fs_1 = require("fs");
41
- var path = require("path");
42
- var util = require("util");
43
- var index_1 = require("../index");
44
- var LINKS = {
45
- author: { sheet: 'authors', cleanField: 'main_full_name' },
46
- publisher: { sheet: 'publishers', cleanField: 'full_name' },
47
- };
48
- function replaceLink(value, data, cleanField) {
49
- var _a;
50
- var entity = data.get(value);
51
- return (_a = entity.get(cleanField)) !== null && _a !== void 0 ? _a : value;
52
- }
53
- function save(sheet, path) {
54
- return fs_1.promises.writeFile(path, index_1.csv.formatCsv(sheet.toTable()));
55
- }
56
- function main() {
57
- return __awaiter(this, void 0, void 0, function () {
58
- var args, files, _i, _a, arg, filePath, file, sheet, _loop_1, _b, _c, _d, _e, field;
59
- return __generator(this, function (_f) {
60
- switch (_f.label) {
61
- case 0:
62
- args = util.parseArgs({ allowPositionals: true });
63
- files = {};
64
- _i = 0, _a = args.positionals;
65
- _f.label = 1;
66
- case 1:
67
- if (!(_i < _a.length)) return [3 /*break*/, 4];
68
- arg = _a[_i];
69
- filePath = path.resolve(arg);
70
- return [4 /*yield*/, fs_1.promises.readFile(filePath, 'utf8')];
71
- case 2:
72
- file = _f.sent();
73
- sheet = path.basename(filePath, '.csv');
74
- files[sheet] = {
75
- path: filePath,
76
- sheet: index_1.catalog.loadData(file, sheet),
77
- };
78
- _f.label = 3;
79
- case 3:
80
- _i++;
81
- return [3 /*break*/, 1];
82
- case 4:
83
- if (!files.catalog) {
84
- throw new Error('Catalog file must be provided');
85
- }
86
- _loop_1 = function (field) {
87
- var _g, sheet, cleanField, indexField, used, _h, _j, work, value, entities, _k, _l, entity, oldKey, newKey;
88
- return __generator(this, function (_m) {
89
- switch (_m.label) {
90
- case 0:
91
- _g = LINKS[field], sheet = _g.sheet, cleanField = _g.cleanField;
92
- indexField = index_1.catalog.getTypeInfo(sheet)[1];
93
- used = new Set();
94
- if (!files[sheet]) {
95
- return [2 /*return*/, "continue"];
96
- }
97
- // Update works
98
- for (_h = 0, _j = files.catalog.sheet.entities; _h < _j.length; _h++) {
99
- work = _j[_h];
100
- value = work.get(field);
101
- if (value === undefined) {
102
- continue;
103
- }
104
- else if (Array.isArray(value)) {
105
- work.fields[field] = value.map(function (value) {
106
- value = replaceLink(value, files[sheet].sheet, cleanField);
107
- used.add(value);
108
- return value;
109
- });
110
- }
111
- else {
112
- work.fields[field] = replaceLink(value, files[sheet].sheet, cleanField);
113
- used.add(work.fields[field]);
114
- }
115
- }
116
- entities = [];
117
- for (_k = 0, _l = files[sheet].sheet.entities; _k < _l.length; _k++) {
118
- entity = _l[_k];
119
- oldKey = entity.get(indexField);
120
- if (entity.has(cleanField)) {
121
- entity.fields[indexField] = entity.get(cleanField);
122
- delete entity.fields[cleanField];
123
- }
124
- newKey = entity.get(indexField);
125
- if (used.has(newKey) && (newKey === oldKey || !files[sheet].sheet.index[newKey])) {
126
- entities.push(entity);
127
- }
128
- }
129
- // Save new file
130
- return [4 /*yield*/, save(new index_1.catalog.Entities(entities, indexField), files[sheet].path)];
131
- case 1:
132
- // Save new file
133
- _m.sent();
134
- return [2 /*return*/];
135
- }
136
- });
137
- };
138
- _b = LINKS;
139
- _c = [];
140
- for (_d in _b)
141
- _c.push(_d);
142
- _e = 0;
143
- _f.label = 5;
144
- case 5:
145
- if (!(_e < _c.length)) return [3 /*break*/, 8];
146
- _d = _c[_e];
147
- if (!(_d in _b)) return [3 /*break*/, 7];
148
- field = _d;
149
- return [5 /*yield**/, _loop_1(field)];
150
- case 6:
151
- _f.sent();
152
- _f.label = 7;
153
- case 7:
154
- _e++;
155
- return [3 /*break*/, 5];
156
- case 8:
157
- // Save catalog
158
- return [4 /*yield*/, save(files.catalog.sheet, files.catalog.path)];
159
- case 9:
160
- // Save catalog
161
- _f.sent();
162
- return [2 /*return*/];
163
- }
164
- });
165
- });
166
- }
167
- main().catch(function (error) {
168
- console.error(error);
169
- process.exit(1);
170
- });