@bottlebooks/valid-values 2.0.1 → 3.0.0

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 (238) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/README.md +2 -1
  3. package/dist/core/translate.d.ts +2 -2
  4. package/dist/core/translate.d.ts.map +1 -1
  5. package/dist/core/translate.js +3 -3
  6. package/dist/index.d.ts +2 -0
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +7 -1
  9. package/dist/locales/po/bg.d.ts +2 -0
  10. package/dist/locales/po/bg.d.ts.map +1 -1
  11. package/dist/locales/po/bg.js +2 -0
  12. package/dist/locales/po/cs.d.ts +2 -0
  13. package/dist/locales/po/cs.d.ts.map +1 -1
  14. package/dist/locales/po/cs.js +2 -0
  15. package/dist/locales/po/da.d.ts +2 -0
  16. package/dist/locales/po/da.d.ts.map +1 -1
  17. package/dist/locales/po/da.js +2 -0
  18. package/dist/locales/po/de.d.ts +2 -0
  19. package/dist/locales/po/de.d.ts.map +1 -1
  20. package/dist/locales/po/de.js +2 -0
  21. package/dist/locales/po/ee.d.ts +2 -0
  22. package/dist/locales/po/ee.d.ts.map +1 -1
  23. package/dist/locales/po/ee.js +2 -0
  24. package/dist/locales/po/el.d.ts +2 -0
  25. package/dist/locales/po/el.d.ts.map +1 -1
  26. package/dist/locales/po/el.js +2 -0
  27. package/dist/locales/po/en.d.ts +2 -0
  28. package/dist/locales/po/en.d.ts.map +1 -1
  29. package/dist/locales/po/en.js +2 -0
  30. package/dist/locales/po/es.d.ts +2 -0
  31. package/dist/locales/po/es.d.ts.map +1 -1
  32. package/dist/locales/po/es.js +2 -0
  33. package/dist/locales/po/fi.d.ts +2 -0
  34. package/dist/locales/po/fi.d.ts.map +1 -1
  35. package/dist/locales/po/fi.js +2 -0
  36. package/dist/locales/po/fr.d.ts +2 -0
  37. package/dist/locales/po/fr.d.ts.map +1 -1
  38. package/dist/locales/po/fr.js +2 -0
  39. package/dist/locales/po/ga.d.ts +2 -0
  40. package/dist/locales/po/ga.d.ts.map +1 -1
  41. package/dist/locales/po/ga.js +2 -0
  42. package/dist/locales/po/hr.d.ts +2 -0
  43. package/dist/locales/po/hr.d.ts.map +1 -1
  44. package/dist/locales/po/hr.js +2 -0
  45. package/dist/locales/po/hu.d.ts +2 -0
  46. package/dist/locales/po/hu.d.ts.map +1 -1
  47. package/dist/locales/po/hu.js +2 -0
  48. package/dist/locales/po/it.d.ts +2 -0
  49. package/dist/locales/po/it.d.ts.map +1 -1
  50. package/dist/locales/po/it.js +2 -0
  51. package/dist/locales/po/lt.d.ts +2 -0
  52. package/dist/locales/po/lt.d.ts.map +1 -1
  53. package/dist/locales/po/lt.js +2 -0
  54. package/dist/locales/po/lv.d.ts +2 -0
  55. package/dist/locales/po/lv.d.ts.map +1 -1
  56. package/dist/locales/po/lv.js +2 -0
  57. package/dist/locales/po/mt.d.ts +2 -0
  58. package/dist/locales/po/mt.d.ts.map +1 -1
  59. package/dist/locales/po/mt.js +2 -0
  60. package/dist/locales/po/nl.d.ts +2 -0
  61. package/dist/locales/po/nl.d.ts.map +1 -1
  62. package/dist/locales/po/nl.js +2 -0
  63. package/dist/locales/po/pl.d.ts +2 -0
  64. package/dist/locales/po/pl.d.ts.map +1 -1
  65. package/dist/locales/po/pl.js +2 -0
  66. package/dist/locales/po/pt.d.ts +2 -0
  67. package/dist/locales/po/pt.d.ts.map +1 -1
  68. package/dist/locales/po/pt.js +2 -0
  69. package/dist/locales/po/ro.d.ts +2 -0
  70. package/dist/locales/po/ro.d.ts.map +1 -1
  71. package/dist/locales/po/ro.js +2 -0
  72. package/dist/locales/po/se.d.ts +2 -0
  73. package/dist/locales/po/se.d.ts.map +1 -1
  74. package/dist/locales/po/se.js +2 -0
  75. package/dist/locales/po/si.d.ts +2 -0
  76. package/dist/locales/po/si.d.ts.map +1 -1
  77. package/dist/locales/po/si.js +2 -0
  78. package/dist/locales/po/sk.d.ts +2 -0
  79. package/dist/locales/po/sk.d.ts.map +1 -1
  80. package/dist/locales/po/sk.js +2 -0
  81. package/dist/main.d.ts.map +1 -1
  82. package/dist/main.js +14 -14
  83. package/dist/validValues/award.d.ts +214 -21
  84. package/dist/validValues/award.d.ts.map +1 -1
  85. package/dist/validValues/award.js +665 -662
  86. package/dist/validValues/awardMedal.d.ts +233 -18
  87. package/dist/validValues/awardMedal.d.ts.map +1 -1
  88. package/dist/validValues/awardMedal.js +921 -1148
  89. package/dist/validValues/beerStyle.d.ts +96 -18
  90. package/dist/validValues/beerStyle.d.ts.map +1 -1
  91. package/dist/validValues/beerStyle.js +381 -473
  92. package/dist/validValues/certification.d.ts +33 -19
  93. package/dist/validValues/certification.d.ts.map +1 -1
  94. package/dist/validValues/certification.js +144 -143
  95. package/dist/validValues/containerColor.d.ts +11 -18
  96. package/dist/validValues/containerColor.d.ts.map +1 -1
  97. package/dist/validValues/containerColor.js +41 -48
  98. package/dist/validValues/containerType.d.ts +8 -18
  99. package/dist/validValues/containerType.d.ts.map +1 -1
  100. package/dist/validValues/containerType.js +29 -33
  101. package/dist/validValues/country.d.ts +154 -23
  102. package/dist/validValues/country.d.ts.map +1 -1
  103. package/dist/validValues/country.js +452 -451
  104. package/dist/validValues/designation.d.ts +57 -629
  105. package/dist/validValues/designation.d.ts.map +1 -1
  106. package/dist/validValues/designation.js +109 -104
  107. package/dist/validValues/ingredient.d.ts +65 -30
  108. package/dist/validValues/ingredient.d.ts.map +1 -1
  109. package/dist/validValues/ingredient.js +271 -257
  110. package/dist/validValues/packagingCertification.d.ts +9 -33
  111. package/dist/validValues/packagingCertification.d.ts.map +1 -1
  112. package/dist/validValues/packagingCertification.js +29 -28
  113. package/dist/validValues/packagingMaterialType.d.ts +54 -28
  114. package/dist/validValues/packagingMaterialType.d.ts.map +1 -1
  115. package/dist/validValues/packagingMaterialType.js +264 -312
  116. package/dist/validValues/productType.d.ts +44 -22
  117. package/dist/validValues/productType.d.ts.map +1 -1
  118. package/dist/validValues/productType.js +126 -125
  119. package/dist/validValues/productionMethod.d.ts +15 -18
  120. package/dist/validValues/productionMethod.d.ts.map +1 -1
  121. package/dist/validValues/productionMethod.js +57 -68
  122. package/dist/validValues/region.d.ts +487 -16
  123. package/dist/validValues/region.d.ts.map +1 -1
  124. package/dist/validValues/region.js +4799 -4803
  125. package/dist/validValues/responsibleConsumptionLogo.d.ts +10 -19
  126. package/dist/validValues/responsibleConsumptionLogo.d.ts.map +1 -1
  127. package/dist/validValues/responsibleConsumptionLogo.js +29 -32
  128. package/dist/validValues/subregion.d.ts +1393 -12
  129. package/dist/validValues/subregion.d.ts.map +1 -1
  130. package/dist/validValues/subregion.js +12493 -11115
  131. package/dist/validValues/types/ValidValueDefinition.d.ts +23 -14
  132. package/dist/validValues/types/ValidValueDefinition.d.ts.map +1 -1
  133. package/dist/validValues/types/award_p85_100.js +2 -2
  134. package/dist/validValues/types/productTypesSpirit.js +2 -2
  135. package/dist/validValues/types/productTypesWine.js +2 -2
  136. package/dist/validValues/utils/createValidValues.d.ts +2 -2
  137. package/dist/validValues/utils/createValidValues.js +1 -1
  138. package/dist/validValues/utils/loadLocalizedData.d.ts +6 -0
  139. package/dist/validValues/utils/loadLocalizedData.d.ts.map +1 -0
  140. package/dist/validValues/utils/loadLocalizedData.js +20 -0
  141. package/dist/validValues/varietyName.d.ts +1961 -18
  142. package/dist/validValues/varietyName.d.ts.map +1 -1
  143. package/dist/validValues/varietyName.js +5883 -7840
  144. package/dist/validValues/wineColor.d.ts +7 -18
  145. package/dist/validValues/wineColor.d.ts.map +1 -1
  146. package/dist/validValues/wineColor.js +25 -28
  147. package/dist/validValues/wineType.d.ts +7 -18
  148. package/dist/validValues/wineType.d.ts.map +1 -1
  149. package/dist/validValues/wineType.js +25 -28
  150. package/dist/validValues.js +20 -20
  151. package/lingui.config.ts +4 -0
  152. package/package.json +2 -2
  153. package/src/core/translate.ts +6 -5
  154. package/src/index.ts +4 -1
  155. package/src/locales/po/bg.po +2529 -2521
  156. package/src/locales/po/bg.ts +1 -1
  157. package/src/locales/po/cs.po +2529 -2521
  158. package/src/locales/po/cs.ts +1 -1
  159. package/src/locales/po/da.po +2529 -2521
  160. package/src/locales/po/da.ts +1 -1
  161. package/src/locales/po/de.po +2529 -2521
  162. package/src/locales/po/de.ts +1 -1
  163. package/src/locales/po/ee.po +2529 -2521
  164. package/src/locales/po/ee.ts +1 -1
  165. package/src/locales/po/el.po +2529 -2521
  166. package/src/locales/po/el.ts +1 -1
  167. package/src/locales/po/en.po +2529 -2521
  168. package/src/locales/po/en.ts +1 -1
  169. package/src/locales/po/es.po +2529 -2521
  170. package/src/locales/po/es.ts +1 -1
  171. package/src/locales/po/fi.po +2529 -2521
  172. package/src/locales/po/fi.ts +1 -1
  173. package/src/locales/po/fr.po +2529 -2521
  174. package/src/locales/po/fr.ts +1 -1
  175. package/src/locales/po/ga.po +2529 -2521
  176. package/src/locales/po/ga.ts +1 -1
  177. package/src/locales/po/hr.po +2529 -2521
  178. package/src/locales/po/hr.ts +1 -1
  179. package/src/locales/po/hu.po +2529 -2521
  180. package/src/locales/po/hu.ts +1 -1
  181. package/src/locales/po/it.po +2529 -2521
  182. package/src/locales/po/it.ts +1 -1
  183. package/src/locales/po/lt.po +2529 -2521
  184. package/src/locales/po/lt.ts +1 -1
  185. package/src/locales/po/lv.po +2529 -2521
  186. package/src/locales/po/lv.ts +1 -1
  187. package/src/locales/po/mt.po +2529 -2521
  188. package/src/locales/po/mt.ts +1 -1
  189. package/src/locales/po/nl.po +2529 -2521
  190. package/src/locales/po/nl.ts +1 -1
  191. package/src/locales/po/pl.po +2529 -2521
  192. package/src/locales/po/pl.ts +1 -1
  193. package/src/locales/po/pt.po +2529 -2521
  194. package/src/locales/po/pt.ts +1 -1
  195. package/src/locales/po/ro.po +2529 -2521
  196. package/src/locales/po/ro.ts +1 -1
  197. package/src/locales/po/se.po +2529 -2521
  198. package/src/locales/po/se.ts +1 -1
  199. package/src/locales/po/si.po +2529 -2521
  200. package/src/locales/po/si.ts +1 -1
  201. package/src/locales/po/sk.po +2529 -2521
  202. package/src/locales/po/sk.ts +1 -1
  203. package/src/main.ts +12 -23
  204. package/src/scripts/transformArchitectureVV.js +34 -31
  205. package/src/scripts/transformServerVV.js +3 -3
  206. package/src/scripts/writeFields.not.test.js +38 -3
  207. package/src/validValues/award.ts +639 -841
  208. package/src/validValues/awardMedal.ts +695 -915
  209. package/src/validValues/beerStyle.ts +290 -375
  210. package/src/validValues/certification.ts +154 -139
  211. package/src/validValues/containerColor.ts +35 -35
  212. package/src/validValues/containerType.ts +26 -23
  213. package/src/validValues/country.ts +457 -452
  214. package/src/validValues/designation.ts +44 -87
  215. package/src/validValues/ingredient.ts +252 -230
  216. package/src/validValues/json/region.js +1 -0
  217. package/src/validValues/json/subregion.js +8 -0
  218. package/src/validValues/packagingCertification.ts +38 -42
  219. package/src/validValues/packagingMaterialType.ts +221 -267
  220. package/src/validValues/productType.ts +128 -126
  221. package/src/validValues/productionMethod.ts +47 -51
  222. package/src/validValues/region.ts +1464 -1947
  223. package/src/validValues/responsibleConsumptionLogo.ts +34 -24
  224. package/src/validValues/subregion.ts +4181 -4193
  225. package/src/validValues/types/ValidValueDefinition.ts +27 -14
  226. package/src/validValues/utils/loadLocalizedData.ts +11 -0
  227. package/src/validValues/varietyName.ts +5884 -7836
  228. package/src/validValues/wineColor.ts +23 -19
  229. package/src/validValues/wineType.ts +23 -19
  230. package/dist/validValues/json/appelation.d.ts +0 -2
  231. package/dist/validValues/json/appelation.d.ts.map +0 -1
  232. package/dist/validValues/types/Award.d.ts +0 -35
  233. package/dist/validValues/types/Award.d.ts.map +0 -1
  234. package/dist/validValues/types/Award.js +0 -5
  235. package/dist/validValues/types/Country.d.ts +0 -35
  236. package/dist/validValues/types/Country.d.ts.map +0 -1
  237. package/dist/validValues/types/Country.js +0 -5
  238. package/src/validValues/utils/createValidValues.ts +0 -76
