@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,20 +1,19 @@
1
1
  import { mapIterable } from "@aidc-toolkit/utility";
2
- import { Mixin } from "ts-mixer";
3
- import { AbstractIdentifierCreator } from "./abstract-identifier-creator.js";
2
+ import { MixinAbstractIdentifierCreator } from "./abstract-identifier-creator.js";
4
3
  import { checkCharacterPair } from "./check.js";
4
+ import { IdentifierDescriptors } from "./identifier-descriptors.js";
5
5
  import { i18nextGS1 } from "./locale/i18n.js";
6
6
  import { NonNumericIdentifierValidator } from "./non-numeric-identifier-validator.js";
7
7
  /**
8
8
  * Non-numeric identifier creator.
9
9
  */
10
- export class NonNumericIdentifierCreator extends Mixin(NonNumericIdentifierValidator, AbstractIdentifierCreator) {
10
+ export class NonNumericIdentifierCreator extends MixinAbstractIdentifierCreator(NonNumericIdentifierValidator) {
11
11
  /**
12
12
  * Reference validation parameters.
13
13
  */
14
- _referenceValidation;
14
+ #referenceValidation;
15
15
  /**
16
- * Constructor. Typically called internally by a prefix manager but may be called by other code with another prefix
17
- * provider type.
16
+ * Constructor.
18
17
  *
19
18
  * @param prefixProvider
20
19
  * Prefix provider.
@@ -23,9 +22,8 @@ export class NonNumericIdentifierCreator extends Mixin(NonNumericIdentifierValid
23
22
  * Identifier type.
24
23
  */
25
24
  constructor(prefixProvider, identifierType) {
26
- super(identifierType);
27
- this.init(prefixProvider, prefixProvider.gs1CompanyPrefix, 2 * Number(this.requiresCheckCharacterPair));
28
- this._referenceValidation = {
25
+ super(prefixProvider, prefixProvider.gs1CompanyPrefix, 2 * Number(IdentifierDescriptors[identifierType].requiresCheckCharacterPair), identifierType);
26
+ this.#referenceValidation = {
29
27
  minimumLength: 1,
30
28
  // Maximum reference length has to account for prefix and check character pair.
31
29
  maximumLength: this.referenceLength,
@@ -36,7 +34,7 @@ export class NonNumericIdentifierCreator extends Mixin(NonNumericIdentifierValid
36
34
  * Get the reference validation parameters.
37
35
  */
38
36
  get referenceValidation() {
39
- return this._referenceValidation;
37
+ return this.#referenceValidation;
40
38
  }
41
39
  /**
42
40
  * Create identifier(s) with reference(s).
@@ -1 +1 @@
1
- {"version":3,"file":"non-numeric-identifier-creator.js","sourceRoot":"","sources":["../src/non-numeric-identifier-creator.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,WAAW,EAGd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AAGtF;;GAEG;AACH,MAAM,OAAO,2BAA4B,SAAQ,KAAK,CAAC,6BAA6B,EAAE,yBAAyB,CAAC;IAC5G;;OAEG;IACc,oBAAoB,CAAyB;IAE9D;;;;;;;;;OASG;IACH,YAAY,cAA8B,EAAE,cAAwC;QAChF,KAAK,CAAC,cAAc,CAAC,CAAC;QAEtB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,cAAc,CAAC,gBAAgB,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;QAExG,IAAI,CAAC,oBAAoB,GAAG;YACxB,aAAa,EAAE,CAAC;YAChB,+EAA+E;YAC/E,aAAa,EAAE,IAAI,CAAC,eAAe;YACnC,SAAS,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,sBAAsB,CAAC;SACxD,CAAC;IACN,CAAC;IAED;;OAEG;IACH,IAAc,mBAAmB;QAC7B,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACrC,CAAC;IAED;;;;;;;;;;;OAWG;IACH,MAAM,CAAqD,qBAAwC;QAC/F,uFAAuF;QACvF,IAAI,MAAiC,CAAC;QAEtC,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC/C,MAAM,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACrD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,0BAA0B,GAAG,IAAI,CAAC,0BAA0B,CAAC;QAEnE;;;;;;;;WAQG;QACH,SAAS,iBAAiB,CAAC,SAAiB;YACxC,gBAAgB,CAAC,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;YAE1D,MAAM,iBAAiB,GAAG,MAAM,GAAG,SAAS,CAAC;YAE7C,OAAO,0BAA0B,CAAC,CAAC,CAAC,iBAAiB,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;QACtH,CAAC;QAED,IAAI,OAAO,qBAAqB,KAAK,QAAQ,EAAE,CAAC;YAC5C,MAAM,GAAG,iBAAiB,CAAC,qBAAqB,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YACJ,MAAM,GAAG,WAAW,CAAC,qBAAqB,EAAE,iBAAiB,CAAC,CAAC;QACnE,CAAC;QAED,+GAA+G;QAC/G,OAAO,MAAsD,CAAC;IAClE,CAAC;CACJ"}
1
+ {"version":3,"file":"non-numeric-identifier-creator.js","sourceRoot":"","sources":["../src/non-numeric-identifier-creator.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,WAAW,EAGd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAEH,6BAA6B,EAChC,MAAM,uCAAuC,CAAC;AAG/C;;GAEG;AACH,MAAM,OAAO,2BAA4B,SAAQ,8BAA8B,CAG7E,6BAA6B,CAAC;IAC5B;;OAEG;IACM,oBAAoB,CAAyB;IAEtD;;;;;;;;OAQG;IACH,YAAY,cAA8B,EAAE,cAAwC;QAChF,KAAK,CAAC,cAAc,EAAE,cAAc,CAAC,gBAAgB,EAAE,CAAC,GAAG,MAAM,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC,0BAA0B,CAAC,EAAE,cAAc,CAAC,CAAC;QAErJ,IAAI,CAAC,oBAAoB,GAAG;YACxB,aAAa,EAAE,CAAC;YAChB,+EAA+E;YAC/E,aAAa,EAAE,IAAI,CAAC,eAAe;YACnC,SAAS,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,sBAAsB,CAAC;SACxD,CAAC;IACN,CAAC;IAED;;OAEG;IACH,IAAc,mBAAmB;QAC7B,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACrC,CAAC;IAED;;;;;;;;;;;OAWG;IACH,MAAM,CAAqD,qBAAwC;QAC/F,uFAAuF;QACvF,IAAI,MAAiC,CAAC;QAEtC,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC/C,MAAM,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACrD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,MAAM,0BAA0B,GAAG,IAAI,CAAC,0BAA0B,CAAC;QAEnE;;;;;;;;WAQG;QACH,SAAS,iBAAiB,CAAC,SAAiB;YACxC,gBAAgB,CAAC,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;YAE1D,MAAM,iBAAiB,GAAG,MAAM,GAAG,SAAS,CAAC;YAE7C,OAAO,0BAA0B,CAAC,CAAC,CAAC,iBAAiB,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;QACtH,CAAC;QAED,IAAI,OAAO,qBAAqB,KAAK,QAAQ,EAAE,CAAC;YAC5C,MAAM,GAAG,iBAAiB,CAAC,qBAAqB,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YACJ,MAAM,GAAG,WAAW,CAAC,qBAAqB,EAAE,iBAAiB,CAAC,CAAC;QACnE,CAAC;QAED,+GAA+G;QAC/G,OAAO,MAAsD,CAAC;IAClE,CAAC;CACJ"}
@@ -1,7 +1,26 @@
1
- import type { IdentifierType } from "./identifier-type.js";
2
- import type { NumericIdentifierType } from "./numeric-identifier-type.js";
1
+ /**
2
+ * Non-numeric identifier types.
3
+ */
4
+ export declare const NonNumericIdentifierTypes: Omit<{
5
+ readonly GTIN: "GTIN";
6
+ readonly GLN: "GLN";
7
+ readonly SSCC: "SSCC";
8
+ readonly GRAI: "GRAI";
9
+ readonly GIAI: "GIAI";
10
+ readonly GSRN: "GSRN";
11
+ readonly GDTI: "GDTI";
12
+ readonly GINC: "GINC";
13
+ readonly GSIN: "GSIN";
14
+ readonly GCN: "GCN";
15
+ readonly CPID: "CPID";
16
+ readonly GMN: "GMN";
17
+ }, "GTIN" | "GLN" | "SSCC" | "GRAI" | "GSRN" | "GDTI" | "GSIN" | "GCN">;
18
+ /**
19
+ * Non-numeric identifier type key.
20
+ */
21
+ export type NonNumericIdentifierTypeKey = keyof typeof NonNumericIdentifierTypes;
3
22
  /**
4
23
  * Non-numeric identifier type.
5
24
  */
6
- export type NonNumericIdentifierType = Exclude<IdentifierType, NumericIdentifierType>;
25
+ export type NonNumericIdentifierType = typeof NonNumericIdentifierTypes[NonNumericIdentifierTypeKey];
7
26
  //# sourceMappingURL=non-numeric-identifier-type.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"non-numeric-identifier-type.d.ts","sourceRoot":"","sources":["../src/non-numeric-identifier-type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAE1E;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG,OAAO,CAAC,cAAc,EAAE,qBAAqB,CAAC,CAAC"}
1
+ {"version":3,"file":"non-numeric-identifier-type.d.ts","sourceRoot":"","sources":["../src/non-numeric-identifier-type.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;uEAAmD,CAAC;AAE1F;;GAEG;AACH,MAAM,MAAM,2BAA2B,GAAG,MAAM,OAAO,yBAAyB,CAAC;AAEjF;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG,OAAO,yBAAyB,CAAC,2BAA2B,CAAC,CAAC"}
@@ -1,2 +1,8 @@
1
- export {};
1
+ import { exclude } from "@aidc-toolkit/core";
2
+ import { IdentifierTypes } from "./identifier-type.js";
3
+ import { NumericIdentifierTypes } from "./numeric-identifier-type.js";
4
+ /**
5
+ * Non-numeric identifier types.
6
+ */
7
+ export const NonNumericIdentifierTypes = exclude(IdentifierTypes, NumericIdentifierTypes);
2
8
  //# sourceMappingURL=non-numeric-identifier-type.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"non-numeric-identifier-type.js","sourceRoot":"","sources":["../src/non-numeric-identifier-type.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"non-numeric-identifier-type.js","sourceRoot":"","sources":["../src/non-numeric-identifier-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAEtE;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,OAAO,CAAC,eAAe,EAAE,sBAAsB,CAAC,CAAC"}
@@ -1,6 +1,5 @@
1
1
  import { Exclusions } from "@aidc-toolkit/utility";
2
- import { AbstractIdentifierValidator } from "./abstract-identifier-validator.js";
3
- import type { IdentifierValidation } from "./identifier-validator.js";
2
+ import { type IdentifierValidation, IdentifierValidator } from "./identifier-validator.js";
4
3
  import type { NonNumericIdentifierDescriptor } from "./non-numeric-identifier-descriptor.js";
5
4
  import type { NonNumericIdentifierType } from "./non-numeric-identifier-type.js";
6
5
  /**
@@ -15,15 +14,8 @@ export interface NonNumericIdentifierValidation extends IdentifierValidation {
15
14
  /**
16
15
  * Non-numeric identifier validator.
17
16
  */
18
- export declare class NonNumericIdentifierValidator extends AbstractIdentifierValidator<NonNumericIdentifierDescriptor, NonNumericIdentifierValidation> {
19
- /**
20
- * Validator to ensure that an identifier (minus check character pair) is not all numeric.
21
- */
22
- private static readonly NOT_ALL_NUMERIC_VALIDATOR;
23
- /**
24
- * True if the identifier requires a check character pair.
25
- */
26
- private readonly _requiresCheckCharacterPair;
17
+ export declare class NonNumericIdentifierValidator extends IdentifierValidator<NonNumericIdentifierType, NonNumericIdentifierValidation> implements NonNumericIdentifierDescriptor {
18
+ #private;
27
19
  /**
28
20
  * Constructor.
29
21
  *
@@ -1 +1 @@
1
- {"version":3,"file":"non-numeric-identifier-validator.d.ts","sourceRoot":"","sources":["../src/non-numeric-identifier-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAmB,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AAGjF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEtE,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,wCAAwC,CAAC;AAC7F,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAEjF;;GAEG;AACH,MAAM,WAAW,8BAA+B,SAAQ,oBAAoB;IACxE;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,UAAU,CAAC,IAAI,GAAG,OAAO,UAAU,CAAC,UAAU,GAAG,SAAS,CAAC;CACjF;AAED;;GAEG;AACH,qBAAa,6BAA8B,SAAQ,2BAA2B,CAAC,8BAA8B,EAAE,8BAA8B,CAAC;IAC1I;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAOzC;IAER;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAU;IAEtD;;;;;OAKG;gBACS,cAAc,EAAE,wBAAwB;IAQpD;;OAEG;IACH,IAAI,0BAA0B,IAAI,OAAO,CAExC;IAED;;;;;;;;OAQG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,8BAA8B,GAAG,IAAI;CAmBlF"}
1
+ {"version":3,"file":"non-numeric-identifier-validator.d.ts","sourceRoot":"","sources":["../src/non-numeric-identifier-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAmB,MAAM,uBAAuB,CAAC;AAGpE,OAAO,EAAE,KAAK,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAE3F,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,wCAAwC,CAAC;AAC7F,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAEjF;;GAEG;AACH,MAAM,WAAW,8BAA+B,SAAQ,oBAAoB;IACxE;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,UAAU,CAAC,IAAI,GAAG,OAAO,UAAU,CAAC,UAAU,GAAG,SAAS,CAAC;CACjF;AAED;;GAEG;AACH,qBAAa,6BAA8B,SAAQ,mBAAmB,CAAC,wBAAwB,EAAE,8BAA8B,CAAE,YAAW,8BAA8B;;IAkBtK;;;;;OAKG;gBACS,cAAc,EAAE,wBAAwB;IAQpD;;OAEG;IACH,IAAI,0BAA0B,IAAI,OAAO,CAExC;IAED;;;;;;;;OAQG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,8BAA8B,GAAG,IAAI;CAmBlF"}
@@ -1,16 +1,16 @@
1
1
  import { Exclusions, RegExpValidator } from "@aidc-toolkit/utility";
2
- import { AbstractIdentifierValidator } from "./abstract-identifier-validator.js";
3
2
  import { hasValidCheckCharacterPair } from "./check.js";
4
- import { IdentifierDescriptors } from "./descriptors.js";
3
+ import { IdentifierDescriptors } from "./identifier-descriptors.js";
4
+ import { IdentifierValidator } from "./identifier-validator.js";
5
5
  import { i18nextGS1 } from "./locale/i18n.js";
6
6
  /**
7
7
  * Non-numeric identifier validator.
8
8
  */
9
- export class NonNumericIdentifierValidator extends AbstractIdentifierValidator {
9
+ export class NonNumericIdentifierValidator extends IdentifierValidator {
10
10
  /**
11
11
  * Validator to ensure that an identifier (minus check character pair) is not all numeric.
12
12
  */
13
- static NOT_ALL_NUMERIC_VALIDATOR = new class extends RegExpValidator {
13
+ static #NOT_ALL_NUMERIC_VALIDATOR = new class extends RegExpValidator {
14
14
  /**
15
15
  * @inheritDoc
16
16
  */
@@ -21,7 +21,7 @@ export class NonNumericIdentifierValidator extends AbstractIdentifierValidator {
21
21
  /**
22
22
  * True if the identifier requires a check character pair.
23
23
  */
24
- _requiresCheckCharacterPair;
24
+ #requiresCheckCharacterPair;
25
25
  /**
26
26
  * Constructor.
27
27
  *
@@ -31,13 +31,13 @@ export class NonNumericIdentifierValidator extends AbstractIdentifierValidator {
31
31
  constructor(identifierType) {
32
32
  const identifierDescriptor = IdentifierDescriptors[identifierType];
33
33
  super(identifierDescriptor);
34
- this._requiresCheckCharacterPair = identifierDescriptor.requiresCheckCharacterPair;
34
+ this.#requiresCheckCharacterPair = identifierDescriptor.requiresCheckCharacterPair;
35
35
  }
36
36
  /**
37
37
  * Determine if the identifier requires a check character pair.
38
38
  */
39
39
  get requiresCheckCharacterPair() {
40
- return this._requiresCheckCharacterPair;
40
+ return this.#requiresCheckCharacterPair;
41
41
  }
42
42
  /**
43
43
  * Validate a non-numeric identifier and throw an error if validation fails.
@@ -62,7 +62,7 @@ export class NonNumericIdentifierValidator extends AbstractIdentifierValidator {
62
62
  }
63
63
  // Check for all-numeric identifier (minus check character pair) if excluded.
64
64
  if (validation?.exclusion === Exclusions.AllNumeric) {
65
- NonNumericIdentifierValidator.NOT_ALL_NUMERIC_VALIDATOR.validate(partialIdentifier);
65
+ NonNumericIdentifierValidator.#NOT_ALL_NUMERIC_VALIDATOR.validate(partialIdentifier);
66
66
  }
67
67
  }
68
68
  }
@@ -1 +1 @@
1
- {"version":3,"file":"non-numeric-identifier-validator.js","sourceRoot":"","sources":["../src/non-numeric-identifier-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AACjF,OAAO,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAc9C;;GAEG;AACH,MAAM,OAAO,6BAA8B,SAAQ,2BAA2F;IAC1I;;OAEG;IACK,MAAM,CAAU,yBAAyB,GAAG,IAAI,KAAM,SAAQ,eAAe;QACjF;;WAEG;QACgB,kBAAkB,CAAC,EAAU;YAC5C,OAAO,UAAU,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC;QAChE,CAAC;KACJ,CAAC,IAAI,CAAC,CAAC;IAER;;OAEG;IACc,2BAA2B,CAAU;IAEtD;;;;;OAKG;IACH,YAAY,cAAwC;QAChD,MAAM,oBAAoB,GAAG,qBAAqB,CAAC,cAAc,CAAC,CAAC;QAEnE,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAE5B,IAAI,CAAC,2BAA2B,GAAG,oBAAoB,CAAC,0BAA0B,CAAC;IACvF,CAAC;IAED;;OAEG;IACH,IAAI,0BAA0B;QAC1B,OAAO,IAAI,CAAC,2BAA2B,CAAC;IAC5C,CAAC;IAED;;;;;;;;OAQG;IACH,QAAQ,CAAC,UAAkB,EAAE,UAA2C;QACpE,MAAM,iBAAiB,GAAG,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;QAExH,KAAK,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;QAExC,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE,CAAC;YACnC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,UAAU,EAAE;gBACvC,aAAa,EAAE,IAAI,CAAC,MAAM;aAC7B,CAAC,CAAC;YACH,yEAAyE;QAC7E,CAAC;aAAM,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;YACrE,MAAM,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC;QAC/E,CAAC;QAED,6EAA6E;QAC7E,IAAI,UAAU,EAAE,SAAS,KAAK,UAAU,CAAC,UAAU,EAAE,CAAC;YAClD,6BAA6B,CAAC,yBAAyB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QACxF,CAAC;IACL,CAAC"}
1
+ {"version":3,"file":"non-numeric-identifier-validator.js","sourceRoot":"","sources":["../src/non-numeric-identifier-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAA6B,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAC3F,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAc9C;;GAEG;AACH,MAAM,OAAO,6BAA8B,SAAQ,mBAA6E;IAC5H;;OAEG;IACH,MAAM,CAAU,0BAA0B,GAAG,IAAI,KAAM,SAAQ,eAAe;QAC1E;;WAEG;QACgB,kBAAkB,CAAC,EAAU;YAC5C,OAAO,UAAU,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC;QAChE,CAAC;KACJ,CAAC,IAAI,CAAC,CAAC;IAER;;OAEG;IACM,2BAA2B,CAAU;IAE9C;;;;;OAKG;IACH,YAAY,cAAwC;QAChD,MAAM,oBAAoB,GAAG,qBAAqB,CAAC,cAAc,CAAC,CAAC;QAEnE,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAE5B,IAAI,CAAC,2BAA2B,GAAG,oBAAoB,CAAC,0BAA0B,CAAC;IACvF,CAAC;IAED;;OAEG;IACH,IAAI,0BAA0B;QAC1B,OAAO,IAAI,CAAC,2BAA2B,CAAC;IAC5C,CAAC;IAED;;;;;;;;OAQG;IACH,QAAQ,CAAC,UAAkB,EAAE,UAA2C;QACpE,MAAM,iBAAiB,GAAG,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;QAExH,KAAK,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;QAExC,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE,CAAC;YACnC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,UAAU,EAAE;gBACvC,aAAa,EAAE,IAAI,CAAC,MAAM;aAC7B,CAAC,CAAC;YACH,yEAAyE;QAC7E,CAAC;aAAM,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;YACrE,MAAM,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC;QAC/E,CAAC;QAED,6EAA6E;QAC7E,IAAI,UAAU,EAAE,SAAS,KAAK,UAAU,CAAC,UAAU,EAAE,CAAC;YAClD,6BAA6B,CAAC,0BAA0B,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QACzF,CAAC;IACL,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { NonSerializableNumericIdentifierType } from "./non-serializable-numeric-identifier-type.js";
2
+ import { NonSerializableNumericIdentifierValidator } from "./non-serializable-numeric-identifier-validator.js";
3
+ declare const NonSerializableNumericIdentifierCreator_base: abstract new (...args: [prefixProvider: import("./prefix-provider.js").PrefixProvider, identifierType: "GLN"] | [prefixProvider: import("./prefix-provider.js").PrefixProvider, identifierType: "SSCC"] | [prefixProvider: import("./prefix-provider.js").PrefixProvider, identifierType: "GSRN"] | [prefixProvider: import("./prefix-provider.js").PrefixProvider, identifierType: "GSIN"]) => NonSerializableNumericIdentifierValidator & import("./non-gtin-numeric-identifier-creator.js").NonGTINNumericIdentifierCreator<NonSerializableNumericIdentifierType>;
4
+ /**
5
+ * Non-serializable numeric identifier creator.
6
+ */
7
+ export declare class NonSerializableNumericIdentifierCreator extends NonSerializableNumericIdentifierCreator_base {
8
+ }
9
+ export {};
10
+ //# sourceMappingURL=non-serializable-numeric-identifier-creator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"non-serializable-numeric-identifier-creator.d.ts","sourceRoot":"","sources":["../src/non-serializable-numeric-identifier-creator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,+CAA+C,CAAC;AAC1G,OAAO,EAAE,yCAAyC,EAAE,MAAM,oDAAoD,CAAC;;AAE/G;;GAEG;AACH,qBAAa,uCAAwC,SAAQ,4CAEjB;CAC3C"}
@@ -0,0 +1,8 @@
1
+ import { MixinAbstractNonGTINNumericIdentifierCreator } from "./abstract-non-gtin-numeric-identifier-creator.js";
2
+ import { NonSerializableNumericIdentifierValidator } from "./non-serializable-numeric-identifier-validator.js";
3
+ /**
4
+ * Non-serializable numeric identifier creator.
5
+ */
6
+ export class NonSerializableNumericIdentifierCreator extends MixinAbstractNonGTINNumericIdentifierCreator(NonSerializableNumericIdentifierValidator) {
7
+ }
8
+ //# sourceMappingURL=non-serializable-numeric-identifier-creator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"non-serializable-numeric-identifier-creator.js","sourceRoot":"","sources":["../src/non-serializable-numeric-identifier-creator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4CAA4C,EAAE,MAAM,mDAAmD,CAAC;AAEjH,OAAO,EAAE,yCAAyC,EAAE,MAAM,oDAAoD,CAAC;AAE/G;;GAEG;AACH,MAAM,OAAO,uCAAwC,SAAQ,4CAA4C,CAEvG,yCAAyC,CAAC;CAC3C"}
@@ -0,0 +1,12 @@
1
+ import type { LeaderTypes } from "./leader-type.js";
2
+ import type { NonGTINNumericIdentifierDescriptor } from "./non-gtin-numeric-identifier-descriptor.js";
3
+ /**
4
+ * Non-serializable numeric identifier descriptor.
5
+ */
6
+ export interface NonSerializableNumericIdentifierDescriptor extends NonGTINNumericIdentifierDescriptor {
7
+ /**
8
+ * @inheritDoc
9
+ */
10
+ readonly leaderType: typeof LeaderTypes.None | typeof LeaderTypes.ExtensionDigit;
11
+ }
12
+ //# sourceMappingURL=non-serializable-numeric-identifier-descriptor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"non-serializable-numeric-identifier-descriptor.d.ts","sourceRoot":"","sources":["../src/non-serializable-numeric-identifier-descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,6CAA6C,CAAC;AAEtG;;GAEG;AACH,MAAM,WAAW,0CAA2C,SAAQ,kCAAkC;IAClG;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,OAAO,WAAW,CAAC,IAAI,GAAG,OAAO,WAAW,CAAC,cAAc,CAAC;CACpF"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=non-serializable-numeric-identifier-descriptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"non-serializable-numeric-identifier-descriptor.js","sourceRoot":"","sources":["../src/non-serializable-numeric-identifier-descriptor.ts"],"names":[],"mappings":""}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Non-serializable numeric identifier types.
3
+ */
4
+ export declare const NonSerializableNumericIdentifierTypes: Pick<Omit<Pick<{
5
+ readonly GTIN: "GTIN";
6
+ readonly GLN: "GLN";
7
+ readonly SSCC: "SSCC";
8
+ readonly GRAI: "GRAI";
9
+ readonly GIAI: "GIAI";
10
+ readonly GSRN: "GSRN";
11
+ readonly GDTI: "GDTI";
12
+ readonly GINC: "GINC";
13
+ readonly GSIN: "GSIN";
14
+ readonly GCN: "GCN";
15
+ readonly CPID: "CPID";
16
+ readonly GMN: "GMN";
17
+ }, "GTIN" | "GLN" | "SSCC" | "GRAI" | "GSRN" | "GDTI" | "GSIN" | "GCN">, "GTIN">, "GLN" | "SSCC" | "GSRN" | "GSIN">;
18
+ /**
19
+ * Non-serializable numeric identifier type key.
20
+ */
21
+ export type NonSerializableNumericIdentifierTypeKey = keyof typeof NonSerializableNumericIdentifierTypes;
22
+ /**
23
+ * Non-serializable numeric identifier type.
24
+ */
25
+ export type NonSerializableNumericIdentifierType = typeof NonSerializableNumericIdentifierTypes[NonSerializableNumericIdentifierTypeKey];
26
+ //# sourceMappingURL=non-serializable-numeric-identifier-type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"non-serializable-numeric-identifier-type.d.ts","sourceRoot":"","sources":["../src/non-serializable-numeric-identifier-type.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,eAAO,MAAM,qCAAqC;;;;;;;;;;;;;mHAKjD,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,uCAAuC,GAAG,MAAM,OAAO,qCAAqC,CAAC;AAEzG;;GAEG;AACH,MAAM,MAAM,oCAAoC,GAAG,OAAO,qCAAqC,CAAC,uCAAuC,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { pick } from "@aidc-toolkit/core";
2
+ import { NonGTINNumericIdentifierTypes } from "./non-gtin-numeric-identifier-type.js";
3
+ /**
4
+ * Non-serializable numeric identifier types.
5
+ */
6
+ export const NonSerializableNumericIdentifierTypes = pick(NonGTINNumericIdentifierTypes, NonGTINNumericIdentifierTypes.GLN, NonGTINNumericIdentifierTypes.SSCC, NonGTINNumericIdentifierTypes.GSRN, NonGTINNumericIdentifierTypes.GSIN);
7
+ //# sourceMappingURL=non-serializable-numeric-identifier-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"non-serializable-numeric-identifier-type.js","sourceRoot":"","sources":["../src/non-serializable-numeric-identifier-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AAEtF;;GAEG;AACH,MAAM,CAAC,MAAM,qCAAqC,GAAG,IAAI,CAAC,6BAA6B,EACnF,6BAA6B,CAAC,GAAG,EACjC,6BAA6B,CAAC,IAAI,EAClC,6BAA6B,CAAC,IAAI,EAClC,6BAA6B,CAAC,IAAI,CACrC,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { NonGTINNumericIdentifierValidator } from "./non-gtin-numeric-identifier-validator.js";
2
+ import type { NonSerializableNumericIdentifierDescriptor } from "./non-serializable-numeric-identifier-descriptor.js";
3
+ import type { NonSerializableNumericIdentifierType } from "./non-serializable-numeric-identifier-type.js";
4
+ /**
5
+ * Non-serializable numeric identifier validator.
6
+ */
7
+ export declare class NonSerializableNumericIdentifierValidator extends NonGTINNumericIdentifierValidator<NonSerializableNumericIdentifierType> implements NonSerializableNumericIdentifierDescriptor {
8
+ /**
9
+ * Constructor.
10
+ *
11
+ * @param identifierType
12
+ * Identifier type.
13
+ */
14
+ constructor(identifierType: NonSerializableNumericIdentifierType);
15
+ }
16
+ //# sourceMappingURL=non-serializable-numeric-identifier-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"non-serializable-numeric-identifier-validator.d.ts","sourceRoot":"","sources":["../src/non-serializable-numeric-identifier-validator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iCAAiC,EAAE,MAAM,4CAA4C,CAAC;AAC/F,OAAO,KAAK,EAAE,0CAA0C,EAAE,MAAM,qDAAqD,CAAC;AACtH,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,+CAA+C,CAAC;AAE1G;;GAEG;AACH,qBAAa,yCAA0C,SAAQ,iCAAiC,CAAC,oCAAoC,CAAE,YAAW,0CAA0C;IACxL;;;;;OAKG;gBACS,cAAc,EAAE,oCAAoC;CAGnE"}
@@ -0,0 +1,17 @@
1
+ import { IdentifierDescriptors } from "./identifier-descriptors.js";
2
+ import { NonGTINNumericIdentifierValidator } from "./non-gtin-numeric-identifier-validator.js";
3
+ /**
4
+ * Non-serializable numeric identifier validator.
5
+ */
6
+ export class NonSerializableNumericIdentifierValidator extends NonGTINNumericIdentifierValidator {
7
+ /**
8
+ * Constructor.
9
+ *
10
+ * @param identifierType
11
+ * Identifier type.
12
+ */
13
+ constructor(identifierType) {
14
+ super(IdentifierDescriptors[identifierType]);
15
+ }
16
+ }
17
+ //# sourceMappingURL=non-serializable-numeric-identifier-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"non-serializable-numeric-identifier-validator.js","sourceRoot":"","sources":["../src/non-serializable-numeric-identifier-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,iCAAiC,EAAE,MAAM,4CAA4C,CAAC;AAI/F;;GAEG;AACH,MAAM,OAAO,yCAA0C,SAAQ,iCAAuE;IAClI;;;;;OAKG;IACH,YAAY,cAAoD;QAC5D,KAAK,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC,CAAC;IACjD,CAAC;CACJ"}
@@ -1,14 +1,14 @@
1
- import type { TransformerInput, TransformerOutput } from "@aidc-toolkit/utility";
1
+ import { type TransformerInput, type TransformerOutput } from "@aidc-toolkit/utility";
2
2
  import type { IdentifierCreator } from "./identifier-creator.js";
3
- import type { NumericIdentifierDescriptor } from "./numeric-identifier-descriptor.js";
3
+ import type { NumericIdentifierType } from "./numeric-identifier-type.js";
4
4
  import type { NumericIdentifierValidation, NumericIdentifierValidator } from "./numeric-identifier-validator.js";
5
5
  /**
6
6
  * Numeric identifier creator. Creates one or many numeric identifiers.
7
7
  *
8
- * @template TNumericIdentifierDescriptor
9
- * Numeric identifier descriptor type.
8
+ * @template TNumericIdentifierType
9
+ * Numeric identifier type type.
10
10
  */
11
- export interface NumericIdentifierCreator<TNumericIdentifierDescriptor extends NumericIdentifierDescriptor = NumericIdentifierDescriptor> extends NumericIdentifierValidator<TNumericIdentifierDescriptor>, IdentifierCreator<TNumericIdentifierDescriptor, NumericIdentifierValidation> {
11
+ export interface NumericIdentifierCreator<TNumericIdentifierType extends NumericIdentifierType = NumericIdentifierType> extends NumericIdentifierValidator<TNumericIdentifierType>, IdentifierCreator<TNumericIdentifierType, NumericIdentifierValidation> {
12
12
  /**
13
13
  * Get the capacity (`10**referenceLength`).
14
14
  */
@@ -23,7 +23,7 @@ export interface NumericIdentifierCreator<TNumericIdentifierDescriptor extends N
23
23
  set tweak(value: bigint);
24
24
  /**
25
25
  * Create identifier(s) with reference(s) based on numeric value(s). The value(s) is/are converted to references of
26
- * the appropriate length using the numeric creator.
26
+ * the appropriate length using {@linkcode NUMERIC_CREATOR}.
27
27
  *
28
28
  * @template TTransformerInput
29
29
  * Transformer input type.
@@ -1 +1 @@
1
- {"version":3,"file":"numeric-identifier-creator.d.ts","sourceRoot":"","sources":["../src/numeric-identifier-creator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AACtF,OAAO,KAAK,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAEjH;;;;;GAKG;AACH,MAAM,WAAW,wBAAwB,CAAC,4BAA4B,SAAS,2BAA2B,GAAG,2BAA2B,CAAE,SAAQ,0BAA0B,CAAC,4BAA4B,CAAC,EAAE,iBAAiB,CAAC,4BAA4B,EAAE,2BAA2B,CAAC;IACpR;;OAEG;IACH,IAAI,QAAQ,IAAI,MAAM,CAAC;IAEvB;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAAC;IAEpB;;OAEG;IACH,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE;IAEzB;;;;;;;;;;;;;;;OAeG;IACH,MAAM,EAAE,CAAC,iBAAiB,SAAS,gBAAgB,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,iBAAiB,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;IAE1K;;;;;;;;;OASG;IACH,SAAS,EAAE,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;CACrC"}
1
+ {"version":3,"file":"numeric-identifier-creator.d.ts","sourceRoot":"","sources":["../src/numeric-identifier-creator.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,KAAK,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACvG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,KAAK,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAEjH;;;;;GAKG;AACH,MAAM,WAAW,wBAAwB,CAAC,sBAAsB,SAAS,qBAAqB,GAAG,qBAAqB,CAAE,SAAQ,0BAA0B,CAAC,sBAAsB,CAAC,EAAE,iBAAiB,CAAC,sBAAsB,EAAE,2BAA2B,CAAC;IACtP;;OAEG;IACH,IAAI,QAAQ,IAAI,MAAM,CAAC;IAEvB;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAAC;IAEpB;;OAEG;IACH,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE;IAEzB;;;;;;;;;;;;;;;OAeG;IACH,MAAM,EAAE,CAAC,iBAAiB,SAAS,gBAAgB,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,iBAAiB,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;IAE1K;;;;;;;;;OASG;IACH,SAAS,EAAE,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;CACrC"}
@@ -1,6 +1,7 @@
1
1
  import type { ContentCharacterSets } from "./content-character-set.js";
2
2
  import type { IdentifierDescriptor } from "./identifier-descriptor.js";
3
- import type { LeaderType, NumericIdentifierType } from "./numeric-identifier-type.js";
3
+ import type { LeaderType } from "./leader-type.js";
4
+ import type { NumericIdentifierType } from "./numeric-identifier-type.js";
4
5
  /**
5
6
  * Numeric identifier descriptor.
6
7
  */
@@ -1 +1 @@
1
- {"version":3,"file":"numeric-identifier-descriptor.d.ts","sourceRoot":"","sources":["../src/numeric-identifier-descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAEtF;;GAEG;AACH,MAAM,WAAW,2BAA4B,SAAQ,oBAAoB;IACrE;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,qBAAqB,CAAC;IAE/C;;OAEG;IACH,QAAQ,CAAC,qBAAqB,EAAE,OAAO,oBAAoB,CAAC,OAAO,CAAC;IAEpE;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;CACnC"}
1
+ {"version":3,"file":"numeric-identifier-descriptor.d.ts","sourceRoot":"","sources":["../src/numeric-identifier-descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAE1E;;GAEG;AACH,MAAM,WAAW,2BAA4B,SAAQ,oBAAoB;IACrE;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,qBAAqB,CAAC;IAE/C;;OAEG;IACH,QAAQ,CAAC,qBAAqB,EAAE,OAAO,oBAAoB,CAAC,OAAO,CAAC;IAEpE;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;CACnC"}
@@ -1,31 +1,26 @@
1
- import type { IdentifierTypes } from "./identifier-type.js";
2
1
  /**
3
- * Numeric identifier type.
4
- */
5
- export type NumericIdentifierType = typeof IdentifierTypes.GTIN | typeof IdentifierTypes.GLN | typeof IdentifierTypes.SSCC | typeof IdentifierTypes.GRAI | typeof IdentifierTypes.GSRN | typeof IdentifierTypes.GDTI | typeof IdentifierTypes.GSIN | typeof IdentifierTypes.GCN;
6
- /**
7
- * Leader type.
2
+ * Numeric identifier types.
8
3
  */
9
- export declare const LeaderTypes: {
10
- /**
11
- * No leader.
12
- */
13
- readonly None: "None";
14
- /**
15
- * Indicator digit (GTIN only).
16
- */
17
- readonly IndicatorDigit: "Indicator digit";
18
- /**
19
- * Extension digit (SSCC only).
20
- */
21
- readonly ExtensionDigit: "Extension digit";
22
- };
4
+ export declare const NumericIdentifierTypes: Pick<{
5
+ readonly GTIN: "GTIN";
6
+ readonly GLN: "GLN";
7
+ readonly SSCC: "SSCC";
8
+ readonly GRAI: "GRAI";
9
+ readonly GIAI: "GIAI";
10
+ readonly GSRN: "GSRN";
11
+ readonly GDTI: "GDTI";
12
+ readonly GINC: "GINC";
13
+ readonly GSIN: "GSIN";
14
+ readonly GCN: "GCN";
15
+ readonly CPID: "CPID";
16
+ readonly GMN: "GMN";
17
+ }, "GTIN" | "GLN" | "SSCC" | "GRAI" | "GSRN" | "GDTI" | "GSIN" | "GCN">;
23
18
  /**
24
- * Leader type key.
19
+ * Numeric identifier type key.
25
20
  */
26
- export type LeaderTypeKey = keyof typeof LeaderTypes;
21
+ export type NumericIdentifierTypeKey = keyof typeof NumericIdentifierTypes;
27
22
  /**
28
- * Leader type.
23
+ * Numeric identifier type.
29
24
  */
30
- export type LeaderType = typeof LeaderTypes[LeaderTypeKey];
25
+ export type NumericIdentifierType = typeof NumericIdentifierTypes[NumericIdentifierTypeKey];
31
26
  //# sourceMappingURL=numeric-identifier-type.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"numeric-identifier-type.d.ts","sourceRoot":"","sources":["../src/numeric-identifier-type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAC7B,OAAO,eAAe,CAAC,IAAI,GAC3B,OAAO,eAAe,CAAC,GAAG,GAC1B,OAAO,eAAe,CAAC,IAAI,GAC3B,OAAO,eAAe,CAAC,IAAI,GAC3B,OAAO,eAAe,CAAC,IAAI,GAC3B,OAAO,eAAe,CAAC,IAAI,GAC3B,OAAO,eAAe,CAAC,IAAI,GAC3B,OAAO,eAAe,CAAC,GAAG,CAAC;AAE/B;;GAEG;AACH,eAAO,MAAM,WAAW;IACpB;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;CAEG,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,WAAW,CAAC;AAErD;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,WAAW,CAAC,aAAa,CAAC,CAAC"}
1
+ {"version":3,"file":"numeric-identifier-type.d.ts","sourceRoot":"","sources":["../src/numeric-identifier-type.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;uEASlC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG,MAAM,OAAO,sBAAsB,CAAC;AAE3E;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,OAAO,sBAAsB,CAAC,wBAAwB,CAAC,CAAC"}
@@ -1,18 +1,7 @@
1
+ import { pick } from "@aidc-toolkit/core";
2
+ import { IdentifierTypes } from "./identifier-type.js";
1
3
  /**
2
- * Leader type.
4
+ * Numeric identifier types.
3
5
  */
4
- export const LeaderTypes = {
5
- /**
6
- * No leader.
7
- */
8
- None: "None",
9
- /**
10
- * Indicator digit (GTIN only).
11
- */
12
- IndicatorDigit: "Indicator digit",
13
- /**
14
- * Extension digit (SSCC only).
15
- */
16
- ExtensionDigit: "Extension digit"
17
- };
6
+ export const NumericIdentifierTypes = pick(IdentifierTypes, IdentifierTypes.GTIN, IdentifierTypes.GLN, IdentifierTypes.SSCC, IdentifierTypes.GRAI, IdentifierTypes.GSRN, IdentifierTypes.GDTI, IdentifierTypes.GSIN, IdentifierTypes.GCN);
18
7
  //# sourceMappingURL=numeric-identifier-type.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"numeric-identifier-type.js","sourceRoot":"","sources":["../src/numeric-identifier-type.ts"],"names":[],"mappings":"AAeA;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACvB;;OAEG;IACH,IAAI,EAAE,MAAM;IAEZ;;OAEG;IACH,cAAc,EAAE,iBAAiB;IAEjC;;OAEG;IACH,cAAc,EAAE,iBAAiB;CAC3B,CAAC"}
1
+ {"version":3,"file":"numeric-identifier-type.js","sourceRoot":"","sources":["../src/numeric-identifier-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,CAAC,eAAe,EACtD,eAAe,CAAC,IAAI,EACpB,eAAe,CAAC,GAAG,EACnB,eAAe,CAAC,IAAI,EACpB,eAAe,CAAC,IAAI,EACpB,eAAe,CAAC,IAAI,EACpB,eAAe,CAAC,IAAI,EACpB,eAAe,CAAC,IAAI,EACpB,eAAe,CAAC,GAAG,CACtB,CAAC"}
@@ -1,5 +1,7 @@
1
- import type { IdentifierValidation, IdentifierValidator } from "./identifier-validator.js";
1
+ import type { IdentifierTypeDescriptor } from "./identifier-descriptors.js";
2
+ import { type IdentifierValidation, IdentifierValidator } from "./identifier-validator.js";
2
3
  import type { NumericIdentifierDescriptor } from "./numeric-identifier-descriptor.js";
4
+ import type { NumericIdentifierType } from "./numeric-identifier-type.js";
3
5
  /**
4
6
  * Numeric identifier validation parameters.
5
7
  */
@@ -12,13 +14,25 @@ export interface NumericIdentifierValidation extends IdentifierValidation {
12
14
  /**
13
15
  * Numeric identifier validator.
14
16
  *
15
- * @template TNumericIdentifierDescriptor
16
- * Numeric identifier descriptor type.
17
+ * @template TNumericIdentifierType
18
+ * Numeric identifier type type.
17
19
  */
18
- export interface NumericIdentifierValidator<TNumericIdentifierDescriptor extends NumericIdentifierDescriptor = NumericIdentifierDescriptor> extends IdentifierValidator<TNumericIdentifierDescriptor, NumericIdentifierValidation> {
20
+ export declare abstract class NumericIdentifierValidator<TNumericIdentifierType extends NumericIdentifierType = NumericIdentifierType> extends IdentifierValidator<TNumericIdentifierType, NumericIdentifierValidation> implements NumericIdentifierDescriptor {
21
+ #private;
19
22
  /**
20
- * Get the leader type.
23
+ * Constructor.
24
+ *
25
+ * @param identifierDescriptor
26
+ * Identifier descriptor.
21
27
  */
22
- get leaderType(): TNumericIdentifierDescriptor["leaderType"];
28
+ constructor(identifierDescriptor: IdentifierTypeDescriptor<TNumericIdentifierType>);
29
+ /**
30
+ * @inheritDoc
31
+ */
32
+ get leaderType(): IdentifierTypeDescriptor<TNumericIdentifierType>["leaderType"];
33
+ /**
34
+ * @inheritDoc
35
+ */
36
+ validate(identifier: string, validation?: NumericIdentifierValidation): void;
23
37
  }
24
38
  //# sourceMappingURL=numeric-identifier-validator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"numeric-identifier-validator.d.ts","sourceRoot":"","sources":["../src/numeric-identifier-validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAC3F,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AAEtF;;GAEG;AACH,MAAM,WAAW,2BAA4B,SAAQ,oBAAoB;IACrE;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC;AAED;;;;;GAKG;AACH,MAAM,WAAW,0BAA0B,CAAC,4BAA4B,SAAS,2BAA2B,GAAG,2BAA2B,CAAE,SAAQ,mBAAmB,CAAC,4BAA4B,EAAE,2BAA2B,CAAC;IAC9N;;OAEG;IACH,IAAI,UAAU,IAAI,4BAA4B,CAAC,YAAY,CAAC,CAAC;CAChE"}
1
+ {"version":3,"file":"numeric-identifier-validator.d.ts","sourceRoot":"","sources":["../src/numeric-identifier-validator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,KAAK,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAG3F,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AACtF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAE1E;;GAEG;AACH,MAAM,WAAW,2BAA4B,SAAQ,oBAAoB;IACrE;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC;AAED;;;;;GAKG;AACH,8BAAsB,0BAA0B,CAAC,sBAAsB,SAAS,qBAAqB,GAAG,qBAAqB,CAAE,SAAQ,mBAAmB,CAAC,sBAAsB,EAAE,2BAA2B,CAAE,YAAW,2BAA2B;;IAWlP;;;;;OAKG;gBACS,oBAAoB,EAAE,wBAAwB,CAAC,sBAAsB,CAAC;IAOlF;;OAEG;IACH,IAAI,UAAU,IAAI,wBAAwB,CAAC,sBAAsB,CAAC,CAAC,YAAY,CAAC,CAE/E;IAED;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,2BAA2B,GAAG,IAAI;CAqB/E"}
@@ -1,2 +1,61 @@
1
- export {};
1
+ import { hasValidCheckDigit } from "./check.js";
2
+ import { IdentifierValidator } from "./identifier-validator.js";
3
+ import { LeaderTypes } from "./leader-type.js";
4
+ import { i18nextGS1 } from "./locale/i18n.js";
5
+ /**
6
+ * Numeric identifier validator.
7
+ *
8
+ * @template TNumericIdentifierType
9
+ * Numeric identifier type type.
10
+ */
11
+ export class NumericIdentifierValidator extends IdentifierValidator {
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
+ }
2
61
  //# sourceMappingURL=numeric-identifier-validator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"numeric-identifier-validator.js","sourceRoot":"","sources":["../src/numeric-identifier-validator.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"numeric-identifier-validator.js","sourceRoot":"","sources":["../src/numeric-identifier-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,EAA6B,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAC3F,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAc9C;;;;;GAKG;AACH,MAAM,OAAgB,0BAAyG,SAAQ,mBAAwE;IAC3M;;OAEG;IACM,WAAW,CAAiE;IAErF;;OAEG;IACM,eAAe,CAAS;IAEjC;;;;;OAKG;IACH,YAAY,oBAAsE;QAC9E,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"}