@aidc-toolkit/gs1 1.0.25-beta → 1.0.26-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 (234) 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 +56 -0
  4. package/dist/abstract-identifier-creator.js.map +1 -0
  5. package/dist/abstract-identifier-validator.d.ts +95 -0
  6. package/dist/abstract-identifier-validator.d.ts.map +1 -0
  7. package/dist/abstract-identifier-validator.js +123 -0
  8. package/dist/abstract-identifier-validator.js.map +1 -0
  9. package/dist/abstract-numeric-identifier-creator.d.ts +92 -0
  10. package/dist/abstract-numeric-identifier-creator.d.ts.map +1 -0
  11. package/dist/abstract-numeric-identifier-creator.js +137 -0
  12. package/dist/abstract-numeric-identifier-creator.js.map +1 -0
  13. package/dist/abstract-numeric-identifier-validator.d.ts +35 -0
  14. package/dist/abstract-numeric-identifier-validator.d.ts.map +1 -0
  15. package/dist/abstract-numeric-identifier-validator.js +61 -0
  16. package/dist/abstract-numeric-identifier-validator.js.map +1 -0
  17. package/dist/character-set.d.ts +27 -0
  18. package/dist/character-set.d.ts.map +1 -0
  19. package/dist/character-set.js +50 -0
  20. package/dist/character-set.js.map +1 -0
  21. package/dist/check.d.ts +81 -0
  22. package/dist/check.d.ts.map +1 -0
  23. package/dist/check.js +218 -0
  24. package/dist/check.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/creators.d.ts +81 -0
  30. package/dist/creators.d.ts.map +1 -0
  31. package/dist/creators.js +62 -0
  32. package/dist/creators.js.map +1 -0
  33. package/dist/descriptors.d.ts +96 -0
  34. package/dist/descriptors.d.ts.map +1 -0
  35. package/dist/descriptors.js +266 -0
  36. package/dist/descriptors.js.map +1 -0
  37. package/dist/gtin-creator.d.ts +69 -0
  38. package/dist/gtin-creator.d.ts.map +1 -0
  39. package/dist/gtin-creator.js +159 -0
  40. package/dist/gtin-creator.js.map +1 -0
  41. package/dist/gtin-descriptor.d.ts +17 -0
  42. package/dist/gtin-descriptor.d.ts.map +1 -0
  43. package/dist/gtin-descriptor.js +2 -0
  44. package/dist/gtin-descriptor.js.map +1 -0
  45. package/dist/gtin-type.d.ts +39 -0
  46. package/dist/gtin-type.d.ts.map +1 -0
  47. package/dist/gtin-type.js +31 -0
  48. package/dist/gtin-type.js.map +1 -0
  49. package/dist/gtin-validator.d.ts +191 -0
  50. package/dist/gtin-validator.d.ts.map +1 -0
  51. package/dist/gtin-validator.js +450 -0
  52. package/dist/gtin-validator.js.map +1 -0
  53. package/dist/identifier-creator.d.ts +31 -0
  54. package/dist/identifier-creator.d.ts.map +1 -0
  55. package/dist/identifier-creator.js +2 -0
  56. package/dist/identifier-creator.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-type.d.ts +62 -0
  62. package/dist/identifier-type.d.ts.map +1 -0
  63. package/dist/identifier-type.js +54 -0
  64. package/dist/identifier-type.js.map +1 -0
  65. package/dist/identifier-validator.d.ts +53 -0
  66. package/dist/identifier-validator.d.ts.map +1 -0
  67. package/dist/identifier-validator.js +2 -0
  68. package/dist/identifier-validator.js.map +1 -0
  69. package/dist/index.d.ts +52 -1949
  70. package/dist/index.d.ts.map +1 -0
  71. package/dist/index.js +21 -4727
  72. package/dist/index.js.map +1 -1
  73. package/dist/locale/en/locale-resources.d.ts +42 -0
  74. package/dist/locale/en/locale-resources.d.ts.map +1 -0
  75. package/dist/locale/en/locale-resources.js +41 -0
  76. package/dist/locale/en/locale-resources.js.map +1 -0
  77. package/dist/locale/fr/locale-resources.d.ts +42 -0
  78. package/dist/locale/fr/locale-resources.d.ts.map +1 -0
  79. package/dist/locale/fr/locale-resources.js +41 -0
  80. package/dist/locale/fr/locale-resources.js.map +1 -0
  81. package/dist/locale/i18n.d.ts +27 -0
  82. package/dist/locale/i18n.d.ts.map +1 -0
  83. package/dist/locale/i18n.js +36 -0
  84. package/dist/locale/i18n.js.map +1 -0
  85. package/dist/non-gtin-numeric-identifier-creator.d.ts +24 -0
  86. package/dist/non-gtin-numeric-identifier-creator.d.ts.map +1 -0
  87. package/dist/non-gtin-numeric-identifier-creator.js +23 -0
  88. package/dist/non-gtin-numeric-identifier-creator.js.map +1 -0
  89. package/dist/non-gtin-numeric-identifier-descriptor.d.ts +22 -0
  90. package/dist/non-gtin-numeric-identifier-descriptor.d.ts.map +1 -0
  91. package/dist/non-gtin-numeric-identifier-descriptor.js +2 -0
  92. package/dist/non-gtin-numeric-identifier-descriptor.js.map +1 -0
  93. package/dist/non-gtin-numeric-identifier-type.d.ts +7 -0
  94. package/dist/non-gtin-numeric-identifier-type.d.ts.map +1 -0
  95. package/dist/non-gtin-numeric-identifier-type.js +2 -0
  96. package/dist/non-gtin-numeric-identifier-type.js.map +1 -0
  97. package/dist/non-gtin-numeric-identifier-validator.d.ts +17 -0
  98. package/dist/non-gtin-numeric-identifier-validator.d.ts.map +1 -0
  99. package/dist/non-gtin-numeric-identifier-validator.js +17 -0
  100. package/dist/non-gtin-numeric-identifier-validator.js.map +1 -0
  101. package/dist/non-numeric-identifier-creator.d.ts +45 -0
  102. package/dist/non-numeric-identifier-creator.d.ts.map +1 -0
  103. package/dist/non-numeric-identifier-creator.js +84 -0
  104. package/dist/non-numeric-identifier-creator.js.map +1 -0
  105. package/dist/non-numeric-identifier-descriptor.d.ts +26 -0
  106. package/dist/non-numeric-identifier-descriptor.d.ts.map +1 -0
  107. package/dist/non-numeric-identifier-descriptor.js +2 -0
  108. package/dist/non-numeric-identifier-descriptor.js.map +1 -0
  109. package/dist/non-numeric-identifier-type.d.ts +7 -0
  110. package/dist/non-numeric-identifier-type.d.ts.map +1 -0
  111. package/dist/non-numeric-identifier-type.js +2 -0
  112. package/dist/non-numeric-identifier-type.js.map +1 -0
  113. package/dist/non-numeric-identifier-validator.d.ts +49 -0
  114. package/dist/non-numeric-identifier-validator.d.ts.map +1 -0
  115. package/dist/non-numeric-identifier-validator.js +69 -0
  116. package/dist/non-numeric-identifier-validator.js.map +1 -0
  117. package/dist/numeric-identifier-creator.d.ts +53 -0
  118. package/dist/numeric-identifier-creator.d.ts.map +1 -0
  119. package/dist/numeric-identifier-creator.js +2 -0
  120. package/dist/numeric-identifier-creator.js.map +1 -0
  121. package/dist/numeric-identifier-descriptor.d.ts +21 -0
  122. package/dist/numeric-identifier-descriptor.d.ts.map +1 -0
  123. package/dist/numeric-identifier-descriptor.js +2 -0
  124. package/dist/numeric-identifier-descriptor.js.map +1 -0
  125. package/dist/numeric-identifier-type.d.ts +31 -0
  126. package/dist/numeric-identifier-type.d.ts.map +1 -0
  127. package/dist/numeric-identifier-type.js +18 -0
  128. package/dist/numeric-identifier-type.js.map +1 -0
  129. package/dist/numeric-identifier-validator.d.ts +24 -0
  130. package/dist/numeric-identifier-validator.d.ts.map +1 -0
  131. package/dist/numeric-identifier-validator.js +2 -0
  132. package/dist/numeric-identifier-validator.js.map +1 -0
  133. package/dist/prefix-manager.d.ts +232 -0
  134. package/dist/prefix-manager.d.ts.map +1 -0
  135. package/dist/prefix-manager.js +334 -0
  136. package/dist/prefix-manager.js.map +1 -0
  137. package/dist/prefix-provider.d.ts +27 -0
  138. package/dist/prefix-provider.d.ts.map +1 -0
  139. package/dist/prefix-provider.js +2 -0
  140. package/dist/prefix-provider.js.map +1 -0
  141. package/dist/prefix-type.d.ts +26 -0
  142. package/dist/prefix-type.d.ts.map +1 -0
  143. package/dist/prefix-type.js +18 -0
  144. package/dist/prefix-type.js.map +1 -0
  145. package/dist/prefix-validator.d.ts +70 -0
  146. package/dist/prefix-validator.d.ts.map +1 -0
  147. package/dist/prefix-validator.js +208 -0
  148. package/dist/prefix-validator.js.map +1 -0
  149. package/dist/serializable-numeric-identifier-creator.d.ts +76 -0
  150. package/dist/serializable-numeric-identifier-creator.d.ts.map +1 -0
  151. package/dist/serializable-numeric-identifier-creator.js +107 -0
  152. package/dist/serializable-numeric-identifier-creator.js.map +1 -0
  153. package/dist/serializable-numeric-identifier-descriptor.d.ts +26 -0
  154. package/dist/serializable-numeric-identifier-descriptor.d.ts.map +1 -0
  155. package/dist/serializable-numeric-identifier-descriptor.js +2 -0
  156. package/dist/serializable-numeric-identifier-descriptor.js.map +1 -0
  157. package/dist/serializable-numeric-identifier-type.d.ts +6 -0
  158. package/dist/serializable-numeric-identifier-type.d.ts.map +1 -0
  159. package/dist/serializable-numeric-identifier-type.js +2 -0
  160. package/dist/serializable-numeric-identifier-type.js.map +1 -0
  161. package/dist/serializable-numeric-identifier-validator.d.ts +56 -0
  162. package/dist/serializable-numeric-identifier-validator.d.ts.map +1 -0
  163. package/dist/serializable-numeric-identifier-validator.js +77 -0
  164. package/dist/serializable-numeric-identifier-validator.js.map +1 -0
  165. package/dist/validators.d.ts +96 -0
  166. package/dist/validators.d.ts.map +1 -0
  167. package/dist/validators.js +140 -0
  168. package/dist/validators.js.map +1 -0
  169. package/package.json +11 -7
  170. package/src/abstract-identifier-creator.ts +4 -4
  171. package/src/abstract-identifier-validator.ts +6 -6
  172. package/src/abstract-numeric-identifier-creator.ts +7 -7
  173. package/src/abstract-numeric-identifier-validator.ts +6 -6
  174. package/src/check.ts +2 -2
  175. package/src/creators.ts +11 -11
  176. package/src/descriptors.ts +14 -14
  177. package/src/gtin-creator.ts +6 -6
  178. package/src/gtin-descriptor.ts +3 -3
  179. package/src/gtin-type.ts +2 -2
  180. package/src/gtin-validator.ts +8 -8
  181. package/src/identifier-creator.ts +3 -3
  182. package/src/identifier-descriptor.ts +3 -3
  183. package/src/identifier-validator.ts +1 -1
  184. package/src/index.ts +44 -43
  185. package/src/locale/i18n.ts +3 -3
  186. package/src/locale/i18next.d.ts +1 -1
  187. package/src/non-gtin-numeric-identifier-creator.ts +5 -5
  188. package/src/non-gtin-numeric-identifier-descriptor.ts +4 -4
  189. package/src/non-gtin-numeric-identifier-type.ts +2 -2
  190. package/src/non-gtin-numeric-identifier-validator.ts +5 -5
  191. package/src/non-numeric-identifier-creator.ts +6 -6
  192. package/src/non-numeric-identifier-descriptor.ts +4 -4
  193. package/src/non-numeric-identifier-type.ts +2 -2
  194. package/src/non-numeric-identifier-validator.ts +7 -7
  195. package/src/numeric-identifier-creator.ts +3 -3
  196. package/src/numeric-identifier-descriptor.ts +3 -3
  197. package/src/numeric-identifier-type.ts +1 -1
  198. package/src/numeric-identifier-validator.ts +2 -2
  199. package/src/prefix-manager.ts +16 -16
  200. package/src/prefix-provider.ts +1 -1
  201. package/src/prefix-validator.ts +3 -3
  202. package/src/serializable-numeric-identifier-creator.ts +4 -4
  203. package/src/serializable-numeric-identifier-descriptor.ts +4 -4
  204. package/src/serializable-numeric-identifier-type.ts +1 -1
  205. package/src/serializable-numeric-identifier-validator.ts +7 -7
  206. package/src/validators.ts +12 -12
  207. package/test/check.test.ts +1 -1
  208. package/test/creator.test.ts +5 -5
  209. package/test/gtin-creator.ts +2 -2
  210. package/test/gtin-validator.test.ts +2 -2
  211. package/test/identifier-creator.ts +5 -5
  212. package/test/identifier-validator.ts +1 -1
  213. package/test/non-gtin-numeric-identifier-creator.ts +3 -3
  214. package/test/non-gtin-numeric-identifier-validator.ts +2 -2
  215. package/test/non-numeric-identifier-creator.ts +1 -1
  216. package/test/non-numeric-identifier-validator.ts +3 -3
  217. package/test/numeric-identifier-creator.ts +2 -2
  218. package/test/numeric-identifier-validator.ts +2 -2
  219. package/test/prefix-manager.test.ts +2 -2
  220. package/test/serializable-numeric-identifier-creator.ts +2 -2
  221. package/test/serializable-numeric-identifier-validator.ts +3 -3
  222. package/test/setup.ts +1 -1
  223. package/test/sparse.test.ts +1 -1
  224. package/test/utility.ts +1 -1
  225. package/test/validator.test.ts +5 -5
  226. package/test/variable-measure-rcn.test.ts +1 -1
  227. package/tsconfig-config.json +4 -0
  228. package/tsconfig-src.json +8 -0
  229. package/tsconfig-test.json +9 -0
  230. package/tsconfig.json +12 -1
  231. package/tsup.config.ts +3 -2
  232. package/dist/index.cjs +0 -4813
  233. package/dist/index.cjs.map +0 -1
  234. package/dist/index.d.cts +0 -1949
