@aidc-toolkit/gs1 1.0.25-beta → 1.0.27-beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (273) hide show
  1. package/dist/abstract-identifier-creator.d.ts +75 -0
  2. package/dist/abstract-identifier-creator.d.ts.map +1 -0
  3. package/dist/abstract-identifier-creator.js +79 -0
  4. package/dist/abstract-identifier-creator.js.map +1 -0
  5. package/dist/abstract-non-gtin-numeric-identifier-creator.d.ts +42 -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 +40 -0
  8. package/dist/abstract-non-gtin-numeric-identifier-creator.js.map +1 -0
  9. package/dist/abstract-numeric-identifier-creator.d.ts +43 -0
  10. package/dist/abstract-numeric-identifier-creator.d.ts.map +1 -0
  11. package/dist/abstract-numeric-identifier-creator.js +160 -0
  12. package/dist/abstract-numeric-identifier-creator.js.map +1 -0
  13. package/dist/character-set.d.ts +27 -0
  14. package/dist/character-set.d.ts.map +1 -0
  15. package/dist/character-set.js +50 -0
  16. package/dist/character-set.js.map +1 -0
  17. package/dist/check.d.ts +81 -0
  18. package/dist/check.d.ts.map +1 -0
  19. package/dist/check.js +218 -0
  20. package/dist/check.js.map +1 -0
  21. package/dist/content-character-set-creators.d.ts +4 -0
  22. package/dist/content-character-set-creators.d.ts.map +1 -0
  23. package/dist/content-character-set-creators.js +9 -0
  24. package/dist/content-character-set-creators.js.map +1 -0
  25. package/dist/content-character-set.d.ts +26 -0
  26. package/dist/content-character-set.d.ts.map +1 -0
  27. package/dist/content-character-set.js +18 -0
  28. package/dist/content-character-set.js.map +1 -0
  29. package/dist/gtin-creator.d.ts +64 -0
  30. package/dist/gtin-creator.d.ts.map +1 -0
  31. package/dist/gtin-creator.js +156 -0
  32. package/dist/gtin-creator.js.map +1 -0
  33. package/dist/gtin-descriptor.d.ts +22 -0
  34. package/dist/gtin-descriptor.d.ts.map +1 -0
  35. package/dist/gtin-descriptor.js +2 -0
  36. package/dist/gtin-descriptor.js.map +1 -0
  37. package/dist/gtin-length.d.ts +64 -0
  38. package/dist/gtin-length.d.ts.map +1 -0
  39. package/dist/gtin-length.js +36 -0
  40. package/dist/gtin-length.js.map +1 -0
  41. package/dist/gtin-type.d.ts +26 -0
  42. package/dist/gtin-type.d.ts.map +1 -0
  43. package/dist/gtin-type.js +7 -0
  44. package/dist/gtin-type.js.map +1 -0
  45. package/dist/gtin-validator.d.ts +177 -0
  46. package/dist/gtin-validator.d.ts.map +1 -0
  47. package/dist/gtin-validator.js +443 -0
  48. package/dist/gtin-validator.js.map +1 -0
  49. package/dist/identifier-creator.d.ts +31 -0
  50. package/dist/identifier-creator.d.ts.map +1 -0
  51. package/dist/identifier-creator.js +2 -0
  52. package/dist/identifier-creator.js.map +1 -0
  53. package/dist/identifier-creators.d.ts +90 -0
  54. package/dist/identifier-creators.d.ts.map +1 -0
  55. package/dist/identifier-creators.js +74 -0
  56. package/dist/identifier-creators.js.map +1 -0
  57. package/dist/identifier-descriptor.d.ts +27 -0
  58. package/dist/identifier-descriptor.d.ts.map +1 -0
  59. package/dist/identifier-descriptor.js +2 -0
  60. package/dist/identifier-descriptor.js.map +1 -0
  61. package/dist/identifier-descriptors.d.ts +106 -0
  62. package/dist/identifier-descriptors.d.ts.map +1 -0
  63. package/dist/identifier-descriptors.js +262 -0
  64. package/dist/identifier-descriptors.js.map +1 -0
  65. package/dist/identifier-extension.d.ts +82 -0
  66. package/dist/identifier-extension.d.ts.map +1 -0
  67. package/dist/identifier-extension.js +79 -0
  68. package/dist/identifier-extension.js.map +1 -0
  69. package/dist/identifier-type.d.ts +62 -0
  70. package/dist/identifier-type.d.ts.map +1 -0
  71. package/dist/identifier-type.js +54 -0
  72. package/dist/identifier-type.js.map +1 -0
  73. package/dist/identifier-validator.d.ts +88 -0
  74. package/dist/identifier-validator.d.ts.map +1 -0
  75. package/dist/identifier-validator.js +110 -0
  76. package/dist/identifier-validator.js.map +1 -0
  77. package/dist/identifier-validators.d.ts +106 -0
  78. package/dist/identifier-validators.d.ts.map +1 -0
  79. package/dist/identifier-validators.js +153 -0
  80. package/dist/identifier-validators.js.map +1 -0
  81. package/dist/index.d.ts +58 -1949
  82. package/dist/index.d.ts.map +1 -0
  83. package/dist/index.js +30 -4727
  84. package/dist/index.js.map +1 -1
  85. package/dist/leader-type.d.ts +26 -0
  86. package/dist/leader-type.d.ts.map +1 -0
  87. package/dist/leader-type.js +18 -0
  88. package/dist/leader-type.js.map +1 -0
  89. package/dist/locale/en/locale-resources.d.ts +42 -0
  90. package/dist/locale/en/locale-resources.d.ts.map +1 -0
  91. package/dist/locale/en/locale-resources.js +41 -0
  92. package/dist/locale/en/locale-resources.js.map +1 -0
  93. package/dist/locale/fr/locale-resources.d.ts +42 -0
  94. package/dist/locale/fr/locale-resources.d.ts.map +1 -0
  95. package/dist/locale/fr/locale-resources.js +41 -0
  96. package/dist/locale/fr/locale-resources.js.map +1 -0
  97. package/dist/locale/i18n.d.ts +27 -0
  98. package/dist/locale/i18n.d.ts.map +1 -0
  99. package/dist/locale/i18n.js +36 -0
  100. package/dist/locale/i18n.js.map +1 -0
  101. package/dist/non-gtin-numeric-identifier-creator.d.ts +12 -0
  102. package/dist/non-gtin-numeric-identifier-creator.d.ts.map +1 -0
  103. package/dist/non-gtin-numeric-identifier-creator.js +2 -0
  104. package/dist/non-gtin-numeric-identifier-creator.js.map +1 -0
  105. package/dist/non-gtin-numeric-identifier-descriptor.d.ts +22 -0
  106. package/dist/non-gtin-numeric-identifier-descriptor.d.ts.map +1 -0
  107. package/dist/non-gtin-numeric-identifier-descriptor.js +2 -0
  108. package/dist/non-gtin-numeric-identifier-descriptor.js.map +1 -0
  109. package/dist/non-gtin-numeric-identifier-type.d.ts +26 -0
  110. package/dist/non-gtin-numeric-identifier-type.d.ts.map +1 -0
  111. package/dist/non-gtin-numeric-identifier-type.js +8 -0
  112. package/dist/non-gtin-numeric-identifier-type.js.map +1 -0
  113. package/dist/non-gtin-numeric-identifier-validator.d.ts +12 -0
  114. package/dist/non-gtin-numeric-identifier-validator.d.ts.map +1 -0
  115. package/dist/non-gtin-numeric-identifier-validator.js +10 -0
  116. package/dist/non-gtin-numeric-identifier-validator.js.map +1 -0
  117. package/dist/non-numeric-identifier-creator.d.ts +40 -0
  118. package/dist/non-numeric-identifier-creator.d.ts.map +1 -0
  119. package/dist/non-numeric-identifier-creator.js +82 -0
  120. package/dist/non-numeric-identifier-creator.js.map +1 -0
  121. package/dist/non-numeric-identifier-descriptor.d.ts +26 -0
  122. package/dist/non-numeric-identifier-descriptor.d.ts.map +1 -0
  123. package/dist/non-numeric-identifier-descriptor.js +2 -0
  124. package/dist/non-numeric-identifier-descriptor.js.map +1 -0
  125. package/dist/non-numeric-identifier-type.d.ts +26 -0
  126. package/dist/non-numeric-identifier-type.d.ts.map +1 -0
  127. package/dist/non-numeric-identifier-type.js +8 -0
  128. package/dist/non-numeric-identifier-type.js.map +1 -0
  129. package/dist/non-numeric-identifier-validator.d.ts +41 -0
  130. package/dist/non-numeric-identifier-validator.d.ts.map +1 -0
  131. package/dist/non-numeric-identifier-validator.js +69 -0
  132. package/dist/non-numeric-identifier-validator.js.map +1 -0
  133. package/dist/non-serializable-numeric-identifier-creator.d.ts +10 -0
  134. package/dist/non-serializable-numeric-identifier-creator.d.ts.map +1 -0
  135. package/dist/non-serializable-numeric-identifier-creator.js +8 -0
  136. package/dist/non-serializable-numeric-identifier-creator.js.map +1 -0
  137. package/dist/non-serializable-numeric-identifier-descriptor.d.ts +7 -0
  138. package/dist/non-serializable-numeric-identifier-descriptor.d.ts.map +1 -0
  139. package/dist/non-serializable-numeric-identifier-descriptor.js +2 -0
  140. package/dist/non-serializable-numeric-identifier-descriptor.js.map +1 -0
  141. package/dist/non-serializable-numeric-identifier-type.d.ts +26 -0
  142. package/dist/non-serializable-numeric-identifier-type.d.ts.map +1 -0
  143. package/dist/non-serializable-numeric-identifier-type.js +7 -0
  144. package/dist/non-serializable-numeric-identifier-type.js.map +1 -0
  145. package/dist/non-serializable-numeric-identifier-validator.d.ts +16 -0
  146. package/dist/non-serializable-numeric-identifier-validator.d.ts.map +1 -0
  147. package/dist/non-serializable-numeric-identifier-validator.js +17 -0
  148. package/dist/non-serializable-numeric-identifier-validator.js.map +1 -0
  149. package/dist/numeric-identifier-creator.d.ts +53 -0
  150. package/dist/numeric-identifier-creator.d.ts.map +1 -0
  151. package/dist/numeric-identifier-creator.js +2 -0
  152. package/dist/numeric-identifier-creator.js.map +1 -0
  153. package/dist/numeric-identifier-descriptor.d.ts +22 -0
  154. package/dist/numeric-identifier-descriptor.d.ts.map +1 -0
  155. package/dist/numeric-identifier-descriptor.js +2 -0
  156. package/dist/numeric-identifier-descriptor.js.map +1 -0
  157. package/dist/numeric-identifier-type.d.ts +26 -0
  158. package/dist/numeric-identifier-type.d.ts.map +1 -0
  159. package/dist/numeric-identifier-type.js +7 -0
  160. package/dist/numeric-identifier-type.js.map +1 -0
  161. package/dist/numeric-identifier-validator.d.ts +38 -0
  162. package/dist/numeric-identifier-validator.d.ts.map +1 -0
  163. package/dist/numeric-identifier-validator.js +61 -0
  164. package/dist/numeric-identifier-validator.js.map +1 -0
  165. package/dist/prefix-manager.d.ts +136 -0
  166. package/dist/prefix-manager.d.ts.map +1 -0
  167. package/dist/prefix-manager.js +339 -0
  168. package/dist/prefix-manager.js.map +1 -0
  169. package/dist/prefix-provider.d.ts +27 -0
  170. package/dist/prefix-provider.d.ts.map +1 -0
  171. package/dist/prefix-provider.js +2 -0
  172. package/dist/prefix-provider.js.map +1 -0
  173. package/dist/prefix-type.d.ts +26 -0
  174. package/dist/prefix-type.d.ts.map +1 -0
  175. package/dist/prefix-type.js +18 -0
  176. package/dist/prefix-type.js.map +1 -0
  177. package/dist/prefix-validator.d.ts +70 -0
  178. package/dist/prefix-validator.d.ts.map +1 -0
  179. package/dist/prefix-validator.js +208 -0
  180. package/dist/prefix-validator.js.map +1 -0
  181. package/dist/serializable-numeric-identifier-creator.d.ts +48 -0
  182. package/dist/serializable-numeric-identifier-creator.d.ts.map +1 -0
  183. package/dist/serializable-numeric-identifier-creator.js +93 -0
  184. package/dist/serializable-numeric-identifier-creator.js.map +1 -0
  185. package/dist/serializable-numeric-identifier-descriptor.d.ts +26 -0
  186. package/dist/serializable-numeric-identifier-descriptor.d.ts.map +1 -0
  187. package/dist/serializable-numeric-identifier-descriptor.js +2 -0
  188. package/dist/serializable-numeric-identifier-descriptor.js.map +1 -0
  189. package/dist/serializable-numeric-identifier-type.d.ts +26 -0
  190. package/dist/serializable-numeric-identifier-type.d.ts.map +1 -0
  191. package/dist/serializable-numeric-identifier-type.js +8 -0
  192. package/dist/serializable-numeric-identifier-type.js.map +1 -0
  193. package/dist/serializable-numeric-identifier-validator.d.ts +41 -0
  194. package/dist/serializable-numeric-identifier-validator.d.ts.map +1 -0
  195. package/dist/serializable-numeric-identifier-validator.js +78 -0
  196. package/dist/serializable-numeric-identifier-validator.js.map +1 -0
  197. package/package.json +11 -8
  198. package/src/abstract-identifier-creator.ts +157 -76
  199. package/src/abstract-non-gtin-numeric-identifier-creator.ts +86 -0
  200. package/src/abstract-numeric-identifier-creator.ts +205 -136
  201. package/src/check.ts +2 -2
  202. package/src/content-character-set-creators.ts +9 -0
  203. package/src/gtin-creator.ts +20 -19
  204. package/src/gtin-descriptor.ts +10 -4
  205. package/src/gtin-length.ts +61 -0
  206. package/src/gtin-type.ts +6 -37
  207. package/src/gtin-validator.ts +39 -46
  208. package/src/identifier-creator.ts +6 -6
  209. package/src/{creators.ts → identifier-creators.ts} +45 -31
  210. package/src/identifier-descriptor.ts +3 -3
  211. package/src/{descriptors.ts → identifier-descriptors.ts} +65 -63
  212. package/src/identifier-extension.ts +155 -0
  213. package/src/identifier-validator.ts +94 -11
  214. package/src/{validators.ts → identifier-validators.ts} +56 -41
  215. package/src/index.ts +50 -43
  216. package/src/leader-type.ts +29 -0
  217. package/src/locale/i18n.ts +3 -3
  218. package/src/locale/i18next.d.ts +1 -1
  219. package/src/non-gtin-numeric-identifier-creator.ts +8 -23
  220. package/src/non-gtin-numeric-identifier-descriptor.ts +4 -4
  221. package/src/non-gtin-numeric-identifier-type.ts +14 -3
  222. package/src/non-gtin-numeric-identifier-validator.ts +7 -15
  223. package/src/non-numeric-identifier-creator.ts +21 -16
  224. package/src/non-numeric-identifier-descriptor.ts +4 -4
  225. package/src/non-numeric-identifier-type.ts +14 -3
  226. package/src/non-numeric-identifier-validator.ts +12 -13
  227. package/src/non-serializable-numeric-identifier-creator.ts +12 -0
  228. package/src/non-serializable-numeric-identifier-descriptor.ts +7 -0
  229. package/src/non-serializable-numeric-identifier-type.ts +22 -0
  230. package/src/non-serializable-numeric-identifier-validator.ts +19 -0
  231. package/src/numeric-identifier-creator.ts +9 -8
  232. package/src/numeric-identifier-descriptor.ts +4 -3
  233. package/src/numeric-identifier-type.ts +17 -35
  234. package/src/numeric-identifier-validator.ts +62 -7
  235. package/src/prefix-manager.ts +79 -76
  236. package/src/prefix-provider.ts +1 -1
  237. package/src/prefix-validator.ts +3 -3
  238. package/src/serializable-numeric-identifier-creator.ts +13 -27
  239. package/src/serializable-numeric-identifier-descriptor.ts +4 -4
  240. package/src/serializable-numeric-identifier-type.ts +14 -5
  241. package/src/serializable-numeric-identifier-validator.ts +22 -21
  242. package/test/check.test.ts +1 -1
  243. package/test/creator.test.ts +5 -5
  244. package/test/gtin-creator.ts +10 -3
  245. package/test/gtin-validator.test.ts +10 -12
  246. package/test/identifier-creator.ts +12 -12
  247. package/test/identifier-validator.ts +1 -1
  248. package/test/non-gtin-numeric-identifier-creator.ts +3 -3
  249. package/test/non-gtin-numeric-identifier-validator.ts +8 -3
  250. package/test/non-numeric-identifier-creator.ts +1 -1
  251. package/test/non-numeric-identifier-validator.ts +3 -3
  252. package/test/non-serializable-numeric-identifier-creator.ts +64 -0
  253. package/test/non-serializable-numeric-identifier-validator.ts +6 -0
  254. package/test/numeric-identifier-creator.ts +9 -4
  255. package/test/numeric-identifier-validator.ts +2 -2
  256. package/test/prefix-manager.test.ts +2 -2
  257. package/test/serializable-numeric-identifier-creator.ts +2 -2
  258. package/test/serializable-numeric-identifier-validator.ts +3 -3
  259. package/test/setup.ts +1 -1
  260. package/test/sparse.test.ts +1 -1
  261. package/test/utility.ts +1 -1
  262. package/test/validator.test.ts +16 -15
  263. package/test/variable-measure-rcn.test.ts +24 -24
  264. package/tsconfig-config.json +4 -0
  265. package/tsconfig-src.json +8 -0
  266. package/tsconfig-test.json +9 -0
  267. package/tsconfig.json +12 -1
  268. package/tsup.config.ts +3 -2
  269. package/dist/index.cjs +0 -4813
  270. package/dist/index.cjs.map +0 -1
  271. package/dist/index.d.cts +0 -1949
  272. package/src/abstract-identifier-validator.ts +0 -140
  273. package/src/abstract-numeric-identifier-validator.ts +0 -69
