@aidc-toolkit/gs1 1.0.25-beta → 1.0.27-beta
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/abstract-identifier-creator.d.ts +75 -0
- package/dist/abstract-identifier-creator.d.ts.map +1 -0
- package/dist/abstract-identifier-creator.js +79 -0
- package/dist/abstract-identifier-creator.js.map +1 -0
- package/dist/abstract-non-gtin-numeric-identifier-creator.d.ts +42 -0
- package/dist/abstract-non-gtin-numeric-identifier-creator.d.ts.map +1 -0
- package/dist/abstract-non-gtin-numeric-identifier-creator.js +40 -0
- package/dist/abstract-non-gtin-numeric-identifier-creator.js.map +1 -0
- package/dist/abstract-numeric-identifier-creator.d.ts +43 -0
- package/dist/abstract-numeric-identifier-creator.d.ts.map +1 -0
- package/dist/abstract-numeric-identifier-creator.js +160 -0
- package/dist/abstract-numeric-identifier-creator.js.map +1 -0
- package/dist/character-set.d.ts +27 -0
- package/dist/character-set.d.ts.map +1 -0
- package/dist/character-set.js +50 -0
- package/dist/character-set.js.map +1 -0
- package/dist/check.d.ts +81 -0
- package/dist/check.d.ts.map +1 -0
- package/dist/check.js +218 -0
- package/dist/check.js.map +1 -0
- package/dist/content-character-set-creators.d.ts +4 -0
- package/dist/content-character-set-creators.d.ts.map +1 -0
- package/dist/content-character-set-creators.js +9 -0
- package/dist/content-character-set-creators.js.map +1 -0
- package/dist/content-character-set.d.ts +26 -0
- package/dist/content-character-set.d.ts.map +1 -0
- package/dist/content-character-set.js +18 -0
- package/dist/content-character-set.js.map +1 -0
- package/dist/gtin-creator.d.ts +64 -0
- package/dist/gtin-creator.d.ts.map +1 -0
- package/dist/gtin-creator.js +156 -0
- package/dist/gtin-creator.js.map +1 -0
- package/dist/gtin-descriptor.d.ts +22 -0
- package/dist/gtin-descriptor.d.ts.map +1 -0
- package/dist/gtin-descriptor.js +2 -0
- package/dist/gtin-descriptor.js.map +1 -0
- package/dist/gtin-length.d.ts +64 -0
- package/dist/gtin-length.d.ts.map +1 -0
- package/dist/gtin-length.js +36 -0
- package/dist/gtin-length.js.map +1 -0
- package/dist/gtin-type.d.ts +26 -0
- package/dist/gtin-type.d.ts.map +1 -0
- package/dist/gtin-type.js +7 -0
- package/dist/gtin-type.js.map +1 -0
- package/dist/gtin-validator.d.ts +177 -0
- package/dist/gtin-validator.d.ts.map +1 -0
- package/dist/gtin-validator.js +443 -0
- package/dist/gtin-validator.js.map +1 -0
- package/dist/identifier-creator.d.ts +31 -0
- package/dist/identifier-creator.d.ts.map +1 -0
- package/dist/identifier-creator.js +2 -0
- package/dist/identifier-creator.js.map +1 -0
- package/dist/identifier-creators.d.ts +90 -0
- package/dist/identifier-creators.d.ts.map +1 -0
- package/dist/identifier-creators.js +74 -0
- package/dist/identifier-creators.js.map +1 -0
- package/dist/identifier-descriptor.d.ts +27 -0
- package/dist/identifier-descriptor.d.ts.map +1 -0
- package/dist/identifier-descriptor.js +2 -0
- package/dist/identifier-descriptor.js.map +1 -0
- package/dist/identifier-descriptors.d.ts +106 -0
- package/dist/identifier-descriptors.d.ts.map +1 -0
- package/dist/identifier-descriptors.js +262 -0
- package/dist/identifier-descriptors.js.map +1 -0
- package/dist/identifier-extension.d.ts +82 -0
- package/dist/identifier-extension.d.ts.map +1 -0
- package/dist/identifier-extension.js +79 -0
- package/dist/identifier-extension.js.map +1 -0
- package/dist/identifier-type.d.ts +62 -0
- package/dist/identifier-type.d.ts.map +1 -0
- package/dist/identifier-type.js +54 -0
- package/dist/identifier-type.js.map +1 -0
- package/dist/identifier-validator.d.ts +88 -0
- package/dist/identifier-validator.d.ts.map +1 -0
- package/dist/identifier-validator.js +110 -0
- package/dist/identifier-validator.js.map +1 -0
- package/dist/identifier-validators.d.ts +106 -0
- package/dist/identifier-validators.d.ts.map +1 -0
- package/dist/identifier-validators.js +153 -0
- package/dist/identifier-validators.js.map +1 -0
- package/dist/index.d.ts +58 -1949
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +30 -4727
- package/dist/index.js.map +1 -1
- package/dist/leader-type.d.ts +26 -0
- package/dist/leader-type.d.ts.map +1 -0
- package/dist/leader-type.js +18 -0
- package/dist/leader-type.js.map +1 -0
- package/dist/locale/en/locale-resources.d.ts +42 -0
- package/dist/locale/en/locale-resources.d.ts.map +1 -0
- package/dist/locale/en/locale-resources.js +41 -0
- package/dist/locale/en/locale-resources.js.map +1 -0
- package/dist/locale/fr/locale-resources.d.ts +42 -0
- package/dist/locale/fr/locale-resources.d.ts.map +1 -0
- package/dist/locale/fr/locale-resources.js +41 -0
- package/dist/locale/fr/locale-resources.js.map +1 -0
- package/dist/locale/i18n.d.ts +27 -0
- package/dist/locale/i18n.d.ts.map +1 -0
- package/dist/locale/i18n.js +36 -0
- package/dist/locale/i18n.js.map +1 -0
- package/dist/non-gtin-numeric-identifier-creator.d.ts +12 -0
- package/dist/non-gtin-numeric-identifier-creator.d.ts.map +1 -0
- package/dist/non-gtin-numeric-identifier-creator.js +2 -0
- package/dist/non-gtin-numeric-identifier-creator.js.map +1 -0
- package/dist/non-gtin-numeric-identifier-descriptor.d.ts +22 -0
- package/dist/non-gtin-numeric-identifier-descriptor.d.ts.map +1 -0
- package/dist/non-gtin-numeric-identifier-descriptor.js +2 -0
- package/dist/non-gtin-numeric-identifier-descriptor.js.map +1 -0
- package/dist/non-gtin-numeric-identifier-type.d.ts +26 -0
- package/dist/non-gtin-numeric-identifier-type.d.ts.map +1 -0
- package/dist/non-gtin-numeric-identifier-type.js +8 -0
- package/dist/non-gtin-numeric-identifier-type.js.map +1 -0
- package/dist/non-gtin-numeric-identifier-validator.d.ts +12 -0
- package/dist/non-gtin-numeric-identifier-validator.d.ts.map +1 -0
- package/dist/non-gtin-numeric-identifier-validator.js +10 -0
- package/dist/non-gtin-numeric-identifier-validator.js.map +1 -0
- package/dist/non-numeric-identifier-creator.d.ts +40 -0
- package/dist/non-numeric-identifier-creator.d.ts.map +1 -0
- package/dist/non-numeric-identifier-creator.js +82 -0
- package/dist/non-numeric-identifier-creator.js.map +1 -0
- package/dist/non-numeric-identifier-descriptor.d.ts +26 -0
- package/dist/non-numeric-identifier-descriptor.d.ts.map +1 -0
- package/dist/non-numeric-identifier-descriptor.js +2 -0
- package/dist/non-numeric-identifier-descriptor.js.map +1 -0
- package/dist/non-numeric-identifier-type.d.ts +26 -0
- package/dist/non-numeric-identifier-type.d.ts.map +1 -0
- package/dist/non-numeric-identifier-type.js +8 -0
- package/dist/non-numeric-identifier-type.js.map +1 -0
- package/dist/non-numeric-identifier-validator.d.ts +41 -0
- package/dist/non-numeric-identifier-validator.d.ts.map +1 -0
- package/dist/non-numeric-identifier-validator.js +69 -0
- package/dist/non-numeric-identifier-validator.js.map +1 -0
- package/dist/non-serializable-numeric-identifier-creator.d.ts +10 -0
- package/dist/non-serializable-numeric-identifier-creator.d.ts.map +1 -0
- package/dist/non-serializable-numeric-identifier-creator.js +8 -0
- package/dist/non-serializable-numeric-identifier-creator.js.map +1 -0
- package/dist/non-serializable-numeric-identifier-descriptor.d.ts +7 -0
- package/dist/non-serializable-numeric-identifier-descriptor.d.ts.map +1 -0
- package/dist/non-serializable-numeric-identifier-descriptor.js +2 -0
- package/dist/non-serializable-numeric-identifier-descriptor.js.map +1 -0
- package/dist/non-serializable-numeric-identifier-type.d.ts +26 -0
- package/dist/non-serializable-numeric-identifier-type.d.ts.map +1 -0
- package/dist/non-serializable-numeric-identifier-type.js +7 -0
- package/dist/non-serializable-numeric-identifier-type.js.map +1 -0
- package/dist/non-serializable-numeric-identifier-validator.d.ts +16 -0
- package/dist/non-serializable-numeric-identifier-validator.d.ts.map +1 -0
- package/dist/non-serializable-numeric-identifier-validator.js +17 -0
- package/dist/non-serializable-numeric-identifier-validator.js.map +1 -0
- package/dist/numeric-identifier-creator.d.ts +53 -0
- package/dist/numeric-identifier-creator.d.ts.map +1 -0
- package/dist/numeric-identifier-creator.js +2 -0
- package/dist/numeric-identifier-creator.js.map +1 -0
- package/dist/numeric-identifier-descriptor.d.ts +22 -0
- package/dist/numeric-identifier-descriptor.d.ts.map +1 -0
- package/dist/numeric-identifier-descriptor.js +2 -0
- package/dist/numeric-identifier-descriptor.js.map +1 -0
- package/dist/numeric-identifier-type.d.ts +26 -0
- package/dist/numeric-identifier-type.d.ts.map +1 -0
- package/dist/numeric-identifier-type.js +7 -0
- package/dist/numeric-identifier-type.js.map +1 -0
- package/dist/numeric-identifier-validator.d.ts +38 -0
- package/dist/numeric-identifier-validator.d.ts.map +1 -0
- package/dist/numeric-identifier-validator.js +61 -0
- package/dist/numeric-identifier-validator.js.map +1 -0
- package/dist/prefix-manager.d.ts +136 -0
- package/dist/prefix-manager.d.ts.map +1 -0
- package/dist/prefix-manager.js +339 -0
- package/dist/prefix-manager.js.map +1 -0
- package/dist/prefix-provider.d.ts +27 -0
- package/dist/prefix-provider.d.ts.map +1 -0
- package/dist/prefix-provider.js +2 -0
- package/dist/prefix-provider.js.map +1 -0
- package/dist/prefix-type.d.ts +26 -0
- package/dist/prefix-type.d.ts.map +1 -0
- package/dist/prefix-type.js +18 -0
- package/dist/prefix-type.js.map +1 -0
- package/dist/prefix-validator.d.ts +70 -0
- package/dist/prefix-validator.d.ts.map +1 -0
- package/dist/prefix-validator.js +208 -0
- package/dist/prefix-validator.js.map +1 -0
- package/dist/serializable-numeric-identifier-creator.d.ts +48 -0
- package/dist/serializable-numeric-identifier-creator.d.ts.map +1 -0
- package/dist/serializable-numeric-identifier-creator.js +93 -0
- package/dist/serializable-numeric-identifier-creator.js.map +1 -0
- package/dist/serializable-numeric-identifier-descriptor.d.ts +26 -0
- package/dist/serializable-numeric-identifier-descriptor.d.ts.map +1 -0
- package/dist/serializable-numeric-identifier-descriptor.js +2 -0
- package/dist/serializable-numeric-identifier-descriptor.js.map +1 -0
- package/dist/serializable-numeric-identifier-type.d.ts +26 -0
- package/dist/serializable-numeric-identifier-type.d.ts.map +1 -0
- package/dist/serializable-numeric-identifier-type.js +8 -0
- package/dist/serializable-numeric-identifier-type.js.map +1 -0
- package/dist/serializable-numeric-identifier-validator.d.ts +41 -0
- package/dist/serializable-numeric-identifier-validator.d.ts.map +1 -0
- package/dist/serializable-numeric-identifier-validator.js +78 -0
- package/dist/serializable-numeric-identifier-validator.js.map +1 -0
- package/package.json +11 -8
- package/src/abstract-identifier-creator.ts +157 -76
- package/src/abstract-non-gtin-numeric-identifier-creator.ts +86 -0
- package/src/abstract-numeric-identifier-creator.ts +205 -136
- package/src/check.ts +2 -2
- package/src/content-character-set-creators.ts +9 -0
- package/src/gtin-creator.ts +20 -19
- package/src/gtin-descriptor.ts +10 -4
- package/src/gtin-length.ts +61 -0
- package/src/gtin-type.ts +6 -37
- package/src/gtin-validator.ts +39 -46
- package/src/identifier-creator.ts +6 -6
- package/src/{creators.ts → identifier-creators.ts} +45 -31
- package/src/identifier-descriptor.ts +3 -3
- package/src/{descriptors.ts → identifier-descriptors.ts} +65 -63
- package/src/identifier-extension.ts +155 -0
- package/src/identifier-validator.ts +94 -11
- package/src/{validators.ts → identifier-validators.ts} +56 -41
- package/src/index.ts +50 -43
- package/src/leader-type.ts +29 -0
- package/src/locale/i18n.ts +3 -3
- package/src/locale/i18next.d.ts +1 -1
- package/src/non-gtin-numeric-identifier-creator.ts +8 -23
- package/src/non-gtin-numeric-identifier-descriptor.ts +4 -4
- package/src/non-gtin-numeric-identifier-type.ts +14 -3
- package/src/non-gtin-numeric-identifier-validator.ts +7 -15
- package/src/non-numeric-identifier-creator.ts +21 -16
- package/src/non-numeric-identifier-descriptor.ts +4 -4
- package/src/non-numeric-identifier-type.ts +14 -3
- package/src/non-numeric-identifier-validator.ts +12 -13
- package/src/non-serializable-numeric-identifier-creator.ts +12 -0
- package/src/non-serializable-numeric-identifier-descriptor.ts +7 -0
- package/src/non-serializable-numeric-identifier-type.ts +22 -0
- package/src/non-serializable-numeric-identifier-validator.ts +19 -0
- package/src/numeric-identifier-creator.ts +9 -8
- package/src/numeric-identifier-descriptor.ts +4 -3
- package/src/numeric-identifier-type.ts +17 -35
- package/src/numeric-identifier-validator.ts +62 -7
- package/src/prefix-manager.ts +79 -76
- package/src/prefix-provider.ts +1 -1
- package/src/prefix-validator.ts +3 -3
- package/src/serializable-numeric-identifier-creator.ts +13 -27
- package/src/serializable-numeric-identifier-descriptor.ts +4 -4
- package/src/serializable-numeric-identifier-type.ts +14 -5
- package/src/serializable-numeric-identifier-validator.ts +22 -21
- package/test/check.test.ts +1 -1
- package/test/creator.test.ts +5 -5
- package/test/gtin-creator.ts +10 -3
- package/test/gtin-validator.test.ts +10 -12
- package/test/identifier-creator.ts +12 -12
- package/test/identifier-validator.ts +1 -1
- package/test/non-gtin-numeric-identifier-creator.ts +3 -3
- package/test/non-gtin-numeric-identifier-validator.ts +8 -3
- package/test/non-numeric-identifier-creator.ts +1 -1
- package/test/non-numeric-identifier-validator.ts +3 -3
- package/test/non-serializable-numeric-identifier-creator.ts +64 -0
- package/test/non-serializable-numeric-identifier-validator.ts +6 -0
- package/test/numeric-identifier-creator.ts +9 -4
- package/test/numeric-identifier-validator.ts +2 -2
- package/test/prefix-manager.test.ts +2 -2
- package/test/serializable-numeric-identifier-creator.ts +2 -2
- package/test/serializable-numeric-identifier-validator.ts +3 -3
- package/test/setup.ts +1 -1
- package/test/sparse.test.ts +1 -1
- package/test/utility.ts +1 -1
- package/test/validator.test.ts +16 -15
- package/test/variable-measure-rcn.test.ts +24 -24
- package/tsconfig-config.json +4 -0
- package/tsconfig-src.json +8 -0
- package/tsconfig-test.json +9 -0
- package/tsconfig.json +12 -1
- package/tsup.config.ts +3 -2
- package/dist/index.cjs +0 -4813
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.cts +0 -1949
- package/src/abstract-identifier-validator.ts +0 -140
- package/src/abstract-numeric-identifier-validator.ts +0 -69
package/test/creator.test.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { describe } from "vitest";
|
|
2
|
-
import { PrefixManager, PrefixTypes } from "../src";
|
|
3
|
-
import { testGTINCreator } from "./gtin-creator";
|
|
4
|
-
import { testNonGTINNumericIdentifierCreator } from "./non-gtin-numeric-identifier-creator";
|
|
5
|
-
import { testNonNumericIdentifierCreator } from "./non-numeric-identifier-creator";
|
|
6
|
-
import { testSerializableNumericIdentifierCreator } from "./serializable-numeric-identifier-creator";
|
|
2
|
+
import { PrefixManager, PrefixTypes } from "../src/index.js";
|
|
3
|
+
import { testGTINCreator } from "./gtin-creator.js";
|
|
4
|
+
import { testNonGTINNumericIdentifierCreator } from "./non-gtin-numeric-identifier-creator.js";
|
|
5
|
+
import { testNonNumericIdentifierCreator } from "./non-numeric-identifier-creator.js";
|
|
6
|
+
import { testSerializableNumericIdentifierCreator } from "./serializable-numeric-identifier-creator.js";
|
|
7
7
|
|
|
8
8
|
describe("Creators", () => {
|
|
9
9
|
testGTINCreator(PrefixManager.get(PrefixTypes.GS1CompanyPrefix, "952123456").gtinCreator);
|
package/test/gtin-creator.ts
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
import { CharacterSetCreator, Sequence } from "@aidc-toolkit/utility";
|
|
2
2
|
import { expect, test } from "vitest";
|
|
3
|
-
import {
|
|
4
|
-
|
|
3
|
+
import {
|
|
4
|
+
type GTINCreator,
|
|
5
|
+
GTINLengths,
|
|
6
|
+
GTINValidator,
|
|
7
|
+
hasValidCheckDigit,
|
|
8
|
+
isGTINCreator,
|
|
9
|
+
PrefixTypes
|
|
10
|
+
} from "../src/index.js";
|
|
11
|
+
import { testNumericIdentifierCreator } from "./numeric-identifier-creator.js";
|
|
5
12
|
|
|
6
13
|
export function testGTINCreator(creator: GTINCreator): void {
|
|
7
14
|
testNumericIdentifierCreator(creator, () => {
|
|
@@ -111,7 +118,7 @@ export function testGTINCreator(creator: GTINCreator): void {
|
|
|
111
118
|
expect(Array.from(creator.createGTIN14("5", randomValues, true))).toStrictEqual(identifiers);
|
|
112
119
|
});
|
|
113
120
|
|
|
114
|
-
if (creator.
|
|
121
|
+
if (creator.length === GTINLengths.GTIN12) {
|
|
115
122
|
test("Zero-suppress GTIN-12 rule 1", () => {
|
|
116
123
|
expect(GTINValidator.zeroSuppress("012345000058")).toBe("01234558");
|
|
117
124
|
expect(GTINValidator.zeroSuppress("012345000065")).toBe("01234565");
|
|
@@ -1,36 +1,34 @@
|
|
|
1
1
|
import { describe, expect, test } from "vitest";
|
|
2
2
|
import {
|
|
3
|
-
type
|
|
3
|
+
type GTINBaseLength,
|
|
4
|
+
GTINLengths,
|
|
4
5
|
GTINLevels,
|
|
5
|
-
GTINTypes,
|
|
6
6
|
GTINValidator,
|
|
7
7
|
IdentifierTypes,
|
|
8
8
|
LeaderTypes,
|
|
9
9
|
type PrefixType,
|
|
10
10
|
PrefixTypes
|
|
11
|
-
} from "../src";
|
|
12
|
-
import { validateNumericIdentifierValidator } from "./numeric-identifier-validator";
|
|
11
|
+
} from "../src/index.js";
|
|
12
|
+
import { validateNumericIdentifierValidator } from "./numeric-identifier-validator.js";
|
|
13
13
|
|
|
14
|
-
export function validateGTINValidator(validator: GTINValidator, isCreator: boolean,
|
|
14
|
+
export function validateGTINValidator(validator: GTINValidator, isCreator: boolean, gtinBaseLength: GTINBaseLength): void {
|
|
15
15
|
let prefixType: PrefixType;
|
|
16
16
|
|
|
17
|
-
switch (
|
|
18
|
-
case
|
|
17
|
+
switch (gtinBaseLength) {
|
|
18
|
+
case GTINLengths.GTIN13:
|
|
19
19
|
prefixType = PrefixTypes.GS1CompanyPrefix;
|
|
20
20
|
break;
|
|
21
21
|
|
|
22
|
-
case
|
|
22
|
+
case GTINLengths.GTIN12:
|
|
23
23
|
prefixType = PrefixTypes.UPCCompanyPrefix;
|
|
24
24
|
break;
|
|
25
25
|
|
|
26
|
-
case
|
|
26
|
+
case GTINLengths.GTIN8:
|
|
27
27
|
prefixType = PrefixTypes.GS18Prefix;
|
|
28
28
|
break;
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
validateNumericIdentifierValidator(validator, IdentifierTypes.GTIN, prefixType,
|
|
32
|
-
|
|
33
|
-
expect(validator.gtinType).toBe(gtinBaseType);
|
|
31
|
+
validateNumericIdentifierValidator(validator, IdentifierTypes.GTIN, prefixType, gtinBaseLength, LeaderTypes.IndicatorDigit);
|
|
34
32
|
}
|
|
35
33
|
|
|
36
34
|
describe("GTIN validation and normalization", () => {
|
|
@@ -1,42 +1,42 @@
|
|
|
1
1
|
import { expect } from "vitest";
|
|
2
2
|
import {
|
|
3
3
|
ContentCharacterSets,
|
|
4
|
-
type
|
|
5
|
-
|
|
4
|
+
type GTINLength,
|
|
5
|
+
GTINLengths,
|
|
6
6
|
IdentifierTypes,
|
|
7
7
|
LeaderTypes,
|
|
8
8
|
type PrefixManager,
|
|
9
9
|
PrefixTypes
|
|
10
|
-
} from "../src";
|
|
11
|
-
import { validateGTINValidator } from "./gtin-validator.test";
|
|
12
|
-
import { validateNonGTINNumericIdentifierValidator } from "./non-gtin-numeric-identifier-validator";
|
|
13
|
-
import { validateNonNumericIdentifierValidator } from "./non-numeric-identifier-validator";
|
|
14
|
-
import { validateSerializableNumericIdentifierValidator } from "./serializable-numeric-identifier-validator";
|
|
10
|
+
} from "../src/index.js";
|
|
11
|
+
import { validateGTINValidator } from "./gtin-validator.test.js";
|
|
12
|
+
import { validateNonGTINNumericIdentifierValidator } from "./non-gtin-numeric-identifier-validator.js";
|
|
13
|
+
import { validateNonNumericIdentifierValidator } from "./non-numeric-identifier-validator.js";
|
|
14
|
+
import { validateSerializableNumericIdentifierValidator } from "./serializable-numeric-identifier-validator.js";
|
|
15
15
|
|
|
16
16
|
export function validateIdentifierCreators(prefixManager: PrefixManager): void {
|
|
17
|
-
let
|
|
17
|
+
let gtinLength: GTINLength;
|
|
18
18
|
|
|
19
19
|
switch (prefixManager.prefixType) {
|
|
20
20
|
case PrefixTypes.GS1CompanyPrefix:
|
|
21
21
|
expect(prefixManager.prefix).toBe(prefixManager.gs1CompanyPrefix);
|
|
22
|
-
|
|
22
|
+
gtinLength = GTINLengths.GTIN13;
|
|
23
23
|
break;
|
|
24
24
|
|
|
25
25
|
case PrefixTypes.UPCCompanyPrefix:
|
|
26
26
|
expect(prefixManager.prefix).toBe(prefixManager.upcCompanyPrefix);
|
|
27
|
-
|
|
27
|
+
gtinLength = GTINLengths.GTIN12;
|
|
28
28
|
break;
|
|
29
29
|
|
|
30
30
|
case PrefixTypes.GS18Prefix:
|
|
31
31
|
expect(prefixManager.prefix).toBe(prefixManager.gs18Prefix);
|
|
32
|
-
|
|
32
|
+
gtinLength = GTINLengths.GTIN8;
|
|
33
33
|
break;
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
// Validate creator caching.
|
|
37
37
|
expect(prefixManager.gtinCreator).toBe(prefixManager.gtinCreator);
|
|
38
38
|
|
|
39
|
-
validateGTINValidator(prefixManager.gtinCreator, true,
|
|
39
|
+
validateGTINValidator(prefixManager.gtinCreator, true, gtinLength);
|
|
40
40
|
|
|
41
41
|
if (prefixManager.prefixType !== PrefixTypes.GS18Prefix) {
|
|
42
42
|
// Validate creator caching.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { expect } from "vitest";
|
|
2
|
-
import type { IdentifierType, IdentifierTypeValidator, PrefixType } from "../src";
|
|
2
|
+
import type { IdentifierType, IdentifierTypeValidator, PrefixType } from "../src/index.js";
|
|
3
3
|
|
|
4
4
|
export function validateIdentifierValidator<TIdentifierType extends IdentifierType>(creator: IdentifierTypeValidator<TIdentifierType>, identifierType: IdentifierType, prefixType: PrefixType, length: number): void {
|
|
5
5
|
expect(creator.identifierType).toBe(identifierType);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { expect, test } from "vitest";
|
|
2
|
-
import { isNonGTINNumericIdentifierCreator, type NonGTINNumericIdentifierCreator } from "../src";
|
|
3
|
-
import { testIdentifierCreatorCallback } from "./identifier-creator";
|
|
4
|
-
import { testNumericIdentifierCreator } from "./numeric-identifier-creator";
|
|
2
|
+
import { isNonGTINNumericIdentifierCreator, type NonGTINNumericIdentifierCreator } from "../src/index.js";
|
|
3
|
+
import { testIdentifierCreatorCallback } from "./identifier-creator.js";
|
|
4
|
+
import { testNumericIdentifierCreator } from "./numeric-identifier-creator.js";
|
|
5
5
|
|
|
6
6
|
export function testNonGTINNumericIdentifierCreator(creator: NonGTINNumericIdentifierCreator, preTestCallback?: () => void, postTestCallback?: () => void): void {
|
|
7
7
|
testNumericIdentifierCreator(creator, () => {
|
|
@@ -1,6 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import {
|
|
2
|
+
type IdentifierType,
|
|
3
|
+
type LeaderType,
|
|
4
|
+
type NonSerializableNumericIdentifierValidator,
|
|
5
|
+
PrefixTypes
|
|
6
|
+
} from "../src/index.js";
|
|
7
|
+
import { validateNumericIdentifierValidator } from "./numeric-identifier-validator.js";
|
|
3
8
|
|
|
4
|
-
export function validateNonGTINNumericIdentifierValidator(validator:
|
|
9
|
+
export function validateNonGTINNumericIdentifierValidator(validator: NonSerializableNumericIdentifierValidator, isCreator: boolean, identifierType: IdentifierType, length: number, leaderType: LeaderType): void {
|
|
5
10
|
validateNumericIdentifierValidator(validator, identifierType, PrefixTypes.GS1CompanyPrefix, length, leaderType);
|
|
6
11
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Exclusions, Sequence } from "@aidc-toolkit/utility";
|
|
2
2
|
import { describe, expect, test } from "vitest";
|
|
3
|
-
import { hasValidCheckCharacterPair, isNonNumericIdentifierCreator, type NonNumericIdentifierCreator } from "../src";
|
|
3
|
+
import { hasValidCheckCharacterPair, isNonNumericIdentifierCreator, type NonNumericIdentifierCreator } from "../src/index.js";
|
|
4
4
|
|
|
5
5
|
const TEST_REFERENCE_LENGTH = 2;
|
|
6
6
|
|
|
@@ -5,9 +5,9 @@ import {
|
|
|
5
5
|
type NonNumericIdentifierCreator,
|
|
6
6
|
type NonNumericIdentifierValidator,
|
|
7
7
|
PrefixTypes
|
|
8
|
-
} from "../src";
|
|
9
|
-
import { validateIdentifierValidator } from "./identifier-validator";
|
|
10
|
-
import { creatorFor } from "./utility";
|
|
8
|
+
} from "../src/index.js";
|
|
9
|
+
import { validateIdentifierValidator } from "./identifier-validator.js";
|
|
10
|
+
import { creatorFor } from "./utility.js";
|
|
11
11
|
|
|
12
12
|
export function validateNonNumericIdentifierValidator(validator: NonNumericIdentifierValidator, isCreator: boolean, identifierType: IdentifierType, length: number, referenceCharacterSet: ContentCharacterSet, requiresCheckCharacterPair: boolean): void {
|
|
13
13
|
validateIdentifierValidator(validator, identifierType, PrefixTypes.GS1CompanyPrefix, length);
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { expect, test } from "vitest";
|
|
2
|
+
import {
|
|
3
|
+
ContentCharacterSets,
|
|
4
|
+
isSerializableNumericIdentifierCreator,
|
|
5
|
+
type SerializableNumericIdentifierCreator
|
|
6
|
+
} from "../src/index.js";
|
|
7
|
+
import { testNonGTINNumericIdentifierCreator } from "./non-gtin-numeric-identifier-creator.js";
|
|
8
|
+
|
|
9
|
+
export function testSerializableNumericIdentifierCreator(creator: SerializableNumericIdentifierCreator): void {
|
|
10
|
+
testNonGTINNumericIdentifierCreator(creator, () => {
|
|
11
|
+
test("Mapping", () => {
|
|
12
|
+
expect(isSerializableNumericIdentifierCreator(creator)).toBe(true);
|
|
13
|
+
});
|
|
14
|
+
}, () => {
|
|
15
|
+
test("Serialization", () => {
|
|
16
|
+
const identifier = creator.create(0, true);
|
|
17
|
+
const serial = "12345678";
|
|
18
|
+
const serializedIdentifier = identifier + serial;
|
|
19
|
+
const serials = [serial, "23456789", "34567890", "456789012"];
|
|
20
|
+
const serializedIdentifiers = serials.map(serial => identifier + serial);
|
|
21
|
+
|
|
22
|
+
expect(creator.createSerialized(0, serial, true)).toBe(serializedIdentifier);
|
|
23
|
+
expect(creator.concatenate(identifier, serial)).toBe(serializedIdentifier);
|
|
24
|
+
expect(Array.from(creator.createSerialized(0, serials, true))).toStrictEqual(serializedIdentifiers);
|
|
25
|
+
expect(Array.from(creator.concatenate(identifier, serials))).toStrictEqual(serializedIdentifiers);
|
|
26
|
+
|
|
27
|
+
const fullLengthSerial = "0".repeat(creator.serialComponentLength);
|
|
28
|
+
const fullLengthPlusOneSerial = fullLengthSerial + "0";
|
|
29
|
+
const fullLengthPlusOneSerialErrorMessage = `Length ${creator.serialComponentLength + 1} of serial component must be less than or equal to ${creator.serialComponentLength}`;
|
|
30
|
+
|
|
31
|
+
expect(() => creator.createSerialized(0, fullLengthSerial, true)).not.toThrow(RangeError);
|
|
32
|
+
expect(() => creator.concatenate(identifier, fullLengthSerial)).not.toThrow(RangeError);
|
|
33
|
+
expect(() => Array.from(creator.createSerialized(0, [...serials, fullLengthSerial], true))).not.toThrow(RangeError);
|
|
34
|
+
expect(() => Array.from(creator.concatenate(identifier, [...serials, fullLengthSerial]))).not.toThrow(RangeError);
|
|
35
|
+
expect(() => creator.createSerialized(0, fullLengthPlusOneSerial, true)).toThrow(fullLengthPlusOneSerialErrorMessage);
|
|
36
|
+
expect(() => creator.concatenate(identifier, fullLengthPlusOneSerial)).toThrow(fullLengthPlusOneSerialErrorMessage);
|
|
37
|
+
expect(() => Array.from(creator.createSerialized(0, [...serials, fullLengthPlusOneSerial], true))).toThrow(fullLengthPlusOneSerialErrorMessage);
|
|
38
|
+
expect(() => Array.from(creator.concatenate(identifier, [...serials, fullLengthPlusOneSerial]))).toThrow(fullLengthPlusOneSerialErrorMessage);
|
|
39
|
+
|
|
40
|
+
let invalidSerial: string;
|
|
41
|
+
|
|
42
|
+
switch (creator.serialComponentCharacterSet) {
|
|
43
|
+
case ContentCharacterSets.Numeric:
|
|
44
|
+
invalidSerial = "1234A5678";
|
|
45
|
+
break;
|
|
46
|
+
|
|
47
|
+
case ContentCharacterSets.AI82:
|
|
48
|
+
invalidSerial = "ABCD~1234";
|
|
49
|
+
break;
|
|
50
|
+
|
|
51
|
+
case ContentCharacterSets.AI39:
|
|
52
|
+
invalidSerial = "ABCD%1234";
|
|
53
|
+
break;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
const invalidSerialErrorMessage = `Invalid character '${invalidSerial.charAt(4)}' at position 5 of serial component`;
|
|
57
|
+
|
|
58
|
+
expect(() => creator.createSerialized(0, invalidSerial, true)).toThrow(invalidSerialErrorMessage);
|
|
59
|
+
expect(() => creator.concatenate(identifier, invalidSerial)).toThrow(invalidSerialErrorMessage);
|
|
60
|
+
expect(() => Array.from(creator.createSerialized(0, [...serials, invalidSerial], true))).toThrow(invalidSerialErrorMessage);
|
|
61
|
+
expect(() => Array.from(creator.concatenate(identifier, [...serials, invalidSerial]))).toThrow(invalidSerialErrorMessage);
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { IdentifierType, LeaderType, NonSerializableNumericIdentifierValidator } from "../src/index.js";
|
|
2
|
+
import { validateNonGTINNumericIdentifierValidator } from "./non-gtin-numeric-identifier-validator.js";
|
|
3
|
+
|
|
4
|
+
export function validateNonSerializableNumericIdentifierValidator(validator: NonSerializableNumericIdentifierValidator, isCreator: boolean, identifierType: IdentifierType, length: number, leaderType: LeaderType): void {
|
|
5
|
+
validateNonGTINNumericIdentifierValidator(validator, isCreator, identifierType, length, leaderType);
|
|
6
|
+
}
|
|
@@ -3,16 +3,21 @@ import { describe, expect, test } from "vitest";
|
|
|
3
3
|
import {
|
|
4
4
|
hasValidCheckDigit,
|
|
5
5
|
isGTINCreator,
|
|
6
|
+
isNumericIdentifierCreator,
|
|
6
7
|
LeaderTypes,
|
|
7
8
|
type NumericIdentifierCreator,
|
|
8
|
-
type
|
|
9
|
-
} from "../src";
|
|
10
|
-
import { testIdentifierCreatorCallback } from "./identifier-creator";
|
|
9
|
+
type NumericIdentifierType
|
|
10
|
+
} from "../src/index.js";
|
|
11
|
+
import { testIdentifierCreatorCallback } from "./identifier-creator.js";
|
|
11
12
|
|
|
12
|
-
export function testNumericIdentifierCreator<
|
|
13
|
+
export function testNumericIdentifierCreator<TNumericIdentifierType extends NumericIdentifierType>(creator: NumericIdentifierCreator<TNumericIdentifierType>, preTestCallback?: () => void, postTestCallback?: () => void): void {
|
|
13
14
|
describe(isGTINCreator(creator) ? `${creator.identifierType}-${creator.length}` : creator.identifierType as string, () => {
|
|
14
15
|
testIdentifierCreatorCallback(preTestCallback);
|
|
15
16
|
|
|
17
|
+
test("Mapping", () => {
|
|
18
|
+
expect(isNumericIdentifierCreator(creator)).toBe(true);
|
|
19
|
+
});
|
|
20
|
+
|
|
16
21
|
const prefix = creator.prefix;
|
|
17
22
|
const prefixLength = prefix.length;
|
|
18
23
|
const hasExtensionDigit = creator.leaderType === LeaderTypes.ExtensionDigit;
|
|
@@ -7,8 +7,8 @@ import {
|
|
|
7
7
|
type LeaderType,
|
|
8
8
|
type NumericIdentifierType,
|
|
9
9
|
type PrefixType
|
|
10
|
-
} from "../src";
|
|
11
|
-
import { validateIdentifierValidator } from "./identifier-validator";
|
|
10
|
+
} from "../src/index.js";
|
|
11
|
+
import { validateIdentifierValidator } from "./identifier-validator.js";
|
|
12
12
|
|
|
13
13
|
export function validateNumericIdentifierValidator<TNumericIdentifierType extends NumericIdentifierType>(validator: IdentifierTypeValidator<TNumericIdentifierType>, identifierType: IdentifierType, prefixType: PrefixType, length: number, leaderType: LeaderType): void {
|
|
14
14
|
validateIdentifierValidator(validator, identifierType, prefixType, length);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { describe, expect, test } from "vitest";
|
|
2
|
-
import { PrefixManager, PrefixTypes } from "../src";
|
|
3
|
-
import { validateIdentifierCreators } from "./identifier-creator";
|
|
2
|
+
import { PrefixManager, PrefixTypes } from "../src/index.js";
|
|
3
|
+
import { validateIdentifierCreators } from "./identifier-creator.js";
|
|
4
4
|
|
|
5
5
|
describe("Prefix manager", () => {
|
|
6
6
|
let prefixManager: PrefixManager;
|
|
@@ -3,8 +3,8 @@ import {
|
|
|
3
3
|
ContentCharacterSets,
|
|
4
4
|
isSerializableNumericIdentifierCreator,
|
|
5
5
|
type SerializableNumericIdentifierCreator
|
|
6
|
-
} from "../src";
|
|
7
|
-
import { testNonGTINNumericIdentifierCreator } from "./non-gtin-numeric-identifier-creator";
|
|
6
|
+
} from "../src/index.js";
|
|
7
|
+
import { testNonGTINNumericIdentifierCreator } from "./non-gtin-numeric-identifier-creator.js";
|
|
8
8
|
|
|
9
9
|
export function testSerializableNumericIdentifierCreator(creator: SerializableNumericIdentifierCreator): void {
|
|
10
10
|
testNonGTINNumericIdentifierCreator(creator, () => {
|
|
@@ -5,9 +5,9 @@ import type {
|
|
|
5
5
|
LeaderType,
|
|
6
6
|
SerializableNumericIdentifierCreator,
|
|
7
7
|
SerializableNumericIdentifierValidator
|
|
8
|
-
} from "../src";
|
|
9
|
-
import { validateNonGTINNumericIdentifierValidator } from "./non-gtin-numeric-identifier-validator";
|
|
10
|
-
import { creatorFor } from "./utility";
|
|
8
|
+
} from "../src/index.js";
|
|
9
|
+
import { validateNonGTINNumericIdentifierValidator } from "./non-gtin-numeric-identifier-validator.js";
|
|
10
|
+
import { creatorFor } from "./utility.js";
|
|
11
11
|
|
|
12
12
|
export function validateSerializableNumericIdentifierValidator(validator: SerializableNumericIdentifierValidator, isCreator: boolean, identifierType: IdentifierType, length: number, leaderType: LeaderType, serialLength: number, serialCharacterSet: ContentCharacterSet): void {
|
|
13
13
|
validateNonGTINNumericIdentifierValidator(validator, isCreator, identifierType, length, leaderType);
|
package/test/setup.ts
CHANGED
package/test/sparse.test.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Sequence } from "@aidc-toolkit/utility";
|
|
2
2
|
import { describe, expect, test } from "vitest";
|
|
3
|
-
import { PrefixManager, PrefixTypes } from "../src";
|
|
3
|
+
import { PrefixManager, PrefixTypes } from "../src/index.js";
|
|
4
4
|
|
|
5
5
|
describe("Sparse creation", () => {
|
|
6
6
|
const prefixManager = PrefixManager.get(PrefixTypes.GS1CompanyPrefix, "9521234");
|
package/test/utility.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type CharacterSetCreator, NUMERIC_CREATOR } from "@aidc-toolkit/utility";
|
|
2
|
-
import { AI39_CREATOR, AI82_CREATOR, type ContentCharacterSet, ContentCharacterSets } from "../src";
|
|
2
|
+
import { AI39_CREATOR, AI82_CREATOR, type ContentCharacterSet, ContentCharacterSets } from "../src/index.js";
|
|
3
3
|
|
|
4
4
|
export function creatorFor(characterSet: ContentCharacterSet): CharacterSetCreator {
|
|
5
5
|
let creator: CharacterSetCreator;
|
package/test/validator.test.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { describe, expect, test } from "vitest";
|
|
2
2
|
import {
|
|
3
3
|
ContentCharacterSets,
|
|
4
|
-
type
|
|
5
|
-
|
|
4
|
+
type GTINBaseLength,
|
|
5
|
+
GTINLengths,
|
|
6
6
|
type GTINValidator,
|
|
7
7
|
type IdentifierType,
|
|
8
8
|
IdentifierTypes,
|
|
@@ -12,17 +12,18 @@ import {
|
|
|
12
12
|
isGTINValidators,
|
|
13
13
|
isNonGTINNumericIdentifierValidator,
|
|
14
14
|
isNonNumericIdentifierValidator,
|
|
15
|
+
isNonSerializableNumericIdentifierValidator,
|
|
15
16
|
isNumericIdentifierValidator,
|
|
16
17
|
isSerializableNumericIdentifierValidator,
|
|
17
18
|
LeaderTypes
|
|
18
|
-
} from "../src";
|
|
19
|
-
import { validateGTINValidator } from "./gtin-validator.test";
|
|
20
|
-
import { validateNonGTINNumericIdentifierValidator } from "./non-gtin-numeric-identifier-validator";
|
|
21
|
-
import { validateNonNumericIdentifierValidator } from "./non-numeric-identifier-validator";
|
|
22
|
-
import { validateSerializableNumericIdentifierValidator } from "./serializable-numeric-identifier-validator";
|
|
19
|
+
} from "../src/index.js";
|
|
20
|
+
import { validateGTINValidator } from "./gtin-validator.test.js";
|
|
21
|
+
import { validateNonGTINNumericIdentifierValidator } from "./non-gtin-numeric-identifier-validator.js";
|
|
22
|
+
import { validateNonNumericIdentifierValidator } from "./non-numeric-identifier-validator.js";
|
|
23
|
+
import { validateSerializableNumericIdentifierValidator } from "./serializable-numeric-identifier-validator.js";
|
|
23
24
|
|
|
24
25
|
describe("Validators", () => {
|
|
25
|
-
function validateMapping(identifierType: IdentifierType, expectedIdentifierValidatorsOrValidator: Readonly<Record<
|
|
26
|
+
function validateMapping(identifierType: IdentifierType, expectedIdentifierValidatorsOrValidator: Readonly<Record<GTINBaseLength, GTINValidator>> | IdentifierValidator, ...isIdentifierValidatorTypes: Array<(validator: IdentifierValidator) => boolean>): void {
|
|
26
27
|
test(identifierType, () => {
|
|
27
28
|
const validatorsOrValidator = IdentifierValidators[identifierType];
|
|
28
29
|
|
|
@@ -44,23 +45,23 @@ describe("Validators", () => {
|
|
|
44
45
|
|
|
45
46
|
describe("Mapping", () => {
|
|
46
47
|
validateMapping(IdentifierTypes.GTIN, IdentifierValidators.GTIN, isNumericIdentifierValidator, isGTINValidator);
|
|
47
|
-
validateMapping(IdentifierTypes.GLN, IdentifierValidators.GLN, isNumericIdentifierValidator, isNonGTINNumericIdentifierValidator);
|
|
48
|
-
validateMapping(IdentifierTypes.SSCC, IdentifierValidators.SSCC, isNumericIdentifierValidator, isNonGTINNumericIdentifierValidator);
|
|
48
|
+
validateMapping(IdentifierTypes.GLN, IdentifierValidators.GLN, isNumericIdentifierValidator, isNonGTINNumericIdentifierValidator, isNonSerializableNumericIdentifierValidator);
|
|
49
|
+
validateMapping(IdentifierTypes.SSCC, IdentifierValidators.SSCC, isNumericIdentifierValidator, isNonGTINNumericIdentifierValidator, isNonSerializableNumericIdentifierValidator);
|
|
49
50
|
validateMapping(IdentifierTypes.GRAI, IdentifierValidators.GRAI, isNumericIdentifierValidator, isNonGTINNumericIdentifierValidator, isSerializableNumericIdentifierValidator);
|
|
50
51
|
validateMapping(IdentifierTypes.GIAI, IdentifierValidators.GIAI, isNonNumericIdentifierValidator);
|
|
51
|
-
validateMapping(IdentifierTypes.GSRN, IdentifierValidators.GSRN, isNumericIdentifierValidator, isNonGTINNumericIdentifierValidator);
|
|
52
|
+
validateMapping(IdentifierTypes.GSRN, IdentifierValidators.GSRN, isNumericIdentifierValidator, isNonGTINNumericIdentifierValidator, isNonSerializableNumericIdentifierValidator);
|
|
52
53
|
validateMapping(IdentifierTypes.GDTI, IdentifierValidators.GDTI, isNumericIdentifierValidator, isNonGTINNumericIdentifierValidator, isSerializableNumericIdentifierValidator);
|
|
53
54
|
validateMapping(IdentifierTypes.GINC, IdentifierValidators.GINC, isNonNumericIdentifierValidator);
|
|
54
|
-
validateMapping(IdentifierTypes.GSIN, IdentifierValidators.GSIN, isNumericIdentifierValidator, isNonGTINNumericIdentifierValidator);
|
|
55
|
+
validateMapping(IdentifierTypes.GSIN, IdentifierValidators.GSIN, isNumericIdentifierValidator, isNonGTINNumericIdentifierValidator, isNonSerializableNumericIdentifierValidator);
|
|
55
56
|
validateMapping(IdentifierTypes.GCN, IdentifierValidators.GCN, isNumericIdentifierValidator, isNonGTINNumericIdentifierValidator, isSerializableNumericIdentifierValidator);
|
|
56
57
|
validateMapping(IdentifierTypes.CPID, IdentifierValidators.CPID, isNonNumericIdentifierValidator);
|
|
57
58
|
validateMapping(IdentifierTypes.GMN, IdentifierValidators.GMN, isNonNumericIdentifierValidator);
|
|
58
59
|
});
|
|
59
60
|
|
|
60
61
|
test("Structure", () => {
|
|
61
|
-
validateGTINValidator(IdentifierValidators.GTIN[
|
|
62
|
-
validateGTINValidator(IdentifierValidators.GTIN[
|
|
63
|
-
validateGTINValidator(IdentifierValidators.GTIN[
|
|
62
|
+
validateGTINValidator(IdentifierValidators.GTIN[GTINLengths.GTIN13], false, GTINLengths.GTIN13);
|
|
63
|
+
validateGTINValidator(IdentifierValidators.GTIN[GTINLengths.GTIN12], false, GTINLengths.GTIN12);
|
|
64
|
+
validateGTINValidator(IdentifierValidators.GTIN[GTINLengths.GTIN8], false, GTINLengths.GTIN8);
|
|
64
65
|
validateNonGTINNumericIdentifierValidator(IdentifierValidators.GLN, false, IdentifierTypes.GLN, 13, LeaderTypes.None);
|
|
65
66
|
validateNonGTINNumericIdentifierValidator(IdentifierValidators.SSCC, false, IdentifierTypes.SSCC, 18, LeaderTypes.ExtensionDigit);
|
|
66
67
|
validateSerializableNumericIdentifierValidator(IdentifierValidators.GRAI, false, IdentifierTypes.GRAI, 13, LeaderTypes.None, 16, ContentCharacterSets.AI82);
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
hasValidCheckDigit,
|
|
6
6
|
isValidPriceOrWeightCheckDigit,
|
|
7
7
|
type RCNReference
|
|
8
|
-
} from "../src";
|
|
8
|
+
} from "../src/index.js";
|
|
9
9
|
|
|
10
10
|
describe("Variable measure RCN", () => {
|
|
11
11
|
test("RCN-12", () => {
|
|
@@ -68,40 +68,40 @@ describe("Variable measure RCN", () => {
|
|
|
68
68
|
expect(() => GTINCreator.createVariableMeasureRCN("2IIIIIIIIIIC", 12345, 54321)).toThrow("Invalid variable measure RCN format");
|
|
69
69
|
|
|
70
70
|
expect(() => {
|
|
71
|
-
|
|
71
|
+
GTINValidator.parseVariableMeasureRCN("3PPPPPIIIIIC", "2543211234540");
|
|
72
72
|
}).toThrow("RCN length must match format length");
|
|
73
73
|
expect(() => {
|
|
74
|
-
|
|
74
|
+
GTINValidator.parseVariableMeasureRCN("3PPPPPIIIIIC", "25432112345");
|
|
75
75
|
}).toThrow("RCN length must match format length");
|
|
76
76
|
expect(() => {
|
|
77
|
-
|
|
77
|
+
GTINValidator.parseVariableMeasureRCN("3PPPPPIIIIIC", "254321123454");
|
|
78
78
|
}).toThrow("Invalid variable measure RCN format");
|
|
79
79
|
expect(() => {
|
|
80
|
-
|
|
80
|
+
GTINValidator.parseVariableMeasureRCN("20PPPPPIIIIC", "254321123454");
|
|
81
81
|
}).toThrow("Invalid variable measure RCN format");
|
|
82
82
|
expect(() => {
|
|
83
|
-
|
|
83
|
+
GTINValidator.parseVariableMeasureRCN("2PPPPPIIIIII", "254321123454");
|
|
84
84
|
}).toThrow("Invalid variable measure RCN format");
|
|
85
85
|
expect(() => {
|
|
86
|
-
|
|
86
|
+
GTINValidator.parseVariableMeasureRCN("2PPPPPIIIIKC", "254321123454");
|
|
87
87
|
}).toThrow("Invalid variable measure RCN format");
|
|
88
88
|
expect(() => {
|
|
89
|
-
|
|
89
|
+
GTINValidator.parseVariableMeasureRCN("2PPPPPIIPIIC", "254321123454");
|
|
90
90
|
}).toThrow("Invalid variable measure RCN format");
|
|
91
91
|
expect(() => {
|
|
92
|
-
|
|
92
|
+
GTINValidator.parseVariableMeasureRCN("2PPIPPIIIIIC", "254321123454");
|
|
93
93
|
}).toThrow("Invalid variable measure RCN format");
|
|
94
94
|
expect(() => {
|
|
95
|
-
|
|
95
|
+
GTINValidator.parseVariableMeasureRCN("2PPPPPIIIIC", "25432112345");
|
|
96
96
|
}).toThrow("Invalid variable measure RCN format");
|
|
97
97
|
expect(() => {
|
|
98
|
-
|
|
98
|
+
GTINValidator.parseVariableMeasureRCN("2PPPPPIIIIIIC", "2543211234540");
|
|
99
99
|
}).toThrow("Invalid variable measure RCN format");
|
|
100
100
|
expect(() => {
|
|
101
|
-
|
|
101
|
+
GTINValidator.parseVariableMeasureRCN("2PPPPPPPPPPC", "254321123454");
|
|
102
102
|
}).toThrow("Invalid variable measure RCN format");
|
|
103
103
|
expect(() => {
|
|
104
|
-
|
|
104
|
+
GTINValidator.parseVariableMeasureRCN("2IIIIIIIIIIC", "254321123454");
|
|
105
105
|
}).toThrow("Invalid variable measure RCN format");
|
|
106
106
|
});
|
|
107
107
|
|
|
@@ -165,37 +165,37 @@ describe("Variable measure RCN", () => {
|
|
|
165
165
|
expect(() => GTINCreator.createVariableMeasureRCN("27IIIIIIIIIIC", 12345, 54321)).toThrow("Invalid variable measure RCN format");
|
|
166
166
|
|
|
167
167
|
expect(() => {
|
|
168
|
-
|
|
168
|
+
GTINValidator.parseVariableMeasureRCN("30PPPPPIIIIIC", "27543211234570");
|
|
169
169
|
}).toThrow("RCN length must match format length");
|
|
170
170
|
expect(() => {
|
|
171
|
-
|
|
171
|
+
GTINValidator.parseVariableMeasureRCN("30PPPPPIIIIIC", "275432112345");
|
|
172
172
|
}).toThrow("RCN length must match format length");
|
|
173
173
|
expect(() => {
|
|
174
|
-
|
|
174
|
+
GTINValidator.parseVariableMeasureRCN("30PPPPPIIIIIC", "2754321123457");
|
|
175
175
|
}).toThrow("Invalid variable measure RCN format");
|
|
176
176
|
expect(() => {
|
|
177
|
-
|
|
177
|
+
GTINValidator.parseVariableMeasureRCN("20PPPPPIIIIII", "2754321123457");
|
|
178
178
|
}).toThrow("Invalid variable measure RCN format");
|
|
179
179
|
expect(() => {
|
|
180
|
-
|
|
180
|
+
GTINValidator.parseVariableMeasureRCN("21PPPPPIIIIKC", "2754321123457");
|
|
181
181
|
}).toThrow("Invalid variable measure RCN format");
|
|
182
182
|
expect(() => {
|
|
183
|
-
|
|
183
|
+
GTINValidator.parseVariableMeasureRCN("22PPPPPIIPIIC", "2754321123457");
|
|
184
184
|
}).toThrow("Invalid variable measure RCN format");
|
|
185
185
|
expect(() => {
|
|
186
|
-
|
|
186
|
+
GTINValidator.parseVariableMeasureRCN("23PPIPPIIIIIC", "2754321123457");
|
|
187
187
|
}).toThrow("Invalid variable measure RCN format");
|
|
188
188
|
expect(() => {
|
|
189
|
-
|
|
189
|
+
GTINValidator.parseVariableMeasureRCN("24PPPPPIIIIC", "275432112345");
|
|
190
190
|
}).toThrow("Invalid variable measure RCN format");
|
|
191
191
|
expect(() => {
|
|
192
|
-
|
|
192
|
+
GTINValidator.parseVariableMeasureRCN("25PPPPPIIIIIIC", "27543211234570");
|
|
193
193
|
}).toThrow("Invalid variable measure RCN format");
|
|
194
194
|
expect(() => {
|
|
195
|
-
|
|
195
|
+
GTINValidator.parseVariableMeasureRCN("26PPPPPPPPPPC", "2754321123457");
|
|
196
196
|
}).toThrow("Invalid variable measure RCN format");
|
|
197
197
|
expect(() => {
|
|
198
|
-
|
|
198
|
+
GTINValidator.parseVariableMeasureRCN("27IIIIIIIIIIC", "2754321123457");
|
|
199
199
|
}).toThrow("Invalid variable measure RCN format");
|
|
200
200
|
});
|
|
201
201
|
});
|
package/tsconfig.json
CHANGED
package/tsup.config.ts
CHANGED