@larsgw/formica 0.7.2 → 0.7.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.
- package/CHANGELOG.md +9 -0
- package/lib/catalog/tables/author.js +5 -3
- package/lib/catalog/tables/index.js +4 -4
- package/lib/catalog/tables/place.js +3 -1
- package/lib/catalog/tables/publisher.js +5 -3
- package/lib/catalog/tables/taxon.js +3 -1
- package/lib/catalog/tables/work.js +5 -5
- package/lib/catalog/value.d.ts +5 -1
- package/lib/catalog/value.js +5 -1
- package/package.json +1 -1
- package/src/catalog/tables/author.ts +5 -3
- package/src/catalog/tables/index.ts +4 -4
- package/src/catalog/tables/place.ts +3 -1
- package/src/catalog/tables/publisher.ts +5 -3
- package/src/catalog/tables/taxon.ts +3 -1
- package/src/catalog/tables/work.ts +5 -5
- package/src/catalog/value.ts +5 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
## [0.7.3](https://github.com/identification-resources/formica/compare/v0.7.2...v0.7.3) (2025-04-17)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* **catalog:** update validation for identifiers ([156a703](https://github.com/identification-resources/formica/commit/156a7036ab09c411d091bc9d0f628831a30ba3f5))
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
1
10
|
## [0.7.2](https://github.com/identification-resources/formica/compare/v0.7.1...v0.7.2) (2025-04-02)
|
|
2
11
|
|
|
3
12
|
|
|
@@ -22,10 +22,12 @@ var Author = /** @class */ (function (_super) {
|
|
|
22
22
|
__extends(Author, _super);
|
|
23
23
|
function Author(values) {
|
|
24
24
|
return _super.call(this, values, {
|
|
25
|
-
name: { required: true, multiple:
|
|
25
|
+
name: { required: true, multiple: true },
|
|
26
|
+
id: { required: true, multiple: false, format: value_1.FORMATS.AUTHOR_ID },
|
|
26
27
|
qid: { required: false, multiple: false, format: value_1.FORMATS.QID },
|
|
27
|
-
|
|
28
|
-
full_names: { required: false, multiple: true }
|
|
28
|
+
display_name: { required: false, multiple: false },
|
|
29
|
+
full_names: { required: false, multiple: true },
|
|
30
|
+
duplicate_of: { required: false, multiple: false, format: value_1.FORMATS.AUTHOR_ID }
|
|
29
31
|
}) || this;
|
|
30
32
|
}
|
|
31
33
|
return Author;
|
|
@@ -7,9 +7,9 @@ var place_1 = require("./place");
|
|
|
7
7
|
var taxon_1 = require("./taxon");
|
|
8
8
|
var work_1 = require("./work");
|
|
9
9
|
exports.TYPE_INFO = {
|
|
10
|
-
authors: [author_1.Author, '
|
|
11
|
-
publishers: [publisher_1.Publisher, '
|
|
12
|
-
places: [place_1.Place, '
|
|
13
|
-
taxa: [taxon_1.Taxon, '
|
|
10
|
+
authors: [author_1.Author, 'id'],
|
|
11
|
+
publishers: [publisher_1.Publisher, 'id'],
|
|
12
|
+
places: [place_1.Place, 'id'],
|
|
13
|
+
taxa: [taxon_1.Taxon, 'id'],
|
|
14
14
|
catalog: [work_1.Work, 'id']
|
|
15
15
|
};
|
|
@@ -23,8 +23,10 @@ var Place = /** @class */ (function (_super) {
|
|
|
23
23
|
function Place(values) {
|
|
24
24
|
return _super.call(this, values, {
|
|
25
25
|
name: { required: true, multiple: false },
|
|
26
|
+
id: { required: true, multiple: false, format: value_1.FORMATS.PLACE_ID },
|
|
26
27
|
qid: { required: false, multiple: false, format: value_1.FORMATS.QID },
|
|
27
|
-
display_name: { required: false, multiple: false }
|
|
28
|
+
display_name: { required: false, multiple: false },
|
|
29
|
+
duplicate_of: { required: false, multiple: false, format: value_1.FORMATS.PLACE_ID }
|
|
28
30
|
}) || this;
|
|
29
31
|
}
|
|
30
32
|
return Place;
|
|
@@ -22,10 +22,12 @@ var Publisher = /** @class */ (function (_super) {
|
|
|
22
22
|
__extends(Publisher, _super);
|
|
23
23
|
function Publisher(values) {
|
|
24
24
|
return _super.call(this, values, {
|
|
25
|
-
name: { required: true, multiple:
|
|
25
|
+
name: { required: true, multiple: true },
|
|
26
|
+
id: { required: true, multiple: false, format: value_1.FORMATS.PUBLISHER_ID },
|
|
26
27
|
qid: { required: false, multiple: false, format: value_1.FORMATS.QID },
|
|
27
|
-
|
|
28
|
-
|
|
28
|
+
display_name: { required: false, multiple: false },
|
|
29
|
+
full_names: { required: false, multiple: true },
|
|
30
|
+
duplicate_of: { required: false, multiple: false, format: value_1.FORMATS.PUBLISHER_ID }
|
|
29
31
|
}) || this;
|
|
30
32
|
}
|
|
31
33
|
return Publisher;
|
|
@@ -23,11 +23,13 @@ var Taxon = /** @class */ (function (_super) {
|
|
|
23
23
|
function Taxon(values) {
|
|
24
24
|
return _super.call(this, values, {
|
|
25
25
|
name: { required: true, multiple: false },
|
|
26
|
+
id: { required: true, multiple: false, format: value_1.FORMATS.TAXON_ID },
|
|
26
27
|
qid: { required: false, multiple: false, format: value_1.FORMATS.QID },
|
|
27
28
|
rank: { required: false, multiple: false },
|
|
28
29
|
gbif: { required: false, multiple: false, format: value_1.FORMATS.INTEGER },
|
|
29
30
|
children_gbif: { required: false, multiple: true, format: value_1.FORMATS.INTEGER },
|
|
30
|
-
ancestors_gbif: { required: false, multiple: true, format: value_1.FORMATS.INTEGER }
|
|
31
|
+
ancestors_gbif: { required: false, multiple: true, format: value_1.FORMATS.INTEGER },
|
|
32
|
+
duplicate_of: { required: false, multiple: false, format: value_1.FORMATS.TAXON_ID }
|
|
31
33
|
}) || this;
|
|
32
34
|
}
|
|
33
35
|
return Taxon;
|
|
@@ -22,7 +22,7 @@ var Work = /** @class */ (function (_super) {
|
|
|
22
22
|
__extends(Work, _super);
|
|
23
23
|
function Work(values) {
|
|
24
24
|
return _super.call(this, values, {
|
|
25
|
-
id: { required: true, multiple: false, format: value_1.FORMATS.
|
|
25
|
+
id: { required: true, multiple: false, format: value_1.FORMATS.WORK_ID },
|
|
26
26
|
title: { required: true, multiple: value_1.CHECK.MULTILANG },
|
|
27
27
|
author: { required: false, multiple: true },
|
|
28
28
|
url: { required: false, multiple: true, format: value_1.FORMATS.URL },
|
|
@@ -49,10 +49,10 @@ var Work = /** @class */ (function (_super) {
|
|
|
49
49
|
region: { required: true, multiple: true },
|
|
50
50
|
complete: { required: false, multiple: false, format: value_1.FORMATS.COMPLETE },
|
|
51
51
|
target_taxa: { required: false, multiple: true },
|
|
52
|
-
listed_in: { required: false, multiple: true, format: value_1.FORMATS.
|
|
53
|
-
part_of: { required: false, multiple: true, format: value_1.FORMATS.
|
|
54
|
-
version_of: { required: false, multiple: true, format: value_1.FORMATS.
|
|
55
|
-
duplicate_of: { required: false, multiple: false, format: value_1.FORMATS.
|
|
52
|
+
listed_in: { required: false, multiple: true, format: value_1.FORMATS.WORK_ID },
|
|
53
|
+
part_of: { required: false, multiple: true, format: value_1.FORMATS.WORK_ID },
|
|
54
|
+
version_of: { required: false, multiple: true, format: value_1.FORMATS.WORK_ID },
|
|
55
|
+
duplicate_of: { required: false, multiple: false, format: value_1.FORMATS.WORK_ID }
|
|
56
56
|
}) || this;
|
|
57
57
|
}
|
|
58
58
|
Work.prototype.deriveFields = function () {
|
package/lib/catalog/value.d.ts
CHANGED
|
@@ -2,7 +2,11 @@ export declare const FORMATS: {
|
|
|
2
2
|
ENTRY_TYPE: string[];
|
|
3
3
|
KEY_TYPE: string[];
|
|
4
4
|
COMPLETE: string[];
|
|
5
|
-
|
|
5
|
+
WORK_ID: RegExp;
|
|
6
|
+
AUTHOR_ID: RegExp;
|
|
7
|
+
PLACE_ID: RegExp;
|
|
8
|
+
PUBLISHER_ID: RegExp;
|
|
9
|
+
TAXON_ID: RegExp;
|
|
6
10
|
EDTF_0: RegExp;
|
|
7
11
|
ISSN_L: RegExp;
|
|
8
12
|
ISBN: RegExp;
|
package/lib/catalog/value.js
CHANGED
|
@@ -10,7 +10,11 @@ exports.FORMATS = {
|
|
|
10
10
|
ENTRY_TYPE: ['print', 'online', 'cd', 'application'],
|
|
11
11
|
KEY_TYPE: ['key', 'matrix', 'reference', 'gallery', 'checklist', 'supplement', 'collection', 'algorithm'],
|
|
12
12
|
COMPLETE: ['TRUE', 'FALSE'],
|
|
13
|
-
|
|
13
|
+
WORK_ID: /^B[1-9]\d*$/,
|
|
14
|
+
AUTHOR_ID: /^A[1-9]\d*$/,
|
|
15
|
+
PLACE_ID: /^G[1-9]\d*$/,
|
|
16
|
+
PUBLISHER_ID: /^P[1-9]\d*$/,
|
|
17
|
+
TAXON_ID: /^T[1-9]\d*$/,
|
|
14
18
|
EDTF_0: /^(\d{4}(-\d{2}(-\d{2}(T\d{2}:\d{2}:\d{2}(Z|[-+]\d{2}(:\d{2})?))?)?)?|\d{4}(-\d{2}(-\d{2})?)?\/(\d{4}(-\d{2}(-\d{2})?)?|\.\.))$/,
|
|
15
19
|
ISSN_L: /^[0-9]{4}-[0-9]{3}[0-9X]$/,
|
|
16
20
|
ISBN: /^(\d{13}|\d{9}[0-9X])$/,
|
package/package.json
CHANGED
|
@@ -4,10 +4,12 @@ import { Entity } from '../entity'
|
|
|
4
4
|
export class Author extends Entity {
|
|
5
5
|
constructor (values: Record<string, string>) {
|
|
6
6
|
super(values, {
|
|
7
|
-
name: { required: true, multiple:
|
|
7
|
+
name: { required: true, multiple: true },
|
|
8
|
+
id: { required: true, multiple: false, format: FORMATS.AUTHOR_ID },
|
|
8
9
|
qid: { required: false, multiple: false, format: FORMATS.QID },
|
|
9
|
-
|
|
10
|
-
full_names: { required: false, multiple: true }
|
|
10
|
+
display_name: { required: false, multiple: false },
|
|
11
|
+
full_names: { required: false, multiple: true },
|
|
12
|
+
duplicate_of: { required: false, multiple: false, format: FORMATS.AUTHOR_ID }
|
|
11
13
|
})
|
|
12
14
|
}
|
|
13
15
|
}
|
|
@@ -6,9 +6,9 @@ import { Taxon } from './taxon'
|
|
|
6
6
|
import { Work } from './work'
|
|
7
7
|
|
|
8
8
|
export const TYPE_INFO: Record<string, [typeof Entity, string]> = {
|
|
9
|
-
authors: [Author, '
|
|
10
|
-
publishers: [Publisher, '
|
|
11
|
-
places: [Place, '
|
|
12
|
-
taxa: [Taxon, '
|
|
9
|
+
authors: [Author, 'id'],
|
|
10
|
+
publishers: [Publisher, 'id'],
|
|
11
|
+
places: [Place, 'id'],
|
|
12
|
+
taxa: [Taxon, 'id'],
|
|
13
13
|
catalog: [Work, 'id']
|
|
14
14
|
}
|
|
@@ -5,8 +5,10 @@ export class Place extends Entity {
|
|
|
5
5
|
constructor (values: Record<string, string>) {
|
|
6
6
|
super(values, {
|
|
7
7
|
name: { required: true, multiple: false },
|
|
8
|
+
id: { required: true, multiple: false, format: FORMATS.PLACE_ID },
|
|
8
9
|
qid: { required: false, multiple: false, format: FORMATS.QID },
|
|
9
|
-
display_name: { required: false, multiple: false }
|
|
10
|
+
display_name: { required: false, multiple: false },
|
|
11
|
+
duplicate_of: { required: false, multiple: false, format: FORMATS.PLACE_ID }
|
|
10
12
|
})
|
|
11
13
|
}
|
|
12
14
|
}
|
|
@@ -4,10 +4,12 @@ import { Entity } from '../entity'
|
|
|
4
4
|
export class Publisher extends Entity {
|
|
5
5
|
constructor (values: Record<string, string>) {
|
|
6
6
|
super(values, {
|
|
7
|
-
name: { required: true, multiple:
|
|
7
|
+
name: { required: true, multiple: true },
|
|
8
|
+
id: { required: true, multiple: false, format: FORMATS.PUBLISHER_ID },
|
|
8
9
|
qid: { required: false, multiple: false, format: FORMATS.QID },
|
|
9
|
-
|
|
10
|
-
|
|
10
|
+
display_name: { required: false, multiple: false },
|
|
11
|
+
full_names: { required: false, multiple: true },
|
|
12
|
+
duplicate_of: { required: false, multiple: false, format: FORMATS.PUBLISHER_ID }
|
|
11
13
|
})
|
|
12
14
|
}
|
|
13
15
|
}
|
|
@@ -5,11 +5,13 @@ export class Taxon extends Entity {
|
|
|
5
5
|
constructor (values: Record<string, string>) {
|
|
6
6
|
super(values, {
|
|
7
7
|
name: { required: true, multiple: false },
|
|
8
|
+
id: { required: true, multiple: false, format: FORMATS.TAXON_ID },
|
|
8
9
|
qid: { required: false, multiple: false, format: FORMATS.QID },
|
|
9
10
|
rank: { required: false, multiple: false },
|
|
10
11
|
gbif: { required: false, multiple: false, format: FORMATS.INTEGER },
|
|
11
12
|
children_gbif: { required: false, multiple: true, format: FORMATS.INTEGER },
|
|
12
|
-
ancestors_gbif: { required: false, multiple: true, format: FORMATS.INTEGER }
|
|
13
|
+
ancestors_gbif: { required: false, multiple: true, format: FORMATS.INTEGER },
|
|
14
|
+
duplicate_of: { required: false, multiple: false, format: FORMATS.TAXON_ID }
|
|
13
15
|
})
|
|
14
16
|
}
|
|
15
17
|
}
|
|
@@ -4,7 +4,7 @@ import { Entity } from '../entity'
|
|
|
4
4
|
export class Work extends Entity {
|
|
5
5
|
constructor (values: Record<string, string>) {
|
|
6
6
|
super(values, {
|
|
7
|
-
id: { required: true, multiple: false, format: FORMATS.
|
|
7
|
+
id: { required: true, multiple: false, format: FORMATS.WORK_ID },
|
|
8
8
|
title: { required: true, multiple: CHECK.MULTILANG },
|
|
9
9
|
author: { required: false, multiple: true },
|
|
10
10
|
url: { required: false, multiple: true, format: FORMATS.URL },
|
|
@@ -31,10 +31,10 @@ export class Work extends Entity {
|
|
|
31
31
|
region: { required: true, multiple: true },
|
|
32
32
|
complete: { required: false, multiple: false, format: FORMATS.COMPLETE },
|
|
33
33
|
target_taxa: { required: false, multiple: true },
|
|
34
|
-
listed_in: { required: false, multiple: true, format: FORMATS.
|
|
35
|
-
part_of: { required: false, multiple: true, format: FORMATS.
|
|
36
|
-
version_of: { required: false, multiple: true, format: FORMATS.
|
|
37
|
-
duplicate_of: { required: false, multiple: false, format: FORMATS.
|
|
34
|
+
listed_in: { required: false, multiple: true, format: FORMATS.WORK_ID },
|
|
35
|
+
part_of: { required: false, multiple: true, format: FORMATS.WORK_ID },
|
|
36
|
+
version_of: { required: false, multiple: true, format: FORMATS.WORK_ID },
|
|
37
|
+
duplicate_of: { required: false, multiple: false, format: FORMATS.WORK_ID }
|
|
38
38
|
})
|
|
39
39
|
}
|
|
40
40
|
|
package/src/catalog/value.ts
CHANGED
|
@@ -10,7 +10,11 @@ export const FORMATS = {
|
|
|
10
10
|
KEY_TYPE: ['key', 'matrix', 'reference', 'gallery', 'checklist', 'supplement', 'collection', 'algorithm'],
|
|
11
11
|
COMPLETE: ['TRUE', 'FALSE'],
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
WORK_ID: /^B[1-9]\d*$/,
|
|
14
|
+
AUTHOR_ID: /^A[1-9]\d*$/,
|
|
15
|
+
PLACE_ID: /^G[1-9]\d*$/,
|
|
16
|
+
PUBLISHER_ID: /^P[1-9]\d*$/,
|
|
17
|
+
TAXON_ID: /^T[1-9]\d*$/,
|
|
14
18
|
EDTF_0: /^(\d{4}(-\d{2}(-\d{2}(T\d{2}:\d{2}:\d{2}(Z|[-+]\d{2}(:\d{2})?))?)?)?|\d{4}(-\d{2}(-\d{2})?)?\/(\d{4}(-\d{2}(-\d{2})?)?|\.\.))$/,
|
|
15
19
|
ISSN_L: /^[0-9]{4}-[0-9]{3}[0-9X]$/,
|
|
16
20
|
ISBN: /^(\d{13}|\d{9}[0-9X])$/,
|