@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.
Files changed (205) hide show
  1. package/dist/abstract-identifier-creator.d.ts +32 -66
  2. package/dist/abstract-identifier-creator.d.ts.map +1 -1
  3. package/dist/abstract-identifier-creator.js +62 -45
  4. package/dist/abstract-identifier-creator.js.map +1 -1
  5. package/dist/abstract-non-gtin-numeric-identifier-creator.d.ts +36 -0
  6. package/dist/abstract-non-gtin-numeric-identifier-creator.d.ts.map +1 -0
  7. package/dist/abstract-non-gtin-numeric-identifier-creator.js +37 -0
  8. package/dist/abstract-non-gtin-numeric-identifier-creator.js.map +1 -0
  9. package/dist/abstract-numeric-identifier-creator.d.ts +28 -86
  10. package/dist/abstract-numeric-identifier-creator.d.ts.map +1 -1
  11. package/dist/abstract-numeric-identifier-creator.js +138 -121
  12. package/dist/abstract-numeric-identifier-creator.js.map +1 -1
  13. package/dist/content-character-set-creators.d.ts +4 -0
  14. package/dist/content-character-set-creators.d.ts.map +1 -0
  15. package/dist/content-character-set-creators.js +9 -0
  16. package/dist/content-character-set-creators.js.map +1 -0
  17. package/dist/gtin-creator.d.ts +8 -13
  18. package/dist/gtin-creator.d.ts.map +1 -1
  19. package/dist/gtin-creator.js +12 -15
  20. package/dist/gtin-creator.js.map +1 -1
  21. package/dist/gtin-descriptor.d.ts +8 -3
  22. package/dist/gtin-descriptor.d.ts.map +1 -1
  23. package/dist/gtin-length.d.ts +64 -0
  24. package/dist/gtin-length.d.ts.map +1 -0
  25. package/dist/gtin-length.js +36 -0
  26. package/dist/gtin-length.js.map +1 -0
  27. package/dist/gtin-type.d.ts +15 -28
  28. package/dist/gtin-type.d.ts.map +1 -1
  29. package/dist/gtin-type.js +4 -28
  30. package/dist/gtin-type.js.map +1 -1
  31. package/dist/gtin-validator.d.ts +9 -23
  32. package/dist/gtin-validator.d.ts.map +1 -1
  33. package/dist/gtin-validator.js +32 -39
  34. package/dist/gtin-validator.js.map +1 -1
  35. package/dist/identifier-creator.d.ts +4 -4
  36. package/dist/identifier-creator.d.ts.map +1 -1
  37. package/dist/{creators.d.ts → identifier-creators.d.ts} +47 -10
  38. package/dist/identifier-creators.d.ts.map +1 -0
  39. package/dist/identifier-creators.js +92 -0
  40. package/dist/identifier-creators.js.map +1 -0
  41. package/dist/{descriptors.d.ts → identifier-descriptors.d.ts} +20 -10
  42. package/dist/identifier-descriptors.d.ts.map +1 -0
  43. package/dist/{descriptors.js → identifier-descriptors.js} +27 -31
  44. package/dist/identifier-descriptors.js.map +1 -0
  45. package/dist/identifier-extension.d.ts +82 -0
  46. package/dist/identifier-extension.d.ts.map +1 -0
  47. package/dist/identifier-extension.js +79 -0
  48. package/dist/identifier-extension.js.map +1 -0
  49. package/dist/identifier-validator.d.ts +44 -9
  50. package/dist/identifier-validator.d.ts.map +1 -1
  51. package/dist/identifier-validator.js +109 -1
  52. package/dist/identifier-validator.js.map +1 -1
  53. package/dist/{validators.d.ts → identifier-validators.d.ts} +47 -12
  54. package/dist/identifier-validators.d.ts.map +1 -0
  55. package/dist/{validators.js → identifier-validators.js} +40 -13
  56. package/dist/identifier-validators.js.map +1 -0
  57. package/dist/index.d.ts +15 -9
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/index.js +13 -4
  60. package/dist/index.js.map +1 -1
  61. package/dist/leader-type.d.ts +26 -0
  62. package/dist/leader-type.d.ts.map +1 -0
  63. package/dist/leader-type.js +18 -0
  64. package/dist/leader-type.js.map +1 -0
  65. package/dist/non-gtin-numeric-identifier-creator.d.ts +7 -19
  66. package/dist/non-gtin-numeric-identifier-creator.d.ts.map +1 -1
  67. package/dist/non-gtin-numeric-identifier-creator.js +1 -22
  68. package/dist/non-gtin-numeric-identifier-creator.js.map +1 -1
  69. package/dist/non-gtin-numeric-identifier-descriptor.d.ts +1 -1
  70. package/dist/non-gtin-numeric-identifier-descriptor.d.ts.map +1 -1
  71. package/dist/non-gtin-numeric-identifier-type.d.ts +22 -3
  72. package/dist/non-gtin-numeric-identifier-type.d.ts.map +1 -1
  73. package/dist/non-gtin-numeric-identifier-type.js +7 -1
  74. package/dist/non-gtin-numeric-identifier-type.js.map +1 -1
  75. package/dist/non-gtin-numeric-identifier-validator.d.ts +5 -10
  76. package/dist/non-gtin-numeric-identifier-validator.d.ts.map +1 -1
  77. package/dist/non-gtin-numeric-identifier-validator.js +5 -12
  78. package/dist/non-gtin-numeric-identifier-validator.js.map +1 -1
  79. package/dist/non-numeric-identifier-creator.d.ts +4 -9
  80. package/dist/non-numeric-identifier-creator.d.ts.map +1 -1
  81. package/dist/non-numeric-identifier-creator.js +8 -10
  82. package/dist/non-numeric-identifier-creator.js.map +1 -1
  83. package/dist/non-numeric-identifier-type.d.ts +22 -3
  84. package/dist/non-numeric-identifier-type.d.ts.map +1 -1
  85. package/dist/non-numeric-identifier-type.js +7 -1
  86. package/dist/non-numeric-identifier-type.js.map +1 -1
  87. package/dist/non-numeric-identifier-validator.d.ts +3 -11
  88. package/dist/non-numeric-identifier-validator.d.ts.map +1 -1
  89. package/dist/non-numeric-identifier-validator.js +8 -8
  90. package/dist/non-numeric-identifier-validator.js.map +1 -1
  91. package/dist/non-serializable-numeric-identifier-creator.d.ts +10 -0
  92. package/dist/non-serializable-numeric-identifier-creator.d.ts.map +1 -0
  93. package/dist/non-serializable-numeric-identifier-creator.js +8 -0
  94. package/dist/non-serializable-numeric-identifier-creator.js.map +1 -0
  95. package/dist/non-serializable-numeric-identifier-descriptor.d.ts +12 -0
  96. package/dist/non-serializable-numeric-identifier-descriptor.d.ts.map +1 -0
  97. package/dist/non-serializable-numeric-identifier-descriptor.js +2 -0
  98. package/dist/non-serializable-numeric-identifier-descriptor.js.map +1 -0
  99. package/dist/non-serializable-numeric-identifier-type.d.ts +26 -0
  100. package/dist/non-serializable-numeric-identifier-type.d.ts.map +1 -0
  101. package/dist/non-serializable-numeric-identifier-type.js +7 -0
  102. package/dist/non-serializable-numeric-identifier-type.js.map +1 -0
  103. package/dist/non-serializable-numeric-identifier-validator.d.ts +16 -0
  104. package/dist/non-serializable-numeric-identifier-validator.d.ts.map +1 -0
  105. package/dist/non-serializable-numeric-identifier-validator.js +17 -0
  106. package/dist/non-serializable-numeric-identifier-validator.js.map +1 -0
  107. package/dist/numeric-identifier-creator.d.ts +6 -6
  108. package/dist/numeric-identifier-creator.d.ts.map +1 -1
  109. package/dist/numeric-identifier-descriptor.d.ts +2 -1
  110. package/dist/numeric-identifier-descriptor.d.ts.map +1 -1
  111. package/dist/numeric-identifier-type.d.ts +19 -24
  112. package/dist/numeric-identifier-type.d.ts.map +1 -1
  113. package/dist/numeric-identifier-type.js +4 -15
  114. package/dist/numeric-identifier-type.js.map +1 -1
  115. package/dist/numeric-identifier-validator.d.ts +20 -6
  116. package/dist/numeric-identifier-validator.d.ts.map +1 -1
  117. package/dist/numeric-identifier-validator.js +60 -1
  118. package/dist/numeric-identifier-validator.js.map +1 -1
  119. package/dist/prefix-manager.d.ts +13 -94
  120. package/dist/prefix-manager.d.ts.map +1 -1
  121. package/dist/prefix-manager.js +65 -102
  122. package/dist/prefix-manager.js.map +1 -1
  123. package/dist/serializable-numeric-identifier-creator.d.ts +3 -31
  124. package/dist/serializable-numeric-identifier-creator.d.ts.map +1 -1
  125. package/dist/serializable-numeric-identifier-creator.js +7 -21
  126. package/dist/serializable-numeric-identifier-creator.js.map +1 -1
  127. package/dist/serializable-numeric-identifier-descriptor.d.ts +1 -1
  128. package/dist/serializable-numeric-identifier-descriptor.d.ts.map +1 -1
  129. package/dist/serializable-numeric-identifier-type.d.ts +22 -2
  130. package/dist/serializable-numeric-identifier-type.d.ts.map +1 -1
  131. package/dist/serializable-numeric-identifier-type.js +7 -1
  132. package/dist/serializable-numeric-identifier-type.js.map +1 -1
  133. package/dist/serializable-numeric-identifier-validator.d.ts +3 -18
  134. package/dist/serializable-numeric-identifier-validator.d.ts.map +1 -1
  135. package/dist/serializable-numeric-identifier-validator.js +17 -16
  136. package/dist/serializable-numeric-identifier-validator.js.map +1 -1
  137. package/package.json +4 -5
  138. package/src/abstract-identifier-creator.ts +104 -75
  139. package/src/abstract-non-gtin-numeric-identifier-creator.ts +81 -0
  140. package/src/abstract-numeric-identifier-creator.ts +185 -133
  141. package/src/content-character-set-creators.ts +9 -0
  142. package/src/gtin-creator.ts +15 -16
  143. package/src/gtin-descriptor.ts +9 -3
  144. package/src/gtin-length.ts +61 -0
  145. package/src/gtin-type.ts +6 -37
  146. package/src/gtin-validator.ts +34 -41
  147. package/src/identifier-creator.ts +4 -4
  148. package/src/identifier-creators.ts +177 -0
  149. package/src/{descriptors.ts → identifier-descriptors.ts} +56 -54
  150. package/src/identifier-extension.ts +155 -0
  151. package/src/identifier-validator.ts +93 -10
  152. package/src/{validators.ts → identifier-validators.ts} +98 -36
  153. package/src/index.ts +15 -9
  154. package/src/leader-type.ts +29 -0
  155. package/src/non-gtin-numeric-identifier-creator.ts +7 -22
  156. package/src/non-gtin-numeric-identifier-descriptor.ts +1 -1
  157. package/src/non-gtin-numeric-identifier-type.ts +14 -3
  158. package/src/non-gtin-numeric-identifier-validator.ts +5 -13
  159. package/src/non-numeric-identifier-creator.ts +15 -12
  160. package/src/non-numeric-identifier-type.ts +14 -3
  161. package/src/non-numeric-identifier-validator.ts +8 -9
  162. package/src/non-serializable-numeric-identifier-creator.ts +11 -0
  163. package/src/non-serializable-numeric-identifier-descriptor.ts +12 -0
  164. package/src/non-serializable-numeric-identifier-type.ts +22 -0
  165. package/src/non-serializable-numeric-identifier-validator.ts +19 -0
  166. package/src/numeric-identifier-creator.ts +7 -6
  167. package/src/numeric-identifier-descriptor.ts +2 -1
  168. package/src/numeric-identifier-type.ts +17 -35
  169. package/src/numeric-identifier-validator.ts +61 -6
  170. package/src/prefix-manager.ts +76 -112
  171. package/src/serializable-numeric-identifier-creator.ts +10 -25
  172. package/src/serializable-numeric-identifier-descriptor.ts +1 -1
  173. package/src/serializable-numeric-identifier-type.ts +14 -5
  174. package/src/serializable-numeric-identifier-validator.ts +17 -16
  175. package/test/gtin-creator.ts +9 -2
  176. package/test/gtin-validator.test.ts +8 -10
  177. package/test/identifier-creator.ts +7 -7
  178. package/test/mixin.test.ts +35 -0
  179. package/test/non-gtin-numeric-identifier-validator.ts +7 -2
  180. package/test/non-numeric-identifier-validator.ts +2 -2
  181. package/test/non-serializable-numeric-identifier-creator.ts +64 -0
  182. package/test/non-serializable-numeric-identifier-validator.ts +6 -0
  183. package/test/numeric-identifier-creator.ts +7 -2
  184. package/test/serializable-numeric-identifier-validator.ts +2 -2
  185. package/test/utility.ts +6 -6
  186. package/test/validator.test.ts +11 -10
  187. package/test/variable-measure-rcn.test.ts +23 -23
  188. package/dist/abstract-identifier-validator.d.ts +0 -95
  189. package/dist/abstract-identifier-validator.d.ts.map +0 -1
  190. package/dist/abstract-identifier-validator.js +0 -123
  191. package/dist/abstract-identifier-validator.js.map +0 -1
  192. package/dist/abstract-numeric-identifier-validator.d.ts +0 -35
  193. package/dist/abstract-numeric-identifier-validator.d.ts.map +0 -1
  194. package/dist/abstract-numeric-identifier-validator.js +0 -61
  195. package/dist/abstract-numeric-identifier-validator.js.map +0 -1
  196. package/dist/creators.d.ts.map +0 -1
  197. package/dist/creators.js +0 -62
  198. package/dist/creators.js.map +0 -1
  199. package/dist/descriptors.d.ts.map +0 -1
  200. package/dist/descriptors.js.map +0 -1
  201. package/dist/validators.d.ts.map +0 -1
  202. package/dist/validators.js.map +0 -1
  203. package/src/abstract-identifier-validator.ts +0 -140
  204. package/src/abstract-numeric-identifier-validator.ts +0 -69
  205. package/src/creators.ts +0 -113
