@marteye/studiojs 1.1.42 → 1.1.44
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/dist/index.d.ts +3 -2
- package/dist/index.esm.js +8 -5
- package/dist/index.js +8 -5
- package/dist/resources/customers.d.ts +1 -1
- package/dist/utils/cattlePassport.d.ts +2 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1495,7 +1495,7 @@ interface CreateCustomerPayload {
|
|
|
1495
1495
|
farmName?: string;
|
|
1496
1496
|
herdNumber?: string;
|
|
1497
1497
|
flockNumber?: string;
|
|
1498
|
-
address
|
|
1498
|
+
address?: {
|
|
1499
1499
|
company?: string;
|
|
1500
1500
|
firstName?: string;
|
|
1501
1501
|
lastName?: string;
|
|
@@ -2361,7 +2361,8 @@ declare class EarTag {
|
|
|
2361
2361
|
* FR72341 6850203052020FHF 01 ← French import, 10-digit national ID
|
|
2362
2362
|
*/
|
|
2363
2363
|
declare class CattlePassport {
|
|
2364
|
-
static
|
|
2364
|
+
static BARCODE_MIN_LENGTH: number;
|
|
2365
|
+
static BARCODE_MAX_LENGTH: number;
|
|
2365
2366
|
private _raw;
|
|
2366
2367
|
private _earTag;
|
|
2367
2368
|
private _dateOfBirth;
|
package/dist/index.esm.js
CHANGED
|
@@ -5939,14 +5939,16 @@ class CattlePassport {
|
|
|
5939
5939
|
static parse(code) {
|
|
5940
5940
|
let raw = code;
|
|
5941
5941
|
let trimmed = code.trim();
|
|
5942
|
-
if (trimmed.length
|
|
5942
|
+
if (trimmed.length < CattlePassport.BARCODE_MIN_LENGTH ||
|
|
5943
|
+
trimmed.length > CattlePassport.BARCODE_MAX_LENGTH)
|
|
5943
5944
|
return null;
|
|
5944
|
-
// Extract fixed-width fields
|
|
5945
|
+
// Extract fixed-width fields (eartag, dob, sex are fixed from the front;
|
|
5946
|
+
// version is always the last 2 chars; breed fills the gap between sex and version)
|
|
5945
5947
|
let earTagField = trimmed.slice(0, 14);
|
|
5946
5948
|
let dobField = trimmed.slice(14, 22);
|
|
5947
5949
|
let sexChar = trimmed.charAt(22);
|
|
5948
|
-
let breedField = trimmed.slice(23,
|
|
5949
|
-
let versionField = trimmed.slice(
|
|
5950
|
+
let breedField = trimmed.slice(23, -2);
|
|
5951
|
+
let versionField = trimmed.slice(-2);
|
|
5950
5952
|
// Country code: 2 alpha chars
|
|
5951
5953
|
let countryCode = earTagField.slice(0, 2);
|
|
5952
5954
|
if (!/^[A-Z]{2}$/.test(countryCode))
|
|
@@ -6024,7 +6026,8 @@ class CattlePassport {
|
|
|
6024
6026
|
return `${this.formattedEarTag} | ${this.formattedDateOfBirth} | ${this._sex} | ${this._breed} | v${this._passportVersion}`;
|
|
6025
6027
|
}
|
|
6026
6028
|
}
|
|
6027
|
-
CattlePassport.
|
|
6029
|
+
CattlePassport.BARCODE_MIN_LENGTH = 26; // 14 eartag + 8 dob + 1 sex + 1 breed + 2 version
|
|
6030
|
+
CattlePassport.BARCODE_MAX_LENGTH = 30;
|
|
6028
6031
|
|
|
6029
6032
|
/**
|
|
6030
6033
|
* Extract the smallest lot number for sorting purposes.
|
package/dist/index.js
CHANGED
|
@@ -5943,14 +5943,16 @@ class CattlePassport {
|
|
|
5943
5943
|
static parse(code) {
|
|
5944
5944
|
let raw = code;
|
|
5945
5945
|
let trimmed = code.trim();
|
|
5946
|
-
if (trimmed.length
|
|
5946
|
+
if (trimmed.length < CattlePassport.BARCODE_MIN_LENGTH ||
|
|
5947
|
+
trimmed.length > CattlePassport.BARCODE_MAX_LENGTH)
|
|
5947
5948
|
return null;
|
|
5948
|
-
// Extract fixed-width fields
|
|
5949
|
+
// Extract fixed-width fields (eartag, dob, sex are fixed from the front;
|
|
5950
|
+
// version is always the last 2 chars; breed fills the gap between sex and version)
|
|
5949
5951
|
let earTagField = trimmed.slice(0, 14);
|
|
5950
5952
|
let dobField = trimmed.slice(14, 22);
|
|
5951
5953
|
let sexChar = trimmed.charAt(22);
|
|
5952
|
-
let breedField = trimmed.slice(23,
|
|
5953
|
-
let versionField = trimmed.slice(
|
|
5954
|
+
let breedField = trimmed.slice(23, -2);
|
|
5955
|
+
let versionField = trimmed.slice(-2);
|
|
5954
5956
|
// Country code: 2 alpha chars
|
|
5955
5957
|
let countryCode = earTagField.slice(0, 2);
|
|
5956
5958
|
if (!/^[A-Z]{2}$/.test(countryCode))
|
|
@@ -6028,7 +6030,8 @@ class CattlePassport {
|
|
|
6028
6030
|
return `${this.formattedEarTag} | ${this.formattedDateOfBirth} | ${this._sex} | ${this._breed} | v${this._passportVersion}`;
|
|
6029
6031
|
}
|
|
6030
6032
|
}
|
|
6031
|
-
CattlePassport.
|
|
6033
|
+
CattlePassport.BARCODE_MIN_LENGTH = 26; // 14 eartag + 8 dob + 1 sex + 1 breed + 2 version
|
|
6034
|
+
CattlePassport.BARCODE_MAX_LENGTH = 30;
|
|
6032
6035
|
|
|
6033
6036
|
/**
|
|
6034
6037
|
* Extract the smallest lot number for sorting purposes.
|
|
@@ -18,7 +18,8 @@
|
|
|
18
18
|
* FR72341 6850203052020FHF 01 ← French import, 10-digit national ID
|
|
19
19
|
*/
|
|
20
20
|
export default class CattlePassport {
|
|
21
|
-
static
|
|
21
|
+
static BARCODE_MIN_LENGTH: number;
|
|
22
|
+
static BARCODE_MAX_LENGTH: number;
|
|
22
23
|
private _raw;
|
|
23
24
|
private _earTag;
|
|
24
25
|
private _dateOfBirth;
|