@aidc-toolkit/gs1 1.0.43-beta → 1.0.43

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 (220) hide show
  1. package/dist/index.cjs +19 -0
  2. package/dist/index.d.cts +2205 -0
  3. package/dist/index.d.ts +2205 -63
  4. package/dist/index.js +3 -36
  5. package/package.json +4 -4
  6. package/tsconfig-src.tsbuildinfo +1 -1
  7. package/dist/abstract-identifier-creator.d.ts +0 -41
  8. package/dist/abstract-identifier-creator.d.ts.map +0 -1
  9. package/dist/abstract-identifier-creator.js +0 -73
  10. package/dist/abstract-identifier-creator.js.map +0 -1
  11. package/dist/abstract-non-gtin-numeric-identifier-creator.d.ts +0 -36
  12. package/dist/abstract-non-gtin-numeric-identifier-creator.d.ts.map +0 -1
  13. package/dist/abstract-non-gtin-numeric-identifier-creator.js +0 -37
  14. package/dist/abstract-non-gtin-numeric-identifier-creator.js.map +0 -1
  15. package/dist/abstract-numeric-identifier-creator.d.ts +0 -34
  16. package/dist/abstract-numeric-identifier-creator.d.ts.map +0 -1
  17. package/dist/abstract-numeric-identifier-creator.js +0 -154
  18. package/dist/abstract-numeric-identifier-creator.js.map +0 -1
  19. package/dist/character-set.d.ts +0 -27
  20. package/dist/character-set.d.ts.map +0 -1
  21. package/dist/character-set.js +0 -83
  22. package/dist/character-set.js.map +0 -1
  23. package/dist/check.d.ts +0 -81
  24. package/dist/check.d.ts.map +0 -1
  25. package/dist/check.js +0 -218
  26. package/dist/check.js.map +0 -1
  27. package/dist/content-character-set-creators.d.ts +0 -4
  28. package/dist/content-character-set-creators.d.ts.map +0 -1
  29. package/dist/content-character-set-creators.js +0 -9
  30. package/dist/content-character-set-creators.js.map +0 -1
  31. package/dist/content-character-set.d.ts +0 -26
  32. package/dist/content-character-set.d.ts.map +0 -1
  33. package/dist/content-character-set.js +0 -18
  34. package/dist/content-character-set.js.map +0 -1
  35. package/dist/gcp-length-cache.d.ts +0 -86
  36. package/dist/gcp-length-cache.d.ts.map +0 -1
  37. package/dist/gcp-length-cache.js +0 -237
  38. package/dist/gcp-length-cache.js.map +0 -1
  39. package/dist/gcp-length-data.d.ts +0 -108
  40. package/dist/gcp-length-data.d.ts.map +0 -1
  41. package/dist/gcp-length-data.js +0 -53
  42. package/dist/gcp-length-data.js.map +0 -1
  43. package/dist/gcp-length.d.ts +0 -97
  44. package/dist/gcp-length.d.ts.map +0 -1
  45. package/dist/gcp-length.js +0 -368
  46. package/dist/gcp-length.js.map +0 -1
  47. package/dist/gtin-creator.d.ts +0 -47
  48. package/dist/gtin-creator.d.ts.map +0 -1
  49. package/dist/gtin-creator.js +0 -64
  50. package/dist/gtin-creator.js.map +0 -1
  51. package/dist/gtin-descriptor.d.ts +0 -22
  52. package/dist/gtin-descriptor.d.ts.map +0 -1
  53. package/dist/gtin-descriptor.js +0 -2
  54. package/dist/gtin-descriptor.js.map +0 -1
  55. package/dist/gtin-length.d.ts +0 -64
  56. package/dist/gtin-length.d.ts.map +0 -1
  57. package/dist/gtin-length.js +0 -36
  58. package/dist/gtin-length.js.map +0 -1
  59. package/dist/gtin-type.d.ts +0 -26
  60. package/dist/gtin-type.d.ts.map +0 -1
  61. package/dist/gtin-type.js +0 -7
  62. package/dist/gtin-type.js.map +0 -1
  63. package/dist/gtin-validator.d.ts +0 -132
  64. package/dist/gtin-validator.d.ts.map +0 -1
  65. package/dist/gtin-validator.js +0 -349
  66. package/dist/gtin-validator.js.map +0 -1
  67. package/dist/identifier-creator.d.ts +0 -31
  68. package/dist/identifier-creator.d.ts.map +0 -1
  69. package/dist/identifier-creator.js +0 -2
  70. package/dist/identifier-creator.js.map +0 -1
  71. package/dist/identifier-creators.d.ts +0 -118
  72. package/dist/identifier-creators.d.ts.map +0 -1
  73. package/dist/identifier-creators.js +0 -92
  74. package/dist/identifier-creators.js.map +0 -1
  75. package/dist/identifier-descriptor.d.ts +0 -27
  76. package/dist/identifier-descriptor.d.ts.map +0 -1
  77. package/dist/identifier-descriptor.js +0 -2
  78. package/dist/identifier-descriptor.js.map +0 -1
  79. package/dist/identifier-descriptors.d.ts +0 -106
  80. package/dist/identifier-descriptors.d.ts.map +0 -1
  81. package/dist/identifier-descriptors.js +0 -262
  82. package/dist/identifier-descriptors.js.map +0 -1
  83. package/dist/identifier-extension.d.ts +0 -82
  84. package/dist/identifier-extension.d.ts.map +0 -1
  85. package/dist/identifier-extension.js +0 -79
  86. package/dist/identifier-extension.js.map +0 -1
  87. package/dist/identifier-type.d.ts +0 -62
  88. package/dist/identifier-type.d.ts.map +0 -1
  89. package/dist/identifier-type.js +0 -54
  90. package/dist/identifier-type.js.map +0 -1
  91. package/dist/identifier-validator.d.ts +0 -85
  92. package/dist/identifier-validator.d.ts.map +0 -1
  93. package/dist/identifier-validator.js +0 -107
  94. package/dist/identifier-validator.js.map +0 -1
  95. package/dist/identifier-validators.d.ts +0 -131
  96. package/dist/identifier-validators.d.ts.map +0 -1
  97. package/dist/identifier-validators.js +0 -167
  98. package/dist/identifier-validators.js.map +0 -1
  99. package/dist/index.d.ts.map +0 -1
  100. package/dist/index.js.map +0 -1
  101. package/dist/leader-type.d.ts +0 -26
  102. package/dist/leader-type.d.ts.map +0 -1
  103. package/dist/leader-type.js +0 -18
  104. package/dist/leader-type.js.map +0 -1
  105. package/dist/locale/en/locale-resources.d.ts +0 -48
  106. package/dist/locale/en/locale-resources.d.ts.map +0 -1
  107. package/dist/locale/en/locale-resources.js +0 -47
  108. package/dist/locale/en/locale-resources.js.map +0 -1
  109. package/dist/locale/fr/locale-resources.d.ts +0 -48
  110. package/dist/locale/fr/locale-resources.d.ts.map +0 -1
  111. package/dist/locale/fr/locale-resources.js +0 -47
  112. package/dist/locale/fr/locale-resources.js.map +0 -1
  113. package/dist/locale/i18n.d.ts +0 -27
  114. package/dist/locale/i18n.d.ts.map +0 -1
  115. package/dist/locale/i18n.js +0 -35
  116. package/dist/locale/i18n.js.map +0 -1
  117. package/dist/non-gtin-numeric-identifier-creator.d.ts +0 -12
  118. package/dist/non-gtin-numeric-identifier-creator.d.ts.map +0 -1
  119. package/dist/non-gtin-numeric-identifier-creator.js +0 -2
  120. package/dist/non-gtin-numeric-identifier-creator.js.map +0 -1
  121. package/dist/non-gtin-numeric-identifier-descriptor.d.ts +0 -22
  122. package/dist/non-gtin-numeric-identifier-descriptor.d.ts.map +0 -1
  123. package/dist/non-gtin-numeric-identifier-descriptor.js +0 -2
  124. package/dist/non-gtin-numeric-identifier-descriptor.js.map +0 -1
  125. package/dist/non-gtin-numeric-identifier-type.d.ts +0 -26
  126. package/dist/non-gtin-numeric-identifier-type.d.ts.map +0 -1
  127. package/dist/non-gtin-numeric-identifier-type.js +0 -8
  128. package/dist/non-gtin-numeric-identifier-type.js.map +0 -1
  129. package/dist/non-gtin-numeric-identifier-validator.d.ts +0 -12
  130. package/dist/non-gtin-numeric-identifier-validator.d.ts.map +0 -1
  131. package/dist/non-gtin-numeric-identifier-validator.js +0 -10
  132. package/dist/non-gtin-numeric-identifier-validator.js.map +0 -1
  133. package/dist/non-numeric-identifier-creator.d.ts +0 -40
  134. package/dist/non-numeric-identifier-creator.d.ts.map +0 -1
  135. package/dist/non-numeric-identifier-creator.js +0 -82
  136. package/dist/non-numeric-identifier-creator.js.map +0 -1
  137. package/dist/non-numeric-identifier-descriptor.d.ts +0 -26
  138. package/dist/non-numeric-identifier-descriptor.d.ts.map +0 -1
  139. package/dist/non-numeric-identifier-descriptor.js +0 -2
  140. package/dist/non-numeric-identifier-descriptor.js.map +0 -1
  141. package/dist/non-numeric-identifier-type.d.ts +0 -26
  142. package/dist/non-numeric-identifier-type.d.ts.map +0 -1
  143. package/dist/non-numeric-identifier-type.js +0 -8
  144. package/dist/non-numeric-identifier-type.js.map +0 -1
  145. package/dist/non-numeric-identifier-validator.d.ts +0 -41
  146. package/dist/non-numeric-identifier-validator.d.ts.map +0 -1
  147. package/dist/non-numeric-identifier-validator.js +0 -69
  148. package/dist/non-numeric-identifier-validator.js.map +0 -1
  149. package/dist/non-serializable-numeric-identifier-creator.d.ts +0 -10
  150. package/dist/non-serializable-numeric-identifier-creator.d.ts.map +0 -1
  151. package/dist/non-serializable-numeric-identifier-creator.js +0 -8
  152. package/dist/non-serializable-numeric-identifier-creator.js.map +0 -1
  153. package/dist/non-serializable-numeric-identifier-descriptor.d.ts +0 -12
  154. package/dist/non-serializable-numeric-identifier-descriptor.d.ts.map +0 -1
  155. package/dist/non-serializable-numeric-identifier-descriptor.js +0 -2
  156. package/dist/non-serializable-numeric-identifier-descriptor.js.map +0 -1
  157. package/dist/non-serializable-numeric-identifier-type.d.ts +0 -26
  158. package/dist/non-serializable-numeric-identifier-type.d.ts.map +0 -1
  159. package/dist/non-serializable-numeric-identifier-type.js +0 -7
  160. package/dist/non-serializable-numeric-identifier-type.js.map +0 -1
  161. package/dist/non-serializable-numeric-identifier-validator.d.ts +0 -16
  162. package/dist/non-serializable-numeric-identifier-validator.d.ts.map +0 -1
  163. package/dist/non-serializable-numeric-identifier-validator.js +0 -17
  164. package/dist/non-serializable-numeric-identifier-validator.js.map +0 -1
  165. package/dist/numeric-identifier-creator.d.ts +0 -53
  166. package/dist/numeric-identifier-creator.d.ts.map +0 -1
  167. package/dist/numeric-identifier-creator.js +0 -2
  168. package/dist/numeric-identifier-creator.js.map +0 -1
  169. package/dist/numeric-identifier-descriptor.d.ts +0 -22
  170. package/dist/numeric-identifier-descriptor.d.ts.map +0 -1
  171. package/dist/numeric-identifier-descriptor.js +0 -2
  172. package/dist/numeric-identifier-descriptor.js.map +0 -1
  173. package/dist/numeric-identifier-type.d.ts +0 -26
  174. package/dist/numeric-identifier-type.d.ts.map +0 -1
  175. package/dist/numeric-identifier-type.js +0 -7
  176. package/dist/numeric-identifier-type.js.map +0 -1
  177. package/dist/numeric-identifier-validator.d.ts +0 -38
  178. package/dist/numeric-identifier-validator.d.ts.map +0 -1
  179. package/dist/numeric-identifier-validator.js +0 -61
  180. package/dist/numeric-identifier-validator.js.map +0 -1
  181. package/dist/prefix-manager.d.ts +0 -151
  182. package/dist/prefix-manager.d.ts.map +0 -1
  183. package/dist/prefix-manager.js +0 -297
  184. package/dist/prefix-manager.js.map +0 -1
  185. package/dist/prefix-provider.d.ts +0 -27
  186. package/dist/prefix-provider.d.ts.map +0 -1
  187. package/dist/prefix-provider.js +0 -2
  188. package/dist/prefix-provider.js.map +0 -1
  189. package/dist/prefix-type.d.ts +0 -26
  190. package/dist/prefix-type.d.ts.map +0 -1
  191. package/dist/prefix-type.js +0 -18
  192. package/dist/prefix-type.js.map +0 -1
  193. package/dist/prefix-validator.d.ts +0 -71
  194. package/dist/prefix-validator.d.ts.map +0 -1
  195. package/dist/prefix-validator.js +0 -204
  196. package/dist/prefix-validator.js.map +0 -1
  197. package/dist/serializable-numeric-identifier-creator.d.ts +0 -48
  198. package/dist/serializable-numeric-identifier-creator.d.ts.map +0 -1
  199. package/dist/serializable-numeric-identifier-creator.js +0 -93
  200. package/dist/serializable-numeric-identifier-creator.js.map +0 -1
  201. package/dist/serializable-numeric-identifier-descriptor.d.ts +0 -26
  202. package/dist/serializable-numeric-identifier-descriptor.d.ts.map +0 -1
  203. package/dist/serializable-numeric-identifier-descriptor.js +0 -2
  204. package/dist/serializable-numeric-identifier-descriptor.js.map +0 -1
  205. package/dist/serializable-numeric-identifier-type.d.ts +0 -26
  206. package/dist/serializable-numeric-identifier-type.d.ts.map +0 -1
  207. package/dist/serializable-numeric-identifier-type.js +0 -8
  208. package/dist/serializable-numeric-identifier-type.js.map +0 -1
  209. package/dist/serializable-numeric-identifier-validator.d.ts +0 -67
  210. package/dist/serializable-numeric-identifier-validator.d.ts.map +0 -1
  211. package/dist/serializable-numeric-identifier-validator.js +0 -97
  212. package/dist/serializable-numeric-identifier-validator.js.map +0 -1
  213. package/dist/variable-measure.d.ts +0 -68
  214. package/dist/variable-measure.d.ts.map +0 -1
  215. package/dist/variable-measure.js +0 -210
  216. package/dist/variable-measure.js.map +0 -1
  217. package/dist/verified-by-gs1.d.ts +0 -22
  218. package/dist/verified-by-gs1.d.ts.map +0 -1
  219. package/dist/verified-by-gs1.js +0 -46
  220. package/dist/verified-by-gs1.js.map +0 -1