@@ -0,0 +1,62 @@
1
+ import { isGTINDescriptor, isNonGTINNumericIdentifierDescriptor, isNonNumericIdentifierDescriptor, isNumericIdentifierDescriptor, isSerializableNumericIdentifierDescriptor } from "./descriptors.js";
2
+ /**
3
+ * Determine if identifier creator is a numeric identifier creator.
4
+ *
5
+ * @param identifierCreator
6
+ * Identifier creator.
7
+ *
8
+ * @returns
9
+ * True if identifier creator is a numeric identifier creator.
10
+ */
11
+ export function isNumericIdentifierCreator(identifierCreator) {
12
+ return isNumericIdentifierDescriptor(identifierCreator);
13
+ }
14
+ /**
15
+ * Determine if identifier creator is a GTIN creator.
16
+ *
17
+ * @param identifierCreator
18
+ * Identifier creator.
19
+ *
20
+ * @returns
21
+ * True if identifier creator is a GTIN creator.
22
+ */
23
+ export function isGTINCreator(identifierCreator) {
24
+ return isGTINDescriptor(identifierCreator);
25
+ }
26
+ /**
27
+ * Determine if identifier creator is a non-GTIN numeric identifier creator.
28
+ *
29
+ * @param identifierCreator
30
+ * Identifier creator.
31
+ *
32
+ * @returns
33
+ * True if identifier creator is a non-GTIN numeric identifier creator.
34
+ */
35
+ export function isNonGTINNumericIdentifierCreator(identifierCreator) {
36
+ return isNonGTINNumericIdentifierDescriptor(identifierCreator);
37
+ }
38
+ /**
39
+ * Determine if identifier creator is a serializable numeric identifier creator.
40
+ *
41
+ * @param identifierCreator
42
+ * Identifier creator.
43
+ *
44
+ * @returns
45
+ * True if identifier creator is a serializable numeric identifier creator.
46
+ */
47
+ export function isSerializableNumericIdentifierCreator(identifierCreator) {
48
+ return isSerializableNumericIdentifierDescriptor(identifierCreator);
49
+ }
50
+ /**
51
+ * Determine if identifier creator is a non-numeric identifier creator.
52
+ *
53
+ * @param identifierCreator
54
+ * Identifier creator.
55
+ *
56
+ * @returns
57
+ * True if identifier creator is a non-numeric identifier creator.
58
+ */
59
+ export function isNonNumericIdentifierCreator(identifierCreator) {
60
+ return isNonNumericIdentifierDescriptor(identifierCreator);
61
+ }
62
+ //# sourceMappingURL=creators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"creators.js","sourceRoot":"","sources":["../src/creators.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,gBAAgB,EAChB,oCAAoC,EACpC,gCAAgC,EAChC,6BAA6B,EAC7B,yCAAyC,EAC5C,MAAM,kBAAkB,CAAC;AA2C1B;;;;;;;;GAQG;AACH,MAAM,UAAU,0BAA0B,CAAC,iBAAoC;IAC3E,OAAO,6BAA6B,CAAC,iBAAiB,CAAC,CAAC;AAC5D,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,aAAa,CAAC,iBAAoC;IAC9D,OAAO,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,iCAAiC,CAAC,iBAAoC;IAClF,OAAO,oCAAoC,CAAC,iBAAiB,CAAC,CAAC;AACnE,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,sCAAsC,CAAC,iBAAoC;IACvF,OAAO,yCAAyC,CAAC,iBAAiB,CAAC,CAAC;AACxE,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,6BAA6B,CAAC,iBAAoC;IAC9E,OAAO,gCAAgC,CAAC,iBAAiB,CAAC,CAAC;AAC/D,CAAC"}
@@ -0,0 +1,96 @@
1
+ import type { GTINDescriptor } from "./gtin-descriptor.js";
2
+ import { type GTINBaseType } from "./gtin-type.js";
3
+ import type { IdentifierDescriptor } from "./identifier-descriptor.js";
4
+ import { type IdentifierType, IdentifierTypes } from "./identifier-type.js";
5
+ import type { NonGTINNumericIdentifierDescriptor } from "./non-gtin-numeric-identifier-descriptor.js";
6
+ import type { NonGTINNumericIdentifierType } from "./non-gtin-numeric-identifier-type.js";
7
+ import type { NonNumericIdentifierDescriptor } from "./non-numeric-identifier-descriptor.js";
8
+ import type { NonNumericIdentifierType } from "./non-numeric-identifier-type.js";
9
+ import type { NumericIdentifierDescriptor } from "./numeric-identifier-descriptor.js";
10
+ import type { SerializableNumericIdentifierDescriptor } from "./serializable-numeric-identifier-descriptor.js";
11
+ import type { SerializableNumericIdentifierType } from "./serializable-numeric-identifier-type.js";
12
+ /**
13
+ * Identifier descriptor type based on identifier type type.
14
+ *
15
+ * @template TIdentifierType
16
+ * Identifier type type.
17
+ */
18
+ export type IdentifierTypeDescriptor<TIdentifierType extends IdentifierType> = TIdentifierType extends NonNumericIdentifierType ? NonNumericIdentifierDescriptor : TIdentifierType extends SerializableNumericIdentifierType ? SerializableNumericIdentifierDescriptor : TIdentifierType extends NonGTINNumericIdentifierType ? NonGTINNumericIdentifierDescriptor : TIdentifierType extends typeof IdentifierTypes.GTIN ? GTINDescriptor : IdentifierDescriptor;
19
+ /**
20
+ * Identifier descriptors entry type based on identifier type type.
21
+ *
22
+ * @template TIdentifierType
23
+ * Identifier type type.
24
+ */
25
+ export type IdentifierDescriptorsEntry<TIdentifierType extends IdentifierType> = TIdentifierType extends typeof IdentifierTypes.GTIN ? Readonly<Record<GTINBaseType, GTINDescriptor>> : IdentifierTypeDescriptor<TIdentifierType>;
26
+ /**
27
+ * Identifier descriptors record type.
28
+ */
29
+ export type IdentifierDescriptorsRecord = {
30
+ [TIdentifierType in IdentifierType]: IdentifierDescriptorsEntry<TIdentifierType>;
31
+ };
32
+ /**
33
+ * Identifier descriptors for all identifier types.
34
+ */
35
+ export declare const IdentifierDescriptors: IdentifierDescriptorsRecord;
36
+ /**
37
+ * Determine if identifier descriptors or descriptor is GTIN descriptors.
38
+ *
39
+ * @param identifierDescriptorsOrDescriptor
40
+ * Identifier descriptors or descriptor.
41
+ *
42
+ * @returns
43
+ * True if GTIN descriptors.
44
+ */
45
+ export declare function isGTINDescriptors(identifierDescriptorsOrDescriptor: IdentifierDescriptorsEntry<IdentifierType>): identifierDescriptorsOrDescriptor is Readonly<Record<GTINBaseType, GTINDescriptor>>;
46
+ /**
47
+ * Determine if identifier descriptor is a numeric identifier descriptor.
48
+ *
49
+ * @param identifierDescriptor
50
+ * Identifier descriptor.
51
+ *
52
+ * @returns
53
+ * True if identifier descriptor is a numeric identifier descriptor.
54
+ */
55
+ export declare function isNumericIdentifierDescriptor(identifierDescriptor: IdentifierDescriptor): identifierDescriptor is NumericIdentifierDescriptor;
56
+ /**
57
+ * Determine if identifier descriptor is a GTIN descriptor.
58
+ *
59
+ * @param identifierDescriptor
60
+ * Identifier descriptor.
61
+ *
62
+ * @returns
63
+ * True if identifier descriptor is a GTIN descriptor.
64
+ */
65
+ export declare function isGTINDescriptor(identifierDescriptor: IdentifierDescriptor): identifierDescriptor is GTINDescriptor;
66
+ /**
67
+ * Determine if identifier descriptor is a non-GTIN numeric identifier descriptor.
68
+ *
69
+ * @param identifierDescriptor
70
+ * Identifier descriptor.
71
+ *
72
+ * @returns
73
+ * True if identifier descriptor is a non-GTIN numeric identifier descriptor.
74
+ */
75
+ export declare function isNonGTINNumericIdentifierDescriptor(identifierDescriptor: IdentifierDescriptor): identifierDescriptor is NonGTINNumericIdentifierDescriptor;
76
+ /**
77
+ * Determine if identifier descriptor is a serializable numeric identifier descriptor.
78
+ *
79
+ * @param identifierDescriptor
80
+ * Identifier descriptor.
81
+ *
82
+ * @returns
83
+ * True if identifier descriptor is a serializable numeric identifier descriptor.
84
+ */
85
+ export declare function isSerializableNumericIdentifierDescriptor(identifierDescriptor: IdentifierDescriptor): identifierDescriptor is SerializableNumericIdentifierDescriptor;
86
+ /**
87
+ * Determine if identifier descriptor is a non-numeric identifier descriptor.
88
+ *
89
+ * @param identifierDescriptor
90
+ * Identifier descriptor.
91
+ *
92
+ * @returns
93
+ * True if identifier descriptor is a non-numeric identifier descriptor.
94
+ */
95
+ export declare function isNonNumericIdentifierDescriptor(identifierDescriptor: IdentifierDescriptor): identifierDescriptor is NonNumericIdentifierDescriptor;
96
+ //# sourceMappingURL=descriptors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"descriptors.d.ts","sourceRoot":"","sources":["../src/descriptors.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,KAAK,YAAY,EAAa,MAAM,gBAAgB,CAAC;AAC9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,KAAK,cAAc,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,6CAA6C,CAAC;AACtG,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AAC1F,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,wCAAwC,CAAC;AAC7F,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AAGtF,OAAO,KAAK,EAAE,uCAAuC,EAAE,MAAM,iDAAiD,CAAC;AAC/G,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,2CAA2C,CAAC;AA2KnG;;;;;GAKG;AACH,MAAM,MAAM,wBAAwB,CAAC,eAAe,SAAS,cAAc,IAAI,eAAe,SAAS,wBAAwB,GAC3H,8BAA8B,GAC9B,eAAe,SAAS,iCAAiC,GACrD,uCAAuC,GACvC,eAAe,SAAS,4BAA4B,GAChD,kCAAkC,GAClC,eAAe,SAAS,OAAO,eAAe,CAAC,IAAI,GAC/C,cAAc,GACd,oBAAoB,CAAC;AAErC;;;;;GAKG;AACH,MAAM,MAAM,0BAA0B,CAAC,eAAe,SAAS,cAAc,IAAI,eAAe,SAAS,OAAO,eAAe,CAAC,IAAI,GAChI,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC,GAC9C,wBAAwB,CAAC,eAAe,CAAC,CAAC;AAE9C;;GAEG;AACH,MAAM,MAAM,2BAA2B,GAAG;KACrC,eAAe,IAAI,cAAc,GAAG,0BAA0B,CAAC,eAAe,CAAC;CACnF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,2BAa1B,CAAC;AAEX;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,iCAAiC,EAAE,0BAA0B,CAAC,cAAc,CAAC,GAAG,iCAAiC,IAAI,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC,CAEpM;AAoBD;;;;;;;;GAQG;AACH,wBAAgB,6BAA6B,CAAC,oBAAoB,EAAE,oBAAoB,GAAG,oBAAoB,IAAI,2BAA2B,CAE7I;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,oBAAoB,EAAE,oBAAoB,GAAG,oBAAoB,IAAI,cAAc,CAEnH;AAED;;;;;;;;GAQG;AACH,wBAAgB,oCAAoC,CAAC,oBAAoB,EAAE,oBAAoB,GAAG,oBAAoB,IAAI,kCAAkC,CAE3J;AAID;;;;;;;;GAQG;AACH,wBAAgB,yCAAyC,CAAC,oBAAoB,EAAE,oBAAoB,GAAG,oBAAoB,IAAI,uCAAuC,CAErK;AAED;;;;;;;;GAQG;AACH,wBAAgB,gCAAgC,CAAC,oBAAoB,EAAE,oBAAoB,GAAG,oBAAoB,IAAI,8BAA8B,CAEnJ"}
@@ -0,0 +1,266 @@
1
+ import { ContentCharacterSets } from "./content-character-set.js";
2
+ import { GTINTypes } from "./gtin-type.js";
3
+ import { IdentifierTypes } from "./identifier-type.js";
4
+ import { LeaderTypes } from "./numeric-identifier-type.js";
5
+ import { PrefixTypes } from "./prefix-type.js";
6
+ /**
7
+ * GTIN-13 descriptor.
8
+ */
9
+ const GTIN13_DESCRIPTOR = {
10
+ identifierType: IdentifierTypes.GTIN,
11
+ prefixType: PrefixTypes.GS1CompanyPrefix,
12
+ length: GTINTypes.GTIN13,
13
+ referenceCharacterSet: ContentCharacterSets.Numeric,
14
+ leaderType: LeaderTypes.IndicatorDigit
15
+ };
16
+ /**
17
+ * GTIN-12 descriptor.
18
+ */
19
+ const GTIN12_DESCRIPTOR = {
20
+ identifierType: IdentifierTypes.GTIN,
21
+ prefixType: PrefixTypes.UPCCompanyPrefix,
22
+ length: GTINTypes.GTIN12,
23
+ referenceCharacterSet: ContentCharacterSets.Numeric,
24
+ leaderType: LeaderTypes.IndicatorDigit
25
+ };
26
+ /**
27
+ * GTIN-8 descriptor.
28
+ */
29
+ const GTIN8_DESCRIPTOR = {
30
+ identifierType: IdentifierTypes.GTIN,
31
+ prefixType: PrefixTypes.GS18Prefix,
32
+ length: GTINTypes.GTIN8,
33
+ referenceCharacterSet: ContentCharacterSets.Numeric,
34
+ leaderType: LeaderTypes.IndicatorDigit
35
+ };
36
+ /**
37
+ * GTIN descriptors indexed by prefix type.
38
+ */
39
+ const GTIN_DESCRIPTORS = {
40
+ [GTINTypes.GTIN13]: GTIN13_DESCRIPTOR,
41
+ [GTINTypes.GTIN12]: GTIN12_DESCRIPTOR,
42
+ [GTINTypes.GTIN8]: GTIN8_DESCRIPTOR
43
+ };
44
+ /**
45
+ * GLN descriptor.
46
+ */
47
+ const GLN_DESCRIPTOR = {
48
+ identifierType: IdentifierTypes.GLN,
49
+ prefixType: PrefixTypes.GS1CompanyPrefix,
50
+ length: 13,
51
+ referenceCharacterSet: ContentCharacterSets.Numeric,
52
+ leaderType: LeaderTypes.None
53
+ };
54
+ /**
55
+ * SSCC descriptor.
56
+ */
57
+ const SSCC_DESCRIPTOR = {
58
+ identifierType: IdentifierTypes.SSCC,
59
+ prefixType: PrefixTypes.GS1CompanyPrefix,
60
+ length: 18,
61
+ referenceCharacterSet: ContentCharacterSets.Numeric,
62
+ leaderType: LeaderTypes.ExtensionDigit
63
+ };
64
+ /**
65
+ * GRAI descriptor.
66
+ */
67
+ const GRAI_DESCRIPTOR = {
68
+ identifierType: IdentifierTypes.GRAI,
69
+ prefixType: PrefixTypes.GS1CompanyPrefix,
70
+ length: 13,
71
+ referenceCharacterSet: ContentCharacterSets.Numeric,
72
+ leaderType: LeaderTypes.None,
73
+ serialComponentLength: 16,
74
+ serialComponentCharacterSet: ContentCharacterSets.AI82
75
+ };
76
+ /**
77
+ * GIAI descriptor.
78
+ */
79
+ const GIAI_DESCRIPTOR = {
80
+ identifierType: IdentifierTypes.GIAI,
81
+ prefixType: PrefixTypes.GS1CompanyPrefix,
82
+ length: 30,
83
+ referenceCharacterSet: ContentCharacterSets.AI82,
84
+ requiresCheckCharacterPair: false
85
+ };
86
+ /**
87
+ * GSRN descriptor.
88
+ */
89
+ const GSRN_DESCRIPTOR = {
90
+ identifierType: IdentifierTypes.GSRN,
91
+ prefixType: PrefixTypes.GS1CompanyPrefix,
92
+ length: 18,
93
+ referenceCharacterSet: ContentCharacterSets.Numeric,
94
+ leaderType: LeaderTypes.None
95
+ };
96
+ /**
97
+ * GDTI descriptor.
98
+ */
99
+ const GDTI_DESCRIPTOR = {
100
+ identifierType: IdentifierTypes.GDTI,
101
+ prefixType: PrefixTypes.GS1CompanyPrefix,
102
+ length: 13,
103
+ referenceCharacterSet: ContentCharacterSets.Numeric,
104
+ leaderType: LeaderTypes.None,
105
+ serialComponentLength: 17,
106
+ serialComponentCharacterSet: ContentCharacterSets.AI82
107
+ };
108
+ /**
109
+ * GINC descriptor.
110
+ */
111
+ const GINC_DESCRIPTOR = {
112
+ identifierType: IdentifierTypes.GINC,
113
+ prefixType: PrefixTypes.GS1CompanyPrefix,
114
+ length: 30,
115
+ referenceCharacterSet: ContentCharacterSets.AI82,
116
+ requiresCheckCharacterPair: false
117
+ };
118
+ /**
119
+ * GSIN descriptor.
120
+ */
121
+ const GSIN_DESCRIPTOR = {
122
+ identifierType: IdentifierTypes.GSIN,
123
+ prefixType: PrefixTypes.GS1CompanyPrefix,
124
+ length: 17,
125
+ referenceCharacterSet: ContentCharacterSets.Numeric,
126
+ leaderType: LeaderTypes.None
127
+ };
128
+ /**
129
+ * GCN descriptor.
130
+ */
131
+ const GCN_DESCRIPTOR = {
132
+ identifierType: IdentifierTypes.GCN,
133
+ prefixType: PrefixTypes.GS1CompanyPrefix,
134
+ length: 13,
135
+ referenceCharacterSet: ContentCharacterSets.Numeric,
136
+ leaderType: LeaderTypes.None,
137
+ serialComponentLength: 12,
138
+ serialComponentCharacterSet: ContentCharacterSets.Numeric
139
+ };
140
+ /**
141
+ * CPID descriptor.
142
+ */
143
+ const CPID_DESCRIPTOR = {
144
+ identifierType: IdentifierTypes.CPID,
145
+ prefixType: PrefixTypes.GS1CompanyPrefix,
146
+ length: 30,
147
+ referenceCharacterSet: ContentCharacterSets.AI39,
148
+ requiresCheckCharacterPair: false
149
+ };
150
+ /**
151
+ * GMN descriptor.
152
+ */
153
+ const GMN_DESCRIPTOR = {
154
+ identifierType: IdentifierTypes.GMN,
155
+ prefixType: PrefixTypes.GS1CompanyPrefix,
156
+ length: 25,
157
+ referenceCharacterSet: ContentCharacterSets.AI82,
158
+ requiresCheckCharacterPair: true
159
+ };
160
+ /**
161
+ * Identifier descriptors for all identifier types.
162
+ */
163
+ export const IdentifierDescriptors = {
164
+ [IdentifierTypes.GTIN]: GTIN_DESCRIPTORS,
165
+ [IdentifierTypes.GLN]: GLN_DESCRIPTOR,
166
+ [IdentifierTypes.SSCC]: SSCC_DESCRIPTOR,
167
+ [IdentifierTypes.GRAI]: GRAI_DESCRIPTOR,
168
+ [IdentifierTypes.GIAI]: GIAI_DESCRIPTOR,
169
+ [IdentifierTypes.GSRN]: GSRN_DESCRIPTOR,
170
+ [IdentifierTypes.GDTI]: GDTI_DESCRIPTOR,
171
+ [IdentifierTypes.GINC]: GINC_DESCRIPTOR,
172
+ [IdentifierTypes.GSIN]: GSIN_DESCRIPTOR,
173
+ [IdentifierTypes.GCN]: GCN_DESCRIPTOR,
174
+ [IdentifierTypes.CPID]: CPID_DESCRIPTOR,
175
+ [IdentifierTypes.GMN]: GMN_DESCRIPTOR
176
+ };
177
+ /**
178
+ * Determine if identifier descriptors or descriptor is GTIN descriptors.
179
+ *
180
+ * @param identifierDescriptorsOrDescriptor
181
+ * Identifier descriptors or descriptor.
182
+ *
183
+ * @returns
184
+ * True if GTIN descriptors.
185
+ */
186
+ export function isGTINDescriptors(identifierDescriptorsOrDescriptor) {
187
+ return !("identifierType" in identifierDescriptorsOrDescriptor);
188
+ }
189
+ /**
190
+ * Determine if an array of identifier types includes a given identifier type.
191
+ *
192
+ * @param identifierTypes
193
+ * Identifier types.
194
+ *
195
+ * @param identifierType
196
+ * Identifier type.
197
+ *
198
+ * @returns
199
+ * True if element is included in the array.
200
+ */
201
+ function identifierTypesIncludes(identifierTypes, identifierType) {
202
+ return identifierTypes.includes(identifierType);
203
+ }
204
+ const NUMERIC_IDENTIFIER_TYPES = [IdentifierTypes.GTIN, IdentifierTypes.GLN, IdentifierTypes.SSCC, IdentifierTypes.GRAI, IdentifierTypes.GSRN, IdentifierTypes.GDTI, IdentifierTypes.GSIN, IdentifierTypes.GCN];
205
+ /**
206
+ * Determine if identifier descriptor is a numeric identifier descriptor.
207
+ *
208
+ * @param identifierDescriptor
209
+ * Identifier descriptor.
210
+ *
211
+ * @returns
212
+ * True if identifier descriptor is a numeric identifier descriptor.
213
+ */
214
+ export function isNumericIdentifierDescriptor(identifierDescriptor) {
215
+ return identifierTypesIncludes(NUMERIC_IDENTIFIER_TYPES, identifierDescriptor.identifierType);
216
+ }
217
+ /**
218
+ * Determine if identifier descriptor is a GTIN descriptor.
219
+ *
220
+ * @param identifierDescriptor
221
+ * Identifier descriptor.
222
+ *
223
+ * @returns
224
+ * True if identifier descriptor is a GTIN descriptor.
225
+ */
226
+ export function isGTINDescriptor(identifierDescriptor) {
227
+ return identifierDescriptor.identifierType === IdentifierTypes.GTIN;
228
+ }
229
+ /**
230
+ * Determine if identifier descriptor is a non-GTIN numeric identifier descriptor.
231
+ *
232
+ * @param identifierDescriptor
233
+ * Identifier descriptor.
234
+ *
235
+ * @returns
236
+ * True if identifier descriptor is a non-GTIN numeric identifier descriptor.
237
+ */
238
+ export function isNonGTINNumericIdentifierDescriptor(identifierDescriptor) {
239
+ return isNumericIdentifierDescriptor(identifierDescriptor) && !isGTINDescriptor(identifierDescriptor);
240
+ }
241
+ const SERIALIZABLE_NUMERIC_IDENTIFIER_TYPES = [IdentifierTypes.GRAI, IdentifierTypes.GDTI, IdentifierTypes.GCN];
242
+ /**
243
+ * Determine if identifier descriptor is a serializable numeric identifier descriptor.
244
+ *
245
+ * @param identifierDescriptor
246
+ * Identifier descriptor.
247
+ *
248
+ * @returns
249
+ * True if identifier descriptor is a serializable numeric identifier descriptor.
250
+ */
251
+ export function isSerializableNumericIdentifierDescriptor(identifierDescriptor) {
252
+ return identifierTypesIncludes(SERIALIZABLE_NUMERIC_IDENTIFIER_TYPES, identifierDescriptor.identifierType);
253
+ }
254
+ /**
255
+ * Determine if identifier descriptor is a non-numeric identifier descriptor.
256
+ *
257
+ * @param identifierDescriptor
258
+ * Identifier descriptor.
259
+ *
260
+ * @returns
261
+ * True if identifier descriptor is a non-numeric identifier descriptor.
262
+ */
263
+ export function isNonNumericIdentifierDescriptor(identifierDescriptor) {
264
+ return !isNumericIdentifierDescriptor(identifierDescriptor);
265
+ }
266
+ //# sourceMappingURL=descriptors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"descriptors.js","sourceRoot":"","sources":["../src/descriptors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ import { type TransformerInput, type TransformerOutput } from "@aidc-toolkit/utility";
2
+ import { AbstractNumericIdentifierCreator } from "./abstract-numeric-identifier-creator.js";
3
+ import { type GTINBaseType } from "./gtin-type.js";
4
+ import { GTINValidator } from "./gtin-validator.js";
5
+ import type { PrefixProvider } from "./prefix-provider.js";
6
+ declare const GTINCreator_base: import("ts-mixer/dist/types/types.js").Class<any[], GTINValidator & AbstractNumericIdentifierCreator<import("./numeric-identifier-descriptor.js").NumericIdentifierDescriptor>, typeof GTINValidator & (abstract new () => AbstractNumericIdentifierCreator<import("./numeric-identifier-descriptor.js").NumericIdentifierDescriptor>)>;
7
+ /**
8
+ * GTIN creator. Applicable to GTIN-13, GTIN-12, and GTIN-8 types; no applicable to GTIN-14 type.
9
+ */
10
+ export declare class GTINCreator extends GTINCreator_base {
11
+ /**
12
+ * Validation parameters for required indicator digit.
13
+ */
14
+ private static readonly REQUIRED_INDICATOR_DIGIT_VALIDATION;
15
+ /**
16
+ * Constructor. Typically called internally by a prefix manager but may be called by other code with another prefix
17
+ * provider type.
18
+ *
19
+ * @param prefixProvider
20
+ * Prefix provider.
21
+ *
22
+ * @param gtinBaseType
23
+ * GTIN base type (all except GTIN-14).
24
+ */
25
+ constructor(prefixProvider: PrefixProvider, gtinBaseType: GTINBaseType);
26
+ /**
27
+ * @inheritDoc
28
+ */
29
+ get prefix(): string;
30
+ /**
31
+ * Create GTIN-14(s) with an indicator digit and reference(s) based on numeric value(s). The value(s) is/are
32
+ * converted to reference(s) of the appropriate length using {@linkcode NUMERIC_CREATOR}.
33
+ *
34
+ * @template TTransformerInput
35
+ * Transformer input type.
36
+ *
37
+ * @param indicatorDigit
38
+ * Indicator digit.
39
+ *
40
+ * @param valueOrValues
41
+ * Numeric value(s).
42
+ *
43
+ * @param sparse
44
+ * If true, the value(s) is/are mapped to a sparse sequence resistant to discovery. Default is false.
45
+ *
46
+ * @returns
47
+ * GTIN-14(s).
48
+ */
49
+ createGTIN14<TTransformerInput extends TransformerInput<number | bigint>>(indicatorDigit: string, valueOrValues: TTransformerInput, sparse?: boolean): TransformerOutput<TTransformerInput, string>;
50
+ /**
51
+ * Create a Restricted Circulation Number (RCN) using a variable measure trade item format. See {@linkcode
52
+ * GTINValidator.parseVariableMeasureRCN} for format details.
53
+ *
54
+ * @param format
55
+ * Format.
56
+ *
57
+ * @param itemReference
58
+ * Item reference.
59
+ *
60
+ * @param priceOrWeight
61
+ * Price or weight (whole number only).
62
+ *
63
+ * @returns
64
+ * RCN-12 or RCN-13.
65
+ */
66
+ static createVariableMeasureRCN(format: string, itemReference: number, priceOrWeight: number): string;
67
+ }
68
+ export {};
69
+ //# sourceMappingURL=gtin-creator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gtin-creator.d.ts","sourceRoot":"","sources":["../src/gtin-creator.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACzB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,gCAAgC,EAAE,MAAM,0CAA0C,CAAC;AAE5F,OAAO,EAAE,KAAK,YAAY,EAAa,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;;AAE3D;;GAEG;AACH,qBAAa,WAAY,SAAQ,gBAAsD;IACnF;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mCAAmC,CAIzD;IAEF;;;;;;;;;OASG;gBACS,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY;IAMtE;;OAEG;IACH,IAAa,MAAM,IAAI,MAAM,CAE5B;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,YAAY,CAAC,iBAAiB,SAAS,gBAAgB,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,UAAQ,GAAG,iBAAiB,CAAC,iBAAiB,EAAE,MAAM,CAAC;IAUjM;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM;CAmGxG"}
@@ -0,0 +1,159 @@
1
+ import { Exclusions, NUMERIC_CREATOR } from "@aidc-toolkit/utility";
2
+ import { Mixin } from "ts-mixer";
3
+ import { AbstractNumericIdentifierCreator } from "./abstract-numeric-identifier-creator.js";
4
+ import { checkDigit, priceOrWeightCheckDigit } from "./check.js";
5
+ import { GTINTypes } from "./gtin-type.js";
6
+ import { GTINValidator } from "./gtin-validator.js";
7
+ import { i18nextGS1 } from "./locale/i18n.js";
8
+ /**
9
+ * GTIN creator. Applicable to GTIN-13, GTIN-12, and GTIN-8 types; no applicable to GTIN-14 type.
10
+ */
11
+ export class GTINCreator extends Mixin(GTINValidator, AbstractNumericIdentifierCreator) {
12
+ /**
13
+ * Validation parameters for required indicator digit.
14
+ */
15
+ static REQUIRED_INDICATOR_DIGIT_VALIDATION = {
16
+ minimumLength: 1,
17
+ maximumLength: 1,
18
+ component: () => i18nextGS1.t("Identifier.indicatorDigit")
19
+ };
20
+ /**
21
+ * Constructor. Typically called internally by a prefix manager but may be called by other code with another prefix
22
+ * provider type.
23
+ *
24
+ * @param prefixProvider
25
+ * Prefix provider.
26
+ *
27
+ * @param gtinBaseType
28
+ * GTIN base type (all except GTIN-14).
29
+ */
30
+ constructor(prefixProvider, gtinBaseType) {
31
+ super(gtinBaseType);
32
+ this.init(prefixProvider, prefixProvider.prefix);
33
+ }
34
+ /**
35
+ * @inheritDoc
36
+ */
37
+ get prefix() {
38
+ return this.prefixProvider.prefix;
39
+ }
40
+ /**
41
+ * Create GTIN-14(s) with an indicator digit and reference(s) based on numeric value(s). The value(s) is/are
42
+ * converted to reference(s) of the appropriate length using {@linkcode NUMERIC_CREATOR}.
43
+ *
44
+ * @template TTransformerInput
45
+ * Transformer input type.
46
+ *
47
+ * @param indicatorDigit
48
+ * Indicator digit.
49
+ *
50
+ * @param valueOrValues
51
+ * Numeric value(s).
52
+ *
53
+ * @param sparse
54
+ * If true, the value(s) is/are mapped to a sparse sequence resistant to discovery. Default is false.
55
+ *
56
+ * @returns
57
+ * GTIN-14(s).
58
+ */
59
+ createGTIN14(indicatorDigit, valueOrValues, sparse = false) {
60
+ NUMERIC_CREATOR.validate(indicatorDigit, GTINCreator.REQUIRED_INDICATOR_DIGIT_VALIDATION);
61
+ return NUMERIC_CREATOR.create(GTINTypes.GTIN13 - this.prefixProvider.gs1CompanyPrefix.length - 1, valueOrValues, Exclusions.None, sparse ? this.tweak : undefined, (reference) => {
62
+ const partialIdentifier = indicatorDigit + this.prefixProvider.gs1CompanyPrefix + reference;
63
+ return partialIdentifier + checkDigit(partialIdentifier);
64
+ });
65
+ }
66
+ /**
67
+ * Create a Restricted Circulation Number (RCN) using a variable measure trade item format. See {@linkcode
68
+ * GTINValidator.parseVariableMeasureRCN} for format details.
69
+ *
70
+ * @param format
71
+ * Format.
72
+ *
73
+ * @param itemReference
74
+ * Item reference.
75
+ *
76
+ * @param priceOrWeight
77
+ * Price or weight (whole number only).
78
+ *
79
+ * @returns
80
+ * RCN-12 or RCN-13.
81
+ */
82
+ static createVariableMeasureRCN(format, itemReference, priceOrWeight) {
83
+ const formatLength = format.length;
84
+ let validFormat = formatLength === 12 || formatLength === 13;
85
+ let rcnPrefix = "";
86
+ let buildingItemReference = false;
87
+ let itemReferenceString = "";
88
+ let itemReferenceLength = 0;
89
+ let buildingPriceOrWeight = false;
90
+ let priceOrWeightString = "";
91
+ let priceOrWeightLength = 0;
92
+ let calculatePriceOrWeightCheckDigit = false;
93
+ // RCN may be built in almost any order, so defer to builders that will be in ordered array.
94
+ const rcnPrefixBuilder = (partialRCN) => partialRCN + rcnPrefix;
95
+ const itemReferenceBuilder = (partialRCN) => partialRCN + itemReferenceString;
96
+ const priceOrWeightBuilder = (partialRCN) => partialRCN + priceOrWeightString;
97
+ const priceOrWeightCheckDigitBuilder = (partialRCN) => partialRCN + priceOrWeightCheckDigit(priceOrWeightString);
98
+ const checkDigitBuilder = (partialRCN) => partialRCN + checkDigit(partialRCN);
99
+ const rcnBuilders = [rcnPrefixBuilder];
100
+ for (let index = 0; validFormat && index < formatLength; index++) {
101
+ const formatChar = format.charAt(index);
102
+ if (index === 0) {
103
+ validFormat = formatChar === "2";
104
+ rcnPrefix = formatChar;
105
+ }
106
+ else if (formatLength === 13 && index === 1) {
107
+ validFormat = NUMERIC_CREATOR.characterIndex(formatChar) !== undefined;
108
+ rcnPrefix += formatChar;
109
+ }
110
+ else if (index === formatLength - 1) {
111
+ validFormat = formatChar === "C";
112
+ }
113
+ else {
114
+ switch (formatChar) {
115
+ case "I":
116
+ if (!buildingItemReference) {
117
+ // Item reference can't appear more than once.
118
+ validFormat = itemReferenceLength === 0;
119
+ buildingItemReference = true;
120
+ buildingPriceOrWeight = false;
121
+ rcnBuilders.push(itemReferenceBuilder);
122
+ }
123
+ itemReferenceLength++;
124
+ break;
125
+ case "P":
126
+ if (!buildingPriceOrWeight) {
127
+ // Price or weight can't appear more than once.
128
+ validFormat = priceOrWeightLength === 0;
129
+ buildingPriceOrWeight = true;
130
+ buildingItemReference = false;
131
+ rcnBuilders.push(priceOrWeightBuilder);
132
+ }
133
+ priceOrWeightLength++;
134
+ break;
135
+ case "V":
136
+ // Price or weight check digit can't appear more than once.
137
+ validFormat = !calculatePriceOrWeightCheckDigit;
138
+ buildingItemReference = false;
139
+ buildingPriceOrWeight = false;
140
+ calculatePriceOrWeightCheckDigit = true;
141
+ rcnBuilders.push(priceOrWeightCheckDigitBuilder);
142
+ break;
143
+ default:
144
+ validFormat = false;
145
+ break;
146
+ }
147
+ }
148
+ }
149
+ validFormat &&= itemReferenceLength !== 0 && priceOrWeightLength !== 0;
150
+ if (!validFormat) {
151
+ throw new RangeError(i18nextGS1.t("Identifier.invalidVariableMeasureRCNFormat"));
152
+ }
153
+ itemReferenceString = NUMERIC_CREATOR.create(itemReferenceLength, itemReference);
154
+ priceOrWeightString = NUMERIC_CREATOR.create(priceOrWeightLength, priceOrWeight);
155
+ rcnBuilders.push(checkDigitBuilder);
156
+ return rcnBuilders.reduce((partialRCN, rcnBuilder) => rcnBuilder(partialRCN), "");
157
+ }
158
+ }
159
+ //# sourceMappingURL=gtin-creator.js.map