@budiauktioner/buildi-primitives 0.1.1 → 0.2.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 (1082) hide show
  1. package/BREAKING_CHANGES.md +81 -0
  2. package/CHANGELOG.md +58 -1
  3. package/PARITY.md +202 -0
  4. package/README.md +58 -9
  5. package/dist/cjs/banking/bank-resolver.js +378 -0
  6. package/dist/cjs/banking/bank-resolver.js.map +7 -0
  7. package/dist/cjs/banking/bic.js +189 -0
  8. package/dist/cjs/banking/bic.js.map +7 -0
  9. package/dist/cjs/banking/iban.js +314 -0
  10. package/dist/cjs/banking/iban.js.map +7 -0
  11. package/dist/cjs/banking/index.js +60 -0
  12. package/dist/cjs/banking/index.js.map +7 -0
  13. package/dist/cjs/banking/swedish-bank-account-holder-name.js +124 -0
  14. package/dist/cjs/banking/swedish-bank-account-holder-name.js.map +7 -0
  15. package/dist/cjs/banking/swedish-bank-account.js +211 -0
  16. package/dist/cjs/banking/swedish-bank-account.js.map +7 -0
  17. package/dist/cjs/banking/swedish-bank-clearing-number.js +156 -0
  18. package/dist/cjs/banking/swedish-bank-clearing-number.js.map +7 -0
  19. package/dist/cjs/banking/swedish-bank.js +89 -0
  20. package/dist/cjs/banking/swedish-bank.js.map +7 -0
  21. package/dist/cjs/banking/swedish-bankgiro-number.js +176 -0
  22. package/dist/cjs/banking/swedish-bankgiro-number.js.map +7 -0
  23. package/dist/cjs/banking/swedish-banking-number.js +201 -0
  24. package/dist/cjs/banking/swedish-banking-number.js.map +7 -0
  25. package/dist/cjs/banking/swedish-ocr-reference-number.js +215 -0
  26. package/dist/cjs/banking/swedish-ocr-reference-number.js.map +7 -0
  27. package/dist/cjs/banking/swedish-postgiro-number.js +173 -0
  28. package/dist/cjs/banking/swedish-postgiro-number.js.map +7 -0
  29. package/dist/cjs/banking/swedish-swish-number.js +165 -0
  30. package/dist/cjs/banking/swedish-swish-number.js.map +7 -0
  31. package/dist/cjs/contact/address-city.js +104 -0
  32. package/dist/cjs/contact/address-city.js.map +7 -0
  33. package/dist/cjs/contact/address-street.js +220 -0
  34. package/dist/cjs/contact/address-street.js.map +7 -0
  35. package/dist/cjs/contact/address-zip-code.js +195 -0
  36. package/dist/cjs/contact/address-zip-code.js.map +7 -0
  37. package/dist/cjs/contact/address.js +405 -0
  38. package/dist/cjs/contact/address.js.map +7 -0
  39. package/dist/cjs/contact/contact-address.js +142 -0
  40. package/dist/cjs/contact/contact-address.js.map +7 -0
  41. package/dist/cjs/contact/contact-external-links.js +39 -0
  42. package/dist/cjs/contact/contact-external-links.js.map +7 -0
  43. package/dist/cjs/contact/contact-lookup.js +31 -0
  44. package/dist/cjs/contact/contact-lookup.js.map +7 -0
  45. package/dist/cjs/contact/contact-masking.js +117 -0
  46. package/dist/cjs/contact/contact-masking.js.map +7 -0
  47. package/dist/cjs/contact/country-address-factory.js +97 -0
  48. package/dist/cjs/contact/country-address-factory.js.map +7 -0
  49. package/dist/cjs/contact/country-address-registry.js +36 -0
  50. package/dist/cjs/contact/country-address-registry.js.map +7 -0
  51. package/dist/cjs/contact/country-address.js +98 -0
  52. package/dist/cjs/contact/country-address.js.map +7 -0
  53. package/dist/cjs/contact/country-addresses.js +346 -0
  54. package/dist/cjs/contact/country-addresses.js.map +7 -0
  55. package/dist/cjs/contact/country-zip-code-factory.js +117 -0
  56. package/dist/cjs/contact/country-zip-code-factory.js.map +7 -0
  57. package/dist/cjs/contact/country-zip-codes.js +376 -0
  58. package/dist/cjs/contact/country-zip-codes.js.map +7 -0
  59. package/dist/cjs/contact/index.js +72 -0
  60. package/dist/cjs/contact/index.js.map +7 -0
  61. package/dist/cjs/contact/phone-calling-code.js +439 -0
  62. package/dist/cjs/contact/phone-calling-code.js.map +7 -0
  63. package/dist/cjs/contact/phone-number-test-data.js +63 -0
  64. package/dist/cjs/contact/phone-number-test-data.js.map +7 -0
  65. package/dist/cjs/contact/phone-number.js +325 -0
  66. package/dist/cjs/contact/phone-number.js.map +7 -0
  67. package/dist/cjs/contact/register-default-country-addresses.js +88 -0
  68. package/dist/cjs/contact/register-default-country-addresses.js.map +7 -0
  69. package/dist/cjs/contact/swedish-address-zip-code.js +92 -0
  70. package/dist/cjs/contact/swedish-address-zip-code.js.map +7 -0
  71. package/dist/cjs/contact/swedish-address.js +169 -0
  72. package/dist/cjs/contact/swedish-address.js.map +7 -0
  73. package/dist/cjs/finance/currency.js +251 -0
  74. package/dist/cjs/finance/currency.js.map +7 -0
  75. package/dist/cjs/finance/exchange-rates.js +51 -0
  76. package/dist/cjs/finance/exchange-rates.js.map +7 -0
  77. package/dist/cjs/finance/index.js +34 -0
  78. package/dist/cjs/finance/index.js.map +7 -0
  79. package/dist/cjs/finance/isin.js +161 -0
  80. package/dist/cjs/finance/isin.js.map +7 -0
  81. package/dist/cjs/finance/money-amount.js +307 -0
  82. package/dist/cjs/finance/money-amount.js.map +7 -0
  83. package/dist/cjs/geography/adjacency-data.js +335 -0
  84. package/dist/cjs/geography/adjacency-data.js.map +7 -0
  85. package/dist/cjs/geography/continent.js +125 -0
  86. package/dist/cjs/geography/continent.js.map +7 -0
  87. package/dist/cjs/geography/country-capital.js +45 -0
  88. package/dist/cjs/geography/country-capital.js.map +7 -0
  89. package/dist/cjs/geography/country-capitals.js +288 -0
  90. package/dist/cjs/geography/country-capitals.js.map +7 -0
  91. package/dist/cjs/geography/country-coordinates.js +238 -0
  92. package/dist/cjs/geography/country-coordinates.js.map +7 -0
  93. package/dist/cjs/geography/country-data.js +530 -0
  94. package/dist/cjs/geography/country-data.js.map +7 -0
  95. package/dist/cjs/geography/country-metadata.js +627 -0
  96. package/dist/cjs/geography/country-metadata.js.map +7 -0
  97. package/dist/cjs/geography/country.js +427 -0
  98. package/dist/cjs/geography/country.js.map +7 -0
  99. package/dist/cjs/geography/geo-coordinate.js +244 -0
  100. package/dist/cjs/geography/geo-coordinate.js.map +7 -0
  101. package/dist/cjs/geography/geography-extensions.js +82 -0
  102. package/dist/cjs/geography/geography-extensions.js.map +7 -0
  103. package/dist/cjs/geography/geography-external-links.js +52 -0
  104. package/dist/cjs/geography/geography-external-links.js.map +7 -0
  105. package/dist/cjs/geography/geography-lookup.js +31 -0
  106. package/dist/cjs/geography/geography-lookup.js.map +7 -0
  107. package/dist/cjs/geography/geography-masking.js +54 -0
  108. package/dist/cjs/geography/geography-masking.js.map +7 -0
  109. package/dist/cjs/geography/index.js +57 -0
  110. package/dist/cjs/geography/index.js.map +7 -0
  111. package/dist/cjs/geography/language.js +462 -0
  112. package/dist/cjs/geography/language.js.map +7 -0
  113. package/dist/cjs/geography/swedish-county.js +232 -0
  114. package/dist/cjs/geography/swedish-county.js.map +7 -0
  115. package/dist/cjs/geography/swedish-municipality-data.js +316 -0
  116. package/dist/cjs/geography/swedish-municipality-data.js.map +7 -0
  117. package/dist/cjs/geography/swedish-municipality.js +218 -0
  118. package/dist/cjs/geography/swedish-municipality.js.map +7 -0
  119. package/dist/cjs/index.js +33 -0
  120. package/dist/cjs/index.js.map +7 -0
  121. package/dist/cjs/internal/case-folding.js +32 -0
  122. package/dist/cjs/internal/case-folding.js.map +7 -0
  123. package/dist/cjs/internal/clock.js +32 -0
  124. package/dist/cjs/internal/clock.js.map +7 -0
  125. package/dist/cjs/internal/decimal.js +262 -0
  126. package/dist/cjs/internal/decimal.js.map +7 -0
  127. package/dist/cjs/internal/gs1-prefix.js +164 -0
  128. package/dist/cjs/internal/gs1-prefix.js.map +7 -0
  129. package/dist/cjs/internal/gtin-check-digit.js +46 -0
  130. package/dist/cjs/internal/gtin-check-digit.js.map +7 -0
  131. package/dist/cjs/internal/input-sanitization.js +79 -0
  132. package/dist/cjs/internal/input-sanitization.js.map +7 -0
  133. package/dist/cjs/internal/luhn.js +40 -0
  134. package/dist/cjs/internal/luhn.js.map +7 -0
  135. package/dist/cjs/internal/measurement-unit-parser.js +86 -0
  136. package/dist/cjs/internal/measurement-unit-parser.js.map +7 -0
  137. package/dist/cjs/internal/measurement-unit.js +130 -0
  138. package/dist/cjs/internal/measurement-unit.js.map +7 -0
  139. package/dist/cjs/internal/quantity.js +122 -0
  140. package/dist/cjs/internal/quantity.js.map +7 -0
  141. package/dist/cjs/internal/shoe-size-format.js +31 -0
  142. package/dist/cjs/internal/shoe-size-format.js.map +7 -0
  143. package/dist/cjs/measurement/area-unit.js +158 -0
  144. package/dist/cjs/measurement/area-unit.js.map +7 -0
  145. package/dist/cjs/measurement/area.js +183 -0
  146. package/dist/cjs/measurement/area.js.map +7 -0
  147. package/dist/cjs/measurement/count.js +132 -0
  148. package/dist/cjs/measurement/count.js.map +7 -0
  149. package/dist/cjs/measurement/data-size-unit.js +208 -0
  150. package/dist/cjs/measurement/data-size-unit.js.map +7 -0
  151. package/dist/cjs/measurement/data-size.js +207 -0
  152. package/dist/cjs/measurement/data-size.js.map +7 -0
  153. package/dist/cjs/measurement/electric-charge-unit.js +109 -0
  154. package/dist/cjs/measurement/electric-charge-unit.js.map +7 -0
  155. package/dist/cjs/measurement/electric-charge.js +148 -0
  156. package/dist/cjs/measurement/electric-charge.js.map +7 -0
  157. package/dist/cjs/measurement/electric-current-unit.js +108 -0
  158. package/dist/cjs/measurement/electric-current-unit.js.map +7 -0
  159. package/dist/cjs/measurement/electric-current.js +154 -0
  160. package/dist/cjs/measurement/electric-current.js.map +7 -0
  161. package/dist/cjs/measurement/energy-unit.js +201 -0
  162. package/dist/cjs/measurement/energy-unit.js.map +7 -0
  163. package/dist/cjs/measurement/energy.js +207 -0
  164. package/dist/cjs/measurement/energy.js.map +7 -0
  165. package/dist/cjs/measurement/flow-rate-unit.js +132 -0
  166. package/dist/cjs/measurement/flow-rate-unit.js.map +7 -0
  167. package/dist/cjs/measurement/flow-rate.js +162 -0
  168. package/dist/cjs/measurement/flow-rate.js.map +7 -0
  169. package/dist/cjs/measurement/frequency-unit.js +132 -0
  170. package/dist/cjs/measurement/frequency-unit.js.map +7 -0
  171. package/dist/cjs/measurement/frequency.js +165 -0
  172. package/dist/cjs/measurement/frequency.js.map +7 -0
  173. package/dist/cjs/measurement/index.js +136 -0
  174. package/dist/cjs/measurement/index.js.map +7 -0
  175. package/dist/cjs/measurement/length-unit.js +210 -0
  176. package/dist/cjs/measurement/length-unit.js.map +7 -0
  177. package/dist/cjs/measurement/length.js +208 -0
  178. package/dist/cjs/measurement/length.js.map +7 -0
  179. package/dist/cjs/measurement/luminance-unit.js +110 -0
  180. package/dist/cjs/measurement/luminance-unit.js.map +7 -0
  181. package/dist/cjs/measurement/luminance.js +158 -0
  182. package/dist/cjs/measurement/luminance.js.map +7 -0
  183. package/dist/cjs/measurement/luminous-flux-unit.js +86 -0
  184. package/dist/cjs/measurement/luminous-flux-unit.js.map +7 -0
  185. package/dist/cjs/measurement/luminous-flux.js +139 -0
  186. package/dist/cjs/measurement/luminous-flux.js.map +7 -0
  187. package/dist/cjs/measurement/percentage.js +212 -0
  188. package/dist/cjs/measurement/percentage.js.map +7 -0
  189. package/dist/cjs/measurement/power-unit.js +155 -0
  190. package/dist/cjs/measurement/power-unit.js.map +7 -0
  191. package/dist/cjs/measurement/power.js +184 -0
  192. package/dist/cjs/measurement/power.js.map +7 -0
  193. package/dist/cjs/measurement/pressure-unit.js +168 -0
  194. package/dist/cjs/measurement/pressure-unit.js.map +7 -0
  195. package/dist/cjs/measurement/pressure.js +189 -0
  196. package/dist/cjs/measurement/pressure.js.map +7 -0
  197. package/dist/cjs/measurement/rotational-speed-unit.js +96 -0
  198. package/dist/cjs/measurement/rotational-speed-unit.js.map +7 -0
  199. package/dist/cjs/measurement/rotational-speed.js +152 -0
  200. package/dist/cjs/measurement/rotational-speed.js.map +7 -0
  201. package/dist/cjs/measurement/sound-level.js +185 -0
  202. package/dist/cjs/measurement/sound-level.js.map +7 -0
  203. package/dist/cjs/measurement/speed-unit.js +119 -0
  204. package/dist/cjs/measurement/speed-unit.js.map +7 -0
  205. package/dist/cjs/measurement/speed.js +159 -0
  206. package/dist/cjs/measurement/speed.js.map +7 -0
  207. package/dist/cjs/measurement/temperature-delta.js +101 -0
  208. package/dist/cjs/measurement/temperature-delta.js.map +7 -0
  209. package/dist/cjs/measurement/temperature-unit.js +130 -0
  210. package/dist/cjs/measurement/temperature-unit.js.map +7 -0
  211. package/dist/cjs/measurement/temperature.js +216 -0
  212. package/dist/cjs/measurement/temperature.js.map +7 -0
  213. package/dist/cjs/measurement/torque-unit.js +138 -0
  214. package/dist/cjs/measurement/torque-unit.js.map +7 -0
  215. package/dist/cjs/measurement/torque.js +165 -0
  216. package/dist/cjs/measurement/torque.js.map +7 -0
  217. package/dist/cjs/measurement/voltage-unit.js +127 -0
  218. package/dist/cjs/measurement/voltage-unit.js.map +7 -0
  219. package/dist/cjs/measurement/voltage.js +159 -0
  220. package/dist/cjs/measurement/voltage.js.map +7 -0
  221. package/dist/cjs/measurement/volume-unit.js +178 -0
  222. package/dist/cjs/measurement/volume-unit.js.map +7 -0
  223. package/dist/cjs/measurement/volume.js +195 -0
  224. package/dist/cjs/measurement/volume.js.map +7 -0
  225. package/dist/cjs/measurement/weight-unit.js +158 -0
  226. package/dist/cjs/measurement/weight-unit.js.map +7 -0
  227. package/dist/cjs/measurement/weight.js +183 -0
  228. package/dist/cjs/measurement/weight.js.map +7 -0
  229. package/dist/cjs/measurement/year-month.js +204 -0
  230. package/dist/cjs/measurement/year-month.js.map +7 -0
  231. package/dist/cjs/measurement/year.js +109 -0
  232. package/dist/cjs/measurement/year.js.map +7 -0
  233. package/dist/cjs/organization/duns-number.js +114 -0
  234. package/dist/cjs/organization/duns-number.js.map +7 -0
  235. package/dist/cjs/organization/elf-code.js +132 -0
  236. package/dist/cjs/organization/elf-code.js.map +7 -0
  237. package/dist/cjs/organization/eu-organization-name.js +119 -0
  238. package/dist/cjs/organization/eu-organization-name.js.map +7 -0
  239. package/dist/cjs/organization/eu-vat-number.js +444 -0
  240. package/dist/cjs/organization/eu-vat-number.js.map +7 -0
  241. package/dist/cjs/organization/index.js +65 -0
  242. package/dist/cjs/organization/index.js.map +7 -0
  243. package/dist/cjs/organization/lei-code.js +133 -0
  244. package/dist/cjs/organization/lei-code.js.map +7 -0
  245. package/dist/cjs/organization/organization-extensions.js +80 -0
  246. package/dist/cjs/organization/organization-extensions.js.map +7 -0
  247. package/dist/cjs/organization/organization-validation-utils.js +78 -0
  248. package/dist/cjs/organization/organization-validation-utils.js.map +7 -0
  249. package/dist/cjs/organization/swedish-cfar-number.js +88 -0
  250. package/dist/cjs/organization/swedish-cfar-number.js.map +7 -0
  251. package/dist/cjs/organization/swedish-organization-identifier-type.js +34 -0
  252. package/dist/cjs/organization/swedish-organization-identifier-type.js.map +7 -0
  253. package/dist/cjs/organization/swedish-organization-identifier.js +166 -0
  254. package/dist/cjs/organization/swedish-organization-identifier.js.map +7 -0
  255. package/dist/cjs/organization/swedish-organization-name.js +255 -0
  256. package/dist/cjs/organization/swedish-organization-name.js.map +7 -0
  257. package/dist/cjs/organization/swedish-organization-number.js +289 -0
  258. package/dist/cjs/organization/swedish-organization-number.js.map +7 -0
  259. package/dist/cjs/organization/swedish-organization-type.js +51 -0
  260. package/dist/cjs/organization/swedish-organization-type.js.map +7 -0
  261. package/dist/cjs/organization/swedish-sni-code.js +96 -0
  262. package/dist/cjs/organization/swedish-sni-code.js.map +7 -0
  263. package/dist/cjs/package.json +3 -0
  264. package/dist/cjs/person/index.js +49 -0
  265. package/dist/cjs/person/index.js.map +7 -0
  266. package/dist/cjs/person/person-age.js +187 -0
  267. package/dist/cjs/person/person-age.js.map +7 -0
  268. package/dist/cjs/person/person-family-name.js +83 -0
  269. package/dist/cjs/person/person-family-name.js.map +7 -0
  270. package/dist/cjs/person/person-full-name.js +106 -0
  271. package/dist/cjs/person/person-full-name.js.map +7 -0
  272. package/dist/cjs/person/person-given-name.js +103 -0
  273. package/dist/cjs/person/person-given-name.js.map +7 -0
  274. package/dist/cjs/person/person-masking.js +48 -0
  275. package/dist/cjs/person/person-masking.js.map +7 -0
  276. package/dist/cjs/person/person-name-normalization.js +99 -0
  277. package/dist/cjs/person/person-name-normalization.js.map +7 -0
  278. package/dist/cjs/person/personnummer-parser.js +156 -0
  279. package/dist/cjs/person/personnummer-parser.js.map +7 -0
  280. package/dist/cjs/person/swedish-coordination-number.js +186 -0
  281. package/dist/cjs/person/swedish-coordination-number.js.map +7 -0
  282. package/dist/cjs/person/swedish-personal-identity-number.js +188 -0
  283. package/dist/cjs/person/swedish-personal-identity-number.js.map +7 -0
  284. package/dist/cjs/primitive-type-info.js +17 -0
  285. package/dist/cjs/primitive-type-info.js.map +7 -0
  286. package/dist/cjs/primitives-defaults.js +92 -0
  287. package/dist/cjs/primitives-defaults.js.map +7 -0
  288. package/dist/cjs/product/adult-clothing-size.js +148 -0
  289. package/dist/cjs/product/adult-clothing-size.js.map +7 -0
  290. package/dist/cjs/product/adult-shoe-size.js +139 -0
  291. package/dist/cjs/product/adult-shoe-size.js.map +7 -0
  292. package/dist/cjs/product/aspect-ratio.js +188 -0
  293. package/dist/cjs/product/aspect-ratio.js.map +7 -0
  294. package/dist/cjs/product/battery-capacity.js +184 -0
  295. package/dist/cjs/product/battery-capacity.js.map +7 -0
  296. package/dist/cjs/product/battery-chemistry.js +259 -0
  297. package/dist/cjs/product/battery-chemistry.js.map +7 -0
  298. package/dist/cjs/product/camera-resolution.js +161 -0
  299. package/dist/cjs/product/camera-resolution.js.map +7 -0
  300. package/dist/cjs/product/child-clothing-size.js +254 -0
  301. package/dist/cjs/product/child-clothing-size.js.map +7 -0
  302. package/dist/cjs/product/child-shoe-size.js +200 -0
  303. package/dist/cjs/product/child-shoe-size.js.map +7 -0
  304. package/dist/cjs/product/clothing-fit.js +223 -0
  305. package/dist/cjs/product/clothing-fit.js.map +7 -0
  306. package/dist/cjs/product/clothing-gender.js +198 -0
  307. package/dist/cjs/product/clothing-gender.js.map +7 -0
  308. package/dist/cjs/product/clothing-season.js +202 -0
  309. package/dist/cjs/product/clothing-season.js.map +7 -0
  310. package/dist/cjs/product/clothing-size-system.js +31 -0
  311. package/dist/cjs/product/clothing-size-system.js.map +7 -0
  312. package/dist/cjs/product/clothing-size.js +146 -0
  313. package/dist/cjs/product/clothing-size.js.map +7 -0
  314. package/dist/cjs/product/color.js +334 -0
  315. package/dist/cjs/product/color.js.map +7 -0
  316. package/dist/cjs/product/display-panel-type.js +287 -0
  317. package/dist/cjs/product/display-panel-type.js.map +7 -0
  318. package/dist/cjs/product/electrical-phase.js +194 -0
  319. package/dist/cjs/product/electrical-phase.js.map +7 -0
  320. package/dist/cjs/product/energy-scale.js +31 -0
  321. package/dist/cjs/product/energy-scale.js.map +7 -0
  322. package/dist/cjs/product/eu-energy-efficiency-class.js +135 -0
  323. package/dist/cjs/product/eu-energy-efficiency-class.js.map +7 -0
  324. package/dist/cjs/product/google-product-category.js +114 -0
  325. package/dist/cjs/product/google-product-category.js.map +7 -0
  326. package/dist/cjs/product/gtin.js +99 -0
  327. package/dist/cjs/product/gtin.js.map +7 -0
  328. package/dist/cjs/product/gtin12.js +130 -0
  329. package/dist/cjs/product/gtin12.js.map +7 -0
  330. package/dist/cjs/product/gtin13.js +147 -0
  331. package/dist/cjs/product/gtin13.js.map +7 -0
  332. package/dist/cjs/product/gtin14.js +135 -0
  333. package/dist/cjs/product/gtin14.js.map +7 -0
  334. package/dist/cjs/product/gtin8.js +130 -0
  335. package/dist/cjs/product/gtin8.js.map +7 -0
  336. package/dist/cjs/product/hs-code-level.js +32 -0
  337. package/dist/cjs/product/hs-code-level.js.map +7 -0
  338. package/dist/cjs/product/hs-code.js +126 -0
  339. package/dist/cjs/product/hs-code.js.map +7 -0
  340. package/dist/cjs/product/index.js +128 -0
  341. package/dist/cjs/product/index.js.map +7 -0
  342. package/dist/cjs/product/ip-rating.js +166 -0
  343. package/dist/cjs/product/ip-rating.js.map +7 -0
  344. package/dist/cjs/product/operating-system-family.js +37 -0
  345. package/dist/cjs/product/operating-system-family.js.map +7 -0
  346. package/dist/cjs/product/operating-system-info.js +100 -0
  347. package/dist/cjs/product/operating-system-info.js.map +7 -0
  348. package/dist/cjs/product/operating-system-name.js +127 -0
  349. package/dist/cjs/product/operating-system-name.js.map +7 -0
  350. package/dist/cjs/product/operating-system-version.js +110 -0
  351. package/dist/cjs/product/operating-system-version.js.map +7 -0
  352. package/dist/cjs/product/power-source.js +318 -0
  353. package/dist/cjs/product/power-source.js.map +7 -0
  354. package/dist/cjs/product/processor-speed.js +159 -0
  355. package/dist/cjs/product/processor-speed.js.map +7 -0
  356. package/dist/cjs/product/product-extensions.js +27 -0
  357. package/dist/cjs/product/product-extensions.js.map +7 -0
  358. package/dist/cjs/product/product-masking.js +102 -0
  359. package/dist/cjs/product/product-masking.js.map +7 -0
  360. package/dist/cjs/product/ram-capacity.js +154 -0
  361. package/dist/cjs/product/ram-capacity.js.map +7 -0
  362. package/dist/cjs/product/refrigerant-family.js +40 -0
  363. package/dist/cjs/product/refrigerant-family.js.map +7 -0
  364. package/dist/cjs/product/refrigerant.js +419 -0
  365. package/dist/cjs/product/refrigerant.js.map +7 -0
  366. package/dist/cjs/product/screen-resolution.js +197 -0
  367. package/dist/cjs/product/screen-resolution.js.map +7 -0
  368. package/dist/cjs/product/screen-size.js +184 -0
  369. package/dist/cjs/product/screen-size.js.map +7 -0
  370. package/dist/cjs/product/shoe-size-system.js +31 -0
  371. package/dist/cjs/product/shoe-size-system.js.map +7 -0
  372. package/dist/cjs/product/shoe-size.js +138 -0
  373. package/dist/cjs/product/shoe-size.js.map +7 -0
  374. package/dist/cjs/product/storage-capacity.js +159 -0
  375. package/dist/cjs/product/storage-capacity.js.map +7 -0
  376. package/dist/cjs/product/storage-media-type.js +271 -0
  377. package/dist/cjs/product/storage-media-type.js.map +7 -0
  378. package/dist/cjs/property/index.js +31 -0
  379. package/dist/cjs/property/index.js.map +7 -0
  380. package/dist/cjs/property/swedish-property-designation.js +179 -0
  381. package/dist/cjs/property/swedish-property-designation.js.map +7 -0
  382. package/dist/cjs/property/swedish-property-taxation-code.js +218 -0
  383. package/dist/cjs/property/swedish-property-taxation-code.js.map +7 -0
  384. package/dist/cjs/register-default-text-scanners.js +290 -0
  385. package/dist/cjs/register-default-text-scanners.js.map +7 -0
  386. package/dist/cjs/sample-data/index.js +358 -0
  387. package/dist/cjs/sample-data/index.js.map +7 -0
  388. package/dist/cjs/text-scanning/index.js +38 -0
  389. package/dist/cjs/text-scanning/index.js.map +7 -0
  390. package/dist/cjs/text-scanning/text-candidate-category.js +35 -0
  391. package/dist/cjs/text-scanning/text-candidate-category.js.map +7 -0
  392. package/dist/cjs/text-scanning/text-candidate.js +75 -0
  393. package/dist/cjs/text-scanning/text-candidate.js.map +7 -0
  394. package/dist/cjs/text-scanning/text-match-confidence.js +43 -0
  395. package/dist/cjs/text-scanning/text-match-confidence.js.map +7 -0
  396. package/dist/cjs/text-scanning/text-scan-helpers.js +98 -0
  397. package/dist/cjs/text-scanning/text-scan-helpers.js.map +7 -0
  398. package/dist/cjs/text-scanning/text-scan-result.js +333 -0
  399. package/dist/cjs/text-scanning/text-scan-result.js.map +7 -0
  400. package/dist/cjs/text-scanning/text-scanner-options.js +29 -0
  401. package/dist/cjs/text-scanning/text-scanner-options.js.map +7 -0
  402. package/dist/cjs/text-scanning/text-scanner.js +60 -0
  403. package/dist/cjs/text-scanning/text-scanner.js.map +7 -0
  404. package/dist/cjs/validation/index.js +29 -0
  405. package/dist/cjs/validation/index.js.map +7 -0
  406. package/dist/cjs/validation/validation-error-reason.js +53 -0
  407. package/dist/cjs/validation/validation-error-reason.js.map +7 -0
  408. package/dist/cjs/validation/validation-issue.js +43 -0
  409. package/dist/cjs/validation/validation-issue.js.map +7 -0
  410. package/dist/cjs/validation/validation-result.js +52 -0
  411. package/dist/cjs/validation/validation-result.js.map +7 -0
  412. package/dist/cjs/vehicle/boat-ce-design-category.js +200 -0
  413. package/dist/cjs/vehicle/boat-ce-design-category.js.map +7 -0
  414. package/dist/cjs/vehicle/boat-hull-material.js +222 -0
  415. package/dist/cjs/vehicle/boat-hull-material.js.map +7 -0
  416. package/dist/cjs/vehicle/body-type.js +325 -0
  417. package/dist/cjs/vehicle/body-type.js.map +7 -0
  418. package/dist/cjs/vehicle/bolt-pattern.js +150 -0
  419. package/dist/cjs/vehicle/bolt-pattern.js.map +7 -0
  420. package/dist/cjs/vehicle/drivetrain-type.js +200 -0
  421. package/dist/cjs/vehicle/drivetrain-type.js.map +7 -0
  422. package/dist/cjs/vehicle/emission-rate.js +194 -0
  423. package/dist/cjs/vehicle/emission-rate.js.map +7 -0
  424. package/dist/cjs/vehicle/energy-consumption.js +250 -0
  425. package/dist/cjs/vehicle/energy-consumption.js.map +7 -0
  426. package/dist/cjs/vehicle/engine-displacement.js +169 -0
  427. package/dist/cjs/vehicle/engine-displacement.js.map +7 -0
  428. package/dist/cjs/vehicle/engine-power.js +211 -0
  429. package/dist/cjs/vehicle/engine-power.js.map +7 -0
  430. package/dist/cjs/vehicle/eu-type-approval-number.js +196 -0
  431. package/dist/cjs/vehicle/eu-type-approval-number.js.map +7 -0
  432. package/dist/cjs/vehicle/eu-vehicle-category.js +167 -0
  433. package/dist/cjs/vehicle/eu-vehicle-category.js.map +7 -0
  434. package/dist/cjs/vehicle/euro-emission-class.js +313 -0
  435. package/dist/cjs/vehicle/euro-emission-class.js.map +7 -0
  436. package/dist/cjs/vehicle/fuel-consumption-norm.js +206 -0
  437. package/dist/cjs/vehicle/fuel-consumption-norm.js.map +7 -0
  438. package/dist/cjs/vehicle/fuel-consumption.js +281 -0
  439. package/dist/cjs/vehicle/fuel-consumption.js.map +7 -0
  440. package/dist/cjs/vehicle/fuel-type.js +288 -0
  441. package/dist/cjs/vehicle/fuel-type.js.map +7 -0
  442. package/dist/cjs/vehicle/index.js +108 -0
  443. package/dist/cjs/vehicle/index.js.map +7 -0
  444. package/dist/cjs/vehicle/odometer-reading.js +165 -0
  445. package/dist/cjs/vehicle/odometer-reading.js.map +7 -0
  446. package/dist/cjs/vehicle/operating-hours.js +174 -0
  447. package/dist/cjs/vehicle/operating-hours.js.map +7 -0
  448. package/dist/cjs/vehicle/suspension-type.js +312 -0
  449. package/dist/cjs/vehicle/suspension-type.js.map +7 -0
  450. package/dist/cjs/vehicle/swedish-driving-license-category.js +404 -0
  451. package/dist/cjs/vehicle/swedish-driving-license-category.js.map +7 -0
  452. package/dist/cjs/vehicle/swedish-driving-license-vehicle-group.js +32 -0
  453. package/dist/cjs/vehicle/swedish-driving-license-vehicle-group.js.map +7 -0
  454. package/dist/cjs/vehicle/swedish-eco-vehicle-classification.js +232 -0
  455. package/dist/cjs/vehicle/swedish-eco-vehicle-classification.js.map +7 -0
  456. package/dist/cjs/vehicle/swedish-vehicle-registration-number.js +193 -0
  457. package/dist/cjs/vehicle/swedish-vehicle-registration-number.js.map +7 -0
  458. package/dist/cjs/vehicle/swedish-vehicle-status.js +172 -0
  459. package/dist/cjs/vehicle/swedish-vehicle-status.js.map +7 -0
  460. package/dist/cjs/vehicle/swedish-vehicle-type.js +282 -0
  461. package/dist/cjs/vehicle/swedish-vehicle-type.js.map +7 -0
  462. package/dist/cjs/vehicle/tire-dimension.js +206 -0
  463. package/dist/cjs/vehicle/tire-dimension.js.map +7 -0
  464. package/dist/cjs/vehicle/tire-type.js +228 -0
  465. package/dist/cjs/vehicle/tire-type.js.map +7 -0
  466. package/dist/cjs/vehicle/track-type.js +188 -0
  467. package/dist/cjs/vehicle/track-type.js.map +7 -0
  468. package/dist/cjs/vehicle/transmission-type.js +258 -0
  469. package/dist/cjs/vehicle/transmission-type.js.map +7 -0
  470. package/dist/cjs/vehicle/vehicle-extensions.js +35 -0
  471. package/dist/cjs/vehicle/vehicle-extensions.js.map +7 -0
  472. package/dist/cjs/vehicle/vehicle-identification-number.js +265 -0
  473. package/dist/cjs/vehicle/vehicle-identification-number.js.map +7 -0
  474. package/dist/cjs/vehicle/vehicle-masking.js +68 -0
  475. package/dist/cjs/vehicle/vehicle-masking.js.map +7 -0
  476. package/dist/cjs/vehicle/wheel-rim-dimension.js +183 -0
  477. package/dist/cjs/vehicle/wheel-rim-dimension.js.map +7 -0
  478. package/dist/cjs/web/email-address.js +542 -0
  479. package/dist/cjs/web/email-address.js.map +7 -0
  480. package/dist/cjs/web/index.js +31 -0
  481. package/dist/cjs/web/index.js.map +7 -0
  482. package/dist/cjs/web/url.js +353 -0
  483. package/dist/cjs/web/url.js.map +7 -0
  484. package/dist/esm/banking/bank-resolver.js +358 -0
  485. package/dist/esm/banking/bank-resolver.js.map +7 -0
  486. package/dist/esm/banking/bic.js +169 -0
  487. package/dist/esm/banking/bic.js.map +7 -0
  488. package/dist/esm/banking/iban.js +294 -0
  489. package/dist/esm/banking/iban.js.map +7 -0
  490. package/dist/esm/banking/index.js +60 -0
  491. package/dist/esm/banking/index.js.map +7 -0
  492. package/dist/esm/banking/swedish-bank-account-holder-name.js +104 -0
  493. package/dist/esm/banking/swedish-bank-account-holder-name.js.map +7 -0
  494. package/dist/esm/banking/swedish-bank-account.js +199 -0
  495. package/dist/esm/banking/swedish-bank-account.js.map +7 -0
  496. package/dist/esm/banking/swedish-bank-clearing-number.js +136 -0
  497. package/dist/esm/banking/swedish-bank-clearing-number.js.map +7 -0
  498. package/dist/esm/banking/swedish-bank.js +69 -0
  499. package/dist/esm/banking/swedish-bank.js.map +7 -0
  500. package/dist/esm/banking/swedish-bankgiro-number.js +156 -0
  501. package/dist/esm/banking/swedish-bankgiro-number.js.map +7 -0
  502. package/dist/esm/banking/swedish-banking-number.js +181 -0
  503. package/dist/esm/banking/swedish-banking-number.js.map +7 -0
  504. package/dist/esm/banking/swedish-ocr-reference-number.js +195 -0
  505. package/dist/esm/banking/swedish-ocr-reference-number.js.map +7 -0
  506. package/dist/esm/banking/swedish-postgiro-number.js +153 -0
  507. package/dist/esm/banking/swedish-postgiro-number.js.map +7 -0
  508. package/dist/esm/banking/swedish-swish-number.js +145 -0
  509. package/dist/esm/banking/swedish-swish-number.js.map +7 -0
  510. package/dist/esm/contact/address-city.js +84 -0
  511. package/dist/esm/contact/address-city.js.map +7 -0
  512. package/dist/esm/contact/address-street.js +200 -0
  513. package/dist/esm/contact/address-street.js.map +7 -0
  514. package/dist/esm/contact/address-zip-code.js +175 -0
  515. package/dist/esm/contact/address-zip-code.js.map +7 -0
  516. package/dist/esm/contact/address.js +388 -0
  517. package/dist/esm/contact/address.js.map +7 -0
  518. package/dist/esm/contact/contact-address.js +122 -0
  519. package/dist/esm/contact/contact-address.js.map +7 -0
  520. package/dist/esm/contact/contact-external-links.js +19 -0
  521. package/dist/esm/contact/contact-external-links.js.map +7 -0
  522. package/dist/esm/contact/contact-lookup.js +11 -0
  523. package/dist/esm/contact/contact-lookup.js.map +7 -0
  524. package/dist/esm/contact/contact-masking.js +97 -0
  525. package/dist/esm/contact/contact-masking.js.map +7 -0
  526. package/dist/esm/contact/country-address-factory.js +80 -0
  527. package/dist/esm/contact/country-address-factory.js.map +7 -0
  528. package/dist/esm/contact/country-address-registry.js +16 -0
  529. package/dist/esm/contact/country-address-registry.js.map +7 -0
  530. package/dist/esm/contact/country-address.js +78 -0
  531. package/dist/esm/contact/country-address.js.map +7 -0
  532. package/dist/esm/contact/country-addresses.js +316 -0
  533. package/dist/esm/contact/country-addresses.js.map +7 -0
  534. package/dist/esm/contact/country-zip-code-factory.js +97 -0
  535. package/dist/esm/contact/country-zip-code-factory.js.map +7 -0
  536. package/dist/esm/contact/country-zip-codes.js +363 -0
  537. package/dist/esm/contact/country-zip-codes.js.map +7 -0
  538. package/dist/esm/contact/index.js +63 -0
  539. package/dist/esm/contact/index.js.map +7 -0
  540. package/dist/esm/contact/phone-calling-code.js +419 -0
  541. package/dist/esm/contact/phone-calling-code.js.map +7 -0
  542. package/dist/esm/contact/phone-number-test-data.js +43 -0
  543. package/dist/esm/contact/phone-number-test-data.js.map +7 -0
  544. package/dist/esm/contact/phone-number.js +305 -0
  545. package/dist/esm/contact/phone-number.js.map +7 -0
  546. package/dist/esm/contact/register-default-country-addresses.js +58 -0
  547. package/dist/esm/contact/register-default-country-addresses.js.map +7 -0
  548. package/dist/esm/contact/swedish-address-zip-code.js +72 -0
  549. package/dist/esm/contact/swedish-address-zip-code.js.map +7 -0
  550. package/dist/esm/contact/swedish-address.js +149 -0
  551. package/dist/esm/contact/swedish-address.js.map +7 -0
  552. package/dist/esm/finance/currency.js +231 -0
  553. package/dist/esm/finance/currency.js.map +7 -0
  554. package/dist/esm/finance/exchange-rates.js +31 -0
  555. package/dist/esm/finance/exchange-rates.js.map +7 -0
  556. package/dist/esm/finance/index.js +14 -0
  557. package/dist/esm/finance/index.js.map +7 -0
  558. package/dist/esm/finance/isin.js +141 -0
  559. package/dist/esm/finance/isin.js.map +7 -0
  560. package/dist/esm/finance/money-amount.js +287 -0
  561. package/dist/esm/finance/money-amount.js.map +7 -0
  562. package/dist/esm/geography/adjacency-data.js +315 -0
  563. package/dist/esm/geography/adjacency-data.js.map +7 -0
  564. package/dist/esm/geography/continent.js +105 -0
  565. package/dist/esm/geography/continent.js.map +7 -0
  566. package/dist/esm/geography/country-capital.js +25 -0
  567. package/dist/esm/geography/country-capital.js.map +7 -0
  568. package/dist/esm/geography/country-capitals.js +268 -0
  569. package/dist/esm/geography/country-capitals.js.map +7 -0
  570. package/dist/esm/geography/country-coordinates.js +218 -0
  571. package/dist/esm/geography/country-coordinates.js.map +7 -0
  572. package/dist/esm/geography/country-data.js +510 -0
  573. package/dist/esm/geography/country-data.js.map +7 -0
  574. package/dist/esm/geography/country-metadata.js +607 -0
  575. package/dist/esm/geography/country-metadata.js.map +7 -0
  576. package/dist/esm/geography/country.js +417 -0
  577. package/dist/esm/geography/country.js.map +7 -0
  578. package/dist/esm/geography/geo-coordinate.js +224 -0
  579. package/dist/esm/geography/geo-coordinate.js.map +7 -0
  580. package/dist/esm/geography/geography-extensions.js +62 -0
  581. package/dist/esm/geography/geography-extensions.js.map +7 -0
  582. package/dist/esm/geography/geography-external-links.js +32 -0
  583. package/dist/esm/geography/geography-external-links.js.map +7 -0
  584. package/dist/esm/geography/geography-lookup.js +11 -0
  585. package/dist/esm/geography/geography-lookup.js.map +7 -0
  586. package/dist/esm/geography/geography-masking.js +34 -0
  587. package/dist/esm/geography/geography-masking.js.map +7 -0
  588. package/dist/esm/geography/index.js +55 -0
  589. package/dist/esm/geography/index.js.map +7 -0
  590. package/dist/esm/geography/language.js +442 -0
  591. package/dist/esm/geography/language.js.map +7 -0
  592. package/dist/esm/geography/swedish-county.js +212 -0
  593. package/dist/esm/geography/swedish-county.js.map +7 -0
  594. package/dist/esm/geography/swedish-municipality-data.js +296 -0
  595. package/dist/esm/geography/swedish-municipality-data.js.map +7 -0
  596. package/dist/esm/geography/swedish-municipality.js +198 -0
  597. package/dist/esm/geography/swedish-municipality.js.map +7 -0
  598. package/dist/esm/index.js +16 -0
  599. package/dist/esm/index.js.map +7 -0
  600. package/dist/esm/internal/case-folding.js +12 -0
  601. package/dist/esm/internal/case-folding.js.map +7 -0
  602. package/dist/esm/internal/clock.js +12 -0
  603. package/dist/esm/internal/clock.js.map +7 -0
  604. package/dist/esm/internal/decimal.js +242 -0
  605. package/dist/esm/internal/decimal.js.map +7 -0
  606. package/dist/esm/internal/gs1-prefix.js +144 -0
  607. package/dist/esm/internal/gs1-prefix.js.map +7 -0
  608. package/dist/esm/internal/gtin-check-digit.js +26 -0
  609. package/dist/esm/internal/gtin-check-digit.js.map +7 -0
  610. package/dist/esm/internal/input-sanitization.js +59 -0
  611. package/dist/esm/internal/input-sanitization.js.map +7 -0
  612. package/dist/esm/internal/luhn.js +20 -0
  613. package/dist/esm/internal/luhn.js.map +7 -0
  614. package/dist/esm/internal/measurement-unit-parser.js +66 -0
  615. package/dist/esm/internal/measurement-unit-parser.js.map +7 -0
  616. package/dist/esm/internal/measurement-unit.js +110 -0
  617. package/dist/esm/internal/measurement-unit.js.map +7 -0
  618. package/dist/esm/internal/quantity.js +102 -0
  619. package/dist/esm/internal/quantity.js.map +7 -0
  620. package/dist/esm/internal/shoe-size-format.js +11 -0
  621. package/dist/esm/internal/shoe-size-format.js.map +7 -0
  622. package/dist/esm/measurement/area-unit.js +138 -0
  623. package/dist/esm/measurement/area-unit.js.map +7 -0
  624. package/dist/esm/measurement/area.js +163 -0
  625. package/dist/esm/measurement/area.js.map +7 -0
  626. package/dist/esm/measurement/count.js +112 -0
  627. package/dist/esm/measurement/count.js.map +7 -0
  628. package/dist/esm/measurement/data-size-unit.js +188 -0
  629. package/dist/esm/measurement/data-size-unit.js.map +7 -0
  630. package/dist/esm/measurement/data-size.js +187 -0
  631. package/dist/esm/measurement/data-size.js.map +7 -0
  632. package/dist/esm/measurement/electric-charge-unit.js +89 -0
  633. package/dist/esm/measurement/electric-charge-unit.js.map +7 -0
  634. package/dist/esm/measurement/electric-charge.js +128 -0
  635. package/dist/esm/measurement/electric-charge.js.map +7 -0
  636. package/dist/esm/measurement/electric-current-unit.js +88 -0
  637. package/dist/esm/measurement/electric-current-unit.js.map +7 -0
  638. package/dist/esm/measurement/electric-current.js +134 -0
  639. package/dist/esm/measurement/electric-current.js.map +7 -0
  640. package/dist/esm/measurement/energy-unit.js +181 -0
  641. package/dist/esm/measurement/energy-unit.js.map +7 -0
  642. package/dist/esm/measurement/energy.js +187 -0
  643. package/dist/esm/measurement/energy.js.map +7 -0
  644. package/dist/esm/measurement/flow-rate-unit.js +112 -0
  645. package/dist/esm/measurement/flow-rate-unit.js.map +7 -0
  646. package/dist/esm/measurement/flow-rate.js +142 -0
  647. package/dist/esm/measurement/flow-rate.js.map +7 -0
  648. package/dist/esm/measurement/frequency-unit.js +112 -0
  649. package/dist/esm/measurement/frequency-unit.js.map +7 -0
  650. package/dist/esm/measurement/frequency.js +145 -0
  651. package/dist/esm/measurement/frequency.js.map +7 -0
  652. package/dist/esm/measurement/index.js +129 -0
  653. package/dist/esm/measurement/index.js.map +7 -0
  654. package/dist/esm/measurement/length-unit.js +190 -0
  655. package/dist/esm/measurement/length-unit.js.map +7 -0
  656. package/dist/esm/measurement/length.js +188 -0
  657. package/dist/esm/measurement/length.js.map +7 -0
  658. package/dist/esm/measurement/luminance-unit.js +90 -0
  659. package/dist/esm/measurement/luminance-unit.js.map +7 -0
  660. package/dist/esm/measurement/luminance.js +138 -0
  661. package/dist/esm/measurement/luminance.js.map +7 -0
  662. package/dist/esm/measurement/luminous-flux-unit.js +66 -0
  663. package/dist/esm/measurement/luminous-flux-unit.js.map +7 -0
  664. package/dist/esm/measurement/luminous-flux.js +119 -0
  665. package/dist/esm/measurement/luminous-flux.js.map +7 -0
  666. package/dist/esm/measurement/percentage.js +192 -0
  667. package/dist/esm/measurement/percentage.js.map +7 -0
  668. package/dist/esm/measurement/power-unit.js +135 -0
  669. package/dist/esm/measurement/power-unit.js.map +7 -0
  670. package/dist/esm/measurement/power.js +164 -0
  671. package/dist/esm/measurement/power.js.map +7 -0
  672. package/dist/esm/measurement/pressure-unit.js +148 -0
  673. package/dist/esm/measurement/pressure-unit.js.map +7 -0
  674. package/dist/esm/measurement/pressure.js +169 -0
  675. package/dist/esm/measurement/pressure.js.map +7 -0
  676. package/dist/esm/measurement/rotational-speed-unit.js +76 -0
  677. package/dist/esm/measurement/rotational-speed-unit.js.map +7 -0
  678. package/dist/esm/measurement/rotational-speed.js +132 -0
  679. package/dist/esm/measurement/rotational-speed.js.map +7 -0
  680. package/dist/esm/measurement/sound-level.js +165 -0
  681. package/dist/esm/measurement/sound-level.js.map +7 -0
  682. package/dist/esm/measurement/speed-unit.js +99 -0
  683. package/dist/esm/measurement/speed-unit.js.map +7 -0
  684. package/dist/esm/measurement/speed.js +139 -0
  685. package/dist/esm/measurement/speed.js.map +7 -0
  686. package/dist/esm/measurement/temperature-delta.js +81 -0
  687. package/dist/esm/measurement/temperature-delta.js.map +7 -0
  688. package/dist/esm/measurement/temperature-unit.js +110 -0
  689. package/dist/esm/measurement/temperature-unit.js.map +7 -0
  690. package/dist/esm/measurement/temperature.js +196 -0
  691. package/dist/esm/measurement/temperature.js.map +7 -0
  692. package/dist/esm/measurement/torque-unit.js +118 -0
  693. package/dist/esm/measurement/torque-unit.js.map +7 -0
  694. package/dist/esm/measurement/torque.js +145 -0
  695. package/dist/esm/measurement/torque.js.map +7 -0
  696. package/dist/esm/measurement/voltage-unit.js +107 -0
  697. package/dist/esm/measurement/voltage-unit.js.map +7 -0
  698. package/dist/esm/measurement/voltage.js +139 -0
  699. package/dist/esm/measurement/voltage.js.map +7 -0
  700. package/dist/esm/measurement/volume-unit.js +158 -0
  701. package/dist/esm/measurement/volume-unit.js.map +7 -0
  702. package/dist/esm/measurement/volume.js +175 -0
  703. package/dist/esm/measurement/volume.js.map +7 -0
  704. package/dist/esm/measurement/weight-unit.js +138 -0
  705. package/dist/esm/measurement/weight-unit.js.map +7 -0
  706. package/dist/esm/measurement/weight.js +163 -0
  707. package/dist/esm/measurement/weight.js.map +7 -0
  708. package/dist/esm/measurement/year-month.js +184 -0
  709. package/dist/esm/measurement/year-month.js.map +7 -0
  710. package/dist/esm/measurement/year.js +89 -0
  711. package/dist/esm/measurement/year.js.map +7 -0
  712. package/dist/esm/organization/duns-number.js +94 -0
  713. package/dist/esm/organization/duns-number.js.map +7 -0
  714. package/dist/esm/organization/elf-code.js +112 -0
  715. package/dist/esm/organization/elf-code.js.map +7 -0
  716. package/dist/esm/organization/eu-organization-name.js +99 -0
  717. package/dist/esm/organization/eu-organization-name.js.map +7 -0
  718. package/dist/esm/organization/eu-vat-number.js +424 -0
  719. package/dist/esm/organization/eu-vat-number.js.map +7 -0
  720. package/dist/esm/organization/index.js +62 -0
  721. package/dist/esm/organization/index.js.map +7 -0
  722. package/dist/esm/organization/lei-code.js +113 -0
  723. package/dist/esm/organization/lei-code.js.map +7 -0
  724. package/dist/esm/organization/organization-extensions.js +60 -0
  725. package/dist/esm/organization/organization-extensions.js.map +7 -0
  726. package/dist/esm/organization/organization-validation-utils.js +58 -0
  727. package/dist/esm/organization/organization-validation-utils.js.map +7 -0
  728. package/dist/esm/organization/swedish-cfar-number.js +68 -0
  729. package/dist/esm/organization/swedish-cfar-number.js.map +7 -0
  730. package/dist/esm/organization/swedish-organization-identifier-type.js +14 -0
  731. package/dist/esm/organization/swedish-organization-identifier-type.js.map +7 -0
  732. package/dist/esm/organization/swedish-organization-identifier.js +146 -0
  733. package/dist/esm/organization/swedish-organization-identifier.js.map +7 -0
  734. package/dist/esm/organization/swedish-organization-name.js +235 -0
  735. package/dist/esm/organization/swedish-organization-name.js.map +7 -0
  736. package/dist/esm/organization/swedish-organization-number.js +269 -0
  737. package/dist/esm/organization/swedish-organization-number.js.map +7 -0
  738. package/dist/esm/organization/swedish-organization-type.js +31 -0
  739. package/dist/esm/organization/swedish-organization-type.js.map +7 -0
  740. package/dist/esm/organization/swedish-sni-code.js +76 -0
  741. package/dist/esm/organization/swedish-sni-code.js.map +7 -0
  742. package/dist/esm/person/index.js +42 -0
  743. package/dist/esm/person/index.js.map +7 -0
  744. package/dist/esm/person/person-age.js +167 -0
  745. package/dist/esm/person/person-age.js.map +7 -0
  746. package/dist/esm/person/person-family-name.js +67 -0
  747. package/dist/esm/person/person-family-name.js.map +7 -0
  748. package/dist/esm/person/person-full-name.js +86 -0
  749. package/dist/esm/person/person-full-name.js.map +7 -0
  750. package/dist/esm/person/person-given-name.js +87 -0
  751. package/dist/esm/person/person-given-name.js.map +7 -0
  752. package/dist/esm/person/person-masking.js +28 -0
  753. package/dist/esm/person/person-masking.js.map +7 -0
  754. package/dist/esm/person/person-name-normalization.js +79 -0
  755. package/dist/esm/person/person-name-normalization.js.map +7 -0
  756. package/dist/esm/person/personnummer-parser.js +136 -0
  757. package/dist/esm/person/personnummer-parser.js.map +7 -0
  758. package/dist/esm/person/swedish-coordination-number.js +173 -0
  759. package/dist/esm/person/swedish-coordination-number.js.map +7 -0
  760. package/dist/esm/person/swedish-personal-identity-number.js +175 -0
  761. package/dist/esm/person/swedish-personal-identity-number.js.map +7 -0
  762. package/dist/esm/primitive-type-info.js +1 -0
  763. package/dist/esm/primitive-type-info.js.map +7 -0
  764. package/dist/esm/primitives-defaults.js +72 -0
  765. package/dist/esm/primitives-defaults.js.map +7 -0
  766. package/dist/esm/product/adult-clothing-size.js +128 -0
  767. package/dist/esm/product/adult-clothing-size.js.map +7 -0
  768. package/dist/esm/product/adult-shoe-size.js +119 -0
  769. package/dist/esm/product/adult-shoe-size.js.map +7 -0
  770. package/dist/esm/product/aspect-ratio.js +168 -0
  771. package/dist/esm/product/aspect-ratio.js.map +7 -0
  772. package/dist/esm/product/battery-capacity.js +164 -0
  773. package/dist/esm/product/battery-capacity.js.map +7 -0
  774. package/dist/esm/product/battery-chemistry.js +239 -0
  775. package/dist/esm/product/battery-chemistry.js.map +7 -0
  776. package/dist/esm/product/camera-resolution.js +141 -0
  777. package/dist/esm/product/camera-resolution.js.map +7 -0
  778. package/dist/esm/product/child-clothing-size.js +234 -0
  779. package/dist/esm/product/child-clothing-size.js.map +7 -0
  780. package/dist/esm/product/child-shoe-size.js +180 -0
  781. package/dist/esm/product/child-shoe-size.js.map +7 -0
  782. package/dist/esm/product/clothing-fit.js +203 -0
  783. package/dist/esm/product/clothing-fit.js.map +7 -0
  784. package/dist/esm/product/clothing-gender.js +178 -0
  785. package/dist/esm/product/clothing-gender.js.map +7 -0
  786. package/dist/esm/product/clothing-season.js +182 -0
  787. package/dist/esm/product/clothing-season.js.map +7 -0
  788. package/dist/esm/product/clothing-size-system.js +11 -0
  789. package/dist/esm/product/clothing-size-system.js.map +7 -0
  790. package/dist/esm/product/clothing-size.js +126 -0
  791. package/dist/esm/product/clothing-size.js.map +7 -0
  792. package/dist/esm/product/color.js +314 -0
  793. package/dist/esm/product/color.js.map +7 -0
  794. package/dist/esm/product/display-panel-type.js +267 -0
  795. package/dist/esm/product/display-panel-type.js.map +7 -0
  796. package/dist/esm/product/electrical-phase.js +174 -0
  797. package/dist/esm/product/electrical-phase.js.map +7 -0
  798. package/dist/esm/product/energy-scale.js +11 -0
  799. package/dist/esm/product/energy-scale.js.map +7 -0
  800. package/dist/esm/product/eu-energy-efficiency-class.js +115 -0
  801. package/dist/esm/product/eu-energy-efficiency-class.js.map +7 -0
  802. package/dist/esm/product/google-product-category.js +94 -0
  803. package/dist/esm/product/google-product-category.js.map +7 -0
  804. package/dist/esm/product/gtin.js +83 -0
  805. package/dist/esm/product/gtin.js.map +7 -0
  806. package/dist/esm/product/gtin12.js +110 -0
  807. package/dist/esm/product/gtin12.js.map +7 -0
  808. package/dist/esm/product/gtin13.js +127 -0
  809. package/dist/esm/product/gtin13.js.map +7 -0
  810. package/dist/esm/product/gtin14.js +115 -0
  811. package/dist/esm/product/gtin14.js.map +7 -0
  812. package/dist/esm/product/gtin8.js +110 -0
  813. package/dist/esm/product/gtin8.js.map +7 -0
  814. package/dist/esm/product/hs-code-level.js +12 -0
  815. package/dist/esm/product/hs-code-level.js.map +7 -0
  816. package/dist/esm/product/hs-code.js +106 -0
  817. package/dist/esm/product/hs-code.js.map +7 -0
  818. package/dist/esm/product/index.js +137 -0
  819. package/dist/esm/product/index.js.map +7 -0
  820. package/dist/esm/product/ip-rating.js +146 -0
  821. package/dist/esm/product/ip-rating.js.map +7 -0
  822. package/dist/esm/product/operating-system-family.js +17 -0
  823. package/dist/esm/product/operating-system-family.js.map +7 -0
  824. package/dist/esm/product/operating-system-info.js +80 -0
  825. package/dist/esm/product/operating-system-info.js.map +7 -0
  826. package/dist/esm/product/operating-system-name.js +107 -0
  827. package/dist/esm/product/operating-system-name.js.map +7 -0
  828. package/dist/esm/product/operating-system-version.js +90 -0
  829. package/dist/esm/product/operating-system-version.js.map +7 -0
  830. package/dist/esm/product/power-source.js +298 -0
  831. package/dist/esm/product/power-source.js.map +7 -0
  832. package/dist/esm/product/processor-speed.js +139 -0
  833. package/dist/esm/product/processor-speed.js.map +7 -0
  834. package/dist/esm/product/product-extensions.js +7 -0
  835. package/dist/esm/product/product-extensions.js.map +7 -0
  836. package/dist/esm/product/product-masking.js +82 -0
  837. package/dist/esm/product/product-masking.js.map +7 -0
  838. package/dist/esm/product/ram-capacity.js +134 -0
  839. package/dist/esm/product/ram-capacity.js.map +7 -0
  840. package/dist/esm/product/refrigerant-family.js +20 -0
  841. package/dist/esm/product/refrigerant-family.js.map +7 -0
  842. package/dist/esm/product/refrigerant.js +399 -0
  843. package/dist/esm/product/refrigerant.js.map +7 -0
  844. package/dist/esm/product/screen-resolution.js +177 -0
  845. package/dist/esm/product/screen-resolution.js.map +7 -0
  846. package/dist/esm/product/screen-size.js +164 -0
  847. package/dist/esm/product/screen-size.js.map +7 -0
  848. package/dist/esm/product/shoe-size-system.js +11 -0
  849. package/dist/esm/product/shoe-size-system.js.map +7 -0
  850. package/dist/esm/product/shoe-size.js +118 -0
  851. package/dist/esm/product/shoe-size.js.map +7 -0
  852. package/dist/esm/product/storage-capacity.js +139 -0
  853. package/dist/esm/product/storage-capacity.js.map +7 -0
  854. package/dist/esm/product/storage-media-type.js +251 -0
  855. package/dist/esm/product/storage-media-type.js.map +7 -0
  856. package/dist/esm/property/index.js +19 -0
  857. package/dist/esm/property/index.js.map +7 -0
  858. package/dist/esm/property/swedish-property-designation.js +159 -0
  859. package/dist/esm/property/swedish-property-designation.js.map +7 -0
  860. package/dist/esm/property/swedish-property-taxation-code.js +198 -0
  861. package/dist/esm/property/swedish-property-taxation-code.js.map +7 -0
  862. package/dist/esm/register-default-text-scanners.js +270 -0
  863. package/dist/esm/register-default-text-scanners.js.map +7 -0
  864. package/dist/esm/sample-data/index.js +355 -0
  865. package/dist/esm/sample-data/index.js.map +7 -0
  866. package/dist/esm/text-scanning/index.js +21 -0
  867. package/dist/esm/text-scanning/index.js.map +7 -0
  868. package/dist/esm/text-scanning/text-candidate-category.js +15 -0
  869. package/dist/esm/text-scanning/text-candidate-category.js.map +7 -0
  870. package/dist/esm/text-scanning/text-candidate.js +55 -0
  871. package/dist/esm/text-scanning/text-candidate.js.map +7 -0
  872. package/dist/esm/text-scanning/text-match-confidence.js +23 -0
  873. package/dist/esm/text-scanning/text-match-confidence.js.map +7 -0
  874. package/dist/esm/text-scanning/text-scan-helpers.js +78 -0
  875. package/dist/esm/text-scanning/text-scan-helpers.js.map +7 -0
  876. package/dist/esm/text-scanning/text-scan-result.js +313 -0
  877. package/dist/esm/text-scanning/text-scan-result.js.map +7 -0
  878. package/dist/esm/text-scanning/text-scanner-options.js +9 -0
  879. package/dist/esm/text-scanning/text-scanner-options.js.map +7 -0
  880. package/dist/esm/text-scanning/text-scanner.js +40 -0
  881. package/dist/esm/text-scanning/text-scanner.js.map +7 -0
  882. package/dist/esm/validation/index.js +9 -0
  883. package/dist/esm/validation/index.js.map +7 -0
  884. package/dist/esm/validation/validation-error-reason.js +33 -0
  885. package/dist/esm/validation/validation-error-reason.js.map +7 -0
  886. package/dist/esm/validation/validation-issue.js +23 -0
  887. package/dist/esm/validation/validation-issue.js.map +7 -0
  888. package/dist/esm/validation/validation-result.js +32 -0
  889. package/dist/esm/validation/validation-result.js.map +7 -0
  890. package/dist/esm/vehicle/boat-ce-design-category.js +180 -0
  891. package/dist/esm/vehicle/boat-ce-design-category.js.map +7 -0
  892. package/dist/esm/vehicle/boat-hull-material.js +202 -0
  893. package/dist/esm/vehicle/boat-hull-material.js.map +7 -0
  894. package/dist/esm/vehicle/body-type.js +305 -0
  895. package/dist/esm/vehicle/body-type.js.map +7 -0
  896. package/dist/esm/vehicle/bolt-pattern.js +130 -0
  897. package/dist/esm/vehicle/bolt-pattern.js.map +7 -0
  898. package/dist/esm/vehicle/drivetrain-type.js +180 -0
  899. package/dist/esm/vehicle/drivetrain-type.js.map +7 -0
  900. package/dist/esm/vehicle/emission-rate.js +174 -0
  901. package/dist/esm/vehicle/emission-rate.js.map +7 -0
  902. package/dist/esm/vehicle/energy-consumption.js +230 -0
  903. package/dist/esm/vehicle/energy-consumption.js.map +7 -0
  904. package/dist/esm/vehicle/engine-displacement.js +149 -0
  905. package/dist/esm/vehicle/engine-displacement.js.map +7 -0
  906. package/dist/esm/vehicle/engine-power.js +191 -0
  907. package/dist/esm/vehicle/engine-power.js.map +7 -0
  908. package/dist/esm/vehicle/eu-type-approval-number.js +176 -0
  909. package/dist/esm/vehicle/eu-type-approval-number.js.map +7 -0
  910. package/dist/esm/vehicle/eu-vehicle-category.js +147 -0
  911. package/dist/esm/vehicle/eu-vehicle-category.js.map +7 -0
  912. package/dist/esm/vehicle/euro-emission-class.js +293 -0
  913. package/dist/esm/vehicle/euro-emission-class.js.map +7 -0
  914. package/dist/esm/vehicle/fuel-consumption-norm.js +186 -0
  915. package/dist/esm/vehicle/fuel-consumption-norm.js.map +7 -0
  916. package/dist/esm/vehicle/fuel-consumption.js +261 -0
  917. package/dist/esm/vehicle/fuel-consumption.js.map +7 -0
  918. package/dist/esm/vehicle/fuel-type.js +268 -0
  919. package/dist/esm/vehicle/fuel-type.js.map +7 -0
  920. package/dist/esm/vehicle/index.js +134 -0
  921. package/dist/esm/vehicle/index.js.map +7 -0
  922. package/dist/esm/vehicle/odometer-reading.js +145 -0
  923. package/dist/esm/vehicle/odometer-reading.js.map +7 -0
  924. package/dist/esm/vehicle/operating-hours.js +154 -0
  925. package/dist/esm/vehicle/operating-hours.js.map +7 -0
  926. package/dist/esm/vehicle/suspension-type.js +292 -0
  927. package/dist/esm/vehicle/suspension-type.js.map +7 -0
  928. package/dist/esm/vehicle/swedish-driving-license-category.js +384 -0
  929. package/dist/esm/vehicle/swedish-driving-license-category.js.map +7 -0
  930. package/dist/esm/vehicle/swedish-driving-license-vehicle-group.js +12 -0
  931. package/dist/esm/vehicle/swedish-driving-license-vehicle-group.js.map +7 -0
  932. package/dist/esm/vehicle/swedish-eco-vehicle-classification.js +212 -0
  933. package/dist/esm/vehicle/swedish-eco-vehicle-classification.js.map +7 -0
  934. package/dist/esm/vehicle/swedish-vehicle-registration-number.js +176 -0
  935. package/dist/esm/vehicle/swedish-vehicle-registration-number.js.map +7 -0
  936. package/dist/esm/vehicle/swedish-vehicle-status.js +152 -0
  937. package/dist/esm/vehicle/swedish-vehicle-status.js.map +7 -0
  938. package/dist/esm/vehicle/swedish-vehicle-type.js +262 -0
  939. package/dist/esm/vehicle/swedish-vehicle-type.js.map +7 -0
  940. package/dist/esm/vehicle/tire-dimension.js +186 -0
  941. package/dist/esm/vehicle/tire-dimension.js.map +7 -0
  942. package/dist/esm/vehicle/tire-type.js +208 -0
  943. package/dist/esm/vehicle/tire-type.js.map +7 -0
  944. package/dist/esm/vehicle/track-type.js +168 -0
  945. package/dist/esm/vehicle/track-type.js.map +7 -0
  946. package/dist/esm/vehicle/transmission-type.js +238 -0
  947. package/dist/esm/vehicle/transmission-type.js.map +7 -0
  948. package/dist/esm/vehicle/vehicle-extensions.js +15 -0
  949. package/dist/esm/vehicle/vehicle-extensions.js.map +7 -0
  950. package/dist/esm/vehicle/vehicle-identification-number.js +248 -0
  951. package/dist/esm/vehicle/vehicle-identification-number.js.map +7 -0
  952. package/dist/esm/vehicle/vehicle-masking.js +48 -0
  953. package/dist/esm/vehicle/vehicle-masking.js.map +7 -0
  954. package/dist/esm/vehicle/wheel-rim-dimension.js +163 -0
  955. package/dist/esm/vehicle/wheel-rim-dimension.js.map +7 -0
  956. package/dist/esm/web/email-address.js +522 -0
  957. package/dist/esm/web/email-address.js.map +7 -0
  958. package/dist/esm/web/index.js +16 -0
  959. package/dist/esm/web/index.js.map +7 -0
  960. package/dist/esm/web/url.js +333 -0
  961. package/dist/esm/web/url.js.map +7 -0
  962. package/dist/types/frequency-CweGfJFS.d.cts +329 -0
  963. package/dist/types/frequency-DdOMV6Sw.d.ts +329 -0
  964. package/dist/{index.d.cts → types/index.d.cts} +9 -0
  965. package/dist/{index.d.ts → types/index.d.ts} +9 -0
  966. package/dist/types/length-CceXIJYY.d.ts +354 -0
  967. package/dist/types/length-XRL5Eg7F.d.cts +354 -0
  968. package/dist/types/measurement/index.d.cts +136 -0
  969. package/dist/types/measurement/index.d.ts +136 -0
  970. package/dist/types/product/index.d.cts +1239 -0
  971. package/dist/types/product/index.d.ts +1239 -0
  972. package/dist/types/screen-size-BD4t3wzb.d.cts +473 -0
  973. package/dist/types/screen-size-DUmjNjxG.d.ts +473 -0
  974. package/dist/{text-scanning → types/text-scanning}/index.d.cts +50 -0
  975. package/dist/{text-scanning → types/text-scanning}/index.d.ts +50 -0
  976. package/dist/types/vehicle/index.d.cts +798 -0
  977. package/dist/types/vehicle/index.d.ts +798 -0
  978. package/dist/types/volume-CFA4e3dc.d.cts +175 -0
  979. package/dist/types/volume-DGLPQypt.d.ts +175 -0
  980. package/dist/types/weight-B30-Hzxu.d.ts +1057 -0
  981. package/dist/types/weight-C5C7OuV_.d.cts +1057 -0
  982. package/dist/types/wheel-rim-dimension-CVCmLASl.d.ts +699 -0
  983. package/dist/types/wheel-rim-dimension-CdkDrzad.d.cts +699 -0
  984. package/package.json +97 -62
  985. package/dist/banking/index.cjs +0 -6491
  986. package/dist/banking/index.cjs.map +0 -1
  987. package/dist/banking/index.js +0 -6464
  988. package/dist/banking/index.js.map +0 -1
  989. package/dist/contact/index.cjs +0 -6678
  990. package/dist/contact/index.cjs.map +0 -1
  991. package/dist/contact/index.js +0 -6586
  992. package/dist/contact/index.js.map +0 -1
  993. package/dist/finance/index.cjs +0 -3592
  994. package/dist/finance/index.cjs.map +0 -1
  995. package/dist/finance/index.js +0 -3584
  996. package/dist/finance/index.js.map +0 -1
  997. package/dist/geography/index.cjs +0 -4227
  998. package/dist/geography/index.cjs.map +0 -1
  999. package/dist/geography/index.js +0 -4202
  1000. package/dist/geography/index.js.map +0 -1
  1001. package/dist/index.cjs +0 -14087
  1002. package/dist/index.cjs.map +0 -1
  1003. package/dist/index.js +0 -13868
  1004. package/dist/index.js.map +0 -1
  1005. package/dist/organization/index.cjs +0 -2376
  1006. package/dist/organization/index.cjs.map +0 -1
  1007. package/dist/organization/index.js +0 -2346
  1008. package/dist/organization/index.js.map +0 -1
  1009. package/dist/person/index.cjs +0 -1144
  1010. package/dist/person/index.cjs.map +0 -1
  1011. package/dist/person/index.js +0 -1125
  1012. package/dist/person/index.js.map +0 -1
  1013. package/dist/property/index.cjs +0 -487
  1014. package/dist/property/index.cjs.map +0 -1
  1015. package/dist/property/index.js +0 -480
  1016. package/dist/property/index.js.map +0 -1
  1017. package/dist/sample-data/index.cjs +0 -12310
  1018. package/dist/sample-data/index.cjs.map +0 -1
  1019. package/dist/sample-data/index.js +0 -12302
  1020. package/dist/sample-data/index.js.map +0 -1
  1021. package/dist/text-scanning/index.cjs +0 -10414
  1022. package/dist/text-scanning/index.cjs.map +0 -1
  1023. package/dist/text-scanning/index.js +0 -10406
  1024. package/dist/text-scanning/index.js.map +0 -1
  1025. package/dist/validation/index.cjs +0 -83
  1026. package/dist/validation/index.cjs.map +0 -1
  1027. package/dist/validation/index.js +0 -79
  1028. package/dist/validation/index.js.map +0 -1
  1029. package/dist/web/index.cjs +0 -3994
  1030. package/dist/web/index.cjs.map +0 -1
  1031. package/dist/web/index.js +0 -3987
  1032. package/dist/web/index.js.map +0 -1
  1033. /package/dist/{banking → types/banking}/index.d.cts +0 -0
  1034. /package/dist/{banking → types/banking}/index.d.ts +0 -0
  1035. /package/dist/{contact → types/contact}/index.d.cts +0 -0
  1036. /package/dist/{contact → types/contact}/index.d.ts +0 -0
  1037. /package/dist/{country-BhD51LDL.d.cts → types/country-BhD51LDL.d.cts} +0 -0
  1038. /package/dist/{country-p0n0EVQ9.d.ts → types/country-p0n0EVQ9.d.ts} +0 -0
  1039. /package/dist/{finance → types/finance}/index.d.cts +0 -0
  1040. /package/dist/{finance → types/finance}/index.d.ts +0 -0
  1041. /package/dist/{geography → types/geography}/index.d.cts +0 -0
  1042. /package/dist/{geography → types/geography}/index.d.ts +0 -0
  1043. /package/dist/{isin-EeVPpNWu.d.ts → types/isin-EeVPpNWu.d.ts} +0 -0
  1044. /package/dist/{isin-ZlQLBVm8.d.cts → types/isin-ZlQLBVm8.d.cts} +0 -0
  1045. /package/dist/{organization → types/organization}/index.d.cts +0 -0
  1046. /package/dist/{organization → types/organization}/index.d.ts +0 -0
  1047. /package/dist/{person → types/person}/index.d.cts +0 -0
  1048. /package/dist/{person → types/person}/index.d.ts +0 -0
  1049. /package/dist/{person-full-name-Cmc9Ynuc.d.cts → types/person-full-name-Cmc9Ynuc.d.cts} +0 -0
  1050. /package/dist/{person-full-name-D6Hbsab6.d.ts → types/person-full-name-D6Hbsab6.d.ts} +0 -0
  1051. /package/dist/{phone-number-C24--ggy.d.ts → types/phone-number-C24--ggy.d.ts} +0 -0
  1052. /package/dist/{phone-number-DZ-YxCQQ.d.cts → types/phone-number-DZ-YxCQQ.d.cts} +0 -0
  1053. /package/dist/{property → types/property}/index.d.cts +0 -0
  1054. /package/dist/{property → types/property}/index.d.ts +0 -0
  1055. /package/dist/{sample-data → types/sample-data}/index.d.cts +0 -0
  1056. /package/dist/{sample-data → types/sample-data}/index.d.ts +0 -0
  1057. /package/dist/{swedish-address-DNC3ftRF.d.cts → types/swedish-address-DNC3ftRF.d.cts} +0 -0
  1058. /package/dist/{swedish-address-GMzjqgxb.d.ts → types/swedish-address-GMzjqgxb.d.ts} +0 -0
  1059. /package/dist/{swedish-bank-account-holder-name-BFJ8h1aO.d.cts → types/swedish-bank-account-holder-name-BFJ8h1aO.d.cts} +0 -0
  1060. /package/dist/{swedish-bank-account-holder-name-CAAru07F.d.ts → types/swedish-bank-account-holder-name-CAAru07F.d.ts} +0 -0
  1061. /package/dist/{swedish-municipality-DlUS7g7h.d.cts → types/swedish-municipality-DlUS7g7h.d.cts} +0 -0
  1062. /package/dist/{swedish-municipality-nDRHYRAd.d.ts → types/swedish-municipality-nDRHYRAd.d.ts} +0 -0
  1063. /package/dist/{swedish-organization-name-D7NvERxA.d.cts → types/swedish-organization-name-D7NvERxA.d.cts} +0 -0
  1064. /package/dist/{swedish-organization-name-rR0Q836C.d.ts → types/swedish-organization-name-rR0Q836C.d.ts} +0 -0
  1065. /package/dist/{swedish-organization-number-Bcj7V_lh.d.cts → types/swedish-organization-number-Bcj7V_lh.d.cts} +0 -0
  1066. /package/dist/{swedish-organization-number-DM8dpXwR.d.ts → types/swedish-organization-number-DM8dpXwR.d.ts} +0 -0
  1067. /package/dist/{swedish-organization-type-CZOdETwG.d.cts → types/swedish-organization-type-CZOdETwG.d.cts} +0 -0
  1068. /package/dist/{swedish-organization-type-CZOdETwG.d.ts → types/swedish-organization-type-CZOdETwG.d.ts} +0 -0
  1069. /package/dist/{swedish-personal-identity-number-BiIg4io3.d.ts → types/swedish-personal-identity-number-BiIg4io3.d.ts} +0 -0
  1070. /package/dist/{swedish-personal-identity-number-Cp9Coz55.d.cts → types/swedish-personal-identity-number-Cp9Coz55.d.cts} +0 -0
  1071. /package/dist/{swedish-property-designation-BM-gdd9x.d.ts → types/swedish-property-designation-BM-gdd9x.d.ts} +0 -0
  1072. /package/dist/{swedish-property-designation-BaHXufqV.d.cts → types/swedish-property-designation-BaHXufqV.d.cts} +0 -0
  1073. /package/dist/{swedish-sni-code-Ccsswpni.d.ts → types/swedish-sni-code-Ccsswpni.d.ts} +0 -0
  1074. /package/dist/{swedish-sni-code-CuJFyM6l.d.cts → types/swedish-sni-code-CuJFyM6l.d.cts} +0 -0
  1075. /package/dist/{swedish-swish-number-CL6Gx_h3.d.cts → types/swedish-swish-number-CL6Gx_h3.d.cts} +0 -0
  1076. /package/dist/{swedish-swish-number-DDG3mNDg.d.ts → types/swedish-swish-number-DDG3mNDg.d.ts} +0 -0
  1077. /package/dist/{text-candidate-qg2bD9PY.d.cts → types/text-candidate-qg2bD9PY.d.cts} +0 -0
  1078. /package/dist/{text-candidate-qg2bD9PY.d.ts → types/text-candidate-qg2bD9PY.d.ts} +0 -0
  1079. /package/dist/{validation → types/validation}/index.d.cts +0 -0
  1080. /package/dist/{validation → types/validation}/index.d.ts +0 -0
  1081. /package/dist/{web → types/web}/index.d.cts +0 -0
  1082. /package/dist/{web → types/web}/index.d.ts +0 -0
