@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,334 @@
1
+ import { isNumericIdentifierCreator } from "./creators.js";
2
+ import { GTINCreator } from "./gtin-creator.js";
3
+ import { GTIN_BASE_TYPES } from "./gtin-type.js";
4
+ import { IdentifierTypes } from "./identifier-type.js";
5
+ import { i18nextGS1 } from "./locale/i18n.js";
6
+ import { NonGTINNumericIdentifierCreator } from "./non-gtin-numeric-identifier-creator.js";
7
+ import { NonNumericIdentifierCreator } from "./non-numeric-identifier-creator.js";
8
+ import { PrefixTypes } from "./prefix-type.js";
9
+ import { PrefixValidator } from "./prefix-validator.js";
10
+ import { SerializableNumericIdentifierCreator } from "./serializable-numeric-identifier-creator.js";
11
+ /**
12
+ * Prefix manager. This is the core class for identifier creation.
13
+ *
14
+ * A prefix manager may be constructed for any {@link PrefixType | prefix type}. Construction may be done directly or
15
+ * via the static {@linkcode PrefixManager.get | get()} method, which allows for caching and reuse. As most applications
16
+ * work with a limited number of prefixes for creating identifiers, caching and reuse may be a more efficient option.
17
+ *
18
+ * The prefix type and prefix are normalized before the prefix manager is constructed, so they may not match the input
19
+ * values. For example, the GS1 Company Prefix 0614141 is equivalent to U.P.C. Company Prefix 614141; both result in a
20
+ * prefix manager with prefix type equal to {@linkcode PrefixTypes.UPCCompanyPrefix} and prefix equal to "614141".
21
+ *
22
+ * To support the creation of sparse identifiers, a prefix manager maintains a {@link tweakFactor | tweak factor} which
23
+ * is used, along with a type-specific multiplier, as the tweak when creating numeric identifiers. The default tweak
24
+ * factor is the numeric value of the GS1 Company Prefix representation of the prefix preceded by '1' to ensure
25
+ * uniqueness (i.e., so that prefixes 0 N1 N2 N3... and N1 N2 N3... produce different tweak factors). This is usually
26
+ * sufficient for obfuscation, but as the sparse creation algorithm is reversible and as the GS1 Company Prefix is
27
+ * discoverable via {@link https://www.gs1.org/services/verified-by-gs1 | Verified by GS1}, a user-defined tweak factor
28
+ * should be used if a higher degree of obfuscation is required. When using a tweak factor other than the default, care
29
+ * should be taken to restore it when resuming the application. A tweak factor of 0 creates a straight sequence.
30
+ */
31
+ export class PrefixManager {
32
+ /**
33
+ * Cached prefix managers, keyed by GS1 Company Prefix.
34
+ */
35
+ static PREFIX_MANAGERS_MAP = new Map();
36
+ /**
37
+ * Creator tweak factors. Different numeric identifier types have different tweak factors so that sparse creation
38
+ * generates different sequences for each.
39
+ */
40
+ static CREATOR_TWEAK_FACTORS = {
41
+ GTIN: 1987n,
42
+ GLN: 4241n,
43
+ SSCC: 8087n,
44
+ GRAI: 3221n,
45
+ GSRN: 2341n,
46
+ GDTI: 7333n,
47
+ GSIN: 5623n,
48
+ GCN: 6869n
49
+ };
50
+ /**
51
+ * Normalized prefix type.
52
+ */
53
+ _prefixType;
54
+ /**
55
+ * Normalized prefix.
56
+ */
57
+ _prefix;
58
+ /**
59
+ * Prefix as GS1 Company Prefix.
60
+ */
61
+ _gs1CompanyPrefix;
62
+ /**
63
+ * U.P.C. Company Prefix if prefix type is {@linkcode PrefixTypes.UPCCompanyPrefix}.
64
+ */
65
+ _upcCompanyPrefix;
66
+ /**
67
+ * GS1-8 Prefix if prefix type is {@linkcode PrefixTypes.GS18Prefix}.
68
+ */
69
+ _gs18Prefix;
70
+ /**
71
+ * Default tweak factor.
72
+ */
73
+ _defaultTweakFactor;
74
+ /**
75
+ * Tweak factor.
76
+ */
77
+ _tweakFactor = 0n;
78
+ /**
79
+ * Cached identifier creators.
80
+ */
81
+ _identifierCreators = {};
82
+ /**
83
+ * Constructor.
84
+ *
85
+ * @param prefixType
86
+ * Prefix type.
87
+ *
88
+ * @param prefix
89
+ * Prefix.
90
+ */
91
+ constructor(prefixType, prefix) {
92
+ const normalizedPrefixProvider = PrefixValidator.normalize(prefixType, prefix);
93
+ this._prefixType = normalizedPrefixProvider.prefixType;
94
+ this._prefix = normalizedPrefixProvider.prefix;
95
+ this._gs1CompanyPrefix = normalizedPrefixProvider.gs1CompanyPrefix;
96
+ this._upcCompanyPrefix = normalizedPrefixProvider.upcCompanyPrefix;
97
+ this._gs18Prefix = normalizedPrefixProvider.gs18Prefix;
98
+ // Default tweak factor is the numeric value of the GS1 Company Prefix preceded by '1'.
99
+ this._defaultTweakFactor = BigInt(`1${this.gs1CompanyPrefix}`);
100
+ this.resetTweakFactor();
101
+ }
102
+ /**
103
+ * Get the prefix type.
104
+ */
105
+ get prefixType() {
106
+ return this._prefixType;
107
+ }
108
+ /**
109
+ * Get the prefix.
110
+ */
111
+ get prefix() {
112
+ return this._prefix;
113
+ }
114
+ /**
115
+ * Get the GS1 Company Prefix.
116
+ */
117
+ get gs1CompanyPrefix() {
118
+ return this._gs1CompanyPrefix;
119
+ }
120
+ /**
121
+ * Get the U.P.C. Company Prefix if prefix type is {@linkcode PrefixTypes.UPCCompanyPrefix} or undefined if not.
122
+ */
123
+ get upcCompanyPrefix() {
124
+ return this._upcCompanyPrefix;
125
+ }
126
+ /**
127
+ * Get the GS1-8 Prefix if prefix type is {@linkcode PrefixTypes.GS18Prefix} or undefined if not.
128
+ */
129
+ get gs18Prefix() {
130
+ return this._gs18Prefix;
131
+ }
132
+ /**
133
+ * Set the tweak for an identifier creator if it's a numeric identifier creator.
134
+ *
135
+ * @param identifierCreator
136
+ * Identifier creator.
137
+ */
138
+ setCreatorTweak(identifierCreator) {
139
+ if (isNumericIdentifierCreator(identifierCreator)) {
140
+ // eslint-disable-next-line no-param-reassign -- Method purpose is to set the tweak.
141
+ identifierCreator.tweak = this.tweakFactor * PrefixManager.CREATOR_TWEAK_FACTORS[identifierCreator.identifierType];
142
+ }
143
+ }
144
+ /**
145
+ * Get the tweak factor.
146
+ */
147
+ get tweakFactor() {
148
+ return this._tweakFactor;
149
+ }
150
+ /**
151
+ * Set the tweak factor.
152
+ *
153
+ * @param value
154
+ * Tweak factor.
155
+ */
156
+ set tweakFactor(value) {
157
+ const tweakFactor = BigInt(value);
158
+ if (this._tweakFactor !== tweakFactor) {
159
+ this._tweakFactor = tweakFactor;
160
+ for (const creator of Object.values(this._identifierCreators)) {
161
+ this.setCreatorTweak(creator);
162
+ }
163
+ }
164
+ }
165
+ /**
166
+ * Reset the tweak factor to its default (numeric value of the GS1 Company Prefix preceded by '1').
167
+ */
168
+ resetTweakFactor() {
169
+ this.tweakFactor = this._defaultTweakFactor;
170
+ }
171
+ /**
172
+ * Get a prefix manager.
173
+ *
174
+ * @param prefixType
175
+ * Prefix type.
176
+ *
177
+ * @param prefix
178
+ * Prefix.
179
+ *
180
+ * @returns
181
+ * Prefix manager with normalized prefix type and prefix.
182
+ */
183
+ static get(prefixType, prefix) {
184
+ // Normalization will occur in constructor as well, but it's necessary here for the map.
185
+ const normalizedPrefixProvider = PrefixValidator.normalize(prefixType, prefix);
186
+ let prefixManager = PrefixManager.PREFIX_MANAGERS_MAP.get(normalizedPrefixProvider.gs1CompanyPrefix);
187
+ if (prefixManager === undefined) {
188
+ prefixManager = new PrefixManager(normalizedPrefixProvider.prefixType, normalizedPrefixProvider.prefix);
189
+ PrefixManager.PREFIX_MANAGERS_MAP.set(normalizedPrefixProvider.gs1CompanyPrefix, prefixManager);
190
+ }
191
+ return prefixManager;
192
+ }
193
+ /**
194
+ * Get an identifier creator.
195
+ *
196
+ * @template TIdentifierType
197
+ * Identifier type type.
198
+ *
199
+ * @param identifierType
200
+ * Identifier type used to construct identifier creator.
201
+ *
202
+ * @param constructorParameter
203
+ * Second constructor parameter passed to constructor callback alongside this.
204
+ *
205
+ * @param ConstructorCallback
206
+ * Constructor callback.
207
+ *
208
+ * @returns
209
+ * Identifier creator.
210
+ */
211
+ getIdentifierCreator(identifierType, constructorParameter, ConstructorCallback) {
212
+ let creator = this._identifierCreators[identifierType];
213
+ if (creator === undefined) {
214
+ if (this.prefixType === PrefixTypes.GS18Prefix && identifierType !== IdentifierTypes.GTIN) {
215
+ throw new RangeError(i18nextGS1.t("Prefix.identifierTypeNotSupportedByGS18Prefix", {
216
+ identifierType
217
+ }));
218
+ }
219
+ creator = new ConstructorCallback(this, constructorParameter);
220
+ this.setCreatorTweak(creator);
221
+ this._identifierCreators[identifierType] = creator;
222
+ }
223
+ return creator;
224
+ }
225
+ /**
226
+ * Get non-GTIN numeric identifier creator.
227
+ *
228
+ * @param identifierType
229
+ * Identifier type used to construct identifier creator.
230
+ *
231
+ * @returns
232
+ * Identifier creator.
233
+ */
234
+ getNonGTINNumericIdentifierCreator(identifierType) {
235
+ return this.getIdentifierCreator(identifierType, identifierType, NonGTINNumericIdentifierCreator);
236
+ }
237
+ /**
238
+ * Get serialized numeric identifier creator.
239
+ *
240
+ * @param identifierType
241
+ * Identifier type used to construct identifier creator.
242
+ *
243
+ * @returns
244
+ * Identifier creator.
245
+ */
246
+ getSerializableNumericIdentifierCreator(identifierType) {
247
+ return this.getIdentifierCreator(identifierType, identifierType, SerializableNumericIdentifierCreator);
248
+ }
249
+ /**
250
+ * Get non-numeric identifier creator.
251
+ *
252
+ * @param identifierType
253
+ * Identifier type used to construct identifier creator.
254
+ *
255
+ * @returns
256
+ * Identifier creator.
257
+ */
258
+ getNonNumericIdentifierCreator(identifierType) {
259
+ return this.getIdentifierCreator(identifierType, identifierType, NonNumericIdentifierCreator);
260
+ }
261
+ /**
262
+ * Get GTIN creator.
263
+ */
264
+ get gtinCreator() {
265
+ return this.getIdentifierCreator(IdentifierTypes.GTIN, GTIN_BASE_TYPES[this.prefixType], GTINCreator);
266
+ }
267
+ /**
268
+ * Get GLN creator.
269
+ */
270
+ get glnCreator() {
271
+ return this.getNonGTINNumericIdentifierCreator(IdentifierTypes.GLN);
272
+ }
273
+ /**
274
+ * Get SSCC creator.
275
+ */
276
+ get ssccCreator() {
277
+ return this.getNonGTINNumericIdentifierCreator(IdentifierTypes.SSCC);
278
+ }
279
+ /**
280
+ * Get GRAI creator.
281
+ */
282
+ get graiCreator() {
283
+ return this.getSerializableNumericIdentifierCreator(IdentifierTypes.GRAI);
284
+ }
285
+ /**
286
+ * Get GIAI creator.
287
+ */
288
+ get giaiCreator() {
289
+ return this.getNonNumericIdentifierCreator(IdentifierTypes.GIAI);
290
+ }
291
+ /**
292
+ * Get GSRN creator.
293
+ */
294
+ get gsrnCreator() {
295
+ return this.getNonGTINNumericIdentifierCreator(IdentifierTypes.GSRN);
296
+ }
297
+ /**
298
+ * Get GDTI creator.
299
+ */
300
+ get gdtiCreator() {
301
+ return this.getSerializableNumericIdentifierCreator(IdentifierTypes.GDTI);
302
+ }
303
+ /**
304
+ * Get GINC creator.
305
+ */
306
+ get gincCreator() {
307
+ return this.getNonNumericIdentifierCreator(IdentifierTypes.GINC);
308
+ }
309
+ /**
310
+ * Get GSIN creator.
311
+ */
312
+ get gsinCreator() {
313
+ return this.getNonGTINNumericIdentifierCreator(IdentifierTypes.GSIN);
314
+ }
315
+ /**
316
+ * Get GCN creator.
317
+ */
318
+ get gcnCreator() {
319
+ return this.getSerializableNumericIdentifierCreator(IdentifierTypes.GCN);
320
+ }
321
+ /**
322
+ * Get CPID creator.
323
+ */
324
+ get cpidCreator() {
325
+ return this.getNonNumericIdentifierCreator(IdentifierTypes.CPID);
326
+ }
327
+ /**
328
+ * Get GMN creator.
329
+ */
330
+ get gmnCreator() {
331
+ return this.getNonNumericIdentifierCreator(IdentifierTypes.GMN);
332
+ }
333
+ }
334
+ //# sourceMappingURL=prefix-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prefix-manager.js","sourceRoot":"","sources":["../src/prefix-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import type { PrefixType } from "./prefix-type.js";
2
+ /**
3
+ * Prefix provider.
4
+ */
5
+ export interface PrefixProvider {
6
+ /**
7
+ * Prefix type.
8
+ */
9
+ readonly prefixType: PrefixType;
10
+ /**
11
+ * Prefix appropriate to the prefix type.
12
+ */
13
+ readonly prefix: string;
14
+ /**
15
+ * Prefix as GS1 Company Prefix.
16
+ */
17
+ readonly gs1CompanyPrefix: string;
18
+ /**
19
+ * Prefix as U.P.C. Company Prefix if prefix type is {@linkcode PrefixTypes.UPCCompanyPrefix} or undefined if not.
20
+ */
21
+ readonly upcCompanyPrefix: string | undefined;
22
+ /**
23
+ * Prefix as GS1-8 Prefix if prefix type is {@linkcode PrefixTypes.GS18Prefix} or undefined if not.
24
+ */
25
+ readonly gs18Prefix: string | undefined;
26
+ }
27
+ //# sourceMappingURL=prefix-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prefix-provider.d.ts","sourceRoot":"","sources":["../src/prefix-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAEhC;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAElC;;OAEG;IACH,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;IAE9C;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3C"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=prefix-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prefix-provider.js","sourceRoot":"","sources":["../src/prefix-provider.ts"],"names":[],"mappings":""}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Prefix types.
3
+ */
4
+ export declare const PrefixTypes: {
5
+ /**
6
+ * GS1 Company Prefix.
7
+ */
8
+ readonly GS1CompanyPrefix: "GS1 Company Prefix";
9
+ /**
10
+ * U.P.C. Company Prefix.
11
+ */
12
+ readonly UPCCompanyPrefix: "U.P.C. Company Prefix";
13
+ /**
14
+ * GS1-8 Prefix.
15
+ */
16
+ readonly GS18Prefix: "GS1-8 Prefix";
17
+ };
18
+ /**
19
+ * Prefix type key.
20
+ */
21
+ export type PrefixTypeKey = keyof typeof PrefixTypes;
22
+ /**
23
+ * Prefix type.
24
+ */
25
+ export type PrefixType = typeof PrefixTypes[PrefixTypeKey];
26
+ //# sourceMappingURL=prefix-type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prefix-type.d.ts","sourceRoot":"","sources":["../src/prefix-type.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,WAAW;IACpB;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;CAEG,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,WAAW,CAAC;AAErD;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,WAAW,CAAC,aAAa,CAAC,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Prefix types.
3
+ */
4
+ export const PrefixTypes = {
5
+ /**
6
+ * GS1 Company Prefix.
7
+ */
8
+ GS1CompanyPrefix: "GS1 Company Prefix",
9
+ /**
10
+ * U.P.C. Company Prefix.
11
+ */
12
+ UPCCompanyPrefix: "U.P.C. Company Prefix",
13
+ /**
14
+ * GS1-8 Prefix.
15
+ */
16
+ GS18Prefix: "GS1-8 Prefix"
17
+ };
18
+ //# sourceMappingURL=prefix-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prefix-type.js","sourceRoot":"","sources":["../src/prefix-type.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACvB;;OAEG;IACH,gBAAgB,EAAE,oBAAoB;IAEtC;;OAEG;IACH,gBAAgB,EAAE,uBAAuB;IAEzC;;OAEG;IACH,UAAU,EAAE,cAAc;CACpB,CAAC"}
@@ -0,0 +1,70 @@
1
+ import { type CharacterSetValidation } from "@aidc-toolkit/utility";
2
+ import type { PrefixProvider } from "./prefix-provider.js";
3
+ import { type PrefixType } from "./prefix-type.js";
4
+ /**
5
+ * Prefix validation parameters.
6
+ */
7
+ export interface PrefixValidation extends CharacterSetValidation {
8
+ /**
9
+ * Minimum length.
10
+ */
11
+ minimumLength: number;
12
+ /**
13
+ * Maximum length.
14
+ */
15
+ maximumLength: number;
16
+ /**
17
+ * Callback to localized prefix type name.
18
+ */
19
+ component: () => string;
20
+ }
21
+ /**
22
+ * Prefix validator.
23
+ */
24
+ export declare const PrefixValidator: {
25
+ readonly GS1_COMPANY_PREFIX_MINIMUM_LENGTH: 4;
26
+ readonly GS1_COMPANY_PREFIX_MAXIMUM_LENGTH: 12;
27
+ readonly UPC_COMPANY_PREFIX_MINIMUM_LENGTH: 6;
28
+ readonly UPC_COMPANY_PREFIX_MAXIMUM_LENGTH: 11;
29
+ readonly GS1_8_PREFIX_MINIMUM_LENGTH: 2;
30
+ readonly GS1_8_PREFIX_MAXIMUM_LENGTH: 7;
31
+ /**
32
+ * Validate a prefix.
33
+ *
34
+ * @param prefixType
35
+ * Prefix type.
36
+ *
37
+ * @param allowUPCCompanyPrefix
38
+ * If true, a U.P.C. Company Prefix expressed as a GS1 Company Prefix is permitted.
39
+ *
40
+ * @param allowGS18Prefix
41
+ * If true, a GS1-8 Prefix expressed as a GS1 Company Prefix is permitted.
42
+ *
43
+ * @param prefix
44
+ * Prefix.
45
+ *
46
+ * @param isFromIdentifier
47
+ * If true, the prefix is from an identifier and should be trimmed before its character set is validated.
48
+ *
49
+ * @param isNumericIdentifier
50
+ * If true, the prefix is from a numeric identifier and its character set will be validated by the caller.
51
+ *
52
+ * @param positionOffset
53
+ * Position offset within a larger string.
54
+ */
55
+ readonly validate: (prefixType: PrefixType, allowUPCCompanyPrefix: boolean, allowGS18Prefix: boolean, prefix: string, isFromIdentifier?: boolean, isNumericIdentifier?: boolean, positionOffset?: number) => void;
56
+ /**
57
+ * Normalize a prefix.
58
+ *
59
+ * @param prefixType
60
+ * Prefix type.
61
+ *
62
+ * @param prefix
63
+ * Prefix.
64
+ *
65
+ * @returns
66
+ * Prefix provider with normalized prefix type and prefix.
67
+ */
68
+ readonly normalize: (prefixType: PrefixType, prefix: string) => PrefixProvider;
69
+ };
70
+ //# sourceMappingURL=prefix-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prefix-validator.d.ts","sourceRoot":"","sources":["../src/prefix-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,sBAAsB,EAAmB,MAAM,uBAAuB,CAAC;AAErF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,KAAK,UAAU,EAAe,MAAM,kBAAkB,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,sBAAsB;IAC5D;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,SAAS,EAAE,MAAM,MAAM,CAAC;CAC3B;AA6ED;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;IAQxB;;;;;;;;;;;;;;;;;;;;;;;OAuBG;oCACkB,UAAU,yBAAyB,OAAO,mBAAmB,OAAO,UAAU,MAAM,8EAA0E,MAAM,KAAG,IAAI;IAwDhM;;;;;;;;;;;OAWG;qCACmB,UAAU,UAAU,MAAM,KAAG,cAAc;CAiD3D,CAAC"}