@bottlebooks/valid-values 2.1.0 → 3.1.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 (237) hide show
  1. package/CHANGELOG.md +39 -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.map +1 -1
  7. package/dist/index.js +7 -1
  8. package/dist/locales/po/bg.d.ts +3 -1
  9. package/dist/locales/po/bg.d.ts.map +1 -1
  10. package/dist/locales/po/bg.js +3 -1
  11. package/dist/locales/po/cs.d.ts +3 -1
  12. package/dist/locales/po/cs.d.ts.map +1 -1
  13. package/dist/locales/po/cs.js +3 -1
  14. package/dist/locales/po/da.d.ts +3 -1
  15. package/dist/locales/po/da.d.ts.map +1 -1
  16. package/dist/locales/po/da.js +3 -1
  17. package/dist/locales/po/de.d.ts +3 -1
  18. package/dist/locales/po/de.d.ts.map +1 -1
  19. package/dist/locales/po/de.js +3 -1
  20. package/dist/locales/po/ee.d.ts +3 -1
  21. package/dist/locales/po/ee.d.ts.map +1 -1
  22. package/dist/locales/po/ee.js +3 -1
  23. package/dist/locales/po/el.d.ts +3 -1
  24. package/dist/locales/po/el.d.ts.map +1 -1
  25. package/dist/locales/po/el.js +3 -1
  26. package/dist/locales/po/en.d.ts +3 -1
  27. package/dist/locales/po/en.d.ts.map +1 -1
  28. package/dist/locales/po/en.js +3 -1
  29. package/dist/locales/po/es.d.ts +3 -1
  30. package/dist/locales/po/es.d.ts.map +1 -1
  31. package/dist/locales/po/es.js +3 -1
  32. package/dist/locales/po/fi.d.ts +3 -1
  33. package/dist/locales/po/fi.d.ts.map +1 -1
  34. package/dist/locales/po/fi.js +3 -1
  35. package/dist/locales/po/fr.d.ts +3 -1
  36. package/dist/locales/po/fr.d.ts.map +1 -1
  37. package/dist/locales/po/fr.js +3 -1
  38. package/dist/locales/po/ga.d.ts +3 -1
  39. package/dist/locales/po/ga.d.ts.map +1 -1
  40. package/dist/locales/po/ga.js +3 -1
  41. package/dist/locales/po/hr.d.ts +3 -1
  42. package/dist/locales/po/hr.d.ts.map +1 -1
  43. package/dist/locales/po/hr.js +3 -1
  44. package/dist/locales/po/hu.d.ts +3 -1
  45. package/dist/locales/po/hu.d.ts.map +1 -1
  46. package/dist/locales/po/hu.js +3 -1
  47. package/dist/locales/po/it.d.ts +3 -1
  48. package/dist/locales/po/it.d.ts.map +1 -1
  49. package/dist/locales/po/it.js +3 -1
  50. package/dist/locales/po/lt.d.ts +3 -1
  51. package/dist/locales/po/lt.d.ts.map +1 -1
  52. package/dist/locales/po/lt.js +3 -1
  53. package/dist/locales/po/lv.d.ts +3 -1
  54. package/dist/locales/po/lv.d.ts.map +1 -1
  55. package/dist/locales/po/lv.js +3 -1
  56. package/dist/locales/po/mt.d.ts +3 -1
  57. package/dist/locales/po/mt.d.ts.map +1 -1
  58. package/dist/locales/po/mt.js +3 -1
  59. package/dist/locales/po/nl.d.ts +3 -1
  60. package/dist/locales/po/nl.d.ts.map +1 -1
  61. package/dist/locales/po/nl.js +3 -1
  62. package/dist/locales/po/pl.d.ts +3 -1
  63. package/dist/locales/po/pl.d.ts.map +1 -1
  64. package/dist/locales/po/pl.js +3 -1
  65. package/dist/locales/po/pt.d.ts +3 -1
  66. package/dist/locales/po/pt.d.ts.map +1 -1
  67. package/dist/locales/po/pt.js +3 -1
  68. package/dist/locales/po/ro.d.ts +3 -1
  69. package/dist/locales/po/ro.d.ts.map +1 -1
  70. package/dist/locales/po/ro.js +3 -1
  71. package/dist/locales/po/se.d.ts +3 -1
  72. package/dist/locales/po/se.d.ts.map +1 -1
  73. package/dist/locales/po/se.js +3 -1
  74. package/dist/locales/po/si.d.ts +3 -1
  75. package/dist/locales/po/si.d.ts.map +1 -1
  76. package/dist/locales/po/si.js +3 -1
  77. package/dist/locales/po/sk.d.ts +3 -1
  78. package/dist/locales/po/sk.d.ts.map +1 -1
  79. package/dist/locales/po/sk.js +3 -1
  80. package/dist/main.d.ts.map +1 -1
  81. package/dist/main.js +14 -14
  82. package/dist/validValues/award.d.ts +214 -21
  83. package/dist/validValues/award.d.ts.map +1 -1
  84. package/dist/validValues/award.js +665 -662
  85. package/dist/validValues/awardMedal.d.ts +233 -18
  86. package/dist/validValues/awardMedal.d.ts.map +1 -1
  87. package/dist/validValues/awardMedal.js +921 -1148
  88. package/dist/validValues/beerStyle.d.ts +96 -18
  89. package/dist/validValues/beerStyle.d.ts.map +1 -1
  90. package/dist/validValues/beerStyle.js +381 -473
  91. package/dist/validValues/certification.d.ts +33 -19
  92. package/dist/validValues/certification.d.ts.map +1 -1
  93. package/dist/validValues/certification.js +144 -143
  94. package/dist/validValues/containerColor.d.ts +11 -18
  95. package/dist/validValues/containerColor.d.ts.map +1 -1
  96. package/dist/validValues/containerColor.js +41 -48
  97. package/dist/validValues/containerType.d.ts +8 -18
  98. package/dist/validValues/containerType.d.ts.map +1 -1
  99. package/dist/validValues/containerType.js +29 -33
  100. package/dist/validValues/country.d.ts +154 -23
  101. package/dist/validValues/country.d.ts.map +1 -1
  102. package/dist/validValues/country.js +452 -451
  103. package/dist/validValues/designation.d.ts +57 -629
  104. package/dist/validValues/designation.d.ts.map +1 -1
  105. package/dist/validValues/designation.js +109 -104
  106. package/dist/validValues/ingredient.d.ts +65 -30
  107. package/dist/validValues/ingredient.d.ts.map +1 -1
  108. package/dist/validValues/ingredient.js +271 -257
  109. package/dist/validValues/packagingCertification.d.ts +9 -33
  110. package/dist/validValues/packagingCertification.d.ts.map +1 -1
  111. package/dist/validValues/packagingCertification.js +29 -28
  112. package/dist/validValues/packagingMaterialType.d.ts +54 -28
  113. package/dist/validValues/packagingMaterialType.d.ts.map +1 -1
  114. package/dist/validValues/packagingMaterialType.js +265 -313
  115. package/dist/validValues/productType.d.ts +44 -22
  116. package/dist/validValues/productType.d.ts.map +1 -1
  117. package/dist/validValues/productType.js +126 -125
  118. package/dist/validValues/productionMethod.d.ts +15 -18
  119. package/dist/validValues/productionMethod.d.ts.map +1 -1
  120. package/dist/validValues/productionMethod.js +57 -68
  121. package/dist/validValues/region.d.ts +487 -16
  122. package/dist/validValues/region.d.ts.map +1 -1
  123. package/dist/validValues/region.js +4799 -4803
  124. package/dist/validValues/responsibleConsumptionLogo.d.ts +10 -19
  125. package/dist/validValues/responsibleConsumptionLogo.d.ts.map +1 -1
  126. package/dist/validValues/responsibleConsumptionLogo.js +29 -32
  127. package/dist/validValues/subregion.d.ts +1393 -12
  128. package/dist/validValues/subregion.d.ts.map +1 -1
  129. package/dist/validValues/subregion.js +12493 -11115
  130. package/dist/validValues/types/ValidValueDefinition.d.ts +23 -14
  131. package/dist/validValues/types/ValidValueDefinition.d.ts.map +1 -1
  132. package/dist/validValues/types/award_p85_100.js +2 -2
  133. package/dist/validValues/types/productTypesSpirit.js +2 -2
  134. package/dist/validValues/types/productTypesWine.js +2 -2
  135. package/dist/validValues/utils/createValidValues.d.ts +4 -3
  136. package/dist/validValues/utils/createValidValues.d.ts.map +1 -1
  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/package.json +2 -2
  152. package/src/core/translate.ts +6 -5
  153. package/src/index.ts +3 -2
  154. package/src/locales/po/bg.po +10 -2
  155. package/src/locales/po/bg.ts +1 -1
  156. package/src/locales/po/cs.po +10 -2
  157. package/src/locales/po/cs.ts +1 -1
  158. package/src/locales/po/da.po +10 -2
  159. package/src/locales/po/da.ts +1 -1
  160. package/src/locales/po/de.po +10 -2
  161. package/src/locales/po/de.ts +1 -1
  162. package/src/locales/po/ee.po +10 -2
  163. package/src/locales/po/ee.ts +1 -1
  164. package/src/locales/po/el.po +10 -2
  165. package/src/locales/po/el.ts +1 -1
  166. package/src/locales/po/en.po +12 -4
  167. package/src/locales/po/en.ts +1 -1
  168. package/src/locales/po/es.po +10 -2
  169. package/src/locales/po/es.ts +1 -1
  170. package/src/locales/po/fi.po +10 -2
  171. package/src/locales/po/fi.ts +1 -1
  172. package/src/locales/po/fr.po +10 -2
  173. package/src/locales/po/fr.ts +1 -1
  174. package/src/locales/po/ga.po +10 -2
  175. package/src/locales/po/ga.ts +1 -1
  176. package/src/locales/po/hr.po +10 -2
  177. package/src/locales/po/hr.ts +1 -1
  178. package/src/locales/po/hu.po +10 -2
  179. package/src/locales/po/hu.ts +1 -1
  180. package/src/locales/po/it.po +10 -2
  181. package/src/locales/po/it.ts +1 -1
  182. package/src/locales/po/lt.po +10 -2
  183. package/src/locales/po/lt.ts +1 -1
  184. package/src/locales/po/lv.po +10 -2
  185. package/src/locales/po/lv.ts +1 -1
  186. package/src/locales/po/mt.po +10 -2
  187. package/src/locales/po/mt.ts +1 -1
  188. package/src/locales/po/nl.po +10 -2
  189. package/src/locales/po/nl.ts +1 -1
  190. package/src/locales/po/pl.po +10 -2
  191. package/src/locales/po/pl.ts +1 -1
  192. package/src/locales/po/pt.po +10 -2
  193. package/src/locales/po/pt.ts +1 -1
  194. package/src/locales/po/ro.po +10 -2
  195. package/src/locales/po/ro.ts +1 -1
  196. package/src/locales/po/se.po +10 -2
  197. package/src/locales/po/se.ts +1 -1
  198. package/src/locales/po/si.po +10 -2
  199. package/src/locales/po/si.ts +1 -1
  200. package/src/locales/po/sk.po +10 -2
  201. package/src/locales/po/sk.ts +1 -1
  202. package/src/main.ts +12 -23
  203. package/src/scripts/transformArchitectureVV.js +34 -31
  204. package/src/scripts/transformServerVV.js +3 -3
  205. package/src/scripts/writeFields.not.test.js +38 -3
  206. package/src/validValues/award.ts +639 -841
  207. package/src/validValues/awardMedal.ts +695 -915
  208. package/src/validValues/beerStyle.ts +290 -375
  209. package/src/validValues/certification.ts +154 -139
  210. package/src/validValues/containerColor.ts +35 -35
  211. package/src/validValues/containerType.ts +26 -23
  212. package/src/validValues/country.ts +457 -452
  213. package/src/validValues/designation.ts +44 -87
  214. package/src/validValues/ingredient.ts +252 -230
  215. package/src/validValues/json/region.js +1 -0
  216. package/src/validValues/json/subregion.js +7 -0
  217. package/src/validValues/packagingCertification.ts +38 -42
  218. package/src/validValues/packagingMaterialType.ts +222 -268
  219. package/src/validValues/productType.ts +128 -126
  220. package/src/validValues/productionMethod.ts +47 -51
  221. package/src/validValues/region.ts +1464 -1947
  222. package/src/validValues/responsibleConsumptionLogo.ts +34 -24
  223. package/src/validValues/subregion.ts +4181 -4193
  224. package/src/validValues/types/ValidValueDefinition.ts +27 -14
  225. package/src/validValues/utils/loadLocalizedData.ts +11 -0
  226. package/src/validValues/varietyName.ts +5884 -7836
  227. package/src/validValues/wineColor.ts +23 -19
  228. package/src/validValues/wineType.ts +23 -19
  229. package/dist/validValues/json/appelation.d.ts +0 -2
  230. package/dist/validValues/json/appelation.d.ts.map +0 -1
  231. package/dist/validValues/types/Award.d.ts +0 -35
  232. package/dist/validValues/types/Award.d.ts.map +0 -1
  233. package/dist/validValues/types/Award.js +0 -5
  234. package/dist/validValues/types/Country.d.ts +0 -35
  235. package/dist/validValues/types/Country.d.ts.map +0 -1
  236. package/dist/validValues/types/Country.js +0 -5
  237. 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;