@@ -1,18 +0,0 @@
1
- /**
2
- * Character sets supported by the reference portion of an identifier or the serial component of a numeric identifier.
3
- */
4
- export const ContentCharacterSets = {
5
- /**
6
- * Numeric.
7
- */
8
- Numeric: "Numeric",
9
- /**
10
- * GS1 AI encodable character set 82.
11
- */
12
- AI82: "AI82",
13
- /**
14
- * GS1 AI encodable character set 39.
15
- */
16
- AI39: "AI39"
17
- };
18
- //# sourceMappingURL=content-character-set.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"content-character-set.js","sourceRoot":"","sources":["../src/content-character-set.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAChC;;OAEG;IACH,OAAO,EAAE,SAAS;IAElB;;OAEG;IACH,IAAI,EAAE,MAAM;IAEZ;;OAEG;IACH,IAAI,EAAE,MAAM;CACN,CAAC"}
@@ -1,86 +0,0 @@
1
- import { type AppDataStorage, Cache } from "@aidc-toolkit/core";
2
- import { type GCPLengthData, type GCPLengthSourceJSON } from "./gcp-length-data.js";
3
- /**
4
- * GS1 Company Prefix length cache.
5
- */
6
- export declare abstract class GCPLengthCache extends Cache<GCPLengthData, GCPLengthData | GCPLengthSourceJSON> {
7
- #private;
8
- /**
9
- * Storage key for full application data object.
10
- */
11
- static APP_DATA_STORAGE_KEY: string;
12
- /**
13
- * Storage key for next check date/time.
14
- */
15
- static NEXT_CHECK_DATE_TIME_STORAGE_KEY: string;
16
- /**
17
- * Storage key for header information (date/time and disclaimer).
18
- */
19
- static HEADER_STORAGE_KEY: string;
20
- /**
21
- * Storage key for data only.
22
- */
23
- static DATA_STORAGE_KEY: string;
24
- /**
25
- * Constructor.
26
- *
27
- * @param appDataStorage
28
- * Application data storage.
29
- */
30
- constructor(appDataStorage: AppDataStorage<boolean>);
31
- /**
32
- * Get the application data storage.
33
- */
34
- get appDataStorage(): AppDataStorage<boolean>;
35
- /**
36
- * @inheritDoc
37
- */
38
- get nextCheckDateTime(): Promise<Date | undefined>;
39
- /**
40
- * @inheritDoc
41
- */
42
- get cacheDateTime(): Promise<Date | undefined>;
43
- /**
44
- * @inheritDoc
45
- */
46
- get cacheData(): Promise<GCPLengthData>;
47
- /**
48
- * @inheritDoc
49
- */
50
- update(nextCheckDateTime: Date, _cacheDateTime?: Date, cacheData?: GCPLengthData): Promise<void>;
51
- }
52
- /**
53
- * GS1 Company Prefix length cache with remote source. This class provides access to the data from a remote source, by
54
- * default the AIDC Toolkit website. If any error occurs, the next check date/time is set to the current date/time plus
55
- * ten minutes to prevent the network from being overloaded.
56
- *
57
- * The data on the AIDC Toolkit website is updated regularly with the data provided by GS1, and it's stored in binary
58
- * format for faster retrieval.
59
- */
60
- export declare class RemoteGCPLengthCache extends GCPLengthCache {
61
- #private;
62
- /**
63
- * Default base URL pointing to AIDC Toolkit website data directory.
64
- */
65
- static DEFAULT_BASE_URL: string;
66
- /**
67
- * Constructor.
68
- *
69
- * @param appDataStorage
70
- * Application data storage.
71
- *
72
- * @param baseURL
73
- * Base URL. The URL must not end with a slash and must host the `gcp-length-header.json` and `gcp-length-data.bin`
74
- * files.
75
- */
76
- constructor(appDataStorage: AppDataStorage<boolean>, baseURL?: string);
77
- /**
78
- * @inheritDoc
79
- */
80
- get sourceDateTime(): Promise<Date>;
81
- /**
82
- * @inheritDoc
83
- */
84
- get sourceData(): Promise<GCPLengthData>;
85
- }
86
- //# sourceMappingURL=gcp-length-cache.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gcp-length-cache.d.ts","sourceRoot":"","sources":["../src/gcp-length-cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,KAAK,cAAc,EACnB,KAAK,EAIR,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEH,KAAK,aAAa,EAElB,KAAK,mBAAmB,EAG3B,MAAM,sBAAsB,CAAC;AAG9B;;GAEG;AACH,8BAAsB,cAAe,SAAQ,KAAK,CAAC,aAAa,EAAE,aAAa,GAAG,mBAAmB,CAAC;;IAClG;;OAEG;IACH,MAAM,CAAC,oBAAoB,SAAgB;IAE3C;;OAEG;IACH,MAAM,CAAC,gCAAgC,SAAqC;IAE5E;;OAEG;IACH,MAAM,CAAC,kBAAkB,SAAuB;IAEhD;;OAEG;IACH,MAAM,CAAC,gBAAgB,SAAqB;IAY5C;;;;;OAKG;gBACS,cAAc,EAAE,cAAc,CAAC,OAAO,CAAC;IAMnD;;OAEG;IACH,IAAI,cAAc,IAAI,cAAc,CAAC,OAAO,CAAC,CAE5C;IA6CD;;OAEG;IACH,IAAa,iBAAiB,IAAI,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,CAE1D;IAED;;OAEG;IACH,IAAa,aAAa,IAAI,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,CAEtD;IAED;;OAEG;IACH,IAAa,SAAS,IAAI,OAAO,CAAC,aAAa,CAAC,CAS/C;IAED;;OAEG;IACY,MAAM,CAAC,iBAAiB,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;CAmBlH;AAED;;;;;;;GAOG;AACH,qBAAa,oBAAqB,SAAQ,cAAc;;IACpD;;OAEG;IACH,MAAM,CAAC,gBAAgB,SAA8B;IAYrD;;;;;;;;;OASG;gBACS,cAAc,EAAE,cAAc,CAAC,OAAO,CAAC,EAAE,OAAO,GAAE,MAA8C;IA0C5G;;OAEG;IACH,IAAa,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAY3C;IAED;;OAEG;IACH,IAAa,UAAU,IAAI,OAAO,CAAC,aAAa,CAAC,CAmBhD;CACJ"}
@@ -1,237 +0,0 @@
1
- var _a;
2
- import { Cache, omit, RemoteAppDataStorage, WEBSITE_BASE_URL } from "@aidc-toolkit/core";
3
- import { isGCPLengthAppData, isGCPLengthHeader } from "./gcp-length-data.js";
4
- import { i18nextGS1 } from "./locale/i18n.js";
5
- /**
6
- * GS1 Company Prefix length cache.
7
- */
8
- export class GCPLengthCache extends Cache {
9
- /**
10
- * Storage key for full application data object.
11
- */
12
- static APP_DATA_STORAGE_KEY = "gcp-length";
13
- /**
14
- * Storage key for next check date/time.
15
- */
16
- static NEXT_CHECK_DATE_TIME_STORAGE_KEY = "gcp-length-next-check-date-time";
17
- /**
18
- * Storage key for header information (date/time and disclaimer).
19
- */
20
- static HEADER_STORAGE_KEY = "gcp-length-header";
21
- /**
22
- * Storage key for data only.
23
- */
24
- static DATA_STORAGE_KEY = "gcp-length-data";
25
- /**
26
- * Application data storage.
27
- */
28
- #appDataStorage;
29
- /**
30
- * GS1 Company Prefix application data.
31
- */
32
- #cacheGCPLengthAppData;
33
- /**
34
- * Constructor.
35
- *
36
- * @param appDataStorage
37
- * Application data storage.
38
- */
39
- constructor(appDataStorage) {
40
- super();
41
- this.#appDataStorage = appDataStorage;
42
- }
43
- /**
44
- * Get the application data storage.
45
- */
46
- get appDataStorage() {
47
- return this.#appDataStorage;
48
- }
49
- /**
50
- * Load cached GS1 Company Prefix length application data from application data storage.
51
- *
52
- * @returns
53
- * GS1 Company Prefix length application data.
54
- */
55
- async #loadCache() {
56
- if (this.#cacheGCPLengthAppData === undefined) {
57
- if (!this.appDataStorage.supportsBinary) {
58
- // Everything is stored in a single object.
59
- const appData = await this.appDataStorage.read(_a.APP_DATA_STORAGE_KEY);
60
- if (isGCPLengthAppData(appData)) {
61
- this.#cacheGCPLengthAppData = appData;
62
- }
63
- }
64
- else {
65
- const nextCheckDateTime = await this.appDataStorage.read(_a.NEXT_CHECK_DATE_TIME_STORAGE_KEY);
66
- const header = await this.appDataStorage.read(_a.HEADER_STORAGE_KEY);
67
- const data = await this.appDataStorage.read(_a.DATA_STORAGE_KEY, true);
68
- this.#cacheGCPLengthAppData = {
69
- nextCheckDateTime: nextCheckDateTime instanceof Date ? nextCheckDateTime : undefined,
70
- gcpLengthData: isGCPLengthHeader(header) && data instanceof Uint8Array ?
71
- {
72
- ...header,
73
- data
74
- } :
75
- undefined
76
- };
77
- }
78
- }
79
- // If there's nothing in the cache yet, create an object with the next check date/time set to now.
80
- if (this.#cacheGCPLengthAppData === undefined) {
81
- this.#cacheGCPLengthAppData = {
82
- nextCheckDateTime: new Date(),
83
- gcpLengthData: undefined
84
- };
85
- }
86
- return this.#cacheGCPLengthAppData;
87
- }
88
- /**
89
- * @inheritDoc
90
- */
91
- get nextCheckDateTime() {
92
- return this.#loadCache().then(gcpLengthAppData => gcpLengthAppData.nextCheckDateTime);
93
- }
94
- /**
95
- * @inheritDoc
96
- */
97
- get cacheDateTime() {
98
- return this.#loadCache().then(gcpLengthAppData => gcpLengthAppData.gcpLengthData?.dateTime);
99
- }
100
- /**
101
- * @inheritDoc
102
- */
103
- get cacheData() {
104
- return this.#loadCache().then((gcpLengthAppData) => {
105
- if (gcpLengthAppData.gcpLengthData === undefined) {
106
- // Application error; no localization necessary.
107
- throw new Error("GS1 Company Prefix length application data not loaded");
108
- }
109
- return gcpLengthAppData.gcpLengthData;
110
- });
111
- }
112
- /**
113
- * @inheritDoc
114
- */
115
- async update(nextCheckDateTime, _cacheDateTime, cacheData) {
116
- this.#cacheGCPLengthAppData = {
117
- nextCheckDateTime,
118
- // Retain existing data if cache data is not provided.
119
- gcpLengthData: cacheData ?? this.#cacheGCPLengthAppData?.gcpLengthData
120
- };
121
- if (!this.appDataStorage.supportsBinary) {
122
- // Everything is stored in a single object.
123
- await this.appDataStorage.write(_a.APP_DATA_STORAGE_KEY, this.#cacheGCPLengthAppData);
124
- }
125
- else {
126
- await this.appDataStorage.write(_a.NEXT_CHECK_DATE_TIME_STORAGE_KEY, nextCheckDateTime);
127
- if (cacheData !== undefined) {
128
- await this.appDataStorage.write(_a.HEADER_STORAGE_KEY, omit(cacheData, "data"));
129
- await this.appDataStorage.write(_a.DATA_STORAGE_KEY, cacheData.data);
130
- }
131
- }
132
- }
133
- }
134
- _a = GCPLengthCache;
135
- /**
136
- * GS1 Company Prefix length cache with remote source. This class provides access to the data from a remote source, by
137
- * default the AIDC Toolkit website. If any error occurs, the next check date/time is set to the current date/time plus
138
- * ten minutes to prevent the network from being overloaded.
139
- *
140
- * The data on the AIDC Toolkit website is updated regularly with the data provided by GS1, and it's stored in binary
141
- * format for faster retrieval.
142
- */
143
- export class RemoteGCPLengthCache extends GCPLengthCache {
144
- /**
145
- * Default base URL pointing to AIDC Toolkit website data directory.
146
- */
147
- static DEFAULT_BASE_URL = `${WEBSITE_BASE_URL}/data`;
148
- /**
149
- * Remote application data storage.
150
- */
151
- #remoteAppDataStorage;
152
- /**
153
- * Remote GS1 Company Prefix header data.
154
- */
155
- #remoteGCPLengthHeader;
156
- /**
157
- * Constructor.
158
- *
159
- * @param appDataStorage
160
- * Application data storage.
161
- *
162
- * @param baseURL
163
- * Base URL. The URL must not end with a slash and must host the `gcp-length-header.json` and `gcp-length-data.bin`
164
- * files.
165
- */
166
- constructor(appDataStorage, baseURL = RemoteGCPLengthCache.DEFAULT_BASE_URL) {
167
- super(appDataStorage);
168
- this.#remoteAppDataStorage = new RemoteAppDataStorage(baseURL);
169
- }
170
- /**
171
- * Get remote application data. If an exception is thrown while retrieving or processing the data, retrying is
172
- * delayed for ten minutes to prevent repeated network calls.
173
- *
174
- * @param pathKey
175
- * Key relative to base URL.
176
- *
177
- * @param asBinary
178
- * True if binary data is requested, false if string data is requested.
179
- *
180
- * @param callback
181
- * Callback function to process the application data.
182
- *
183
- * @returns
184
- * Application data.
185
- */
186
- async #getRemoteAppData(pathKey, asBinary, callback) {
187
- return this.#remoteAppDataStorage.read(pathKey, asBinary).then((appData) => {
188
- if (appData === undefined) {
189
- throw new RangeError(i18nextGS1.t("GCPLength.gs1CompanyPrefixLengthDataFileNotFound", {
190
- key: pathKey
191
- }));
192
- }
193
- return callback(appData);
194
- }).catch(async (e) => {
195
- // Try again in ten minutes.
196
- const nowPlus10Minutes = new Date();
197
- nowPlus10Minutes.setMinutes(nowPlus10Minutes.getMinutes() + 10);
198
- await this.update(nowPlus10Minutes);
199
- throw e;
200
- });
201
- }
202
- /**
203
- * @inheritDoc
204
- */
205
- get sourceDateTime() {
206
- // Header is fetched on each call.
207
- return this.#getRemoteAppData(RemoteGCPLengthCache.HEADER_STORAGE_KEY, false, (appData) => {
208
- if (!isGCPLengthHeader(appData)) {
209
- // Application error; no localization necessary.
210
- throw new Error("Invalid GS1 Company Prefix length header");
211
- }
212
- this.#remoteGCPLengthHeader = appData;
213
- return this.#remoteGCPLengthHeader.dateTime;
214
- });
215
- }
216
- /**
217
- * @inheritDoc
218
- */
219
- get sourceData() {
220
- return this.#getRemoteAppData(RemoteGCPLengthCache.DATA_STORAGE_KEY, true, (appData) => {
221
- const gcpLengthHeader = this.#remoteGCPLengthHeader;
222
- if (gcpLengthHeader === undefined) {
223
- // Application error; no localization necessary.
224
- throw new Error("GS1 Company Prefix length header not loaded");
225
- }
226
- if (!(appData instanceof Uint8Array)) {
227
- // Application error; no localization necessary.
228
- throw new Error("Invalid GS1 Company Prefix length data");
229
- }
230
- return {
231
- ...gcpLengthHeader,
232
- data: appData
233
- };
234
- });
235
- }
236
- }
237
- //# sourceMappingURL=gcp-length-cache.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gcp-length-cache.js","sourceRoot":"","sources":["../src/gcp-length-cache.ts"],"names":[],"mappings":"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"}
@@ -1,108 +0,0 @@
1
- import type { AppData } from "@aidc-toolkit/core";
2
- /**
3
- * GS1 Company Prefix length header.
4
- */
5
- export interface GCPLengthHeader {
6
- /**
7
- * Date/time the data was last updated.
8
- */
9
- readonly dateTime: Date;
10
- /**
11
- * Disclaimer.
12
- */
13
- readonly disclaimer: string;
14
- }
15
- /**
16
- * Determine if application data object is GS1 Company Prefix length header.
17
- *
18
- * @param appData
19
- * Application data object.
20
- *
21
- * @returns
22
- * True if application data object is GS1 Company Prefix length header.
23
- */
24
- export declare function isGCPLengthHeader(appData: AppData | undefined): appData is GCPLengthHeader;
25
- /**
26
- * GS1 Company Prefix length data.
27
- */
28
- export interface GCPLengthData extends GCPLengthHeader {
29
- /**
30
- * Tree data in binary form.
31
- */
32
- readonly data: Uint8Array;
33
- }
34
- /**
35
- * Determine if application data object is GS1 Company Prefix length data.
36
- *
37
- * @param appData
38
- * Application data object.
39
- *
40
- * @returns
41
- * True if application data object is GS1 Company Prefix length data.
42
- */
43
- export declare function isGCPLengthData(appData: AppData | undefined): appData is GCPLengthData;
44
- /**
45
- * GS1 Company Prefix length application data.
46
- */
47
- export interface GCPLengthAppData {
48
- /**
49
- * Next check date/time.
50
- */
51
- nextCheckDateTime: Date | undefined;
52
- /**
53
- * GS1 Company Prefix length data.
54
- */
55
- gcpLengthData: GCPLengthData | undefined;
56
- }
57
- /**
58
- * Determine if application data object is GS1 Company Prefix length application data.
59
- *
60
- * @param appData
61
- * Application data object.
62
- *
63
- * @returns
64
- * True if application data object is GS1 Company Prefix length application data.
65
- */
66
- export declare function isGCPLengthAppData(appData: AppData | undefined): appData is GCPLengthAppData;
67
- /**
68
- * GS1 Company Prefix length JSON source file format.
69
- */
70
- export interface GCPLengthSourceJSON {
71
- /**
72
- * Disclaimer.
73
- */
74
- _disclaimer: string[];
75
- /**
76
- * Format list.
77
- */
78
- GCPPrefixFormatList: {
79
- /**
80
- * ISO data/time the table was last updated.
81
- */
82
- date: string;
83
- /**
84
- * Entries.
85
- */
86
- entry: Array<{
87
- /**
88
- * Identification key prefix start.
89
- */
90
- prefix: string;
91
- /**
92
- * Length of GS1 Company Prefix.
93
- */
94
- gcpLength: number;
95
- }>;
96
- };
97
- }
98
- /**
99
- * Determine if application data object is GS1 Company Prefix length source JSON.
100
- *
101
- * @param appData
102
- * Application data object.
103
- *
104
- * @returns
105
- * True if application data object is GS1 Company Prefix length source JSON.
106
- */
107
- export declare function isGCPLengthSourceJSON(appData: AppData | undefined): appData is GCPLengthSourceJSON;
108
- //# sourceMappingURL=gcp-length-data.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gcp-length-data.d.ts","sourceRoot":"","sources":["../src/gcp-length-data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAElD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;IAExB;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC/B;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,IAAI,eAAe,CAG1F;AAED;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,eAAe;IAClD;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC7B;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,IAAI,aAAa,CAGtF;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B;;OAEG;IACH,iBAAiB,EAAE,IAAI,GAAG,SAAS,CAAC;IAEpC;;OAEG;IACH,aAAa,EAAE,aAAa,GAAG,SAAS,CAAC;CAC5C;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,IAAI,gBAAgB,CAO5F;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC;;OAEG;IACH,WAAW,EAAE,MAAM,EAAE,CAAC;IAEtB;;OAEG;IACH,mBAAmB,EAAE;QACjB;;WAEG;QACH,IAAI,EAAE,MAAM,CAAC;QAEb;;WAEG;QACH,KAAK,EAAE,KAAK,CAAC;YACT;;eAEG;YACH,MAAM,EAAE,MAAM,CAAC;YAEf;;eAEG;YACH,SAAS,EAAE,MAAM,CAAC;SACrB,CAAC,CAAC;KACN,CAAC;CACL;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,IAAI,mBAAmB,CAGlG"}
@@ -1,53 +0,0 @@
1
- /**
2
- * Determine if application data object is GS1 Company Prefix length header.
3
- *
4
- * @param appData
5
- * Application data object.
6
- *
7
- * @returns
8
- * True if application data object is GS1 Company Prefix length header.
9
- */
10
- export function isGCPLengthHeader(appData) {
11
- // Property type check is necessary to guard against data corruption or changes in format.
12
- return typeof appData === "object" && "dateTime" in appData && appData.dateTime instanceof Date && "disclaimer" in appData && typeof appData.disclaimer === "string";
13
- }
14
- /**
15
- * Determine if application data object is GS1 Company Prefix length data.
16
- *
17
- * @param appData
18
- * Application data object.
19
- *
20
- * @returns
21
- * True if application data object is GS1 Company Prefix length data.
22
- */
23
- export function isGCPLengthData(appData) {
24
- // Property type check is necessary to guard against data corruption or changes in format.
25
- return isGCPLengthHeader(appData) && "data" in appData && appData.data instanceof Uint8Array;
26
- }
27
- /**
28
- * Determine if application data object is GS1 Company Prefix length application data.
29
- *
30
- * @param appData
31
- * Application data object.
32
- *
33
- * @returns
34
- * True if application data object is GS1 Company Prefix length application data.
35
- */
36
- export function isGCPLengthAppData(appData) {
37
- // Property type check is necessary to guard against data corruption or changes in format.
38
- return typeof appData === "object" && "nextCheckDateTime" in appData && appData.nextCheckDateTime instanceof Date && (!("gcpLengthData" in appData) || appData.gcpLengthData === undefined || (typeof appData.gcpLengthData === "object" && appData.gcpLengthData !== null && isGCPLengthData(appData.gcpLengthData)));
39
- }
40
- /**
41
- * Determine if application data object is GS1 Company Prefix length source JSON.
42
- *
43
- * @param appData
44
- * Application data object.
45
- *
46
- * @returns
47
- * True if application data object is GS1 Company Prefix length source JSON.
48
- */
49
- export function isGCPLengthSourceJSON(appData) {
50
- // Checking is minimal as this is generally used in a controlled environment (e.g., updating remote storage).
51
- return typeof appData === "object" && "_disclaimer" in appData && "GCPPrefixFormatList" in appData;
52
- }
53
- //# sourceMappingURL=gcp-length-data.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gcp-length-data.js","sourceRoot":"","sources":["../src/gcp-length-data.ts"],"names":[],"mappings":"AAiBA;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAA4B;IAC1D,0FAA0F;IAC1F,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,UAAU,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,YAAY,IAAI,IAAI,YAAY,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ,CAAC;AACzK,CAAC;AAYD;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,OAA4B;IACxD,0FAA0F;IAC1F,OAAO,iBAAiB,CAAC,OAAO,CAAC,IAAI,MAAM,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,YAAY,UAAU,CAAC;AACjG,CAAC;AAiBD;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAA4B;IAC3D,0FAA0F;IAC1F,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,mBAAmB,IAAI,OAAO,IAAI,OAAO,CAAC,iBAAiB,YAAY,IAAI,IAAI,CACjH,CAAC,CAAC,eAAe,IAAI,OAAO,CAAC,IAAI,OAAO,CAAC,aAAa,KAAK,SAAS,IAAI,CACpE,OAAO,OAAO,CAAC,aAAa,KAAK,QAAQ,IAAI,OAAO,CAAC,aAAa,KAAK,IAAI,IAAI,eAAe,CAAC,OAAO,CAAC,aAAa,CAAC,CACxH,CACJ,CAAC;AACN,CAAC;AAqCD;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAA4B;IAC9D,6GAA6G;IAC7G,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,aAAa,IAAI,OAAO,IAAI,qBAAqB,IAAI,OAAO,CAAC;AACvG,CAAC"}
@@ -1,97 +0,0 @@
1
- import type { GCPLengthCache } from "./gcp-length-cache.js";
2
- import { type GCPLengthHeader } from "./gcp-length-data.js";
3
- import { type IdentifierType } from "./identifier-type.js";
4
- /**
5
- * Leaf of GS1 Company Prefix length tree.
6
- */
7
- interface Leaf {
8
- readonly length: number;
9
- }
10
- /**
11
- * Branch of GS1 Company Prefix length tree.
12
- */
13
- interface Branch {
14
- readonly childNodes: ReadonlyArray<Node | undefined>;
15
- }
16
- /**
17
- * Root of GS1 Company Prefix length tree.
18
- */
19
- interface Root extends GCPLengthHeader, Branch {
20
- }
21
- /**
22
- * Node in GS1 Company Prefix length tree.
23
- */
24
- type Node = Branch | Leaf;
25
- /**
26
- * Interim branch of GS1 Company Prefix length tree with writeable child nodes.
27
- */
28
- export interface InterimBranch {
29
- readonly childNodes: Array<InterimBranch | Leaf | undefined>;
30
- }
31
- /**
32
- * GS1 Company Prefix length service. The constructor takes a {@linkcode GCPLengthCache} object, which is responsible
33
- * for managing the cache and source.
34
- *
35
- * The first step is to load the GS1 Company Prefix length data. This is done using the
36
- * {@linkcode GCPLength.load | load()} method, which works as follows:
37
- *
38
- * - If the next check date/time is in the future, the method returns immediately, regardless of whether any data is
39
- * available. It does this to prevent a large number of requests to the source in the event of a failure.
40
- * - Otherwise, if the cache date/time is undefined or less than the source date/time, it loads from the source,
41
- * converts the data if necessary, and updates the cache.
42
- * - Otherwise, it continues with the cached data.
43
- * - The next check date/time is updated to the later of the source date/time plus one week and the current date/time
44
- * plus one day.
45
- *
46
- * The base class implementation of the `GCPLengthCache` manages only the cache itself, and it requires an
47
- * application-provided storage implementation. The source is expected to be either a {@linkcode GCPLengthData} object
48
- * (created via another cache implementation) or a {@linkcode GCPLengthSourceJSON} object, which is the format of the
49
- * file provided by GS1.
50
- *
51
- * Once the data is loaded, the {@linkcode GCPLength.lengthOf | lengthOf()} method can be used to get the length of a
52
- * GS1 Company Prefix for an identifier type and identifier.
53
- */
54
- export declare class GCPLength {
55
- #private;
56
- /**
57
- * Constructor.
58
- *
59
- * @param gcpLengthCache
60
- * GS1 Company Prefix length cache.
61
- */
62
- constructor(gcpLengthCache: GCPLengthCache);
63
- /**
64
- * Get the GS1 Company Prefix length tree root.
65
- *
66
- * @returns
67
- * GS1 Company Prefix length tree root.
68
- */
69
- get root(): Root;
70
- /**
71
- * Get the date/time the GS1 Company Prefix length data was last updated.
72
- */
73
- get dateTime(): Date;
74
- /**
75
- * Get the disclaimer for the GS1 Company Prefix length data.
76
- */
77
- get disclaimer(): string;
78
- /**
79
- * Load the GS1 Company Prefix length data.
80
- */
81
- load(): Promise<void>;
82
- /**
83
- * Get the length of a GS1 Company Prefix for an identifier.
84
- *
85
- * @param identifierType
86
- * Identifier type.
87
- *
88
- * @param identifier
89
- * Identifier.
90
- *
91
- * @returns
92
- * Length of GS1 Company Prefix, 0 if not a GS1 Company Prefix, or -1 if not found.
93
- */
94
- lengthOf(identifierType: IdentifierType, identifier: string): number;
95
- }
96
- export {};
97
- //# sourceMappingURL=gcp-length.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gcp-length.d.ts","sourceRoot":"","sources":["../src/gcp-length.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAsB,KAAK,eAAe,EAAmB,MAAM,sBAAsB,CAAC;AAGjG,OAAO,EAAE,KAAK,cAAc,EAAmB,MAAM,sBAAsB,CAAC;AAK5E;;GAEG;AACH,UAAU,IAAI;IACV,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,UAAU,MAAM;IACZ,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC;CACxD;AAED;;GAEG;AACH,UAAU,IAAK,SAAQ,eAAe,EAAE,MAAM;CAC7C;AAED;;GAEG;AACH,KAAK,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;AAe1B;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,aAAa,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;CAChE;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,SAAS;;IAqBlB;;;;;OAKG;gBACS,cAAc,EAAE,cAAc;IAI1C;;;;;OAKG;IACH,IAAI,IAAI,IAAI,IAAI,CAMf;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,IAAI,CAEnB;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,MAAM,CAEvB;IA4LD;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAwG3B;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,cAAc,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM;CAyBvE"}