@aidc-toolkit/gs1 1.0.43 → 1.0.45-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 (221) hide show
  1. package/dist/abstract-identifier-creator.d.ts +41 -0
  2. package/dist/abstract-identifier-creator.d.ts.map +1 -0
  3. package/dist/abstract-identifier-creator.js +73 -0
  4. package/dist/abstract-identifier-creator.js.map +1 -0
  5. package/dist/abstract-non-gtin-numeric-identifier-creator.d.ts +36 -0
  6. package/dist/abstract-non-gtin-numeric-identifier-creator.d.ts.map +1 -0
  7. package/dist/abstract-non-gtin-numeric-identifier-creator.js +37 -0
  8. package/dist/abstract-non-gtin-numeric-identifier-creator.js.map +1 -0
  9. package/dist/abstract-numeric-identifier-creator.d.ts +34 -0
  10. package/dist/abstract-numeric-identifier-creator.d.ts.map +1 -0
  11. package/dist/abstract-numeric-identifier-creator.js +154 -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 +83 -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/gcp-length-cache.d.ts +89 -0
  30. package/dist/gcp-length-cache.d.ts.map +1 -0
  31. package/dist/gcp-length-cache.js +240 -0
  32. package/dist/gcp-length-cache.js.map +1 -0
  33. package/dist/gcp-length-data.d.ts +108 -0
  34. package/dist/gcp-length-data.d.ts.map +1 -0
  35. package/dist/gcp-length-data.js +53 -0
  36. package/dist/gcp-length-data.js.map +1 -0
  37. package/dist/gcp-length.d.ts +97 -0
  38. package/dist/gcp-length.d.ts.map +1 -0
  39. package/dist/gcp-length.js +368 -0
  40. package/dist/gcp-length.js.map +1 -0
  41. package/dist/gtin-creator.d.ts +47 -0
  42. package/dist/gtin-creator.d.ts.map +1 -0
  43. package/dist/gtin-creator.js +64 -0
  44. package/dist/gtin-creator.js.map +1 -0
  45. package/dist/gtin-descriptor.d.ts +22 -0
  46. package/dist/gtin-descriptor.d.ts.map +1 -0
  47. package/dist/gtin-descriptor.js +2 -0
  48. package/dist/gtin-descriptor.js.map +1 -0
  49. package/dist/gtin-length.d.ts +64 -0
  50. package/dist/gtin-length.d.ts.map +1 -0
  51. package/dist/gtin-length.js +36 -0
  52. package/dist/gtin-length.js.map +1 -0
  53. package/dist/gtin-type.d.ts +26 -0
  54. package/dist/gtin-type.d.ts.map +1 -0
  55. package/dist/gtin-type.js +7 -0
  56. package/dist/gtin-type.js.map +1 -0
  57. package/dist/gtin-validator.d.ts +132 -0
  58. package/dist/gtin-validator.d.ts.map +1 -0
  59. package/dist/gtin-validator.js +349 -0
  60. package/dist/gtin-validator.js.map +1 -0
  61. package/dist/identifier-creator.d.ts +31 -0
  62. package/dist/identifier-creator.d.ts.map +1 -0
  63. package/dist/identifier-creator.js +2 -0
  64. package/dist/identifier-creator.js.map +1 -0
  65. package/dist/identifier-creators.d.ts +118 -0
  66. package/dist/identifier-creators.d.ts.map +1 -0
  67. package/dist/identifier-creators.js +92 -0
  68. package/dist/identifier-creators.js.map +1 -0
  69. package/dist/identifier-descriptor.d.ts +27 -0
  70. package/dist/identifier-descriptor.d.ts.map +1 -0
  71. package/dist/identifier-descriptor.js +2 -0
  72. package/dist/identifier-descriptor.js.map +1 -0
  73. package/dist/identifier-descriptors.d.ts +106 -0
  74. package/dist/identifier-descriptors.d.ts.map +1 -0
  75. package/dist/identifier-descriptors.js +262 -0
  76. package/dist/identifier-descriptors.js.map +1 -0
  77. package/dist/identifier-extension.d.ts +82 -0
  78. package/dist/identifier-extension.d.ts.map +1 -0
  79. package/dist/identifier-extension.js +79 -0
  80. package/dist/identifier-extension.js.map +1 -0
  81. package/dist/identifier-type.d.ts +62 -0
  82. package/dist/identifier-type.d.ts.map +1 -0
  83. package/dist/identifier-type.js +54 -0
  84. package/dist/identifier-type.js.map +1 -0
  85. package/dist/identifier-validator.d.ts +85 -0
  86. package/dist/identifier-validator.d.ts.map +1 -0
  87. package/dist/identifier-validator.js +107 -0
  88. package/dist/identifier-validator.js.map +1 -0
  89. package/dist/identifier-validators.d.ts +131 -0
  90. package/dist/identifier-validators.d.ts.map +1 -0
  91. package/dist/identifier-validators.js +167 -0
  92. package/dist/identifier-validators.js.map +1 -0
  93. package/dist/index.d.ts +63 -2205
  94. package/dist/index.d.ts.map +1 -0
  95. package/dist/index.js +36 -3
  96. package/dist/index.js.map +1 -0
  97. package/dist/leader-type.d.ts +26 -0
  98. package/dist/leader-type.d.ts.map +1 -0
  99. package/dist/leader-type.js +18 -0
  100. package/dist/leader-type.js.map +1 -0
  101. package/dist/locale/en/locale-resources.d.ts +48 -0
  102. package/dist/locale/en/locale-resources.d.ts.map +1 -0
  103. package/dist/locale/en/locale-resources.js +47 -0
  104. package/dist/locale/en/locale-resources.js.map +1 -0
  105. package/dist/locale/fr/locale-resources.d.ts +48 -0
  106. package/dist/locale/fr/locale-resources.d.ts.map +1 -0
  107. package/dist/locale/fr/locale-resources.js +47 -0
  108. package/dist/locale/fr/locale-resources.js.map +1 -0
  109. package/dist/locale/i18n.d.ts +27 -0
  110. package/dist/locale/i18n.d.ts.map +1 -0
  111. package/dist/locale/i18n.js +35 -0
  112. package/dist/locale/i18n.js.map +1 -0
  113. package/dist/non-gtin-numeric-identifier-creator.d.ts +12 -0
  114. package/dist/non-gtin-numeric-identifier-creator.d.ts.map +1 -0
  115. package/dist/non-gtin-numeric-identifier-creator.js +2 -0
  116. package/dist/non-gtin-numeric-identifier-creator.js.map +1 -0
  117. package/dist/non-gtin-numeric-identifier-descriptor.d.ts +22 -0
  118. package/dist/non-gtin-numeric-identifier-descriptor.d.ts.map +1 -0
  119. package/dist/non-gtin-numeric-identifier-descriptor.js +2 -0
  120. package/dist/non-gtin-numeric-identifier-descriptor.js.map +1 -0
  121. package/dist/non-gtin-numeric-identifier-type.d.ts +26 -0
  122. package/dist/non-gtin-numeric-identifier-type.d.ts.map +1 -0
  123. package/dist/non-gtin-numeric-identifier-type.js +8 -0
  124. package/dist/non-gtin-numeric-identifier-type.js.map +1 -0
  125. package/dist/non-gtin-numeric-identifier-validator.d.ts +12 -0
  126. package/dist/non-gtin-numeric-identifier-validator.d.ts.map +1 -0
  127. package/dist/non-gtin-numeric-identifier-validator.js +10 -0
  128. package/dist/non-gtin-numeric-identifier-validator.js.map +1 -0
  129. package/dist/non-numeric-identifier-creator.d.ts +40 -0
  130. package/dist/non-numeric-identifier-creator.d.ts.map +1 -0
  131. package/dist/non-numeric-identifier-creator.js +82 -0
  132. package/dist/non-numeric-identifier-creator.js.map +1 -0
  133. package/dist/non-numeric-identifier-descriptor.d.ts +26 -0
  134. package/dist/non-numeric-identifier-descriptor.d.ts.map +1 -0
  135. package/dist/non-numeric-identifier-descriptor.js +2 -0
  136. package/dist/non-numeric-identifier-descriptor.js.map +1 -0
  137. package/dist/non-numeric-identifier-type.d.ts +26 -0
  138. package/dist/non-numeric-identifier-type.d.ts.map +1 -0
  139. package/dist/non-numeric-identifier-type.js +8 -0
  140. package/dist/non-numeric-identifier-type.js.map +1 -0
  141. package/dist/non-numeric-identifier-validator.d.ts +41 -0
  142. package/dist/non-numeric-identifier-validator.d.ts.map +1 -0
  143. package/dist/non-numeric-identifier-validator.js +69 -0
  144. package/dist/non-numeric-identifier-validator.js.map +1 -0
  145. package/dist/non-serializable-numeric-identifier-creator.d.ts +10 -0
  146. package/dist/non-serializable-numeric-identifier-creator.d.ts.map +1 -0
  147. package/dist/non-serializable-numeric-identifier-creator.js +8 -0
  148. package/dist/non-serializable-numeric-identifier-creator.js.map +1 -0
  149. package/dist/non-serializable-numeric-identifier-descriptor.d.ts +12 -0
  150. package/dist/non-serializable-numeric-identifier-descriptor.d.ts.map +1 -0
  151. package/dist/non-serializable-numeric-identifier-descriptor.js +2 -0
  152. package/dist/non-serializable-numeric-identifier-descriptor.js.map +1 -0
  153. package/dist/non-serializable-numeric-identifier-type.d.ts +26 -0
  154. package/dist/non-serializable-numeric-identifier-type.d.ts.map +1 -0
  155. package/dist/non-serializable-numeric-identifier-type.js +7 -0
  156. package/dist/non-serializable-numeric-identifier-type.js.map +1 -0
  157. package/dist/non-serializable-numeric-identifier-validator.d.ts +16 -0
  158. package/dist/non-serializable-numeric-identifier-validator.d.ts.map +1 -0
  159. package/dist/non-serializable-numeric-identifier-validator.js +17 -0
  160. package/dist/non-serializable-numeric-identifier-validator.js.map +1 -0
  161. package/dist/numeric-identifier-creator.d.ts +53 -0
  162. package/dist/numeric-identifier-creator.d.ts.map +1 -0
  163. package/dist/numeric-identifier-creator.js +2 -0
  164. package/dist/numeric-identifier-creator.js.map +1 -0
  165. package/dist/numeric-identifier-descriptor.d.ts +22 -0
  166. package/dist/numeric-identifier-descriptor.d.ts.map +1 -0
  167. package/dist/numeric-identifier-descriptor.js +2 -0
  168. package/dist/numeric-identifier-descriptor.js.map +1 -0
  169. package/dist/numeric-identifier-type.d.ts +26 -0
  170. package/dist/numeric-identifier-type.d.ts.map +1 -0
  171. package/dist/numeric-identifier-type.js +7 -0
  172. package/dist/numeric-identifier-type.js.map +1 -0
  173. package/dist/numeric-identifier-validator.d.ts +38 -0
  174. package/dist/numeric-identifier-validator.d.ts.map +1 -0
  175. package/dist/numeric-identifier-validator.js +61 -0
  176. package/dist/numeric-identifier-validator.js.map +1 -0
  177. package/dist/prefix-manager.d.ts +151 -0
  178. package/dist/prefix-manager.d.ts.map +1 -0
  179. package/dist/prefix-manager.js +297 -0
  180. package/dist/prefix-manager.js.map +1 -0
  181. package/dist/prefix-provider.d.ts +27 -0
  182. package/dist/prefix-provider.d.ts.map +1 -0
  183. package/dist/prefix-provider.js +2 -0
  184. package/dist/prefix-provider.js.map +1 -0
  185. package/dist/prefix-type.d.ts +26 -0
  186. package/dist/prefix-type.d.ts.map +1 -0
  187. package/dist/prefix-type.js +18 -0
  188. package/dist/prefix-type.js.map +1 -0
  189. package/dist/prefix-validator.d.ts +71 -0
  190. package/dist/prefix-validator.d.ts.map +1 -0
  191. package/dist/prefix-validator.js +204 -0
  192. package/dist/prefix-validator.js.map +1 -0
  193. package/dist/serializable-numeric-identifier-creator.d.ts +48 -0
  194. package/dist/serializable-numeric-identifier-creator.d.ts.map +1 -0
  195. package/dist/serializable-numeric-identifier-creator.js +93 -0
  196. package/dist/serializable-numeric-identifier-creator.js.map +1 -0
  197. package/dist/serializable-numeric-identifier-descriptor.d.ts +26 -0
  198. package/dist/serializable-numeric-identifier-descriptor.d.ts.map +1 -0
  199. package/dist/serializable-numeric-identifier-descriptor.js +2 -0
  200. package/dist/serializable-numeric-identifier-descriptor.js.map +1 -0
  201. package/dist/serializable-numeric-identifier-type.d.ts +26 -0
  202. package/dist/serializable-numeric-identifier-type.d.ts.map +1 -0
  203. package/dist/serializable-numeric-identifier-type.js +8 -0
  204. package/dist/serializable-numeric-identifier-type.js.map +1 -0
  205. package/dist/serializable-numeric-identifier-validator.d.ts +67 -0
  206. package/dist/serializable-numeric-identifier-validator.d.ts.map +1 -0
  207. package/dist/serializable-numeric-identifier-validator.js +97 -0
  208. package/dist/serializable-numeric-identifier-validator.js.map +1 -0
  209. package/dist/variable-measure.d.ts +68 -0
  210. package/dist/variable-measure.d.ts.map +1 -0
  211. package/dist/variable-measure.js +210 -0
  212. package/dist/variable-measure.js.map +1 -0
  213. package/dist/verified-by-gs1.d.ts +22 -0
  214. package/dist/verified-by-gs1.d.ts.map +1 -0
  215. package/dist/verified-by-gs1.js +46 -0
  216. package/dist/verified-by-gs1.js.map +1 -0
  217. package/package.json +4 -4
  218. package/src/gcp-length-cache.ts +7 -2
  219. package/tsconfig-src.tsbuildinfo +1 -1
  220. package/dist/index.cjs +0 -19
  221. package/dist/index.d.cts +0 -2205
@@ -0,0 +1,53 @@
1
+ import { type TransformerInput, type TransformerOutput } from "@aidc-toolkit/utility";
2
+ import type { IdentifierCreator } from "./identifier-creator.js";
3
+ import type { NumericIdentifierType } from "./numeric-identifier-type.js";
4
+ import type { NumericIdentifierValidation, NumericIdentifierValidator } from "./numeric-identifier-validator.js";
5
+ /**
6
+ * Numeric identifier creator. Creates one or many numeric identifiers.
7
+ *
8
+ * @template TNumericIdentifierType
9
+ * Numeric identifier type type.
10
+ */
11
+ export interface NumericIdentifierCreator<TNumericIdentifierType extends NumericIdentifierType = NumericIdentifierType> extends NumericIdentifierValidator<TNumericIdentifierType>, IdentifierCreator<TNumericIdentifierType, NumericIdentifierValidation> {
12
+ /**
13
+ * Get the capacity (`10**referenceLength`).
14
+ */
15
+ get capacity(): number;
16
+ /**
17
+ * Get the tweak for sparse creation.
18
+ */
19
+ get tweak(): bigint;
20
+ /**
21
+ * Set the tweak for sparse creation.
22
+ */
23
+ set tweak(value: bigint);
24
+ /**
25
+ * Create identifier(s) with reference(s) based on numeric value(s). The value(s) is/are converted to references of
26
+ * the appropriate length using {@linkcode NUMERIC_CREATOR}.
27
+ *
28
+ * @template TTransformerInput
29
+ * Transformer input type.
30
+ *
31
+ * @param valueOrValues
32
+ * Numeric value(s).
33
+ *
34
+ * @param sparse
35
+ * If true, the value(s) are mapped to a sparse sequence resistant to discovery. Default is false.
36
+ *
37
+ * @returns
38
+ * Identifier(s).
39
+ */
40
+ create: <TTransformerInput extends TransformerInput<number | bigint>>(valueOrValues: TTransformerInput, sparse?: boolean) => TransformerOutput<TTransformerInput, string>;
41
+ /**
42
+ * Create all identifiers for the prefix from `0` to `capacity - 1`.
43
+ *
44
+ * The implementation creates the strings only as needed using an internal generator function. Although the result
45
+ * is equivalent to calling `creator.create(new Sequence(0, creator.capacity))`, this method is significantly
46
+ * faster.
47
+ *
48
+ * @returns
49
+ * All identifiers for the prefix.
50
+ */
51
+ createAll: () => Iterable<string>;
52
+ }
53
+ //# sourceMappingURL=numeric-identifier-creator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"numeric-identifier-creator.d.ts","sourceRoot":"","sources":["../src/numeric-identifier-creator.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,KAAK,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACvG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,KAAK,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAEjH;;;;;GAKG;AACH,MAAM,WAAW,wBAAwB,CAAC,sBAAsB,SAAS,qBAAqB,GAAG,qBAAqB,CAAE,SAAQ,0BAA0B,CAAC,sBAAsB,CAAC,EAAE,iBAAiB,CAAC,sBAAsB,EAAE,2BAA2B,CAAC;IACtP;;OAEG;IACH,IAAI,QAAQ,IAAI,MAAM,CAAC;IAEvB;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAAC;IAEpB;;OAEG;IACH,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE;IAEzB;;;;;;;;;;;;;;;OAeG;IACH,MAAM,EAAE,CAAC,iBAAiB,SAAS,gBAAgB,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,iBAAiB,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;IAE1K;;;;;;;;;OASG;IACH,SAAS,EAAE,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;CACrC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=numeric-identifier-creator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"numeric-identifier-creator.js","sourceRoot":"","sources":["../src/numeric-identifier-creator.ts"],"names":[],"mappings":""}
@@ -0,0 +1,22 @@
1
+ import type { ContentCharacterSets } from "./content-character-set.js";
2
+ import type { IdentifierDescriptor } from "./identifier-descriptor.js";
3
+ import type { LeaderType } from "./leader-type.js";
4
+ import type { NumericIdentifierType } from "./numeric-identifier-type.js";
5
+ /**
6
+ * Numeric identifier descriptor.
7
+ */
8
+ export interface NumericIdentifierDescriptor extends IdentifierDescriptor {
9
+ /**
10
+ * @inheritDoc
11
+ */
12
+ readonly identifierType: NumericIdentifierType;
13
+ /**
14
+ * @inheritDoc
15
+ */
16
+ readonly referenceCharacterSet: typeof ContentCharacterSets.Numeric;
17
+ /**
18
+ * Leader type.
19
+ */
20
+ readonly leaderType: LeaderType;
21
+ }
22
+ //# sourceMappingURL=numeric-identifier-descriptor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"numeric-identifier-descriptor.d.ts","sourceRoot":"","sources":["../src/numeric-identifier-descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAE1E;;GAEG;AACH,MAAM,WAAW,2BAA4B,SAAQ,oBAAoB;IACrE;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,qBAAqB,CAAC;IAE/C;;OAEG;IACH,QAAQ,CAAC,qBAAqB,EAAE,OAAO,oBAAoB,CAAC,OAAO,CAAC;IAEpE;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;CACnC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=numeric-identifier-descriptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"numeric-identifier-descriptor.js","sourceRoot":"","sources":["../src/numeric-identifier-descriptor.ts"],"names":[],"mappings":""}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Numeric identifier types.
3
+ */
4
+ export declare const NumericIdentifierTypes: Pick<{
5
+ readonly GTIN: "GTIN";
6
+ readonly GLN: "GLN";
7
+ readonly SSCC: "SSCC";
8
+ readonly GRAI: "GRAI";
9
+ readonly GIAI: "GIAI";
10
+ readonly GSRN: "GSRN";
11
+ readonly GDTI: "GDTI";
12
+ readonly GINC: "GINC";
13
+ readonly GSIN: "GSIN";
14
+ readonly GCN: "GCN";
15
+ readonly CPID: "CPID";
16
+ readonly GMN: "GMN";
17
+ }, "GTIN" | "GLN" | "SSCC" | "GRAI" | "GSRN" | "GDTI" | "GSIN" | "GCN">;
18
+ /**
19
+ * Numeric identifier type key.
20
+ */
21
+ export type NumericIdentifierTypeKey = keyof typeof NumericIdentifierTypes;
22
+ /**
23
+ * Numeric identifier type.
24
+ */
25
+ export type NumericIdentifierType = typeof NumericIdentifierTypes[NumericIdentifierTypeKey];
26
+ //# sourceMappingURL=numeric-identifier-type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"numeric-identifier-type.d.ts","sourceRoot":"","sources":["../src/numeric-identifier-type.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;uEASlC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG,MAAM,OAAO,sBAAsB,CAAC;AAE3E;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,OAAO,sBAAsB,CAAC,wBAAwB,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { pick } from "@aidc-toolkit/core";
2
+ import { IdentifierTypes } from "./identifier-type.js";
3
+ /**
4
+ * Numeric identifier types.
5
+ */
6
+ export const NumericIdentifierTypes = pick(IdentifierTypes, IdentifierTypes.GTIN, IdentifierTypes.GLN, IdentifierTypes.SSCC, IdentifierTypes.GRAI, IdentifierTypes.GSRN, IdentifierTypes.GDTI, IdentifierTypes.GSIN, IdentifierTypes.GCN);
7
+ //# sourceMappingURL=numeric-identifier-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"numeric-identifier-type.js","sourceRoot":"","sources":["../src/numeric-identifier-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,CAAC,eAAe,EACtD,eAAe,CAAC,IAAI,EACpB,eAAe,CAAC,GAAG,EACnB,eAAe,CAAC,IAAI,EACpB,eAAe,CAAC,IAAI,EACpB,eAAe,CAAC,IAAI,EACpB,eAAe,CAAC,IAAI,EACpB,eAAe,CAAC,IAAI,EACpB,eAAe,CAAC,GAAG,CACtB,CAAC"}
@@ -0,0 +1,38 @@
1
+ import type { IdentifierTypeDescriptor } from "./identifier-descriptors.js";
2
+ import { type IdentifierValidation, IdentifierValidator } from "./identifier-validator.js";
3
+ import type { NumericIdentifierDescriptor } from "./numeric-identifier-descriptor.js";
4
+ import type { NumericIdentifierType } from "./numeric-identifier-type.js";
5
+ /**
6
+ * Numeric identifier validation parameters.
7
+ */
8
+ export interface NumericIdentifierValidation extends IdentifierValidation {
9
+ /**
10
+ * Position offset within a larger string. Some numeric identifier types have the prefix offset by one.
11
+ */
12
+ positionOffset?: number | undefined;
13
+ }
14
+ /**
15
+ * Numeric identifier validator.
16
+ *
17
+ * @template TNumericIdentifierType
18
+ * Numeric identifier type type.
19
+ */
20
+ export declare abstract class NumericIdentifierValidator<TNumericIdentifierType extends NumericIdentifierType = NumericIdentifierType> extends IdentifierValidator<TNumericIdentifierType, NumericIdentifierValidation> implements NumericIdentifierDescriptor {
21
+ #private;
22
+ /**
23
+ * Constructor.
24
+ *
25
+ * @param identifierDescriptor
26
+ * Identifier descriptor.
27
+ */
28
+ constructor(identifierDescriptor: IdentifierTypeDescriptor<TNumericIdentifierType>);
29
+ /**
30
+ * @inheritDoc
31
+ */
32
+ get leaderType(): IdentifierTypeDescriptor<TNumericIdentifierType>["leaderType"];
33
+ /**
34
+ * @inheritDoc
35
+ */
36
+ validate(identifier: string, validation?: NumericIdentifierValidation): void;
37
+ }
38
+ //# sourceMappingURL=numeric-identifier-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"numeric-identifier-validator.d.ts","sourceRoot":"","sources":["../src/numeric-identifier-validator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,KAAK,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAG3F,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AACtF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAE1E;;GAEG;AACH,MAAM,WAAW,2BAA4B,SAAQ,oBAAoB;IACrE;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC;AAED;;;;;GAKG;AACH,8BAAsB,0BAA0B,CAAC,sBAAsB,SAAS,qBAAqB,GAAG,qBAAqB,CAAE,SAAQ,mBAAmB,CAAC,sBAAsB,EAAE,2BAA2B,CAAE,YAAW,2BAA2B;;IAWlP;;;;;OAKG;gBACS,oBAAoB,EAAE,wBAAwB,CAAC,sBAAsB,CAAC;IAOlF;;OAEG;IACH,IAAI,UAAU,IAAI,wBAAwB,CAAC,sBAAsB,CAAC,CAAC,YAAY,CAAC,CAE/E;IAED;;OAEG;IACM,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,2BAA2B,GAAG,IAAI;CAqBxF"}
@@ -0,0 +1,61 @@
1
+ import { hasValidCheckDigit } from "./check.js";
2
+ import { IdentifierValidator } from "./identifier-validator.js";
3
+ import { LeaderTypes } from "./leader-type.js";
4
+ import { i18nextGS1 } from "./locale/i18n.js";
5
+ /**
6
+ * Numeric identifier validator.
7
+ *
8
+ * @template TNumericIdentifierType
9
+ * Numeric identifier type type.
10
+ */
11
+ export class NumericIdentifierValidator extends IdentifierValidator {
12
+ /**
13
+ * Leader type.
14
+ */
15
+ #leaderType;
16
+ /**
17
+ * Prefix position, determined by the leader type.
18
+ */
19
+ #prefixPosition;
20
+ /**
21
+ * Constructor.
22
+ *
23
+ * @param identifierDescriptor
24
+ * Identifier descriptor.
25
+ */
26
+ constructor(identifierDescriptor) {
27
+ super(identifierDescriptor);
28
+ this.#leaderType = identifierDescriptor.leaderType;
29
+ this.#prefixPosition = Number(this.leaderType === LeaderTypes.ExtensionDigit);
30
+ }
31
+ /**
32
+ * @inheritDoc
33
+ */
34
+ get leaderType() {
35
+ return this.#leaderType;
36
+ }
37
+ /**
38
+ * @inheritDoc
39
+ */
40
+ validate(identifier, validation) {
41
+ // Validate the prefix, with care taken for its position within the identifier.
42
+ if (this.#prefixPosition === 0) {
43
+ super.validatePrefix(identifier);
44
+ }
45
+ else {
46
+ super.validatePrefix(identifier.substring(this.#prefixPosition));
47
+ }
48
+ // Validate the length.
49
+ if (identifier.length !== this.length) {
50
+ throw new RangeError(i18nextGS1.t("Identifier.identifierTypeLength", {
51
+ identifierType: this.identifierType,
52
+ length: this.length
53
+ }));
54
+ }
55
+ // Validating the check digit will also validate the characters.
56
+ if (!hasValidCheckDigit(this.padIdentifier(identifier, validation?.positionOffset))) {
57
+ throw new RangeError(i18nextGS1.t("Identifier.invalidCheckDigit"));
58
+ }
59
+ }
60
+ }
61
+ //# sourceMappingURL=numeric-identifier-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"numeric-identifier-validator.js","sourceRoot":"","sources":["../src/numeric-identifier-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,EAA6B,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAC3F,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAc9C;;;;;GAKG;AACH,MAAM,OAAgB,0BAAyG,SAAQ,mBAAwE;IAC3M;;OAEG;IACM,WAAW,CAAiE;IAErF;;OAEG;IACM,eAAe,CAAS;IAEjC;;;;;OAKG;IACH,YAAY,oBAAsE;QAC9E,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAE5B,IAAI,CAAC,WAAW,GAAG,oBAAoB,CAAC,UAAU,CAAC;QACnD,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,KAAK,WAAW,CAAC,cAAc,CAAC,CAAC;IAClF,CAAC;IAED;;OAEG;IACH,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED;;OAEG;IACM,QAAQ,CAAC,UAAkB,EAAE,UAAwC;QAC1E,+EAA+E;QAC/E,IAAI,IAAI,CAAC,eAAe,KAAK,CAAC,EAAE,CAAC;YAC7B,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACJ,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;QACrE,CAAC;QAED,uBAAuB;QACvB,IAAI,UAAU,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;YACpC,MAAM,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,iCAAiC,EAAE;gBACjE,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,MAAM,EAAE,IAAI,CAAC,MAAM;aACtB,CAAC,CAAC,CAAC;QACR,CAAC;QAED,gEAAgE;QAChE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;YAClF,MAAM,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC;QACvE,CAAC;IACL,CAAC;CACJ"}
@@ -0,0 +1,151 @@
1
+ import type { GTINCreator } from "./gtin-creator.js";
2
+ import { type IdentifierCreatorsRecord } from "./identifier-creators.js";
3
+ import { type IdentifierType } from "./identifier-type.js";
4
+ import type { NonNumericIdentifierCreator } from "./non-numeric-identifier-creator.js";
5
+ import type { NonSerializableNumericIdentifierCreator } from "./non-serializable-numeric-identifier-creator.js";
6
+ import type { PrefixProvider } from "./prefix-provider.js";
7
+ import { type PrefixType } from "./prefix-type.js";
8
+ import type { SerializableNumericIdentifierCreator } from "./serializable-numeric-identifier-creator.js";
9
+ /**
10
+ * Prefix manager. This is the core class for identifier creation.
11
+ *
12
+ * A prefix manager may be constructed for any {@link PrefixType | prefix type}. Construction may be done directly or
13
+ * via the static {@linkcode PrefixManager.get | get()} method, which allows for caching and reuse. As most applications
14
+ * work with a limited number of prefixes for creating identifiers, caching and reuse may be a more efficient option.
15
+ *
16
+ * The prefix type and prefix are normalized before the prefix manager is constructed, so they may not match the input
17
+ * values. For example, the GS1 Company Prefix 0614141 is equivalent to U.P.C. Company Prefix 614141; both result in a
18
+ * prefix manager with prefix type equal to {@linkcode PrefixTypes.UPCCompanyPrefix} and prefix equal to "614141".
19
+ *
20
+ * To support the creation of sparse identifiers, a prefix manager maintains a {@link tweakFactor | tweak factor} which
21
+ * is used, along with a type-specific multiplier, as the tweak when creating numeric identifiers. The default tweak
22
+ * factor is the numeric value of the GS1 Company Prefix representation of the prefix preceded by '1' to ensure
23
+ * uniqueness (i.e., so that prefixes 0 N1 N2 N3... and N1 N2 N3... produce different tweak factors). This is usually
24
+ * sufficient for obfuscation, but as the sparse creation algorithm is reversible and as the GS1 Company Prefix is
25
+ * discoverable via {@link https://www.gs1.org/services/verified-by-gs1 | Verified by GS1}, a user-defined tweak factor
26
+ * should be used if a higher degree of obfuscation is required. When using a tweak factor other than the default, care
27
+ * should be taken to restore it when resuming the application. A tweak factor of 0 creates a straight sequence.
28
+ */
29
+ export declare class PrefixManager implements PrefixProvider {
30
+ #private;
31
+ /**
32
+ * Constructor.
33
+ *
34
+ * @param prefixType
35
+ * Prefix type.
36
+ *
37
+ * @param prefix
38
+ * Prefix.
39
+ */
40
+ constructor(prefixType: PrefixType, prefix: string);
41
+ /**
42
+ * Get the prefix type.
43
+ */
44
+ get prefixType(): PrefixType;
45
+ /**
46
+ * Get the prefix.
47
+ */
48
+ get prefix(): string;
49
+ /**
50
+ * Get the GS1 Company Prefix.
51
+ */
52
+ get gs1CompanyPrefix(): string;
53
+ /**
54
+ * Get the U.P.C. Company Prefix if prefix type is {@linkcode PrefixTypes.UPCCompanyPrefix} or undefined if not.
55
+ */
56
+ get upcCompanyPrefix(): string | undefined;
57
+ /**
58
+ * Get the GS1-8 Prefix if prefix type is {@linkcode PrefixTypes.GS18Prefix} or undefined if not.
59
+ */
60
+ get gs18Prefix(): string | undefined;
61
+ /**
62
+ * Get the tweak factor.
63
+ */
64
+ get tweakFactor(): bigint;
65
+ /**
66
+ * Set the tweak factor.
67
+ *
68
+ * @param value
69
+ * Tweak factor.
70
+ */
71
+ set tweakFactor(value: number | bigint);
72
+ /**
73
+ * Reset the tweak factor to its default (numeric value of the GS1 Company Prefix preceded by '1').
74
+ */
75
+ resetTweakFactor(): void;
76
+ /**
77
+ * Get a prefix manager.
78
+ *
79
+ * @param prefixType
80
+ * Prefix type.
81
+ *
82
+ * @param prefix
83
+ * Prefix.
84
+ *
85
+ * @returns
86
+ * Prefix manager with normalized prefix type and prefix.
87
+ */
88
+ static get(prefixType: PrefixType, prefix: string): PrefixManager;
89
+ /**
90
+ * Get an identifier creator.
91
+ *
92
+ * @template TIdentifierType
93
+ * Identifier type type.
94
+ *
95
+ * @param identifierType
96
+ * Identifier type for which to retrieve or construct identifier creator.
97
+ *
98
+ * @returns
99
+ * Identifier creator.
100
+ */
101
+ getIdentifierCreator<TIdentifierType extends IdentifierType>(identifierType: TIdentifierType): IdentifierCreatorsRecord[TIdentifierType];
102
+ /**
103
+ * Get GTIN creator.
104
+ */
105
+ get gtinCreator(): GTINCreator;
106
+ /**
107
+ * Get GLN creator.
108
+ */
109
+ get glnCreator(): NonSerializableNumericIdentifierCreator;
110
+ /**
111
+ * Get SSCC creator.
112
+ */
113
+ get ssccCreator(): NonSerializableNumericIdentifierCreator;
114
+ /**
115
+ * Get GRAI creator.
116
+ */
117
+ get graiCreator(): SerializableNumericIdentifierCreator;
118
+ /**
119
+ * Get GIAI creator.
120
+ */
121
+ get giaiCreator(): NonNumericIdentifierCreator;
122
+ /**
123
+ * Get GSRN creator.
124
+ */
125
+ get gsrnCreator(): NonSerializableNumericIdentifierCreator;
126
+ /**
127
+ * Get GDTI creator.
128
+ */
129
+ get gdtiCreator(): SerializableNumericIdentifierCreator;
130
+ /**
131
+ * Get GINC creator.
132
+ */
133
+ get gincCreator(): NonNumericIdentifierCreator;
134
+ /**
135
+ * Get GSIN creator.
136
+ */
137
+ get gsinCreator(): NonSerializableNumericIdentifierCreator;
138
+ /**
139
+ * Get GCN creator.
140
+ */
141
+ get gcnCreator(): SerializableNumericIdentifierCreator;
142
+ /**
143
+ * Get CPID creator.
144
+ */
145
+ get cpidCreator(): NonNumericIdentifierCreator;
146
+ /**
147
+ * Get GMN creator.
148
+ */
149
+ get gmnCreator(): NonNumericIdentifierCreator;
150
+ }
151
+ //# sourceMappingURL=prefix-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prefix-manager.d.ts","sourceRoot":"","sources":["../src/prefix-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIrD,OAAO,EAEH,KAAK,wBAAwB,EAGhC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,KAAK,cAAc,EAAmB,MAAM,sBAAsB,CAAC;AAE5E,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AACvF,OAAO,KAAK,EAAE,uCAAuC,EAAE,MAAM,kDAAkD,CAAC;AAEhH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,KAAK,UAAU,EAAe,MAAM,kBAAkB,CAAC;AAEhE,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,8CAA8C,CAAC;AAEzG;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,aAAc,YAAW,cAAc;;IA6DhD;;;;;;;;OAQG;gBACS,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM;IAelD;;OAEG;IACH,IAAI,UAAU,IAAI,UAAU,CAE3B;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;OAEG;IACH,IAAI,gBAAgB,IAAI,MAAM,CAE7B;IAED;;OAEG;IACH,IAAI,gBAAgB,IAAI,MAAM,GAAG,SAAS,CAEzC;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,MAAM,GAAG,SAAS,CAEnC;IAeD;;OAEG;IACH,IAAI,WAAW,IAAI,MAAM,CAExB;IAED;;;;;OAKG;IACH,IAAI,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAUrC;IAED;;OAEG;IACH,gBAAgB,IAAI,IAAI;IAIxB;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa;IAcjE;;;;;;;;;;;OAWG;IACH,oBAAoB,CAAC,eAAe,SAAS,cAAc,EAAE,cAAc,EAAE,eAAe,GAAG,wBAAwB,CAAC,eAAe,CAAC;IA0BxI;;OAEG;IACH,IAAI,WAAW,IAAI,WAAW,CAE7B;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,uCAAuC,CAExD;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,uCAAuC,CAEzD;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,oCAAoC,CAEtD;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,2BAA2B,CAE7C;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,uCAAuC,CAEzD;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,oCAAoC,CAEtD;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,2BAA2B,CAE7C;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,uCAAuC,CAEzD;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,oCAAoC,CAErD;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,2BAA2B,CAE7C;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,2BAA2B,CAE5C;CACJ"}