@@ -0,0 +1,99 @@
1
+ import { collapseWhitespace } from "../internal/input-sanitization.js";
2
+ const MAX_INPUT_LENGTH = 300;
3
+ const COMPANY_NAME_PATTERN = /^[\p{L}\d\s\-'&.,/:()+|"]+$/u;
4
+ const PIPE_SEPARATOR = /\s*\|+\s*/;
5
+ class EuOrganizationName {
6
+ static typeInfo = Object.freeze({
7
+ englishName: "EU Organization Name",
8
+ localizedName: "Europeiskt organisationsnamn",
9
+ emoji: "\u{1F1EA}\u{1F1FA}",
10
+ sources: Object.freeze([
11
+ "https://ec.europa.eu/taxation_customs/vies/",
12
+ "https://www.businessregisters.eu/"
13
+ ])
14
+ });
15
+ value;
16
+ legalName;
17
+ tradeName;
18
+ get hasTradeName() {
19
+ return this.tradeName !== null;
20
+ }
21
+ constructor(value, legal, trade) {
22
+ this.value = value;
23
+ this.legalName = legal;
24
+ this.tradeName = trade;
25
+ }
26
+ static tryParse(input) {
27
+ const normalized = collapseWhitespace(input);
28
+ if (normalized.length === 0 || normalized.length > MAX_INPUT_LENGTH) return null;
29
+ if (!validate(normalized)) return null;
30
+ const [legal, trade] = splitLegalAndTrade(normalized);
31
+ return new EuOrganizationName(normalized, legal, trade);
32
+ }
33
+ static parse(input) {
34
+ const r = EuOrganizationName.tryParse(input);
35
+ if (r === null) throw new Error("Invalid EU organization name.");
36
+ return r;
37
+ }
38
+ static isValid(input) {
39
+ return EuOrganizationName.tryParse(input) !== null;
40
+ }
41
+ static format(input, options) {
42
+ const r = EuOrganizationName.tryParse(input);
43
+ if (r) return r.value;
44
+ if (options?.fallbackToTrimmedInputWhenInvalid && input != null && input.trim() !== "") {
45
+ return input.trim();
46
+ }
47
+ return null;
48
+ }
49
+ static normalize(input, options) {
50
+ return EuOrganizationName.format(input, options);
51
+ }
52
+ static isNormalized(input) {
53
+ return input != null && EuOrganizationName.normalize(input) === input;
54
+ }
55
+ static trySplitLegalAndTrade(input) {
56
+ if (input == null || input.trim() === "") return null;
57
+ const collapsed = collapseWhitespace(input);
58
+ const [legal, trade] = splitLegalAndTrade(collapsed);
59
+ return { legalName: legal, tradeName: trade };
60
+ }
61
+ toNormalizedString() {
62
+ return this.value;
63
+ }
64
+ toString() {
65
+ return this.value;
66
+ }
67
+ equals(other) {
68
+ return other != null && this.value === other.value;
69
+ }
70
+ compareTo(other) {
71
+ if (other == null) return 1;
72
+ return this.value < other.value ? -1 : this.value > other.value ? 1 : 0;
73
+ }
74
+ }
75
+ function maskEuOrganizationName(value) {
76
+ return value.value.replace(/[\p{L}\d]+/gu, (part) => {
77
+ if (part.length <= 1) return part;
78
+ return part[0] + "*".repeat(part.length - 1);
79
+ });
80
+ }
81
+ function splitLegalAndTrade(collapsed) {
82
+ if (collapsed.indexOf("|") < 0) return [collapsed, null];
83
+ const parts = collapsed.split(PIPE_SEPARATOR).filter((p) => p.length > 0);
84
+ if (parts.length < 2) return [collapsed, null];
85
+ return [parts[0], parts.slice(1).join(" | ")];
86
+ }
87
+ function validate(value) {
88
+ if (value.length < 2 || value.length > 200) return false;
89
+ for (const c of value) {
90
+ const code = c.charCodeAt(0);
91
+ if (code < 32 || code === 127) return false;
92
+ }
93
+ return COMPANY_NAME_PATTERN.test(value);
94
+ }
95
+ export {
96
+ EuOrganizationName,
97
+ maskEuOrganizationName
98
+ };
99
+ //# sourceMappingURL=eu-organization-name.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/organization/eu-organization-name.ts"],
4
+ "sourcesContent": ["import { PrimitiveTypeInfo } from \"../primitive-type-info.js\";\nimport { collapseWhitespace } from \"../internal/input-sanitization.js\";\n\nconst MAX_INPUT_LENGTH = 300;\n\nconst COMPANY_NAME_PATTERN = /^[\\p{L}\\d\\s\\-'&.,/:()+|\"]+$/u;\nconst PIPE_SEPARATOR = /\\s*\\|+\\s*/;\n\n/** Registered name of a legal entity from any European jurisdiction. */\nexport class EuOrganizationName {\n static readonly typeInfo: PrimitiveTypeInfo = Object.freeze({\n englishName: \"EU Organization Name\",\n localizedName: \"Europeiskt organisationsnamn\",\n emoji: \"\\u{1F1EA}\\u{1F1FA}\",\n sources: Object.freeze([\n \"https://ec.europa.eu/taxation_customs/vies/\",\n \"https://www.businessregisters.eu/\",\n ]),\n });\n\n readonly value: string;\n readonly legalName: string;\n readonly tradeName: string | null;\n\n get hasTradeName(): boolean {\n return this.tradeName !== null;\n }\n\n private constructor(value: string, legal: string, trade: string | null) {\n this.value = value;\n this.legalName = legal;\n this.tradeName = trade;\n }\n\n static tryParse(input: string | null | undefined): EuOrganizationName | null {\n const normalized = collapseWhitespace(input);\n if (normalized.length === 0 || normalized.length > MAX_INPUT_LENGTH) return null;\n if (!validate(normalized)) return null;\n const [legal, trade] = splitLegalAndTrade(normalized);\n return new EuOrganizationName(normalized, legal, trade);\n }\n\n static parse(input: string): EuOrganizationName {\n const r = EuOrganizationName.tryParse(input);\n if (r === null) throw new Error(\"Invalid EU organization name.\");\n return r;\n }\n\n static isValid(input: string | null | undefined): boolean {\n return EuOrganizationName.tryParse(input) !== null;\n }\n\n static format(\n input: string | null | undefined,\n options?: { fallbackToTrimmedInputWhenInvalid?: boolean },\n ): string | null {\n const r = EuOrganizationName.tryParse(input);\n if (r) return r.value;\n if (options?.fallbackToTrimmedInputWhenInvalid && input != null && input.trim() !== \"\") {\n return input.trim();\n }\n return null;\n }\n\n static normalize(\n input: string | null | undefined,\n options?: { fallbackToTrimmedInputWhenInvalid?: boolean },\n ): string | null {\n return EuOrganizationName.format(input, options);\n }\n\n static isNormalized(input: string | null | undefined): boolean {\n return input != null && EuOrganizationName.normalize(input) === input;\n }\n\n static trySplitLegalAndTrade(\n input: string | null | undefined,\n ): { legalName: string; tradeName: string | null } | null {\n if (input == null || input.trim() === \"\") return null;\n const collapsed = collapseWhitespace(input);\n const [legal, trade] = splitLegalAndTrade(collapsed);\n return { legalName: legal, tradeName: trade };\n }\n\n toNormalizedString(): string {\n return this.value;\n }\n toString(): string {\n return this.value;\n }\n\n equals(other: EuOrganizationName | null | undefined): boolean {\n return other != null && this.value === other.value;\n }\n compareTo(other: EuOrganizationName | null | undefined): number {\n if (other == null) return 1;\n return this.value < other.value ? -1 : this.value > other.value ? 1 : 0;\n }\n}\n\n/** Mask each organization-name token while preserving structural separators. */\nexport function maskEuOrganizationName(value: EuOrganizationName): string {\n return value.value.replace(/[\\p{L}\\d]+/gu, (part) => {\n if (part.length <= 1) return part;\n return part[0]! + \"*\".repeat(part.length - 1);\n });\n}\n\nfunction splitLegalAndTrade(collapsed: string): [string, string | null] {\n if (collapsed.indexOf(\"|\") < 0) return [collapsed, null];\n const parts = collapsed.split(PIPE_SEPARATOR).filter((p) => p.length > 0);\n if (parts.length < 2) return [collapsed, null];\n return [parts[0]!, parts.slice(1).join(\" | \")];\n}\n\nfunction validate(value: string): boolean {\n if (value.length < 2 || value.length > 200) return false;\n for (const c of value) {\n const code = c.charCodeAt(0);\n if (code < 0x20 || code === 0x7f) return false;\n }\n return COMPANY_NAME_PATTERN.test(value);\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,424 @@
1
+ import { keepDigits, sanitizeInput } from "../internal/input-sanitization.js";
2
+ import { luhnIsValid } from "../internal/luhn.js";
3
+ import { TextCandidateCategory } from "../text-scanning/text-candidate-category.js";
4
+ import { TextCandidate } from "../text-scanning/text-candidate.js";
5
+ import { TextMatchConfidence } from "../text-scanning/text-match-confidence.js";
6
+ import { ValidationErrorReason } from "../validation/index.js";
7
+ import { invalidResult, validResult } from "../validation/validation-result.js";
8
+ import { cleanSeparators } from "./organization-validation-utils.js";
9
+ import { SwedishOrganizationNumber } from "./swedish-organization-number.js";
10
+ const MAX_INPUT_LENGTH = 30;
11
+ const COUNTRY_INFO = Object.freeze({
12
+ AT: { countryCode: "AT", countryName: "Austria" },
13
+ BE: { countryCode: "BE", countryName: "Belgium" },
14
+ BG: { countryCode: "BG", countryName: "Bulgaria" },
15
+ HR: { countryCode: "HR", countryName: "Croatia" },
16
+ CY: { countryCode: "CY", countryName: "Cyprus" },
17
+ CZ: { countryCode: "CZ", countryName: "Czech Republic" },
18
+ DK: { countryCode: "DK", countryName: "Denmark" },
19
+ EE: { countryCode: "EE", countryName: "Estonia" },
20
+ FI: { countryCode: "FI", countryName: "Finland" },
21
+ FR: { countryCode: "FR", countryName: "France" },
22
+ DE: { countryCode: "DE", countryName: "Germany" },
23
+ EL: { countryCode: "GR", countryName: "Greece" },
24
+ GR: { countryCode: "GR", countryName: "Greece" },
25
+ HU: { countryCode: "HU", countryName: "Hungary" },
26
+ IE: { countryCode: "IE", countryName: "Ireland" },
27
+ IT: { countryCode: "IT", countryName: "Italy" },
28
+ LV: { countryCode: "LV", countryName: "Latvia" },
29
+ LT: { countryCode: "LT", countryName: "Lithuania" },
30
+ LU: { countryCode: "LU", countryName: "Luxembourg" },
31
+ MT: { countryCode: "MT", countryName: "Malta" },
32
+ NL: { countryCode: "NL", countryName: "Netherlands" },
33
+ PL: { countryCode: "PL", countryName: "Poland" },
34
+ PT: { countryCode: "PT", countryName: "Portugal" },
35
+ RO: { countryCode: "RO", countryName: "Romania" },
36
+ SK: { countryCode: "SK", countryName: "Slovakia" },
37
+ SI: { countryCode: "SI", countryName: "Slovenia" },
38
+ ES: { countryCode: "ES", countryName: "Spain" },
39
+ SE: { countryCode: "SE", countryName: "Sweden" },
40
+ GB: { countryCode: "GB", countryName: "United Kingdom" },
41
+ NO: { countryCode: "NO", countryName: "Norway" },
42
+ IS: { countryCode: "IS", countryName: "Iceland" },
43
+ LI: { countryCode: "LI", countryName: "Liechtenstein" },
44
+ CH: { countryCode: "CH", countryName: "Switzerland" },
45
+ AL: { countryCode: "AL", countryName: "Albania" },
46
+ BA: { countryCode: "BA", countryName: "Bosnia and Herzegovina" },
47
+ BY: { countryCode: "BY", countryName: "Belarus" },
48
+ MK: { countryCode: "MK", countryName: "North Macedonia" },
49
+ RS: { countryCode: "RS", countryName: "Serbia" },
50
+ SM: { countryCode: "SM", countryName: "San Marino" },
51
+ TR: { countryCode: "TR", countryName: "Turkey" },
52
+ UA: { countryCode: "UA", countryName: "Ukraine" },
53
+ RU: { countryCode: "RU", countryName: "Russia" },
54
+ UZ: { countryCode: "UZ", countryName: "Uzbekistan" },
55
+ AU: { countryCode: "AU", countryName: "Australia" },
56
+ CN: { countryCode: "CN", countryName: "China" },
57
+ HK: { countryCode: "HK", countryName: "Hong Kong" },
58
+ IN: { countryCode: "IN", countryName: "India" },
59
+ ID: { countryCode: "ID", countryName: "Indonesia" },
60
+ IL: { countryCode: "IL", countryName: "Israel" },
61
+ JP: { countryCode: "JP", countryName: "Japan" },
62
+ KZ: { countryCode: "KZ", countryName: "Kazakhstan" },
63
+ NZ: { countryCode: "NZ", countryName: "New Zealand" },
64
+ PH: { countryCode: "PH", countryName: "Philippines" },
65
+ SA: { countryCode: "SA", countryName: "Saudi Arabia" },
66
+ SG: { countryCode: "SG", countryName: "Singapore" },
67
+ TW: { countryCode: "TW", countryName: "Taiwan" },
68
+ AR: { countryCode: "AR", countryName: "Argentina" },
69
+ BZ: { countryCode: "BZ", countryName: "Belize" },
70
+ BO: { countryCode: "BO", countryName: "Bolivia" },
71
+ BR: { countryCode: "BR", countryName: "Brazil" },
72
+ CA: { countryCode: "CA", countryName: "Canada" },
73
+ CL: { countryCode: "CL", countryName: "Chile" },
74
+ CO: { countryCode: "CO", countryName: "Colombia" },
75
+ CR: { countryCode: "CR", countryName: "Costa Rica" },
76
+ DO: { countryCode: "DO", countryName: "Dominican Republic" },
77
+ EC: { countryCode: "EC", countryName: "Ecuador" },
78
+ SV: { countryCode: "SV", countryName: "El Salvador" },
79
+ GT: { countryCode: "GT", countryName: "Guatemala" },
80
+ HN: { countryCode: "HN", countryName: "Honduras" },
81
+ MX: { countryCode: "MX", countryName: "Mexico" },
82
+ NI: { countryCode: "NI", countryName: "Nicaragua" },
83
+ PA: { countryCode: "PA", countryName: "Panama" },
84
+ PY: { countryCode: "PY", countryName: "Paraguay" },
85
+ PE: { countryCode: "PE", countryName: "Peru" },
86
+ UY: { countryCode: "UY", countryName: "Uruguay" },
87
+ US: { countryCode: "US", countryName: "United States" },
88
+ VE: { countryCode: "VE", countryName: "Venezuela" },
89
+ NG: { countryCode: "NG", countryName: "Nigeria" }
90
+ });
91
+ class EuVatNumber {
92
+ static typeInfo = Object.freeze({
93
+ englishName: "VAT Number",
94
+ localizedName: "Momsnummer",
95
+ emoji: "\u{1F4B0}",
96
+ sources: Object.freeze([
97
+ "https://ec.europa.eu/taxation_customs/vies/#/vat-validation",
98
+ "https://en.wikipedia.org/wiki/VAT_identification_number"
99
+ ])
100
+ });
101
+ vatPrefix;
102
+ countryCode;
103
+ countryName;
104
+ body;
105
+ constructor(vatPrefix, countryCode, countryName, body) {
106
+ this.vatPrefix = vatPrefix;
107
+ this.countryCode = countryCode;
108
+ this.countryName = countryName;
109
+ this.body = body;
110
+ }
111
+ static tryParse(input) {
112
+ if (input == null || input.trim() === "") return null;
113
+ const cleaned = cleanSeparators(sanitizeInput(input));
114
+ if (cleaned.length > MAX_INPUT_LENGTH || cleaned.length < 3) return null;
115
+ const cc = cleaned.slice(0, 2).toUpperCase();
116
+ if (!/^[A-Z]{2}$/.test(cc)) return null;
117
+ const info = COUNTRY_INFO[cc];
118
+ if (!info) return null;
119
+ const body = cleaned.slice(2).split("").map((c) => {
120
+ if (!/[A-Za-z0-9]/.test(c)) return null;
121
+ return c.toUpperCase();
122
+ });
123
+ if (body.some((c) => c === null)) return null;
124
+ const bodyString = body.join("");
125
+ if (bodyString.length === 0) return null;
126
+ if (!validateCountryFormat(info.countryCode, bodyString)) return null;
127
+ return new EuVatNumber(cc, info.countryCode, info.countryName, bodyString);
128
+ }
129
+ static parse(input) {
130
+ const r = EuVatNumber.tryParse(input);
131
+ if (r === null) throw new Error("Invalid VAT number.");
132
+ return r;
133
+ }
134
+ static isValid(input) {
135
+ return EuVatNumber.tryParse(input) !== null;
136
+ }
137
+ static format(input, options) {
138
+ const r = EuVatNumber.tryParse(input);
139
+ if (r) return r.vatPrefix + r.body;
140
+ if (options?.fallbackToTrimmedInputWhenInvalid && input != null && input.trim() !== "") {
141
+ return input.trim();
142
+ }
143
+ return null;
144
+ }
145
+ static normalize(input, options) {
146
+ return EuVatNumber.format(input, options);
147
+ }
148
+ static isNormalized(input) {
149
+ return input != null && EuVatNumber.normalize(input) === input;
150
+ }
151
+ static tryParseForCountry(input, countryCode) {
152
+ if (countryCode == null || countryCode.trim() === "") return null;
153
+ const vat = EuVatNumber.tryParse(input);
154
+ if (!vat) return null;
155
+ const normalized = countryCode.toUpperCase();
156
+ if ((normalized === "EL" || normalized === "GR") && vat.countryCode === "GR") return vat;
157
+ return vat.countryCode === normalized ? vat : null;
158
+ }
159
+ static parseForCountry(input, countryCode) {
160
+ const r = EuVatNumber.tryParseForCountry(input, countryCode);
161
+ if (!r) throw new Error(`Invalid VAT number for country ${countryCode}.`);
162
+ return r;
163
+ }
164
+ static validate(input) {
165
+ if (input == null || input.trim() === "") {
166
+ return invalidResult(
167
+ input,
168
+ ValidationErrorReason.InputIsEmpty,
169
+ "Input is empty or whitespace.",
170
+ "V\xE4rdet \xE4r tomt."
171
+ );
172
+ }
173
+ const cleaned = cleanSeparators(sanitizeInput(input));
174
+ if (cleaned.length > MAX_INPUT_LENGTH) {
175
+ return invalidResult(
176
+ input,
177
+ ValidationErrorReason.InputTooLong,
178
+ "Input contains too many characters.",
179
+ "V\xE4rdet inneh\xE5ller f\xF6r m\xE5nga tecken."
180
+ );
181
+ }
182
+ if (cleaned.length < 3) {
183
+ return invalidResult(
184
+ input,
185
+ ValidationErrorReason.InputTooShort,
186
+ "VAT number is too short.",
187
+ "Momsnumret \xE4r f\xF6r kort."
188
+ );
189
+ }
190
+ const cc = cleaned.slice(0, 2).toUpperCase();
191
+ if (!/^[A-Z]{2}$/.test(cc)) {
192
+ return invalidResult(
193
+ input,
194
+ ValidationErrorReason.InvalidCountryPrefix,
195
+ "VAT number must start with a two-letter country code.",
196
+ "Momsnumret m\xE5ste b\xF6rja med en tv\xE5bokstavig landskod."
197
+ );
198
+ }
199
+ const info = COUNTRY_INFO[cc];
200
+ if (!info) {
201
+ return invalidResult(
202
+ input,
203
+ ValidationErrorReason.UnknownCountryCode,
204
+ "Unknown VAT country code.",
205
+ "Ok\xE4nd momsnummer-landskod."
206
+ );
207
+ }
208
+ let body = "";
209
+ for (const c of cleaned.slice(2)) {
210
+ if (!/[A-Za-z0-9]/.test(c)) {
211
+ return invalidResult(
212
+ input,
213
+ ValidationErrorReason.InvalidFormat,
214
+ "VAT number body contains invalid characters.",
215
+ "Momsnumrets inneh\xE5ll har ogiltiga tecken."
216
+ );
217
+ }
218
+ body += c.toUpperCase();
219
+ }
220
+ if (body.length === 0 || !validateCountryFormat(info.countryCode, body)) {
221
+ return invalidResult(
222
+ input,
223
+ ValidationErrorReason.InvalidFormat,
224
+ "VAT number format is invalid for the specified country.",
225
+ "Momsnummerformatet \xE4r ogiltigt f\xF6r det angivna landet."
226
+ );
227
+ }
228
+ return validResult(input);
229
+ }
230
+ toNormalizedString() {
231
+ return this.vatPrefix + this.body;
232
+ }
233
+ toString() {
234
+ return this.vatPrefix + this.body;
235
+ }
236
+ static findCandidatesInText(text) {
237
+ if (!text) return [];
238
+ const results = [];
239
+ const re = /(?<![A-Z0-9])[A-Z]{2}[A-Z0-9]{5,14}(?![A-Z0-9])/gu;
240
+ let match;
241
+ while ((match = re.exec(text)) !== null) {
242
+ const vat = EuVatNumber.tryParse(match[0]);
243
+ if (!vat) continue;
244
+ results.push(
245
+ new TextCandidate({
246
+ startIndex: match.index,
247
+ length: match[0].length,
248
+ originalText: match[0],
249
+ typeName: "EuVatNumber",
250
+ category: TextCandidateCategory.OrganizationIdentifier,
251
+ normalizedForm: vat.toNormalizedString(),
252
+ formattedForm: vat.toString(),
253
+ maskedForm: maskEuVatNumber(vat),
254
+ confidence: TextMatchConfidence.High,
255
+ value: vat
256
+ })
257
+ );
258
+ }
259
+ return results;
260
+ }
261
+ equals(other) {
262
+ return other != null && this.vatPrefix === other.vatPrefix && this.body === other.body;
263
+ }
264
+ compareTo(other) {
265
+ if (other == null) return 1;
266
+ const a = this.toNormalizedString();
267
+ const b = other.toNormalizedString();
268
+ return a < b ? -1 : a > b ? 1 : 0;
269
+ }
270
+ }
271
+ function validateCountryFormat(countryCode, body) {
272
+ switch (countryCode.toUpperCase()) {
273
+ case "AT":
274
+ return body.length === 9 && body[0] === "U" && /^\d{8}$/.test(body.slice(1));
275
+ case "BE":
276
+ return validateBelgianVat(body);
277
+ case "BG":
278
+ return /^\d{9,10}$/.test(body);
279
+ case "HR":
280
+ return /^\d{11}$/.test(body) && validateMod1110(body);
281
+ case "CY":
282
+ return /^\d{8}[A-Z]$/.test(body);
283
+ case "CZ":
284
+ return /^\d{8,10}$/.test(body);
285
+ case "DK":
286
+ return /^\d{8}$/.test(body);
287
+ case "EE":
288
+ return /^\d{9}$/.test(body);
289
+ case "FI":
290
+ return validateFinnishVat(body);
291
+ case "FR":
292
+ return /^[A-Z0-9]{2}\d{9}$/.test(body);
293
+ case "DE":
294
+ case "GR":
295
+ return /^\d{9}$/.test(body);
296
+ case "HU":
297
+ return /^\d{8}$/.test(body);
298
+ case "IE":
299
+ return validateIrishVat(body);
300
+ case "IT":
301
+ return /^\d{11}$/.test(body) && luhnIsValid(body);
302
+ case "LV":
303
+ return /^\d{11}$/.test(body);
304
+ case "LT":
305
+ return /^\d{9}$/.test(body) || /^\d{12}$/.test(body);
306
+ case "LU":
307
+ case "MT":
308
+ return /^\d{8}$/.test(body);
309
+ case "NL":
310
+ return /^\d{9}B\d{2}$/.test(body);
311
+ case "PL":
312
+ return validatePolishVat(body);
313
+ case "PT":
314
+ return /^\d{9}$/.test(body);
315
+ case "RO":
316
+ return /^\d{2,10}$/.test(body);
317
+ case "SK":
318
+ return validateSlovakVat(body);
319
+ case "SI":
320
+ return /^\d{8}$/.test(body);
321
+ case "ES":
322
+ return body.length === 9;
323
+ case "SE":
324
+ return validateSwedishVat(body);
325
+ case "GB":
326
+ return validateUkVat(body);
327
+ case "NO":
328
+ return validateNorwegianVat(body);
329
+ case "CH":
330
+ return keepDigits(body).length === 9;
331
+ default:
332
+ return /\d/.test(body);
333
+ }
334
+ }
335
+ function validateSwedishVat(body) {
336
+ const digits = keepDigits(body);
337
+ if (digits.length !== 12 || !digits.endsWith("01")) return false;
338
+ return SwedishOrganizationNumber.tryParse(digits.slice(0, 10)) !== null;
339
+ }
340
+ function validateBelgianVat(body) {
341
+ const digits = keepDigits(body);
342
+ if (digits.length !== 10) return false;
343
+ const baseNumber = parseInt(digits.slice(0, 8), 10);
344
+ const checkDigits = 97 - baseNumber % 97;
345
+ return checkDigits === parseInt(digits.slice(8, 10), 10);
346
+ }
347
+ function validateFinnishVat(body) {
348
+ const digits = keepDigits(body);
349
+ if (digits.length !== 8) return false;
350
+ const weights = [7, 9, 10, 5, 8, 4, 2];
351
+ const sum = weights.reduce((acc, weight, i) => acc + (digits.charCodeAt(i) - 48) * weight, 0);
352
+ const remainder = sum % 11;
353
+ if (remainder === 1) return false;
354
+ const checkDigit = remainder === 0 ? 0 : 11 - remainder;
355
+ return checkDigit === digits.charCodeAt(7) - 48;
356
+ }
357
+ function validateIrishVat(body) {
358
+ if (body.length < 8 || body.length > 9) return false;
359
+ if (body.length === 8) return /^\d{7}[A-Z]$/.test(body);
360
+ return /^\d{7}[A-Z]{2}$/.test(body) || /^\d[A-Z]\d{5}[A-Z]$/.test(body);
361
+ }
362
+ function validatePolishVat(body) {
363
+ const digits = keepDigits(body);
364
+ if (digits.length !== 10) return false;
365
+ const weights = [6, 5, 7, 2, 3, 4, 5, 6, 7];
366
+ const sum = weights.reduce((acc, weight, i) => acc + (digits.charCodeAt(i) - 48) * weight, 0);
367
+ const checkDigit = sum % 11;
368
+ if (checkDigit === 10) return false;
369
+ return checkDigit === digits.charCodeAt(9) - 48;
370
+ }
371
+ function validateSlovakVat(body) {
372
+ const digits = keepDigits(body);
373
+ if (digits.length !== 10) return false;
374
+ return parseInt(digits, 10) % 11 === 0;
375
+ }
376
+ function validateUkVat(body) {
377
+ const digits = keepDigits(body);
378
+ if (body.startsWith("GD") || body.startsWith("HA")) return body.length >= 5;
379
+ return digits.length === 9 || digits.length === 12;
380
+ }
381
+ function validateNorwegianVat(body) {
382
+ const digits = keepDigits(body);
383
+ if (digits.length !== 9) return false;
384
+ const weights = [3, 2, 7, 6, 5, 4, 3, 2];
385
+ const sum = weights.reduce((acc, weight, i) => acc + (digits.charCodeAt(i) - 48) * weight, 0);
386
+ const remainder = 11 - sum % 11;
387
+ if (remainder === 10) return false;
388
+ const checkDigit = remainder === 11 ? 0 : remainder;
389
+ return checkDigit === digits.charCodeAt(8) - 48;
390
+ }
391
+ function validateMod1110(digits) {
392
+ let checksum = 10;
393
+ for (let i = 0; i < digits.length - 1; i++) {
394
+ const digit = digits.charCodeAt(i) - 48;
395
+ checksum = (checksum + digit) % 10;
396
+ if (checksum === 0) checksum = 10;
397
+ checksum = checksum * 2 % 11;
398
+ }
399
+ const expectedCheck = (11 - checksum) % 10;
400
+ const actualCheck = digits.charCodeAt(digits.length - 1) - 48;
401
+ return expectedCheck === actualCheck;
402
+ }
403
+ function maskEuVatNumber(vat, alwaysMask = false) {
404
+ if (vat.countryCode === "SE") {
405
+ const body = vat.body;
406
+ if (body.length >= 10) {
407
+ const orgPart = body.slice(0, 10);
408
+ const org = SwedishOrganizationNumber.tryParse(orgPart);
409
+ if (org && (org.isPerson || alwaysMask)) {
410
+ const suffix = body.length > 10 ? body.slice(10) : "";
411
+ return `${vat.vatPrefix}${orgPart.slice(0, 6)}****${suffix}`;
412
+ }
413
+ }
414
+ } else if (alwaysMask) {
415
+ const visible = Math.min(4, vat.body.length);
416
+ return `${vat.vatPrefix}${vat.body.slice(0, visible)}${"*".repeat(vat.body.length - visible)}`;
417
+ }
418
+ return vat.toString();
419
+ }
420
+ export {
421
+ EuVatNumber,
422
+ maskEuVatNumber
423
+ };
424
+ //# sourceMappingURL=eu-vat-number.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/organization/eu-vat-number.ts"],
4
+ "sourcesContent": ["import { PrimitiveTypeInfo } from \"../primitive-type-info.js\";\nimport { keepDigits, sanitizeInput } from \"../internal/input-sanitization.js\";\nimport { luhnIsValid } from \"../internal/luhn.js\";\nimport { TextCandidateCategory } from \"../text-scanning/text-candidate-category.js\";\nimport { TextCandidate } from \"../text-scanning/text-candidate.js\";\nimport { TextMatchConfidence } from \"../text-scanning/text-match-confidence.js\";\nimport { ValidationErrorReason, ValidationResult } from \"../validation/index.js\";\nimport { invalidResult, validResult } from \"../validation/validation-result.js\";\nimport { cleanSeparators } from \"./organization-validation-utils.js\";\nimport { SwedishOrganizationNumber } from \"./swedish-organization-number.js\";\n\nconst MAX_INPUT_LENGTH = 30;\n\ninterface CountryInfo {\n countryCode: string;\n countryName: string;\n}\n\nconst COUNTRY_INFO: Readonly<Record<string, CountryInfo>> = Object.freeze({\n AT: { countryCode: \"AT\", countryName: \"Austria\" },\n BE: { countryCode: \"BE\", countryName: \"Belgium\" },\n BG: { countryCode: \"BG\", countryName: \"Bulgaria\" },\n HR: { countryCode: \"HR\", countryName: \"Croatia\" },\n CY: { countryCode: \"CY\", countryName: \"Cyprus\" },\n CZ: { countryCode: \"CZ\", countryName: \"Czech Republic\" },\n DK: { countryCode: \"DK\", countryName: \"Denmark\" },\n EE: { countryCode: \"EE\", countryName: \"Estonia\" },\n FI: { countryCode: \"FI\", countryName: \"Finland\" },\n FR: { countryCode: \"FR\", countryName: \"France\" },\n DE: { countryCode: \"DE\", countryName: \"Germany\" },\n EL: { countryCode: \"GR\", countryName: \"Greece\" },\n GR: { countryCode: \"GR\", countryName: \"Greece\" },\n HU: { countryCode: \"HU\", countryName: \"Hungary\" },\n IE: { countryCode: \"IE\", countryName: \"Ireland\" },\n IT: { countryCode: \"IT\", countryName: \"Italy\" },\n LV: { countryCode: \"LV\", countryName: \"Latvia\" },\n LT: { countryCode: \"LT\", countryName: \"Lithuania\" },\n LU: { countryCode: \"LU\", countryName: \"Luxembourg\" },\n MT: { countryCode: \"MT\", countryName: \"Malta\" },\n NL: { countryCode: \"NL\", countryName: \"Netherlands\" },\n PL: { countryCode: \"PL\", countryName: \"Poland\" },\n PT: { countryCode: \"PT\", countryName: \"Portugal\" },\n RO: { countryCode: \"RO\", countryName: \"Romania\" },\n SK: { countryCode: \"SK\", countryName: \"Slovakia\" },\n SI: { countryCode: \"SI\", countryName: \"Slovenia\" },\n ES: { countryCode: \"ES\", countryName: \"Spain\" },\n SE: { countryCode: \"SE\", countryName: \"Sweden\" },\n GB: { countryCode: \"GB\", countryName: \"United Kingdom\" },\n NO: { countryCode: \"NO\", countryName: \"Norway\" },\n IS: { countryCode: \"IS\", countryName: \"Iceland\" },\n LI: { countryCode: \"LI\", countryName: \"Liechtenstein\" },\n CH: { countryCode: \"CH\", countryName: \"Switzerland\" },\n AL: { countryCode: \"AL\", countryName: \"Albania\" },\n BA: { countryCode: \"BA\", countryName: \"Bosnia and Herzegovina\" },\n BY: { countryCode: \"BY\", countryName: \"Belarus\" },\n MK: { countryCode: \"MK\", countryName: \"North Macedonia\" },\n RS: { countryCode: \"RS\", countryName: \"Serbia\" },\n SM: { countryCode: \"SM\", countryName: \"San Marino\" },\n TR: { countryCode: \"TR\", countryName: \"Turkey\" },\n UA: { countryCode: \"UA\", countryName: \"Ukraine\" },\n RU: { countryCode: \"RU\", countryName: \"Russia\" },\n UZ: { countryCode: \"UZ\", countryName: \"Uzbekistan\" },\n AU: { countryCode: \"AU\", countryName: \"Australia\" },\n CN: { countryCode: \"CN\", countryName: \"China\" },\n HK: { countryCode: \"HK\", countryName: \"Hong Kong\" },\n IN: { countryCode: \"IN\", countryName: \"India\" },\n ID: { countryCode: \"ID\", countryName: \"Indonesia\" },\n IL: { countryCode: \"IL\", countryName: \"Israel\" },\n JP: { countryCode: \"JP\", countryName: \"Japan\" },\n KZ: { countryCode: \"KZ\", countryName: \"Kazakhstan\" },\n NZ: { countryCode: \"NZ\", countryName: \"New Zealand\" },\n PH: { countryCode: \"PH\", countryName: \"Philippines\" },\n SA: { countryCode: \"SA\", countryName: \"Saudi Arabia\" },\n SG: { countryCode: \"SG\", countryName: \"Singapore\" },\n TW: { countryCode: \"TW\", countryName: \"Taiwan\" },\n AR: { countryCode: \"AR\", countryName: \"Argentina\" },\n BZ: { countryCode: \"BZ\", countryName: \"Belize\" },\n BO: { countryCode: \"BO\", countryName: \"Bolivia\" },\n BR: { countryCode: \"BR\", countryName: \"Brazil\" },\n CA: { countryCode: \"CA\", countryName: \"Canada\" },\n CL: { countryCode: \"CL\", countryName: \"Chile\" },\n CO: { countryCode: \"CO\", countryName: \"Colombia\" },\n CR: { countryCode: \"CR\", countryName: \"Costa Rica\" },\n DO: { countryCode: \"DO\", countryName: \"Dominican Republic\" },\n EC: { countryCode: \"EC\", countryName: \"Ecuador\" },\n SV: { countryCode: \"SV\", countryName: \"El Salvador\" },\n GT: { countryCode: \"GT\", countryName: \"Guatemala\" },\n HN: { countryCode: \"HN\", countryName: \"Honduras\" },\n MX: { countryCode: \"MX\", countryName: \"Mexico\" },\n NI: { countryCode: \"NI\", countryName: \"Nicaragua\" },\n PA: { countryCode: \"PA\", countryName: \"Panama\" },\n PY: { countryCode: \"PY\", countryName: \"Paraguay\" },\n PE: { countryCode: \"PE\", countryName: \"Peru\" },\n UY: { countryCode: \"UY\", countryName: \"Uruguay\" },\n US: { countryCode: \"US\", countryName: \"United States\" },\n VE: { countryCode: \"VE\", countryName: \"Venezuela\" },\n NG: { countryCode: \"NG\", countryName: \"Nigeria\" },\n});\n\n/** VAT identification number (`momsnummer` / `momsregistreringsnummer`). */\nexport class EuVatNumber {\n static readonly typeInfo: PrimitiveTypeInfo = Object.freeze({\n englishName: \"VAT Number\",\n localizedName: \"Momsnummer\",\n emoji: \"\\u{1F4B0}\",\n sources: Object.freeze([\n \"https://ec.europa.eu/taxation_customs/vies/#/vat-validation\",\n \"https://en.wikipedia.org/wiki/VAT_identification_number\",\n ]),\n });\n\n readonly vatPrefix: string;\n readonly countryCode: string;\n readonly countryName: string;\n readonly body: string;\n\n private constructor(vatPrefix: string, countryCode: string, countryName: string, body: string) {\n this.vatPrefix = vatPrefix;\n this.countryCode = countryCode;\n this.countryName = countryName;\n this.body = body;\n }\n\n static tryParse(input: string | null | undefined): EuVatNumber | null {\n if (input == null || input.trim() === \"\") return null;\n const cleaned = cleanSeparators(sanitizeInput(input));\n if (cleaned.length > MAX_INPUT_LENGTH || cleaned.length < 3) return null;\n\n const cc = cleaned.slice(0, 2).toUpperCase();\n if (!/^[A-Z]{2}$/.test(cc)) return null;\n const info = COUNTRY_INFO[cc];\n if (!info) return null;\n\n const body = cleaned\n .slice(2)\n .split(\"\")\n .map((c) => {\n if (!/[A-Za-z0-9]/.test(c)) return null;\n return c.toUpperCase();\n });\n if (body.some((c) => c === null)) return null;\n const bodyString = body.join(\"\");\n if (bodyString.length === 0) return null;\n if (!validateCountryFormat(info.countryCode, bodyString)) return null;\n\n return new EuVatNumber(cc, info.countryCode, info.countryName, bodyString);\n }\n\n static parse(input: string): EuVatNumber {\n const r = EuVatNumber.tryParse(input);\n if (r === null) throw new Error(\"Invalid VAT number.\");\n return r;\n }\n\n static isValid(input: string | null | undefined): boolean {\n return EuVatNumber.tryParse(input) !== null;\n }\n\n static format(\n input: string | null | undefined,\n options?: { fallbackToTrimmedInputWhenInvalid?: boolean },\n ): string | null {\n const r = EuVatNumber.tryParse(input);\n if (r) return r.vatPrefix + r.body;\n if (options?.fallbackToTrimmedInputWhenInvalid && input != null && input.trim() !== \"\") {\n return input.trim();\n }\n return null;\n }\n\n static normalize(\n input: string | null | undefined,\n options?: { fallbackToTrimmedInputWhenInvalid?: boolean },\n ): string | null {\n return EuVatNumber.format(input, options);\n }\n\n static isNormalized(input: string | null | undefined): boolean {\n return input != null && EuVatNumber.normalize(input) === input;\n }\n\n static tryParseForCountry(\n input: string | null | undefined,\n countryCode: string | null | undefined,\n ): EuVatNumber | null {\n if (countryCode == null || countryCode.trim() === \"\") return null;\n const vat = EuVatNumber.tryParse(input);\n if (!vat) return null;\n const normalized = countryCode.toUpperCase();\n if ((normalized === \"EL\" || normalized === \"GR\") && vat.countryCode === \"GR\") return vat;\n return vat.countryCode === normalized ? vat : null;\n }\n\n static parseForCountry(input: string, countryCode: string): EuVatNumber {\n const r = EuVatNumber.tryParseForCountry(input, countryCode);\n if (!r) throw new Error(`Invalid VAT number for country ${countryCode}.`);\n return r;\n }\n\n static validate(input: string | null | undefined): ValidationResult {\n if (input == null || input.trim() === \"\") {\n return invalidResult(\n input,\n ValidationErrorReason.InputIsEmpty,\n \"Input is empty or whitespace.\",\n \"V\u00E4rdet \u00E4r tomt.\",\n );\n }\n\n const cleaned = cleanSeparators(sanitizeInput(input));\n if (cleaned.length > MAX_INPUT_LENGTH) {\n return invalidResult(\n input,\n ValidationErrorReason.InputTooLong,\n \"Input contains too many characters.\",\n \"V\u00E4rdet inneh\u00E5ller f\u00F6r m\u00E5nga tecken.\",\n );\n }\n if (cleaned.length < 3) {\n return invalidResult(\n input,\n ValidationErrorReason.InputTooShort,\n \"VAT number is too short.\",\n \"Momsnumret \u00E4r f\u00F6r kort.\",\n );\n }\n const cc = cleaned.slice(0, 2).toUpperCase();\n if (!/^[A-Z]{2}$/.test(cc)) {\n return invalidResult(\n input,\n ValidationErrorReason.InvalidCountryPrefix,\n \"VAT number must start with a two-letter country code.\",\n \"Momsnumret m\u00E5ste b\u00F6rja med en tv\u00E5bokstavig landskod.\",\n );\n }\n const info = COUNTRY_INFO[cc];\n if (!info) {\n return invalidResult(\n input,\n ValidationErrorReason.UnknownCountryCode,\n \"Unknown VAT country code.\",\n \"Ok\u00E4nd momsnummer-landskod.\",\n );\n }\n let body = \"\";\n for (const c of cleaned.slice(2)) {\n if (!/[A-Za-z0-9]/.test(c)) {\n return invalidResult(\n input,\n ValidationErrorReason.InvalidFormat,\n \"VAT number body contains invalid characters.\",\n \"Momsnumrets inneh\u00E5ll har ogiltiga tecken.\",\n );\n }\n body += c.toUpperCase();\n }\n if (body.length === 0 || !validateCountryFormat(info.countryCode, body)) {\n return invalidResult(\n input,\n ValidationErrorReason.InvalidFormat,\n \"VAT number format is invalid for the specified country.\",\n \"Momsnummerformatet \u00E4r ogiltigt f\u00F6r det angivna landet.\",\n );\n }\n return validResult(input);\n }\n\n toNormalizedString(): string {\n return this.vatPrefix + this.body;\n }\n\n toString(): string {\n return this.vatPrefix + this.body;\n }\n\n static findCandidatesInText(text: string): readonly TextCandidate<EuVatNumber>[] {\n if (!text) return [];\n const results: TextCandidate<EuVatNumber>[] = [];\n const re = /(?<![A-Z0-9])[A-Z]{2}[A-Z0-9]{5,14}(?![A-Z0-9])/gu;\n let match: RegExpExecArray | null;\n while ((match = re.exec(text)) !== null) {\n const vat = EuVatNumber.tryParse(match[0]);\n if (!vat) continue;\n results.push(\n new TextCandidate<EuVatNumber>({\n startIndex: match.index,\n length: match[0].length,\n originalText: match[0],\n typeName: \"EuVatNumber\",\n category: TextCandidateCategory.OrganizationIdentifier,\n normalizedForm: vat.toNormalizedString(),\n formattedForm: vat.toString(),\n maskedForm: maskEuVatNumber(vat),\n confidence: TextMatchConfidence.High,\n value: vat,\n }),\n );\n }\n return results;\n }\n\n equals(other: EuVatNumber | null | undefined): boolean {\n return other != null && this.vatPrefix === other.vatPrefix && this.body === other.body;\n }\n\n compareTo(other: EuVatNumber | null | undefined): number {\n if (other == null) return 1;\n const a = this.toNormalizedString();\n const b = other.toNormalizedString();\n return a < b ? -1 : a > b ? 1 : 0;\n }\n}\n\nfunction validateCountryFormat(countryCode: string, body: string): boolean {\n switch (countryCode.toUpperCase()) {\n case \"AT\":\n return body.length === 9 && body[0] === \"U\" && /^\\d{8}$/.test(body.slice(1));\n case \"BE\":\n return validateBelgianVat(body);\n case \"BG\":\n return /^\\d{9,10}$/.test(body);\n case \"HR\":\n return /^\\d{11}$/.test(body) && validateMod1110(body);\n case \"CY\":\n return /^\\d{8}[A-Z]$/.test(body);\n case \"CZ\":\n return /^\\d{8,10}$/.test(body);\n case \"DK\":\n return /^\\d{8}$/.test(body);\n case \"EE\":\n return /^\\d{9}$/.test(body);\n case \"FI\":\n return validateFinnishVat(body);\n case \"FR\":\n return /^[A-Z0-9]{2}\\d{9}$/.test(body);\n case \"DE\":\n case \"GR\":\n return /^\\d{9}$/.test(body);\n case \"HU\":\n return /^\\d{8}$/.test(body);\n case \"IE\":\n return validateIrishVat(body);\n case \"IT\":\n return /^\\d{11}$/.test(body) && luhnIsValid(body);\n case \"LV\":\n return /^\\d{11}$/.test(body);\n case \"LT\":\n return /^\\d{9}$/.test(body) || /^\\d{12}$/.test(body);\n case \"LU\":\n case \"MT\":\n return /^\\d{8}$/.test(body);\n case \"NL\":\n return /^\\d{9}B\\d{2}$/.test(body);\n case \"PL\":\n return validatePolishVat(body);\n case \"PT\":\n return /^\\d{9}$/.test(body);\n case \"RO\":\n return /^\\d{2,10}$/.test(body);\n case \"SK\":\n return validateSlovakVat(body);\n case \"SI\":\n return /^\\d{8}$/.test(body);\n case \"ES\":\n return body.length === 9;\n case \"SE\":\n return validateSwedishVat(body);\n case \"GB\":\n return validateUkVat(body);\n case \"NO\":\n return validateNorwegianVat(body);\n case \"CH\":\n return keepDigits(body).length === 9;\n default:\n return /\\d/.test(body);\n }\n}\n\nfunction validateSwedishVat(body: string): boolean {\n const digits = keepDigits(body);\n if (digits.length !== 12 || !digits.endsWith(\"01\")) return false;\n return SwedishOrganizationNumber.tryParse(digits.slice(0, 10)) !== null;\n}\n\nfunction validateBelgianVat(body: string): boolean {\n const digits = keepDigits(body);\n if (digits.length !== 10) return false;\n const baseNumber = parseInt(digits.slice(0, 8), 10);\n const checkDigits = 97 - (baseNumber % 97);\n return checkDigits === parseInt(digits.slice(8, 10), 10);\n}\n\nfunction validateFinnishVat(body: string): boolean {\n const digits = keepDigits(body);\n if (digits.length !== 8) return false;\n const weights = [7, 9, 10, 5, 8, 4, 2];\n const sum = weights.reduce((acc, weight, i) => acc + (digits.charCodeAt(i) - 0x30) * weight, 0);\n const remainder = sum % 11;\n if (remainder === 1) return false;\n const checkDigit = remainder === 0 ? 0 : 11 - remainder;\n return checkDigit === digits.charCodeAt(7) - 0x30;\n}\n\nfunction validateIrishVat(body: string): boolean {\n if (body.length < 8 || body.length > 9) return false;\n if (body.length === 8) return /^\\d{7}[A-Z]$/.test(body);\n return /^\\d{7}[A-Z]{2}$/.test(body) || /^\\d[A-Z]\\d{5}[A-Z]$/.test(body);\n}\n\nfunction validatePolishVat(body: string): boolean {\n const digits = keepDigits(body);\n if (digits.length !== 10) return false;\n const weights = [6, 5, 7, 2, 3, 4, 5, 6, 7];\n const sum = weights.reduce((acc, weight, i) => acc + (digits.charCodeAt(i) - 0x30) * weight, 0);\n const checkDigit = sum % 11;\n if (checkDigit === 10) return false;\n return checkDigit === digits.charCodeAt(9) - 0x30;\n}\n\nfunction validateSlovakVat(body: string): boolean {\n const digits = keepDigits(body);\n if (digits.length !== 10) return false;\n return parseInt(digits, 10) % 11 === 0;\n}\n\nfunction validateUkVat(body: string): boolean {\n const digits = keepDigits(body);\n if (body.startsWith(\"GD\") || body.startsWith(\"HA\")) return body.length >= 5;\n return digits.length === 9 || digits.length === 12;\n}\n\nfunction validateNorwegianVat(body: string): boolean {\n const digits = keepDigits(body);\n if (digits.length !== 9) return false;\n const weights = [3, 2, 7, 6, 5, 4, 3, 2];\n const sum = weights.reduce((acc, weight, i) => acc + (digits.charCodeAt(i) - 0x30) * weight, 0);\n const remainder = 11 - (sum % 11);\n if (remainder === 10) return false;\n const checkDigit = remainder === 11 ? 0 : remainder;\n return checkDigit === digits.charCodeAt(8) - 0x30;\n}\n\nfunction validateMod1110(digits: string): boolean {\n let checksum = 10;\n for (let i = 0; i < digits.length - 1; i++) {\n const digit = digits.charCodeAt(i) - 0x30;\n checksum = (checksum + digit) % 10;\n if (checksum === 0) checksum = 10;\n checksum = (checksum * 2) % 11;\n }\n const expectedCheck = (11 - checksum) % 10;\n const actualCheck = digits.charCodeAt(digits.length - 1) - 0x30;\n return expectedCheck === actualCheck;\n}\n\n/** Masks person-based Swedish VAT automatically; pass `alwaysMask` to mask all VAT bodies. */\nexport function maskEuVatNumber(vat: EuVatNumber, alwaysMask = false): string {\n if (vat.countryCode === \"SE\") {\n const body = vat.body;\n if (body.length >= 10) {\n const orgPart = body.slice(0, 10);\n const org = SwedishOrganizationNumber.tryParse(orgPart);\n if (org && (org.isPerson || alwaysMask)) {\n const suffix = body.length > 10 ? body.slice(10) : \"\";\n return `${vat.vatPrefix}${orgPart.slice(0, 6)}****${suffix}`;\n }\n }\n } else if (alwaysMask) {\n const visible = Math.min(4, vat.body.length);\n return `${vat.vatPrefix}${vat.body.slice(0, visible)}${\"*\".repeat(vat.body.length - visible)}`;\n }\n\n return vat.toString();\n}\n"],
5
+ "mappings": "AACA,SAAS,YAAY,qBAAqB;AAC1C,SAAS,mBAAmB;AAC5B,SAAS,6BAA6B;AACtC,SAAS,qBAAqB;AAC9B,SAAS,2BAA2B;AACpC,SAAS,6BAA+C;AACxD,SAAS,eAAe,mBAAmB;AAC3C,SAAS,uBAAuB;AAChC,SAAS,iCAAiC;AAE1C,MAAM,mBAAmB;AAOzB,MAAM,eAAsD,OAAO,OAAO;AAAA,EACxE,IAAI,EAAE,aAAa,MAAM,aAAa,UAAU;AAAA,EAChD,IAAI,EAAE,aAAa,MAAM,aAAa,UAAU;AAAA,EAChD,IAAI,EAAE,aAAa,MAAM,aAAa,WAAW;AAAA,EACjD,IAAI,EAAE,aAAa,MAAM,aAAa,UAAU;AAAA,EAChD,IAAI,EAAE,aAAa,MAAM,aAAa,SAAS;AAAA,EAC/C,IAAI,EAAE,aAAa,MAAM,aAAa,iBAAiB;AAAA,EACvD,IAAI,EAAE,aAAa,MAAM,aAAa,UAAU;AAAA,EAChD,IAAI,EAAE,aAAa,MAAM,aAAa,UAAU;AAAA,EAChD,IAAI,EAAE,aAAa,MAAM,aAAa,UAAU;AAAA,EAChD,IAAI,EAAE,aAAa,MAAM,aAAa,SAAS;AAAA,EAC/C,IAAI,EAAE,aAAa,MAAM,aAAa,UAAU;AAAA,EAChD,IAAI,EAAE,aAAa,MAAM,aAAa,SAAS;AAAA,EAC/C,IAAI,EAAE,aAAa,MAAM,aAAa,SAAS;AAAA,EAC/C,IAAI,EAAE,aAAa,MAAM,aAAa,UAAU;AAAA,EAChD,IAAI,EAAE,aAAa,MAAM,aAAa,UAAU;AAAA,EAChD,IAAI,EAAE,aAAa,MAAM,aAAa,QAAQ;AAAA,EAC9C,IAAI,EAAE,aAAa,MAAM,aAAa,SAAS;AAAA,EAC/C,IAAI,EAAE,aAAa,MAAM,aAAa,YAAY;AAAA,EAClD,IAAI,EAAE,aAAa,MAAM,aAAa,aAAa;AAAA,EACnD,IAAI,EAAE,aAAa,MAAM,aAAa,QAAQ;AAAA,EAC9C,IAAI,EAAE,aAAa,MAAM,aAAa,cAAc;AAAA,EACpD,IAAI,EAAE,aAAa,MAAM,aAAa,SAAS;AAAA,EAC/C,IAAI,EAAE,aAAa,MAAM,aAAa,WAAW;AAAA,EACjD,IAAI,EAAE,aAAa,MAAM,aAAa,UAAU;AAAA,EAChD,IAAI,EAAE,aAAa,MAAM,aAAa,WAAW;AAAA,EACjD,IAAI,EAAE,aAAa,MAAM,aAAa,WAAW;AAAA,EACjD,IAAI,EAAE,aAAa,MAAM,aAAa,QAAQ;AAAA,EAC9C,IAAI,EAAE,aAAa,MAAM,aAAa,SAAS;AAAA,EAC/C,IAAI,EAAE,aAAa,MAAM,aAAa,iBAAiB;AAAA,EACvD,IAAI,EAAE,aAAa,MAAM,aAAa,SAAS;AAAA,EAC/C,IAAI,EAAE,aAAa,MAAM,aAAa,UAAU;AAAA,EAChD,IAAI,EAAE,aAAa,MAAM,aAAa,gBAAgB;AAAA,EACtD,IAAI,EAAE,aAAa,MAAM,aAAa,cAAc;AAAA,EACpD,IAAI,EAAE,aAAa,MAAM,aAAa,UAAU;AAAA,EAChD,IAAI,EAAE,aAAa,MAAM,aAAa,yBAAyB;AAAA,EAC/D,IAAI,EAAE,aAAa,MAAM,aAAa,UAAU;AAAA,EAChD,IAAI,EAAE,aAAa,MAAM,aAAa,kBAAkB;AAAA,EACxD,IAAI,EAAE,aAAa,MAAM,aAAa,SAAS;AAAA,EAC/C,IAAI,EAAE,aAAa,MAAM,aAAa,aAAa;AAAA,EACnD,IAAI,EAAE,aAAa,MAAM,aAAa,SAAS;AAAA,EAC/C,IAAI,EAAE,aAAa,MAAM,aAAa,UAAU;AAAA,EAChD,IAAI,EAAE,aAAa,MAAM,aAAa,SAAS;AAAA,EAC/C,IAAI,EAAE,aAAa,MAAM,aAAa,aAAa;AAAA,EACnD,IAAI,EAAE,aAAa,MAAM,aAAa,YAAY;AAAA,EAClD,IAAI,EAAE,aAAa,MAAM,aAAa,QAAQ;AAAA,EAC9C,IAAI,EAAE,aAAa,MAAM,aAAa,YAAY;AAAA,EAClD,IAAI,EAAE,aAAa,MAAM,aAAa,QAAQ;AAAA,EAC9C,IAAI,EAAE,aAAa,MAAM,aAAa,YAAY;AAAA,EAClD,IAAI,EAAE,aAAa,MAAM,aAAa,SAAS;AAAA,EAC/C,IAAI,EAAE,aAAa,MAAM,aAAa,QAAQ;AAAA,EAC9C,IAAI,EAAE,aAAa,MAAM,aAAa,aAAa;AAAA,EACnD,IAAI,EAAE,aAAa,MAAM,aAAa,cAAc;AAAA,EACpD,IAAI,EAAE,aAAa,MAAM,aAAa,cAAc;AAAA,EACpD,IAAI,EAAE,aAAa,MAAM,aAAa,eAAe;AAAA,EACrD,IAAI,EAAE,aAAa,MAAM,aAAa,YAAY;AAAA,EAClD,IAAI,EAAE,aAAa,MAAM,aAAa,SAAS;AAAA,EAC/C,IAAI,EAAE,aAAa,MAAM,aAAa,YAAY;AAAA,EAClD,IAAI,EAAE,aAAa,MAAM,aAAa,SAAS;AAAA,EAC/C,IAAI,EAAE,aAAa,MAAM,aAAa,UAAU;AAAA,EAChD,IAAI,EAAE,aAAa,MAAM,aAAa,SAAS;AAAA,EAC/C,IAAI,EAAE,aAAa,MAAM,aAAa,SAAS;AAAA,EAC/C,IAAI,EAAE,aAAa,MAAM,aAAa,QAAQ;AAAA,EAC9C,IAAI,EAAE,aAAa,MAAM,aAAa,WAAW;AAAA,EACjD,IAAI,EAAE,aAAa,MAAM,aAAa,aAAa;AAAA,EACnD,IAAI,EAAE,aAAa,MAAM,aAAa,qBAAqB;AAAA,EAC3D,IAAI,EAAE,aAAa,MAAM,aAAa,UAAU;AAAA,EAChD,IAAI,EAAE,aAAa,MAAM,aAAa,cAAc;AAAA,EACpD,IAAI,EAAE,aAAa,MAAM,aAAa,YAAY;AAAA,EAClD,IAAI,EAAE,aAAa,MAAM,aAAa,WAAW;AAAA,EACjD,IAAI,EAAE,aAAa,MAAM,aAAa,SAAS;AAAA,EAC/C,IAAI,EAAE,aAAa,MAAM,aAAa,YAAY;AAAA,EAClD,IAAI,EAAE,aAAa,MAAM,aAAa,SAAS;AAAA,EAC/C,IAAI,EAAE,aAAa,MAAM,aAAa,WAAW;AAAA,EACjD,IAAI,EAAE,aAAa,MAAM,aAAa,OAAO;AAAA,EAC7C,IAAI,EAAE,aAAa,MAAM,aAAa,UAAU;AAAA,EAChD,IAAI,EAAE,aAAa,MAAM,aAAa,gBAAgB;AAAA,EACtD,IAAI,EAAE,aAAa,MAAM,aAAa,YAAY;AAAA,EAClD,IAAI,EAAE,aAAa,MAAM,aAAa,UAAU;AAClD,CAAC;AAGM,MAAM,YAAY;AAAA,EACvB,OAAgB,WAA8B,OAAO,OAAO;AAAA,IAC1D,aAAa;AAAA,IACb,eAAe;AAAA,IACf,OAAO;AAAA,IACP,SAAS,OAAO,OAAO;AAAA,MACrB;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AAAA,EAEQ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAED,YAAY,WAAmB,aAAqB,aAAqB,MAAc;AAC7F,SAAK,YAAY;AACjB,SAAK,cAAc;AACnB,SAAK,cAAc;AACnB,SAAK,OAAO;AAAA,EACd;AAAA,EAEA,OAAO,SAAS,OAAsD;AACpE,QAAI,SAAS,QAAQ,MAAM,KAAK,MAAM,GAAI,QAAO;AACjD,UAAM,UAAU,gBAAgB,cAAc,KAAK,CAAC;AACpD,QAAI,QAAQ,SAAS,oBAAoB,QAAQ,SAAS,EAAG,QAAO;AAEpE,UAAM,KAAK,QAAQ,MAAM,GAAG,CAAC,EAAE,YAAY;AAC3C,QAAI,CAAC,aAAa,KAAK,EAAE,EAAG,QAAO;AACnC,UAAM,OAAO,aAAa,EAAE;AAC5B,QAAI,CAAC,KAAM,QAAO;AAElB,UAAM,OAAO,QACV,MAAM,CAAC,EACP,MAAM,EAAE,EACR,IAAI,CAAC,MAAM;AACV,UAAI,CAAC,cAAc,KAAK,CAAC,EAAG,QAAO;AACnC,aAAO,EAAE,YAAY;AAAA,IACvB,CAAC;AACH,QAAI,KAAK,KAAK,CAAC,MAAM,MAAM,IAAI,EAAG,QAAO;AACzC,UAAM,aAAa,KAAK,KAAK,EAAE;AAC/B,QAAI,WAAW,WAAW,EAAG,QAAO;AACpC,QAAI,CAAC,sBAAsB,KAAK,aAAa,UAAU,EAAG,QAAO;AAEjE,WAAO,IAAI,YAAY,IAAI,KAAK,aAAa,KAAK,aAAa,UAAU;AAAA,EAC3E;AAAA,EAEA,OAAO,MAAM,OAA4B;AACvC,UAAM,IAAI,YAAY,SAAS,KAAK;AACpC,QAAI,MAAM,KAAM,OAAM,IAAI,MAAM,qBAAqB;AACrD,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,QAAQ,OAA2C;AACxD,WAAO,YAAY,SAAS,KAAK,MAAM;AAAA,EACzC;AAAA,EAEA,OAAO,OACL,OACA,SACe;AACf,UAAM,IAAI,YAAY,SAAS,KAAK;AACpC,QAAI,EAAG,QAAO,EAAE,YAAY,EAAE;AAC9B,QAAI,SAAS,qCAAqC,SAAS,QAAQ,MAAM,KAAK,MAAM,IAAI;AACtF,aAAO,MAAM,KAAK;AAAA,IACpB;AACA,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,UACL,OACA,SACe;AACf,WAAO,YAAY,OAAO,OAAO,OAAO;AAAA,EAC1C;AAAA,EAEA,OAAO,aAAa,OAA2C;AAC7D,WAAO,SAAS,QAAQ,YAAY,UAAU,KAAK,MAAM;AAAA,EAC3D;AAAA,EAEA,OAAO,mBACL,OACA,aACoB;AACpB,QAAI,eAAe,QAAQ,YAAY,KAAK,MAAM,GAAI,QAAO;AAC7D,UAAM,MAAM,YAAY,SAAS,KAAK;AACtC,QAAI,CAAC,IAAK,QAAO;AACjB,UAAM,aAAa,YAAY,YAAY;AAC3C,SAAK,eAAe,QAAQ,eAAe,SAAS,IAAI,gBAAgB,KAAM,QAAO;AACrF,WAAO,IAAI,gBAAgB,aAAa,MAAM;AAAA,EAChD;AAAA,EAEA,OAAO,gBAAgB,OAAe,aAAkC;AACtE,UAAM,IAAI,YAAY,mBAAmB,OAAO,WAAW;AAC3D,QAAI,CAAC,EAAG,OAAM,IAAI,MAAM,kCAAkC,WAAW,GAAG;AACxE,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,SAAS,OAAoD;AAClE,QAAI,SAAS,QAAQ,MAAM,KAAK,MAAM,IAAI;AACxC,aAAO;AAAA,QACL;AAAA,QACA,sBAAsB;AAAA,QACtB;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAEA,UAAM,UAAU,gBAAgB,cAAc,KAAK,CAAC;AACpD,QAAI,QAAQ,SAAS,kBAAkB;AACrC,aAAO;AAAA,QACL;AAAA,QACA,sBAAsB;AAAA,QACtB;AAAA,QACA;AAAA,MACF;AAAA,IACF;AACA,QAAI,QAAQ,SAAS,GAAG;AACtB,aAAO;AAAA,QACL;AAAA,QACA,sBAAsB;AAAA,QACtB;AAAA,QACA;AAAA,MACF;AAAA,IACF;AACA,UAAM,KAAK,QAAQ,MAAM,GAAG,CAAC,EAAE,YAAY;AAC3C,QAAI,CAAC,aAAa,KAAK,EAAE,GAAG;AAC1B,aAAO;AAAA,QACL;AAAA,QACA,sBAAsB;AAAA,QACtB;AAAA,QACA;AAAA,MACF;AAAA,IACF;AACA,UAAM,OAAO,aAAa,EAAE;AAC5B,QAAI,CAAC,MAAM;AACT,aAAO;AAAA,QACL;AAAA,QACA,sBAAsB;AAAA,QACtB;AAAA,QACA;AAAA,MACF;AAAA,IACF;AACA,QAAI,OAAO;AACX,eAAW,KAAK,QAAQ,MAAM,CAAC,GAAG;AAChC,UAAI,CAAC,cAAc,KAAK,CAAC,GAAG;AAC1B,eAAO;AAAA,UACL;AAAA,UACA,sBAAsB;AAAA,UACtB;AAAA,UACA;AAAA,QACF;AAAA,MACF;AACA,cAAQ,EAAE,YAAY;AAAA,IACxB;AACA,QAAI,KAAK,WAAW,KAAK,CAAC,sBAAsB,KAAK,aAAa,IAAI,GAAG;AACvE,aAAO;AAAA,QACL;AAAA,QACA,sBAAsB;AAAA,QACtB;AAAA,QACA;AAAA,MACF;AAAA,IACF;AACA,WAAO,YAAY,KAAK;AAAA,EAC1B;AAAA,EAEA,qBAA6B;AAC3B,WAAO,KAAK,YAAY,KAAK;AAAA,EAC/B;AAAA,EAEA,WAAmB;AACjB,WAAO,KAAK,YAAY,KAAK;AAAA,EAC/B;AAAA,EAEA,OAAO,qBAAqB,MAAqD;AAC/E,QAAI,CAAC,KAAM,QAAO,CAAC;AACnB,UAAM,UAAwC,CAAC;AAC/C,UAAM,KAAK;AACX,QAAI;AACJ,YAAQ,QAAQ,GAAG,KAAK,IAAI,OAAO,MAAM;AACvC,YAAM,MAAM,YAAY,SAAS,MAAM,CAAC,CAAC;AACzC,UAAI,CAAC,IAAK;AACV,cAAQ;AAAA,QACN,IAAI,cAA2B;AAAA,UAC7B,YAAY,MAAM;AAAA,UAClB,QAAQ,MAAM,CAAC,EAAE;AAAA,UACjB,cAAc,MAAM,CAAC;AAAA,UACrB,UAAU;AAAA,UACV,UAAU,sBAAsB;AAAA,UAChC,gBAAgB,IAAI,mBAAmB;AAAA,UACvC,eAAe,IAAI,SAAS;AAAA,UAC5B,YAAY,gBAAgB,GAAG;AAAA,UAC/B,YAAY,oBAAoB;AAAA,UAChC,OAAO;AAAA,QACT,CAAC;AAAA,MACH;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,OAAgD;AACrD,WAAO,SAAS,QAAQ,KAAK,cAAc,MAAM,aAAa,KAAK,SAAS,MAAM;AAAA,EACpF;AAAA,EAEA,UAAU,OAA+C;AACvD,QAAI,SAAS,KAAM,QAAO;AAC1B,UAAM,IAAI,KAAK,mBAAmB;AAClC,UAAM,IAAI,MAAM,mBAAmB;AACnC,WAAO,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI;AAAA,EAClC;AACF;AAEA,SAAS,sBAAsB,aAAqB,MAAuB;AACzE,UAAQ,YAAY,YAAY,GAAG;AAAA,IACjC,KAAK;AACH,aAAO,KAAK,WAAW,KAAK,KAAK,CAAC,MAAM,OAAO,UAAU,KAAK,KAAK,MAAM,CAAC,CAAC;AAAA,IAC7E,KAAK;AACH,aAAO,mBAAmB,IAAI;AAAA,IAChC,KAAK;AACH,aAAO,aAAa,KAAK,IAAI;AAAA,IAC/B,KAAK;AACH,aAAO,WAAW,KAAK,IAAI,KAAK,gBAAgB,IAAI;AAAA,IACtD,KAAK;AACH,aAAO,eAAe,KAAK,IAAI;AAAA,IACjC,KAAK;AACH,aAAO,aAAa,KAAK,IAAI;AAAA,IAC/B,KAAK;AACH,aAAO,UAAU,KAAK,IAAI;AAAA,IAC5B,KAAK;AACH,aAAO,UAAU,KAAK,IAAI;AAAA,IAC5B,KAAK;AACH,aAAO,mBAAmB,IAAI;AAAA,IAChC,KAAK;AACH,aAAO,qBAAqB,KAAK,IAAI;AAAA,IACvC,KAAK;AAAA,IACL,KAAK;AACH,aAAO,UAAU,KAAK,IAAI;AAAA,IAC5B,KAAK;AACH,aAAO,UAAU,KAAK,IAAI;AAAA,IAC5B,KAAK;AACH,aAAO,iBAAiB,IAAI;AAAA,IAC9B,KAAK;AACH,aAAO,WAAW,KAAK,IAAI,KAAK,YAAY,IAAI;AAAA,IAClD,KAAK;AACH,aAAO,WAAW,KAAK,IAAI;AAAA,IAC7B,KAAK;AACH,aAAO,UAAU,KAAK,IAAI,KAAK,WAAW,KAAK,IAAI;AAAA,IACrD,KAAK;AAAA,IACL,KAAK;AACH,aAAO,UAAU,KAAK,IAAI;AAAA,IAC5B,KAAK;AACH,aAAO,gBAAgB,KAAK,IAAI;AAAA,IAClC,KAAK;AACH,aAAO,kBAAkB,IAAI;AAAA,IAC/B,KAAK;AACH,aAAO,UAAU,KAAK,IAAI;AAAA,IAC5B,KAAK;AACH,aAAO,aAAa,KAAK,IAAI;AAAA,IAC/B,KAAK;AACH,aAAO,kBAAkB,IAAI;AAAA,IAC/B,KAAK;AACH,aAAO,UAAU,KAAK,IAAI;AAAA,IAC5B,KAAK;AACH,aAAO,KAAK,WAAW;AAAA,IACzB,KAAK;AACH,aAAO,mBAAmB,IAAI;AAAA,IAChC,KAAK;AACH,aAAO,cAAc,IAAI;AAAA,IAC3B,KAAK;AACH,aAAO,qBAAqB,IAAI;AAAA,IAClC,KAAK;AACH,aAAO,WAAW,IAAI,EAAE,WAAW;AAAA,IACrC;AACE,aAAO,KAAK,KAAK,IAAI;AAAA,EACzB;AACF;AAEA,SAAS,mBAAmB,MAAuB;AACjD,QAAM,SAAS,WAAW,IAAI;AAC9B,MAAI,OAAO,WAAW,MAAM,CAAC,OAAO,SAAS,IAAI,EAAG,QAAO;AAC3D,SAAO,0BAA0B,SAAS,OAAO,MAAM,GAAG,EAAE,CAAC,MAAM;AACrE;AAEA,SAAS,mBAAmB,MAAuB;AACjD,QAAM,SAAS,WAAW,IAAI;AAC9B,MAAI,OAAO,WAAW,GAAI,QAAO;AACjC,QAAM,aAAa,SAAS,OAAO,MAAM,GAAG,CAAC,GAAG,EAAE;AAClD,QAAM,cAAc,KAAM,aAAa;AACvC,SAAO,gBAAgB,SAAS,OAAO,MAAM,GAAG,EAAE,GAAG,EAAE;AACzD;AAEA,SAAS,mBAAmB,MAAuB;AACjD,QAAM,SAAS,WAAW,IAAI;AAC9B,MAAI,OAAO,WAAW,EAAG,QAAO;AAChC,QAAM,UAAU,CAAC,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC;AACrC,QAAM,MAAM,QAAQ,OAAO,CAAC,KAAK,QAAQ,MAAM,OAAO,OAAO,WAAW,CAAC,IAAI,MAAQ,QAAQ,CAAC;AAC9F,QAAM,YAAY,MAAM;AACxB,MAAI,cAAc,EAAG,QAAO;AAC5B,QAAM,aAAa,cAAc,IAAI,IAAI,KAAK;AAC9C,SAAO,eAAe,OAAO,WAAW,CAAC,IAAI;AAC/C;AAEA,SAAS,iBAAiB,MAAuB;AAC/C,MAAI,KAAK,SAAS,KAAK,KAAK,SAAS,EAAG,QAAO;AAC/C,MAAI,KAAK,WAAW,EAAG,QAAO,eAAe,KAAK,IAAI;AACtD,SAAO,kBAAkB,KAAK,IAAI,KAAK,sBAAsB,KAAK,IAAI;AACxE;AAEA,SAAS,kBAAkB,MAAuB;AAChD,QAAM,SAAS,WAAW,IAAI;AAC9B,MAAI,OAAO,WAAW,GAAI,QAAO;AACjC,QAAM,UAAU,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAC1C,QAAM,MAAM,QAAQ,OAAO,CAAC,KAAK,QAAQ,MAAM,OAAO,OAAO,WAAW,CAAC,IAAI,MAAQ,QAAQ,CAAC;AAC9F,QAAM,aAAa,MAAM;AACzB,MAAI,eAAe,GAAI,QAAO;AAC9B,SAAO,eAAe,OAAO,WAAW,CAAC,IAAI;AAC/C;AAEA,SAAS,kBAAkB,MAAuB;AAChD,QAAM,SAAS,WAAW,IAAI;AAC9B,MAAI,OAAO,WAAW,GAAI,QAAO;AACjC,SAAO,SAAS,QAAQ,EAAE,IAAI,OAAO;AACvC;AAEA,SAAS,cAAc,MAAuB;AAC5C,QAAM,SAAS,WAAW,IAAI;AAC9B,MAAI,KAAK,WAAW,IAAI,KAAK,KAAK,WAAW,IAAI,EAAG,QAAO,KAAK,UAAU;AAC1E,SAAO,OAAO,WAAW,KAAK,OAAO,WAAW;AAClD;AAEA,SAAS,qBAAqB,MAAuB;AACnD,QAAM,SAAS,WAAW,IAAI;AAC9B,MAAI,OAAO,WAAW,EAAG,QAAO;AAChC,QAAM,UAAU,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AACvC,QAAM,MAAM,QAAQ,OAAO,CAAC,KAAK,QAAQ,MAAM,OAAO,OAAO,WAAW,CAAC,IAAI,MAAQ,QAAQ,CAAC;AAC9F,QAAM,YAAY,KAAM,MAAM;AAC9B,MAAI,cAAc,GAAI,QAAO;AAC7B,QAAM,aAAa,cAAc,KAAK,IAAI;AAC1C,SAAO,eAAe,OAAO,WAAW,CAAC,IAAI;AAC/C;AAEA,SAAS,gBAAgB,QAAyB;AAChD,MAAI,WAAW;AACf,WAAS,IAAI,GAAG,IAAI,OAAO,SAAS,GAAG,KAAK;AAC1C,UAAM,QAAQ,OAAO,WAAW,CAAC,IAAI;AACrC,gBAAY,WAAW,SAAS;AAChC,QAAI,aAAa,EAAG,YAAW;AAC/B,eAAY,WAAW,IAAK;AAAA,EAC9B;AACA,QAAM,iBAAiB,KAAK,YAAY;AACxC,QAAM,cAAc,OAAO,WAAW,OAAO,SAAS,CAAC,IAAI;AAC3D,SAAO,kBAAkB;AAC3B;AAGO,SAAS,gBAAgB,KAAkB,aAAa,OAAe;AAC5E,MAAI,IAAI,gBAAgB,MAAM;AAC5B,UAAM,OAAO,IAAI;AACjB,QAAI,KAAK,UAAU,IAAI;AACrB,YAAM,UAAU,KAAK,MAAM,GAAG,EAAE;AAChC,YAAM,MAAM,0BAA0B,SAAS,OAAO;AACtD,UAAI,QAAQ,IAAI,YAAY,aAAa;AACvC,cAAM,SAAS,KAAK,SAAS,KAAK,KAAK,MAAM,EAAE,IAAI;AACnD,eAAO,GAAG,IAAI,SAAS,GAAG,QAAQ,MAAM,GAAG,CAAC,CAAC,OAAO,MAAM;AAAA,MAC5D;AAAA,IACF;AAAA,EACF,WAAW,YAAY;AACrB,UAAM,UAAU,KAAK,IAAI,GAAG,IAAI,KAAK,MAAM;AAC3C,WAAO,GAAG,IAAI,SAAS,GAAG,IAAI,KAAK,MAAM,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,IAAI,KAAK,SAAS,OAAO,CAAC;AAAA,EAC9F;AAEA,SAAO,IAAI,SAAS;AACtB;",
6
+ "names": []
7
+ }