@@ -1,123 +0,0 @@
1
- import { NUMERIC_CREATOR } from "@aidc-toolkit/utility";
2
- import { AI39_CREATOR, AI82_CREATOR } from "./character-set.js";
3
- import { ContentCharacterSets } from "./content-character-set.js";
4
- import { PrefixTypes } from "./prefix-type.js";
5
- import { PrefixValidator } from "./prefix-validator.js";
6
- /**
7
- * Abstract identifier validator. Implements common functionality for an identifier validator.
8
- *
9
- * @template TIdentifierDescriptor
10
- * Identifier descriptor type.
11
- *
12
- * @template TIdentifierValidation
13
- * Identifier validation type.
14
- */
15
- export class AbstractIdentifierValidator {
16
- static CHARACTER_SET_CREATORS = {
17
- [ContentCharacterSets.Numeric]: NUMERIC_CREATOR,
18
- [ContentCharacterSets.AI82]: AI82_CREATOR,
19
- [ContentCharacterSets.AI39]: AI39_CREATOR
20
- };
21
- /**
22
- * Identifier type.
23
- */
24
- _identifierType;
25
- /**
26
- * Length.
27
- */
28
- _length;
29
- /**
30
- * Reference character set.
31
- */
32
- _referenceCharacterSet;
33
- /**
34
- * Reference creator.
35
- */
36
- _referenceCreator;
37
- /**
38
- * Get the character set creator for a character set.
39
- *
40
- * @param characterSet
41
- * Character set.
42
- *
43
- * @returns
44
- * Character set creator.
45
- */
46
- static creatorFor(characterSet) {
47
- return AbstractIdentifierValidator.CHARACTER_SET_CREATORS[characterSet];
48
- }
49
- /**
50
- * Constructor.
51
- *
52
- * @param identifierDescriptor
53
- * Identifier descriptor.
54
- */
55
- constructor(identifierDescriptor) {
56
- this._identifierType = identifierDescriptor.identifierType;
57
- this._length = identifierDescriptor.length;
58
- this._referenceCharacterSet = identifierDescriptor.referenceCharacterSet;
59
- this._referenceCreator = AbstractIdentifierValidator.creatorFor(identifierDescriptor.referenceCharacterSet);
60
- }
61
- /**
62
- * @inheritDoc
63
- */
64
- get identifierType() {
65
- return this._identifierType;
66
- }
67
- /**
68
- * @inheritDoc
69
- */
70
- get prefixType() {
71
- // All identifier types except GTIN support only the GS1 Company Prefix.
72
- return PrefixTypes.GS1CompanyPrefix;
73
- }
74
- /**
75
- * @inheritDoc
76
- */
77
- get length() {
78
- return this._length;
79
- }
80
- /**
81
- * @inheritDoc
82
- */
83
- get referenceCharacterSet() {
84
- return this._referenceCharacterSet;
85
- }
86
- /**
87
- * @inheritDoc
88
- */
89
- get referenceCreator() {
90
- return this._referenceCreator;
91
- }
92
- /**
93
- * Pad an identifier on the left with zero-value character for validation purposes. This is done to align an
94
- * identifier with a position offset for any error message that may be thrown by the reference validator.
95
- *
96
- * @param identifier
97
- * Identifier.
98
- *
99
- * @param positionOffset
100
- * Position offset within a larger string.
101
- *
102
- * @returns
103
- * Padded identifier.
104
- */
105
- padIdentifier(identifier, positionOffset) {
106
- // Identifier is returned as is if position offset is undefined.
107
- return positionOffset === undefined ? identifier : this.referenceCreator.character(0).repeat(positionOffset).concat(identifier);
108
- }
109
- /**
110
- * Validate the prefix within an identifier.
111
- *
112
- * @param partialIdentifier
113
- * Partial identifier.
114
- *
115
- * @param positionOffset
116
- * Position offset within a larger string.
117
- */
118
- validatePrefix(partialIdentifier, positionOffset) {
119
- // Delegate to prefix validator with support for U.P.C. Company Prefix but not GS1-8 Prefix.
120
- PrefixValidator.validate(this.prefixType, true, false, partialIdentifier, true, this.referenceCharacterSet === ContentCharacterSets.Numeric, positionOffset);
121
- }
122
- }
123
- //# sourceMappingURL=abstract-identifier-validator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"abstract-identifier-validator.js","sourceRoot":"","sources":["../src/abstract-identifier-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAA4B,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAG5F,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD;;;;;;;;GAQG;AACH,MAAM,OAAgB,2BAA2B;IACrC,MAAM,CAAU,sBAAsB,GAAqD;QAC/F,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,eAAe;QAC/C,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,YAAY;QACzC,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,YAAY;KAC5C,CAAC;IAEF;;OAEG;IACc,eAAe,CAA0C;IAE1E;;OAEG;IACc,OAAO,CAAS;IAEjC;;OAEG;IACc,sBAAsB,CAAiD;IAExF;;OAEG;IACc,iBAAiB,CAAsB;IAExD;;;;;;;;OAQG;IACO,MAAM,CAAC,UAAU,CAAC,YAAiC;QACzD,OAAO,2BAA2B,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC;IAC5E,CAAC;IAED;;;;;OAKG;IACH,YAAsB,oBAA0C;QAC5D,IAAI,CAAC,eAAe,GAAG,oBAAoB,CAAC,cAAc,CAAC;QAC3D,IAAI,CAAC,OAAO,GAAG,oBAAoB,CAAC,MAAM,CAAC;QAC3C,IAAI,CAAC,sBAAsB,GAAG,oBAAoB,CAAC,qBAAqB,CAAC;QACzE,IAAI,CAAC,iBAAiB,GAAG,2BAA2B,CAAC,UAAU,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,CAAC;IAChH,CAAC;IAED;;OAEG;IACH,IAAI,cAAc;QACd,OAAO,IAAI,CAAC,eAAe,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,IAAI,UAAU;QACV,wEAAwE;QACxE,OAAO,WAAW,CAAC,gBAAgB,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,IAAI,qBAAqB;QACrB,OAAO,IAAI,CAAC,sBAAsB,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,IAAI,gBAAgB;QAChB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAClC,CAAC;IAED;;;;;;;;;;;;OAYG;IACO,aAAa,CAAC,UAAkB,EAAE,cAAuB;QAC/D,gEAAgE;QAChE,OAAO,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACpI,CAAC;IAED;;;;;;;;OAQG;IACO,cAAc,CAAC,iBAAyB,EAAE,cAAuB;QACvE,4FAA4F;QAC5F,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,IAAI,CAAC,qBAAqB,KAAK,oBAAoB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IACjK,CAAC"}
@@ -1,35 +0,0 @@
1
- import { AbstractIdentifierValidator } from "./abstract-identifier-validator.js";
2
- import type { NumericIdentifierDescriptor } from "./numeric-identifier-descriptor.js";
3
- import type { NumericIdentifierValidation, NumericIdentifierValidator } from "./numeric-identifier-validator.js";
4
- /**
5
- * Abstract numeric identifier validator.
6
- *
7
- * @template TNumericIdentifierDescriptor
8
- * Numeric identifier descriptor type.
9
- */
10
- export declare abstract class AbstractNumericIdentifierValidator<TNumericIdentifierDescriptor extends NumericIdentifierDescriptor> extends AbstractIdentifierValidator<TNumericIdentifierDescriptor, NumericIdentifierValidation> implements NumericIdentifierValidator<TNumericIdentifierDescriptor> {
11
- /**
12
- * Leader type.
13
- */
14
- private readonly _leaderType;
15
- /**
16
- * Prefix position, determined by the leader type.
17
- */
18
- private readonly _prefixPosition;
19
- /**
20
- * Constructor.
21
- *
22
- * @param identifierDescriptor
23
- * Identifier descriptor.
24
- */
25
- constructor(identifierDescriptor: NumericIdentifierDescriptor);
26
- /**
27
- * @inheritDoc
28
- */
29
- get leaderType(): TNumericIdentifierDescriptor["leaderType"];
30
- /**
31
- * @inheritDoc
32
- */
33
- validate(identifier: string, validation?: NumericIdentifierValidation): void;
34
- }
35
- //# sourceMappingURL=abstract-numeric-identifier-validator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"abstract-numeric-identifier-validator.d.ts","sourceRoot":"","sources":["../src/abstract-numeric-identifier-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AAGjF,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AAEtF,OAAO,KAAK,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAEjH;;;;;GAKG;AACH,8BAAsB,kCAAkC,CAAC,4BAA4B,SAAS,2BAA2B,CAAE,SAAQ,2BAA2B,CAAC,4BAA4B,EAAE,2BAA2B,CAAE,YAAW,0BAA0B,CAAC,4BAA4B,CAAC;IACzR;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6C;IAEzE;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IAEzC;;;;;OAKG;gBACS,oBAAoB,EAAE,2BAA2B;IAO7D;;OAEG;IACH,IAAI,UAAU,IAAI,4BAA4B,CAAC,YAAY,CAAC,CAE3D;IAED;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,2BAA2B,GAAG,IAAI;CAqB/E"}
@@ -1,61 +0,0 @@
1
- import { AbstractIdentifierValidator } from "./abstract-identifier-validator.js";
2
- import { hasValidCheckDigit } from "./check.js";
3
- import { i18nextGS1 } from "./locale/i18n.js";
4
- import { LeaderTypes } from "./numeric-identifier-type.js";
5
- /**
6
- * Abstract numeric identifier validator.
7
- *
8
- * @template TNumericIdentifierDescriptor
9
- * Numeric identifier descriptor type.
10
- */
11
- export class AbstractNumericIdentifierValidator extends AbstractIdentifierValidator {
12
- /**
13
- * Leader type.
14
- */
15
- _leaderType;
16
- /**
17
- * Prefix position, determined by the leader type.
18
- */
19
- _prefixPosition;
20
- /**
21
- * Constructor.
22
- *
23
- * @param identifierDescriptor
24
- * Identifier descriptor.
25
- */
26
- constructor(identifierDescriptor) {
27
- super(identifierDescriptor);
28
- this._leaderType = identifierDescriptor.leaderType;
29
- this._prefixPosition = Number(this.leaderType === LeaderTypes.ExtensionDigit);
30
- }
31
- /**
32
- * @inheritDoc
33
- */
34
- get leaderType() {
35
- return this._leaderType;
36
- }
37
- /**
38
- * @inheritDoc
39
- */
40
- validate(identifier, validation) {
41
- // Validate the prefix, with care taken for its position within the identifier.
42
- if (this._prefixPosition === 0) {
43
- super.validatePrefix(identifier, validation?.positionOffset);
44
- }
45
- else {
46
- super.validatePrefix(identifier.substring(this._prefixPosition), validation?.positionOffset === undefined ? this._prefixPosition : validation.positionOffset + this._prefixPosition);
47
- }
48
- // Validate the length.
49
- if (identifier.length !== this.length) {
50
- throw new RangeError(i18nextGS1.t("Identifier.identifierTypeLength", {
51
- identifierType: this.identifierType,
52
- length: this.length
53
- }));
54
- }
55
- // Validating the check digit will also validate the characters.
56
- if (!hasValidCheckDigit(this.padIdentifier(identifier, validation?.positionOffset))) {
57
- throw new RangeError(i18nextGS1.t("Identifier.invalidCheckDigit"));
58
- }
59
- }
60
- }
61
- //# sourceMappingURL=abstract-numeric-identifier-validator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"abstract-numeric-identifier-validator.js","sourceRoot":"","sources":["../src/abstract-numeric-identifier-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAG3D;;;;;GAKG;AACH,MAAM,OAAgB,kCAAqG,SAAQ,2BAAsF;IACrN;;OAEG;IACc,WAAW,CAA6C;IAEzE;;OAEG;IACc,eAAe,CAAS;IAEzC;;;;;OAKG;IACH,YAAY,oBAAiD;QACzD,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAE5B,IAAI,CAAC,WAAW,GAAG,oBAAoB,CAAC,UAAU,CAAC;QACnD,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,KAAK,WAAW,CAAC,cAAc,CAAC,CAAC;IAClF,CAAC;IAED;;OAEG;IACH,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,UAAkB,EAAE,UAAwC;QACjE,+EAA+E;QAC/E,IAAI,IAAI,CAAC,eAAe,KAAK,CAAC,EAAE,CAAC;YAC7B,KAAK,CAAC,cAAc,CAAC,UAAU,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;QACjE,CAAC;aAAM,CAAC;YACJ,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,UAAU,EAAE,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;QACzL,CAAC;QAED,uBAAuB;QACvB,IAAI,UAAU,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;YACpC,MAAM,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,iCAAiC,EAAE;gBACjE,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,MAAM,EAAE,IAAI,CAAC,MAAM;aACtB,CAAC,CAAC,CAAC;QACR,CAAC;QAED,gEAAgE;QAChE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;YAClF,MAAM,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC;QACvE,CAAC;IACL,CAAC;CACJ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"creators.d.ts","sourceRoot":"","sources":["../src/creators.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,0CAA0C,CAAC;AAChG,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AAC1F,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AACvF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,8CAA8C,CAAC;AACzG,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,2CAA2C,CAAC;AAEnG;;;;;GAKG;AACH,MAAM,MAAM,qBAAqB,CAAC,eAAe,SAAS,cAAc,IAAI,eAAe,SAAS,wBAAwB,GACxH,2BAA2B,GAC3B,eAAe,SAAS,iCAAiC,GACrD,oCAAoC,GACpC,eAAe,SAAS,4BAA4B,GAChD,+BAA+B,GAC/B,eAAe,SAAS,OAAO,eAAe,CAAC,IAAI,GAC/C,WAAW,GACX,iBAAiB,CAAC;AAElC;;;;;GAKG;AACH,MAAM,MAAM,uBAAuB,CAAC,eAAe,SAAS,cAAc,IAAI,qBAAqB,CAAC,eAAe,CAAC,CAAC;AAErH;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG;KAClC,eAAe,IAAI,cAAc,GAAG,uBAAuB,CAAC,eAAe,CAAC;CAChF,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,iBAAiB,IAAI,wBAAwB,CAE9H;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,iBAAiB,IAAI,WAAW,CAEpG;AAED;;;;;;;;GAQG;AACH,wBAAgB,iCAAiC,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,iBAAiB,IAAI,+BAA+B,CAE5I;AAED;;;;;;;;GAQG;AACH,wBAAgB,sCAAsC,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,iBAAiB,IAAI,oCAAoC,CAEtJ;AAED;;;;;;;;GAQG;AACH,wBAAgB,6BAA6B,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,iBAAiB,IAAI,2BAA2B,CAEpI"}
package/dist/creators.js DELETED
@@ -1,62 +0,0 @@
1
- import { isGTINDescriptor, isNonGTINNumericIdentifierDescriptor, isNonNumericIdentifierDescriptor, isNumericIdentifierDescriptor, isSerializableNumericIdentifierDescriptor } from "./descriptors.js";
2
- /**
3
- * Determine if identifier creator is a numeric identifier creator.
4
- *
5
- * @param identifierCreator
6
- * Identifier creator.
7
- *
8
- * @returns
9
- * True if identifier creator is a numeric identifier creator.
10
- */
11
- export function isNumericIdentifierCreator(identifierCreator) {
12
- return isNumericIdentifierDescriptor(identifierCreator);
13
- }
14
- /**
15
- * Determine if identifier creator is a GTIN creator.
16
- *
17
- * @param identifierCreator
18
- * Identifier creator.
19
- *
20
- * @returns
21
- * True if identifier creator is a GTIN creator.
22
- */
23
- export function isGTINCreator(identifierCreator) {
24
- return isGTINDescriptor(identifierCreator);
25
- }
26
- /**
27
- * Determine if identifier creator is a non-GTIN numeric identifier creator.
28
- *
29
- * @param identifierCreator
30
- * Identifier creator.
31
- *
32
- * @returns
33
- * True if identifier creator is a non-GTIN numeric identifier creator.
34
- */
35
- export function isNonGTINNumericIdentifierCreator(identifierCreator) {
36
- return isNonGTINNumericIdentifierDescriptor(identifierCreator);
37
- }
38
- /**
39
- * Determine if identifier creator is a serializable numeric identifier creator.
40
- *
41
- * @param identifierCreator
42
- * Identifier creator.
43
- *
44
- * @returns
45
- * True if identifier creator is a serializable numeric identifier creator.
46
- */
47
- export function isSerializableNumericIdentifierCreator(identifierCreator) {
48
- return isSerializableNumericIdentifierDescriptor(identifierCreator);
49
- }
50
- /**
51
- * Determine if identifier creator is a non-numeric identifier creator.
52
- *
53
- * @param identifierCreator
54
- * Identifier creator.
55
- *
56
- * @returns
57
- * True if identifier creator is a non-numeric identifier creator.
58
- */
59
- export function isNonNumericIdentifierCreator(identifierCreator) {
60
- return isNonNumericIdentifierDescriptor(identifierCreator);
61
- }
62
- //# sourceMappingURL=creators.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"creators.js","sourceRoot":"","sources":["../src/creators.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,gBAAgB,EAChB,oCAAoC,EACpC,gCAAgC,EAChC,6BAA6B,EAC7B,yCAAyC,EAC5C,MAAM,kBAAkB,CAAC;AA2C1B;;;;;;;;GAQG;AACH,MAAM,UAAU,0BAA0B,CAAC,iBAAoC;IAC3E,OAAO,6BAA6B,CAAC,iBAAiB,CAAC,CAAC;AAC5D,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,aAAa,CAAC,iBAAoC;IAC9D,OAAO,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,iCAAiC,CAAC,iBAAoC;IAClF,OAAO,oCAAoC,CAAC,iBAAiB,CAAC,CAAC;AACnE,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,sCAAsC,CAAC,iBAAoC;IACvF,OAAO,yCAAyC,CAAC,iBAAiB,CAAC,CAAC;AACxE,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,6BAA6B,CAAC,iBAAoC;IAC9E,OAAO,gCAAgC,CAAC,iBAAiB,CAAC,CAAC;AAC/D,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"descriptors.d.ts","sourceRoot":"","sources":["../src/descriptors.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,KAAK,YAAY,EAAa,MAAM,gBAAgB,CAAC;AAC9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,KAAK,cAAc,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,6CAA6C,CAAC;AACtG,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AAC1F,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,wCAAwC,CAAC;AAC7F,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AAGtF,OAAO,KAAK,EAAE,uCAAuC,EAAE,MAAM,iDAAiD,CAAC;AAC/G,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,2CAA2C,CAAC;AA2KnG;;;;;GAKG;AACH,MAAM,MAAM,wBAAwB,CAAC,eAAe,SAAS,cAAc,IAAI,eAAe,SAAS,wBAAwB,GAC3H,8BAA8B,GAC9B,eAAe,SAAS,iCAAiC,GACrD,uCAAuC,GACvC,eAAe,SAAS,4BAA4B,GAChD,kCAAkC,GAClC,eAAe,SAAS,OAAO,eAAe,CAAC,IAAI,GAC/C,cAAc,GACd,oBAAoB,CAAC;AAErC;;;;;GAKG;AACH,MAAM,MAAM,0BAA0B,CAAC,eAAe,SAAS,cAAc,IAAI,eAAe,SAAS,OAAO,eAAe,CAAC,IAAI,GAChI,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC,GAC9C,wBAAwB,CAAC,eAAe,CAAC,CAAC;AAE9C;;GAEG;AACH,MAAM,MAAM,2BAA2B,GAAG;KACrC,eAAe,IAAI,cAAc,GAAG,0BAA0B,CAAC,eAAe,CAAC;CACnF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,2BAa1B,CAAC;AAEX;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,iCAAiC,EAAE,0BAA0B,CAAC,cAAc,CAAC,GAAG,iCAAiC,IAAI,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC,CAEpM;AAoBD;;;;;;;;GAQG;AACH,wBAAgB,6BAA6B,CAAC,oBAAoB,EAAE,oBAAoB,GAAG,oBAAoB,IAAI,2BAA2B,CAE7I;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,oBAAoB,EAAE,oBAAoB,GAAG,oBAAoB,IAAI,cAAc,CAEnH;AAED;;;;;;;;GAQG;AACH,wBAAgB,oCAAoC,CAAC,oBAAoB,EAAE,oBAAoB,GAAG,oBAAoB,IAAI,kCAAkC,CAE3J;AAID;;;;;;;;GAQG;AACH,wBAAgB,yCAAyC,CAAC,oBAAoB,EAAE,oBAAoB,GAAG,oBAAoB,IAAI,uCAAuC,CAErK;AAED;;;;;;;;GAQG;AACH,wBAAgB,gCAAgC,CAAC,oBAAoB,EAAE,oBAAoB,GAAG,oBAAoB,IAAI,8BAA8B,CAEnJ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"descriptors.js","sourceRoot":"","sources":["../src/descriptors.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../src/validators.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,KAAK,cAAc,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AAC1F,OAAO,EAAE,iCAAiC,EAAE,MAAM,4CAA4C,CAAC;AAC/F,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AACtF,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,2CAA2C,CAAC;AACnG,OAAO,EAAE,sCAAsC,EAAE,MAAM,gDAAgD,CAAC;AAyDxG;;;;;GAKG;AACH,MAAM,MAAM,uBAAuB,CAAC,eAAe,SAAS,cAAc,IAAI,eAAe,SAAS,wBAAwB,GAC1H,6BAA6B,GAC7B,eAAe,SAAS,iCAAiC,GACrD,sCAAsC,GACtC,eAAe,SAAS,4BAA4B,GAChD,iCAAiC,GACjC,eAAe,SAAS,OAAO,eAAe,CAAC,IAAI,GAC/C,aAAa,GACb,mBAAmB,CAAC;AAEpC;;;;;GAKG;AACH,MAAM,MAAM,yBAAyB,CAAC,eAAe,SAAS,cAAc,IAAI,eAAe,SAAS,OAAO,eAAe,CAAC,IAAI,GAC/H,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,GAC7C,uBAAuB,CAAC,eAAe,CAAC,CAAC;AAE7C;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAAG;KACpC,eAAe,IAAI,cAAc,GAAG,yBAAyB,CAAC,eAAe,CAAC;CAClF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,0BAazB,CAAC;AAEX;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,+BAA+B,EAAE,yBAAyB,CAAC,cAAc,CAAC,GAAG,+BAA+B,IAAI,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,CAE7L;AAED;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAAC,mBAAmB,EAAE,mBAAmB,GAAG,mBAAmB,IAAI,0BAA0B,CAExI;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,mBAAmB,EAAE,mBAAmB,GAAG,mBAAmB,IAAI,aAAa,CAE9G;AAED;;;;;;;;GAQG;AACH,wBAAgB,mCAAmC,CAAC,mBAAmB,EAAE,mBAAmB,GAAG,mBAAmB,IAAI,iCAAiC,CAEtJ;AAED;;;;;;;;GAQG;AACH,wBAAgB,wCAAwC,CAAC,mBAAmB,EAAE,mBAAmB,GAAG,mBAAmB,IAAI,sCAAsC,CAEhK;AAED;;;;;;;;GAQG;AACH,wBAAgB,+BAA+B,CAAC,mBAAmB,EAAE,mBAAmB,GAAG,mBAAmB,IAAI,6BAA6B,CAE9I"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"validators.js","sourceRoot":"","sources":["../src/validators.ts"],"names":[],"mappings":"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"}
@@ -1,140 +0,0 @@
1
- import { type CharacterSetCreator, NUMERIC_CREATOR } from "@aidc-toolkit/utility";
2
- import { AI39_CREATOR, AI82_CREATOR } from "./character-set.js";
3
- import { type ContentCharacterSet, ContentCharacterSets } from "./content-character-set.js";
4
- import type { IdentifierDescriptor } from "./identifier-descriptor.js";
5
- import type { IdentifierValidation, IdentifierValidator } from "./identifier-validator.js";
6
- import { PrefixTypes } from "./prefix-type.js";
7
- import { PrefixValidator } from "./prefix-validator.js";
8
-
9
- /**
10
- * Abstract identifier validator. Implements common functionality for an identifier validator.
11
- *
12
- * @template TIdentifierDescriptor
13
- * Identifier descriptor type.
14
- *
15
- * @template TIdentifierValidation
16
- * Identifier validation type.
17
- */
18
- export abstract class AbstractIdentifierValidator<TIdentifierDescriptor extends IdentifierDescriptor, TIdentifierValidation extends IdentifierValidation> implements IdentifierValidator<TIdentifierDescriptor, TIdentifierValidation> {
19
- private static readonly CHARACTER_SET_CREATORS: Record<ContentCharacterSet, CharacterSetCreator> = {
20
- [ContentCharacterSets.Numeric]: NUMERIC_CREATOR,
21
- [ContentCharacterSets.AI82]: AI82_CREATOR,
22
- [ContentCharacterSets.AI39]: AI39_CREATOR
23
- };
24
-
25
- /**
26
- * Identifier type.
27
- */
28
- private readonly _identifierType: TIdentifierDescriptor["identifierType"];
29
-
30
- /**
31
- * Length.
32
- */
33
- private readonly _length: number;
34
-
35
- /**
36
- * Reference character set.
37
- */
38
- private readonly _referenceCharacterSet: TIdentifierDescriptor["referenceCharacterSet"];
39
-
40
- /**
41
- * Reference creator.
42
- */
43
- private readonly _referenceCreator: CharacterSetCreator;
44
-
45
- /**
46
- * Get the character set creator for a character set.
47
- *
48
- * @param characterSet
49
- * Character set.
50
- *
51
- * @returns
52
- * Character set creator.
53
- */
54
- protected static creatorFor(characterSet: ContentCharacterSet): CharacterSetCreator {
55
- return AbstractIdentifierValidator.CHARACTER_SET_CREATORS[characterSet];
56
- }
57
-
58
- /**
59
- * Constructor.
60
- *
61
- * @param identifierDescriptor
62
- * Identifier descriptor.
63
- */
64
- protected constructor(identifierDescriptor: IdentifierDescriptor) {
65
- this._identifierType = identifierDescriptor.identifierType;
66
- this._length = identifierDescriptor.length;
67
- this._referenceCharacterSet = identifierDescriptor.referenceCharacterSet;
68
- this._referenceCreator = AbstractIdentifierValidator.creatorFor(identifierDescriptor.referenceCharacterSet);
69
- }
70
-
71
- /**
72
- * @inheritDoc
73
- */
74
- get identifierType(): TIdentifierDescriptor["identifierType"] {
75
- return this._identifierType;
76
- }
77
-
78
- /**
79
- * @inheritDoc
80
- */
81
- get prefixType(): TIdentifierDescriptor["prefixType"] {
82
- // All identifier types except GTIN support only the GS1 Company Prefix.
83
- return PrefixTypes.GS1CompanyPrefix;
84
- }
85
-
86
- /**
87
- * @inheritDoc
88
- */
89
- get length(): number {
90
- return this._length;
91
- }
92
-
93
- /**
94
- * @inheritDoc
95
- */
96
- get referenceCharacterSet(): TIdentifierDescriptor["referenceCharacterSet"] {
97
- return this._referenceCharacterSet;
98
- }
99
-
100
- /**
101
- * @inheritDoc
102
- */
103
- get referenceCreator(): CharacterSetCreator {
104
- return this._referenceCreator;
105
- }
106
-
107
- /**
108
- * Pad an identifier on the left with zero-value character for validation purposes. This is done to align an
109
- * identifier with a position offset for any error message that may be thrown by the reference validator.
110
- *
111
- * @param identifier
112
- * Identifier.
113
- *
114
- * @param positionOffset
115
- * Position offset within a larger string.
116
- *
117
- * @returns
118
- * Padded identifier.
119
- */
120
- protected padIdentifier(identifier: string, positionOffset?: number): string {
121
- // Identifier is returned as is if position offset is undefined.
122
- return positionOffset === undefined ? identifier : this.referenceCreator.character(0).repeat(positionOffset).concat(identifier);
123
- }
124
-
125
- /**
126
- * Validate the prefix within an identifier.
127
- *
128
- * @param partialIdentifier
129
- * Partial identifier.
130
- *
131
- * @param positionOffset
132
- * Position offset within a larger string.
133
- */
134
- protected validatePrefix(partialIdentifier: string, positionOffset?: number): void {
135
- // Delegate to prefix validator with support for U.P.C. Company Prefix but not GS1-8 Prefix.
136
- PrefixValidator.validate(this.prefixType, true, false, partialIdentifier, true, this.referenceCharacterSet === ContentCharacterSets.Numeric, positionOffset);
137
- }
138
-
139
- abstract validate(identifier: string, validation?: TIdentifierValidation): void;
140
- }
@@ -1,69 +0,0 @@
1
- import { AbstractIdentifierValidator } from "./abstract-identifier-validator.js";
2
- import { hasValidCheckDigit } from "./check.js";
3
- import { i18nextGS1 } from "./locale/i18n.js";
4
- import type { NumericIdentifierDescriptor } from "./numeric-identifier-descriptor.js";
5
- import { LeaderTypes } from "./numeric-identifier-type.js";
6
- import type { NumericIdentifierValidation, NumericIdentifierValidator } from "./numeric-identifier-validator.js";
7
-
8
- /**
9
- * Abstract numeric identifier validator.
10
- *
11
- * @template TNumericIdentifierDescriptor
12
- * Numeric identifier descriptor type.
13
- */
14
- export abstract class AbstractNumericIdentifierValidator<TNumericIdentifierDescriptor extends NumericIdentifierDescriptor> extends AbstractIdentifierValidator<TNumericIdentifierDescriptor, NumericIdentifierValidation> implements NumericIdentifierValidator<TNumericIdentifierDescriptor> {
15
- /**
16
- * Leader type.
17
- */
18
- private readonly _leaderType: TNumericIdentifierDescriptor["leaderType"];
19
-
20
- /**
21
- * Prefix position, determined by the leader type.
22
- */
23
- private readonly _prefixPosition: number;
24
-
25
- /**
26
- * Constructor.
27
- *
28
- * @param identifierDescriptor
29
- * Identifier descriptor.
30
- */
31
- constructor(identifierDescriptor: NumericIdentifierDescriptor) {
32
- super(identifierDescriptor);
33
-
34
- this._leaderType = identifierDescriptor.leaderType;
35
- this._prefixPosition = Number(this.leaderType === LeaderTypes.ExtensionDigit);
36
- }
37
-
38
- /**
39
- * @inheritDoc
40
- */
41
- get leaderType(): TNumericIdentifierDescriptor["leaderType"] {
42
- return this._leaderType;
43
- }
44
-
45
- /**
46
- * @inheritDoc
47
- */
48
- validate(identifier: string, validation?: NumericIdentifierValidation): void {
49
- // Validate the prefix, with care taken for its position within the identifier.
50
- if (this._prefixPosition === 0) {
51
- super.validatePrefix(identifier, validation?.positionOffset);
52
- } else {
53
- super.validatePrefix(identifier.substring(this._prefixPosition), validation?.positionOffset === undefined ? this._prefixPosition : validation.positionOffset + this._prefixPosition);
54
- }
55
-
56
- // Validate the length.
57
- if (identifier.length !== this.length) {
58
- throw new RangeError(i18nextGS1.t("Identifier.identifierTypeLength", {
59
- identifierType: this.identifierType,
60
- length: this.length
61
- }));
62
- }
63
-
64
- // Validating the check digit will also validate the characters.
65
- if (!hasValidCheckDigit(this.padIdentifier(identifier, validation?.positionOffset))) {
66
- throw new RangeError(i18nextGS1.t("Identifier.invalidCheckDigit"));
67
- }
68
- }
69
- }
package/src/creators.ts DELETED
@@ -1,113 +0,0 @@
1
- import {
2
- isGTINDescriptor,
3
- isNonGTINNumericIdentifierDescriptor,
4
- isNonNumericIdentifierDescriptor,
5
- isNumericIdentifierDescriptor,
6
- isSerializableNumericIdentifierDescriptor
7
- } from "./descriptors.js";
8
- import type { GTINCreator } from "./gtin-creator.js";
9
- import type { IdentifierCreator } from "./identifier-creator.js";
10
- import type { IdentifierType, IdentifierTypes } from "./identifier-type.js";
11
- import type { NonGTINNumericIdentifierCreator } from "./non-gtin-numeric-identifier-creator.js";
12
- import type { NonGTINNumericIdentifierType } from "./non-gtin-numeric-identifier-type.js";
13
- import type { NonNumericIdentifierCreator } from "./non-numeric-identifier-creator.js";
14
- import type { NonNumericIdentifierType } from "./non-numeric-identifier-type.js";
15
- import type { NumericIdentifierCreator } from "./numeric-identifier-creator.js";
16
- import type { SerializableNumericIdentifierCreator } from "./serializable-numeric-identifier-creator.js";
17
- import type { SerializableNumericIdentifierType } from "./serializable-numeric-identifier-type.js";
18
-
19
- /**
20
- * Determine the identifier creator type for an identifier type.
21
- *
22
- * @template TIdentifierType
23
- * Identifier type type.
24
- */
25
- export type IdentifierTypeCreator<TIdentifierType extends IdentifierType> = TIdentifierType extends NonNumericIdentifierType ?
26
- NonNumericIdentifierCreator :
27
- TIdentifierType extends SerializableNumericIdentifierType ?
28
- SerializableNumericIdentifierCreator :
29
- TIdentifierType extends NonGTINNumericIdentifierType ?
30
- NonGTINNumericIdentifierCreator :
31
- TIdentifierType extends typeof IdentifierTypes.GTIN ?
32
- GTINCreator :
33
- IdentifierCreator;
34
-
35
- /**
36
- * Identifier creators entry type based on identifier type type.
37
- *
38
- * @template TIdentifierType
39
- * Identifier type type.
40
- */
41
- export type IdentifierCreatorsEntry<TIdentifierType extends IdentifierType> = IdentifierTypeCreator<TIdentifierType>;
42
-
43
- /**
44
- * Identifier creators record type.
45
- */
46
- export type IdentifierCreatorsRecord = {
47
- [TIdentifierType in IdentifierType]: IdentifierCreatorsEntry<TIdentifierType>;
48
- };
49
-
50
- /**
51
- * Determine if identifier creator is a numeric identifier creator.
52
- *
53
- * @param identifierCreator
54
- * Identifier creator.
55
- *
56
- * @returns
57
- * True if identifier creator is a numeric identifier creator.
58
- */
59
- export function isNumericIdentifierCreator(identifierCreator: IdentifierCreator): identifierCreator is NumericIdentifierCreator {
60
- return isNumericIdentifierDescriptor(identifierCreator);
61
- }
62
-
63
- /**
64
- * Determine if identifier creator is a GTIN creator.
65
- *
66
- * @param identifierCreator
67
- * Identifier creator.
68
- *
69
- * @returns
70
- * True if identifier creator is a GTIN creator.
71
- */
72
- export function isGTINCreator(identifierCreator: IdentifierCreator): identifierCreator is GTINCreator {
73
- return isGTINDescriptor(identifierCreator);
74
- }
75
-
76
- /**
77
- * Determine if identifier creator is a non-GTIN numeric identifier creator.
78
- *
79
- * @param identifierCreator
80
- * Identifier creator.
81
- *
82
- * @returns
83
- * True if identifier creator is a non-GTIN numeric identifier creator.
84
- */
85
- export function isNonGTINNumericIdentifierCreator(identifierCreator: IdentifierCreator): identifierCreator is NonGTINNumericIdentifierCreator {
86
- return isNonGTINNumericIdentifierDescriptor(identifierCreator);
87
- }
88
-
89
- /**
90
- * Determine if identifier creator is a serializable numeric identifier creator.
91
- *
92
- * @param identifierCreator
93
- * Identifier creator.
94
- *
95
- * @returns
96
- * True if identifier creator is a serializable numeric identifier creator.
97
- */
98
- export function isSerializableNumericIdentifierCreator(identifierCreator: IdentifierCreator): identifierCreator is SerializableNumericIdentifierCreator {
99
- return isSerializableNumericIdentifierDescriptor(identifierCreator);
100
- }
101
-
102
- /**
103
- * Determine if identifier creator is a non-numeric identifier creator.
104
- *
105
- * @param identifierCreator
106
- * Identifier creator.
107
- *
108
- * @returns
109
- * True if identifier creator is a non-numeric identifier creator.
110
- */
111
- export function isNonNumericIdentifierCreator(identifierCreator: IdentifierCreator): identifierCreator is NonNumericIdentifierCreator {
112
- return isNonNumericIdentifierDescriptor(identifierCreator);
113
- }