@@ -1,134 +1,103 @@
1
- import type { MessageDescriptor } from '@lingui/core';
2
1
  import { defineMessage } from '@lingui/macro';
3
- import type { ProductType as ProductTypeKey } from './types/ProductTypeKey.js';
2
+ import { ValidValueDefinition } from './types/ValidValueDefinition.js';
4
3
 
5
- // I copied the original definition here because the one in the /types folder has diverged and doesn't follow the original idea.
6
- // I'd rather recommend keeping this a simple baseline than putting any possible option into it.
7
- interface ValidValueDefinition {
8
- title: MessageDescriptor;
9
- /**
10
- * Fields that will never be stored in the database,
11
- * because they are not relevant to the frontend rendering.
12
- * They are only used for the form, like grouping values for easier entry.
13
- */
14
- form?: {
15
- /**
16
- * A helpful description shown only when using the form.
17
- */
18
- description?: MessageDescriptor;
19
- };
20
- /**
21
- * Fields that are stored in the database together with each lookup value,
22
- * because they affect the frontend rendering.
23
- * They are also included in the hash values to detect breaking changes.
24
- *
25
- * We should try to avoid them if possible because if false positives:
26
- * Any change in one of those fields would lead to
27
- * eLabels that are marked as incompatible,
28
- * although there might be no user-visible changes.
29
- */
30
- frontend?: {};
31
- }
32
-
33
- interface DesignationInput extends ValidValueDefinition {}
4
+ interface Designation extends ValidValueDefinition {}
34
5
 
