@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,132 @@
1
+ import { Decimal } from "../internal/decimal.js";
2
+ import { tryParseNumberOnly } from "../internal/measurement-unit-parser.js";
3
+ import { Quantity, tryParseQuantity } from "../internal/quantity.js";
4
+ import { TextCandidate } from "../text-scanning/text-candidate.js";
5
+ import { TextCandidateCategory } from "../text-scanning/text-candidate-category.js";
6
+ import { TextMatchConfidence } from "../text-scanning/text-match-confidence.js";
7
+ import { RotationalSpeedUnit } from "./rotational-speed-unit.js";
8
+ const SCAN_PATTERN = new RegExp(
9
+ String.raw`(?<!\w)(?:[+-]\s*)?\d+[0-9 .,]*\s*(?:rpm|r/min|rev/min|varv/min|rps|r/s|rev/s|varv/s|rad/s(?:ec)?)\b`,
10
+ "giu"
11
+ );
12
+ class RotationalSpeed extends Quantity {
13
+ static typeInfo = Object.freeze({
14
+ englishName: "Rotational Speed",
15
+ localizedName: "Varvtal",
16
+ emoji: "\u{1F504}",
17
+ sources: Object.freeze([
18
+ "https://en.wikipedia.org/wiki/Revolutions_per_minute",
19
+ "https://www.bipm.org/en/measurement-units/si-derived-units"
20
+ ])
21
+ });
22
+ get units() {
23
+ return RotationalSpeedUnit.index;
24
+ }
25
+ withBaseValue(baseValue, unit) {
26
+ return new RotationalSpeed(baseValue, unit);
27
+ }
28
+ get rpm() {
29
+ return this.in(RotationalSpeedUnit.Rpm);
30
+ }
31
+ get rps() {
32
+ return this.in(RotationalSpeedUnit.Rps);
33
+ }
34
+ get radiansPerSecond() {
35
+ return this.in(RotationalSpeedUnit.RadiansPerSecond);
36
+ }
37
+ /** Creates a rotational speed from a value and unit. */
38
+ static create(value, unit) {
39
+ RotationalSpeedUnit.index.assertOwns(unit);
40
+ const amount = value instanceof Decimal ? value : RotationalSpeed.decimalOf(value);
41
+ return new RotationalSpeed(unit.toBase(amount), unit);
42
+ }
43
+ static fromRpm(value) {
44
+ return RotationalSpeed.create(value, RotationalSpeedUnit.Rpm);
45
+ }
46
+ static fromRps(value) {
47
+ return RotationalSpeed.create(value, RotationalSpeedUnit.Rps);
48
+ }
49
+ static fromRadiansPerSecond(value) {
50
+ return RotationalSpeed.create(value, RotationalSpeedUnit.RadiansPerSecond);
51
+ }
52
+ /** A bare number is read as rpm, the unit rotational speed is usually quoted in. */
53
+ static tryParse(input) {
54
+ const bare = tryParseNumberOnly(input);
55
+ if (bare !== null) return new RotationalSpeed(bare, RotationalSpeedUnit.Rpm);
56
+ const parsed = tryParseQuantity(input, RotationalSpeedUnit.index);
57
+ return parsed === null ? null : new RotationalSpeed(parsed.baseValue, parsed.unit);
58
+ }
59
+ static parse(input) {
60
+ const result = RotationalSpeed.tryParse(input);
61
+ if (result === null) throw new Error("Invalid rotational speed.");
62
+ return result;
63
+ }
64
+ static isValid(input) {
65
+ return RotationalSpeed.tryParse(input) !== null;
66
+ }
67
+ /** Display form in the parsed unit, or `null` when the input is invalid. */
68
+ static format(input, options) {
69
+ const parsed = RotationalSpeed.tryParse(input);
70
+ if (parsed !== null) {
71
+ if (options?.unit !== void 0 || options?.decimals !== void 0) {
72
+ return parsed.toStringInUnit(options.unit ?? parsed.originalUnit, options.decimals);
73
+ }
74
+ return parsed.toString();
75
+ }
76
+ return RotationalSpeed.fallback(input, options);
77
+ }
78
+ /** The value in revolutions per minute, or `null` when the input is invalid. */
79
+ static normalize(input, options) {
80
+ const parsed = RotationalSpeed.tryParse(input);
81
+ if (parsed !== null) return parsed.toNormalizedString();
82
+ return RotationalSpeed.fallback(input, options);
83
+ }
84
+ static isNormalized(input) {
85
+ return input != null && RotationalSpeed.normalize(input) === input;
86
+ }
87
+ static findCandidatesInText(text) {
88
+ if (!text) return [];
89
+ const out = [];
90
+ const pattern = new RegExp(SCAN_PATTERN.source, SCAN_PATTERN.flags);
91
+ let match;
92
+ while ((match = pattern.exec(text)) !== null) {
93
+ const value = RotationalSpeed.tryParse(match[0]);
94
+ if (value === null) continue;
95
+ out.push(
96
+ new TextCandidate({
97
+ startIndex: match.index,
98
+ length: match[0].length,
99
+ originalText: match[0],
100
+ typeName: "RotationalSpeed",
101
+ category: TextCandidateCategory.Measurement,
102
+ normalizedForm: value.toNormalizedString(),
103
+ formattedForm: value.toString(),
104
+ maskedForm: maskRotationalSpeed(value),
105
+ confidence: TextMatchConfidence.Low,
106
+ value
107
+ })
108
+ );
109
+ }
110
+ return out;
111
+ }
112
+ static fallback(input, options) {
113
+ if (options?.fallbackToTrimmedInputWhenInvalid !== true) return null;
114
+ if (input == null) return null;
115
+ const trimmed = input.trim();
116
+ return trimmed.length > 0 ? trimmed : null;
117
+ }
118
+ static decimalOf(value) {
119
+ const parsed = Decimal.fromNumber(value);
120
+ if (parsed === null)
121
+ throw new Error(`Value cannot be represented as a rotational speed: ${value}`);
122
+ return parsed;
123
+ }
124
+ }
125
+ function maskRotationalSpeed(value) {
126
+ return `*** ${value.originalUnit.symbol}`;
127
+ }
128
+ export {
129
+ RotationalSpeed,
130
+ maskRotationalSpeed
131
+ };
132
+ //# sourceMappingURL=rotational-speed.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/measurement/rotational-speed.ts"],
4
+ "sourcesContent": ["import { Decimal } from \"../internal/decimal.js\";\nimport type { MeasurementUnitIndex } from \"../internal/measurement-unit.js\";\nimport { tryParseNumberOnly } from \"../internal/measurement-unit-parser.js\";\nimport { Quantity, tryParseQuantity } from \"../internal/quantity.js\";\nimport type { PrimitiveTypeInfo } from \"../primitive-type-info.js\";\nimport { TextCandidate } from \"../text-scanning/text-candidate.js\";\nimport { TextCandidateCategory } from \"../text-scanning/text-candidate-category.js\";\nimport { TextMatchConfidence } from \"../text-scanning/text-match-confidence.js\";\nimport { RotationalSpeedUnit } from \"./rotational-speed-unit.js\";\n\n/** Options for {@link RotationalSpeed.format} and {@link RotationalSpeed.normalize}. */\nexport interface RotationalSpeedFormatOptions {\n fallbackToTrimmedInputWhenInvalid?: boolean;\n /** Convert to this unit instead of preserving the parsed one. */\n unit?: RotationalSpeedUnit;\n /** Round to this many fractional digits, away from zero. */\n decimals?: number;\n}\n\nconst SCAN_PATTERN = new RegExp(\n String.raw`(?<!\\w)(?:[+-]\\s*)?\\d+[0-9 .,]*\\s*(?:rpm|r/min|rev/min|varv/min|rps|r/s|rev/s|varv/s|rad/s(?:ec)?)\\b`,\n \"giu\",\n);\n\n/**\n * A rotational speed stored internally in revolutions per minute,\n * parsed from any supported unit and convertible between all of them.\n */\nexport class RotationalSpeed extends Quantity<RotationalSpeedUnit> {\n static readonly typeInfo: PrimitiveTypeInfo = Object.freeze({\n englishName: \"Rotational Speed\",\n localizedName: \"Varvtal\",\n emoji: \"\uD83D\uDD04\",\n sources: Object.freeze([\n \"https://en.wikipedia.org/wiki/Revolutions_per_minute\",\n \"https://www.bipm.org/en/measurement-units/si-derived-units\",\n ]),\n });\n\n protected get units(): MeasurementUnitIndex<RotationalSpeedUnit> {\n return RotationalSpeedUnit.index;\n }\n\n protected withBaseValue(baseValue: Decimal, unit: RotationalSpeedUnit): this {\n return new RotationalSpeed(baseValue, unit) as this;\n }\n\n get rpm(): number {\n return this.in(RotationalSpeedUnit.Rpm);\n }\n get rps(): number {\n return this.in(RotationalSpeedUnit.Rps);\n }\n get radiansPerSecond(): number {\n return this.in(RotationalSpeedUnit.RadiansPerSecond);\n }\n\n /** Creates a rotational speed from a value and unit. */\n static create(value: number | Decimal, unit: RotationalSpeedUnit): RotationalSpeed {\n RotationalSpeedUnit.index.assertOwns(unit);\n const amount = value instanceof Decimal ? value : RotationalSpeed.decimalOf(value);\n return new RotationalSpeed(unit.toBase(amount), unit);\n }\n\n static fromRpm(value: number | Decimal): RotationalSpeed {\n return RotationalSpeed.create(value, RotationalSpeedUnit.Rpm);\n }\n static fromRps(value: number | Decimal): RotationalSpeed {\n return RotationalSpeed.create(value, RotationalSpeedUnit.Rps);\n }\n static fromRadiansPerSecond(value: number | Decimal): RotationalSpeed {\n return RotationalSpeed.create(value, RotationalSpeedUnit.RadiansPerSecond);\n }\n\n /** A bare number is read as rpm, the unit rotational speed is usually quoted in. */\n static tryParse(input: string | null | undefined): RotationalSpeed | null {\n const bare = tryParseNumberOnly(input);\n if (bare !== null) return new RotationalSpeed(bare, RotationalSpeedUnit.Rpm);\n\n const parsed = tryParseQuantity(input, RotationalSpeedUnit.index);\n return parsed === null ? null : new RotationalSpeed(parsed.baseValue, parsed.unit);\n }\n\n static parse(input: string): RotationalSpeed {\n const result = RotationalSpeed.tryParse(input);\n if (result === null) throw new Error(\"Invalid rotational speed.\");\n return result;\n }\n\n static isValid(input: string | null | undefined): boolean {\n return RotationalSpeed.tryParse(input) !== null;\n }\n\n /** Display form in the parsed unit, or `null` when the input is invalid. */\n static format(\n input: string | null | undefined,\n options?: RotationalSpeedFormatOptions,\n ): string | null {\n const parsed = RotationalSpeed.tryParse(input);\n if (parsed !== null) {\n if (options?.unit !== undefined || options?.decimals !== undefined) {\n return parsed.toStringInUnit(options.unit ?? parsed.originalUnit, options.decimals);\n }\n return parsed.toString();\n }\n return RotationalSpeed.fallback(input, options);\n }\n\n /** The value in revolutions per minute, or `null` when the input is invalid. */\n static normalize(\n input: string | null | undefined,\n options?: RotationalSpeedFormatOptions,\n ): string | null {\n const parsed = RotationalSpeed.tryParse(input);\n if (parsed !== null) return parsed.toNormalizedString();\n return RotationalSpeed.fallback(input, options);\n }\n\n static isNormalized(input: string | null | undefined): boolean {\n return input != null && RotationalSpeed.normalize(input) === input;\n }\n\n static findCandidatesInText(text: string): readonly TextCandidate<RotationalSpeed>[] {\n if (!text) return [];\n\n const out: TextCandidate<RotationalSpeed>[] = [];\n const pattern = new RegExp(SCAN_PATTERN.source, SCAN_PATTERN.flags);\n let match: RegExpExecArray | null;\n\n while ((match = pattern.exec(text)) !== null) {\n const value = RotationalSpeed.tryParse(match[0]);\n if (value === null) continue;\n out.push(\n new TextCandidate<RotationalSpeed>({\n startIndex: match.index,\n length: match[0].length,\n originalText: match[0],\n typeName: \"RotationalSpeed\",\n category: TextCandidateCategory.Measurement,\n normalizedForm: value.toNormalizedString(),\n formattedForm: value.toString(),\n maskedForm: maskRotationalSpeed(value),\n confidence: TextMatchConfidence.Low,\n value,\n }),\n );\n }\n\n return out;\n }\n\n private static fallback(\n input: string | null | undefined,\n options?: RotationalSpeedFormatOptions,\n ): string | null {\n if (options?.fallbackToTrimmedInputWhenInvalid !== true) return null;\n if (input == null) return null;\n const trimmed = input.trim();\n return trimmed.length > 0 ? trimmed : null;\n }\n\n private static decimalOf(value: number): Decimal {\n const parsed = Decimal.fromNumber(value);\n if (parsed === null)\n throw new Error(`Value cannot be represented as a rotational speed: ${value}`);\n return parsed;\n }\n}\n\n/** Returns a masked rotational speed, e.g. `10 rpm` becomes `*** rpm`. */\nexport function maskRotationalSpeed(value: RotationalSpeed): string {\n return `*** ${value.originalUnit.symbol}`;\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,165 @@
1
+ import { Decimal } from "../internal/decimal.js";
2
+ import { sanitizeInput } from "../internal/input-sanitization.js";
3
+ import { tryParseNumberOnly } from "../internal/measurement-unit-parser.js";
4
+ import { TextCandidate } from "../text-scanning/text-candidate.js";
5
+ import { TextCandidateCategory } from "../text-scanning/text-candidate-category.js";
6
+ import { TextMatchConfidence } from "../text-scanning/text-match-confidence.js";
7
+ const SoundWeighting = {
8
+ /** No weighting: a flat response. */
9
+ Unweighted: 0,
10
+ /** A-weighting, which approximates human hearing sensitivity. */
11
+ A: 1,
12
+ /** B-weighting, an intermediate curve that is rarely used. */
13
+ B: 2,
14
+ /** C-weighting, flat across most audible frequencies. */
15
+ C: 3,
16
+ /** Z-weighting, zero weighting, flat from 10 Hz to 20 kHz. */
17
+ Z: 4
18
+ };
19
+ const UNIT_PATTERN = /^\s*(?<sign>[+-])?\s*(?<num>[0-9][0-9 .,]*[0-9]|[0-9])\s*(?<unit>dB\s*(?:\(\s*(?<w1>[ABCZabcz])\s*\)|(?<w2>[ABCZabcz]))?)?\s*$/iu;
20
+ const SCAN_PATTERN = /(?<!\w)(?:[+-]\s*)?\d+[0-9 .,]*\s*dB(?:\s*\(\s*[ABCZabcz]\s*\)|[ABCZabcz])?\b/giu;
21
+ const SUFFIXES = {
22
+ [SoundWeighting.Unweighted]: " dB",
23
+ [SoundWeighting.A]: " dB(A)",
24
+ [SoundWeighting.B]: " dB(B)",
25
+ [SoundWeighting.C]: " dB(C)",
26
+ [SoundWeighting.Z]: " dB(Z)"
27
+ };
28
+ const WEIGHTINGS = {
29
+ A: SoundWeighting.A,
30
+ B: SoundWeighting.B,
31
+ C: SoundWeighting.C,
32
+ Z: SoundWeighting.Z
33
+ };
34
+ class SoundLevel {
35
+ constructor(decibelsValue, weighting) {
36
+ this.decibelsValue = decibelsValue;
37
+ this.weighting = weighting;
38
+ this.value = `${decibelsValue.toTrimmedString()}${SUFFIXES[weighting]}`;
39
+ }
40
+ decibelsValue;
41
+ weighting;
42
+ static typeInfo = Object.freeze({
43
+ englishName: "Sound Level",
44
+ localizedName: "Ljudniv\xE5",
45
+ emoji: "\u{1F50A}",
46
+ sources: Object.freeze([
47
+ "https://en.wikipedia.org/wiki/A-weighting",
48
+ "https://www.iso.org/standard/17426.html"
49
+ ])
50
+ });
51
+ /** The display form, e.g. `69 dB(A)`. */
52
+ value;
53
+ /** The numeric decibel value, e.g. `69`. */
54
+ get decibels() {
55
+ return this.decibelsValue.toNumber();
56
+ }
57
+ /** Creates a sound level from a value and weighting. */
58
+ static create(value, weighting) {
59
+ return new SoundLevel(toDecimal(value), weighting);
60
+ }
61
+ /** Creates an unweighted sound level, e.g. `85 dB`. */
62
+ static fromDecibels(value) {
63
+ return new SoundLevel(toDecimal(value), SoundWeighting.Unweighted);
64
+ }
65
+ /** Creates an A-weighted sound level, e.g. `69 dB(A)`. */
66
+ static fromDecibelA(value) {
67
+ return new SoundLevel(toDecimal(value), SoundWeighting.A);
68
+ }
69
+ static tryParse(input) {
70
+ if (input == null) return null;
71
+ const trimmed = sanitizeInput(input).trim();
72
+ if (trimmed.length === 0) return null;
73
+ const match = UNIT_PATTERN.exec(trimmed);
74
+ const number = match?.groups?.["num"];
75
+ if (number === void 0) return null;
76
+ const parsed = tryParseNumberOnly(number);
77
+ if (parsed === null) return null;
78
+ const decibels = match?.groups?.["sign"] === "-" ? parsed.negated() : parsed;
79
+ const letter = match?.groups?.["w1"] ?? match?.groups?.["w2"];
80
+ const weighting = letter === void 0 ? SoundWeighting.Unweighted : WEIGHTINGS[letter.toUpperCase()] ?? SoundWeighting.Unweighted;
81
+ return new SoundLevel(decibels, weighting);
82
+ }
83
+ static parse(input) {
84
+ const result = SoundLevel.tryParse(input);
85
+ if (result === null) throw new Error("Invalid sound level.");
86
+ return result;
87
+ }
88
+ static isValid(input) {
89
+ return SoundLevel.tryParse(input) !== null;
90
+ }
91
+ /** Display form, e.g. `69 dB(A)`. */
92
+ static format(input, options) {
93
+ const parsed = SoundLevel.tryParse(input);
94
+ if (parsed !== null) return parsed.toString();
95
+ return fallback(input, options);
96
+ }
97
+ /** Canonical form, e.g. `69 dB(A)`. */
98
+ static normalize(input, options) {
99
+ const parsed = SoundLevel.tryParse(input);
100
+ if (parsed !== null) return parsed.toNormalizedString();
101
+ return fallback(input, options);
102
+ }
103
+ static isNormalized(input) {
104
+ return input != null && SoundLevel.normalize(input) === input;
105
+ }
106
+ toNormalizedString() {
107
+ return this.value;
108
+ }
109
+ toString() {
110
+ return this.value;
111
+ }
112
+ compareTo(other) {
113
+ if (other == null) return 1;
114
+ return this.decibelsValue.compareTo(other.decibelsValue);
115
+ }
116
+ equals(other) {
117
+ return other != null && this.decibelsValue.equals(other.decibelsValue) && this.weighting === other.weighting;
118
+ }
119
+ static findCandidatesInText(text) {
120
+ if (!text) return [];
121
+ const out = [];
122
+ const pattern = new RegExp(SCAN_PATTERN.source, SCAN_PATTERN.flags);
123
+ let match;
124
+ while ((match = pattern.exec(text)) !== null) {
125
+ const value = SoundLevel.tryParse(match[0]);
126
+ if (value === null) continue;
127
+ out.push(
128
+ new TextCandidate({
129
+ startIndex: match.index,
130
+ length: match[0].length,
131
+ originalText: match[0],
132
+ typeName: "SoundLevel",
133
+ category: TextCandidateCategory.Measurement,
134
+ normalizedForm: value.toNormalizedString(),
135
+ formattedForm: value.toString(),
136
+ maskedForm: maskSoundLevel(value),
137
+ confidence: TextMatchConfidence.Low,
138
+ value
139
+ })
140
+ );
141
+ }
142
+ return out;
143
+ }
144
+ }
145
+ function maskSoundLevel(soundLevel) {
146
+ return `***${SUFFIXES[soundLevel.weighting]}`;
147
+ }
148
+ function toDecimal(value) {
149
+ if (value instanceof Decimal) return value;
150
+ const parsed = Decimal.fromNumber(value);
151
+ if (parsed === null) throw new Error(`Value cannot be represented as a sound level: ${value}`);
152
+ return parsed;
153
+ }
154
+ function fallback(input, options) {
155
+ if (options?.fallbackToTrimmedInputWhenInvalid !== true) return null;
156
+ if (input == null) return null;
157
+ const trimmed = input.trim();
158
+ return trimmed.length > 0 ? trimmed : null;
159
+ }
160
+ export {
161
+ SoundLevel,
162
+ SoundWeighting,
163
+ maskSoundLevel
164
+ };
165
+ //# sourceMappingURL=sound-level.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/measurement/sound-level.ts"],
4
+ "sourcesContent": ["import { Decimal } from \"../internal/decimal.js\";\nimport { sanitizeInput } from \"../internal/input-sanitization.js\";\nimport { tryParseNumberOnly } from \"../internal/measurement-unit-parser.js\";\nimport type { PrimitiveTypeInfo } from \"../primitive-type-info.js\";\nimport { TextCandidate } from \"../text-scanning/text-candidate.js\";\nimport { TextCandidateCategory } from \"../text-scanning/text-candidate-category.js\";\nimport { TextMatchConfidence } from \"../text-scanning/text-match-confidence.js\";\n\n/**\n * The frequency weighting curve applied to a sound measurement.\n */\nexport const SoundWeighting = {\n /** No weighting: a flat response. */\n Unweighted: 0,\n /** A-weighting, which approximates human hearing sensitivity. */\n A: 1,\n /** B-weighting, an intermediate curve that is rarely used. */\n B: 2,\n /** C-weighting, flat across most audible frequencies. */\n C: 3,\n /** Z-weighting, zero weighting, flat from 10 Hz to 20 kHz. */\n Z: 4,\n} as const;\n\nexport type SoundWeighting = (typeof SoundWeighting)[keyof typeof SoundWeighting];\n\n/** Options for {@link SoundLevel.format} and {@link SoundLevel.normalize}. */\nexport interface SoundLevelFormatOptions {\n fallbackToTrimmedInputWhenInvalid?: boolean;\n}\n\nconst UNIT_PATTERN =\n /^\\s*(?<sign>[+-])?\\s*(?<num>[0-9][0-9 .,]*[0-9]|[0-9])\\s*(?<unit>dB\\s*(?:\\(\\s*(?<w1>[ABCZabcz])\\s*\\)|(?<w2>[ABCZabcz]))?)?\\s*$/iu;\n\nconst SCAN_PATTERN =\n /(?<!\\w)(?:[+-]\\s*)?\\d+[0-9 .,]*\\s*dB(?:\\s*\\(\\s*[ABCZabcz]\\s*\\)|[ABCZabcz])?\\b/giu;\n\nconst SUFFIXES: Record<SoundWeighting, string> = {\n [SoundWeighting.Unweighted]: \" dB\",\n [SoundWeighting.A]: \" dB(A)\",\n [SoundWeighting.B]: \" dB(B)\",\n [SoundWeighting.C]: \" dB(C)\",\n [SoundWeighting.Z]: \" dB(Z)\",\n};\n\nconst WEIGHTINGS: Record<string, SoundWeighting> = {\n A: SoundWeighting.A,\n B: SoundWeighting.B,\n C: SoundWeighting.C,\n Z: SoundWeighting.Z,\n};\n\n/**\n * A sound pressure level in decibels, optionally carrying a frequency\n * weighting \u2014 `85 dB`, `69 dB(A)`, `40 dBZ`.\n *\n * The decibel unit is missing from many inputs in practice, so a bare number is\n * accepted and read as unweighted decibels.\n */\nexport class SoundLevel {\n static readonly typeInfo: PrimitiveTypeInfo = Object.freeze({\n englishName: \"Sound Level\",\n localizedName: \"Ljudniv\u00E5\",\n emoji: \"\uD83D\uDD0A\",\n sources: Object.freeze([\n \"https://en.wikipedia.org/wiki/A-weighting\",\n \"https://www.iso.org/standard/17426.html\",\n ]),\n });\n\n /** The display form, e.g. `69 dB(A)`. */\n readonly value: string;\n\n private constructor(\n private readonly decibelsValue: Decimal,\n /** The frequency weighting applied to this measurement. */\n readonly weighting: SoundWeighting,\n ) {\n this.value = `${decibelsValue.toTrimmedString()}${SUFFIXES[weighting]}`;\n }\n\n /** The numeric decibel value, e.g. `69`. */\n get decibels(): number {\n return this.decibelsValue.toNumber();\n }\n\n /** Creates a sound level from a value and weighting. */\n static create(value: number | Decimal, weighting: SoundWeighting): SoundLevel {\n return new SoundLevel(toDecimal(value), weighting);\n }\n\n /** Creates an unweighted sound level, e.g. `85 dB`. */\n static fromDecibels(value: number | Decimal): SoundLevel {\n return new SoundLevel(toDecimal(value), SoundWeighting.Unweighted);\n }\n\n /** Creates an A-weighted sound level, e.g. `69 dB(A)`. */\n static fromDecibelA(value: number | Decimal): SoundLevel {\n return new SoundLevel(toDecimal(value), SoundWeighting.A);\n }\n\n static tryParse(input: string | null | undefined): SoundLevel | null {\n if (input == null) return null;\n\n const trimmed = sanitizeInput(input).trim();\n if (trimmed.length === 0) return null;\n\n const match = UNIT_PATTERN.exec(trimmed);\n const number = match?.groups?.[\"num\"];\n if (number === undefined) return null;\n\n const parsed = tryParseNumberOnly(number);\n if (parsed === null) return null;\n\n const decibels = match?.groups?.[\"sign\"] === \"-\" ? parsed.negated() : parsed;\n const letter = match?.groups?.[\"w1\"] ?? match?.groups?.[\"w2\"];\n const weighting =\n letter === undefined\n ? SoundWeighting.Unweighted\n : (WEIGHTINGS[letter.toUpperCase()] ?? SoundWeighting.Unweighted);\n\n return new SoundLevel(decibels, weighting);\n }\n\n static parse(input: string): SoundLevel {\n const result = SoundLevel.tryParse(input);\n if (result === null) throw new Error(\"Invalid sound level.\");\n return result;\n }\n\n static isValid(input: string | null | undefined): boolean {\n return SoundLevel.tryParse(input) !== null;\n }\n\n /** Display form, e.g. `69 dB(A)`. */\n static format(\n input: string | null | undefined,\n options?: SoundLevelFormatOptions,\n ): string | null {\n const parsed = SoundLevel.tryParse(input);\n if (parsed !== null) return parsed.toString();\n return fallback(input, options);\n }\n\n /** Canonical form, e.g. `69 dB(A)`. */\n static normalize(\n input: string | null | undefined,\n options?: SoundLevelFormatOptions,\n ): string | null {\n const parsed = SoundLevel.tryParse(input);\n if (parsed !== null) return parsed.toNormalizedString();\n return fallback(input, options);\n }\n\n static isNormalized(input: string | null | undefined): boolean {\n return input != null && SoundLevel.normalize(input) === input;\n }\n\n toNormalizedString(): string {\n return this.value;\n }\n\n toString(): string {\n return this.value;\n }\n\n compareTo(other: SoundLevel | null | undefined): number {\n if (other == null) return 1;\n return this.decibelsValue.compareTo(other.decibelsValue);\n }\n\n equals(other: SoundLevel | null | undefined): boolean {\n return (\n other != null &&\n this.decibelsValue.equals(other.decibelsValue) &&\n this.weighting === other.weighting\n );\n }\n\n static findCandidatesInText(text: string): readonly TextCandidate<SoundLevel>[] {\n if (!text) return [];\n\n const out: TextCandidate<SoundLevel>[] = [];\n const pattern = new RegExp(SCAN_PATTERN.source, SCAN_PATTERN.flags);\n let match: RegExpExecArray | null;\n\n while ((match = pattern.exec(text)) !== null) {\n const value = SoundLevel.tryParse(match[0]);\n if (value === null) continue;\n out.push(\n new TextCandidate<SoundLevel>({\n startIndex: match.index,\n length: match[0].length,\n originalText: match[0],\n typeName: \"SoundLevel\",\n category: TextCandidateCategory.Measurement,\n normalizedForm: value.toNormalizedString(),\n formattedForm: value.toString(),\n maskedForm: maskSoundLevel(value),\n confidence: TextMatchConfidence.Low,\n value,\n }),\n );\n }\n\n return out;\n }\n}\n\n/** Returns a masked sound level, e.g. `69 dB(A)` becomes `*** dB(A)`. */\nexport function maskSoundLevel(soundLevel: SoundLevel): string {\n return `***${SUFFIXES[soundLevel.weighting]}`;\n}\n\nfunction toDecimal(value: number | Decimal): Decimal {\n if (value instanceof Decimal) return value;\n const parsed = Decimal.fromNumber(value);\n if (parsed === null) throw new Error(`Value cannot be represented as a sound level: ${value}`);\n return parsed;\n}\n\nfunction fallback(\n input: string | null | undefined,\n options?: SoundLevelFormatOptions,\n): string | null {\n if (options?.fallbackToTrimmedInputWhenInvalid !== true) return null;\n if (input == null) return null;\n const trimmed = input.trim();\n return trimmed.length > 0 ? trimmed : null;\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,99 @@
1
+ import { Decimal } from "../internal/decimal.js";
2
+ import { MeasurementUnit, MeasurementUnitIndex } from "../internal/measurement-unit.js";
3
+ function factor(literal) {
4
+ const parsed = Decimal.parse(literal);
5
+ if (parsed === null) throw new Error(`Invalid conversion factor: ${literal}`);
6
+ return parsed;
7
+ }
8
+ class SpeedUnit extends MeasurementUnit {
9
+ static typeInfo = Object.freeze({
10
+ englishName: "Speed Unit",
11
+ localizedName: "Hastighetsenhet",
12
+ emoji: "\u{1F3CE}\uFE0F",
13
+ sources: Object.freeze([])
14
+ });
15
+ static MetersPerSecond = new SpeedUnit({
16
+ symbol: "m/s",
17
+ englishName: "meter per second",
18
+ localizedName: "meter per sekund",
19
+ pluralEnglish: "meters per second",
20
+ pluralSwedish: "meter per sekund",
21
+ toBaseUnitFactor: factor("1")
22
+ });
23
+ static KilometersPerHour = new SpeedUnit({
24
+ symbol: "km/h",
25
+ englishName: "kilometer per hour",
26
+ localizedName: "kilometer per timme",
27
+ pluralEnglish: "kilometers per hour",
28
+ pluralSwedish: "kilometer per timme",
29
+ toBaseUnitFactor: factor("0.2777777777777777777777777778"),
30
+ exactRatio: [factor("1000"), factor("3600")],
31
+ aliases: ["kmh", "km/t", "kph", "kilometre per hour", "kilometres per hour"]
32
+ });
33
+ static MilesPerHour = new SpeedUnit({
34
+ symbol: "mph",
35
+ englishName: "mile per hour",
36
+ localizedName: "miles per timme",
37
+ pluralEnglish: "miles per hour",
38
+ pluralSwedish: "miles per timme",
39
+ toBaseUnitFactor: factor("0.44704"),
40
+ aliases: ["miles per hour"]
41
+ });
42
+ static FeetPerSecond = new SpeedUnit({
43
+ symbol: "ft/s",
44
+ englishName: "foot per second",
45
+ localizedName: "fot per sekund",
46
+ pluralEnglish: "feet per second",
47
+ pluralSwedish: "fot per sekund",
48
+ toBaseUnitFactor: factor("0.3048")
49
+ });
50
+ static Knot = new SpeedUnit({
51
+ symbol: "kn",
52
+ englishName: "knot",
53
+ localizedName: "knop",
54
+ pluralEnglish: "knots",
55
+ pluralSwedish: "knop",
56
+ toBaseUnitFactor: factor("0.5144444444444444444444444444"),
57
+ aliases: ["knot", "knots", "knop", "kt"]
58
+ });
59
+ /** @internal Shared lookup and natural-scale walk. */
60
+ static index = new MeasurementUnitIndex(
61
+ [
62
+ SpeedUnit.MetersPerSecond,
63
+ SpeedUnit.KilometersPerHour,
64
+ SpeedUnit.MilesPerHour,
65
+ SpeedUnit.FeetPerSecond,
66
+ SpeedUnit.Knot
67
+ ],
68
+ SpeedUnit.MetersPerSecond,
69
+ []
70
+ );
71
+ static get all() {
72
+ return SpeedUnit.index.all;
73
+ }
74
+ /** The base unit: m/s. */
75
+ static get baseUnit() {
76
+ return SpeedUnit.index.baseUnit;
77
+ }
78
+ /** Empty — this dimension has no curated display scale in .NET either. */
79
+ static get naturalScale() {
80
+ return SpeedUnit.index.naturalScale;
81
+ }
82
+ /** Resolves a unit from a symbol, name, plural or alias, case-insensitively. */
83
+ static tryParse(input) {
84
+ return SpeedUnit.index.tryParse(input);
85
+ }
86
+ static parse(input) {
87
+ const result = SpeedUnit.tryParse(input);
88
+ if (result === null) throw new Error("Unknown speed unit.");
89
+ return result;
90
+ }
91
+ /** Returns the most human-readable unit for a value in m/s. */
92
+ static getNatural(baseValue) {
93
+ return SpeedUnit.index.getNatural(baseValue);
94
+ }
95
+ }
96
+ export {
97
+ SpeedUnit
98
+ };
99
+ //# sourceMappingURL=speed-unit.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/measurement/speed-unit.ts"],
4
+ "sourcesContent": ["import { Decimal } from \"../internal/decimal.js\";\nimport { MeasurementUnit, MeasurementUnitIndex } from \"../internal/measurement-unit.js\";\nimport type { PrimitiveTypeInfo } from \"../primitive-type-info.js\";\n\nfunction factor(literal: string): Decimal {\n const parsed = Decimal.parse(literal);\n /* c8 ignore next */\n if (parsed === null) throw new Error(`Invalid conversion factor: ${literal}`);\n return parsed;\n}\n\n/**\n * A unit of speed identified by its symbol.\n * Each unit carries English and Swedish names, singular and plural forms, and an\n * exact conversion factor to the base unit.\n */\nexport class SpeedUnit extends MeasurementUnit {\n declare private readonly __speedUnitBrand: void;\n\n static readonly typeInfo: PrimitiveTypeInfo = Object.freeze({\n englishName: \"Speed Unit\",\n localizedName: \"Hastighetsenhet\",\n emoji: \"\uD83C\uDFCE\uFE0F\",\n sources: Object.freeze([]),\n });\n\n static readonly MetersPerSecond = new SpeedUnit({\n symbol: \"m/s\",\n englishName: \"meter per second\",\n localizedName: \"meter per sekund\",\n pluralEnglish: \"meters per second\",\n pluralSwedish: \"meter per sekund\",\n toBaseUnitFactor: factor(\"1\"),\n });\n\n static readonly KilometersPerHour = new SpeedUnit({\n symbol: \"km/h\",\n englishName: \"kilometer per hour\",\n localizedName: \"kilometer per timme\",\n pluralEnglish: \"kilometers per hour\",\n pluralSwedish: \"kilometer per timme\",\n toBaseUnitFactor: factor(\"0.2777777777777777777777777778\"),\n exactRatio: [factor(\"1000\"), factor(\"3600\")],\n aliases: [\"kmh\", \"km/t\", \"kph\", \"kilometre per hour\", \"kilometres per hour\"],\n });\n\n static readonly MilesPerHour = new SpeedUnit({\n symbol: \"mph\",\n englishName: \"mile per hour\",\n localizedName: \"miles per timme\",\n pluralEnglish: \"miles per hour\",\n pluralSwedish: \"miles per timme\",\n toBaseUnitFactor: factor(\"0.44704\"),\n aliases: [\"miles per hour\"],\n });\n\n static readonly FeetPerSecond = new SpeedUnit({\n symbol: \"ft/s\",\n englishName: \"foot per second\",\n localizedName: \"fot per sekund\",\n pluralEnglish: \"feet per second\",\n pluralSwedish: \"fot per sekund\",\n toBaseUnitFactor: factor(\"0.3048\"),\n });\n\n static readonly Knot = new SpeedUnit({\n symbol: \"kn\",\n englishName: \"knot\",\n localizedName: \"knop\",\n pluralEnglish: \"knots\",\n pluralSwedish: \"knop\",\n toBaseUnitFactor: factor(\"0.5144444444444444444444444444\"),\n aliases: [\"knot\", \"knots\", \"knop\", \"kt\"],\n });\n\n /** @internal Shared lookup and natural-scale walk. */\n static readonly index: MeasurementUnitIndex<SpeedUnit> = new MeasurementUnitIndex<SpeedUnit>(\n [\n SpeedUnit.MetersPerSecond,\n SpeedUnit.KilometersPerHour,\n SpeedUnit.MilesPerHour,\n SpeedUnit.FeetPerSecond,\n SpeedUnit.Knot,\n ],\n SpeedUnit.MetersPerSecond,\n [],\n );\n\n static get all(): readonly SpeedUnit[] {\n return SpeedUnit.index.all;\n }\n\n /** The base unit: m/s. */\n static get baseUnit(): SpeedUnit {\n return SpeedUnit.index.baseUnit;\n }\n\n /** Empty \u2014 this dimension has no curated display scale in .NET either. */\n static get naturalScale(): readonly SpeedUnit[] {\n return SpeedUnit.index.naturalScale;\n }\n\n /** Resolves a unit from a symbol, name, plural or alias, case-insensitively. */\n static tryParse(input: string | null | undefined): SpeedUnit | null {\n return SpeedUnit.index.tryParse(input);\n }\n\n static parse(input: string): SpeedUnit {\n const result = SpeedUnit.tryParse(input);\n if (result === null) throw new Error(\"Unknown speed unit.\");\n return result;\n }\n\n /** Returns the most human-readable unit for a value in m/s. */\n static getNatural(baseValue: Decimal): SpeedUnit {\n return SpeedUnit.index.getNatural(baseValue);\n }\n}\n"],
5
+ "mappings": "AAAA,SAAS,eAAe;AACxB,SAAS,iBAAiB,4BAA4B;AAGtD,SAAS,OAAO,SAA0B;AACxC,QAAM,SAAS,QAAQ,MAAM,OAAO;AAEpC,MAAI,WAAW,KAAM,OAAM,IAAI,MAAM,8BAA8B,OAAO,EAAE;AAC5E,SAAO;AACT;AAOO,MAAM,kBAAkB,gBAAgB;AAAA,EAG7C,OAAgB,WAA8B,OAAO,OAAO;AAAA,IAC1D,aAAa;AAAA,IACb,eAAe;AAAA,IACf,OAAO;AAAA,IACP,SAAS,OAAO,OAAO,CAAC,CAAC;AAAA,EAC3B,CAAC;AAAA,EAED,OAAgB,kBAAkB,IAAI,UAAU;AAAA,IAC9C,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,eAAe;AAAA,IACf,eAAe;AAAA,IACf,eAAe;AAAA,IACf,kBAAkB,OAAO,GAAG;AAAA,EAC9B,CAAC;AAAA,EAED,OAAgB,oBAAoB,IAAI,UAAU;AAAA,IAChD,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,eAAe;AAAA,IACf,eAAe;AAAA,IACf,eAAe;AAAA,IACf,kBAAkB,OAAO,gCAAgC;AAAA,IACzD,YAAY,CAAC,OAAO,MAAM,GAAG,OAAO,MAAM,CAAC;AAAA,IAC3C,SAAS,CAAC,OAAO,QAAQ,OAAO,sBAAsB,qBAAqB;AAAA,EAC7E,CAAC;AAAA,EAED,OAAgB,eAAe,IAAI,UAAU;AAAA,IAC3C,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,eAAe;AAAA,IACf,eAAe;AAAA,IACf,eAAe;AAAA,IACf,kBAAkB,OAAO,SAAS;AAAA,IAClC,SAAS,CAAC,gBAAgB;AAAA,EAC5B,CAAC;AAAA,EAED,OAAgB,gBAAgB,IAAI,UAAU;AAAA,IAC5C,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,eAAe;AAAA,IACf,eAAe;AAAA,IACf,eAAe;AAAA,IACf,kBAAkB,OAAO,QAAQ;AAAA,EACnC,CAAC;AAAA,EAED,OAAgB,OAAO,IAAI,UAAU;AAAA,IACnC,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,eAAe;AAAA,IACf,eAAe;AAAA,IACf,eAAe;AAAA,IACf,kBAAkB,OAAO,gCAAgC;AAAA,IACzD,SAAS,CAAC,QAAQ,SAAS,QAAQ,IAAI;AAAA,EACzC,CAAC;AAAA;AAAA,EAGD,OAAgB,QAAyC,IAAI;AAAA,IAC3D;AAAA,MACE,UAAU;AAAA,MACV,UAAU;AAAA,MACV,UAAU;AAAA,MACV,UAAU;AAAA,MACV,UAAU;AAAA,IACZ;AAAA,IACA,UAAU;AAAA,IACV,CAAC;AAAA,EACH;AAAA,EAEA,WAAW,MAA4B;AACrC,WAAO,UAAU,MAAM;AAAA,EACzB;AAAA;AAAA,EAGA,WAAW,WAAsB;AAC/B,WAAO,UAAU,MAAM;AAAA,EACzB;AAAA;AAAA,EAGA,WAAW,eAAqC;AAC9C,WAAO,UAAU,MAAM;AAAA,EACzB;AAAA;AAAA,EAGA,OAAO,SAAS,OAAoD;AAClE,WAAO,UAAU,MAAM,SAAS,KAAK;AAAA,EACvC;AAAA,EAEA,OAAO,MAAM,OAA0B;AACrC,UAAM,SAAS,UAAU,SAAS,KAAK;AACvC,QAAI,WAAW,KAAM,OAAM,IAAI,MAAM,qBAAqB;AAC1D,WAAO;AAAA,EACT;AAAA;AAAA,EAGA,OAAO,WAAW,WAA+B;AAC/C,WAAO,UAAU,MAAM,WAAW,SAAS;AAAA,EAC7C;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,139 @@
1
+ import { Decimal } from "../internal/decimal.js";
2
+ import { Quantity, tryParseQuantity } from "../internal/quantity.js";
3
+ import { TextCandidate } from "../text-scanning/text-candidate.js";
4
+ import { TextCandidateCategory } from "../text-scanning/text-candidate-category.js";
5
+ import { TextMatchConfidence } from "../text-scanning/text-match-confidence.js";
6
+ import { SpeedUnit } from "./speed-unit.js";
7
+ const SCAN_PATTERN = new RegExp(
8
+ String.raw`(?<!\w)(?:[+-]\s*)?\d+[0-9 .,]*\s*(?:miles\s+per\s+hour|km/h|ft/s|m/s|kph|kmh|km/t|mph|knots?|knop|kt|kn)\b`,
9
+ "giu"
10
+ );
11
+ class Speed extends Quantity {
12
+ static typeInfo = Object.freeze({
13
+ englishName: "Speed",
14
+ localizedName: "Hastighet",
15
+ emoji: "\u{1F3CE}\uFE0F",
16
+ sources: Object.freeze([
17
+ "https://www.bipm.org/en/measurement-units/si-base-units",
18
+ "https://en.wikipedia.org/wiki/Conversion_of_units"
19
+ ])
20
+ });
21
+ get units() {
22
+ return SpeedUnit.index;
23
+ }
24
+ withBaseValue(baseValue, unit) {
25
+ return new Speed(baseValue, unit);
26
+ }
27
+ get metersPerSecond() {
28
+ return this.in(SpeedUnit.MetersPerSecond);
29
+ }
30
+ get kilometersPerHour() {
31
+ return this.in(SpeedUnit.KilometersPerHour);
32
+ }
33
+ get milesPerHour() {
34
+ return this.in(SpeedUnit.MilesPerHour);
35
+ }
36
+ get feetPerSecond() {
37
+ return this.in(SpeedUnit.FeetPerSecond);
38
+ }
39
+ get knots() {
40
+ return this.in(SpeedUnit.Knot);
41
+ }
42
+ /** Creates a speed from a value and unit. */
43
+ static create(value, unit) {
44
+ SpeedUnit.index.assertOwns(unit);
45
+ const amount = value instanceof Decimal ? value : Speed.decimalOf(value);
46
+ return new Speed(unit.toBase(amount), unit);
47
+ }
48
+ static fromMetersPerSecond(value) {
49
+ return Speed.create(value, SpeedUnit.MetersPerSecond);
50
+ }
51
+ static fromKilometersPerHour(value) {
52
+ return Speed.create(value, SpeedUnit.KilometersPerHour);
53
+ }
54
+ static fromMilesPerHour(value) {
55
+ return Speed.create(value, SpeedUnit.MilesPerHour);
56
+ }
57
+ static fromFeetPerSecond(value) {
58
+ return Speed.create(value, SpeedUnit.FeetPerSecond);
59
+ }
60
+ static fromKnots(value) {
61
+ return Speed.create(value, SpeedUnit.Knot);
62
+ }
63
+ static tryParse(input) {
64
+ const parsed = tryParseQuantity(input, SpeedUnit.index);
65
+ return parsed === null ? null : new Speed(parsed.baseValue, parsed.unit);
66
+ }
67
+ static parse(input) {
68
+ const result = Speed.tryParse(input);
69
+ if (result === null) throw new Error("Invalid speed.");
70
+ return result;
71
+ }
72
+ static isValid(input) {
73
+ return Speed.tryParse(input) !== null;
74
+ }
75
+ /** Display form in the parsed unit, or `null` when the input is invalid. */
76
+ static format(input, options) {
77
+ const parsed = Speed.tryParse(input);
78
+ if (parsed !== null) {
79
+ if (options?.unit !== void 0 || options?.decimals !== void 0) {
80
+ return parsed.toStringInUnit(options.unit ?? parsed.originalUnit, options.decimals);
81
+ }
82
+ return parsed.toString();
83
+ }
84
+ return Speed.fallback(input, options);
85
+ }
86
+ /** The value in meters per second, or `null` when the input is invalid. */
87
+ static normalize(input, options) {
88
+ const parsed = Speed.tryParse(input);
89
+ if (parsed !== null) return parsed.toNormalizedString();
90
+ return Speed.fallback(input, options);
91
+ }
92
+ static isNormalized(input) {
93
+ return input != null && Speed.normalize(input) === input;
94
+ }
95
+ static findCandidatesInText(text) {
96
+ if (!text) return [];
97
+ const out = [];
98
+ const pattern = new RegExp(SCAN_PATTERN.source, SCAN_PATTERN.flags);
99
+ let match;
100
+ while ((match = pattern.exec(text)) !== null) {
101
+ const value = Speed.tryParse(match[0]);
102
+ if (value === null) continue;
103
+ out.push(
104
+ new TextCandidate({
105
+ startIndex: match.index,
106
+ length: match[0].length,
107
+ originalText: match[0],
108
+ typeName: "Speed",
109
+ category: TextCandidateCategory.Measurement,
110
+ normalizedForm: value.toNormalizedString(),
111
+ formattedForm: value.toString(),
112
+ maskedForm: maskSpeed(value),
113
+ confidence: TextMatchConfidence.Medium,
114
+ value
115
+ })
116
+ );
117
+ }
118
+ return out;
119
+ }
120
+ static fallback(input, options) {
121
+ if (options?.fallbackToTrimmedInputWhenInvalid !== true) return null;
122
+ if (input == null) return null;
123
+ const trimmed = input.trim();
124
+ return trimmed.length > 0 ? trimmed : null;
125
+ }
126
+ static decimalOf(value) {
127
+ const parsed = Decimal.fromNumber(value);
128
+ if (parsed === null) throw new Error(`Value cannot be represented as a speed: ${value}`);
129
+ return parsed;
130
+ }
131
+ }
132
+ function maskSpeed(value) {
133
+ return `*** ${value.originalUnit.symbol}`;
134
+ }
135
+ export {
136
+ Speed,
137
+ maskSpeed
138
+ };
139
+ //# sourceMappingURL=speed.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/measurement/speed.ts"],
4
+ "sourcesContent": ["import { Decimal } from \"../internal/decimal.js\";\nimport type { MeasurementUnitIndex } from \"../internal/measurement-unit.js\";\nimport { Quantity, tryParseQuantity } from \"../internal/quantity.js\";\nimport type { PrimitiveTypeInfo } from \"../primitive-type-info.js\";\nimport { TextCandidate } from \"../text-scanning/text-candidate.js\";\nimport { TextCandidateCategory } from \"../text-scanning/text-candidate-category.js\";\nimport { TextMatchConfidence } from \"../text-scanning/text-match-confidence.js\";\nimport { SpeedUnit } from \"./speed-unit.js\";\n\n/** Options for {@link Speed.format} and {@link Speed.normalize}. */\nexport interface SpeedFormatOptions {\n fallbackToTrimmedInputWhenInvalid?: boolean;\n /** Convert to this unit instead of preserving the parsed one. */\n unit?: SpeedUnit;\n /** Round to this many fractional digits, away from zero. */\n decimals?: number;\n}\n\nconst SCAN_PATTERN = new RegExp(\n String.raw`(?<!\\w)(?:[+-]\\s*)?\\d+[0-9 .,]*\\s*(?:miles\\s+per\\s+hour|km/h|ft/s|m/s|kph|kmh|km/t|mph|knots?|knop|kt|kn)\\b`,\n \"giu\",\n);\n\n/**\n * A speed stored internally in meters per second,\n * parsed from any supported unit and convertible between all of them.\n */\nexport class Speed extends Quantity<SpeedUnit> {\n static readonly typeInfo: PrimitiveTypeInfo = Object.freeze({\n englishName: \"Speed\",\n localizedName: \"Hastighet\",\n emoji: \"\uD83C\uDFCE\uFE0F\",\n sources: Object.freeze([\n \"https://www.bipm.org/en/measurement-units/si-base-units\",\n \"https://en.wikipedia.org/wiki/Conversion_of_units\",\n ]),\n });\n\n protected get units(): MeasurementUnitIndex<SpeedUnit> {\n return SpeedUnit.index;\n }\n\n protected withBaseValue(baseValue: Decimal, unit: SpeedUnit): this {\n return new Speed(baseValue, unit) as this;\n }\n\n get metersPerSecond(): number {\n return this.in(SpeedUnit.MetersPerSecond);\n }\n get kilometersPerHour(): number {\n return this.in(SpeedUnit.KilometersPerHour);\n }\n get milesPerHour(): number {\n return this.in(SpeedUnit.MilesPerHour);\n }\n get feetPerSecond(): number {\n return this.in(SpeedUnit.FeetPerSecond);\n }\n get knots(): number {\n return this.in(SpeedUnit.Knot);\n }\n\n /** Creates a speed from a value and unit. */\n static create(value: number | Decimal, unit: SpeedUnit): Speed {\n SpeedUnit.index.assertOwns(unit);\n const amount = value instanceof Decimal ? value : Speed.decimalOf(value);\n return new Speed(unit.toBase(amount), unit);\n }\n\n static fromMetersPerSecond(value: number | Decimal): Speed {\n return Speed.create(value, SpeedUnit.MetersPerSecond);\n }\n static fromKilometersPerHour(value: number | Decimal): Speed {\n return Speed.create(value, SpeedUnit.KilometersPerHour);\n }\n static fromMilesPerHour(value: number | Decimal): Speed {\n return Speed.create(value, SpeedUnit.MilesPerHour);\n }\n static fromFeetPerSecond(value: number | Decimal): Speed {\n return Speed.create(value, SpeedUnit.FeetPerSecond);\n }\n static fromKnots(value: number | Decimal): Speed {\n return Speed.create(value, SpeedUnit.Knot);\n }\n\n static tryParse(input: string | null | undefined): Speed | null {\n const parsed = tryParseQuantity(input, SpeedUnit.index);\n return parsed === null ? null : new Speed(parsed.baseValue, parsed.unit);\n }\n\n static parse(input: string): Speed {\n const result = Speed.tryParse(input);\n if (result === null) throw new Error(\"Invalid speed.\");\n return result;\n }\n\n static isValid(input: string | null | undefined): boolean {\n return Speed.tryParse(input) !== null;\n }\n\n /** Display form in the parsed unit, or `null` when the input is invalid. */\n static format(input: string | null | undefined, options?: SpeedFormatOptions): string | null {\n const parsed = Speed.tryParse(input);\n if (parsed !== null) {\n if (options?.unit !== undefined || options?.decimals !== undefined) {\n return parsed.toStringInUnit(options.unit ?? parsed.originalUnit, options.decimals);\n }\n return parsed.toString();\n }\n return Speed.fallback(input, options);\n }\n\n /** The value in meters per second, or `null` when the input is invalid. */\n static normalize(input: string | null | undefined, options?: SpeedFormatOptions): string | null {\n const parsed = Speed.tryParse(input);\n if (parsed !== null) return parsed.toNormalizedString();\n return Speed.fallback(input, options);\n }\n\n static isNormalized(input: string | null | undefined): boolean {\n return input != null && Speed.normalize(input) === input;\n }\n\n static findCandidatesInText(text: string): readonly TextCandidate<Speed>[] {\n if (!text) return [];\n\n const out: TextCandidate<Speed>[] = [];\n const pattern = new RegExp(SCAN_PATTERN.source, SCAN_PATTERN.flags);\n let match: RegExpExecArray | null;\n\n while ((match = pattern.exec(text)) !== null) {\n const value = Speed.tryParse(match[0]);\n if (value === null) continue;\n out.push(\n new TextCandidate<Speed>({\n startIndex: match.index,\n length: match[0].length,\n originalText: match[0],\n typeName: \"Speed\",\n category: TextCandidateCategory.Measurement,\n normalizedForm: value.toNormalizedString(),\n formattedForm: value.toString(),\n maskedForm: maskSpeed(value),\n confidence: TextMatchConfidence.Medium,\n value,\n }),\n );\n }\n\n return out;\n }\n\n private static fallback(\n input: string | null | undefined,\n options?: SpeedFormatOptions,\n ): string | null {\n if (options?.fallbackToTrimmedInputWhenInvalid !== true) return null;\n if (input == null) return null;\n const trimmed = input.trim();\n return trimmed.length > 0 ? trimmed : null;\n }\n\n private static decimalOf(value: number): Decimal {\n const parsed = Decimal.fromNumber(value);\n if (parsed === null) throw new Error(`Value cannot be represented as a speed: ${value}`);\n return parsed;\n }\n}\n\n/** Returns a masked speed, e.g. `10 m/s` becomes `*** m/s`. */\nexport function maskSpeed(value: Speed): string {\n return `*** ${value.originalUnit.symbol}`;\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }