@aidc-toolkit/gs1 0.9.18-beta → 0.9.20-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.
package/README.md CHANGED
@@ -2,25 +2,52 @@
2
2
 
3
3
  **Copyright © 2024-2025 Dolphin Data Development Ltd. and AIDC Toolkit contributors**
4
4
 
5
- Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the
6
- License. You may obtain a copy of the License at
5
+ Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
7
6
 
8
- https://www.apache.org/licenses/LICENSE-2.0
7
+ https://www.apache.org/licenses/LICENSE-2.0
9
8
 
10
- Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
11
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
9
+ Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
12
10
 
13
11
  ## Overview
14
12
 
15
- ⚠️ **This software is in beta**, with production release is scheduled for 2024Q4. To follow the status of that and other
16
- projects, go to the AIDC Toolkit [projects](https://github.com/orgs/aidc-toolkit/projects) page.
13
+ > [!WARNING]
14
+ >
15
+ > **This software is in beta**, with production release is scheduled for 2025Q4. To follow the status of this and other projects, go to the AIDC Toolkit [projects](https://github.com/orgs/aidc-toolkit/projects) page.
17
16
 
18
- The AIDC Toolkit `gs1` package provides functionality related to the GS1 identification system:
17
+ The AIDC Toolkit `gs1` package provides functionality related to the GS1 identification system. It builds on the `utility` package, providing validation and creation functions customized for GS1 identification keys (e.g., including check digit validation and creation). All logic in this package is as defined in the [GS1 General Specifications](https://www.gs1.org/genspecs).
19
18
 
20
- - Check digit calculation and validation for GS1 identification keys and price/weight encoding
21
- - Check character pair calculation and validation for GS1 identification keys
22
- - GS1 identification key validation
23
- - GS1 identification key creation
19
+ ## Check calculation and validation functions
24
20
 
25
- A comprehensive overview of this package may be found in the [AIDC Toolkit
26
- documentation](https://aidc-toolkit.github.io).
21
+ The check calculation and validation functions are separate from the string validation and creation functions so that they may be used in other contexts. All the check calculation functions defined in the GS1 General Specifications are implemented.
22
+
23
+ ### Check digit - GS1 identification key
24
+
25
+ The [`checkDigit`](https://aidc-toolkit.com/api/GS1/functions/checkDigit.html) function calculates the check digit for a numeric GS1 identification key.
26
+
27
+ The [`hasValidCheckDigit`](https://aidc-toolkit.com/api/GS1/functions/hasValidCheckDigit.html) function validates the check digit for a numeric GS1 identification key.
28
+
29
+ ### Check digit - price or weight encoding
30
+
31
+ The [`priceOrWeightCheckDigit`](https://aidc-toolkit.com/api/GS1/functions/priceOrWeightCheckDigit.html) function calculates the check digit for a price or weight.
32
+
33
+ The [`isValidPriceOrWeightCheckDigit`](https://aidc-toolkit.com/api/GS1/functions/isValidPriceOrWeightCheckDigit.html) function validates the check digit for a price or weight.
34
+
35
+ These functions are seldom used directly, as there are no use cases for prices or weights on their own. They are used by the variable measure RCN functions if the RCN format requires a price or weight check digit.
36
+
37
+ ### Check character pair - GS1 identification key
38
+
39
+ The [`checkCharacterPair`](https://aidc-toolkit.com/api/GS1/functions/checkCharacterPair.html) function calculates the check character pair for a non-numeric GS1 identification key, if supported.
40
+
41
+ The [`hasValidCheckCharacterPair`](https://aidc-toolkit.com/api/GS1/functions/hasValidCheckCharacterPair.html) function validates the check character pair for a non-numeric GS1 identification key, if supported.
42
+
43
+ ## GS1 identification keys
44
+
45
+ At the core of the AIDC Toolkit `gs1` package is GS1 identification key validation and creation. All GS1 identification key types are supported. A working knowledge of the [GS1 General Specifications](https://www.gs1.org/genspecs) is highly recommended.
46
+
47
+ ### Prefix manager
48
+
49
+ #### Prefix type
50
+
51
+ ### GS1 identification key validation
52
+
53
+ ### GS1 identification key creation
package/dist/check.d.ts CHANGED
@@ -34,7 +34,7 @@ export declare function checkDigit(s: string): string;
34
34
  */
35
35
  export declare function hasValidCheckDigit(s: string): boolean;
36
36
  /**
37
- * Calculate the price/weight check digit for a four-or five-digit numeric string as per section 7.9.3 of the {@link
37
+ * Calculate the price or weight check digit for a four-or five-digit numeric string as per section 7.9.3 of the {@link
38
38
  * https://www.gs1.org/genspecs | GS1 General Specifications}.
39
39
  *
40
40
  * @param s
@@ -43,17 +43,20 @@ export declare function hasValidCheckDigit(s: string): boolean;
43
43
  * @returns
44
44
  * Check digit 0-9 as a string.
45
45
  */
46
- export declare function priceWeightCheckDigit(s: string): string;
46
+ export declare function priceOrWeightCheckDigit(s: string): string;
47
47
  /**
48
- * Determine if a numeric string has a valid price/weight check digit.
48
+ * Determine if a price or weight check digit is valid for numeric string.
49
49
  *
50
50
  * @param s
51
- * Numeric string exactly five or six characters long.
51
+ * Numeric string exactly four or five characters long.
52
+ *
53
+ * @param checkDigit
54
+ * Price or weight check digit.
52
55
  *
53
56
  * @returns
54
57
  * True if the check digit is valid.
55
58
  */
56
- export declare function hasValidPriceWeightCheckDigit(s: string): boolean;
59
+ export declare function isValidPriceOrWeightCheckDigit(s: string, checkDigit: string): boolean;
57
60
  /**
58
61
  * Calculate the check character for a GS1 AI encodable character set 82 string as per section 7.9.5 of the {@link
59
62
  * https://www.gs1.org/genspecs | GS1 General Specifications}.
@@ -1 +1 @@
1
- {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../src/check.ts"],"names":[],"mappings":"AAuCA;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,eAAe,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAkBzE;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAG5C;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAGrD;AA+BD;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAmBvD;AAED;;;;;;;;GAQG;AACH,wBAAgB,6BAA6B,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAIhE;AAiBD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CA4BpD;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAI7D"}
1
+ {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../src/check.ts"],"names":[],"mappings":"AAuCA;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,eAAe,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAkBzE;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAG5C;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAGrD;AA+BD;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAmBzD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,8BAA8B,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAErF;AAiBD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CA4BpD;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAI7D"}
package/dist/check.js CHANGED
@@ -88,7 +88,7 @@ export function hasValidCheckDigit(s) {
88
88
  return checkDigitSum(true, s) % 10 === 0;
89
89
  }
90
90
  /**
91
- * Calculate the price/weight sum for a numeric string.
91
+ * Calculate the price or weight sum for a numeric string.
92
92
  *
93
93
  * @param weightsResults
94
94
  * Array of weight results arrays to apply to each digit.
@@ -99,7 +99,7 @@ export function hasValidCheckDigit(s) {
99
99
  * @returns
100
100
  * Accumulated sum of the weight result for each digit at the digit's position.
101
101
  */
102
- function priceWeightSum(weightsResults, s) {
102
+ function priceOrWeightSum(weightsResults, s) {
103
103
  // Calculate sum of each weight result for each digit at its position.
104
104
  return NUMERIC_CREATOR.characterIndexes(s).reduce((accumulator, characterIndex, index) => {
105
105
  if (characterIndex === undefined) {
@@ -115,7 +115,7 @@ function priceWeightSum(weightsResults, s) {
115
115
  }, 0);
116
116
  }
117
117
  /**
118
- * Calculate the price/weight check digit for a four-or five-digit numeric string as per section 7.9.3 of the {@link
118
+ * Calculate the price or weight check digit for a four-or five-digit numeric string as per section 7.9.3 of the {@link
119
119
  * https://www.gs1.org/genspecs | GS1 General Specifications}.
120
120
  *
121
121
  * @param s
@@ -124,14 +124,14 @@ function priceWeightSum(weightsResults, s) {
124
124
  * @returns
125
125
  * Check digit 0-9 as a string.
126
126
  */
127
- export function priceWeightCheckDigit(s) {
127
+ export function priceOrWeightCheckDigit(s) {
128
128
  let checkDigit;
129
129
  switch (s.length) {
130
130
  case 4:
131
- checkDigit = NUMERIC_CREATOR.character(priceWeightSum([TWO_MINUS_WEIGHT_RESULTS, TWO_MINUS_WEIGHT_RESULTS, THREE_WEIGHT_RESULTS, FIVE_MINUS_WEIGHT_RESULTS], s) * 3 % 10);
131
+ checkDigit = NUMERIC_CREATOR.character(priceOrWeightSum([TWO_MINUS_WEIGHT_RESULTS, TWO_MINUS_WEIGHT_RESULTS, THREE_WEIGHT_RESULTS, FIVE_MINUS_WEIGHT_RESULTS], s) * 3 % 10);
132
132
  break;
133
133
  case 5:
134
- checkDigit = NUMERIC_CREATOR.character(INVERSE_FIVE_MINUS_WEIGHT_RESULTS[9 - (priceWeightSum([FIVE_PLUS_WEIGHT_RESULTS, TWO_MINUS_WEIGHT_RESULTS, FIVE_MINUS_WEIGHT_RESULTS, FIVE_PLUS_WEIGHT_RESULTS, TWO_MINUS_WEIGHT_RESULTS], s) + 9) % 10]);
134
+ checkDigit = NUMERIC_CREATOR.character(INVERSE_FIVE_MINUS_WEIGHT_RESULTS[9 - (priceOrWeightSum([FIVE_PLUS_WEIGHT_RESULTS, TWO_MINUS_WEIGHT_RESULTS, FIVE_MINUS_WEIGHT_RESULTS, FIVE_PLUS_WEIGHT_RESULTS, TWO_MINUS_WEIGHT_RESULTS], s) + 9) % 10]);
135
135
  break;
136
136
  default:
137
137
  throw new RangeError(i18nextGS1.t("Check.lengthOfStringForPriceOrWeightMustBeExactly", {
@@ -141,17 +141,19 @@ export function priceWeightCheckDigit(s) {
141
141
  return checkDigit;
142
142
  }
143
143
  /**
144
- * Determine if a numeric string has a valid price/weight check digit.
144
+ * Determine if a price or weight check digit is valid for numeric string.
145
145
  *
146
146
  * @param s
147
- * Numeric string exactly five or six characters long.
147
+ * Numeric string exactly four or five characters long.
148
+ *
149
+ * @param checkDigit
150
+ * Price or weight check digit.
148
151
  *
149
152
  * @returns
150
153
  * True if the check digit is valid.
151
154
  */
152
- export function hasValidPriceWeightCheckDigit(s) {
153
- const priceWeightCheckDigitIndex = s.length - 1;
154
- return priceWeightCheckDigit(s.substring(0, priceWeightCheckDigitIndex)) === s.charAt(priceWeightCheckDigitIndex);
155
+ export function isValidPriceOrWeightCheckDigit(s, checkDigit) {
156
+ return priceOrWeightCheckDigit(s) === checkDigit;
155
157
  }
156
158
  /**
157
159
  * Weights for check character pair calculation.
package/dist/check.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"check.js","sourceRoot":"","sources":["../src/check.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"check.js","sourceRoot":"","sources":["../src/check.ts"],"names":[],"mappings":"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"}
package/dist/idkey.d.ts CHANGED
@@ -338,6 +338,19 @@ export declare enum GTINLevel {
338
338
  */
339
339
  OtherThanRetailConsumer = 2
340
340
  }
341
+ /**
342
+ * Restricted Circulation Number reference.
343
+ */
344
+ export interface RCNReference {
345
+ /**
346
+ * Item reference.
347
+ */
348
+ itemReference: number;
349
+ /**
350
+ * Price or weight (whole number only).
351
+ */
352
+ priceOrWeight: number;
353
+ }
341
354
  /**
342
355
  * GTIN validator.
343
356
  */
@@ -429,6 +442,38 @@ export declare class GTINValidator extends AbstractNumericIdentificationKeyValid
429
442
  * GTIN-14.
430
443
  */
431
444
  static validateGTIN14(gtin14: string): void;
445
+ /**
446
+ * Parse a Restricted Circulation Number (RCN) using a variable measure trade item format. The format is a 12- or
447
+ * 13-character string (for RCN-12 or RCN-13 respectively), containing the following:
448
+ *
449
+ * - '2' - The first character of the RCN.
450
+ * - '0'-'9' - The second character of the RCN (RCN-13 only).
451
+ * - 'I' - One or more, in sequence, for the item reference.
452
+ * - 'P' - One or more, in sequence, for the price or weight.
453
+ * - 'V' - Zero or one, for the price or weight check digit.
454
+ * - 'C' - The check digit of the entire RCN.
455
+ *
456
+ * The 'I', 'P', and 'V' formats may be in any order.
457
+ *
458
+ * Some examples:
459
+ *
460
+ * - 2IIIIIVPPPPC - RCN-12 with a five-digit item reference, a price or weight check digit, and a four-digit price
461
+ * or weight.
462
+ * - 23IIIIVPPPPPC - RCN-13 with a four-digit item reference, a price or weight check digit, and a five-digit price
463
+ * or weight.
464
+ * - 2IIIIIIPPPPC - RCN-12 with a six-digit item reference and a four-digit price or eight.
465
+ * - 29IIIIIPPPPPC - RCN-13 with a five-digit item reference and a five-digit price or weight.
466
+ *
467
+ * @param format
468
+ * Format.
469
+ *
470
+ * @param rcn
471
+ * RCN.
472
+ *
473
+ * @returns
474
+ * RCN reference.
475
+ */
476
+ static parseVariableMeasureRCN(format: string, rcn: string): RCNReference;
432
477
  }
433
478
  /**
434
479
  * Non-GTIN numeric identification key validator.
@@ -724,7 +769,8 @@ export interface NumericIdentificationKeyCreator extends NumericIdentificationKe
724
769
  createAll: () => Iterable<string>;
725
770
  }
726
771
  /**
727
- * Abstract numeric identification key creator. Implements common functionality for a numeric identification key creator.
772
+ * Abstract numeric identification key creator. Implements common functionality for a numeric identification key
773
+ * creator.
728
774
  */
729
775
  declare abstract class AbstractNumericIdentificationKeyCreator extends AbstractIdentificationKeyCreator implements NumericIdentificationKeyCreator {
730
776
  /**
@@ -844,6 +890,23 @@ export declare class GTINCreator extends GTINCreator_base {
844
890
  * GTIN-14(s).
845
891
  */
846
892
  createGTIN14<TTransformerInput extends TransformerInput<number | bigint>>(indicatorDigit: string, valueOrValues: TTransformerInput, sparse?: boolean): TransformerOutput<TTransformerInput, string>;
893
+ /**
894
+ * Create a Restricted Circulation Number (RCN) using a variable measure trade item format. See {@linkcode
895
+ * GTINValidator.parseVariableMeasureRCN} for format details.
896
+ *
897
+ * @param format
898
+ * Format.
899
+ *
900
+ * @param itemReference
901
+ * Item reference.
902
+ *
903
+ * @param priceOrWeight
904
+ * Price or weight (whole number only).
905
+ *
906
+ * @returns
907
+ * RCN-12 or RCN-13.
908
+ */
909
+ static createVariableMeasureRCN(format: string, itemReference: number, priceOrWeight: number): string;
847
910
  }
848
911
  declare const NonGTINNumericIdentificationKeyCreator_base: import("ts-mixer/dist/types/types.js").Class<any[], NonGTINNumericIdentificationKeyValidator & AbstractNumericIdentificationKeyCreator, typeof NonGTINNumericIdentificationKeyValidator & typeof AbstractNumericIdentificationKeyCreator>;
849
912
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"idkey.d.ts","sourceRoot":"","sources":["../src/idkey.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"idkey.d.ts","sourceRoot":"","sources":["../src/idkey.ts"],"names":[],"mappings":"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"}
package/dist/idkey.js CHANGED
@@ -1,7 +1,7 @@
1
- import { CharacterSetCreator, Exclusion, NUMERIC_CREATOR, RegExpValidator, mapIterable } from "@aidc-toolkit/utility";
1
+ import { CharacterSetCreator, Exclusion, mapIterable, NUMERIC_CREATOR, RegExpValidator } from "@aidc-toolkit/utility";
2
2
  import { Mixin } from "ts-mixer";
3
3
  import { AI39_CREATOR, AI82_CREATOR } from "./character-set.js";
4
- import { checkCharacterPair, checkDigit, checkDigitSum, hasValidCheckCharacterPair, hasValidCheckDigit } from "./check.js";
4
+ import { checkCharacterPair, checkDigit, checkDigitSum, hasValidCheckCharacterPair, hasValidCheckDigit, isValidPriceOrWeightCheckDigit, priceOrWeightCheckDigit } from "./check.js";
5
5
  import { i18nextGS1 } from "./locale/i18n.js";
6
6
  /**
7
7
  * Identification key type.
@@ -480,9 +480,8 @@ export class GTINValidator extends AbstractNumericIdentificationKeyValidator {
480
480
  static convertToGTIN14(indicatorDigit, gtin) {
481
481
  GTINCreator.validateAny(gtin);
482
482
  NUMERIC_CREATOR.validate(indicatorDigit, GTINValidator.OPTIONAL_INDICATOR_DIGIT_VALIDATION);
483
- const gtinLength = gtin.length;
484
483
  // Check digit doesn't change by prepending zeros.
485
- let gtin14 = "0".repeat(GTINType.GTIN14 - gtinLength) + gtin;
484
+ let gtin14 = gtin.padStart(GTINType.GTIN14, "0");
486
485
  // If indicator digit provided and is different, recalculate the check digit.
487
486
  if (indicatorDigit.length !== 0 && indicatorDigit !== gtin14.charAt(0)) {
488
487
  const partialGTIN14 = indicatorDigit + gtin14.substring(1, GTINType.GTIN14 - 1);
@@ -633,6 +632,114 @@ export class GTINValidator extends AbstractNumericIdentificationKeyValidator {
633
632
  }
634
633
  GTINCreator.validateAny(gtin14);
635
634
  }
635
+ /**
636
+ * Parse a Restricted Circulation Number (RCN) using a variable measure trade item format. The format is a 12- or
637
+ * 13-character string (for RCN-12 or RCN-13 respectively), containing the following:
638
+ *
639
+ * - '2' - The first character of the RCN.
640
+ * - '0'-'9' - The second character of the RCN (RCN-13 only).
641
+ * - 'I' - One or more, in sequence, for the item reference.
642
+ * - 'P' - One or more, in sequence, for the price or weight.
643
+ * - 'V' - Zero or one, for the price or weight check digit.
644
+ * - 'C' - The check digit of the entire RCN.
645
+ *
646
+ * The 'I', 'P', and 'V' formats may be in any order.
647
+ *
648
+ * Some examples:
649
+ *
650
+ * - 2IIIIIVPPPPC - RCN-12 with a five-digit item reference, a price or weight check digit, and a four-digit price
651
+ * or weight.
652
+ * - 23IIIIVPPPPPC - RCN-13 with a four-digit item reference, a price or weight check digit, and a five-digit price
653
+ * or weight.
654
+ * - 2IIIIIIPPPPC - RCN-12 with a six-digit item reference and a four-digit price or eight.
655
+ * - 29IIIIIPPPPPC - RCN-13 with a five-digit item reference and a five-digit price or weight.
656
+ *
657
+ * @param format
658
+ * Format.
659
+ *
660
+ * @param rcn
661
+ * RCN.
662
+ *
663
+ * @returns
664
+ * RCN reference.
665
+ */
666
+ static parseVariableMeasureRCN(format, rcn) {
667
+ const formatLength = format.length;
668
+ if (rcn.length !== formatLength) {
669
+ throw new RangeError(i18nextGS1.t("IdentificationKey.invalidRCNLength"));
670
+ }
671
+ let validFormat = formatLength === 12 || formatLength === 13;
672
+ let validRCNPrefix = true;
673
+ let buildingItemReference = false;
674
+ let itemReference = "";
675
+ let buildingPriceOrWeight = false;
676
+ let priceOrWeight = "";
677
+ let priceOrWeightCheckDigit = "";
678
+ for (let index = 0; validFormat && index < formatLength; index++) {
679
+ const formatChar = format.charAt(index);
680
+ const rcnChar = rcn.charAt(index);
681
+ if (index === 0) {
682
+ validFormat = formatChar === "2";
683
+ validRCNPrefix = rcnChar === "2";
684
+ }
685
+ else if (formatLength === 13 && index === 1) {
686
+ validFormat = NUMERIC_CREATOR.characterIndex(formatChar) !== undefined;
687
+ validRCNPrefix = rcnChar === formatChar;
688
+ }
689
+ else if (index === formatLength - 1) {
690
+ validFormat = formatChar === "C";
691
+ }
692
+ else {
693
+ switch (formatChar) {
694
+ case "I":
695
+ if (!buildingItemReference) {
696
+ // Item reference can't appear more than once.
697
+ validFormat = itemReference === "";
698
+ buildingItemReference = true;
699
+ buildingPriceOrWeight = false;
700
+ }
701
+ itemReference += rcnChar;
702
+ break;
703
+ case "P":
704
+ if (!buildingPriceOrWeight) {
705
+ // Price or weight can't appear more than once.
706
+ validFormat = priceOrWeight === "";
707
+ buildingPriceOrWeight = true;
708
+ buildingItemReference = false;
709
+ }
710
+ priceOrWeight += rcnChar;
711
+ break;
712
+ case "V":
713
+ // Price or weight check digit can't appear more than once.
714
+ validFormat = priceOrWeightCheckDigit === "";
715
+ buildingItemReference = false;
716
+ buildingPriceOrWeight = false;
717
+ priceOrWeightCheckDigit = rcnChar;
718
+ break;
719
+ default:
720
+ validFormat = false;
721
+ break;
722
+ }
723
+ }
724
+ }
725
+ validFormat &&= itemReference !== "" && priceOrWeight !== "";
726
+ if (!validFormat) {
727
+ throw new RangeError(i18nextGS1.t("IdentificationKey.invalidVariableMeasureRCNFormat"));
728
+ }
729
+ if (!validRCNPrefix) {
730
+ throw new RangeError(i18nextGS1.t("IdentificationKey.invalidVariableMeasureRCNPrefix"));
731
+ }
732
+ if (priceOrWeightCheckDigit !== "" && !isValidPriceOrWeightCheckDigit(priceOrWeight, priceOrWeightCheckDigit)) {
733
+ throw new RangeError(i18nextGS1.t("IdentificationKey.invalidVariableMeasurePriceOrWeight"));
734
+ }
735
+ if (!hasValidCheckDigit(rcn)) {
736
+ throw new RangeError(i18nextGS1.t("IdentificationKey.invalidCheckDigit"));
737
+ }
738
+ return {
739
+ itemReference: Number(itemReference),
740
+ priceOrWeight: Number(priceOrWeight)
741
+ };
742
+ }
636
743
  }
637
744
  /**
638
745
  * Non-GTIN numeric identification key validator.
@@ -919,7 +1026,8 @@ class AbstractIdentificationKeyCreator {
919
1026
  }
920
1027
  }
921
1028
  /**
922
- * Abstract numeric identification key creator. Implements common functionality for a numeric identification key creator.
1029
+ * Abstract numeric identification key creator. Implements common functionality for a numeric identification key
1030
+ * creator.
923
1031
  */
924
1032
  class AbstractNumericIdentificationKeyCreator extends AbstractIdentificationKeyCreator {
925
1033
  /**
@@ -1104,6 +1212,98 @@ export class GTINCreator extends Mixin(GTINValidator, AbstractNumericIdentificat
1104
1212
  return partialIdentificationKey + checkDigit(partialIdentificationKey);
1105
1213
  });
1106
1214
  }
1215
+ /**
1216
+ * Create a Restricted Circulation Number (RCN) using a variable measure trade item format. See {@linkcode
1217
+ * GTINValidator.parseVariableMeasureRCN} for format details.
1218
+ *
1219
+ * @param format
1220
+ * Format.
1221
+ *
1222
+ * @param itemReference
1223
+ * Item reference.
1224
+ *
1225
+ * @param priceOrWeight
1226
+ * Price or weight (whole number only).
1227
+ *
1228
+ * @returns
1229
+ * RCN-12 or RCN-13.
1230
+ */
1231
+ static createVariableMeasureRCN(format, itemReference, priceOrWeight) {
1232
+ const formatLength = format.length;
1233
+ let validFormat = formatLength === 12 || formatLength === 13;
1234
+ let rcnPrefix = "";
1235
+ let buildingItemReference = false;
1236
+ let itemReferenceString = "";
1237
+ let itemReferenceLength = 0;
1238
+ let buildingPriceOrWeight = false;
1239
+ let priceOrWeightString = "";
1240
+ let priceOrWeightLength = 0;
1241
+ let calculatePriceOrWeightCheckDigit = false;
1242
+ // RCN may be built in almost any order, so defer to builders that will be in ordered array.
1243
+ const rcnPrefixBuilder = (partialRCN) => partialRCN + rcnPrefix;
1244
+ const itemReferenceBuilder = (partialRCN) => partialRCN + itemReferenceString;
1245
+ const priceOrWeightBuilder = (partialRCN) => partialRCN + priceOrWeightString;
1246
+ const priceOrWeightCheckDigitBuilder = (partialRCN) => partialRCN + priceOrWeightCheckDigit(priceOrWeightString);
1247
+ const checkDigitBuilder = (partialRCN) => partialRCN + checkDigit(partialRCN);
1248
+ const rcnBuilders = [rcnPrefixBuilder];
1249
+ for (let index = 0; validFormat && index < formatLength; index++) {
1250
+ const formatChar = format.charAt(index);
1251
+ if (index === 0) {
1252
+ validFormat = formatChar === "2";
1253
+ rcnPrefix = formatChar;
1254
+ }
1255
+ else if (formatLength === 13 && index === 1) {
1256
+ validFormat = NUMERIC_CREATOR.characterIndex(formatChar) !== undefined;
1257
+ rcnPrefix += formatChar;
1258
+ }
1259
+ else if (index === formatLength - 1) {
1260
+ validFormat = formatChar === "C";
1261
+ }
1262
+ else {
1263
+ switch (formatChar) {
1264
+ case "I":
1265
+ if (!buildingItemReference) {
1266
+ // Item reference can't appear more than once.
1267
+ validFormat = itemReferenceLength === 0;
1268
+ buildingItemReference = true;
1269
+ buildingPriceOrWeight = false;
1270
+ rcnBuilders.push(itemReferenceBuilder);
1271
+ }
1272
+ itemReferenceLength++;
1273
+ break;
1274
+ case "P":
1275
+ if (!buildingPriceOrWeight) {
1276
+ // Price or weight can't appear more than once.
1277
+ validFormat = priceOrWeightLength === 0;
1278
+ buildingPriceOrWeight = true;
1279
+ buildingItemReference = false;
1280
+ rcnBuilders.push(priceOrWeightBuilder);
1281
+ }
1282
+ priceOrWeightLength++;
1283
+ break;
1284
+ case "V":
1285
+ // Price or weight check digit can't appear more than once.
1286
+ validFormat = !calculatePriceOrWeightCheckDigit;
1287
+ buildingItemReference = false;
1288
+ buildingPriceOrWeight = false;
1289
+ calculatePriceOrWeightCheckDigit = true;
1290
+ rcnBuilders.push(priceOrWeightCheckDigitBuilder);
1291
+ break;
1292
+ default:
1293
+ validFormat = false;
1294
+ break;
1295
+ }
1296
+ }
1297
+ }
1298
+ validFormat &&= itemReferenceLength !== 0 && priceOrWeightLength !== 0;
1299
+ if (!validFormat) {
1300
+ throw new RangeError(i18nextGS1.t("IdentificationKey.invalidVariableMeasureRCNFormat"));
1301
+ }
1302
+ itemReferenceString = NUMERIC_CREATOR.create(itemReferenceLength, itemReference);
1303
+ priceOrWeightString = NUMERIC_CREATOR.create(priceOrWeightLength, priceOrWeight);
1304
+ rcnBuilders.push(checkDigitBuilder);
1305
+ return rcnBuilders.reduce((partialRCN, rcnBuilder) => rcnBuilder(partialRCN), "");
1306
+ }
1107
1307
  }
1108
1308
  /**
1109
1309
  * Non-GTIN numeric identification key creator.
@@ -1530,7 +1730,7 @@ export class PrefixManager {
1530
1730
  const creatorTweakFactor = PrefixManager.CREATOR_TWEAK_FACTORS_MAP.get(creator.identificationKeyType);
1531
1731
  // Creator tweak factor is defined for numeric identification keys only.
1532
1732
  if (creatorTweakFactor !== undefined) {
1533
- // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- Explicit cast without testing is necessary as "instanceof" doesn't work for mixin types.
1733
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion,no-param-reassign -- Explicit cast without testing is necessary as "instanceof" doesn't work for mixin types. Method purpose is to set the tweak.
1534
1734
  creator.tweak = this.tweakFactor * creatorTweakFactor;
1535
1735
  }
1536
1736
  }