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