@budiauktioner/buildi-primitives 0.1.0 → 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 +72 -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 +100 -65
  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,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/internal/decimal.ts"],
4
+ "sourcesContent": ["/**\n * Exact base-10 arithmetic matching the observable semantics of .NET\n * `System.Decimal`, which is what every `Measurement` quantity in\n * `Buildi.Primitives` stores its value as.\n *\n * A binary `number` cannot stand in here. Unit conversion multiplies by exact\n * decimal factors, and the result is what `normalize()` writes out as the\n * canonical storage form:\n *\n * ```text\n * 3 ft -> meters number: 0.9144000000000001 decimal: 0.9144\n * ```\n *\n * Since `isNormalized(input)` is defined as `input === normalize(input)`, that\n * drift would break the contract the package is built around, and would fail\n * the parity vectors ported from the .NET test suite.\n *\n * A value is `units / 10 ** scale`. Both the 96-bit magnitude limit and the\n * maximum scale of 28 are reproduced so that inputs .NET rejects as overflow\n * are rejected here too.\n *\n * Equivalent of .NET `System.Decimal`. Internal; not re-exported publicly.\n */\n\n/** Largest number of fractional digits a .NET decimal can carry. */\nconst MAX_SCALE = 28;\n\n/** 2^96 - 1 \u2014 the largest unscaled magnitude, i.e. `decimal.MaxValue`. */\nconst MAX_UNSCALED = (1n << 96n) - 1n;\n\n/**\n * How to break a tie when discarding digits.\n *\n * .NET uses `HalfEven` for arithmetic (verified: `1m / 536870912m` yields\n * `0.0000000018626451492309570312`, keeping the even `2` where away-from-zero\n * would produce `3`), while `Math.Round(x, n, MidpointRounding.AwayFromZero)`\n * is what the quantity formatters ask for explicitly.\n */\nexport type RoundingMode = \"half-even\" | \"away-from-zero\";\n\nconst POW10_CACHE: bigint[] = [];\n\nfunction pow10(exponent: number): bigint {\n if (exponent < 0) throw new RangeError(\"Negative power of ten.\");\n const cached = POW10_CACHE[exponent];\n if (cached !== undefined) return cached;\n let value = 1n;\n for (let i = 0; i < exponent; i++) value *= 10n;\n POW10_CACHE[exponent] = value;\n return value;\n}\n\nfunction absBigInt(value: bigint): bigint {\n return value < 0n ? -value : value;\n}\n\n/** Divides and rounds in one step, keeping the sign out of the tie logic. */\nfunction divideRounded(numerator: bigint, denominator: bigint, mode: RoundingMode): bigint {\n let n = numerator;\n let d = denominator;\n if (d < 0n) {\n n = -n;\n d = -d;\n }\n\n const negative = n < 0n;\n const magnitude = negative ? -n : n;\n\n let quotient = magnitude / d;\n const doubledRemainder = (magnitude % d) * 2n;\n\n if (doubledRemainder > d) {\n quotient += 1n;\n } else if (doubledRemainder === d) {\n if (mode === \"away-from-zero\" || quotient % 2n === 1n) quotient += 1n;\n }\n\n return negative ? -quotient : quotient;\n}\n\n/** Thrown when a result cannot be represented, mirroring .NET `OverflowException`. */\nexport class DecimalOverflowError extends Error {\n constructor() {\n super(\"Decimal overflow.\");\n this.name = \"DecimalOverflowError\";\n }\n}\n\n/** Thrown by division by zero, mirroring .NET `DivideByZeroException`. */\nexport class DecimalDivisionByZeroError extends Error {\n constructor() {\n super(\"Decimal division by zero.\");\n this.name = \"DecimalDivisionByZeroError\";\n }\n}\n\nconst DECIMAL_PATTERN = /^[+-]?(?:\\d+)(?:\\.\\d+)?$/;\n\nexport class Decimal {\n static readonly zero = new Decimal(0n, 0);\n static readonly one = new Decimal(1n, 0);\n\n private constructor(\n private readonly units: bigint,\n private readonly scale: number,\n ) {}\n\n /**\n * Drops scale until the value fits in 96 bits and 28 fractional digits.\n *\n * .NET reduces precision before it gives up, which is why `1e-16 * 1e-16`\n * yields a scale-28 zero rather than throwing.\n */\n private static fit(units: bigint, scale: number, mode: RoundingMode): Decimal {\n let u = units;\n let s = scale;\n while (s > MAX_SCALE || absBigInt(u) > MAX_UNSCALED) {\n if (s === 0) throw new DecimalOverflowError();\n let dropped = Math.max(1, s - MAX_SCALE);\n let rounded = divideRounded(u, pow10(dropped), mode);\n while (absBigInt(rounded) > MAX_UNSCALED && dropped < s) {\n dropped += 1;\n rounded = divideRounded(u, pow10(dropped), mode);\n }\n u = rounded;\n s -= dropped;\n }\n return new Decimal(u, s);\n }\n\n /** Builds a value from an integer. Throws if it does not fit. */\n static fromBigInt(value: bigint): Decimal {\n if (absBigInt(value) > MAX_UNSCALED) throw new DecimalOverflowError();\n return new Decimal(value, 0);\n }\n\n /**\n * Parses a plain decimal literal such as `-12.750`. Trailing zeros are\n * significant and preserved, as in .NET. Exponent notation is not accepted.\n * Returns `null` when the input is malformed or too large.\n */\n static parse(input: string): Decimal | null {\n if (!DECIMAL_PATTERN.test(input)) return null;\n\n const negative = input.startsWith(\"-\");\n const unsigned = input.startsWith(\"+\") || negative ? input.slice(1) : input;\n\n const pointIndex = unsigned.indexOf(\".\");\n const integerDigits = pointIndex < 0 ? unsigned : unsigned.slice(0, pointIndex);\n const fractionDigits = pointIndex < 0 ? \"\" : unsigned.slice(pointIndex + 1);\n\n let units = BigInt(integerDigits + fractionDigits);\n if (negative) units = -units;\n\n try {\n return Decimal.fit(units, fractionDigits.length, \"half-even\");\n } catch {\n return null;\n }\n }\n\n /**\n * Converts a `number`, expanding the exponent notation JavaScript uses for\n * very large and very small magnitudes so that `1e-7` parses as\n * `0.0000001`. Returns `null` for non-finite input or a magnitude outside the\n * representable range.\n */\n static fromNumber(value: number): Decimal | null {\n if (!Number.isFinite(value)) return null;\n\n const rendered = String(value);\n const exponentIndex = rendered.search(/[eE]/u);\n if (exponentIndex < 0) return Decimal.parse(rendered);\n\n const exponent = Number(rendered.slice(exponentIndex + 1));\n const mantissa = rendered.slice(0, exponentIndex);\n const negative = mantissa.startsWith(\"-\");\n const unsigned = negative ? mantissa.slice(1) : mantissa;\n\n const pointIndex = unsigned.indexOf(\".\");\n const digits = pointIndex < 0 ? unsigned : unsigned.replace(\".\", \"\");\n const pointPosition = (pointIndex < 0 ? unsigned.length : pointIndex) + exponent;\n\n let expanded: string;\n if (pointPosition <= 0) expanded = `0.${\"0\".repeat(-pointPosition)}${digits}`;\n else if (pointPosition >= digits.length)\n expanded = digits + \"0\".repeat(pointPosition - digits.length);\n else expanded = `${digits.slice(0, pointPosition)}.${digits.slice(pointPosition)}`;\n\n return Decimal.parse(negative ? `-${expanded}` : expanded);\n }\n\n get isZero(): boolean {\n return this.units === 0n;\n }\n\n get isNegative(): boolean {\n return this.units < 0n;\n }\n\n plus(other: Decimal): Decimal {\n const scale = Math.max(this.scale, other.scale);\n const a = this.units * pow10(scale - this.scale);\n const b = other.units * pow10(scale - other.scale);\n return Decimal.fit(a + b, scale, \"half-even\");\n }\n\n minus(other: Decimal): Decimal {\n const scale = Math.max(this.scale, other.scale);\n const a = this.units * pow10(scale - this.scale);\n const b = other.units * pow10(scale - other.scale);\n return Decimal.fit(a - b, scale, \"half-even\");\n }\n\n /** Scales add, as in .NET: `1.0 * 1.0` is `1.00`. */\n times(other: Decimal): Decimal {\n return Decimal.fit(this.units * other.units, this.scale + other.scale, \"half-even\");\n }\n\n /**\n * Divides at the highest precision that still fits, which is how .NET arrives\n * at `1m / 0.0254m === 39.370078740157480314960629921` \u2014 27 fractional\n * digits, because 28 would not fit in 96 bits.\n *\n * Unlike the other operations, division discards trailing zeros down to a\n * preferred scale of `dividend scale - divisor scale`. That is what makes\n * `536870912m / 2.5m` come out as `214748364.8` while `1.00m / 2m` keeps both\n * digits as `0.50`.\n */\n dividedBy(other: Decimal): Decimal {\n if (other.units === 0n) throw new DecimalDivisionByZeroError();\n\n const preferredScale = Math.max(0, this.scale - other.scale);\n\n for (let target = MAX_SCALE; target >= 0; target--) {\n const shift = target - this.scale + other.scale;\n let numerator = this.units;\n let denominator = other.units;\n if (shift >= 0) numerator *= pow10(shift);\n else denominator *= pow10(-shift);\n\n let quotient = divideRounded(numerator, denominator, \"half-even\");\n if (absBigInt(quotient) > MAX_UNSCALED) continue;\n\n // A quotient that underflows to zero loses its scale entirely rather\n // than honouring the preferred scale.\n const floorScale = quotient === 0n ? 0 : preferredScale;\n\n let scale = target;\n while (scale > floorScale && quotient % 10n === 0n) {\n quotient /= 10n;\n scale -= 1;\n }\n return new Decimal(quotient, scale);\n }\n\n throw new DecimalOverflowError();\n }\n\n negated(): Decimal {\n return new Decimal(-this.units, this.scale);\n }\n\n abs(): Decimal {\n return this.units < 0n ? this.negated() : this;\n }\n\n /**\n * Rounds to `decimals` fractional digits. Asking for more digits than the\n * value carries leaves it untouched, matching .NET `Math.Round`.\n */\n round(decimals: number, mode: RoundingMode = \"half-even\"): Decimal {\n if (!Number.isInteger(decimals) || decimals < 0 || decimals > MAX_SCALE) {\n throw new RangeError(`Decimals must be an integer from 0 through ${MAX_SCALE}.`);\n }\n if (decimals >= this.scale) return this;\n const dropped = this.scale - decimals;\n return new Decimal(divideRounded(this.units, pow10(dropped), mode), decimals);\n }\n\n /** Compares by value; scale is ignored, so `1.0` and `1.00` are equal. */\n compareTo(other: Decimal): number {\n const scale = Math.max(this.scale, other.scale);\n const a = this.units * pow10(scale - this.scale);\n const b = other.units * pow10(scale - other.scale);\n return a < b ? -1 : a > b ? 1 : 0;\n }\n\n equals(other: Decimal): boolean {\n return this.compareTo(other) === 0;\n }\n\n /** Renders with trailing zeros intact, as .NET does. */\n toString(): string {\n const negative = this.units < 0n;\n const digits = absBigInt(this.units).toString();\n\n if (this.scale === 0) return negative ? `-${digits}` : digits;\n\n const padded = digits.padStart(this.scale + 1, \"0\");\n const split = padded.length - this.scale;\n const rendered = `${padded.slice(0, split)}.${padded.slice(split)}`;\n return negative ? `-${rendered}` : rendered;\n }\n\n /**\n * Renders without trailing fractional zeros, e.g. `0.9144` rather than\n * `0.914400`. This is the form the quantity types display.\n */\n toTrimmedString(): string {\n const rendered = this.toString();\n if (!rendered.includes(\".\")) return rendered;\n return rendered.replace(/0+$/, \"\").replace(/\\.$/, \"\");\n }\n\n /**\n * Converts to a binary `number` for ergonomic consumer-facing accessors.\n * Lossy beyond 17 significant digits \u2014 never round-trip a value through this\n * on the normalization path.\n */\n toNumber(): number {\n return Number(this.toString());\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,144 @@
1
+ const RANGES = [
2
+ [0, 19, "USA & Canada", null],
3
+ [20, 29, "Restricted distribution", null],
4
+ [30, 39, "USA (drugs)", "US"],
5
+ [40, 49, "Restricted distribution", null],
6
+ [50, 59, "Coupons (USA)", null],
7
+ [60, 99, "USA & Canada", null],
8
+ [100, 139, "USA", "US"],
9
+ [200, 299, "Restricted distribution (in-store)", null],
10
+ [300, 379, "France & Monaco", "FR"],
11
+ [380, 380, "Bulgaria", "BG"],
12
+ [383, 383, "Slovenia", "SI"],
13
+ [385, 385, "Croatia", "HR"],
14
+ [387, 387, "Bosnia & Herzegovina", "BA"],
15
+ [389, 389, "Montenegro", "ME"],
16
+ [390, 390, "Kosovo", "XK"],
17
+ [400, 440, "Germany", "DE"],
18
+ [450, 459, "Japan", "JP"],
19
+ [460, 469, "Russia", "RU"],
20
+ [470, 470, "Kyrgyzstan", "KG"],
21
+ [471, 471, "Taiwan", "TW"],
22
+ [474, 474, "Estonia", "EE"],
23
+ [475, 475, "Latvia", "LV"],
24
+ [476, 476, "Azerbaijan", "AZ"],
25
+ [477, 477, "Lithuania", "LT"],
26
+ [478, 478, "Uzbekistan", "UZ"],
27
+ [479, 479, "Sri Lanka", "LK"],
28
+ [480, 480, "Philippines", "PH"],
29
+ [481, 481, "Belarus", "BY"],
30
+ [482, 482, "Ukraine", "UA"],
31
+ [484, 484, "Moldova", "MD"],
32
+ [485, 485, "Armenia", "AM"],
33
+ [486, 486, "Georgia", "GE"],
34
+ [487, 487, "Kazakhstan", "KZ"],
35
+ [488, 488, "Tajikistan", "TJ"],
36
+ [489, 489, "Hong Kong", "HK"],
37
+ [490, 499, "Japan", "JP"],
38
+ [500, 509, "United Kingdom", "GB"],
39
+ [520, 521, "Greece", "GR"],
40
+ [528, 528, "Lebanon", "LB"],
41
+ [529, 529, "Cyprus", "CY"],
42
+ [530, 530, "Albania", "AL"],
43
+ [531, 531, "North Macedonia", "MK"],
44
+ [535, 535, "Malta", "MT"],
45
+ [539, 539, "Ireland", "IE"],
46
+ [540, 549, "Belgium & Luxembourg", "BE"],
47
+ [560, 560, "Portugal", "PT"],
48
+ [569, 569, "Iceland", "IS"],
49
+ [570, 579, "Denmark", "DK"],
50
+ [590, 590, "Poland", "PL"],
51
+ [594, 594, "Romania", "RO"],
52
+ [599, 599, "Hungary", "HU"],
53
+ [600, 601, "South Africa", "ZA"],
54
+ [603, 603, "Ghana", "GH"],
55
+ [604, 604, "Senegal", "SN"],
56
+ [608, 608, "Bahrain", "BH"],
57
+ [609, 609, "Mauritius", "MU"],
58
+ [611, 611, "Morocco", "MA"],
59
+ [613, 613, "Algeria", "DZ"],
60
+ [615, 615, "Nigeria", "NG"],
61
+ [616, 616, "Kenya", "KE"],
62
+ [617, 617, "Cameroon", "CM"],
63
+ [618, 618, "Ivory Coast", "CI"],
64
+ [619, 619, "Tunisia", "TN"],
65
+ [620, 620, "Tanzania", "TZ"],
66
+ [621, 621, "Syria", "SY"],
67
+ [622, 622, "Egypt", "EG"],
68
+ [623, 623, "Brunei", "BN"],
69
+ [624, 624, "Libya", "LY"],
70
+ [625, 625, "Jordan", "JO"],
71
+ [626, 626, "Iran", "IR"],
72
+ [627, 627, "Kuwait", "KW"],
73
+ [628, 628, "Saudi Arabia", "SA"],
74
+ [629, 629, "United Arab Emirates", "AE"],
75
+ [640, 649, "Finland", "FI"],
76
+ [690, 699, "China", "CN"],
77
+ [700, 709, "Norway", "NO"],
78
+ [729, 729, "Israel", "IL"],
79
+ [730, 739, "Sweden", "SE"],
80
+ [740, 740, "Guatemala", "GT"],
81
+ [741, 741, "El Salvador", "SV"],
82
+ [742, 742, "Honduras", "HN"],
83
+ [743, 743, "Nicaragua", "NI"],
84
+ [744, 744, "Costa Rica", "CR"],
85
+ [745, 745, "Panama", "PA"],
86
+ [746, 746, "Dominican Republic", "DO"],
87
+ [750, 750, "Mexico", "MX"],
88
+ [754, 755, "Canada", "CA"],
89
+ [759, 759, "Venezuela", "VE"],
90
+ [760, 769, "Switzerland & Liechtenstein", "CH"],
91
+ [770, 771, "Colombia", "CO"],
92
+ [773, 773, "Uruguay", "UY"],
93
+ [775, 775, "Peru", "PE"],
94
+ [777, 777, "Bolivia", "BO"],
95
+ [778, 779, "Argentina", "AR"],
96
+ [780, 780, "Chile", "CL"],
97
+ [784, 784, "Paraguay", "PY"],
98
+ [786, 786, "Ecuador", "EC"],
99
+ [789, 790, "Brazil", "BR"],
100
+ [800, 839, "Italy", "IT"],
101
+ [840, 849, "Spain & Andorra", "ES"],
102
+ [850, 850, "Cuba", "CU"],
103
+ [858, 858, "Slovakia", "SK"],
104
+ [859, 859, "Czech Republic", "CZ"],
105
+ [860, 860, "Serbia", "RS"],
106
+ [865, 865, "Mongolia", "MN"],
107
+ [867, 867, "North Korea", "KP"],
108
+ [868, 869, "Turkey", "TR"],
109
+ [870, 879, "Netherlands", "NL"],
110
+ [880, 880, "South Korea", "KR"],
111
+ [884, 884, "Cambodia", "KH"],
112
+ [885, 885, "Thailand", "TH"],
113
+ [888, 888, "Singapore", "SG"],
114
+ [890, 890, "India", "IN"],
115
+ [893, 893, "Vietnam", "VN"],
116
+ [896, 896, "Pakistan", "PK"],
117
+ [899, 899, "Indonesia", "ID"],
118
+ [900, 919, "Austria", "AT"],
119
+ [930, 939, "Australia", "AU"],
120
+ [940, 949, "New Zealand", "NZ"],
121
+ [950, 950, "GS1 Global Office", null],
122
+ [951, 951, "GS1 Global Office (EPC)", null],
123
+ [955, 955, "Malaysia", "MY"],
124
+ [958, 958, "Macau", "MO"],
125
+ [960, 969, "GS1 Global Office (GTIN-8)", null],
126
+ [977, 977, "Periodicals (ISSN)", null],
127
+ [978, 979, "Books (ISBN)", null],
128
+ [980, 980, "Refund receipts", null],
129
+ [981, 984, "Common currency coupons", null],
130
+ [990, 999, "Coupons", null]
131
+ ];
132
+ function resolveGs1Prefix(prefix) {
133
+ if (prefix.length < 1) return null;
134
+ const value = Number(prefix.length <= 3 ? prefix : prefix.slice(0, 3));
135
+ if (!Number.isInteger(value)) return null;
136
+ for (const [from, to, name, countryCode] of RANGES) {
137
+ if (value >= from && value <= to) return { name, countryCode };
138
+ }
139
+ return null;
140
+ }
141
+ export {
142
+ resolveGs1Prefix
143
+ };
144
+ //# sourceMappingURL=gs1-prefix.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/internal/gs1-prefix.ts"],
4
+ "sourcesContent": ["/** A GS1 prefix range and the organization or country it identifies. */\nexport interface Gs1PrefixAssignment {\n /** Organization or country name, e.g. `Sweden`. */\n readonly name: string;\n /** ISO 3166-1 alpha-2 code, or `null` for non-country assignments such as ISBN. */\n readonly countryCode: string | null;\n}\n\n/**\n * GS1 company prefix ranges, maintained by GS1 and published at\n * https://www.gs1.org/standards/id-keys/company-prefix.\n */\nconst RANGES: readonly (readonly [number, number, string, string | null])[] = [\n [0, 19, \"USA & Canada\", null],\n [20, 29, \"Restricted distribution\", null],\n [30, 39, \"USA (drugs)\", \"US\"],\n [40, 49, \"Restricted distribution\", null],\n [50, 59, \"Coupons (USA)\", null],\n [60, 99, \"USA & Canada\", null],\n [100, 139, \"USA\", \"US\"],\n [200, 299, \"Restricted distribution (in-store)\", null],\n [300, 379, \"France & Monaco\", \"FR\"],\n [380, 380, \"Bulgaria\", \"BG\"],\n [383, 383, \"Slovenia\", \"SI\"],\n [385, 385, \"Croatia\", \"HR\"],\n [387, 387, \"Bosnia & Herzegovina\", \"BA\"],\n [389, 389, \"Montenegro\", \"ME\"],\n [390, 390, \"Kosovo\", \"XK\"],\n [400, 440, \"Germany\", \"DE\"],\n [450, 459, \"Japan\", \"JP\"],\n [460, 469, \"Russia\", \"RU\"],\n [470, 470, \"Kyrgyzstan\", \"KG\"],\n [471, 471, \"Taiwan\", \"TW\"],\n [474, 474, \"Estonia\", \"EE\"],\n [475, 475, \"Latvia\", \"LV\"],\n [476, 476, \"Azerbaijan\", \"AZ\"],\n [477, 477, \"Lithuania\", \"LT\"],\n [478, 478, \"Uzbekistan\", \"UZ\"],\n [479, 479, \"Sri Lanka\", \"LK\"],\n [480, 480, \"Philippines\", \"PH\"],\n [481, 481, \"Belarus\", \"BY\"],\n [482, 482, \"Ukraine\", \"UA\"],\n [484, 484, \"Moldova\", \"MD\"],\n [485, 485, \"Armenia\", \"AM\"],\n [486, 486, \"Georgia\", \"GE\"],\n [487, 487, \"Kazakhstan\", \"KZ\"],\n [488, 488, \"Tajikistan\", \"TJ\"],\n [489, 489, \"Hong Kong\", \"HK\"],\n [490, 499, \"Japan\", \"JP\"],\n [500, 509, \"United Kingdom\", \"GB\"],\n [520, 521, \"Greece\", \"GR\"],\n [528, 528, \"Lebanon\", \"LB\"],\n [529, 529, \"Cyprus\", \"CY\"],\n [530, 530, \"Albania\", \"AL\"],\n [531, 531, \"North Macedonia\", \"MK\"],\n [535, 535, \"Malta\", \"MT\"],\n [539, 539, \"Ireland\", \"IE\"],\n [540, 549, \"Belgium & Luxembourg\", \"BE\"],\n [560, 560, \"Portugal\", \"PT\"],\n [569, 569, \"Iceland\", \"IS\"],\n [570, 579, \"Denmark\", \"DK\"],\n [590, 590, \"Poland\", \"PL\"],\n [594, 594, \"Romania\", \"RO\"],\n [599, 599, \"Hungary\", \"HU\"],\n [600, 601, \"South Africa\", \"ZA\"],\n [603, 603, \"Ghana\", \"GH\"],\n [604, 604, \"Senegal\", \"SN\"],\n [608, 608, \"Bahrain\", \"BH\"],\n [609, 609, \"Mauritius\", \"MU\"],\n [611, 611, \"Morocco\", \"MA\"],\n [613, 613, \"Algeria\", \"DZ\"],\n [615, 615, \"Nigeria\", \"NG\"],\n [616, 616, \"Kenya\", \"KE\"],\n [617, 617, \"Cameroon\", \"CM\"],\n [618, 618, \"Ivory Coast\", \"CI\"],\n [619, 619, \"Tunisia\", \"TN\"],\n [620, 620, \"Tanzania\", \"TZ\"],\n [621, 621, \"Syria\", \"SY\"],\n [622, 622, \"Egypt\", \"EG\"],\n [623, 623, \"Brunei\", \"BN\"],\n [624, 624, \"Libya\", \"LY\"],\n [625, 625, \"Jordan\", \"JO\"],\n [626, 626, \"Iran\", \"IR\"],\n [627, 627, \"Kuwait\", \"KW\"],\n [628, 628, \"Saudi Arabia\", \"SA\"],\n [629, 629, \"United Arab Emirates\", \"AE\"],\n [640, 649, \"Finland\", \"FI\"],\n [690, 699, \"China\", \"CN\"],\n [700, 709, \"Norway\", \"NO\"],\n [729, 729, \"Israel\", \"IL\"],\n [730, 739, \"Sweden\", \"SE\"],\n [740, 740, \"Guatemala\", \"GT\"],\n [741, 741, \"El Salvador\", \"SV\"],\n [742, 742, \"Honduras\", \"HN\"],\n [743, 743, \"Nicaragua\", \"NI\"],\n [744, 744, \"Costa Rica\", \"CR\"],\n [745, 745, \"Panama\", \"PA\"],\n [746, 746, \"Dominican Republic\", \"DO\"],\n [750, 750, \"Mexico\", \"MX\"],\n [754, 755, \"Canada\", \"CA\"],\n [759, 759, \"Venezuela\", \"VE\"],\n [760, 769, \"Switzerland & Liechtenstein\", \"CH\"],\n [770, 771, \"Colombia\", \"CO\"],\n [773, 773, \"Uruguay\", \"UY\"],\n [775, 775, \"Peru\", \"PE\"],\n [777, 777, \"Bolivia\", \"BO\"],\n [778, 779, \"Argentina\", \"AR\"],\n [780, 780, \"Chile\", \"CL\"],\n [784, 784, \"Paraguay\", \"PY\"],\n [786, 786, \"Ecuador\", \"EC\"],\n [789, 790, \"Brazil\", \"BR\"],\n [800, 839, \"Italy\", \"IT\"],\n [840, 849, \"Spain & Andorra\", \"ES\"],\n [850, 850, \"Cuba\", \"CU\"],\n [858, 858, \"Slovakia\", \"SK\"],\n [859, 859, \"Czech Republic\", \"CZ\"],\n [860, 860, \"Serbia\", \"RS\"],\n [865, 865, \"Mongolia\", \"MN\"],\n [867, 867, \"North Korea\", \"KP\"],\n [868, 869, \"Turkey\", \"TR\"],\n [870, 879, \"Netherlands\", \"NL\"],\n [880, 880, \"South Korea\", \"KR\"],\n [884, 884, \"Cambodia\", \"KH\"],\n [885, 885, \"Thailand\", \"TH\"],\n [888, 888, \"Singapore\", \"SG\"],\n [890, 890, \"India\", \"IN\"],\n [893, 893, \"Vietnam\", \"VN\"],\n [896, 896, \"Pakistan\", \"PK\"],\n [899, 899, \"Indonesia\", \"ID\"],\n [900, 919, \"Austria\", \"AT\"],\n [930, 939, \"Australia\", \"AU\"],\n [940, 949, \"New Zealand\", \"NZ\"],\n [950, 950, \"GS1 Global Office\", null],\n [951, 951, \"GS1 Global Office (EPC)\", null],\n [955, 955, \"Malaysia\", \"MY\"],\n [958, 958, \"Macau\", \"MO\"],\n [960, 969, \"GS1 Global Office (GTIN-8)\", null],\n [977, 977, \"Periodicals (ISSN)\", null],\n [978, 979, \"Books (ISBN)\", null],\n [980, 980, \"Refund receipts\", null],\n [981, 984, \"Common currency coupons\", null],\n [990, 999, \"Coupons\", null],\n];\n\n/**\n * Resolves the first three digits of a GTIN to their GS1 assignment. Returns `null` when the\n * prefix falls outside every published range.\n */\nexport function resolveGs1Prefix(prefix: string): Gs1PrefixAssignment | null {\n if (prefix.length < 1) return null;\n\n const value = Number(prefix.length <= 3 ? prefix : prefix.slice(0, 3));\n if (!Number.isInteger(value)) return null;\n\n for (const [from, to, name, countryCode] of RANGES) {\n if (value >= from && value <= to) return { name, countryCode };\n }\n\n return null;\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,26 @@
1
+ const GTIN_VALID_LENGTHS = [8, 12, 13, 14];
2
+ function extractGtinDigits(input) {
3
+ if (input == null || input.trim().length === 0) return null;
4
+ let digits = "";
5
+ for (const character of input) {
6
+ if (character >= "0" && character <= "9") digits += character;
7
+ else if (character !== " " && character !== "-") return null;
8
+ }
9
+ return digits.length === 0 ? null : digits;
10
+ }
11
+ function validateGtinCheckDigit(digits) {
12
+ let sum = 0;
13
+ for (let i = 0; i < digits.length - 1; i++) {
14
+ const digit = digits.charCodeAt(i) - 48;
15
+ const positionFromRight = digits.length - 1 - i;
16
+ sum += digit * (positionFromRight % 2 === 1 ? 3 : 1);
17
+ }
18
+ const expected = (10 - sum % 10) % 10;
19
+ return expected === digits.charCodeAt(digits.length - 1) - 48;
20
+ }
21
+ export {
22
+ GTIN_VALID_LENGTHS,
23
+ extractGtinDigits,
24
+ validateGtinCheckDigit
25
+ };
26
+ //# sourceMappingURL=gtin-check-digit.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/internal/gtin-check-digit.ts"],
4
+ "sourcesContent": ["/** The four GTIN lengths GS1 defines: GTIN-8, GTIN-12, GTIN-13 and GTIN-14. */\nexport const GTIN_VALID_LENGTHS: readonly number[] = [8, 12, 13, 14];\n\n/**\n * Strips the separators a printed GTIN may carry. Spaces and hyphens are dropped; anything\n * else disqualifies the input, so `59012341234-57` extracts but `590.1234` does not.\n * Returns `null` when nothing is left or a foreign character appears.\n */\nexport function extractGtinDigits(input: string | null | undefined): string | null {\n if (input == null || input.trim().length === 0) return null;\n\n let digits = \"\";\n for (const character of input) {\n if (character >= \"0\" && character <= \"9\") digits += character;\n else if (character !== \" \" && character !== \"-\") return null;\n }\n\n return digits.length === 0 ? null : digits;\n}\n\n/**\n * Validates the GS1 modulo-10 check digit, where digits are weighted 3 and 1 alternating from\n * the right, ahead of the trailing check digit itself.\n */\nexport function validateGtinCheckDigit(digits: string): boolean {\n let sum = 0;\n for (let i = 0; i < digits.length - 1; i++) {\n const digit = digits.charCodeAt(i) - 48;\n const positionFromRight = digits.length - 1 - i;\n sum += digit * (positionFromRight % 2 === 1 ? 3 : 1);\n }\n\n const expected = (10 - (sum % 10)) % 10;\n return expected === digits.charCodeAt(digits.length - 1) - 48;\n}\n"],
5
+ "mappings": "AACO,MAAM,qBAAwC,CAAC,GAAG,IAAI,IAAI,EAAE;AAO5D,SAAS,kBAAkB,OAAiD;AACjF,MAAI,SAAS,QAAQ,MAAM,KAAK,EAAE,WAAW,EAAG,QAAO;AAEvD,MAAI,SAAS;AACb,aAAW,aAAa,OAAO;AAC7B,QAAI,aAAa,OAAO,aAAa,IAAK,WAAU;AAAA,aAC3C,cAAc,OAAO,cAAc,IAAK,QAAO;AAAA,EAC1D;AAEA,SAAO,OAAO,WAAW,IAAI,OAAO;AACtC;AAMO,SAAS,uBAAuB,QAAyB;AAC9D,MAAI,MAAM;AACV,WAAS,IAAI,GAAG,IAAI,OAAO,SAAS,GAAG,KAAK;AAC1C,UAAM,QAAQ,OAAO,WAAW,CAAC,IAAI;AACrC,UAAM,oBAAoB,OAAO,SAAS,IAAI;AAC9C,WAAO,SAAS,oBAAoB,MAAM,IAAI,IAAI;AAAA,EACpD;AAEA,QAAM,YAAY,KAAM,MAAM,MAAO;AACrC,SAAO,aAAa,OAAO,WAAW,OAAO,SAAS,CAAC,IAAI;AAC7D;",
6
+ "names": []
7
+ }
@@ -0,0 +1,59 @@
1
+ const FORMAT_OR_NOT_ASSIGNED = /[\p{Cf}\p{Cn}]/u;
2
+ const SPACE_SEPARATOR = /[\p{Zs}\p{Zl}\p{Zp}]/u;
3
+ const CONTROL = /\p{Cc}/u;
4
+ function sanitizeInput(input) {
5
+ let out = "";
6
+ for (const c of input) {
7
+ if (c === "\u2018" || c === "\u2019" || c === "\u201A" || c === "\u201B") {
8
+ out += "'";
9
+ continue;
10
+ }
11
+ if (c === "\u201C" || c === "\u201D" || c === "\u201E" || c === "\u201F" || c === "\xAB" || c === "\xBB") {
12
+ out += '"';
13
+ continue;
14
+ }
15
+ if (FORMAT_OR_NOT_ASSIGNED.test(c)) {
16
+ continue;
17
+ }
18
+ if (CONTROL.test(c)) {
19
+ if (c === " " || c === "\n" || c === "\r") out += " ";
20
+ continue;
21
+ }
22
+ if (SPACE_SEPARATOR.test(c)) {
23
+ out += " ";
24
+ continue;
25
+ }
26
+ out += c;
27
+ }
28
+ return out;
29
+ }
30
+ const WHITESPACE_RUN = /\s+/g;
31
+ function collapseWhitespace(input) {
32
+ if (input == null) return "";
33
+ return sanitizeInput(input).trim().replace(WHITESPACE_RUN, " ");
34
+ }
35
+ function keepDigits(input) {
36
+ let out = "";
37
+ for (let i = 0; i < input.length; i++) {
38
+ const c = input.charCodeAt(i);
39
+ if (c >= 48 && c <= 57) out += input[i];
40
+ }
41
+ return out;
42
+ }
43
+ function keepAsciiAlphanumericUppercase(input) {
44
+ let out = "";
45
+ for (let i = 0; i < input.length; i++) {
46
+ const c = input.charCodeAt(i);
47
+ if (c >= 48 && c <= 57) out += input[i];
48
+ else if (c >= 65 && c <= 90) out += input[i];
49
+ else if (c >= 97 && c <= 122) out += String.fromCharCode(c - 32);
50
+ }
51
+ return out;
52
+ }
53
+ export {
54
+ collapseWhitespace,
55
+ keepAsciiAlphanumericUppercase,
56
+ keepDigits,
57
+ sanitizeInput
58
+ };
59
+ //# sourceMappingURL=input-sanitization.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/internal/input-sanitization.ts"],
4
+ "sourcesContent": ["/**\n * Shared input sanitization for text inputs across domain types.\n * Provides invisible-character stripping, whitespace normalization, and common\n * character-filtering helpers (digits-only, alphanumeric-only, collapse whitespace).\n *\n * Real-world inputs (e.g. from CRM/banking systems) commonly contain invisible\n * Unicode characters that break validation while being completely invisible in UIs\n * and logs. The most frequent offender is `U+202A` LEFT-TO-RIGHT EMBEDDING,\n * especially on values originating from RTL-language contexts (Arabic, Hebrew).\n * Other common contaminants include non-breaking spaces from web/PDF copy-paste,\n * null bytes from binary data, stray newlines from multi-line form fields,\n * and typographic (smart/curly) quotes from mobile keyboards and word processors.\n *\n * Equivalent of `Buildi.Primitives.InputSanitization` (internal in .NET).\n * Exposed via `internal/` and not re-exported from the public package entry.\n */\n\nconst FORMAT_OR_NOT_ASSIGNED = /[\\p{Cf}\\p{Cn}]/u;\nconst SPACE_SEPARATOR = /[\\p{Zs}\\p{Zl}\\p{Zp}]/u;\nconst CONTROL = /\\p{Cc}/u;\n\n/**\n * Strips invisible/non-printable characters, normalizes all whitespace variants\n * to ASCII space (`U+0020`), normalizes typographic single quotes to ASCII\n * apostrophe (`'`), and normalizes typographic and guillemet double quotes to\n * ASCII quotation mark (`\"`).\n */\nexport function sanitizeInput(input: string): string {\n let out = \"\";\n for (const c of input) {\n // Smart single quotes -> ASCII apostrophe.\n if (c === \"\\u2018\" || c === \"\\u2019\" || c === \"\\u201A\" || c === \"\\u201B\") {\n out += \"'\";\n continue;\n }\n // Smart and guillemet double quotes -> ASCII quotation mark.\n if (\n c === \"\\u201C\" ||\n c === \"\\u201D\" ||\n c === \"\\u201E\" ||\n c === \"\\u201F\" ||\n c === \"\\u00AB\" ||\n c === \"\\u00BB\"\n ) {\n out += '\"';\n continue;\n }\n\n if (FORMAT_OR_NOT_ASSIGNED.test(c)) {\n // Drop format characters (Cf) and unassigned code points (Cn).\n continue;\n }\n\n if (CONTROL.test(c)) {\n if (c === \"\\t\" || c === \"\\n\" || c === \"\\r\") out += \" \";\n continue;\n }\n\n if (SPACE_SEPARATOR.test(c)) {\n out += \" \";\n continue;\n }\n\n out += c;\n }\n return out;\n}\n\nconst WHITESPACE_RUN = /\\s+/g;\n\n/**\n * Sanitizes the input, trims, and collapses whitespace runs to a single space.\n * Returns an empty string when `input` is `null` or `undefined`.\n */\nexport function collapseWhitespace(input: string | null | undefined): string {\n if (input == null) return \"\";\n return sanitizeInput(input).trim().replace(WHITESPACE_RUN, \" \");\n}\n\n/** Keeps only ASCII digits (`0`-`9`), stripping everything else. */\nexport function keepDigits(input: string): string {\n let out = \"\";\n for (let i = 0; i < input.length; i++) {\n const c = input.charCodeAt(i);\n if (c >= 0x30 && c <= 0x39) out += input[i];\n }\n return out;\n}\n\n/**\n * Keeps only ASCII letters and digits, uppercasing letters.\n * Strips whitespace, hyphens, and all other non-alphanumeric characters.\n */\nexport function keepAsciiAlphanumericUppercase(input: string): string {\n let out = \"\";\n for (let i = 0; i < input.length; i++) {\n const c = input.charCodeAt(i);\n if (c >= 0x30 && c <= 0x39) out += input[i];\n else if (c >= 0x41 && c <= 0x5a) out += input[i];\n else if (c >= 0x61 && c <= 0x7a) out += String.fromCharCode(c - 32);\n }\n return out;\n}\n"],
5
+ "mappings": "AAiBA,MAAM,yBAAyB;AAC/B,MAAM,kBAAkB;AACxB,MAAM,UAAU;AAQT,SAAS,cAAc,OAAuB;AACnD,MAAI,MAAM;AACV,aAAW,KAAK,OAAO;AAErB,QAAI,MAAM,YAAY,MAAM,YAAY,MAAM,YAAY,MAAM,UAAU;AACxE,aAAO;AACP;AAAA,IACF;AAEA,QACE,MAAM,YACN,MAAM,YACN,MAAM,YACN,MAAM,YACN,MAAM,UACN,MAAM,QACN;AACA,aAAO;AACP;AAAA,IACF;AAEA,QAAI,uBAAuB,KAAK,CAAC,GAAG;AAElC;AAAA,IACF;AAEA,QAAI,QAAQ,KAAK,CAAC,GAAG;AACnB,UAAI,MAAM,OAAQ,MAAM,QAAQ,MAAM,KAAM,QAAO;AACnD;AAAA,IACF;AAEA,QAAI,gBAAgB,KAAK,CAAC,GAAG;AAC3B,aAAO;AACP;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAEA,MAAM,iBAAiB;AAMhB,SAAS,mBAAmB,OAA0C;AAC3E,MAAI,SAAS,KAAM,QAAO;AAC1B,SAAO,cAAc,KAAK,EAAE,KAAK,EAAE,QAAQ,gBAAgB,GAAG;AAChE;AAGO,SAAS,WAAW,OAAuB;AAChD,MAAI,MAAM;AACV,WAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACrC,UAAM,IAAI,MAAM,WAAW,CAAC;AAC5B,QAAI,KAAK,MAAQ,KAAK,GAAM,QAAO,MAAM,CAAC;AAAA,EAC5C;AACA,SAAO;AACT;AAMO,SAAS,+BAA+B,OAAuB;AACpE,MAAI,MAAM;AACV,WAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACrC,UAAM,IAAI,MAAM,WAAW,CAAC;AAC5B,QAAI,KAAK,MAAQ,KAAK,GAAM,QAAO,MAAM,CAAC;AAAA,aACjC,KAAK,MAAQ,KAAK,GAAM,QAAO,MAAM,CAAC;AAAA,aACtC,KAAK,MAAQ,KAAK,IAAM,QAAO,OAAO,aAAa,IAAI,EAAE;AAAA,EACpE;AACA,SAAO;AACT;",
6
+ "names": []
7
+ }
@@ -0,0 +1,20 @@
1
+ function luhnIsValid(digits) {
2
+ if (!digits) return false;
3
+ let sum = 0;
4
+ const len = digits.length;
5
+ for (let i = 0; i < len; i++) {
6
+ const code = digits.charCodeAt(i);
7
+ if (code < 48 || code > 57) return false;
8
+ let d = code - 48;
9
+ if ((len - i) % 2 === 0) {
10
+ d *= 2;
11
+ if (d > 9) d -= 9;
12
+ }
13
+ sum += d;
14
+ }
15
+ return sum % 10 === 0;
16
+ }
17
+ export {
18
+ luhnIsValid
19
+ };
20
+ //# sourceMappingURL=luhn.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/internal/luhn.ts"],
4
+ "sourcesContent": ["/**\n * Validates a standard Luhn (mod 10) checksum.\n * Checks the entire string: the last digit is assumed to be the control digit.\n *\n * Equivalent of `Buildi.Primitives.Luhn.IsValid` (internal in .NET).\n */\nexport function luhnIsValid(digits: string): boolean {\n if (!digits) return false;\n\n let sum = 0;\n const len = digits.length;\n for (let i = 0; i < len; i++) {\n const code = digits.charCodeAt(i);\n if (code < 0x30 || code > 0x39) return false;\n let d = code - 0x30;\n if ((len - i) % 2 === 0) {\n d *= 2;\n if (d > 9) d -= 9;\n }\n sum += d;\n }\n return sum % 10 === 0;\n}\n"],
5
+ "mappings": "AAMO,SAAS,YAAY,QAAyB;AACnD,MAAI,CAAC,OAAQ,QAAO;AAEpB,MAAI,MAAM;AACV,QAAM,MAAM,OAAO;AACnB,WAAS,IAAI,GAAG,IAAI,KAAK,KAAK;AAC5B,UAAM,OAAO,OAAO,WAAW,CAAC;AAChC,QAAI,OAAO,MAAQ,OAAO,GAAM,QAAO;AACvC,QAAI,IAAI,OAAO;AACf,SAAK,MAAM,KAAK,MAAM,GAAG;AACvB,WAAK;AACL,UAAI,IAAI,EAAG,MAAK;AAAA,IAClB;AACA,WAAO;AAAA,EACT;AACA,SAAO,MAAM,OAAO;AACtB;",
6
+ "names": []
7
+ }
@@ -0,0 +1,66 @@
1
+ import { Decimal } from "./decimal.js";
2
+ import { sanitizeInput } from "./input-sanitization.js";
3
+ const MAX_INPUT_LENGTH = 100;
4
+ const INPUT_PATTERN = /^(?<sign>[+-])?\s*(?<number>[0-9][0-9 .,]*[0-9]|[0-9])\s*(?<unit>.+)$/u;
5
+ function trySplitMeasurement(input) {
6
+ if (input == null || input.trim().length === 0) return null;
7
+ const trimmed = sanitizeInput(input).trim();
8
+ if (trimmed.length > MAX_INPUT_LENGTH) return null;
9
+ const match = INPUT_PATTERN.exec(trimmed);
10
+ if (match?.groups === void 0) return null;
11
+ const unitSuffix = (match.groups["unit"] ?? "").trim();
12
+ if (unitSuffix.length === 0) return null;
13
+ const value = tryParseNumber(match.groups["number"] ?? "");
14
+ if (value === null) return null;
15
+ return {
16
+ value: match.groups["sign"] === "-" ? value.negated() : value,
17
+ unitSuffix
18
+ };
19
+ }
20
+ const BARE_NUMBER_CHARACTERS = /^[0-9.,\u0020\u00A0]+$/u;
21
+ function tryParseNumberOnly(input) {
22
+ if (input == null || input.trim().length === 0) return null;
23
+ const trimmed = input.trim();
24
+ if (trimmed.length > MAX_INPUT_LENGTH) return null;
25
+ let rest = trimmed;
26
+ let negative = false;
27
+ if (rest.startsWith("-")) {
28
+ negative = true;
29
+ rest = rest.slice(1).trimStart();
30
+ } else if (rest.startsWith("+")) {
31
+ rest = rest.slice(1).trimStart();
32
+ }
33
+ if (rest.length === 0 || !BARE_NUMBER_CHARACTERS.test(rest)) return null;
34
+ const value = tryParseNumber(rest);
35
+ if (value === null) return null;
36
+ return negative ? value.negated() : value;
37
+ }
38
+ function tryParseNumber(raw) {
39
+ const s = raw.trim();
40
+ if (s.length === 0) return null;
41
+ const lastComma = s.lastIndexOf(",");
42
+ const lastPeriod = s.lastIndexOf(".");
43
+ let integerPart = s;
44
+ let fractionPart = "";
45
+ if (lastComma > lastPeriod) {
46
+ const afterComma = s.slice(lastComma + 1);
47
+ if (afterComma.length > 0 && afterComma.length <= 10 && /^\d+$/u.test(afterComma)) {
48
+ fractionPart = afterComma;
49
+ integerPart = s.slice(0, lastComma);
50
+ }
51
+ } else if (lastPeriod > lastComma) {
52
+ const afterPeriod = s.slice(lastPeriod + 1);
53
+ if (afterPeriod.length > 0 && afterPeriod.length <= 10 && /^\d+$/u.test(afterPeriod)) {
54
+ fractionPart = afterPeriod;
55
+ integerPart = s.slice(0, lastPeriod);
56
+ }
57
+ }
58
+ const cleanInteger = integerPart.replace(/[ \u00A0.,]/gu, "");
59
+ if (cleanInteger.length === 0 || !/^\d+$/u.test(cleanInteger)) return null;
60
+ return Decimal.parse(fractionPart.length > 0 ? `${cleanInteger}.${fractionPart}` : cleanInteger);
61
+ }
62
+ export {
63
+ tryParseNumberOnly,
64
+ trySplitMeasurement
65
+ };
66
+ //# sourceMappingURL=measurement-unit-parser.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/internal/measurement-unit-parser.ts"],
4
+ "sourcesContent": ["/**\n * Splits measurement strings such as `10 km`, `5.5cm` or `3,5 m` into a numeric\n * part and a unit suffix, tolerating both European and US decimal separators\n * plus space, period and comma as thousands separators.\n *\n * Unit lookup is the caller's job \u2014 this only hands back the raw suffix.\n *\n * Equivalent of `Buildi.Primitives.Measurement.MeasurementUnitParser`\n * (internal in .NET).\n */\n\nimport { Decimal } from \"./decimal.js\";\nimport { sanitizeInput } from \"./input-sanitization.js\";\n\nconst MAX_INPUT_LENGTH = 100;\n\nconst INPUT_PATTERN = /^(?<sign>[+-])?\\s*(?<number>[0-9][0-9 .,]*[0-9]|[0-9])\\s*(?<unit>.+)$/u;\n\n/** The numeric value and trailing unit suffix of a measurement string. */\nexport interface MeasurementSplit {\n readonly value: Decimal;\n readonly unitSuffix: string;\n}\n\n/**\n * Splits `input` into a value and a unit suffix, or returns `null` when it does\n * not look like a measurement.\n */\nexport function trySplitMeasurement(input: string | null | undefined): MeasurementSplit | null {\n if (input == null || input.trim().length === 0) return null;\n\n const trimmed = sanitizeInput(input).trim();\n if (trimmed.length > MAX_INPUT_LENGTH) return null;\n\n const match = INPUT_PATTERN.exec(trimmed);\n if (match?.groups === undefined) return null;\n\n const unitSuffix = (match.groups[\"unit\"] ?? \"\").trim();\n if (unitSuffix.length === 0) return null;\n\n const value = tryParseNumber(match.groups[\"number\"] ?? \"\");\n if (value === null) return null;\n\n return {\n value: match.groups[\"sign\"] === \"-\" ? value.negated() : value,\n unitSuffix,\n };\n}\n\nconst BARE_NUMBER_CHARACTERS = /^[0-9.,\\u0020\\u00A0]+$/u;\n\n/** Parses a bare number with no unit suffix, e.g. the input to `Count`. */\nexport function tryParseNumberOnly(input: string | null | undefined): Decimal | null {\n if (input == null || input.trim().length === 0) return null;\n\n const trimmed = input.trim();\n if (trimmed.length > MAX_INPUT_LENGTH) return null;\n\n let rest = trimmed;\n let negative = false;\n if (rest.startsWith(\"-\")) {\n negative = true;\n rest = rest.slice(1).trimStart();\n } else if (rest.startsWith(\"+\")) {\n rest = rest.slice(1).trimStart();\n }\n\n if (rest.length === 0 || !BARE_NUMBER_CHARACTERS.test(rest)) return null;\n\n const value = tryParseNumber(rest);\n if (value === null) return null;\n\n return negative ? value.negated() : value;\n}\n\n/**\n * Resolves which separator is the decimal point by taking the last one that\n * appears, so both `1.234,5` and `1,234.5` come out as the same value. A group\n * of more than ten digits after the separator is treated as a thousands group\n * rather than a fraction.\n */\nfunction tryParseNumber(raw: string): Decimal | null {\n const s = raw.trim();\n if (s.length === 0) return null;\n\n const lastComma = s.lastIndexOf(\",\");\n const lastPeriod = s.lastIndexOf(\".\");\n\n let integerPart = s;\n let fractionPart = \"\";\n\n if (lastComma > lastPeriod) {\n const afterComma = s.slice(lastComma + 1);\n if (afterComma.length > 0 && afterComma.length <= 10 && /^\\d+$/u.test(afterComma)) {\n fractionPart = afterComma;\n integerPart = s.slice(0, lastComma);\n }\n } else if (lastPeriod > lastComma) {\n const afterPeriod = s.slice(lastPeriod + 1);\n if (afterPeriod.length > 0 && afterPeriod.length <= 10 && /^\\d+$/u.test(afterPeriod)) {\n fractionPart = afterPeriod;\n integerPart = s.slice(0, lastPeriod);\n }\n }\n\n const cleanInteger = integerPart.replace(/[ \\u00A0.,]/gu, \"\");\n if (cleanInteger.length === 0 || !/^\\d+$/u.test(cleanInteger)) return null;\n\n return Decimal.parse(fractionPart.length > 0 ? `${cleanInteger}.${fractionPart}` : cleanInteger);\n}\n"],
5
+ "mappings": "AAWA,SAAS,eAAe;AACxB,SAAS,qBAAqB;AAE9B,MAAM,mBAAmB;AAEzB,MAAM,gBAAgB;AAYf,SAAS,oBAAoB,OAA2D;AAC7F,MAAI,SAAS,QAAQ,MAAM,KAAK,EAAE,WAAW,EAAG,QAAO;AAEvD,QAAM,UAAU,cAAc,KAAK,EAAE,KAAK;AAC1C,MAAI,QAAQ,SAAS,iBAAkB,QAAO;AAE9C,QAAM,QAAQ,cAAc,KAAK,OAAO;AACxC,MAAI,OAAO,WAAW,OAAW,QAAO;AAExC,QAAM,cAAc,MAAM,OAAO,MAAM,KAAK,IAAI,KAAK;AACrD,MAAI,WAAW,WAAW,EAAG,QAAO;AAEpC,QAAM,QAAQ,eAAe,MAAM,OAAO,QAAQ,KAAK,EAAE;AACzD,MAAI,UAAU,KAAM,QAAO;AAE3B,SAAO;AAAA,IACL,OAAO,MAAM,OAAO,MAAM,MAAM,MAAM,MAAM,QAAQ,IAAI;AAAA,IACxD;AAAA,EACF;AACF;AAEA,MAAM,yBAAyB;AAGxB,SAAS,mBAAmB,OAAkD;AACnF,MAAI,SAAS,QAAQ,MAAM,KAAK,EAAE,WAAW,EAAG,QAAO;AAEvD,QAAM,UAAU,MAAM,KAAK;AAC3B,MAAI,QAAQ,SAAS,iBAAkB,QAAO;AAE9C,MAAI,OAAO;AACX,MAAI,WAAW;AACf,MAAI,KAAK,WAAW,GAAG,GAAG;AACxB,eAAW;AACX,WAAO,KAAK,MAAM,CAAC,EAAE,UAAU;AAAA,EACjC,WAAW,KAAK,WAAW,GAAG,GAAG;AAC/B,WAAO,KAAK,MAAM,CAAC,EAAE,UAAU;AAAA,EACjC;AAEA,MAAI,KAAK,WAAW,KAAK,CAAC,uBAAuB,KAAK,IAAI,EAAG,QAAO;AAEpE,QAAM,QAAQ,eAAe,IAAI;AACjC,MAAI,UAAU,KAAM,QAAO;AAE3B,SAAO,WAAW,MAAM,QAAQ,IAAI;AACtC;AAQA,SAAS,eAAe,KAA6B;AACnD,QAAM,IAAI,IAAI,KAAK;AACnB,MAAI,EAAE,WAAW,EAAG,QAAO;AAE3B,QAAM,YAAY,EAAE,YAAY,GAAG;AACnC,QAAM,aAAa,EAAE,YAAY,GAAG;AAEpC,MAAI,cAAc;AAClB,MAAI,eAAe;AAEnB,MAAI,YAAY,YAAY;AAC1B,UAAM,aAAa,EAAE,MAAM,YAAY,CAAC;AACxC,QAAI,WAAW,SAAS,KAAK,WAAW,UAAU,MAAM,SAAS,KAAK,UAAU,GAAG;AACjF,qBAAe;AACf,oBAAc,EAAE,MAAM,GAAG,SAAS;AAAA,IACpC;AAAA,EACF,WAAW,aAAa,WAAW;AACjC,UAAM,cAAc,EAAE,MAAM,aAAa,CAAC;AAC1C,QAAI,YAAY,SAAS,KAAK,YAAY,UAAU,MAAM,SAAS,KAAK,WAAW,GAAG;AACpF,qBAAe;AACf,oBAAc,EAAE,MAAM,GAAG,UAAU;AAAA,IACrC;AAAA,EACF;AAEA,QAAM,eAAe,YAAY,QAAQ,iBAAiB,EAAE;AAC5D,MAAI,aAAa,WAAW,KAAK,CAAC,SAAS,KAAK,YAAY,EAAG,QAAO;AAEtE,SAAO,QAAQ,MAAM,aAAa,SAAS,IAAI,GAAG,YAAY,IAAI,YAAY,KAAK,YAAY;AACjG;",
6
+ "names": []
7
+ }
@@ -0,0 +1,110 @@
1
+ import { Decimal } from "./decimal.js";
2
+ class MeasurementUnit {
3
+ symbol;
4
+ englishName;
5
+ localizedName;
6
+ pluralEnglish;
7
+ pluralSwedish;
8
+ toBaseUnitFactor;
9
+ aliases;
10
+ exactRatio;
11
+ constructor(definition) {
12
+ this.symbol = definition.symbol;
13
+ this.englishName = definition.englishName;
14
+ this.localizedName = definition.localizedName;
15
+ this.pluralEnglish = definition.pluralEnglish;
16
+ this.pluralSwedish = definition.pluralSwedish;
17
+ this.toBaseUnitFactor = definition.toBaseUnitFactor;
18
+ this.aliases = Object.freeze([...definition.aliases ?? []]);
19
+ this.exactRatio = definition.exactRatio === void 0 ? null : Object.freeze([definition.exactRatio[0], definition.exactRatio[1]]);
20
+ return new Proxy(this, {
21
+ set() {
22
+ throw new TypeError("Measurement units are immutable.");
23
+ }
24
+ });
25
+ }
26
+ /** Converts a value expressed in this unit into the dimension's base unit. */
27
+ toBase(value) {
28
+ if (this.exactRatio === null) return value.times(this.toBaseUnitFactor);
29
+ return value.times(this.exactRatio[0]).dividedBy(this.exactRatio[1]);
30
+ }
31
+ /** Converts a value expressed in the base unit into this unit. */
32
+ fromBase(baseValue) {
33
+ if (this.exactRatio === null) return baseValue.dividedBy(this.toBaseUnitFactor);
34
+ return baseValue.times(this.exactRatio[1]).dividedBy(this.exactRatio[0]);
35
+ }
36
+ toString() {
37
+ return this.symbol;
38
+ }
39
+ }
40
+ class MeasurementUnitIndex {
41
+ all;
42
+ baseUnit;
43
+ naturalScale;
44
+ symbolsExcludedFromIndex;
45
+ index;
46
+ ownedUnits;
47
+ constructor(all, baseUnit, naturalScale, symbolsExcludedFromIndex = []) {
48
+ this.all = Object.freeze([...all]);
49
+ this.baseUnit = baseUnit;
50
+ this.naturalScale = Object.freeze([...naturalScale]);
51
+ this.symbolsExcludedFromIndex = Object.freeze([...symbolsExcludedFromIndex]);
52
+ this.ownedUnits = new Set(this.all);
53
+ this.index = this.buildSymbolIndex();
54
+ for (const unit of this.all) Object.freeze(unit);
55
+ }
56
+ assertOwns(unit) {
57
+ if (!this.ownedUnits.has(unit)) throw new RangeError("Unit belongs to another dimension.");
58
+ }
59
+ /**
60
+ * Matches on symbol, English and Swedish names, plurals and aliases. Earlier
61
+ * units win a collision, mirroring the `TryAdd` order in .NET.
62
+ */
63
+ tryParse(input) {
64
+ if (input == null) return null;
65
+ const trimmed = input.trim();
66
+ if (trimmed.length === 0) return null;
67
+ return this.index.get(foldForUnitLookup(trimmed)) ?? null;
68
+ }
69
+ /**
70
+ * Picks the largest unit on the natural scale where the magnitude is still at
71
+ * least one, so 1500 meters displays as `1.5 km`.
72
+ */
73
+ getNatural(baseValue) {
74
+ const magnitude = baseValue.abs();
75
+ let result = this.naturalScale[0] ?? this.baseUnit;
76
+ for (let i = 1; i < this.naturalScale.length; i++) {
77
+ const candidate = this.naturalScale[i];
78
+ if (candidate === void 0) break;
79
+ if (magnitude.dividedBy(candidate.toBaseUnitFactor).compareTo(Decimal.one) >= 0) {
80
+ result = candidate;
81
+ } else break;
82
+ }
83
+ return result;
84
+ }
85
+ buildSymbolIndex() {
86
+ const index = /* @__PURE__ */ new Map();
87
+ const add = (key, unit) => {
88
+ const normalized = foldForUnitLookup(key);
89
+ if (normalized.length > 0 && !index.has(normalized)) index.set(normalized, unit);
90
+ };
91
+ for (const unit of this.all) {
92
+ if (!this.symbolsExcludedFromIndex.includes(unit)) add(unit.symbol, unit);
93
+ add(unit.englishName, unit);
94
+ add(unit.localizedName, unit);
95
+ add(unit.pluralEnglish, unit);
96
+ add(unit.pluralSwedish, unit);
97
+ for (const alias of unit.aliases) add(alias, unit);
98
+ }
99
+ return index;
100
+ }
101
+ }
102
+ function foldForUnitLookup(key) {
103
+ return key.toUpperCase();
104
+ }
105
+ export {
106
+ MeasurementUnit,
107
+ MeasurementUnitIndex,
108
+ foldForUnitLookup
109
+ };
110
+ //# sourceMappingURL=measurement-unit.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/internal/measurement-unit.ts"],
4
+ "sourcesContent": ["/**\n * Shared machinery for the `Measurement` unit classes (`LengthUnit`,\n * `PowerUnit`, and the rest).\n *\n * In .NET each of these is a hand-written class repeating the same symbol\n * index, natural-scale walk and lookup. Repetition is free there; here it would\n * be bytes shipped to a browser for all nineteen dimensions, so the shared part\n * lives once and each public unit class supplies only its table.\n *\n * Internal; not re-exported publicly.\n */\n\nimport { Decimal } from \"./decimal.js\";\n\n/** The fields every unit in a dimension carries. */\nexport interface MeasurementUnitDefinition {\n readonly symbol: string;\n readonly englishName: string;\n readonly localizedName: string;\n readonly pluralEnglish: string;\n readonly pluralSwedish: string;\n /** Multiply a value in this unit by this factor to reach the base unit. */\n readonly toBaseUnitFactor: Decimal;\n /**\n * Exact conversion as a `[numerator, denominator]` pair, for units whose\n * factor is a repeating decimal \u2014 1/60 for rpm, 1/3600 for coulomb, 1000/3600\n * for km/h. Multiplying by the rounded factor and dividing by it are not\n * inverses, so both directions go through the ratio instead. .NET\n * special-cases exactly these units for the same reason.\n */\n readonly exactRatio?: readonly [numerator: Decimal, denominator: Decimal];\n readonly aliases?: readonly string[];\n}\n\nexport class MeasurementUnit {\n readonly symbol: string;\n readonly englishName: string;\n readonly localizedName: string;\n readonly pluralEnglish: string;\n readonly pluralSwedish: string;\n readonly toBaseUnitFactor: Decimal;\n readonly aliases: readonly string[];\n private readonly exactRatio: readonly [Decimal, Decimal] | null;\n\n protected constructor(definition: MeasurementUnitDefinition) {\n this.symbol = definition.symbol;\n this.englishName = definition.englishName;\n this.localizedName = definition.localizedName;\n this.pluralEnglish = definition.pluralEnglish;\n this.pluralSwedish = definition.pluralSwedish;\n this.toBaseUnitFactor = definition.toBaseUnitFactor;\n this.aliases = Object.freeze([...(definition.aliases ?? [])]);\n this.exactRatio =\n definition.exactRatio === undefined\n ? null\n : Object.freeze([definition.exactRatio[0], definition.exactRatio[1]]);\n\n return new Proxy(this, {\n set() {\n throw new TypeError(\"Measurement units are immutable.\");\n },\n });\n }\n\n /** Converts a value expressed in this unit into the dimension's base unit. */\n toBase(value: Decimal): Decimal {\n if (this.exactRatio === null) return value.times(this.toBaseUnitFactor);\n return value.times(this.exactRatio[0]).dividedBy(this.exactRatio[1]);\n }\n\n /** Converts a value expressed in the base unit into this unit. */\n fromBase(baseValue: Decimal): Decimal {\n if (this.exactRatio === null) return baseValue.dividedBy(this.toBaseUnitFactor);\n return baseValue.times(this.exactRatio[1]).dividedBy(this.exactRatio[0]);\n }\n\n toString(): string {\n return this.symbol;\n }\n}\n\n/**\n * Case-insensitive lookup over a dimension's units plus the natural-scale walk\n * used for display.\n */\nexport class MeasurementUnitIndex<TUnit extends MeasurementUnit> {\n readonly all: readonly TUnit[];\n readonly baseUnit: TUnit;\n readonly naturalScale: readonly TUnit[];\n private readonly symbolsExcludedFromIndex: readonly TUnit[];\n private readonly index: ReadonlyMap<string, TUnit>;\n private readonly ownedUnits: ReadonlySet<MeasurementUnit>;\n\n constructor(\n all: readonly TUnit[],\n baseUnit: TUnit,\n /** Metric units ordered small to large, used to auto-scale display. */\n naturalScale: readonly TUnit[],\n /**\n * Units whose symbol is deliberately left out of the index because it\n * collides case-insensitively with another unit's \u2014 `mW` against `MW`. The\n * owning class resolves those itself.\n */\n symbolsExcludedFromIndex: readonly TUnit[] = [],\n ) {\n this.all = Object.freeze([...all]);\n this.baseUnit = baseUnit;\n this.naturalScale = Object.freeze([...naturalScale]);\n this.symbolsExcludedFromIndex = Object.freeze([...symbolsExcludedFromIndex]);\n this.ownedUnits = new Set(this.all);\n this.index = this.buildSymbolIndex();\n\n for (const unit of this.all) Object.freeze(unit);\n }\n\n assertOwns(unit: MeasurementUnit): asserts unit is TUnit {\n if (!this.ownedUnits.has(unit)) throw new RangeError(\"Unit belongs to another dimension.\");\n }\n\n /**\n * Matches on symbol, English and Swedish names, plurals and aliases. Earlier\n * units win a collision, mirroring the `TryAdd` order in .NET.\n */\n tryParse(input: string | null | undefined): TUnit | null {\n if (input == null) return null;\n const trimmed = input.trim();\n if (trimmed.length === 0) return null;\n return this.index.get(foldForUnitLookup(trimmed)) ?? null;\n }\n\n /**\n * Picks the largest unit on the natural scale where the magnitude is still at\n * least one, so 1500 meters displays as `1.5 km`.\n */\n getNatural(baseValue: Decimal): TUnit {\n const magnitude = baseValue.abs();\n let result = this.naturalScale[0] ?? this.baseUnit;\n\n for (let i = 1; i < this.naturalScale.length; i++) {\n const candidate = this.naturalScale[i];\n if (candidate === undefined) break;\n if (magnitude.dividedBy(candidate.toBaseUnitFactor).compareTo(Decimal.one) >= 0) {\n result = candidate;\n } else break;\n }\n\n return result;\n }\n\n private buildSymbolIndex(): ReadonlyMap<string, TUnit> {\n const index = new Map<string, TUnit>();\n const add = (key: string, unit: TUnit): void => {\n const normalized = foldForUnitLookup(key);\n if (normalized.length > 0 && !index.has(normalized)) index.set(normalized, unit);\n };\n\n for (const unit of this.all) {\n if (!this.symbolsExcludedFromIndex.includes(unit)) add(unit.symbol, unit);\n add(unit.englishName, unit);\n add(unit.localizedName, unit);\n add(unit.pluralEnglish, unit);\n add(unit.pluralSwedish, unit);\n for (const alias of unit.aliases) add(alias, unit);\n }\n\n return index;\n }\n}\n\n/**\n * Case-folds a lookup key the way .NET's `StringComparer.OrdinalIgnoreCase`\n * does, by upper-casing. Lower-casing would not do: the micro sign `\u00B5` and the\n * Greek capital mu `\u039C` fold together going up but not going down, so `\u039CW` would\n * stop resolving to microwatt.\n */\nexport function foldForUnitLookup(key: string): string {\n return key.toUpperCase();\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }