@aidc-toolkit/gs1 1.0.43 → 1.0.44-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,47 @@
1
+ import { type TransformerInput, type TransformerOutput } from "@aidc-toolkit/utility";
2
+ import { type GTINBaseLength } from "./gtin-length.js";
3
+ import { GTINValidator } from "./gtin-validator.js";
4
+ import type { PrefixProvider } from "./prefix-provider.js";
5
+ declare const GTINCreator_base: import("./abstract-numeric-identifier-creator.js").NumericIdentifierCreatorConstructor<"GTIN", GTINValidator>;
6
+ /**
7
+ * GTIN creator. Applicable to GTIN-13, GTIN-12, and GTIN-8 types; not applicable to GTIN-14 type.
8
+ */
9
+ export declare class GTINCreator extends GTINCreator_base {
10
+ #private;
11
+ /**
12
+ * Constructor.
13
+ *
14
+ * @param prefixProvider
15
+ * Prefix provider.
16
+ *
17
+ * @param gtinBaseLength
18
+ * GTIN base length (all except GTIN-14).
19
+ */
20
+ constructor(prefixProvider: PrefixProvider, gtinBaseLength: GTINBaseLength);
21
+ /**
22
+ * @inheritDoc
23
+ */
24
+ get prefix(): string;
25
+ /**
26
+ * Create GTIN-14(s) with an indicator digit and reference(s) based on numeric value(s). The value(s) is/are
27
+ * converted to reference(s) of the appropriate length using {@linkcode NUMERIC_CREATOR}.
28
+ *
29
+ * @template TTransformerInput
30
+ * Transformer input type.
31
+ *
32
+ * @param indicatorDigit
33
+ * Indicator digit.
34
+ *
35
+ * @param valueOrValues
36
+ * Numeric value(s).
37
+ *
38
+ * @param sparse
39
+ * If true, the value(s) is/are mapped to a sparse sequence resistant to discovery. Default is false.
40
+ *
41
+ * @returns
42
+ * GTIN-14(s).
43
+ */
44
+ createGTIN14<TTransformerInput extends TransformerInput<number | bigint>>(indicatorDigit: string, valueOrValues: TTransformerInput, sparse?: boolean): TransformerOutput<TTransformerInput, string>;
45
+ }
46
+ export {};
47
+ //# 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;AAG/B,OAAO,EAAE,KAAK,cAAc,EAAe,MAAM,kBAAkB,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;;AAE3D;;GAEG;AACH,qBAAa,WAAY,SAAQ,gBAEjB;;IAUZ;;;;;;;;OAQG;gBACS,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;IAI1E;;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;CASpM"}
@@ -0,0 +1,64 @@
1
+ import { Exclusions, NUMERIC_CREATOR } from "@aidc-toolkit/utility";
2
+ import { MixinAbstractNumericIdentifierCreator } from "./abstract-numeric-identifier-creator.js";
3
+ import { checkDigit } from "./check.js";
4
+ import { GTINLengths } from "./gtin-length.js";
5
+ import { GTINValidator } from "./gtin-validator.js";
6
+ import { i18nextGS1 } from "./locale/i18n.js";
7
+ /**
8
+ * GTIN creator. Applicable to GTIN-13, GTIN-12, and GTIN-8 types; not applicable to GTIN-14 type.
9
+ */
10
+ export class GTINCreator extends MixinAbstractNumericIdentifierCreator(GTINValidator) {
11
+ /**
12
+ * Validation parameters for required indicator digit.
13
+ */
14
+ static #REQUIRED_INDICATOR_DIGIT_VALIDATION = {
15
+ minimumLength: 1,
16
+ maximumLength: 1,
17
+ component: () => i18nextGS1.t("Identifier.indicatorDigit")
18
+ };
19
+ /**
20
+ * Constructor.
21
+ *
22
+ * @param prefixProvider
23
+ * Prefix provider.
24
+ *
25
+ * @param gtinBaseLength
26
+ * GTIN base length (all except GTIN-14).
27
+ */
28
+ constructor(prefixProvider, gtinBaseLength) {
29
+ super(prefixProvider, prefixProvider.prefix, gtinBaseLength);
30
+ }
31
+ /**
32
+ * @inheritDoc
33
+ */
34
+ get prefix() {
35
+ return this.prefixProvider.prefix;
36
+ }
37
+ /**
38
+ * Create GTIN-14(s) with an indicator digit and reference(s) based on numeric value(s). The value(s) is/are
39
+ * converted to reference(s) of the appropriate length using {@linkcode NUMERIC_CREATOR}.
40
+ *
41
+ * @template TTransformerInput
42
+ * Transformer input type.
43
+ *
44
+ * @param indicatorDigit
45
+ * Indicator digit.
46
+ *
47
+ * @param valueOrValues
48
+ * Numeric value(s).
49
+ *
50
+ * @param sparse
51
+ * If true, the value(s) is/are mapped to a sparse sequence resistant to discovery. Default is false.
52
+ *
53
+ * @returns
54
+ * GTIN-14(s).
55
+ */
56
+ createGTIN14(indicatorDigit, valueOrValues, sparse = false) {
57
+ NUMERIC_CREATOR.validate(indicatorDigit, GTINCreator.#REQUIRED_INDICATOR_DIGIT_VALIDATION);
58
+ return NUMERIC_CREATOR.create(GTINLengths.GTIN13 - this.prefixProvider.gs1CompanyPrefix.length - 1, valueOrValues, Exclusions.None, sparse ? this.tweak : undefined, (reference) => {
59
+ const partialIdentifier = indicatorDigit + this.prefixProvider.gs1CompanyPrefix + reference;
60
+ return partialIdentifier + checkDigit(partialIdentifier);
61
+ });
62
+ }
63
+ }
64
+ //# sourceMappingURL=gtin-creator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gtin-creator.js","sourceRoot":"","sources":["../src/gtin-creator.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,UAAU,EACV,eAAe,EAGlB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,qCAAqC,EAAE,MAAM,0CAA0C,CAAC;AACjG,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAuB,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C;;GAEG;AACH,MAAM,OAAO,WAAY,SAAQ,qCAAqC,CAEpE,aAAa,CAAC;IACZ;;OAEG;IACH,MAAM,CAAU,oCAAoC,GAA2B;QAC3E,aAAa,EAAE,CAAC;QAChB,aAAa,EAAE,CAAC;QAChB,SAAS,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,2BAA2B,CAAC;KAC7D,CAAC;IAEF;;;;;;;;OAQG;IACH,YAAY,cAA8B,EAAE,cAA8B;QACtE,KAAK,CAAC,cAAc,EAAE,cAAc,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACjE,CAAC;IAED;;OAEG;IACH,IAAa,MAAM;QACf,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;IACtC,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,YAAY,CAA8D,cAAsB,EAAE,aAAgC,EAAE,MAAM,GAAG,KAAK;QAC9I,eAAe,CAAC,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC,oCAAoC,CAAC,CAAC;QAE3F,OAAO,eAAe,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,aAAa,EAAE,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,EAAE;YAC/K,MAAM,iBAAiB,GAAG,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,GAAG,SAAS,CAAC;YAE5F,OAAO,iBAAiB,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;IACP,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { GTINBaseLength } from "./gtin-length.js";
2
+ import type { GTINType } from "./gtin-type.js";
3
+ import type { LeaderTypes } from "./leader-type.js";
4
+ import type { NumericIdentifierDescriptor } from "./numeric-identifier-descriptor.js";
5
+ /**
6
+ * GTIN descriptor.
7
+ */
8
+ export interface GTINDescriptor extends NumericIdentifierDescriptor {
9
+ /**
10
+ * @inheritDoc
11
+ */
12
+ readonly identifierType: GTINType;
13
+ /**
14
+ * @inheritDoc
15
+ */
16
+ readonly length: GTINBaseLength;
17
+ /**
18
+ * @inheritDoc
19
+ */
20
+ readonly leaderType: typeof LeaderTypes.IndicatorDigit;
21
+ }
22
+ //# sourceMappingURL=gtin-descriptor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gtin-descriptor.d.ts","sourceRoot":"","sources":["../src/gtin-descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AAEtF;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,2BAA2B;IAC/D;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC;IAElC;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAEhC;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,OAAO,WAAW,CAAC,cAAc,CAAC;CAC1D"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=gtin-descriptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gtin-descriptor.js","sourceRoot":"","sources":["../src/gtin-descriptor.ts"],"names":[],"mappings":""}
@@ -0,0 +1,64 @@
1
+ import { type PrefixType } from "./prefix-type.js";
2
+ /**
3
+ * GTIN lengths. The numeric values are equal to the lengths of the GTINs.
4
+ */
5
+ export declare const GTINLengths: {
6
+ /**
7
+ * GTIN-13.
8
+ */
9
+ readonly GTIN13: 13;
10
+ /**
11
+ * GTIN-12.
12
+ */
13
+ readonly GTIN12: 12;
14
+ /**
15
+ * GTIN-8.
16
+ */
17
+ readonly GTIN8: 8;
18
+ /**
19
+ * GTIN-14.
20
+ */
21
+ readonly GTIN14: 14;
22
+ };
23
+ /**
24
+ * GTIN length key.
25
+ */
26
+ export type GTINLengthKey = keyof typeof GTINLengths;
27
+ /**
28
+ * GTIN length.
29
+ */
30
+ export type GTINLength = typeof GTINLengths[GTINLengthKey];
31
+ /**
32
+ * GTIN base lengths (all except GTIN-14).
33
+ */
34
+ export declare const GTINBaseLengths: Omit<{
35
+ /**
36
+ * GTIN-13.
37
+ */
38
+ readonly GTIN13: 13;
39
+ /**
40
+ * GTIN-12.
41
+ */
42
+ readonly GTIN12: 12;
43
+ /**
44
+ * GTIN-8.
45
+ */
46
+ readonly GTIN8: 8;
47
+ /**
48
+ * GTIN-14.
49
+ */
50
+ readonly GTIN14: 14;
51
+ }, "GTIN14">;
52
+ /**
53
+ * GTIN base length key.
54
+ */
55
+ export type GTINBaseLengthKey = keyof typeof GTINBaseLengths;
56
+ /**
57
+ * GTIN length.
58
+ */
59
+ export type GTINBaseLength = typeof GTINBaseLengths[GTINBaseLengthKey];
60
+ /**
61
+ * GTIN base lengths by prefix type. Used to determine the GTIN length supported by a prefix type.
62
+ */
63
+ export declare const GTIN_BASE_TYPES: Readonly<Record<PrefixType, GTINBaseLength>>;
64
+ //# sourceMappingURL=gtin-length.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gtin-length.d.ts","sourceRoot":"","sources":["../src/gtin-length.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,UAAU,EAAe,MAAM,kBAAkB,CAAC;AAEhE;;GAEG;AACH,eAAO,MAAM,WAAW;IACpB;;OAEG;;IAGH;;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;AAE3D;;GAEG;AACH,eAAO,MAAM,eAAe;IAlCxB;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;YAiBmD,CAAC;AAE3D;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,eAAe,CAAC;AAE7D;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,eAAe,CAAC,iBAAiB,CAAC,CAAC;AAEvE;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,cAAc,CAAC,CAIxE,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { omit } from "@aidc-toolkit/core";
2
+ import { PrefixTypes } from "./prefix-type.js";
3
+ /**
4
+ * GTIN lengths. The numeric values are equal to the lengths of the GTINs.
5
+ */
6
+ export const GTINLengths = {
7
+ /**
8
+ * GTIN-13.
9
+ */
10
+ GTIN13: 13,
11
+ /**
12
+ * GTIN-12.
13
+ */
14
+ GTIN12: 12,
15
+ /**
16
+ * GTIN-8.
17
+ */
18
+ GTIN8: 8,
19
+ /**
20
+ * GTIN-14.
21
+ */
22
+ GTIN14: 14
23
+ };
24
+ /**
25
+ * GTIN base lengths (all except GTIN-14).
26
+ */
27
+ export const GTINBaseLengths = omit(GTINLengths, "GTIN14");
28
+ /**
29
+ * GTIN base lengths by prefix type. Used to determine the GTIN length supported by a prefix type.
30
+ */
31
+ export const GTIN_BASE_TYPES = {
32
+ [PrefixTypes.GS1CompanyPrefix]: GTINLengths.GTIN13,
33
+ [PrefixTypes.UPCCompanyPrefix]: GTINLengths.GTIN12,
34
+ [PrefixTypes.GS18Prefix]: GTINLengths.GTIN8
35
+ };
36
+ //# sourceMappingURL=gtin-length.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gtin-length.js","sourceRoot":"","sources":["../src/gtin-length.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAmB,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEhE;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACvB;;OAEG;IACH,MAAM,EAAE,EAAE;IAEV;;OAEG;IACH,MAAM,EAAE,EAAE;IAEV;;OAEG;IACH,KAAK,EAAE,CAAC;IAER;;OAEG;IACH,MAAM,EAAE,EAAE;CACJ,CAAC;AAYX;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AAY3D;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAiD;IACzE,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,WAAW,CAAC,MAAM;IAClD,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,WAAW,CAAC,MAAM;IAClD,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC,KAAK;CAC9C,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * GTIN types.
3
+ */
4
+ export declare const GTINTypes: Pick<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">, "GTIN">;
18
+ /**
19
+ * GTIN type key.
20
+ */
21
+ export type GTINTypeKey = keyof typeof GTINTypes;
22
+ /**
23
+ * GTIN type.
24
+ */
25
+ export type GTINType = typeof GTINTypes[GTINTypeKey];
26
+ //# sourceMappingURL=gtin-type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gtin-type.d.ts","sourceRoot":"","sources":["../src/gtin-type.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;gFAErB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,SAAS,CAAC;AAEjD;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,SAAS,CAAC,WAAW,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { pick } from "@aidc-toolkit/core";
2
+ import { NumericIdentifierTypes } from "./numeric-identifier-type.js";
3
+ /**
4
+ * GTIN types.
5
+ */
6
+ export const GTINTypes = pick(NumericIdentifierTypes, NumericIdentifierTypes.GTIN);
7
+ //# sourceMappingURL=gtin-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gtin-type.js","sourceRoot":"","sources":["../src/gtin-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAEtE;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC,sBAAsB,EAChD,sBAAsB,CAAC,IAAI,CAC9B,CAAC"}
@@ -0,0 +1,132 @@
1
+ import type { GTINDescriptor } from "./gtin-descriptor.js";
2
+ import { type GTINBaseLength } from "./gtin-length.js";
3
+ import type { GTINType } from "./gtin-type.js";
4
+ import { NumericIdentifierValidator } from "./numeric-identifier-validator.js";
5
+ import { type PrefixType } from "./prefix-type.js";
6
+ /**
7
+ * Levels at which GTIN is to be validated.
8
+ */
9
+ export declare const GTINLevels: {
10
+ /**
11
+ * Any level (level is ignored).
12
+ */
13
+ readonly Any: 0;
14
+ /**
15
+ * Retail consumer trade item level, supporting GTIN-13, GTIN-12 (optionally zero-suppressed), and GTIN-8.
16
+ */
17
+ readonly RetailConsumer: 1;
18
+ /**
19
+ * Other than retail consumer trade item level, supporting GTIN-13, GTIN-12 (not zero-suppressed), and GTIN-14.
20
+ */
21
+ readonly OtherThanRetailConsumer: 2;
22
+ };
23
+ /**
24
+ * GTIN level key.
25
+ */
26
+ export type GTINLevelKey = keyof typeof GTINLevels;
27
+ /**
28
+ * GTIN level.
29
+ */
30
+ export type GTINLevel = typeof GTINLevels[GTINLevelKey];
31
+ /**
32
+ * GTIN validator.
33
+ */
34
+ export declare class GTINValidator extends NumericIdentifierValidator<GTINType> implements GTINDescriptor {
35
+ #private;
36
+ /**
37
+ * Constructor.
38
+ *
39
+ * @param gtinBaseLength
40
+ * GTIN base length (all except GTIN-14).
41
+ */
42
+ constructor(gtinBaseLength: GTINBaseLength);
43
+ /**
44
+ * @inheritDoc
45
+ */
46
+ get prefixType(): PrefixType;
47
+ /**
48
+ * @inheritDoc
49
+ */
50
+ protected validatePrefix(partialIdentifier: string): void;
51
+ /**
52
+ * Zero suppress a GTIN-12.
53
+ *
54
+ * @param gtin12
55
+ * GTIN-12.
56
+ *
57
+ * @returns
58
+ * Zero-suppressed GTIN-12.
59
+ */
60
+ static zeroSuppress(gtin12: string): string;
61
+ /**
62
+ * Zero expand a zero-suppressed GTIN-12.
63
+ *
64
+ * @param zeroSuppressedGTIN12
65
+ * Zero-suppressed GTIN-12.
66
+ *
67
+ * @returns
68
+ * GTIN-12.
69
+ */
70
+ static zeroExpand(zeroSuppressedGTIN12: string): string;
71
+ /**
72
+ * Convert a GTIN of any length to a GTIN-14 with an optional indicator digit.
73
+ *
74
+ * @param indicatorDigit
75
+ * Indicator digit. If blank, assumes "0" if the GTIN is not already a GTIN-14.
76
+ *
77
+ * @param gtin
78
+ * GTIN.
79
+ *
80
+ * @returns
81
+ * GTIN-14.
82
+ */
83
+ static convertToGTIN14(indicatorDigit: string, gtin: string): string;
84
+ /**
85
+ * Normalize a GTIN of any length.
86
+ * - A GTIN-14 that starts with six zeros or a GTIN-13 that starts with five zeros is normalized to GTIN-8.
87
+ * - A GTIN-14 that starts with two zeros or a GTIN-13 that starts with one zero is normalized to GTIN-12.
88
+ * - A GTIN-14 that starts with one zero is normalized to GTIN-13.
89
+ * - Otherwise, the GTIN is unchanged.
90
+ *
91
+ * @param gtin
92
+ * GTIN.
93
+ *
94
+ * @returns
95
+ * Normalized GTIN.
96
+ */
97
+ static normalize(gtin: string): string;
98
+ /**
99
+ * Validate any GTIN, optionally against a level.
100
+ *
101
+ * @param gtin
102
+ * GTIN.
103
+ *
104
+ * @param gtinLevel
105
+ * Level at which GTIN is to be validated.
106
+ */
107
+ static validateAny(gtin: string, gtinLevel?: GTINLevel): void;
108
+ /**
109
+ * Validate a GTIN-14.
110
+ *
111
+ * @param gtin14
112
+ * GTIN-14.
113
+ */
114
+ static validateGTIN14(gtin14: string): void;
115
+ }
116
+ /**
117
+ * GTIN-13 validator.
118
+ */
119
+ export declare const GTIN13_VALIDATOR: GTINValidator;
120
+ /**
121
+ * GTIN-12 validator.
122
+ */
123
+ export declare const GTIN12_VALIDATOR: GTINValidator;
124
+ /**
125
+ * GTIN-8 validator.
126
+ */
127
+ export declare const GTIN8_VALIDATOR: GTINValidator;
128
+ /**
129
+ * GTIN validators indexed by prefix type.
130
+ */
131
+ export declare const GTIN_VALIDATORS: Readonly<Record<GTINBaseLength, GTINValidator>>;
132
+ //# sourceMappingURL=gtin-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gtin-validator.d.ts","sourceRoot":"","sources":["../src/gtin-validator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,KAAK,cAAc,EAAe,MAAM,kBAAkB,CAAC;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG/C,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,KAAK,UAAU,EAAe,MAAM,kBAAkB,CAAC;AAGhE;;GAEG;AACH,eAAO,MAAM,UAAU;IACnB;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;CAEG,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,OAAO,UAAU,CAAC;AAEnD;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,UAAU,CAAC,YAAY,CAAC,CAAC;AAExD;;GAEG;AACH,qBAAa,aAAc,SAAQ,0BAA0B,CAAC,QAAQ,CAAE,YAAW,cAAc;;IA6B7F;;;;;OAKG;gBACS,cAAc,EAAE,cAAc;IAQ1C;;OAEG;IACH,IAAa,UAAU,IAAI,UAAU,CAEpC;IAED;;OAEG;cACgB,cAAc,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI;IAKlE;;;;;;;;OAQG;IACH,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IA4B3C;;;;;;;;OAQG;IACH,MAAM,CAAC,UAAU,CAAC,oBAAoB,EAAE,MAAM,GAAG,MAAM;IA+BvD;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,eAAe,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IAgBpE;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAgEtC;;;;;;;;OAQG;IACH,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,GAAE,SAA0B,GAAG,IAAI;IAkE7E;;;;;OAKG;IACH,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAO9C;AAED;;GAEG;AAEH,eAAO,MAAM,gBAAgB,eAAwC,CAAC;AAEtE;;GAEG;AAEH,eAAO,MAAM,gBAAgB,eAAwC,CAAC;AAEtE;;GAEG;AAEH,eAAO,MAAM,eAAe,eAAuC,CAAC;AAEpE;;GAEG;AAEH,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,aAAa,CAAC,CAI3E,CAAC"}