35
- /** Adds the key to the designation and makes sure we can only add valid designations. */
36
- const designation = <Key extends string>(
37
- key: Key,
38
- value: DesignationInput
39
- ) => ({
40
- ...value,
41
- key,
42
- });
6
+ /** Makes sure errors are displayed where the error is introduced. */
7
+ const designation = (value: Designation) => value;
43
8
 
44
- const allDesignations = [
45
- designation('brut', {
46
- title: defineMessage({
9
+ const allDesignations = {
10
+ brut: designation({
11
+ key: 'brut',
12
+ label: defineMessage({
47
13
  id: 'validValues.designation.brut',
48
14
  message: 'brut',
49
15
  }),
50
16
  }),
51
- designation('brut_nature', {
52
- title: defineMessage({
17
+ brut_nature: designation({
18
+ key: 'brut_nature',
19
+ label: defineMessage({
53
20
  id: 'validValues.designation.brut_nature',
54
21
  message: 'brut nature',
55
22
  }),
56
23
  }),
57
- designation('demi-sec', {
58
- title: defineMessage({
24
+ 'demi-sec': designation({
25
+ key: 'demi-sec',
26
+ label: defineMessage({
59
27
  id: 'validValues.designation.demi-sec',
60
28
  message: 'demi-sec',
61
29
  }),
62
30
  }),
63
- designation('dry', {
64
- title: defineMessage({
31
+ dry: designation({
32
+ key: 'dry',
33
+ label: defineMessage({
65
34
  id: 'validValues.designation.dry',
66
35
  message: 'dry',
67
36
  }),
68
37
  }),
69
- designation('extra_brut', {
70
- title: defineMessage({
38
+ extra_brut: designation({
39
+ key: 'extra_brut',
40
+ label: defineMessage({
71
41
  id: 'validValues.designation.extra_brut',
72
42
  message: 'extra brut',
73
43
  }),
74
44
  }),
75
- designation('extra_dry', {
76
- title: defineMessage({
45
+ extra_dry: designation({
46
+ key: 'extra_dry',
47
+ label: defineMessage({
77
48
  id: 'validValues.designation.extra_dry',
78
49
  message: 'extra dry',
79
50
  }),
80
51
  }),
81
- designation('feinherb', {
82
- title: defineMessage({
52
+ feinherb: designation({
53
+ key: 'feinherb',
54
+ label: defineMessage({
83
55
  id: 'validValues.designation.feinherb',
84
56
  message: 'feinherb',
85
57
  }),
86
58
  }),
87
- designation('lieblich', {
88
- title: defineMessage({
59
+ lieblich: designation({
60
+ key: 'lieblich',
61
+ label: defineMessage({
89
62
  id: 'validValues.designation.lieblich',
90
63
  message: 'lieblich',
91
64
  }),
92
65
  }),
93
- designation('semi', {
94
- title: defineMessage({
66
+ semi: designation({
67
+ key: 'semi',
68
+ label: defineMessage({
95
69
  id: 'validValues.designation.semi',
96
70
  message: 'semi-dry',
97
71
  }),
98
72
  }),
99
- designation('sweet', {
100
- title: defineMessage({
73
+ sweet: designation({
74
+ key: 'sweet',
75
+ label: defineMessage({
101
76
  id: 'validValues.designation.sweet',
102
77
  message: 'sweet/dessert',
103
78
  }),
104
79
  }),
105
- designation('semi_sweet', {
106
- title: defineMessage({
80
+ semi_sweet: designation({
81
+ key: 'semi_sweet',
82
+ label: defineMessage({
107
83
  id: 'validValues.designation.semi_sweet',
108
84
  message: 'semi-sweet',
109
85
  }),
110
86
  }),
111
- ] as const;
112
-
113
- type DesignationKey = typeof allDesignations[number]['key'];
114
- interface DesignationOutput extends DesignationInput {
115
- key: DesignationKey;
116
- }
87
+ } as const;
117
88
 
118
- const allDesignationsByKey = Object.fromEntries(
119
- allDesignations.map((designation) => [designation.key, designation])
120
- ) as Record<DesignationKey, DesignationOutput>;
89
+ export type DesignationKey = keyof typeof allDesignations;
121
90
 
122
91
  /** Makes sure we are only able to use valid keys. */
123
92
  function pick<Key extends DesignationKey>(keys: Key[]) {
124
93
  return Object.fromEntries(
125
- keys.map((key) => [key, allDesignationsByKey[key]])
126
- ) as Record<Key, DesignationOutput>;
94
+ keys.map((key) => [key, allDesignations[key]])
95
+ ) as Record<Key, Designation>;
127
96
  }
128
97
 
129
98
  // TODO Enforce/provide Autocomplete for product types here.
130
99
  // I think this will only be possible with the `satisfies` keyword coming in TS 4.9.
131
- const byProductType = {
100
+ export const byProductType = {
132
101
  beer: {},
133
102
  spirit_absinthe: {},
134
103
  spirit_anise: {},
@@ -177,16 +146,4 @@ const byProductType = {
177
146
  wine_aromatized: pick(['extra_dry', 'dry', 'semi', 'semi_sweet', 'sweet']),
178
147
  };
179
148
 
180
- const listByProductType = Object.fromEntries(
181
- (Object.keys(byProductType) as ProductTypeKey[]).map((type) => [
182
- type,
183
- Object.values(byProductType[type]),
184
- ])
185
- ) as Record<ProductTypeKey, DesignationOutput[]>;
186
-
187
- export default {
188
- byProductType,
189
- listByProductType,
190
- list: allDesignations,
191
- byId: allDesignationsByKey,
192
- };
149
+ export default allDesignations;