@@ -0,0 +1,75 @@
1
+ import type { IdentifierCreator } from "./identifier-creator.js";
2
+ import type { IdentifierType } from "./identifier-type.js";
3
+ import type { IdentifierValidation, IdentifierValidator } from "./identifier-validator.js";
4
+ import type { IdentifierTypeValidator } from "./identifier-validators.js";
5
+ import type { PrefixProvider } from "./prefix-provider.js";
6
+ /**
7
+ * Identifier extension constructor type.
8
+ *
9
+ * @template TConstructorArguments
10
+ * Constructor arguments types.
11
+ *
12
+ * @template TConstructorInstance
13
+ * Constructor instance type.
14
+ */
15
+ export type IdentifierExtensionConstructor<TConstructorArguments extends unknown[], TConstructorInstance> = abstract new (...args: TConstructorArguments) => TConstructorInstance;
16
+ /**
17
+ * Identifier validator constructor type.
18
+ *
19
+ * @template TConstructorArguments
20
+ * Constructor arguments types.
21
+ *
22
+ * @template TIdentifierType
23
+ * Identifier type type.
24
+ *
25
+ * @template TIdentifierValidation
26
+ * Identifier validation type.
27
+ *
28
+ * @template TIdentifierValidator
29
+ * Identifier validator type.
30
+ */
31
+ export type IdentifierValidatorConstructor<TConstructorArguments extends unknown[], TIdentifierType extends IdentifierType, TIdentifierValidation extends IdentifierValidation, TIdentifierValidator extends IdentifierValidator<TIdentifierType, TIdentifierValidation> = IdentifierTypeValidator<TIdentifierType>> = IdentifierExtensionConstructor<TConstructorArguments, TIdentifierValidator>;
32
+ /**
33
+ * Identifier creator constructor type, which delegates to an identifier validator constructor.
34
+ *
35
+ * @template TConstructorArguments
36
+ * Constructor arguments types.
37
+ *
38
+ * @template TIdentifierType
39
+ * Identifier type type.
40
+ *
41
+ * @template TIdentifierValidation
42
+ * Identifier validation type.
43
+ *
44
+ * @template TIdentifierValidator
45
+ * Identifier validator type.
46
+ */
47
+ export type IdentifierCreatorConstructor<TConstructorArguments extends unknown[], TIdentifierType extends IdentifierType, TIdentifierValidation extends IdentifierValidation, TIdentifierValidator extends IdentifierValidator<TIdentifierType, TIdentifierValidation>> = IdentifierExtensionConstructor<[
48
+ prefixProvider: PrefixProvider,
49
+ prefix: string,
50
+ checkAllowance: number,
51
+ ...args: TConstructorArguments
52
+ ], TIdentifierValidator & IdentifierCreator<TIdentifierType, TIdentifierValidation>>;
53
+ /**
54
+ * Mixin implementation of {@linkcode IdentifierCreator} with an appropriate identifier validator base.
55
+ *
56
+ * @template TConstructorArguments
57
+ * Constructor arguments types.
58
+ *
59
+ * @template TIdentifierType
60
+ * Identifier type type.
61
+ *
62
+ * @template TIdentifierValidation
63
+ * Identifier validation type.
64
+ *
65
+ * @template TIdentifierValidatorConstructor
66
+ * Identifier validator constructor type.
67
+ *
68
+ * @param IdentifierValidatorBase
69
+ * Identifier validator base.
70
+ *
71
+ * @returns
72
+ * Identifier creator class.
73
+ */
74
+ export declare function MixinAbstractIdentifierCreator<TConstructorArguments extends unknown[], TIdentifierType extends IdentifierType, TIdentifierValidation extends IdentifierValidation, TIdentifierValidatorConstructor extends IdentifierValidatorConstructor<TConstructorArguments, TIdentifierType, TIdentifierValidation>>(IdentifierValidatorBase: TIdentifierValidatorConstructor): IdentifierCreatorConstructor<TConstructorArguments, TIdentifierType, TIdentifierValidation, IdentifierTypeValidator<TIdentifierType>>;
75
+ //# sourceMappingURL=abstract-identifier-creator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abstract-identifier-creator.d.ts","sourceRoot":"","sources":["../src/abstract-identifier-creator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAC3F,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D;;;;;;;;GAQG;AACH,MAAM,MAAM,8BAA8B,CACtC,qBAAqB,SAAS,OAAO,EAAE,EACvC,oBAAoB,IACpB,QAAQ,MAAM,GAAG,IAAI,EAAE,qBAAqB,KAAK,oBAAoB,CAAC;AAE1E;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,8BAA8B,CACtC,qBAAqB,SAAS,OAAO,EAAE,EACvC,eAAe,SAAS,cAAc,EACtC,qBAAqB,SAAS,oBAAoB,EAClD,oBAAoB,SAAS,mBAAmB,CAAC,eAAe,EAAE,qBAAqB,CAAC,GAAG,uBAAuB,CAAC,eAAe,CAAC,IACnI,8BAA8B,CAC9B,qBAAqB,EACrB,oBAAoB,CACvB,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,4BAA4B,CACpC,qBAAqB,SAAS,OAAO,EAAE,EACvC,eAAe,SAAS,cAAc,EACtC,qBAAqB,SAAS,oBAAoB,EAClD,oBAAoB,SAAS,mBAAmB,CAAC,eAAe,EAAE,qBAAqB,CAAC,IACxF,8BAA8B,CAC9B;IAAC,cAAc,EAAE,cAAc;IAAE,MAAM,EAAE,MAAM;IAAE,cAAc,EAAE,MAAM;IAAE,GAAG,IAAI,EAAE,qBAAqB;CAAC,EACxG,oBAAoB,GAAG,iBAAiB,CAAC,eAAe,EAAE,qBAAqB,CAAC,CACnF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,8BAA8B,CAC1C,qBAAqB,SAAS,OAAO,EAAE,EACvC,eAAe,SAAS,cAAc,EACtC,qBAAqB,SAAS,oBAAoB,EAClD,+BAA+B,SAAS,8BAA8B,CAClE,qBAAqB,EACrB,eAAe,EACf,qBAAqB,CACxB,EACH,uBAAuB,EAAE,+BAA+B,GAAG,4BAA4B,CACrF,qBAAqB,EACrB,eAAe,EACf,qBAAqB,EACrB,uBAAuB,CAAC,eAAe,CAAC,CAC3C,CAwEA"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Mixin implementation of {@linkcode IdentifierCreator} with an appropriate identifier validator base.
3
+ *
4
+ * @template TConstructorArguments
5
+ * Constructor arguments types.
6
+ *
7
+ * @template TIdentifierType
8
+ * Identifier type type.
9
+ *
10
+ * @template TIdentifierValidation
11
+ * Identifier validation type.
12
+ *
13
+ * @template TIdentifierValidatorConstructor
14
+ * Identifier validator constructor type.
15
+ *
16
+ * @param IdentifierValidatorBase
17
+ * Identifier validator base.
18
+ *
19
+ * @returns
20
+ * Identifier creator class.
21
+ */
22
+ export function MixinAbstractIdentifierCreator(IdentifierValidatorBase) {
23
+ /**
24
+ * Abstract numeric identifier creator. Implements common functionality for a numeric identifier creator, mixed in
25
+ * with a matching numeric identifier validator.
26
+ */
27
+ class AbstractIdentifierCreator extends IdentifierValidatorBase {
28
+ /**
29
+ * Prefix provider.
30
+ */
31
+ #prefixProvider;
32
+ /**
33
+ * Reference length.
34
+ */
35
+ #referenceLength;
36
+ /**
37
+ * Constructor.
38
+ *
39
+ * @param prefixProvider
40
+ * Prefix provider.
41
+ *
42
+ * @param prefix
43
+ * Prefix within prefix provider to use to calculate reference length.
44
+ *
45
+ * @param checkAllowance
46
+ * Number of characters to allow for check digit or check character pair.
47
+ *
48
+ * @param args
49
+ * Originating constructor arguments.
50
+ */
51
+ constructor(prefixProvider, prefix, checkAllowance, ...args) {
52
+ super(...args);
53
+ this.#prefixProvider = prefixProvider;
54
+ // Reference length allows for prefix and optionally check digit or check character pair.
55
+ this.#referenceLength = this.length - prefix.length - checkAllowance;
56
+ }
57
+ /**
58
+ * @inheritDoc
59
+ */
60
+ get prefixProvider() {
61
+ return this.#prefixProvider;
62
+ }
63
+ /**
64
+ * @inheritDoc
65
+ */
66
+ get prefix() {
67
+ return this.prefixProvider.gs1CompanyPrefix;
68
+ }
69
+ /**
70
+ * @inheritDoc
71
+ */
72
+ get referenceLength() {
73
+ return this.#referenceLength;
74
+ }
75
+ }
76
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- Base class was upcast to type with statically known members for mixin, downcast result.
77
+ return AbstractIdentifierCreator;
78
+ }
79
+ //# sourceMappingURL=abstract-identifier-creator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abstract-identifier-creator.js","sourceRoot":"","sources":["../src/abstract-identifier-creator.ts"],"names":[],"mappings":"AAsEA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,8BAA8B,CAS5C,uBAAwD;IAMtD;;;OAGG;IACH,MAAe,yBAA0B,SAAS,uBAKhD;QACE;;WAEG;QACM,eAAe,CAAiB;QAEzC;;WAEG;QACM,gBAAgB,CAAS;QAElC;;;;;;;;;;;;;;WAcG;QACH,YAAY,cAA8B,EAAE,MAAc,EAAE,cAAsB,EAAE,GAAG,IAA2B;YAC9G,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;YAEf,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;YAEtC,yFAAyF;YACzF,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,cAAc,CAAC;QACzE,CAAC;QAED;;WAEG;QACH,IAAI,cAAc;YACd,OAAO,IAAI,CAAC,eAAe,CAAC;QAChC,CAAC;QAED;;WAEG;QACH,IAAI,MAAM;YACN,OAAO,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC;QAChD,CAAC;QAED;;WAEG;QACH,IAAI,eAAe;YACf,OAAO,IAAI,CAAC,gBAAgB,CAAC;QACjC,CAAC;KACJ;IAED,kKAAkK;IAClK,OAAO,yBAGN,CAAC;AACN,CAAC"}
@@ -0,0 +1,42 @@
1
+ import type { IdentifierExtensionConstructor, IdentifierValidatorConstructor } from "./abstract-identifier-creator.js";
2
+ import type { IdentifierTypeValidator } from "./identifier-validators.js";
3
+ import type { NonGTINNumericIdentifierCreator } from "./non-gtin-numeric-identifier-creator.js";
4
+ import type { NonGTINNumericIdentifierType } from "./non-gtin-numeric-identifier-type.js";
5
+ import type { NonGTINNumericIdentifierValidator } from "./non-gtin-numeric-identifier-validator.js";
6
+ import type { NumericIdentifierValidation } from "./numeric-identifier-validator.js";
7
+ import type { PrefixProvider } from "./prefix-provider.js";
8
+ /**
9
+ * Non-GTIN numeric identifier creator constructor type, which delegates to a non-GTIN numeric identifier validator
10
+ * constructor.
11
+ *
12
+ * @template TNonGTINNumericIdentifierType
13
+ * Non-GTIN numeric identifier type type.
14
+ *
15
+ * @template TNonGTINNumericIdentifierValidator
16
+ * Non-GTIN numeric identifier validator type.
17
+ */
18
+ type NonGTINNumericIdentifierCreatorConstructor<TNonGTINNumericIdentifierType extends NonGTINNumericIdentifierType, TNonGTINNumericIdentifierValidator extends NonGTINNumericIdentifierValidator<TNonGTINNumericIdentifierType>> = IdentifierExtensionConstructor<[
19
+ prefixProvider: PrefixProvider,
20
+ identifierType: TNonGTINNumericIdentifierType
21
+ ], TNonGTINNumericIdentifierValidator & NonGTINNumericIdentifierCreator<TNonGTINNumericIdentifierType>>;
22
+ /**
23
+ * Mixin implementation of {@linkcode NonGTINNumericIdentifierCreator} with an appropriate non-GTIN numeric identifier
24
+ * validator base.
25
+ *
26
+ * @template TNonGTINNumericIdentifierType
27
+ * Non-GTIN numeric identifier type type.
28
+ *
29
+ * @template TNonGTINNumericIdentifierValidatorConstructor
30
+ * Non-GTIN numeric identifier validator constructor type.
31
+ *
32
+ * @param NonGTINNumericIdentifierValidatorBase
33
+ * Non-GTIN numeric identifier validator base.
34
+ *
35
+ * @returns
36
+ * Non-GTIN numeric identifier creator class.
37
+ */
38
+ export declare function MixinAbstractNonGTINNumericIdentifierCreator<TNonGTINNumericIdentifierType extends NonGTINNumericIdentifierType, TNonGTINNumericIdentifierValidatorConstructor extends IdentifierValidatorConstructor<[
39
+ TNonGTINNumericIdentifierType
40
+ ], TNonGTINNumericIdentifierType, NumericIdentifierValidation>>(NonGTINNumericIdentifierValidatorBase: TNonGTINNumericIdentifierValidatorConstructor): NonGTINNumericIdentifierCreatorConstructor<TNonGTINNumericIdentifierType, IdentifierTypeValidator<TNonGTINNumericIdentifierType>>;
41
+ export {};
42
+ //# sourceMappingURL=abstract-non-gtin-numeric-identifier-creator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abstract-non-gtin-numeric-identifier-creator.d.ts","sourceRoot":"","sources":["../src/abstract-non-gtin-numeric-identifier-creator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,8BAA8B,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAKvH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,0CAA0C,CAAC;AAChG,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AAC1F,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,4CAA4C,CAAC;AACpG,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AACrF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D;;;;;;;;;GASG;AACH,KAAK,0CAA0C,CAC3C,6BAA6B,SAAS,4BAA4B,EAClE,kCAAkC,SAAS,iCAAiC,CAAC,6BAA6B,CAAC,IAC3G,8BAA8B,CAC9B;IAAC,cAAc,EAAE,cAAc;IAAE,cAAc,EAAE,6BAA6B;CAAC,EAC/E,kCAAkC,GAAG,+BAA+B,CAAC,6BAA6B,CAAC,CACtG,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,4CAA4C,CACxD,6BAA6B,SAAS,4BAA4B,EAClE,6CAA6C,SAAS,8BAA8B,CAChF;IAAC,6BAA6B;CAAC,EAC/B,6BAA6B,EAC7B,2BAA2B,CAC9B,EACH,qCAAqC,EAAE,6CAA6C,GAAG,0CAA0C,CAC/H,6BAA6B,EAC7B,uBAAuB,CAAC,6BAA6B,CAAC,CACzD,CA6BA"}
@@ -0,0 +1,40 @@
1
+ import { MixinAbstractNumericIdentifierCreator } from "./abstract-numeric-identifier-creator.js";
2
+ /**
3
+ * Mixin implementation of {@linkcode NonGTINNumericIdentifierCreator} with an appropriate non-GTIN numeric identifier
4
+ * validator base.
5
+ *
6
+ * @template TNonGTINNumericIdentifierType
7
+ * Non-GTIN numeric identifier type type.
8
+ *
9
+ * @template TNonGTINNumericIdentifierValidatorConstructor
10
+ * Non-GTIN numeric identifier validator constructor type.
11
+ *
12
+ * @param NonGTINNumericIdentifierValidatorBase
13
+ * Non-GTIN numeric identifier validator base.
14
+ *
15
+ * @returns
16
+ * Non-GTIN numeric identifier creator class.
17
+ */
18
+ export function MixinAbstractNonGTINNumericIdentifierCreator(NonGTINNumericIdentifierValidatorBase) {
19
+ /**
20
+ * Abstract non-GTIN numeric identifier creator. Implements common functionality for a non-GTIN numeric identifier
21
+ * creator, mixed in with a matching non-GTIN numeric identifier validator.
22
+ */
23
+ class AbstractNonGTINNumericIdentifierCreator extends MixinAbstractNumericIdentifierCreator(NonGTINNumericIdentifierValidatorBase) {
24
+ /**
25
+ * Constructor.
26
+ *
27
+ * @param prefixProvider
28
+ * Prefix provider.
29
+ *
30
+ * @param identifierType
31
+ * Identifier type.
32
+ */
33
+ constructor(prefixProvider, identifierType) {
34
+ super(prefixProvider, prefixProvider.gs1CompanyPrefix, identifierType);
35
+ }
36
+ }
37
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- Base class was upcast to type with statically known members for mixin, downcast result.
38
+ return AbstractNonGTINNumericIdentifierCreator;
39
+ }
40
+ //# sourceMappingURL=abstract-non-gtin-numeric-identifier-creator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abstract-non-gtin-numeric-identifier-creator.js","sourceRoot":"","sources":["../src/abstract-non-gtin-numeric-identifier-creator.ts"],"names":[],"mappings":"AACA,OAAO,EACH,qCAAqC,EAExC,MAAM,0CAA0C,CAAC;AA0BlD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,4CAA4C,CAO1D,qCAAoF;IAIlF;;;OAGG;IACH,MAAe,uCAAwC,SAAS,qCAAqC,CAAC,qCAAqC,CAIzI;QACE;;;;;;;;WAQG;QACH,YAAY,cAA8B,EAAE,cAA6C;YACrF,KAAK,CAAC,cAAc,EAAE,cAAc,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;QAC3E,CAAC;KACJ;IAED,kKAAkK;IAClK,OAAO,uCAGN,CAAC;AACN,CAAC"}
@@ -0,0 +1,43 @@
1
+ import { type IdentifierExtensionConstructor, type IdentifierValidatorConstructor } from "./abstract-identifier-creator.js";
2
+ import type { IdentifierTypeValidator } from "./identifier-validators.js";
3
+ import type { NumericIdentifierCreator } from "./numeric-identifier-creator.js";
4
+ import type { NumericIdentifierType } from "./numeric-identifier-type.js";
5
+ import type { NumericIdentifierValidation, NumericIdentifierValidator } from "./numeric-identifier-validator.js";
6
+ import type { PrefixProvider } from "./prefix-provider.js";
7
+ /**
8
+ * Numeric identifier creator constructor type, which delegates to a numeric identifier validator constructor.
9
+ *
10
+ * @template TConstructorArguments
11
+ * Constructor arguments types.
12
+ *
13
+ * @template TNumericIdentifierType
14
+ * Numeric identifier type type.
15
+ *
16
+ * @template TNumericIdentifierValidator
17
+ * Numeric identifier validator type.
18
+ */
19
+ export type NumericIdentifierCreatorConstructor<TConstructorArguments extends unknown[], TNumericIdentifierType extends NumericIdentifierType, TNumericIdentifierValidator extends NumericIdentifierValidator<TNumericIdentifierType>> = IdentifierExtensionConstructor<[
20
+ prefixProvider: PrefixProvider,
21
+ prefix: string,
22
+ ...args: TConstructorArguments
23
+ ], TNumericIdentifierValidator & NumericIdentifierCreator<TNumericIdentifierType>>;
24
+ /**
25
+ * Mixin implementation of {@linkcode NumericIdentifierCreator} with an appropriate numeric identifier validator base.
26
+ *
27
+ * @template TConstructorArguments
28
+ * Constructor arguments types.
29
+ *
30
+ * @template TNumericIdentifierType
31
+ * Numeric identifier type type.
32
+ *
33
+ * @template TNumericIdentifierValidatorConstructor
34
+ * Numeric identifier validator constructor type.
35
+ *
36
+ * @param NumericIdentifierValidatorBase
37
+ * Numeric identifier validator base.
38
+ *
39
+ * @returns
40
+ * Numeric identifier creator class.
41
+ */
42
+ export declare function MixinAbstractNumericIdentifierCreator<TConstructorArguments extends unknown[], TNumericIdentifierType extends NumericIdentifierType, TNumericIdentifierValidatorConstructor extends IdentifierValidatorConstructor<TConstructorArguments, TNumericIdentifierType, NumericIdentifierValidation>>(NumericIdentifierValidatorBase: TNumericIdentifierValidatorConstructor): NumericIdentifierCreatorConstructor<TConstructorArguments, TNumericIdentifierType, IdentifierTypeValidator<TNumericIdentifierType>>;
43
+ //# sourceMappingURL=abstract-numeric-identifier-creator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abstract-numeric-identifier-creator.d.ts","sourceRoot":"","sources":["../src/abstract-numeric-identifier-creator.ts"],"names":[],"mappings":"AAOA,OAAO,EAEH,KAAK,8BAA8B,EACnC,KAAK,8BAA8B,EAEtC,MAAM,kCAAkC,CAAC;AAE1C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAE1E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,KAAK,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AACjH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,mCAAmC,CAC3C,qBAAqB,SAAS,OAAO,EAAE,EACvC,sBAAsB,SAAS,qBAAqB,EACpD,2BAA2B,SAAS,0BAA0B,CAAC,sBAAsB,CAAC,IACtF,8BAA8B,CAC9B;IAAC,cAAc,EAAE,cAAc;IAAE,MAAM,EAAE,MAAM;IAAE,GAAG,IAAI,EAAE,qBAAqB;CAAC,EAChF,2BAA2B,GAAG,wBAAwB,CAAC,sBAAsB,CAAC,CACjF,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,qCAAqC,CACjD,qBAAqB,SAAS,OAAO,EAAE,EACvC,sBAAsB,SAAS,qBAAqB,EACpD,sCAAsC,SAAS,8BAA8B,CACzE,qBAAqB,EACrB,sBAAsB,EACtB,2BAA2B,CAC9B,EACH,8BAA8B,EAAE,sCAAsC,GAAG,mCAAmC,CAC1G,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,CAAC,sBAAsB,CAAC,CAClD,CAoKA"}
@@ -0,0 +1,160 @@
1
+ import { CharacterSetCreator, Exclusions, NUMERIC_CREATOR } from "@aidc-toolkit/utility";
2
+ import { MixinAbstractIdentifierCreator } from "./abstract-identifier-creator.js";
3
+ import { checkDigit, checkDigitSum } from "./check.js";
4
+ import { LeaderTypes } from "./leader-type.js";
5
+ /**
6
+ * Mixin implementation of {@linkcode NumericIdentifierCreator} with an appropriate numeric identifier validator base.
7
+ *
8
+ * @template TConstructorArguments
9
+ * Constructor arguments types.
10
+ *
11
+ * @template TNumericIdentifierType
12
+ * Numeric identifier type type.
13
+ *
14
+ * @template TNumericIdentifierValidatorConstructor
15
+ * Numeric identifier validator constructor type.
16
+ *
17
+ * @param NumericIdentifierValidatorBase
18
+ * Numeric identifier validator base.
19
+ *
20
+ * @returns
21
+ * Numeric identifier creator class.
22
+ */
23
+ export function MixinAbstractNumericIdentifierCreator(NumericIdentifierValidatorBase) {
24
+ /**
25
+ * Abstract numeric identifier creator. Implements common functionality for a numeric identifier creator, mixed in
26
+ * with a matching numeric identifier validator.
27
+ */
28
+ class AbstractNumericIdentifierCreator extends MixinAbstractIdentifierCreator(NumericIdentifierValidatorBase) {
29
+ /**
30
+ * Capacity.
31
+ */
32
+ #capacity;
33
+ /**
34
+ * Tweak for sparse creation.
35
+ */
36
+ #tweak = 0n;
37
+ /**
38
+ * Constructor.
39
+ *
40
+ * @param prefixProvider
41
+ * Prefix provider.
42
+ *
43
+ * @param prefix
44
+ * Prefix within prefix provider to use to calculate reference length.
45
+ *
46
+ * @param args
47
+ * Originating constructor arguments.
48
+ */
49
+ constructor(prefixProvider, prefix, ...args) {
50
+ super(prefixProvider, prefix, 1, ...args);
51
+ // Capacity is always in number range.
52
+ this.#capacity = Number(CharacterSetCreator.powerOf10(this.referenceLength));
53
+ }
54
+ /**
55
+ * @inheritDoc
56
+ */
57
+ get capacity() {
58
+ return this.#capacity;
59
+ }
60
+ /**
61
+ * @inheritDoc
62
+ */
63
+ get tweak() {
64
+ return this.#tweak;
65
+ }
66
+ /**
67
+ * @inheritDoc
68
+ */
69
+ set tweak(value) {
70
+ this.#tweak = value;
71
+ }
72
+ /**
73
+ * Build an identifier from a reference by merging it with the prefix and adding the check digit.
74
+ *
75
+ * @param reference
76
+ * Identifier reference.
77
+ *
78
+ * @returns
79
+ * Identifier.
80
+ */
81
+ #buildIdentifier(reference) {
82
+ const partialIdentifier = this.leaderType === LeaderTypes.ExtensionDigit ? reference.substring(0, 1) + this.prefix + reference.substring(1) : this.prefix + reference;
83
+ return partialIdentifier + checkDigit(partialIdentifier);
84
+ }
85
+ /**
86
+ * @inheritDoc
87
+ */
88
+ create(valueOrValues, sparse = false) {
89
+ return NUMERIC_CREATOR.create(this.referenceLength, valueOrValues, Exclusions.None, sparse ? this.tweak : undefined, reference => this.#buildIdentifier(reference));
90
+ }
91
+ /**
92
+ * Create all identifiers from a partial identifier. Call is recursive until remaining reference
93
+ * length is 0.
94
+ *
95
+ * @param partialIdentifier
96
+ * Partial identifier. Initial value is `this.prefix`.
97
+ *
98
+ * @param remainingReferenceLength
99
+ * Remaining reference length. Initial value is `this.referenceLength`.
100
+ *
101
+ * @param extensionWeight
102
+ * If this value is not zero, the identifier has an extension digit, this call is setting it, and this value is
103
+ * applied to the calculation of the check digit.
104
+ *
105
+ * @param weight
106
+ * If the extension weight is zero, this value is applied to the calculation of the check digit.
107
+ *
108
+ * @param partialCheckDigitSum
109
+ * Partial check digit sum for the partial identifier.
110
+ *
111
+ * @yields
112
+ * Identifier.
113
+ */
114
+ static *createAllPartial(partialIdentifier, remainingReferenceLength, extensionWeight, weight, partialCheckDigitSum) {
115
+ if (remainingReferenceLength === 0) {
116
+ // Finalize check digit calculation and append.
117
+ yield partialIdentifier + NUMERIC_CREATOR.character(9 - (partialCheckDigitSum + 9) % 10);
118
+ }
119
+ else {
120
+ const nextRemainingReferenceLength = remainingReferenceLength - 1;
121
+ let nextPartialCheckDigitSum = partialCheckDigitSum;
122
+ if (extensionWeight !== 0) {
123
+ // Apply every digit to the extension digit.
124
+ for (const c of NUMERIC_CREATOR.characterSet) {
125
+ yield* AbstractNumericIdentifierCreator.createAllPartial(c + partialIdentifier, nextRemainingReferenceLength, 0, weight, nextPartialCheckDigitSum);
126
+ nextPartialCheckDigitSum += extensionWeight;
127
+ }
128
+ }
129
+ else {
130
+ const nextWeight = 4 - weight;
131
+ // Apply every digit to the current character in the identifier.
132
+ for (const c of NUMERIC_CREATOR.characterSet) {
133
+ yield* AbstractNumericIdentifierCreator.createAllPartial(partialIdentifier + c, nextRemainingReferenceLength, 0, nextWeight, nextPartialCheckDigitSum);
134
+ nextPartialCheckDigitSum += weight;
135
+ }
136
+ }
137
+ }
138
+ }
139
+ /**
140
+ * @inheritDoc
141
+ */
142
+ createAll() {
143
+ const hasExtensionDigit = this.leaderType === LeaderTypes.ExtensionDigit;
144
+ const prefix = this.prefix;
145
+ const length = this.length;
146
+ const referenceLength = this.referenceLength;
147
+ // Start weight is for reference excluding extension digit, which has its weight calculated separately.
148
+ const startWeight = 3 - 2 * ((referenceLength + 1 - Number(hasExtensionDigit)) % 2);
149
+ // Returning separate Iterable object makes iteration repeatable.
150
+ return {
151
+ [Symbol.iterator]() {
152
+ return AbstractNumericIdentifierCreator.createAllPartial(prefix, referenceLength, hasExtensionDigit ? 3 - 2 * length % 2 : 0, startWeight, checkDigitSum(startWeight === 3, prefix));
153
+ }
154
+ };
155
+ }
156
+ }
157
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- Base class was upcast to type with statically known members for mixin, downcast result.
158
+ return AbstractNumericIdentifierCreator;
159
+ }
160
+ //# sourceMappingURL=abstract-numeric-identifier-creator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abstract-numeric-identifier-creator.js","sourceRoot":"","sources":["../src/abstract-numeric-identifier-creator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { CharacterSetCreator, CharacterSetValidator } from "@aidc-toolkit/utility";
2
+ /**
3
+ * GS1 AI encodable character set 82 creator as defined in section 7.11 of the {@link
4
+ * https://ref.gs1.org/standards/genspecs/ | GS1 General Specifications}. Supports {@linkcode Exclusions.AllNumeric}.
5
+ */
6
+ export declare const AI82_CREATOR: CharacterSetCreator;
7
+ /**
8
+ * GS1 AI encodable character set 82 validator as defined in section 7.11 of the {@link
9
+ * https://ref.gs1.org/standards/genspecs/ | GS1 General Specifications}. Supports {@linkcode Exclusions.AllNumeric}.
10
+ */
11
+ export declare const AI82_VALIDATOR: CharacterSetValidator;
12
+ /**
13
+ * GS1 AI encodable character set 39 creator as defined in section 7.11 of the {@link
14
+ * https://ref.gs1.org/standards/genspecs/ | GS1 General Specifications}. Supports {@linkcode Exclusions.AllNumeric}.
15
+ */
16
+ export declare const AI39_CREATOR: CharacterSetCreator;
17
+ /**
18
+ * GS1 AI encodable character set 39 validator as defined in section 7.11 of the {@link
19
+ * https://ref.gs1.org/standards/genspecs/ | GS1 General Specifications}. Supports {@linkcode Exclusions.AllNumeric}.
20
+ */
21
+ export declare const AI39_VALIDATOR: CharacterSetValidator;
22
+ /**
23
+ * GS1 AI encodable character set 64 validator as defined in section 7.11 of the {@link
24
+ * https://ref.gs1.org/standards/genspecs/ | GS1 General Specifications}. Doesn't support any exclusions.
25
+ */
26
+ export declare const AI64_VALIDATOR: CharacterSetValidator;
27
+ //# sourceMappingURL=character-set.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"character-set.d.ts","sourceRoot":"","sources":["../src/character-set.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAc,MAAM,uBAAuB,CAAC;AAE/F;;;GAGG;AACH,eAAO,MAAM,YAAY,qBASA,CAAC;AAE1B;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAmB,qBAAqB,CAAC;AAEpE;;;GAGG;AACH,eAAO,MAAM,YAAY,qBAKA,CAAC;AAE1B;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAmB,qBAAqB,CAAC;AAEpE;;;GAGG;AACH,eAAO,MAAM,cAAc,uBASzB,CAAC"}
@@ -0,0 +1,50 @@
1
+ import { CharacterSetCreator, CharacterSetValidator, Exclusions } from "@aidc-toolkit/utility";
2
+ /**
3
+ * GS1 AI encodable character set 82 creator as defined in section 7.11 of the {@link
4
+ * https://ref.gs1.org/standards/genspecs/ | GS1 General Specifications}. Supports {@linkcode Exclusions.AllNumeric}.
5
+ */
6
+ export const AI82_CREATOR = new CharacterSetCreator([
7
+ "!", "\"", "%", "&", "'", "(", ")", "*", "+", ",", "-", ".", "/",
8
+ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
9
+ ":", ";", "<", "=", ">", "?",
10
+ "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M",
11
+ "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z",
12
+ "_",
13
+ "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m",
14
+ "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"
15
+ ], Exclusions.AllNumeric);
16
+ /**
17
+ * GS1 AI encodable character set 82 validator as defined in section 7.11 of the {@link
18
+ * https://ref.gs1.org/standards/genspecs/ | GS1 General Specifications}. Supports {@linkcode Exclusions.AllNumeric}.
19
+ */
20
+ export const AI82_VALIDATOR = AI82_CREATOR;
21
+ /**
22
+ * GS1 AI encodable character set 39 creator as defined in section 7.11 of the {@link
23
+ * https://ref.gs1.org/standards/genspecs/ | GS1 General Specifications}. Supports {@linkcode Exclusions.AllNumeric}.
24
+ */
25
+ export const AI39_CREATOR = new CharacterSetCreator([
26
+ "#", "-", "/",
27
+ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
28
+ "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M",
29
+ "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"
30
+ ], Exclusions.AllNumeric);
31
+ /**
32
+ * GS1 AI encodable character set 39 validator as defined in section 7.11 of the {@link
33
+ * https://ref.gs1.org/standards/genspecs/ | GS1 General Specifications}. Supports {@linkcode Exclusions.AllNumeric}.
34
+ */
35
+ export const AI39_VALIDATOR = AI39_CREATOR;
36
+ /**
37
+ * GS1 AI encodable character set 64 validator as defined in section 7.11 of the {@link
38
+ * https://ref.gs1.org/standards/genspecs/ | GS1 General Specifications}. Doesn't support any exclusions.
39
+ */
40
+ export const AI64_VALIDATOR = new CharacterSetValidator([
41
+ "-",
42
+ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
43
+ "=",
44
+ "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M",
45
+ "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z",
46
+ "_",
47
+ "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m",
48
+ "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"
49
+ ]);
50
+ //# sourceMappingURL=character-set.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"character-set.js","sourceRoot":"","sources":["../src/character-set.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Calculate the check digit sum for a numeric string as per section 7.9.1 of the {@link
3
+ * https://ref.gs1.org/standards/genspecs/ | GS1 General Specifications}.
4
+ *
5
+ * @param exchangeWeights
6
+ * If true, start the weights at 1 instead of 3 on the right.
7
+ *
8
+ * @param s
9
+ * Numeric string.
10
+ *
11
+ * @returns
12
+ * Accumulated sum of each digit multiplied by the weight at its position.
13
+ */
14
+ export declare function checkDigitSum(exchangeWeights: boolean, s: string): number;
15
+ /**
16
+ * Calculate the check digit for a numeric string as per section 7.9.1 of the {@link
17
+ * https://ref.gs1.org/standards/genspecs/ | GS1 General Specifications}.
18
+ *
19
+ * @param s
20
+ * Numeric string.
21
+ *
22
+ * @returns
23
+ * Check digit 0-9 as a string.
24
+ */
25
+ export declare function checkDigit(s: string): string;
26
+ /**
27
+ * Determine if a numeric string has a valid check digit.
28
+ *
29
+ * @param s
30
+ * Numeric string with check digit.
31
+ *
32
+ * @returns
33
+ * True if the check digit is valid.
34
+ */
35
+ export declare function hasValidCheckDigit(s: string): boolean;
36
+ /**
37
+ * Calculate the price or weight check digit for a four-or five-digit numeric string as per sections 7.9.2-7.9.4 of the
38
+ * {@link https://ref.gs1.org/standards/genspecs/ | GS1 General Specifications}.
39
+ *
40
+ * @param s
41
+ * Numeric string exactly four or five characters long.
42
+ *
43
+ * @returns
44
+ * Check digit 0-9 as a string.
45
+ */
46
+ export declare function priceOrWeightCheckDigit(s: string): string;
47
+ /**
48
+ * Determine if a price or weight check digit is valid for numeric string.
49
+ *
50
+ * @param s
51
+ * Numeric string exactly four or five characters long.
52
+ *
53
+ * @param checkDigit
54
+ * Price or weight check digit.
55
+ *
56
+ * @returns
57
+ * True if the check digit is valid.
58
+ */
59
+ export declare function isValidPriceOrWeightCheckDigit(s: string, checkDigit: string): boolean;
60
+ /**
61
+ * Calculate the check character for a GS1 AI encodable character set 82 string as per section 7.9.5 of the {@link
62
+ * https://ref.gs1.org/standards/genspecs/ | GS1 General Specifications}.
63
+ *
64
+ * @param s
65
+ * GS1 AI encodable character set 82 string.
66
+ *
67
+ * @returns
68
+ * Check character pair.
69
+ */
70
+ export declare function checkCharacterPair(s: string): string;
71
+ /**
72
+ * Determine if a GS1 AI encodable character set 82 string has a valid check character pair.
73
+ *
74
+ * @param s
75
+ * GS1 AI encodable character set 82 string with check character pair.
76
+ *
77
+ * @returns
78
+ * True if the check character pair is valid.
79
+ */
80
+ export declare function hasValidCheckCharacterPair(s: string): boolean;
81
+ //# sourceMappingURL=check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../src/check.ts"],"names":[],"mappings":"AAuCA;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,eAAe,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAkBzE;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAG5C;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAGrD;AA+BD;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAmBzD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,8BAA8B,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAErF;AAiBD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CA4BpD;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAI7D"}