@aidc-toolkit/gs1 1.0.26-beta → 1.0.28-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 +32 -66
- package/dist/abstract-identifier-creator.d.ts.map +1 -1
- package/dist/abstract-identifier-creator.js +62 -45
- package/dist/abstract-identifier-creator.js.map +1 -1
- package/dist/abstract-non-gtin-numeric-identifier-creator.d.ts +36 -0
- package/dist/abstract-non-gtin-numeric-identifier-creator.d.ts.map +1 -0
- package/dist/abstract-non-gtin-numeric-identifier-creator.js +37 -0
- package/dist/abstract-non-gtin-numeric-identifier-creator.js.map +1 -0
- package/dist/abstract-numeric-identifier-creator.d.ts +28 -86
- package/dist/abstract-numeric-identifier-creator.d.ts.map +1 -1
- package/dist/abstract-numeric-identifier-creator.js +138 -121
- package/dist/abstract-numeric-identifier-creator.js.map +1 -1
- 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/gtin-creator.d.ts +8 -13
- package/dist/gtin-creator.d.ts.map +1 -1
- package/dist/gtin-creator.js +12 -15
- package/dist/gtin-creator.js.map +1 -1
- package/dist/gtin-descriptor.d.ts +8 -3
- package/dist/gtin-descriptor.d.ts.map +1 -1
- 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 +15 -28
- package/dist/gtin-type.d.ts.map +1 -1
- package/dist/gtin-type.js +4 -28
- package/dist/gtin-type.js.map +1 -1
- package/dist/gtin-validator.d.ts +9 -23
- package/dist/gtin-validator.d.ts.map +1 -1
- package/dist/gtin-validator.js +32 -39
- package/dist/gtin-validator.js.map +1 -1
- package/dist/identifier-creator.d.ts +4 -4
- package/dist/identifier-creator.d.ts.map +1 -1
- package/dist/{creators.d.ts → identifier-creators.d.ts} +47 -10
- package/dist/identifier-creators.d.ts.map +1 -0
- package/dist/identifier-creators.js +92 -0
- package/dist/identifier-creators.js.map +1 -0
- package/dist/{descriptors.d.ts → identifier-descriptors.d.ts} +20 -10
- package/dist/identifier-descriptors.d.ts.map +1 -0
- package/dist/{descriptors.js → identifier-descriptors.js} +27 -31
- 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-validator.d.ts +44 -9
- package/dist/identifier-validator.d.ts.map +1 -1
- package/dist/identifier-validator.js +109 -1
- package/dist/identifier-validator.js.map +1 -1
- package/dist/{validators.d.ts → identifier-validators.d.ts} +47 -12
- package/dist/identifier-validators.d.ts.map +1 -0
- package/dist/{validators.js → identifier-validators.js} +40 -13
- package/dist/identifier-validators.js.map +1 -0
- package/dist/index.d.ts +15 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -4
- 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/non-gtin-numeric-identifier-creator.d.ts +7 -19
- package/dist/non-gtin-numeric-identifier-creator.d.ts.map +1 -1
- package/dist/non-gtin-numeric-identifier-creator.js +1 -22
- package/dist/non-gtin-numeric-identifier-creator.js.map +1 -1
- package/dist/non-gtin-numeric-identifier-descriptor.d.ts +1 -1
- package/dist/non-gtin-numeric-identifier-descriptor.d.ts.map +1 -1
- package/dist/non-gtin-numeric-identifier-type.d.ts +22 -3
- package/dist/non-gtin-numeric-identifier-type.d.ts.map +1 -1
- package/dist/non-gtin-numeric-identifier-type.js +7 -1
- package/dist/non-gtin-numeric-identifier-type.js.map +1 -1
- package/dist/non-gtin-numeric-identifier-validator.d.ts +5 -10
- package/dist/non-gtin-numeric-identifier-validator.d.ts.map +1 -1
- package/dist/non-gtin-numeric-identifier-validator.js +5 -12
- package/dist/non-gtin-numeric-identifier-validator.js.map +1 -1
- package/dist/non-numeric-identifier-creator.d.ts +4 -9
- package/dist/non-numeric-identifier-creator.d.ts.map +1 -1
- package/dist/non-numeric-identifier-creator.js +8 -10
- package/dist/non-numeric-identifier-creator.js.map +1 -1
- package/dist/non-numeric-identifier-type.d.ts +22 -3
- package/dist/non-numeric-identifier-type.d.ts.map +1 -1
- package/dist/non-numeric-identifier-type.js +7 -1
- package/dist/non-numeric-identifier-type.js.map +1 -1
- package/dist/non-numeric-identifier-validator.d.ts +3 -11
- package/dist/non-numeric-identifier-validator.d.ts.map +1 -1
- package/dist/non-numeric-identifier-validator.js +8 -8
- package/dist/non-numeric-identifier-validator.js.map +1 -1
- 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 +12 -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 +6 -6
- package/dist/numeric-identifier-creator.d.ts.map +1 -1
- package/dist/numeric-identifier-descriptor.d.ts +2 -1
- package/dist/numeric-identifier-descriptor.d.ts.map +1 -1
- package/dist/numeric-identifier-type.d.ts +19 -24
- package/dist/numeric-identifier-type.d.ts.map +1 -1
- package/dist/numeric-identifier-type.js +4 -15
- package/dist/numeric-identifier-type.js.map +1 -1
- package/dist/numeric-identifier-validator.d.ts +20 -6
- package/dist/numeric-identifier-validator.d.ts.map +1 -1
- package/dist/numeric-identifier-validator.js +60 -1
- package/dist/numeric-identifier-validator.js.map +1 -1
- package/dist/prefix-manager.d.ts +13 -94
- package/dist/prefix-manager.d.ts.map +1 -1
- package/dist/prefix-manager.js +65 -102
- package/dist/prefix-manager.js.map +1 -1
- package/dist/serializable-numeric-identifier-creator.d.ts +3 -31
- package/dist/serializable-numeric-identifier-creator.d.ts.map +1 -1
- package/dist/serializable-numeric-identifier-creator.js +7 -21
- package/dist/serializable-numeric-identifier-creator.js.map +1 -1
- package/dist/serializable-numeric-identifier-descriptor.d.ts +1 -1
- package/dist/serializable-numeric-identifier-descriptor.d.ts.map +1 -1
- package/dist/serializable-numeric-identifier-type.d.ts +22 -2
- package/dist/serializable-numeric-identifier-type.d.ts.map +1 -1
- package/dist/serializable-numeric-identifier-type.js +7 -1
- package/dist/serializable-numeric-identifier-type.js.map +1 -1
- package/dist/serializable-numeric-identifier-validator.d.ts +3 -18
- package/dist/serializable-numeric-identifier-validator.d.ts.map +1 -1
- package/dist/serializable-numeric-identifier-validator.js +17 -16
- package/dist/serializable-numeric-identifier-validator.js.map +1 -1
- package/package.json +4 -5
- package/src/abstract-identifier-creator.ts +104 -75
- package/src/abstract-non-gtin-numeric-identifier-creator.ts +81 -0
- package/src/abstract-numeric-identifier-creator.ts +185 -133
- package/src/content-character-set-creators.ts +9 -0
- package/src/gtin-creator.ts +15 -16
- package/src/gtin-descriptor.ts +9 -3
- package/src/gtin-length.ts +61 -0
- package/src/gtin-type.ts +6 -37
- package/src/gtin-validator.ts +34 -41
- package/src/identifier-creator.ts +4 -4
- package/src/identifier-creators.ts +177 -0
- package/src/{descriptors.ts → identifier-descriptors.ts} +56 -54
- package/src/identifier-extension.ts +155 -0
- package/src/identifier-validator.ts +93 -10
- package/src/{validators.ts → identifier-validators.ts} +98 -36
- package/src/index.ts +15 -9
- package/src/leader-type.ts +29 -0
- package/src/non-gtin-numeric-identifier-creator.ts +7 -22
- package/src/non-gtin-numeric-identifier-descriptor.ts +1 -1
- package/src/non-gtin-numeric-identifier-type.ts +14 -3
- package/src/non-gtin-numeric-identifier-validator.ts +5 -13
- package/src/non-numeric-identifier-creator.ts +15 -12
- package/src/non-numeric-identifier-type.ts +14 -3
- package/src/non-numeric-identifier-validator.ts +8 -9
- package/src/non-serializable-numeric-identifier-creator.ts +11 -0
- package/src/non-serializable-numeric-identifier-descriptor.ts +12 -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 +7 -6
- package/src/numeric-identifier-descriptor.ts +2 -1
- package/src/numeric-identifier-type.ts +17 -35
- package/src/numeric-identifier-validator.ts +61 -6
- package/src/prefix-manager.ts +76 -112
- package/src/serializable-numeric-identifier-creator.ts +10 -25
- package/src/serializable-numeric-identifier-descriptor.ts +1 -1
- package/src/serializable-numeric-identifier-type.ts +14 -5
- package/src/serializable-numeric-identifier-validator.ts +17 -16
- package/test/gtin-creator.ts +9 -2
- package/test/gtin-validator.test.ts +8 -10
- package/test/identifier-creator.ts +7 -7
- package/test/mixin.test.ts +35 -0
- package/test/non-gtin-numeric-identifier-validator.ts +7 -2
- package/test/non-numeric-identifier-validator.ts +2 -2
- 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 +7 -2
- package/test/serializable-numeric-identifier-validator.ts +2 -2
- package/test/utility.ts +6 -6
- package/test/validator.test.ts +11 -10
- package/test/variable-measure-rcn.test.ts +23 -23
- package/dist/abstract-identifier-validator.d.ts +0 -95
- package/dist/abstract-identifier-validator.d.ts.map +0 -1
- package/dist/abstract-identifier-validator.js +0 -123
- package/dist/abstract-identifier-validator.js.map +0 -1
- package/dist/abstract-numeric-identifier-validator.d.ts +0 -35
- package/dist/abstract-numeric-identifier-validator.d.ts.map +0 -1
- package/dist/abstract-numeric-identifier-validator.js +0 -61
- package/dist/abstract-numeric-identifier-validator.js.map +0 -1
- package/dist/creators.d.ts.map +0 -1
- package/dist/creators.js +0 -62
- package/dist/creators.js.map +0 -1
- package/dist/descriptors.d.ts.map +0 -1
- package/dist/descriptors.js.map +0 -1
- package/dist/validators.d.ts.map +0 -1
- package/dist/validators.js.map +0 -1
- package/src/abstract-identifier-validator.ts +0 -140
- package/src/abstract-numeric-identifier-validator.ts +0 -69
- package/src/creators.ts +0 -113
|
@@ -1,75 +1,41 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { AbstractConstructor } from "@aidc-toolkit/core";
|
|
2
2
|
import type { IdentifierCreator } from "./identifier-creator.js";
|
|
3
|
-
import type {
|
|
4
|
-
import type { IdentifierValidation } from "./identifier-validator.js";
|
|
3
|
+
import type { IdentifierType } from "./identifier-type.js";
|
|
4
|
+
import type { IdentifierValidation, IdentifierValidator } from "./identifier-validator.js";
|
|
5
|
+
import type { IdentifierTypeValidator, IdentifierValidatorConstructorsEntry } from "./identifier-validators.js";
|
|
5
6
|
import type { PrefixProvider } from "./prefix-provider.js";
|
|
6
7
|
/**
|
|
7
|
-
*
|
|
8
|
-
* PrefixProvider | prefix provider}.
|
|
8
|
+
* Identifier creator constructor type, which delegates to an identifier validator constructor.
|
|
9
9
|
*
|
|
10
|
-
* @template
|
|
11
|
-
* Identifier
|
|
10
|
+
* @template TIdentifierType
|
|
11
|
+
* Identifier type type.
|
|
12
12
|
*
|
|
13
13
|
* @template TIdentifierValidation
|
|
14
14
|
* Identifier validation type.
|
|
15
|
+
*
|
|
16
|
+
* @template TIdentifierValidator
|
|
17
|
+
* Identifier validator type.
|
|
18
|
+
*/
|
|
19
|
+
export type IdentifierCreatorConstructor<TIdentifierType extends IdentifierType, TIdentifierValidation extends IdentifierValidation, TIdentifierValidator extends IdentifierValidator<TIdentifierType, TIdentifierValidation>> = AbstractConstructor<[
|
|
20
|
+
prefixProvider: PrefixProvider,
|
|
21
|
+
prefix: string,
|
|
22
|
+
checkAllowance: number,
|
|
23
|
+
...args: ConstructorParameters<IdentifierValidatorConstructorsEntry<TIdentifierType>>
|
|
24
|
+
], TIdentifierValidator & IdentifierCreator<TIdentifierType, TIdentifierValidation>>;
|
|
25
|
+
/**
|
|
26
|
+
* Mixin implementation of {@linkcode IdentifierCreator} with an appropriate identifier validator base.
|
|
27
|
+
*
|
|
28
|
+
* @template TIdentifierType
|
|
29
|
+
* Identifier type type.
|
|
30
|
+
*
|
|
31
|
+
* @template TIdentifierValidation
|
|
32
|
+
* Identifier validation type.
|
|
33
|
+
*
|
|
34
|
+
* @param IdentifierValidatorConstructor
|
|
35
|
+
* Identifier validator base.
|
|
36
|
+
*
|
|
37
|
+
* @returns
|
|
38
|
+
* Identifier creator class.
|
|
15
39
|
*/
|
|
16
|
-
export declare
|
|
17
|
-
/**
|
|
18
|
-
* Prefix provider.
|
|
19
|
-
*/
|
|
20
|
-
private _prefixProvider;
|
|
21
|
-
/**
|
|
22
|
-
* Reference length.
|
|
23
|
-
*/
|
|
24
|
-
private _referenceLength;
|
|
25
|
-
/**
|
|
26
|
-
* Initialize the prefix provider. This method is in lieu of a constructor due to the mixin architecture.
|
|
27
|
-
*
|
|
28
|
-
* @param prefixProvider
|
|
29
|
-
* Prefix provider.
|
|
30
|
-
*
|
|
31
|
-
* @param prefix
|
|
32
|
-
* Prefix within prefix provider to use to calculate reference length.
|
|
33
|
-
*
|
|
34
|
-
* @param checkAllowance
|
|
35
|
-
* Number of characters to allow for check digit or check character pair.
|
|
36
|
-
*/
|
|
37
|
-
protected init(prefixProvider: PrefixProvider, prefix: string, checkAllowance: number): void;
|
|
38
|
-
/**
|
|
39
|
-
* @inheritDoc
|
|
40
|
-
*/
|
|
41
|
-
abstract get identifierType(): TIdentifierDescriptor["identifierType"];
|
|
42
|
-
/**
|
|
43
|
-
* @inheritDoc
|
|
44
|
-
*/
|
|
45
|
-
abstract get prefixType(): TIdentifierDescriptor["prefixType"];
|
|
46
|
-
/**
|
|
47
|
-
* @inheritDoc
|
|
48
|
-
*/
|
|
49
|
-
abstract get length(): number;
|
|
50
|
-
/**
|
|
51
|
-
* @inheritDoc
|
|
52
|
-
*/
|
|
53
|
-
abstract get referenceCharacterSet(): TIdentifierDescriptor["referenceCharacterSet"];
|
|
54
|
-
/**
|
|
55
|
-
* @inheritDoc
|
|
56
|
-
*/
|
|
57
|
-
abstract get referenceCreator(): CharacterSetCreator;
|
|
58
|
-
/**
|
|
59
|
-
* @inheritDoc
|
|
60
|
-
*/
|
|
61
|
-
get prefixProvider(): PrefixProvider;
|
|
62
|
-
/**
|
|
63
|
-
* @inheritDoc
|
|
64
|
-
*/
|
|
65
|
-
get prefix(): string;
|
|
66
|
-
/**
|
|
67
|
-
* @inheritDoc
|
|
68
|
-
*/
|
|
69
|
-
get referenceLength(): number;
|
|
70
|
-
/**
|
|
71
|
-
* @inheritDoc
|
|
72
|
-
*/
|
|
73
|
-
abstract validate(identifier: string, validation?: TIdentifierValidation): void;
|
|
74
|
-
}
|
|
40
|
+
export declare function MixinAbstractIdentifierCreator<TIdentifierType extends IdentifierType, TIdentifierValidation extends IdentifierValidation>(IdentifierValidatorConstructor: AbstractConstructor<ConstructorParameters<IdentifierValidatorConstructorsEntry<TIdentifierType>>, IdentifierTypeValidator<TIdentifierType>>): IdentifierCreatorConstructor<TIdentifierType, TIdentifierValidation, IdentifierTypeValidator<TIdentifierType>>;
|
|
75
41
|
//# sourceMappingURL=abstract-identifier-creator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstract-identifier-creator.d.ts","sourceRoot":"","sources":["../src/abstract-identifier-creator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"abstract-identifier-creator.d.ts","sourceRoot":"","sources":["../src/abstract-identifier-creator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAC3F,OAAO,KAAK,EAAE,uBAAuB,EAAE,oCAAoC,EAAE,MAAM,4BAA4B,CAAC;AAChH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,4BAA4B,CACpC,eAAe,SAAS,cAAc,EACtC,qBAAqB,SAAS,oBAAoB,EAClD,oBAAoB,SAAS,mBAAmB,CAAC,eAAe,EAAE,qBAAqB,CAAC,IACxF,mBAAmB,CACnB;IAAC,cAAc,EAAE,cAAc;IAAE,MAAM,EAAE,MAAM;IAAE,cAAc,EAAE,MAAM;IAAE,GAAG,IAAI,EAAE,qBAAqB,CAAC,oCAAoC,CAAC,eAAe,CAAC,CAAC;CAAC,EAC/J,oBAAoB,GAAG,iBAAiB,CAAC,eAAe,EAAE,qBAAqB,CAAC,CACnF,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,8BAA8B,CAC1C,eAAe,SAAS,cAAc,EACtC,qBAAqB,SAAS,oBAAoB,EACpD,8BAA8B,EAAE,mBAAmB,CACjD,qBAAqB,CAAC,oCAAoC,CAAC,eAAe,CAAC,CAAC,EAC5E,uBAAuB,CAAC,eAAe,CAAC,CAC3C,GAAG,4BAA4B,CAC5B,eAAe,EACf,qBAAqB,EACrB,uBAAuB,CAAC,eAAe,CAAC,CAC3C,CAwEA"}
|
|
@@ -1,56 +1,73 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* PrefixProvider | prefix provider}.
|
|
2
|
+
* Mixin implementation of {@linkcode IdentifierCreator} with an appropriate identifier validator base.
|
|
4
3
|
*
|
|
5
|
-
* @template
|
|
6
|
-
* Identifier
|
|
4
|
+
* @template TIdentifierType
|
|
5
|
+
* Identifier type type.
|
|
7
6
|
*
|
|
8
7
|
* @template TIdentifierValidation
|
|
9
8
|
* Identifier validation type.
|
|
9
|
+
*
|
|
10
|
+
* @param IdentifierValidatorConstructor
|
|
11
|
+
* Identifier validator base.
|
|
12
|
+
*
|
|
13
|
+
* @returns
|
|
14
|
+
* Identifier creator class.
|
|
10
15
|
*/
|
|
11
|
-
export
|
|
12
|
-
/**
|
|
13
|
-
* Prefix provider.
|
|
14
|
-
*/
|
|
15
|
-
_prefixProvider;
|
|
16
|
-
/**
|
|
17
|
-
* Reference length.
|
|
18
|
-
*/
|
|
19
|
-
_referenceLength;
|
|
20
|
-
/**
|
|
21
|
-
* Initialize the prefix provider. This method is in lieu of a constructor due to the mixin architecture.
|
|
22
|
-
*
|
|
23
|
-
* @param prefixProvider
|
|
24
|
-
* Prefix provider.
|
|
25
|
-
*
|
|
26
|
-
* @param prefix
|
|
27
|
-
* Prefix within prefix provider to use to calculate reference length.
|
|
28
|
-
*
|
|
29
|
-
* @param checkAllowance
|
|
30
|
-
* Number of characters to allow for check digit or check character pair.
|
|
31
|
-
*/
|
|
32
|
-
init(prefixProvider, prefix, checkAllowance) {
|
|
33
|
-
this._prefixProvider = prefixProvider;
|
|
34
|
-
// Reference length allows for prefix and optionally check digit or check character pair.
|
|
35
|
-
this._referenceLength = this.length - prefix.length - checkAllowance;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* @inheritDoc
|
|
39
|
-
*/
|
|
40
|
-
get prefixProvider() {
|
|
41
|
-
return this._prefixProvider;
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* @inheritDoc
|
|
45
|
-
*/
|
|
46
|
-
get prefix() {
|
|
47
|
-
return this.prefixProvider.gs1CompanyPrefix;
|
|
48
|
-
}
|
|
16
|
+
export function MixinAbstractIdentifierCreator(IdentifierValidatorConstructor) {
|
|
49
17
|
/**
|
|
50
|
-
*
|
|
18
|
+
* Abstract numeric identifier creator. Implements common functionality for a numeric identifier creator, mixed in
|
|
19
|
+
* with a matching numeric identifier validator.
|
|
51
20
|
*/
|
|
52
|
-
|
|
53
|
-
|
|
21
|
+
class AbstractIdentifierCreator extends IdentifierValidatorConstructor {
|
|
22
|
+
/**
|
|
23
|
+
* Prefix provider.
|
|
24
|
+
*/
|
|
25
|
+
#prefixProvider;
|
|
26
|
+
/**
|
|
27
|
+
* Reference length.
|
|
28
|
+
*/
|
|
29
|
+
#referenceLength;
|
|
30
|
+
/**
|
|
31
|
+
* Constructor.
|
|
32
|
+
*
|
|
33
|
+
* @param prefixProvider
|
|
34
|
+
* Prefix provider.
|
|
35
|
+
*
|
|
36
|
+
* @param prefix
|
|
37
|
+
* Prefix within prefix provider to use to calculate reference length.
|
|
38
|
+
*
|
|
39
|
+
* @param checkAllowance
|
|
40
|
+
* Number of characters to allow for check digit or check character pair.
|
|
41
|
+
*
|
|
42
|
+
* @param args
|
|
43
|
+
* Originating constructor arguments.
|
|
44
|
+
*/
|
|
45
|
+
constructor(prefixProvider, prefix, checkAllowance, ...args) {
|
|
46
|
+
super(...args);
|
|
47
|
+
this.#prefixProvider = prefixProvider;
|
|
48
|
+
// Reference length allows for prefix and optionally check digit or check character pair.
|
|
49
|
+
this.#referenceLength = this.length - prefix.length - checkAllowance;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* @inheritDoc
|
|
53
|
+
*/
|
|
54
|
+
get prefixProvider() {
|
|
55
|
+
return this.#prefixProvider;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* @inheritDoc
|
|
59
|
+
*/
|
|
60
|
+
get prefix() {
|
|
61
|
+
return this.prefixProvider.gs1CompanyPrefix;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* @inheritDoc
|
|
65
|
+
*/
|
|
66
|
+
get referenceLength() {
|
|
67
|
+
return this.#referenceLength;
|
|
68
|
+
}
|
|
54
69
|
}
|
|
70
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- Base class was upcast to type with statically known members for mixin, downcast result.
|
|
71
|
+
return AbstractIdentifierCreator;
|
|
55
72
|
}
|
|
56
73
|
//# sourceMappingURL=abstract-identifier-creator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstract-identifier-creator.js","sourceRoot":"","sources":["../src/abstract-identifier-creator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"abstract-identifier-creator.js","sourceRoot":"","sources":["../src/abstract-identifier-creator.ts"],"names":[],"mappings":"AA4BA;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,8BAA8B,CAG5C,8BAGD;IAKG;;;OAGG;IACH,MAAe,yBAA0B,SACrC,8BAIH;QACG;;WAEG;QACM,eAAe,CAAiB;QAEzC;;WAEG;QACM,gBAAgB,CAAS;QAElC;;;;;;;;;;;;;;WAcG;QACH,YAAY,cAA8B,EAAE,MAAc,EAAE,cAAsB,EAAE,GAAG,IAAkF;YACrK,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;YAEf,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;YAEtC,yFAAyF;YACzF,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,cAAc,CAAC;QACzE,CAAC;QAED;;WAEG;QACH,IAAI,cAAc;YACd,OAAO,IAAI,CAAC,eAAe,CAAC;QAChC,CAAC;QAED;;WAEG;QACH,IAAI,MAAM;YACN,OAAO,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC;QAChD,CAAC;QAED;;WAEG;QACH,IAAI,eAAe;YACf,OAAO,IAAI,CAAC,gBAAgB,CAAC;QACjC,CAAC;KACJ;IAED,kKAAkK;IAClK,OAAO,yBAGN,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { AbstractConstructor } from "@aidc-toolkit/core";
|
|
2
|
+
import type { IdentifierTypeValidator, IdentifierValidatorConstructorsEntry } from "./identifier-validators.js";
|
|
3
|
+
import type { NonGTINNumericIdentifierCreator } from "./non-gtin-numeric-identifier-creator.js";
|
|
4
|
+
import type { NonGTINNumericIdentifierType } from "./non-gtin-numeric-identifier-type.js";
|
|
5
|
+
import type { NonGTINNumericIdentifierValidator } from "./non-gtin-numeric-identifier-validator.js";
|
|
6
|
+
import type { PrefixProvider } from "./prefix-provider.js";
|
|
7
|
+
/**
|
|
8
|
+
* Non-GTIN numeric identifier creator constructor type, which delegates to a non-GTIN numeric identifier validator
|
|
9
|
+
* constructor.
|
|
10
|
+
*
|
|
11
|
+
* @template TNonGTINNumericIdentifierType
|
|
12
|
+
* Non-GTIN numeric identifier type type.
|
|
13
|
+
*
|
|
14
|
+
* @template TNonGTINNumericIdentifierValidator
|
|
15
|
+
* Non-GTIN numeric identifier validator type.
|
|
16
|
+
*/
|
|
17
|
+
type NonGTINNumericIdentifierCreatorConstructor<TNonGTINNumericIdentifierType extends NonGTINNumericIdentifierType, TNonGTINNumericIdentifierValidator extends NonGTINNumericIdentifierValidator<TNonGTINNumericIdentifierType>> = AbstractConstructor<[
|
|
18
|
+
prefixProvider: PrefixProvider,
|
|
19
|
+
...args: ConstructorParameters<IdentifierValidatorConstructorsEntry<TNonGTINNumericIdentifierType>>
|
|
20
|
+
], TNonGTINNumericIdentifierValidator & NonGTINNumericIdentifierCreator<TNonGTINNumericIdentifierType>>;
|
|
21
|
+
/**
|
|
22
|
+
* Mixin implementation of {@linkcode NonGTINNumericIdentifierCreator} with an appropriate non-GTIN numeric identifier
|
|
23
|
+
* validator base.
|
|
24
|
+
*
|
|
25
|
+
* @template TNonGTINNumericIdentifierType
|
|
26
|
+
* Non-GTIN numeric identifier type type.
|
|
27
|
+
*
|
|
28
|
+
* @param NonGTINNumericIdentifierValidatorConstructor
|
|
29
|
+
* Non-GTIN numeric identifier validator constructor.
|
|
30
|
+
*
|
|
31
|
+
* @returns
|
|
32
|
+
* Non-GTIN numeric identifier creator class.
|
|
33
|
+
*/
|
|
34
|
+
export declare function MixinAbstractNonGTINNumericIdentifierCreator<TNonGTINNumericIdentifierType extends NonGTINNumericIdentifierType>(NonGTINNumericIdentifierValidatorConstructor: AbstractConstructor<ConstructorParameters<IdentifierValidatorConstructorsEntry<TNonGTINNumericIdentifierType>>, IdentifierTypeValidator<TNonGTINNumericIdentifierType>>): NonGTINNumericIdentifierCreatorConstructor<TNonGTINNumericIdentifierType, IdentifierTypeValidator<TNonGTINNumericIdentifierType>>;
|
|
35
|
+
export {};
|
|
36
|
+
//# sourceMappingURL=abstract-non-gtin-numeric-identifier-creator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"abstract-non-gtin-numeric-identifier-creator.d.ts","sourceRoot":"","sources":["../src/abstract-non-gtin-numeric-identifier-creator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAK9D,OAAO,KAAK,EAAE,uBAAuB,EAAE,oCAAoC,EAAE,MAAM,4BAA4B,CAAC;AAChH,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,0CAA0C,CAAC;AAChG,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AAC1F,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,4CAA4C,CAAC;AACpG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D;;;;;;;;;GASG;AACH,KAAK,0CAA0C,CAC3C,6BAA6B,SAAS,4BAA4B,EAClE,kCAAkC,SAAS,iCAAiC,CAAC,6BAA6B,CAAC,IAC3G,mBAAmB,CACnB;IAAC,cAAc,EAAE,cAAc;IAAE,GAAG,IAAI,EAAE,qBAAqB,CAAC,oCAAoC,CAAC,6BAA6B,CAAC,CAAC;CAAC,EACrI,kCAAkC,GAAG,+BAA+B,CAAC,6BAA6B,CAAC,CACtG,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,wBAAgB,4CAA4C,CACxD,6BAA6B,SAAS,4BAA4B,EACpE,4CAA4C,EAAE,mBAAmB,CAC/D,qBAAqB,CAAC,oCAAoC,CAAC,6BAA6B,CAAC,CAAC,EAC1F,uBAAuB,CAAC,6BAA6B,CAAC,CACzD,GAAG,0CAA0C,CAC1C,6BAA6B,EAC7B,uBAAuB,CAAC,6BAA6B,CAAC,CACzD,CA8BA"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { MixinAbstractNumericIdentifierCreator } from "./abstract-numeric-identifier-creator.js";
|
|
2
|
+
/**
|
|
3
|
+
* Mixin implementation of {@linkcode NonGTINNumericIdentifierCreator} with an appropriate non-GTIN numeric identifier
|
|
4
|
+
* validator base.
|
|
5
|
+
*
|
|
6
|
+
* @template TNonGTINNumericIdentifierType
|
|
7
|
+
* Non-GTIN numeric identifier type type.
|
|
8
|
+
*
|
|
9
|
+
* @param NonGTINNumericIdentifierValidatorConstructor
|
|
10
|
+
* Non-GTIN numeric identifier validator constructor.
|
|
11
|
+
*
|
|
12
|
+
* @returns
|
|
13
|
+
* Non-GTIN numeric identifier creator class.
|
|
14
|
+
*/
|
|
15
|
+
export function MixinAbstractNonGTINNumericIdentifierCreator(NonGTINNumericIdentifierValidatorConstructor) {
|
|
16
|
+
/**
|
|
17
|
+
* Abstract non-GTIN numeric identifier creator. Implements common functionality for a non-GTIN numeric identifier
|
|
18
|
+
* creator, mixed in with a matching non-GTIN numeric identifier validator.
|
|
19
|
+
*/
|
|
20
|
+
class AbstractNonGTINNumericIdentifierCreator extends MixinAbstractNumericIdentifierCreator(NonGTINNumericIdentifierValidatorConstructor) {
|
|
21
|
+
/**
|
|
22
|
+
* Constructor.
|
|
23
|
+
*
|
|
24
|
+
* @param prefixProvider
|
|
25
|
+
* Prefix provider.
|
|
26
|
+
*
|
|
27
|
+
* @param args
|
|
28
|
+
* Originating constructor arguments.
|
|
29
|
+
*/
|
|
30
|
+
constructor(prefixProvider, ...args) {
|
|
31
|
+
super(prefixProvider, prefixProvider.gs1CompanyPrefix, ...args);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- Base class was upcast to type with statically known members for mixin, downcast result.
|
|
35
|
+
return AbstractNonGTINNumericIdentifierCreator;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=abstract-non-gtin-numeric-identifier-creator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"abstract-non-gtin-numeric-identifier-creator.js","sourceRoot":"","sources":["../src/abstract-non-gtin-numeric-identifier-creator.ts"],"names":[],"mappings":"AACA,OAAO,EACH,qCAAqC,EAExC,MAAM,0CAA0C,CAAC;AAyBlD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,4CAA4C,CAE1D,4CAGD;IAIG;;;OAGG;IACH,MAAe,uCAAwC,SACnD,qCAAqC,CAAC,4CAA4C,CAIrF;QACG;;;;;;;;WAQG;QACH,YAAY,cAA8B,EAAE,GAAG,IAAgG;YAC3I,KAAK,CAAC,cAAc,EAAE,cAAc,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC,CAAC;QACpE,CAAC;KACJ;IAED,kKAAkK;IAClK,OAAO,uCAGN,CAAC;AACN,CAAC"}
|
|
@@ -1,92 +1,34 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
1
|
+
import type { AbstractConstructor } from "@aidc-toolkit/core";
|
|
2
|
+
import type { IdentifierTypeValidator, IdentifierValidatorConstructorsEntry } from "./identifier-validators.js";
|
|
3
3
|
import type { NumericIdentifierCreator } from "./numeric-identifier-creator.js";
|
|
4
|
-
import type {
|
|
5
|
-
import {
|
|
6
|
-
import type { NumericIdentifierValidation } from "./numeric-identifier-validator.js";
|
|
4
|
+
import type { NumericIdentifierType } from "./numeric-identifier-type.js";
|
|
5
|
+
import type { NumericIdentifierValidator } from "./numeric-identifier-validator.js";
|
|
7
6
|
import type { PrefixProvider } from "./prefix-provider.js";
|
|
8
7
|
/**
|
|
9
|
-
*
|
|
8
|
+
* Numeric identifier creator constructor type, which delegates to a numeric identifier validator constructor.
|
|
10
9
|
*
|
|
11
|
-
* @template
|
|
12
|
-
* Numeric identifier
|
|
10
|
+
* @template TNumericIdentifierType
|
|
11
|
+
* Numeric identifier type type.
|
|
12
|
+
*
|
|
13
|
+
* @template TNumericIdentifierValidator
|
|
14
|
+
* Numeric identifier validator type.
|
|
15
|
+
*/
|
|
16
|
+
export type NumericIdentifierCreatorConstructor<TNumericIdentifierType extends NumericIdentifierType, TNumericIdentifierValidator extends NumericIdentifierValidator<TNumericIdentifierType>> = AbstractConstructor<[
|
|
17
|
+
prefixProvider: PrefixProvider,
|
|
18
|
+
prefix: string,
|
|
19
|
+
...args: ConstructorParameters<IdentifierValidatorConstructorsEntry<TNumericIdentifierType>>
|
|
20
|
+
], TNumericIdentifierValidator & NumericIdentifierCreator<TNumericIdentifierType>>;
|
|
21
|
+
/**
|
|
22
|
+
* Mixin implementation of {@linkcode NumericIdentifierCreator} with an appropriate numeric identifier validator base.
|
|
23
|
+
*
|
|
24
|
+
* @template TNumericIdentifierType
|
|
25
|
+
* Numeric identifier type type.
|
|
26
|
+
*
|
|
27
|
+
* @param NumericIdentifierValidatorConstructor
|
|
28
|
+
* Numeric identifier validator base.
|
|
29
|
+
*
|
|
30
|
+
* @returns
|
|
31
|
+
* Numeric identifier creator class.
|
|
13
32
|
*/
|
|
14
|
-
export declare
|
|
15
|
-
/**
|
|
16
|
-
* Capacity.
|
|
17
|
-
*/
|
|
18
|
-
private _capacity;
|
|
19
|
-
/**
|
|
20
|
-
* Tweak for sparse creation.
|
|
21
|
-
*/
|
|
22
|
-
private _tweak;
|
|
23
|
-
/**
|
|
24
|
-
* Initialize the prefix provider. This method is in lieu of a constructor due to the mixin architecture.
|
|
25
|
-
*
|
|
26
|
-
* @param prefixProvider
|
|
27
|
-
* Prefix provider.
|
|
28
|
-
*
|
|
29
|
-
* @param prefix
|
|
30
|
-
* Prefix within prefix manager to use to calculate reference length.
|
|
31
|
-
*/
|
|
32
|
-
protected init(prefixProvider: PrefixProvider, prefix: string): void;
|
|
33
|
-
/**
|
|
34
|
-
* Get the leader type.
|
|
35
|
-
*/
|
|
36
|
-
abstract get leaderType(): LeaderType;
|
|
37
|
-
/**
|
|
38
|
-
* @inheritDoc
|
|
39
|
-
*/
|
|
40
|
-
get capacity(): number;
|
|
41
|
-
/**
|
|
42
|
-
* @inheritDoc
|
|
43
|
-
*/
|
|
44
|
-
get tweak(): bigint;
|
|
45
|
-
/**
|
|
46
|
-
* @inheritDoc
|
|
47
|
-
*/
|
|
48
|
-
set tweak(value: bigint);
|
|
49
|
-
/**
|
|
50
|
-
* Build an identifier from a reference by merging it with the prefix and adding the check digit.
|
|
51
|
-
*
|
|
52
|
-
* @param reference
|
|
53
|
-
* Identifier reference.
|
|
54
|
-
*
|
|
55
|
-
* @returns
|
|
56
|
-
* Identifier.
|
|
57
|
-
*/
|
|
58
|
-
private buildIdentifier;
|
|
59
|
-
/**
|
|
60
|
-
* @inheritDoc
|
|
61
|
-
*/
|
|
62
|
-
create<TTransformerInput extends TransformerInput<number | bigint>>(valueOrValues: TTransformerInput, sparse?: boolean): TransformerOutput<TTransformerInput, string>;
|
|
63
|
-
/**
|
|
64
|
-
* Create all identifiers from a partial identifier. Call is recursive until remaining reference
|
|
65
|
-
* length is 0.
|
|
66
|
-
*
|
|
67
|
-
* @param partialIdentifier
|
|
68
|
-
* Partial identifier. Initial value is `this.prefix`.
|
|
69
|
-
*
|
|
70
|
-
* @param remainingReferenceLength
|
|
71
|
-
* Remaining reference length. Initial value is `this.referenceLength`.
|
|
72
|
-
*
|
|
73
|
-
* @param extensionWeight
|
|
74
|
-
* If this value is not zero, the identifier has an extension digit, this call is setting it, and this value is
|
|
75
|
-
* applied to the calculation of the check digit.
|
|
76
|
-
*
|
|
77
|
-
* @param weight
|
|
78
|
-
* If the extension weight is zero, this value is applied to the calculation of the check digit.
|
|
79
|
-
*
|
|
80
|
-
* @param partialCheckDigitSum
|
|
81
|
-
* Partial check digit sum for the partial identifier.
|
|
82
|
-
*
|
|
83
|
-
* @yields
|
|
84
|
-
* Identifier.
|
|
85
|
-
*/
|
|
86
|
-
private static createAllPartial;
|
|
87
|
-
/**
|
|
88
|
-
* @inheritDoc
|
|
89
|
-
*/
|
|
90
|
-
createAll(): Iterable<string>;
|
|
91
|
-
}
|
|
33
|
+
export declare function MixinAbstractNumericIdentifierCreator<TNumericIdentifierType extends NumericIdentifierType>(NumericIdentifierValidatorConstructor: AbstractConstructor<ConstructorParameters<IdentifierValidatorConstructorsEntry<TNumericIdentifierType>>, IdentifierTypeValidator<TNumericIdentifierType>>): NumericIdentifierCreatorConstructor<TNumericIdentifierType, IdentifierTypeValidator<TNumericIdentifierType>>;
|
|
92
34
|
//# sourceMappingURL=abstract-numeric-identifier-creator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstract-numeric-identifier-creator.d.ts","sourceRoot":"","sources":["../src/abstract-numeric-identifier-creator.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"abstract-numeric-identifier-creator.d.ts","sourceRoot":"","sources":["../src/abstract-numeric-identifier-creator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAU9D,OAAO,KAAK,EAAE,uBAAuB,EAAE,oCAAoC,EAAE,MAAM,4BAA4B,CAAC;AAEhH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,KAAK,EAA+B,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AACjH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D;;;;;;;;GAQG;AACH,MAAM,MAAM,mCAAmC,CAC3C,sBAAsB,SAAS,qBAAqB,EACpD,2BAA2B,SAAS,0BAA0B,CAAC,sBAAsB,CAAC,IACtF,mBAAmB,CACnB;IAAC,cAAc,EAAE,cAAc;IAAE,MAAM,EAAE,MAAM;IAAE,GAAG,IAAI,EAAE,qBAAqB,CAAC,oCAAoC,CAAC,sBAAsB,CAAC,CAAC;CAAC,EAC9I,2BAA2B,GAAG,wBAAwB,CAAC,sBAAsB,CAAC,CACjF,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAgB,qCAAqC,CACjD,sBAAsB,SAAS,qBAAqB,EACtD,qCAAqC,EAAE,mBAAmB,CACxD,qBAAqB,CAAC,oCAAoC,CAAC,sBAAsB,CAAC,CAAC,EACnF,uBAAuB,CAAC,sBAAsB,CAAC,CAClD,GAAG,mCAAmC,CACnC,sBAAsB,EACtB,uBAAuB,CAAC,sBAAsB,CAAC,CAClD,CAqKA"}
|