@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.
- package/BREAKING_CHANGES.md +81 -0
- package/CHANGELOG.md +72 -1
- package/PARITY.md +202 -0
- package/README.md +58 -9
- package/dist/cjs/banking/bank-resolver.js +378 -0
- package/dist/cjs/banking/bank-resolver.js.map +7 -0
- package/dist/cjs/banking/bic.js +189 -0
- package/dist/cjs/banking/bic.js.map +7 -0
- package/dist/cjs/banking/iban.js +314 -0
- package/dist/cjs/banking/iban.js.map +7 -0
- package/dist/cjs/banking/index.js +60 -0
- package/dist/cjs/banking/index.js.map +7 -0
- package/dist/cjs/banking/swedish-bank-account-holder-name.js +124 -0
- package/dist/cjs/banking/swedish-bank-account-holder-name.js.map +7 -0
- package/dist/cjs/banking/swedish-bank-account.js +211 -0
- package/dist/cjs/banking/swedish-bank-account.js.map +7 -0
- package/dist/cjs/banking/swedish-bank-clearing-number.js +156 -0
- package/dist/cjs/banking/swedish-bank-clearing-number.js.map +7 -0
- package/dist/cjs/banking/swedish-bank.js +89 -0
- package/dist/cjs/banking/swedish-bank.js.map +7 -0
- package/dist/cjs/banking/swedish-bankgiro-number.js +176 -0
- package/dist/cjs/banking/swedish-bankgiro-number.js.map +7 -0
- package/dist/cjs/banking/swedish-banking-number.js +201 -0
- package/dist/cjs/banking/swedish-banking-number.js.map +7 -0
- package/dist/cjs/banking/swedish-ocr-reference-number.js +215 -0
- package/dist/cjs/banking/swedish-ocr-reference-number.js.map +7 -0
- package/dist/cjs/banking/swedish-postgiro-number.js +173 -0
- package/dist/cjs/banking/swedish-postgiro-number.js.map +7 -0
- package/dist/cjs/banking/swedish-swish-number.js +165 -0
- package/dist/cjs/banking/swedish-swish-number.js.map +7 -0
- package/dist/cjs/contact/address-city.js +104 -0
- package/dist/cjs/contact/address-city.js.map +7 -0
- package/dist/cjs/contact/address-street.js +220 -0
- package/dist/cjs/contact/address-street.js.map +7 -0
- package/dist/cjs/contact/address-zip-code.js +195 -0
- package/dist/cjs/contact/address-zip-code.js.map +7 -0
- package/dist/cjs/contact/address.js +405 -0
- package/dist/cjs/contact/address.js.map +7 -0
- package/dist/cjs/contact/contact-address.js +142 -0
- package/dist/cjs/contact/contact-address.js.map +7 -0
- package/dist/cjs/contact/contact-external-links.js +39 -0
- package/dist/cjs/contact/contact-external-links.js.map +7 -0
- package/dist/cjs/contact/contact-lookup.js +31 -0
- package/dist/cjs/contact/contact-lookup.js.map +7 -0
- package/dist/cjs/contact/contact-masking.js +117 -0
- package/dist/cjs/contact/contact-masking.js.map +7 -0
- package/dist/cjs/contact/country-address-factory.js +97 -0
- package/dist/cjs/contact/country-address-factory.js.map +7 -0
- package/dist/cjs/contact/country-address-registry.js +36 -0
- package/dist/cjs/contact/country-address-registry.js.map +7 -0
- package/dist/cjs/contact/country-address.js +98 -0
- package/dist/cjs/contact/country-address.js.map +7 -0
- package/dist/cjs/contact/country-addresses.js +346 -0
- package/dist/cjs/contact/country-addresses.js.map +7 -0
- package/dist/cjs/contact/country-zip-code-factory.js +117 -0
- package/dist/cjs/contact/country-zip-code-factory.js.map +7 -0
- package/dist/cjs/contact/country-zip-codes.js +376 -0
- package/dist/cjs/contact/country-zip-codes.js.map +7 -0
- package/dist/cjs/contact/index.js +72 -0
- package/dist/cjs/contact/index.js.map +7 -0
- package/dist/cjs/contact/phone-calling-code.js +439 -0
- package/dist/cjs/contact/phone-calling-code.js.map +7 -0
- package/dist/cjs/contact/phone-number-test-data.js +63 -0
- package/dist/cjs/contact/phone-number-test-data.js.map +7 -0
- package/dist/cjs/contact/phone-number.js +325 -0
- package/dist/cjs/contact/phone-number.js.map +7 -0
- package/dist/cjs/contact/register-default-country-addresses.js +88 -0
- package/dist/cjs/contact/register-default-country-addresses.js.map +7 -0
- package/dist/cjs/contact/swedish-address-zip-code.js +92 -0
- package/dist/cjs/contact/swedish-address-zip-code.js.map +7 -0
- package/dist/cjs/contact/swedish-address.js +169 -0
- package/dist/cjs/contact/swedish-address.js.map +7 -0
- package/dist/cjs/finance/currency.js +251 -0
- package/dist/cjs/finance/currency.js.map +7 -0
- package/dist/cjs/finance/exchange-rates.js +51 -0
- package/dist/cjs/finance/exchange-rates.js.map +7 -0
- package/dist/cjs/finance/index.js +34 -0
- package/dist/cjs/finance/index.js.map +7 -0
- package/dist/cjs/finance/isin.js +161 -0
- package/dist/cjs/finance/isin.js.map +7 -0
- package/dist/cjs/finance/money-amount.js +307 -0
- package/dist/cjs/finance/money-amount.js.map +7 -0
- package/dist/cjs/geography/adjacency-data.js +335 -0
- package/dist/cjs/geography/adjacency-data.js.map +7 -0
- package/dist/cjs/geography/continent.js +125 -0
- package/dist/cjs/geography/continent.js.map +7 -0
- package/dist/cjs/geography/country-capital.js +45 -0
- package/dist/cjs/geography/country-capital.js.map +7 -0
- package/dist/cjs/geography/country-capitals.js +288 -0
- package/dist/cjs/geography/country-capitals.js.map +7 -0
- package/dist/cjs/geography/country-coordinates.js +238 -0
- package/dist/cjs/geography/country-coordinates.js.map +7 -0
- package/dist/cjs/geography/country-data.js +530 -0
- package/dist/cjs/geography/country-data.js.map +7 -0
- package/dist/cjs/geography/country-metadata.js +627 -0
- package/dist/cjs/geography/country-metadata.js.map +7 -0
- package/dist/cjs/geography/country.js +427 -0
- package/dist/cjs/geography/country.js.map +7 -0
- package/dist/cjs/geography/geo-coordinate.js +244 -0
- package/dist/cjs/geography/geo-coordinate.js.map +7 -0
- package/dist/cjs/geography/geography-extensions.js +82 -0
- package/dist/cjs/geography/geography-extensions.js.map +7 -0
- package/dist/cjs/geography/geography-external-links.js +52 -0
- package/dist/cjs/geography/geography-external-links.js.map +7 -0
- package/dist/cjs/geography/geography-lookup.js +31 -0
- package/dist/cjs/geography/geography-lookup.js.map +7 -0
- package/dist/cjs/geography/geography-masking.js +54 -0
- package/dist/cjs/geography/geography-masking.js.map +7 -0
- package/dist/cjs/geography/index.js +57 -0
- package/dist/cjs/geography/index.js.map +7 -0
- package/dist/cjs/geography/language.js +462 -0
- package/dist/cjs/geography/language.js.map +7 -0
- package/dist/cjs/geography/swedish-county.js +232 -0
- package/dist/cjs/geography/swedish-county.js.map +7 -0
- package/dist/cjs/geography/swedish-municipality-data.js +316 -0
- package/dist/cjs/geography/swedish-municipality-data.js.map +7 -0
- package/dist/cjs/geography/swedish-municipality.js +218 -0
- package/dist/cjs/geography/swedish-municipality.js.map +7 -0
- package/dist/cjs/index.js +33 -0
- package/dist/cjs/index.js.map +7 -0
- package/dist/cjs/internal/case-folding.js +32 -0
- package/dist/cjs/internal/case-folding.js.map +7 -0
- package/dist/cjs/internal/clock.js +32 -0
- package/dist/cjs/internal/clock.js.map +7 -0
- package/dist/cjs/internal/decimal.js +262 -0
- package/dist/cjs/internal/decimal.js.map +7 -0
- package/dist/cjs/internal/gs1-prefix.js +164 -0
- package/dist/cjs/internal/gs1-prefix.js.map +7 -0
- package/dist/cjs/internal/gtin-check-digit.js +46 -0
- package/dist/cjs/internal/gtin-check-digit.js.map +7 -0
- package/dist/cjs/internal/input-sanitization.js +79 -0
- package/dist/cjs/internal/input-sanitization.js.map +7 -0
- package/dist/cjs/internal/luhn.js +40 -0
- package/dist/cjs/internal/luhn.js.map +7 -0
- package/dist/cjs/internal/measurement-unit-parser.js +86 -0
- package/dist/cjs/internal/measurement-unit-parser.js.map +7 -0
- package/dist/cjs/internal/measurement-unit.js +130 -0
- package/dist/cjs/internal/measurement-unit.js.map +7 -0
- package/dist/cjs/internal/quantity.js +122 -0
- package/dist/cjs/internal/quantity.js.map +7 -0
- package/dist/cjs/internal/shoe-size-format.js +31 -0
- package/dist/cjs/internal/shoe-size-format.js.map +7 -0
- package/dist/cjs/measurement/area-unit.js +158 -0
- package/dist/cjs/measurement/area-unit.js.map +7 -0
- package/dist/cjs/measurement/area.js +183 -0
- package/dist/cjs/measurement/area.js.map +7 -0
- package/dist/cjs/measurement/count.js +132 -0
- package/dist/cjs/measurement/count.js.map +7 -0
- package/dist/cjs/measurement/data-size-unit.js +208 -0
- package/dist/cjs/measurement/data-size-unit.js.map +7 -0
- package/dist/cjs/measurement/data-size.js +207 -0
- package/dist/cjs/measurement/data-size.js.map +7 -0
- package/dist/cjs/measurement/electric-charge-unit.js +109 -0
- package/dist/cjs/measurement/electric-charge-unit.js.map +7 -0
- package/dist/cjs/measurement/electric-charge.js +148 -0
- package/dist/cjs/measurement/electric-charge.js.map +7 -0
- package/dist/cjs/measurement/electric-current-unit.js +108 -0
- package/dist/cjs/measurement/electric-current-unit.js.map +7 -0
- package/dist/cjs/measurement/electric-current.js +154 -0
- package/dist/cjs/measurement/electric-current.js.map +7 -0
- package/dist/cjs/measurement/energy-unit.js +201 -0
- package/dist/cjs/measurement/energy-unit.js.map +7 -0
- package/dist/cjs/measurement/energy.js +207 -0
- package/dist/cjs/measurement/energy.js.map +7 -0
- package/dist/cjs/measurement/flow-rate-unit.js +132 -0
- package/dist/cjs/measurement/flow-rate-unit.js.map +7 -0
- package/dist/cjs/measurement/flow-rate.js +162 -0
- package/dist/cjs/measurement/flow-rate.js.map +7 -0
- package/dist/cjs/measurement/frequency-unit.js +132 -0
- package/dist/cjs/measurement/frequency-unit.js.map +7 -0
- package/dist/cjs/measurement/frequency.js +165 -0
- package/dist/cjs/measurement/frequency.js.map +7 -0
- package/dist/cjs/measurement/index.js +136 -0
- package/dist/cjs/measurement/index.js.map +7 -0
- package/dist/cjs/measurement/length-unit.js +210 -0
- package/dist/cjs/measurement/length-unit.js.map +7 -0
- package/dist/cjs/measurement/length.js +208 -0
- package/dist/cjs/measurement/length.js.map +7 -0
- package/dist/cjs/measurement/luminance-unit.js +110 -0
- package/dist/cjs/measurement/luminance-unit.js.map +7 -0
- package/dist/cjs/measurement/luminance.js +158 -0
- package/dist/cjs/measurement/luminance.js.map +7 -0
- package/dist/cjs/measurement/luminous-flux-unit.js +86 -0
- package/dist/cjs/measurement/luminous-flux-unit.js.map +7 -0
- package/dist/cjs/measurement/luminous-flux.js +139 -0
- package/dist/cjs/measurement/luminous-flux.js.map +7 -0
- package/dist/cjs/measurement/percentage.js +212 -0
- package/dist/cjs/measurement/percentage.js.map +7 -0
- package/dist/cjs/measurement/power-unit.js +155 -0
- package/dist/cjs/measurement/power-unit.js.map +7 -0
- package/dist/cjs/measurement/power.js +184 -0
- package/dist/cjs/measurement/power.js.map +7 -0
- package/dist/cjs/measurement/pressure-unit.js +168 -0
- package/dist/cjs/measurement/pressure-unit.js.map +7 -0
- package/dist/cjs/measurement/pressure.js +189 -0
- package/dist/cjs/measurement/pressure.js.map +7 -0
- package/dist/cjs/measurement/rotational-speed-unit.js +96 -0
- package/dist/cjs/measurement/rotational-speed-unit.js.map +7 -0
- package/dist/cjs/measurement/rotational-speed.js +152 -0
- package/dist/cjs/measurement/rotational-speed.js.map +7 -0
- package/dist/cjs/measurement/sound-level.js +185 -0
- package/dist/cjs/measurement/sound-level.js.map +7 -0
- package/dist/cjs/measurement/speed-unit.js +119 -0
- package/dist/cjs/measurement/speed-unit.js.map +7 -0
- package/dist/cjs/measurement/speed.js +159 -0
- package/dist/cjs/measurement/speed.js.map +7 -0
- package/dist/cjs/measurement/temperature-delta.js +101 -0
- package/dist/cjs/measurement/temperature-delta.js.map +7 -0
- package/dist/cjs/measurement/temperature-unit.js +130 -0
- package/dist/cjs/measurement/temperature-unit.js.map +7 -0
- package/dist/cjs/measurement/temperature.js +216 -0
- package/dist/cjs/measurement/temperature.js.map +7 -0
- package/dist/cjs/measurement/torque-unit.js +138 -0
- package/dist/cjs/measurement/torque-unit.js.map +7 -0
- package/dist/cjs/measurement/torque.js +165 -0
- package/dist/cjs/measurement/torque.js.map +7 -0
- package/dist/cjs/measurement/voltage-unit.js +127 -0
- package/dist/cjs/measurement/voltage-unit.js.map +7 -0
- package/dist/cjs/measurement/voltage.js +159 -0
- package/dist/cjs/measurement/voltage.js.map +7 -0
- package/dist/cjs/measurement/volume-unit.js +178 -0
- package/dist/cjs/measurement/volume-unit.js.map +7 -0
- package/dist/cjs/measurement/volume.js +195 -0
- package/dist/cjs/measurement/volume.js.map +7 -0
- package/dist/cjs/measurement/weight-unit.js +158 -0
- package/dist/cjs/measurement/weight-unit.js.map +7 -0
- package/dist/cjs/measurement/weight.js +183 -0
- package/dist/cjs/measurement/weight.js.map +7 -0
- package/dist/cjs/measurement/year-month.js +204 -0
- package/dist/cjs/measurement/year-month.js.map +7 -0
- package/dist/cjs/measurement/year.js +109 -0
- package/dist/cjs/measurement/year.js.map +7 -0
- package/dist/cjs/organization/duns-number.js +114 -0
- package/dist/cjs/organization/duns-number.js.map +7 -0
- package/dist/cjs/organization/elf-code.js +132 -0
- package/dist/cjs/organization/elf-code.js.map +7 -0
- package/dist/cjs/organization/eu-organization-name.js +119 -0
- package/dist/cjs/organization/eu-organization-name.js.map +7 -0
- package/dist/cjs/organization/eu-vat-number.js +444 -0
- package/dist/cjs/organization/eu-vat-number.js.map +7 -0
- package/dist/cjs/organization/index.js +65 -0
- package/dist/cjs/organization/index.js.map +7 -0
- package/dist/cjs/organization/lei-code.js +133 -0
- package/dist/cjs/organization/lei-code.js.map +7 -0
- package/dist/cjs/organization/organization-extensions.js +80 -0
- package/dist/cjs/organization/organization-extensions.js.map +7 -0
- package/dist/cjs/organization/organization-validation-utils.js +78 -0
- package/dist/cjs/organization/organization-validation-utils.js.map +7 -0
- package/dist/cjs/organization/swedish-cfar-number.js +88 -0
- package/dist/cjs/organization/swedish-cfar-number.js.map +7 -0
- package/dist/cjs/organization/swedish-organization-identifier-type.js +34 -0
- package/dist/cjs/organization/swedish-organization-identifier-type.js.map +7 -0
- package/dist/cjs/organization/swedish-organization-identifier.js +166 -0
- package/dist/cjs/organization/swedish-organization-identifier.js.map +7 -0
- package/dist/cjs/organization/swedish-organization-name.js +255 -0
- package/dist/cjs/organization/swedish-organization-name.js.map +7 -0
- package/dist/cjs/organization/swedish-organization-number.js +289 -0
- package/dist/cjs/organization/swedish-organization-number.js.map +7 -0
- package/dist/cjs/organization/swedish-organization-type.js +51 -0
- package/dist/cjs/organization/swedish-organization-type.js.map +7 -0
- package/dist/cjs/organization/swedish-sni-code.js +96 -0
- package/dist/cjs/organization/swedish-sni-code.js.map +7 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/person/index.js +49 -0
- package/dist/cjs/person/index.js.map +7 -0
- package/dist/cjs/person/person-age.js +187 -0
- package/dist/cjs/person/person-age.js.map +7 -0
- package/dist/cjs/person/person-family-name.js +83 -0
- package/dist/cjs/person/person-family-name.js.map +7 -0
- package/dist/cjs/person/person-full-name.js +106 -0
- package/dist/cjs/person/person-full-name.js.map +7 -0
- package/dist/cjs/person/person-given-name.js +103 -0
- package/dist/cjs/person/person-given-name.js.map +7 -0
- package/dist/cjs/person/person-masking.js +48 -0
- package/dist/cjs/person/person-masking.js.map +7 -0
- package/dist/cjs/person/person-name-normalization.js +99 -0
- package/dist/cjs/person/person-name-normalization.js.map +7 -0
- package/dist/cjs/person/personnummer-parser.js +156 -0
- package/dist/cjs/person/personnummer-parser.js.map +7 -0
- package/dist/cjs/person/swedish-coordination-number.js +186 -0
- package/dist/cjs/person/swedish-coordination-number.js.map +7 -0
- package/dist/cjs/person/swedish-personal-identity-number.js +188 -0
- package/dist/cjs/person/swedish-personal-identity-number.js.map +7 -0
- package/dist/cjs/primitive-type-info.js +17 -0
- package/dist/cjs/primitive-type-info.js.map +7 -0
- package/dist/cjs/primitives-defaults.js +92 -0
- package/dist/cjs/primitives-defaults.js.map +7 -0
- package/dist/cjs/product/adult-clothing-size.js +148 -0
- package/dist/cjs/product/adult-clothing-size.js.map +7 -0
- package/dist/cjs/product/adult-shoe-size.js +139 -0
- package/dist/cjs/product/adult-shoe-size.js.map +7 -0
- package/dist/cjs/product/aspect-ratio.js +188 -0
- package/dist/cjs/product/aspect-ratio.js.map +7 -0
- package/dist/cjs/product/battery-capacity.js +184 -0
- package/dist/cjs/product/battery-capacity.js.map +7 -0
- package/dist/cjs/product/battery-chemistry.js +259 -0
- package/dist/cjs/product/battery-chemistry.js.map +7 -0
- package/dist/cjs/product/camera-resolution.js +161 -0
- package/dist/cjs/product/camera-resolution.js.map +7 -0
- package/dist/cjs/product/child-clothing-size.js +254 -0
- package/dist/cjs/product/child-clothing-size.js.map +7 -0
- package/dist/cjs/product/child-shoe-size.js +200 -0
- package/dist/cjs/product/child-shoe-size.js.map +7 -0
- package/dist/cjs/product/clothing-fit.js +223 -0
- package/dist/cjs/product/clothing-fit.js.map +7 -0
- package/dist/cjs/product/clothing-gender.js +198 -0
- package/dist/cjs/product/clothing-gender.js.map +7 -0
- package/dist/cjs/product/clothing-season.js +202 -0
- package/dist/cjs/product/clothing-season.js.map +7 -0
- package/dist/cjs/product/clothing-size-system.js +31 -0
- package/dist/cjs/product/clothing-size-system.js.map +7 -0
- package/dist/cjs/product/clothing-size.js +146 -0
- package/dist/cjs/product/clothing-size.js.map +7 -0
- package/dist/cjs/product/color.js +334 -0
- package/dist/cjs/product/color.js.map +7 -0
- package/dist/cjs/product/display-panel-type.js +287 -0
- package/dist/cjs/product/display-panel-type.js.map +7 -0
- package/dist/cjs/product/electrical-phase.js +194 -0
- package/dist/cjs/product/electrical-phase.js.map +7 -0
- package/dist/cjs/product/energy-scale.js +31 -0
- package/dist/cjs/product/energy-scale.js.map +7 -0
- package/dist/cjs/product/eu-energy-efficiency-class.js +135 -0
- package/dist/cjs/product/eu-energy-efficiency-class.js.map +7 -0
- package/dist/cjs/product/google-product-category.js +114 -0
- package/dist/cjs/product/google-product-category.js.map +7 -0
- package/dist/cjs/product/gtin.js +99 -0
- package/dist/cjs/product/gtin.js.map +7 -0
- package/dist/cjs/product/gtin12.js +130 -0
- package/dist/cjs/product/gtin12.js.map +7 -0
- package/dist/cjs/product/gtin13.js +147 -0
- package/dist/cjs/product/gtin13.js.map +7 -0
- package/dist/cjs/product/gtin14.js +135 -0
- package/dist/cjs/product/gtin14.js.map +7 -0
- package/dist/cjs/product/gtin8.js +130 -0
- package/dist/cjs/product/gtin8.js.map +7 -0
- package/dist/cjs/product/hs-code-level.js +32 -0
- package/dist/cjs/product/hs-code-level.js.map +7 -0
- package/dist/cjs/product/hs-code.js +126 -0
- package/dist/cjs/product/hs-code.js.map +7 -0
- package/dist/cjs/product/index.js +128 -0
- package/dist/cjs/product/index.js.map +7 -0
- package/dist/cjs/product/ip-rating.js +166 -0
- package/dist/cjs/product/ip-rating.js.map +7 -0
- package/dist/cjs/product/operating-system-family.js +37 -0
- package/dist/cjs/product/operating-system-family.js.map +7 -0
- package/dist/cjs/product/operating-system-info.js +100 -0
- package/dist/cjs/product/operating-system-info.js.map +7 -0
- package/dist/cjs/product/operating-system-name.js +127 -0
- package/dist/cjs/product/operating-system-name.js.map +7 -0
- package/dist/cjs/product/operating-system-version.js +110 -0
- package/dist/cjs/product/operating-system-version.js.map +7 -0
- package/dist/cjs/product/power-source.js +318 -0
- package/dist/cjs/product/power-source.js.map +7 -0
- package/dist/cjs/product/processor-speed.js +159 -0
- package/dist/cjs/product/processor-speed.js.map +7 -0
- package/dist/cjs/product/product-extensions.js +27 -0
- package/dist/cjs/product/product-extensions.js.map +7 -0
- package/dist/cjs/product/product-masking.js +102 -0
- package/dist/cjs/product/product-masking.js.map +7 -0
- package/dist/cjs/product/ram-capacity.js +154 -0
- package/dist/cjs/product/ram-capacity.js.map +7 -0
- package/dist/cjs/product/refrigerant-family.js +40 -0
- package/dist/cjs/product/refrigerant-family.js.map +7 -0
- package/dist/cjs/product/refrigerant.js +419 -0
- package/dist/cjs/product/refrigerant.js.map +7 -0
- package/dist/cjs/product/screen-resolution.js +197 -0
- package/dist/cjs/product/screen-resolution.js.map +7 -0
- package/dist/cjs/product/screen-size.js +184 -0
- package/dist/cjs/product/screen-size.js.map +7 -0
- package/dist/cjs/product/shoe-size-system.js +31 -0
- package/dist/cjs/product/shoe-size-system.js.map +7 -0
- package/dist/cjs/product/shoe-size.js +138 -0
- package/dist/cjs/product/shoe-size.js.map +7 -0
- package/dist/cjs/product/storage-capacity.js +159 -0
- package/dist/cjs/product/storage-capacity.js.map +7 -0
- package/dist/cjs/product/storage-media-type.js +271 -0
- package/dist/cjs/product/storage-media-type.js.map +7 -0
- package/dist/cjs/property/index.js +31 -0
- package/dist/cjs/property/index.js.map +7 -0
- package/dist/cjs/property/swedish-property-designation.js +179 -0
- package/dist/cjs/property/swedish-property-designation.js.map +7 -0
- package/dist/cjs/property/swedish-property-taxation-code.js +218 -0
- package/dist/cjs/property/swedish-property-taxation-code.js.map +7 -0
- package/dist/cjs/register-default-text-scanners.js +290 -0
- package/dist/cjs/register-default-text-scanners.js.map +7 -0
- package/dist/cjs/sample-data/index.js +358 -0
- package/dist/cjs/sample-data/index.js.map +7 -0
- package/dist/cjs/text-scanning/index.js +38 -0
- package/dist/cjs/text-scanning/index.js.map +7 -0
- package/dist/cjs/text-scanning/text-candidate-category.js +35 -0
- package/dist/cjs/text-scanning/text-candidate-category.js.map +7 -0
- package/dist/cjs/text-scanning/text-candidate.js +75 -0
- package/dist/cjs/text-scanning/text-candidate.js.map +7 -0
- package/dist/cjs/text-scanning/text-match-confidence.js +43 -0
- package/dist/cjs/text-scanning/text-match-confidence.js.map +7 -0
- package/dist/cjs/text-scanning/text-scan-helpers.js +98 -0
- package/dist/cjs/text-scanning/text-scan-helpers.js.map +7 -0
- package/dist/cjs/text-scanning/text-scan-result.js +333 -0
- package/dist/cjs/text-scanning/text-scan-result.js.map +7 -0
- package/dist/cjs/text-scanning/text-scanner-options.js +29 -0
- package/dist/cjs/text-scanning/text-scanner-options.js.map +7 -0
- package/dist/cjs/text-scanning/text-scanner.js +60 -0
- package/dist/cjs/text-scanning/text-scanner.js.map +7 -0
- package/dist/cjs/validation/index.js +29 -0
- package/dist/cjs/validation/index.js.map +7 -0
- package/dist/cjs/validation/validation-error-reason.js +53 -0
- package/dist/cjs/validation/validation-error-reason.js.map +7 -0
- package/dist/cjs/validation/validation-issue.js +43 -0
- package/dist/cjs/validation/validation-issue.js.map +7 -0
- package/dist/cjs/validation/validation-result.js +52 -0
- package/dist/cjs/validation/validation-result.js.map +7 -0
- package/dist/cjs/vehicle/boat-ce-design-category.js +200 -0
- package/dist/cjs/vehicle/boat-ce-design-category.js.map +7 -0
- package/dist/cjs/vehicle/boat-hull-material.js +222 -0
- package/dist/cjs/vehicle/boat-hull-material.js.map +7 -0
- package/dist/cjs/vehicle/body-type.js +325 -0
- package/dist/cjs/vehicle/body-type.js.map +7 -0
- package/dist/cjs/vehicle/bolt-pattern.js +150 -0
- package/dist/cjs/vehicle/bolt-pattern.js.map +7 -0
- package/dist/cjs/vehicle/drivetrain-type.js +200 -0
- package/dist/cjs/vehicle/drivetrain-type.js.map +7 -0
- package/dist/cjs/vehicle/emission-rate.js +194 -0
- package/dist/cjs/vehicle/emission-rate.js.map +7 -0
- package/dist/cjs/vehicle/energy-consumption.js +250 -0
- package/dist/cjs/vehicle/energy-consumption.js.map +7 -0
- package/dist/cjs/vehicle/engine-displacement.js +169 -0
- package/dist/cjs/vehicle/engine-displacement.js.map +7 -0
- package/dist/cjs/vehicle/engine-power.js +211 -0
- package/dist/cjs/vehicle/engine-power.js.map +7 -0
- package/dist/cjs/vehicle/eu-type-approval-number.js +196 -0
- package/dist/cjs/vehicle/eu-type-approval-number.js.map +7 -0
- package/dist/cjs/vehicle/eu-vehicle-category.js +167 -0
- package/dist/cjs/vehicle/eu-vehicle-category.js.map +7 -0
- package/dist/cjs/vehicle/euro-emission-class.js +313 -0
- package/dist/cjs/vehicle/euro-emission-class.js.map +7 -0
- package/dist/cjs/vehicle/fuel-consumption-norm.js +206 -0
- package/dist/cjs/vehicle/fuel-consumption-norm.js.map +7 -0
- package/dist/cjs/vehicle/fuel-consumption.js +281 -0
- package/dist/cjs/vehicle/fuel-consumption.js.map +7 -0
- package/dist/cjs/vehicle/fuel-type.js +288 -0
- package/dist/cjs/vehicle/fuel-type.js.map +7 -0
- package/dist/cjs/vehicle/index.js +108 -0
- package/dist/cjs/vehicle/index.js.map +7 -0
- package/dist/cjs/vehicle/odometer-reading.js +165 -0
- package/dist/cjs/vehicle/odometer-reading.js.map +7 -0
- package/dist/cjs/vehicle/operating-hours.js +174 -0
- package/dist/cjs/vehicle/operating-hours.js.map +7 -0
- package/dist/cjs/vehicle/suspension-type.js +312 -0
- package/dist/cjs/vehicle/suspension-type.js.map +7 -0
- package/dist/cjs/vehicle/swedish-driving-license-category.js +404 -0
- package/dist/cjs/vehicle/swedish-driving-license-category.js.map +7 -0
- package/dist/cjs/vehicle/swedish-driving-license-vehicle-group.js +32 -0
- package/dist/cjs/vehicle/swedish-driving-license-vehicle-group.js.map +7 -0
- package/dist/cjs/vehicle/swedish-eco-vehicle-classification.js +232 -0
- package/dist/cjs/vehicle/swedish-eco-vehicle-classification.js.map +7 -0
- package/dist/cjs/vehicle/swedish-vehicle-registration-number.js +193 -0
- package/dist/cjs/vehicle/swedish-vehicle-registration-number.js.map +7 -0
- package/dist/cjs/vehicle/swedish-vehicle-status.js +172 -0
- package/dist/cjs/vehicle/swedish-vehicle-status.js.map +7 -0
- package/dist/cjs/vehicle/swedish-vehicle-type.js +282 -0
- package/dist/cjs/vehicle/swedish-vehicle-type.js.map +7 -0
- package/dist/cjs/vehicle/tire-dimension.js +206 -0
- package/dist/cjs/vehicle/tire-dimension.js.map +7 -0
- package/dist/cjs/vehicle/tire-type.js +228 -0
- package/dist/cjs/vehicle/tire-type.js.map +7 -0
- package/dist/cjs/vehicle/track-type.js +188 -0
- package/dist/cjs/vehicle/track-type.js.map +7 -0
- package/dist/cjs/vehicle/transmission-type.js +258 -0
- package/dist/cjs/vehicle/transmission-type.js.map +7 -0
- package/dist/cjs/vehicle/vehicle-extensions.js +35 -0
- package/dist/cjs/vehicle/vehicle-extensions.js.map +7 -0
- package/dist/cjs/vehicle/vehicle-identification-number.js +265 -0
- package/dist/cjs/vehicle/vehicle-identification-number.js.map +7 -0
- package/dist/cjs/vehicle/vehicle-masking.js +68 -0
- package/dist/cjs/vehicle/vehicle-masking.js.map +7 -0
- package/dist/cjs/vehicle/wheel-rim-dimension.js +183 -0
- package/dist/cjs/vehicle/wheel-rim-dimension.js.map +7 -0
- package/dist/cjs/web/email-address.js +542 -0
- package/dist/cjs/web/email-address.js.map +7 -0
- package/dist/cjs/web/index.js +31 -0
- package/dist/cjs/web/index.js.map +7 -0
- package/dist/cjs/web/url.js +353 -0
- package/dist/cjs/web/url.js.map +7 -0
- package/dist/esm/banking/bank-resolver.js +358 -0
- package/dist/esm/banking/bank-resolver.js.map +7 -0
- package/dist/esm/banking/bic.js +169 -0
- package/dist/esm/banking/bic.js.map +7 -0
- package/dist/esm/banking/iban.js +294 -0
- package/dist/esm/banking/iban.js.map +7 -0
- package/dist/esm/banking/index.js +60 -0
- package/dist/esm/banking/index.js.map +7 -0
- package/dist/esm/banking/swedish-bank-account-holder-name.js +104 -0
- package/dist/esm/banking/swedish-bank-account-holder-name.js.map +7 -0
- package/dist/esm/banking/swedish-bank-account.js +199 -0
- package/dist/esm/banking/swedish-bank-account.js.map +7 -0
- package/dist/esm/banking/swedish-bank-clearing-number.js +136 -0
- package/dist/esm/banking/swedish-bank-clearing-number.js.map +7 -0
- package/dist/esm/banking/swedish-bank.js +69 -0
- package/dist/esm/banking/swedish-bank.js.map +7 -0
- package/dist/esm/banking/swedish-bankgiro-number.js +156 -0
- package/dist/esm/banking/swedish-bankgiro-number.js.map +7 -0
- package/dist/esm/banking/swedish-banking-number.js +181 -0
- package/dist/esm/banking/swedish-banking-number.js.map +7 -0
- package/dist/esm/banking/swedish-ocr-reference-number.js +195 -0
- package/dist/esm/banking/swedish-ocr-reference-number.js.map +7 -0
- package/dist/esm/banking/swedish-postgiro-number.js +153 -0
- package/dist/esm/banking/swedish-postgiro-number.js.map +7 -0
- package/dist/esm/banking/swedish-swish-number.js +145 -0
- package/dist/esm/banking/swedish-swish-number.js.map +7 -0
- package/dist/esm/contact/address-city.js +84 -0
- package/dist/esm/contact/address-city.js.map +7 -0
- package/dist/esm/contact/address-street.js +200 -0
- package/dist/esm/contact/address-street.js.map +7 -0
- package/dist/esm/contact/address-zip-code.js +175 -0
- package/dist/esm/contact/address-zip-code.js.map +7 -0
- package/dist/esm/contact/address.js +388 -0
- package/dist/esm/contact/address.js.map +7 -0
- package/dist/esm/contact/contact-address.js +122 -0
- package/dist/esm/contact/contact-address.js.map +7 -0
- package/dist/esm/contact/contact-external-links.js +19 -0
- package/dist/esm/contact/contact-external-links.js.map +7 -0
- package/dist/esm/contact/contact-lookup.js +11 -0
- package/dist/esm/contact/contact-lookup.js.map +7 -0
- package/dist/esm/contact/contact-masking.js +97 -0
- package/dist/esm/contact/contact-masking.js.map +7 -0
- package/dist/esm/contact/country-address-factory.js +80 -0
- package/dist/esm/contact/country-address-factory.js.map +7 -0
- package/dist/esm/contact/country-address-registry.js +16 -0
- package/dist/esm/contact/country-address-registry.js.map +7 -0
- package/dist/esm/contact/country-address.js +78 -0
- package/dist/esm/contact/country-address.js.map +7 -0
- package/dist/esm/contact/country-addresses.js +316 -0
- package/dist/esm/contact/country-addresses.js.map +7 -0
- package/dist/esm/contact/country-zip-code-factory.js +97 -0
- package/dist/esm/contact/country-zip-code-factory.js.map +7 -0
- package/dist/esm/contact/country-zip-codes.js +363 -0
- package/dist/esm/contact/country-zip-codes.js.map +7 -0
- package/dist/esm/contact/index.js +63 -0
- package/dist/esm/contact/index.js.map +7 -0
- package/dist/esm/contact/phone-calling-code.js +419 -0
- package/dist/esm/contact/phone-calling-code.js.map +7 -0
- package/dist/esm/contact/phone-number-test-data.js +43 -0
- package/dist/esm/contact/phone-number-test-data.js.map +7 -0
- package/dist/esm/contact/phone-number.js +305 -0
- package/dist/esm/contact/phone-number.js.map +7 -0
- package/dist/esm/contact/register-default-country-addresses.js +58 -0
- package/dist/esm/contact/register-default-country-addresses.js.map +7 -0
- package/dist/esm/contact/swedish-address-zip-code.js +72 -0
- package/dist/esm/contact/swedish-address-zip-code.js.map +7 -0
- package/dist/esm/contact/swedish-address.js +149 -0
- package/dist/esm/contact/swedish-address.js.map +7 -0
- package/dist/esm/finance/currency.js +231 -0
- package/dist/esm/finance/currency.js.map +7 -0
- package/dist/esm/finance/exchange-rates.js +31 -0
- package/dist/esm/finance/exchange-rates.js.map +7 -0
- package/dist/esm/finance/index.js +14 -0
- package/dist/esm/finance/index.js.map +7 -0
- package/dist/esm/finance/isin.js +141 -0
- package/dist/esm/finance/isin.js.map +7 -0
- package/dist/esm/finance/money-amount.js +287 -0
- package/dist/esm/finance/money-amount.js.map +7 -0
- package/dist/esm/geography/adjacency-data.js +315 -0
- package/dist/esm/geography/adjacency-data.js.map +7 -0
- package/dist/esm/geography/continent.js +105 -0
- package/dist/esm/geography/continent.js.map +7 -0
- package/dist/esm/geography/country-capital.js +25 -0
- package/dist/esm/geography/country-capital.js.map +7 -0
- package/dist/esm/geography/country-capitals.js +268 -0
- package/dist/esm/geography/country-capitals.js.map +7 -0
- package/dist/esm/geography/country-coordinates.js +218 -0
- package/dist/esm/geography/country-coordinates.js.map +7 -0
- package/dist/esm/geography/country-data.js +510 -0
- package/dist/esm/geography/country-data.js.map +7 -0
- package/dist/esm/geography/country-metadata.js +607 -0
- package/dist/esm/geography/country-metadata.js.map +7 -0
- package/dist/esm/geography/country.js +417 -0
- package/dist/esm/geography/country.js.map +7 -0
- package/dist/esm/geography/geo-coordinate.js +224 -0
- package/dist/esm/geography/geo-coordinate.js.map +7 -0
- package/dist/esm/geography/geography-extensions.js +62 -0
- package/dist/esm/geography/geography-extensions.js.map +7 -0
- package/dist/esm/geography/geography-external-links.js +32 -0
- package/dist/esm/geography/geography-external-links.js.map +7 -0
- package/dist/esm/geography/geography-lookup.js +11 -0
- package/dist/esm/geography/geography-lookup.js.map +7 -0
- package/dist/esm/geography/geography-masking.js +34 -0
- package/dist/esm/geography/geography-masking.js.map +7 -0
- package/dist/esm/geography/index.js +55 -0
- package/dist/esm/geography/index.js.map +7 -0
- package/dist/esm/geography/language.js +442 -0
- package/dist/esm/geography/language.js.map +7 -0
- package/dist/esm/geography/swedish-county.js +212 -0
- package/dist/esm/geography/swedish-county.js.map +7 -0
- package/dist/esm/geography/swedish-municipality-data.js +296 -0
- package/dist/esm/geography/swedish-municipality-data.js.map +7 -0
- package/dist/esm/geography/swedish-municipality.js +198 -0
- package/dist/esm/geography/swedish-municipality.js.map +7 -0
- package/dist/esm/index.js +16 -0
- package/dist/esm/index.js.map +7 -0
- package/dist/esm/internal/case-folding.js +12 -0
- package/dist/esm/internal/case-folding.js.map +7 -0
- package/dist/esm/internal/clock.js +12 -0
- package/dist/esm/internal/clock.js.map +7 -0
- package/dist/esm/internal/decimal.js +242 -0
- package/dist/esm/internal/decimal.js.map +7 -0
- package/dist/esm/internal/gs1-prefix.js +144 -0
- package/dist/esm/internal/gs1-prefix.js.map +7 -0
- package/dist/esm/internal/gtin-check-digit.js +26 -0
- package/dist/esm/internal/gtin-check-digit.js.map +7 -0
- package/dist/esm/internal/input-sanitization.js +59 -0
- package/dist/esm/internal/input-sanitization.js.map +7 -0
- package/dist/esm/internal/luhn.js +20 -0
- package/dist/esm/internal/luhn.js.map +7 -0
- package/dist/esm/internal/measurement-unit-parser.js +66 -0
- package/dist/esm/internal/measurement-unit-parser.js.map +7 -0
- package/dist/esm/internal/measurement-unit.js +110 -0
- package/dist/esm/internal/measurement-unit.js.map +7 -0
- package/dist/esm/internal/quantity.js +102 -0
- package/dist/esm/internal/quantity.js.map +7 -0
- package/dist/esm/internal/shoe-size-format.js +11 -0
- package/dist/esm/internal/shoe-size-format.js.map +7 -0
- package/dist/esm/measurement/area-unit.js +138 -0
- package/dist/esm/measurement/area-unit.js.map +7 -0
- package/dist/esm/measurement/area.js +163 -0
- package/dist/esm/measurement/area.js.map +7 -0
- package/dist/esm/measurement/count.js +112 -0
- package/dist/esm/measurement/count.js.map +7 -0
- package/dist/esm/measurement/data-size-unit.js +188 -0
- package/dist/esm/measurement/data-size-unit.js.map +7 -0
- package/dist/esm/measurement/data-size.js +187 -0
- package/dist/esm/measurement/data-size.js.map +7 -0
- package/dist/esm/measurement/electric-charge-unit.js +89 -0
- package/dist/esm/measurement/electric-charge-unit.js.map +7 -0
- package/dist/esm/measurement/electric-charge.js +128 -0
- package/dist/esm/measurement/electric-charge.js.map +7 -0
- package/dist/esm/measurement/electric-current-unit.js +88 -0
- package/dist/esm/measurement/electric-current-unit.js.map +7 -0
- package/dist/esm/measurement/electric-current.js +134 -0
- package/dist/esm/measurement/electric-current.js.map +7 -0
- package/dist/esm/measurement/energy-unit.js +181 -0
- package/dist/esm/measurement/energy-unit.js.map +7 -0
- package/dist/esm/measurement/energy.js +187 -0
- package/dist/esm/measurement/energy.js.map +7 -0
- package/dist/esm/measurement/flow-rate-unit.js +112 -0
- package/dist/esm/measurement/flow-rate-unit.js.map +7 -0
- package/dist/esm/measurement/flow-rate.js +142 -0
- package/dist/esm/measurement/flow-rate.js.map +7 -0
- package/dist/esm/measurement/frequency-unit.js +112 -0
- package/dist/esm/measurement/frequency-unit.js.map +7 -0
- package/dist/esm/measurement/frequency.js +145 -0
- package/dist/esm/measurement/frequency.js.map +7 -0
- package/dist/esm/measurement/index.js +129 -0
- package/dist/esm/measurement/index.js.map +7 -0
- package/dist/esm/measurement/length-unit.js +190 -0
- package/dist/esm/measurement/length-unit.js.map +7 -0
- package/dist/esm/measurement/length.js +188 -0
- package/dist/esm/measurement/length.js.map +7 -0
- package/dist/esm/measurement/luminance-unit.js +90 -0
- package/dist/esm/measurement/luminance-unit.js.map +7 -0
- package/dist/esm/measurement/luminance.js +138 -0
- package/dist/esm/measurement/luminance.js.map +7 -0
- package/dist/esm/measurement/luminous-flux-unit.js +66 -0
- package/dist/esm/measurement/luminous-flux-unit.js.map +7 -0
- package/dist/esm/measurement/luminous-flux.js +119 -0
- package/dist/esm/measurement/luminous-flux.js.map +7 -0
- package/dist/esm/measurement/percentage.js +192 -0
- package/dist/esm/measurement/percentage.js.map +7 -0
- package/dist/esm/measurement/power-unit.js +135 -0
- package/dist/esm/measurement/power-unit.js.map +7 -0
- package/dist/esm/measurement/power.js +164 -0
- package/dist/esm/measurement/power.js.map +7 -0
- package/dist/esm/measurement/pressure-unit.js +148 -0
- package/dist/esm/measurement/pressure-unit.js.map +7 -0
- package/dist/esm/measurement/pressure.js +169 -0
- package/dist/esm/measurement/pressure.js.map +7 -0
- package/dist/esm/measurement/rotational-speed-unit.js +76 -0
- package/dist/esm/measurement/rotational-speed-unit.js.map +7 -0
- package/dist/esm/measurement/rotational-speed.js +132 -0
- package/dist/esm/measurement/rotational-speed.js.map +7 -0
- package/dist/esm/measurement/sound-level.js +165 -0
- package/dist/esm/measurement/sound-level.js.map +7 -0
- package/dist/esm/measurement/speed-unit.js +99 -0
- package/dist/esm/measurement/speed-unit.js.map +7 -0
- package/dist/esm/measurement/speed.js +139 -0
- package/dist/esm/measurement/speed.js.map +7 -0
- package/dist/esm/measurement/temperature-delta.js +81 -0
- package/dist/esm/measurement/temperature-delta.js.map +7 -0
- package/dist/esm/measurement/temperature-unit.js +110 -0
- package/dist/esm/measurement/temperature-unit.js.map +7 -0
- package/dist/esm/measurement/temperature.js +196 -0
- package/dist/esm/measurement/temperature.js.map +7 -0
- package/dist/esm/measurement/torque-unit.js +118 -0
- package/dist/esm/measurement/torque-unit.js.map +7 -0
- package/dist/esm/measurement/torque.js +145 -0
- package/dist/esm/measurement/torque.js.map +7 -0
- package/dist/esm/measurement/voltage-unit.js +107 -0
- package/dist/esm/measurement/voltage-unit.js.map +7 -0
- package/dist/esm/measurement/voltage.js +139 -0
- package/dist/esm/measurement/voltage.js.map +7 -0
- package/dist/esm/measurement/volume-unit.js +158 -0
- package/dist/esm/measurement/volume-unit.js.map +7 -0
- package/dist/esm/measurement/volume.js +175 -0
- package/dist/esm/measurement/volume.js.map +7 -0
- package/dist/esm/measurement/weight-unit.js +138 -0
- package/dist/esm/measurement/weight-unit.js.map +7 -0
- package/dist/esm/measurement/weight.js +163 -0
- package/dist/esm/measurement/weight.js.map +7 -0
- package/dist/esm/measurement/year-month.js +184 -0
- package/dist/esm/measurement/year-month.js.map +7 -0
- package/dist/esm/measurement/year.js +89 -0
- package/dist/esm/measurement/year.js.map +7 -0
- package/dist/esm/organization/duns-number.js +94 -0
- package/dist/esm/organization/duns-number.js.map +7 -0
- package/dist/esm/organization/elf-code.js +112 -0
- package/dist/esm/organization/elf-code.js.map +7 -0
- package/dist/esm/organization/eu-organization-name.js +99 -0
- package/dist/esm/organization/eu-organization-name.js.map +7 -0
- package/dist/esm/organization/eu-vat-number.js +424 -0
- package/dist/esm/organization/eu-vat-number.js.map +7 -0
- package/dist/esm/organization/index.js +62 -0
- package/dist/esm/organization/index.js.map +7 -0
- package/dist/esm/organization/lei-code.js +113 -0
- package/dist/esm/organization/lei-code.js.map +7 -0
- package/dist/esm/organization/organization-extensions.js +60 -0
- package/dist/esm/organization/organization-extensions.js.map +7 -0
- package/dist/esm/organization/organization-validation-utils.js +58 -0
- package/dist/esm/organization/organization-validation-utils.js.map +7 -0
- package/dist/esm/organization/swedish-cfar-number.js +68 -0
- package/dist/esm/organization/swedish-cfar-number.js.map +7 -0
- package/dist/esm/organization/swedish-organization-identifier-type.js +14 -0
- package/dist/esm/organization/swedish-organization-identifier-type.js.map +7 -0
- package/dist/esm/organization/swedish-organization-identifier.js +146 -0
- package/dist/esm/organization/swedish-organization-identifier.js.map +7 -0
- package/dist/esm/organization/swedish-organization-name.js +235 -0
- package/dist/esm/organization/swedish-organization-name.js.map +7 -0
- package/dist/esm/organization/swedish-organization-number.js +269 -0
- package/dist/esm/organization/swedish-organization-number.js.map +7 -0
- package/dist/esm/organization/swedish-organization-type.js +31 -0
- package/dist/esm/organization/swedish-organization-type.js.map +7 -0
- package/dist/esm/organization/swedish-sni-code.js +76 -0
- package/dist/esm/organization/swedish-sni-code.js.map +7 -0
- package/dist/esm/person/index.js +42 -0
- package/dist/esm/person/index.js.map +7 -0
- package/dist/esm/person/person-age.js +167 -0
- package/dist/esm/person/person-age.js.map +7 -0
- package/dist/esm/person/person-family-name.js +67 -0
- package/dist/esm/person/person-family-name.js.map +7 -0
- package/dist/esm/person/person-full-name.js +86 -0
- package/dist/esm/person/person-full-name.js.map +7 -0
- package/dist/esm/person/person-given-name.js +87 -0
- package/dist/esm/person/person-given-name.js.map +7 -0
- package/dist/esm/person/person-masking.js +28 -0
- package/dist/esm/person/person-masking.js.map +7 -0
- package/dist/esm/person/person-name-normalization.js +79 -0
- package/dist/esm/person/person-name-normalization.js.map +7 -0
- package/dist/esm/person/personnummer-parser.js +136 -0
- package/dist/esm/person/personnummer-parser.js.map +7 -0
- package/dist/esm/person/swedish-coordination-number.js +173 -0
- package/dist/esm/person/swedish-coordination-number.js.map +7 -0
- package/dist/esm/person/swedish-personal-identity-number.js +175 -0
- package/dist/esm/person/swedish-personal-identity-number.js.map +7 -0
- package/dist/esm/primitive-type-info.js +1 -0
- package/dist/esm/primitive-type-info.js.map +7 -0
- package/dist/esm/primitives-defaults.js +72 -0
- package/dist/esm/primitives-defaults.js.map +7 -0
- package/dist/esm/product/adult-clothing-size.js +128 -0
- package/dist/esm/product/adult-clothing-size.js.map +7 -0
- package/dist/esm/product/adult-shoe-size.js +119 -0
- package/dist/esm/product/adult-shoe-size.js.map +7 -0
- package/dist/esm/product/aspect-ratio.js +168 -0
- package/dist/esm/product/aspect-ratio.js.map +7 -0
- package/dist/esm/product/battery-capacity.js +164 -0
- package/dist/esm/product/battery-capacity.js.map +7 -0
- package/dist/esm/product/battery-chemistry.js +239 -0
- package/dist/esm/product/battery-chemistry.js.map +7 -0
- package/dist/esm/product/camera-resolution.js +141 -0
- package/dist/esm/product/camera-resolution.js.map +7 -0
- package/dist/esm/product/child-clothing-size.js +234 -0
- package/dist/esm/product/child-clothing-size.js.map +7 -0
- package/dist/esm/product/child-shoe-size.js +180 -0
- package/dist/esm/product/child-shoe-size.js.map +7 -0
- package/dist/esm/product/clothing-fit.js +203 -0
- package/dist/esm/product/clothing-fit.js.map +7 -0
- package/dist/esm/product/clothing-gender.js +178 -0
- package/dist/esm/product/clothing-gender.js.map +7 -0
- package/dist/esm/product/clothing-season.js +182 -0
- package/dist/esm/product/clothing-season.js.map +7 -0
- package/dist/esm/product/clothing-size-system.js +11 -0
- package/dist/esm/product/clothing-size-system.js.map +7 -0
- package/dist/esm/product/clothing-size.js +126 -0
- package/dist/esm/product/clothing-size.js.map +7 -0
- package/dist/esm/product/color.js +314 -0
- package/dist/esm/product/color.js.map +7 -0
- package/dist/esm/product/display-panel-type.js +267 -0
- package/dist/esm/product/display-panel-type.js.map +7 -0
- package/dist/esm/product/electrical-phase.js +174 -0
- package/dist/esm/product/electrical-phase.js.map +7 -0
- package/dist/esm/product/energy-scale.js +11 -0
- package/dist/esm/product/energy-scale.js.map +7 -0
- package/dist/esm/product/eu-energy-efficiency-class.js +115 -0
- package/dist/esm/product/eu-energy-efficiency-class.js.map +7 -0
- package/dist/esm/product/google-product-category.js +94 -0
- package/dist/esm/product/google-product-category.js.map +7 -0
- package/dist/esm/product/gtin.js +83 -0
- package/dist/esm/product/gtin.js.map +7 -0
- package/dist/esm/product/gtin12.js +110 -0
- package/dist/esm/product/gtin12.js.map +7 -0
- package/dist/esm/product/gtin13.js +127 -0
- package/dist/esm/product/gtin13.js.map +7 -0
- package/dist/esm/product/gtin14.js +115 -0
- package/dist/esm/product/gtin14.js.map +7 -0
- package/dist/esm/product/gtin8.js +110 -0
- package/dist/esm/product/gtin8.js.map +7 -0
- package/dist/esm/product/hs-code-level.js +12 -0
- package/dist/esm/product/hs-code-level.js.map +7 -0
- package/dist/esm/product/hs-code.js +106 -0
- package/dist/esm/product/hs-code.js.map +7 -0
- package/dist/esm/product/index.js +137 -0
- package/dist/esm/product/index.js.map +7 -0
- package/dist/esm/product/ip-rating.js +146 -0
- package/dist/esm/product/ip-rating.js.map +7 -0
- package/dist/esm/product/operating-system-family.js +17 -0
- package/dist/esm/product/operating-system-family.js.map +7 -0
- package/dist/esm/product/operating-system-info.js +80 -0
- package/dist/esm/product/operating-system-info.js.map +7 -0
- package/dist/esm/product/operating-system-name.js +107 -0
- package/dist/esm/product/operating-system-name.js.map +7 -0
- package/dist/esm/product/operating-system-version.js +90 -0
- package/dist/esm/product/operating-system-version.js.map +7 -0
- package/dist/esm/product/power-source.js +298 -0
- package/dist/esm/product/power-source.js.map +7 -0
- package/dist/esm/product/processor-speed.js +139 -0
- package/dist/esm/product/processor-speed.js.map +7 -0
- package/dist/esm/product/product-extensions.js +7 -0
- package/dist/esm/product/product-extensions.js.map +7 -0
- package/dist/esm/product/product-masking.js +82 -0
- package/dist/esm/product/product-masking.js.map +7 -0
- package/dist/esm/product/ram-capacity.js +134 -0
- package/dist/esm/product/ram-capacity.js.map +7 -0
- package/dist/esm/product/refrigerant-family.js +20 -0
- package/dist/esm/product/refrigerant-family.js.map +7 -0
- package/dist/esm/product/refrigerant.js +399 -0
- package/dist/esm/product/refrigerant.js.map +7 -0
- package/dist/esm/product/screen-resolution.js +177 -0
- package/dist/esm/product/screen-resolution.js.map +7 -0
- package/dist/esm/product/screen-size.js +164 -0
- package/dist/esm/product/screen-size.js.map +7 -0
- package/dist/esm/product/shoe-size-system.js +11 -0
- package/dist/esm/product/shoe-size-system.js.map +7 -0
- package/dist/esm/product/shoe-size.js +118 -0
- package/dist/esm/product/shoe-size.js.map +7 -0
- package/dist/esm/product/storage-capacity.js +139 -0
- package/dist/esm/product/storage-capacity.js.map +7 -0
- package/dist/esm/product/storage-media-type.js +251 -0
- package/dist/esm/product/storage-media-type.js.map +7 -0
- package/dist/esm/property/index.js +19 -0
- package/dist/esm/property/index.js.map +7 -0
- package/dist/esm/property/swedish-property-designation.js +159 -0
- package/dist/esm/property/swedish-property-designation.js.map +7 -0
- package/dist/esm/property/swedish-property-taxation-code.js +198 -0
- package/dist/esm/property/swedish-property-taxation-code.js.map +7 -0
- package/dist/esm/register-default-text-scanners.js +270 -0
- package/dist/esm/register-default-text-scanners.js.map +7 -0
- package/dist/esm/sample-data/index.js +355 -0
- package/dist/esm/sample-data/index.js.map +7 -0
- package/dist/esm/text-scanning/index.js +21 -0
- package/dist/esm/text-scanning/index.js.map +7 -0
- package/dist/esm/text-scanning/text-candidate-category.js +15 -0
- package/dist/esm/text-scanning/text-candidate-category.js.map +7 -0
- package/dist/esm/text-scanning/text-candidate.js +55 -0
- package/dist/esm/text-scanning/text-candidate.js.map +7 -0
- package/dist/esm/text-scanning/text-match-confidence.js +23 -0
- package/dist/esm/text-scanning/text-match-confidence.js.map +7 -0
- package/dist/esm/text-scanning/text-scan-helpers.js +78 -0
- package/dist/esm/text-scanning/text-scan-helpers.js.map +7 -0
- package/dist/esm/text-scanning/text-scan-result.js +313 -0
- package/dist/esm/text-scanning/text-scan-result.js.map +7 -0
- package/dist/esm/text-scanning/text-scanner-options.js +9 -0
- package/dist/esm/text-scanning/text-scanner-options.js.map +7 -0
- package/dist/esm/text-scanning/text-scanner.js +40 -0
- package/dist/esm/text-scanning/text-scanner.js.map +7 -0
- package/dist/esm/validation/index.js +9 -0
- package/dist/esm/validation/index.js.map +7 -0
- package/dist/esm/validation/validation-error-reason.js +33 -0
- package/dist/esm/validation/validation-error-reason.js.map +7 -0
- package/dist/esm/validation/validation-issue.js +23 -0
- package/dist/esm/validation/validation-issue.js.map +7 -0
- package/dist/esm/validation/validation-result.js +32 -0
- package/dist/esm/validation/validation-result.js.map +7 -0
- package/dist/esm/vehicle/boat-ce-design-category.js +180 -0
- package/dist/esm/vehicle/boat-ce-design-category.js.map +7 -0
- package/dist/esm/vehicle/boat-hull-material.js +202 -0
- package/dist/esm/vehicle/boat-hull-material.js.map +7 -0
- package/dist/esm/vehicle/body-type.js +305 -0
- package/dist/esm/vehicle/body-type.js.map +7 -0
- package/dist/esm/vehicle/bolt-pattern.js +130 -0
- package/dist/esm/vehicle/bolt-pattern.js.map +7 -0
- package/dist/esm/vehicle/drivetrain-type.js +180 -0
- package/dist/esm/vehicle/drivetrain-type.js.map +7 -0
- package/dist/esm/vehicle/emission-rate.js +174 -0
- package/dist/esm/vehicle/emission-rate.js.map +7 -0
- package/dist/esm/vehicle/energy-consumption.js +230 -0
- package/dist/esm/vehicle/energy-consumption.js.map +7 -0
- package/dist/esm/vehicle/engine-displacement.js +149 -0
- package/dist/esm/vehicle/engine-displacement.js.map +7 -0
- package/dist/esm/vehicle/engine-power.js +191 -0
- package/dist/esm/vehicle/engine-power.js.map +7 -0
- package/dist/esm/vehicle/eu-type-approval-number.js +176 -0
- package/dist/esm/vehicle/eu-type-approval-number.js.map +7 -0
- package/dist/esm/vehicle/eu-vehicle-category.js +147 -0
- package/dist/esm/vehicle/eu-vehicle-category.js.map +7 -0
- package/dist/esm/vehicle/euro-emission-class.js +293 -0
- package/dist/esm/vehicle/euro-emission-class.js.map +7 -0
- package/dist/esm/vehicle/fuel-consumption-norm.js +186 -0
- package/dist/esm/vehicle/fuel-consumption-norm.js.map +7 -0
- package/dist/esm/vehicle/fuel-consumption.js +261 -0
- package/dist/esm/vehicle/fuel-consumption.js.map +7 -0
- package/dist/esm/vehicle/fuel-type.js +268 -0
- package/dist/esm/vehicle/fuel-type.js.map +7 -0
- package/dist/esm/vehicle/index.js +134 -0
- package/dist/esm/vehicle/index.js.map +7 -0
- package/dist/esm/vehicle/odometer-reading.js +145 -0
- package/dist/esm/vehicle/odometer-reading.js.map +7 -0
- package/dist/esm/vehicle/operating-hours.js +154 -0
- package/dist/esm/vehicle/operating-hours.js.map +7 -0
- package/dist/esm/vehicle/suspension-type.js +292 -0
- package/dist/esm/vehicle/suspension-type.js.map +7 -0
- package/dist/esm/vehicle/swedish-driving-license-category.js +384 -0
- package/dist/esm/vehicle/swedish-driving-license-category.js.map +7 -0
- package/dist/esm/vehicle/swedish-driving-license-vehicle-group.js +12 -0
- package/dist/esm/vehicle/swedish-driving-license-vehicle-group.js.map +7 -0
- package/dist/esm/vehicle/swedish-eco-vehicle-classification.js +212 -0
- package/dist/esm/vehicle/swedish-eco-vehicle-classification.js.map +7 -0
- package/dist/esm/vehicle/swedish-vehicle-registration-number.js +176 -0
- package/dist/esm/vehicle/swedish-vehicle-registration-number.js.map +7 -0
- package/dist/esm/vehicle/swedish-vehicle-status.js +152 -0
- package/dist/esm/vehicle/swedish-vehicle-status.js.map +7 -0
- package/dist/esm/vehicle/swedish-vehicle-type.js +262 -0
- package/dist/esm/vehicle/swedish-vehicle-type.js.map +7 -0
- package/dist/esm/vehicle/tire-dimension.js +186 -0
- package/dist/esm/vehicle/tire-dimension.js.map +7 -0
- package/dist/esm/vehicle/tire-type.js +208 -0
- package/dist/esm/vehicle/tire-type.js.map +7 -0
- package/dist/esm/vehicle/track-type.js +168 -0
- package/dist/esm/vehicle/track-type.js.map +7 -0
- package/dist/esm/vehicle/transmission-type.js +238 -0
- package/dist/esm/vehicle/transmission-type.js.map +7 -0
- package/dist/esm/vehicle/vehicle-extensions.js +15 -0
- package/dist/esm/vehicle/vehicle-extensions.js.map +7 -0
- package/dist/esm/vehicle/vehicle-identification-number.js +248 -0
- package/dist/esm/vehicle/vehicle-identification-number.js.map +7 -0
- package/dist/esm/vehicle/vehicle-masking.js +48 -0
- package/dist/esm/vehicle/vehicle-masking.js.map +7 -0
- package/dist/esm/vehicle/wheel-rim-dimension.js +163 -0
- package/dist/esm/vehicle/wheel-rim-dimension.js.map +7 -0
- package/dist/esm/web/email-address.js +522 -0
- package/dist/esm/web/email-address.js.map +7 -0
- package/dist/esm/web/index.js +16 -0
- package/dist/esm/web/index.js.map +7 -0
- package/dist/esm/web/url.js +333 -0
- package/dist/esm/web/url.js.map +7 -0
- package/dist/types/frequency-CweGfJFS.d.cts +329 -0
- package/dist/types/frequency-DdOMV6Sw.d.ts +329 -0
- package/dist/{index.d.cts → types/index.d.cts} +9 -0
- package/dist/{index.d.ts → types/index.d.ts} +9 -0
- package/dist/types/length-CceXIJYY.d.ts +354 -0
- package/dist/types/length-XRL5Eg7F.d.cts +354 -0
- package/dist/types/measurement/index.d.cts +136 -0
- package/dist/types/measurement/index.d.ts +136 -0
- package/dist/types/product/index.d.cts +1239 -0
- package/dist/types/product/index.d.ts +1239 -0
- package/dist/types/screen-size-BD4t3wzb.d.cts +473 -0
- package/dist/types/screen-size-DUmjNjxG.d.ts +473 -0
- package/dist/{text-scanning → types/text-scanning}/index.d.cts +50 -0
- package/dist/{text-scanning → types/text-scanning}/index.d.ts +50 -0
- package/dist/types/vehicle/index.d.cts +798 -0
- package/dist/types/vehicle/index.d.ts +798 -0
- package/dist/types/volume-CFA4e3dc.d.cts +175 -0
- package/dist/types/volume-DGLPQypt.d.ts +175 -0
- package/dist/types/weight-B30-Hzxu.d.ts +1057 -0
- package/dist/types/weight-C5C7OuV_.d.cts +1057 -0
- package/dist/types/wheel-rim-dimension-CVCmLASl.d.ts +699 -0
- package/dist/types/wheel-rim-dimension-CdkDrzad.d.cts +699 -0
- package/package.json +100 -65
- package/dist/banking/index.cjs +0 -6491
- package/dist/banking/index.cjs.map +0 -1
- package/dist/banking/index.js +0 -6464
- package/dist/banking/index.js.map +0 -1
- package/dist/contact/index.cjs +0 -6678
- package/dist/contact/index.cjs.map +0 -1
- package/dist/contact/index.js +0 -6586
- package/dist/contact/index.js.map +0 -1
- package/dist/finance/index.cjs +0 -3592
- package/dist/finance/index.cjs.map +0 -1
- package/dist/finance/index.js +0 -3584
- package/dist/finance/index.js.map +0 -1
- package/dist/geography/index.cjs +0 -4227
- package/dist/geography/index.cjs.map +0 -1
- package/dist/geography/index.js +0 -4202
- package/dist/geography/index.js.map +0 -1
- package/dist/index.cjs +0 -14087
- package/dist/index.cjs.map +0 -1
- package/dist/index.js +0 -13868
- package/dist/index.js.map +0 -1
- package/dist/organization/index.cjs +0 -2376
- package/dist/organization/index.cjs.map +0 -1
- package/dist/organization/index.js +0 -2346
- package/dist/organization/index.js.map +0 -1
- package/dist/person/index.cjs +0 -1144
- package/dist/person/index.cjs.map +0 -1
- package/dist/person/index.js +0 -1125
- package/dist/person/index.js.map +0 -1
- package/dist/property/index.cjs +0 -487
- package/dist/property/index.cjs.map +0 -1
- package/dist/property/index.js +0 -480
- package/dist/property/index.js.map +0 -1
- package/dist/sample-data/index.cjs +0 -12310
- package/dist/sample-data/index.cjs.map +0 -1
- package/dist/sample-data/index.js +0 -12302
- package/dist/sample-data/index.js.map +0 -1
- package/dist/text-scanning/index.cjs +0 -10414
- package/dist/text-scanning/index.cjs.map +0 -1
- package/dist/text-scanning/index.js +0 -10406
- package/dist/text-scanning/index.js.map +0 -1
- package/dist/validation/index.cjs +0 -83
- package/dist/validation/index.cjs.map +0 -1
- package/dist/validation/index.js +0 -79
- package/dist/validation/index.js.map +0 -1
- package/dist/web/index.cjs +0 -3994
- package/dist/web/index.cjs.map +0 -1
- package/dist/web/index.js +0 -3987
- package/dist/web/index.js.map +0 -1
- /package/dist/{banking → types/banking}/index.d.cts +0 -0
- /package/dist/{banking → types/banking}/index.d.ts +0 -0
- /package/dist/{contact → types/contact}/index.d.cts +0 -0
- /package/dist/{contact → types/contact}/index.d.ts +0 -0
- /package/dist/{country-BhD51LDL.d.cts → types/country-BhD51LDL.d.cts} +0 -0
- /package/dist/{country-p0n0EVQ9.d.ts → types/country-p0n0EVQ9.d.ts} +0 -0
- /package/dist/{finance → types/finance}/index.d.cts +0 -0
- /package/dist/{finance → types/finance}/index.d.ts +0 -0
- /package/dist/{geography → types/geography}/index.d.cts +0 -0
- /package/dist/{geography → types/geography}/index.d.ts +0 -0
- /package/dist/{isin-EeVPpNWu.d.ts → types/isin-EeVPpNWu.d.ts} +0 -0
- /package/dist/{isin-ZlQLBVm8.d.cts → types/isin-ZlQLBVm8.d.cts} +0 -0
- /package/dist/{organization → types/organization}/index.d.cts +0 -0
- /package/dist/{organization → types/organization}/index.d.ts +0 -0
- /package/dist/{person → types/person}/index.d.cts +0 -0
- /package/dist/{person → types/person}/index.d.ts +0 -0
- /package/dist/{person-full-name-Cmc9Ynuc.d.cts → types/person-full-name-Cmc9Ynuc.d.cts} +0 -0
- /package/dist/{person-full-name-D6Hbsab6.d.ts → types/person-full-name-D6Hbsab6.d.ts} +0 -0
- /package/dist/{phone-number-C24--ggy.d.ts → types/phone-number-C24--ggy.d.ts} +0 -0
- /package/dist/{phone-number-DZ-YxCQQ.d.cts → types/phone-number-DZ-YxCQQ.d.cts} +0 -0
- /package/dist/{property → types/property}/index.d.cts +0 -0
- /package/dist/{property → types/property}/index.d.ts +0 -0
- /package/dist/{sample-data → types/sample-data}/index.d.cts +0 -0
- /package/dist/{sample-data → types/sample-data}/index.d.ts +0 -0
- /package/dist/{swedish-address-DNC3ftRF.d.cts → types/swedish-address-DNC3ftRF.d.cts} +0 -0
- /package/dist/{swedish-address-GMzjqgxb.d.ts → types/swedish-address-GMzjqgxb.d.ts} +0 -0
- /package/dist/{swedish-bank-account-holder-name-BFJ8h1aO.d.cts → types/swedish-bank-account-holder-name-BFJ8h1aO.d.cts} +0 -0
- /package/dist/{swedish-bank-account-holder-name-CAAru07F.d.ts → types/swedish-bank-account-holder-name-CAAru07F.d.ts} +0 -0
- /package/dist/{swedish-municipality-DlUS7g7h.d.cts → types/swedish-municipality-DlUS7g7h.d.cts} +0 -0
- /package/dist/{swedish-municipality-nDRHYRAd.d.ts → types/swedish-municipality-nDRHYRAd.d.ts} +0 -0
- /package/dist/{swedish-organization-name-D7NvERxA.d.cts → types/swedish-organization-name-D7NvERxA.d.cts} +0 -0
- /package/dist/{swedish-organization-name-rR0Q836C.d.ts → types/swedish-organization-name-rR0Q836C.d.ts} +0 -0
- /package/dist/{swedish-organization-number-Bcj7V_lh.d.cts → types/swedish-organization-number-Bcj7V_lh.d.cts} +0 -0
- /package/dist/{swedish-organization-number-DM8dpXwR.d.ts → types/swedish-organization-number-DM8dpXwR.d.ts} +0 -0
- /package/dist/{swedish-organization-type-CZOdETwG.d.cts → types/swedish-organization-type-CZOdETwG.d.cts} +0 -0
- /package/dist/{swedish-organization-type-CZOdETwG.d.ts → types/swedish-organization-type-CZOdETwG.d.ts} +0 -0
- /package/dist/{swedish-personal-identity-number-BiIg4io3.d.ts → types/swedish-personal-identity-number-BiIg4io3.d.ts} +0 -0
- /package/dist/{swedish-personal-identity-number-Cp9Coz55.d.cts → types/swedish-personal-identity-number-Cp9Coz55.d.cts} +0 -0
- /package/dist/{swedish-property-designation-BM-gdd9x.d.ts → types/swedish-property-designation-BM-gdd9x.d.ts} +0 -0
- /package/dist/{swedish-property-designation-BaHXufqV.d.cts → types/swedish-property-designation-BaHXufqV.d.cts} +0 -0
- /package/dist/{swedish-sni-code-Ccsswpni.d.ts → types/swedish-sni-code-Ccsswpni.d.ts} +0 -0
- /package/dist/{swedish-sni-code-CuJFyM6l.d.cts → types/swedish-sni-code-CuJFyM6l.d.cts} +0 -0
- /package/dist/{swedish-swish-number-CL6Gx_h3.d.cts → types/swedish-swish-number-CL6Gx_h3.d.cts} +0 -0
- /package/dist/{swedish-swish-number-DDG3mNDg.d.ts → types/swedish-swish-number-DDG3mNDg.d.ts} +0 -0
- /package/dist/{text-candidate-qg2bD9PY.d.cts → types/text-candidate-qg2bD9PY.d.cts} +0 -0
- /package/dist/{text-candidate-qg2bD9PY.d.ts → types/text-candidate-qg2bD9PY.d.ts} +0 -0
- /package/dist/{validation → types/validation}/index.d.cts +0 -0
- /package/dist/{validation → types/validation}/index.d.ts +0 -0
- /package/dist/{web → types/web}/index.d.cts +0 -0
- /package/dist/{web → types/web}/index.d.ts +0 -0
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
import { PrimitivesDefaults } from "../primitives-defaults.js";
|
|
2
|
+
import { sanitizeInput } from "../internal/input-sanitization.js";
|
|
3
|
+
import { TextCandidateCategory } from "../text-scanning/text-candidate-category.js";
|
|
4
|
+
import { TextCandidate } from "../text-scanning/text-candidate.js";
|
|
5
|
+
import { TextMatchConfidence } from "../text-scanning/text-match-confidence.js";
|
|
6
|
+
import { Country } from "../geography/index.js";
|
|
7
|
+
import { PhoneCallingCode } from "./phone-calling-code.js";
|
|
8
|
+
const MAX_INPUT_LENGTH = 50;
|
|
9
|
+
const URI_PREFIXES = ["callto:", "tel:", "sms:", "call:"];
|
|
10
|
+
const TWO_DIGIT_CODES = /* @__PURE__ */ new Set([
|
|
11
|
+
"20",
|
|
12
|
+
"27",
|
|
13
|
+
"30",
|
|
14
|
+
"31",
|
|
15
|
+
"32",
|
|
16
|
+
"33",
|
|
17
|
+
"34",
|
|
18
|
+
"36",
|
|
19
|
+
"39",
|
|
20
|
+
"40",
|
|
21
|
+
"41",
|
|
22
|
+
"43",
|
|
23
|
+
"44",
|
|
24
|
+
"45",
|
|
25
|
+
"46",
|
|
26
|
+
"47",
|
|
27
|
+
"48",
|
|
28
|
+
"49",
|
|
29
|
+
"51",
|
|
30
|
+
"52",
|
|
31
|
+
"53",
|
|
32
|
+
"54",
|
|
33
|
+
"55",
|
|
34
|
+
"56",
|
|
35
|
+
"57",
|
|
36
|
+
"58",
|
|
37
|
+
"60",
|
|
38
|
+
"61",
|
|
39
|
+
"62",
|
|
40
|
+
"63",
|
|
41
|
+
"64",
|
|
42
|
+
"65",
|
|
43
|
+
"66",
|
|
44
|
+
"81",
|
|
45
|
+
"82",
|
|
46
|
+
"84",
|
|
47
|
+
"86",
|
|
48
|
+
"90",
|
|
49
|
+
"91",
|
|
50
|
+
"92",
|
|
51
|
+
"93",
|
|
52
|
+
"94",
|
|
53
|
+
"95",
|
|
54
|
+
"98"
|
|
55
|
+
]);
|
|
56
|
+
const LEADING_ZERO_SIGNIFICANT = /* @__PURE__ */ new Set(["39"]);
|
|
57
|
+
const SCAN = /(?:(?:\+|00)\d{1,3}[\s-]\(?\d{1,4}\)?[\s-]?\d[\d\s-]{5,12}\d)|(?:(?:\+|00)\d{7,15})|(?:0\d{1,3}[\s-]?\d[\d\s-]{5,10}\d)/g;
|
|
58
|
+
class PhoneNumber {
|
|
59
|
+
static typeInfo = Object.freeze({
|
|
60
|
+
englishName: "Phone Number",
|
|
61
|
+
localizedName: "Telefonnummer",
|
|
62
|
+
emoji: "\u{1F4DE}",
|
|
63
|
+
sources: Object.freeze([
|
|
64
|
+
"https://pts.se/",
|
|
65
|
+
"https://www.itu.int/rec/T-REC-E.164/",
|
|
66
|
+
"https://en.wikipedia.org/wiki/E.164"
|
|
67
|
+
])
|
|
68
|
+
});
|
|
69
|
+
digits;
|
|
70
|
+
countryCallingCode;
|
|
71
|
+
country;
|
|
72
|
+
isSwedish;
|
|
73
|
+
isMobile;
|
|
74
|
+
constructor(digits, isSwedish, isMobile) {
|
|
75
|
+
this.digits = digits;
|
|
76
|
+
this.isSwedish = isSwedish;
|
|
77
|
+
this.isMobile = isMobile;
|
|
78
|
+
this.countryCallingCode = PhoneCallingCode.fromResolvedDigits(resolveCallingCode(digits));
|
|
79
|
+
this.country = Country.tryFindByCallingCode(this.countryCallingCode.value);
|
|
80
|
+
}
|
|
81
|
+
get isSwedishTestPhoneNumber() {
|
|
82
|
+
if (!this.isSwedish) return false;
|
|
83
|
+
const local = this.digits.slice(4);
|
|
84
|
+
return isInPtsRange(local, "7017406", 5, 99) || isInPtsRange(local, "3139006", 0, 99) || isInPtsRange(local, "4062804", 0, 99) || isInPtsRange(local, "8465004", 0, 99) || isInPtsRange(local, "9803192", 0, 99);
|
|
85
|
+
}
|
|
86
|
+
get formatted() {
|
|
87
|
+
return this.isSwedish ? this.toLocalString() : this.toDisplayInternationalString();
|
|
88
|
+
}
|
|
89
|
+
static tryParse(input, defaultCallingCode) {
|
|
90
|
+
if (input == null || input.trim() === "") return null;
|
|
91
|
+
const dcc = resolveDefaultCallingCode(defaultCallingCode);
|
|
92
|
+
if (!dcc) return null;
|
|
93
|
+
let cleaned = sanitizeInput(input).trim();
|
|
94
|
+
if (cleaned.length > MAX_INPUT_LENGTH) return null;
|
|
95
|
+
for (const prefix of URI_PREFIXES) {
|
|
96
|
+
if (cleaned.toLowerCase().startsWith(prefix)) {
|
|
97
|
+
cleaned = cleaned.slice(prefix.length).trimStart();
|
|
98
|
+
break;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
const hasPlus = cleaned.startsWith("+");
|
|
102
|
+
const withOAs0 = cleaned.replace(/O/g, "0");
|
|
103
|
+
const digitsOnly = withOAs0.replace(/[^\d]/g, "");
|
|
104
|
+
if (digitsOnly === "") return null;
|
|
105
|
+
let e164;
|
|
106
|
+
if (hasPlus) {
|
|
107
|
+
if (digitsOnly.length < 7 || digitsOnly.length > 15) return null;
|
|
108
|
+
e164 = stripTrunkZeroAfterCallingCode(digitsOnly);
|
|
109
|
+
} else if (digitsOnly.startsWith("00")) {
|
|
110
|
+
const cn = digitsOnly.slice(2);
|
|
111
|
+
if (cn.length < 7 || cn.length > 15) return null;
|
|
112
|
+
e164 = stripTrunkZeroAfterCallingCode(cn);
|
|
113
|
+
} else if (digitsOnly.startsWith(dcc) && digitsOnly.length >= dcc.length + 7) {
|
|
114
|
+
const subscriber = digitsOnly.slice(dcc.length);
|
|
115
|
+
e164 = dcc + stripSingleTrunkZero(dcc, subscriber);
|
|
116
|
+
} else if (digitsOnly.startsWith("0")) {
|
|
117
|
+
const subscriber = stripSingleTrunkZero(dcc, digitsOnly);
|
|
118
|
+
const total = dcc.length + subscriber.length;
|
|
119
|
+
if (total < 7 || total > 15) return null;
|
|
120
|
+
e164 = dcc + subscriber;
|
|
121
|
+
} else if (dcc === "46" && digitsOnly.length === 9 && digitsOnly.startsWith("7")) {
|
|
122
|
+
e164 = "46" + digitsOnly;
|
|
123
|
+
} else {
|
|
124
|
+
return null;
|
|
125
|
+
}
|
|
126
|
+
if (e164.length < 7 || e164.length > 15) return null;
|
|
127
|
+
const isSwedish = e164.startsWith("46");
|
|
128
|
+
if (isSwedish) {
|
|
129
|
+
const local = e164.slice(2);
|
|
130
|
+
if (local.length < 7 || local.length > 9) return null;
|
|
131
|
+
}
|
|
132
|
+
const isMobile = isSwedish && e164.slice(2).startsWith("7");
|
|
133
|
+
return new PhoneNumber("00" + e164, isSwedish, isMobile);
|
|
134
|
+
}
|
|
135
|
+
static parse(input, defaultCallingCode) {
|
|
136
|
+
const r = PhoneNumber.tryParse(input, defaultCallingCode);
|
|
137
|
+
if (r === null) throw new Error("Invalid phone number.");
|
|
138
|
+
return r;
|
|
139
|
+
}
|
|
140
|
+
static isValid(input, defaultCallingCode) {
|
|
141
|
+
return PhoneNumber.tryParse(input, defaultCallingCode) !== null;
|
|
142
|
+
}
|
|
143
|
+
static format(input, options) {
|
|
144
|
+
const dcc = resolveDefaultCallingCode(options?.defaultCallingCode) ?? PrimitivesDefaults.defaultCallingCode;
|
|
145
|
+
const r = PhoneNumber.tryParse(input, dcc);
|
|
146
|
+
if (r) {
|
|
147
|
+
return r.countryCallingCode.value === dcc ? r.toLocalString() : r.toDisplayInternationalString();
|
|
148
|
+
}
|
|
149
|
+
if (options?.fallbackToTrimmedInputWhenInvalid && input != null && input.trim() !== "") {
|
|
150
|
+
return input.trim();
|
|
151
|
+
}
|
|
152
|
+
return null;
|
|
153
|
+
}
|
|
154
|
+
static normalize(input, options) {
|
|
155
|
+
const r = PhoneNumber.tryParse(input, options?.defaultCallingCode);
|
|
156
|
+
if (r) return r.digits;
|
|
157
|
+
if (options?.fallbackToTrimmedInputWhenInvalid && input != null) {
|
|
158
|
+
const t = input.trim();
|
|
159
|
+
return t.length > 0 ? t : null;
|
|
160
|
+
}
|
|
161
|
+
return null;
|
|
162
|
+
}
|
|
163
|
+
static isNormalized(input) {
|
|
164
|
+
return input != null && PhoneNumber.normalize(input) === input;
|
|
165
|
+
}
|
|
166
|
+
static findCandidatesInText(text) {
|
|
167
|
+
if (!text) return [];
|
|
168
|
+
const out = [];
|
|
169
|
+
SCAN.lastIndex = 0;
|
|
170
|
+
let m;
|
|
171
|
+
while ((m = SCAN.exec(text)) !== null) {
|
|
172
|
+
const phone = PhoneNumber.tryParse(m[0]);
|
|
173
|
+
if (!phone) continue;
|
|
174
|
+
out.push(
|
|
175
|
+
new TextCandidate({
|
|
176
|
+
startIndex: m.index,
|
|
177
|
+
length: m[0].length,
|
|
178
|
+
originalText: m[0],
|
|
179
|
+
typeName: "PhoneNumber",
|
|
180
|
+
category: TextCandidateCategory.Contact,
|
|
181
|
+
normalizedForm: phone.toNormalizedString(),
|
|
182
|
+
formattedForm: phone.toString(),
|
|
183
|
+
maskedForm: maskPhoneNumber(phone),
|
|
184
|
+
confidence: TextMatchConfidence.Medium,
|
|
185
|
+
value: phone
|
|
186
|
+
})
|
|
187
|
+
);
|
|
188
|
+
}
|
|
189
|
+
return out;
|
|
190
|
+
}
|
|
191
|
+
toNormalizedString() {
|
|
192
|
+
return this.digits;
|
|
193
|
+
}
|
|
194
|
+
toLocalString(defaultCallingCode) {
|
|
195
|
+
if (defaultCallingCode) {
|
|
196
|
+
const dcc = defaultCallingCode instanceof PhoneCallingCode ? defaultCallingCode.value : defaultCallingCode.callingCode;
|
|
197
|
+
return this.countryCallingCode.value === dcc ? this.toLocalString() : this.toDisplayInternationalString();
|
|
198
|
+
}
|
|
199
|
+
const subscriber = this.digits.slice(2 + this.countryCallingCode.value.length);
|
|
200
|
+
if (this.isSwedish) return formatSwedishLocal("0" + subscriber);
|
|
201
|
+
return "0" + subscriber;
|
|
202
|
+
}
|
|
203
|
+
toE164String() {
|
|
204
|
+
return "+" + this.digits.slice(2);
|
|
205
|
+
}
|
|
206
|
+
toInternationalString() {
|
|
207
|
+
return this.toE164String();
|
|
208
|
+
}
|
|
209
|
+
toDisplayInternationalString() {
|
|
210
|
+
const subscriber = this.digits.slice(2 + this.countryCallingCode.value.length);
|
|
211
|
+
return "+" + this.countryCallingCode.value + " " + formatInternationalSubscriberDigits(this.countryCallingCode.value, subscriber);
|
|
212
|
+
}
|
|
213
|
+
toString() {
|
|
214
|
+
return this.formatted;
|
|
215
|
+
}
|
|
216
|
+
equals(other) {
|
|
217
|
+
return other != null && this.digits === other.digits;
|
|
218
|
+
}
|
|
219
|
+
compareTo(other) {
|
|
220
|
+
if (other == null) return 1;
|
|
221
|
+
return this.digits < other.digits ? -1 : this.digits > other.digits ? 1 : 0;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
function maskPhoneNumber(p) {
|
|
225
|
+
const f = p.toE164String();
|
|
226
|
+
if (f.length <= 5) return f.replace(/\d/g, "*");
|
|
227
|
+
const cc = "+" + p.countryCallingCode.value;
|
|
228
|
+
const subscriber = f.slice(cc.length);
|
|
229
|
+
if (subscriber.length <= 4) return cc + "*".repeat(subscriber.length);
|
|
230
|
+
return cc + "*".repeat(subscriber.length - 4) + subscriber.slice(-4);
|
|
231
|
+
}
|
|
232
|
+
function resolveDefaultCallingCode(d) {
|
|
233
|
+
if (d == null) return PrimitivesDefaults.defaultCallingCode;
|
|
234
|
+
if (typeof d === "string") return d;
|
|
235
|
+
if (d instanceof PhoneCallingCode) return d.value;
|
|
236
|
+
return d.callingCode;
|
|
237
|
+
}
|
|
238
|
+
function resolveCallingCode(digits) {
|
|
239
|
+
return resolveCallingCodeFromE164(digits.slice(2));
|
|
240
|
+
}
|
|
241
|
+
function resolveCallingCodeFromE164(e164) {
|
|
242
|
+
if (e164.length === 0) return "";
|
|
243
|
+
if (e164[0] === "1" || e164[0] === "7") return e164.slice(0, 1);
|
|
244
|
+
if (e164.length >= 2 && TWO_DIGIT_CODES.has(e164.slice(0, 2))) return e164.slice(0, 2);
|
|
245
|
+
return e164.length >= 3 ? e164.slice(0, 3) : e164;
|
|
246
|
+
}
|
|
247
|
+
function stripTrunkZeroAfterCallingCode(e164) {
|
|
248
|
+
const cc = resolveCallingCodeFromE164(e164);
|
|
249
|
+
if (cc.length === 0 || cc.length >= e164.length) return e164;
|
|
250
|
+
const subscriber = e164.slice(cc.length);
|
|
251
|
+
return cc + stripSingleTrunkZero(cc, subscriber);
|
|
252
|
+
}
|
|
253
|
+
function stripSingleTrunkZero(callingCode, subscriber) {
|
|
254
|
+
if (subscriber.length === 0 || subscriber[0] !== "0") return subscriber;
|
|
255
|
+
if (LEADING_ZERO_SIGNIFICANT.has(callingCode)) return subscriber;
|
|
256
|
+
return subscriber.slice(1);
|
|
257
|
+
}
|
|
258
|
+
function isInPtsRange(local, prefix, from, to) {
|
|
259
|
+
if (!local.startsWith(prefix)) return false;
|
|
260
|
+
const suffix = local.slice(prefix.length);
|
|
261
|
+
if (suffix.length !== 2) return false;
|
|
262
|
+
const n = parseInt(suffix, 10);
|
|
263
|
+
return Number.isFinite(n) && n >= from && n <= to;
|
|
264
|
+
}
|
|
265
|
+
function formatInternationalSubscriberDigits(callingCode, digits) {
|
|
266
|
+
if (callingCode === "1" && digits.length === 10) {
|
|
267
|
+
return `${digits.slice(0, 3)} ${digits.slice(3, 6)} ${digits.slice(6, 10)}`;
|
|
268
|
+
}
|
|
269
|
+
switch (digits.length) {
|
|
270
|
+
case 7:
|
|
271
|
+
return `${digits.slice(0, 3)} ${digits.slice(3, 5)} ${digits.slice(5, 7)}`;
|
|
272
|
+
case 8:
|
|
273
|
+
return `${digits.slice(0, 2)} ${digits.slice(2, 4)} ${digits.slice(4, 6)} ${digits.slice(6, 8)}`;
|
|
274
|
+
case 9:
|
|
275
|
+
return `${digits.slice(0, 2)} ${digits.slice(2, 5)} ${digits.slice(5, 7)} ${digits.slice(7, 9)}`;
|
|
276
|
+
case 10:
|
|
277
|
+
return `${digits.slice(0, 2)} ${digits.slice(2, 6)} ${digits.slice(6, 10)}`;
|
|
278
|
+
case 11:
|
|
279
|
+
return `${digits.slice(0, 3)} ${digits.slice(3, 7)} ${digits.slice(7, 11)}`;
|
|
280
|
+
default:
|
|
281
|
+
return digits;
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
function formatSwedishLocal(number) {
|
|
285
|
+
const digits = number.replace(/^0+/, "");
|
|
286
|
+
if (digits.length === 9) {
|
|
287
|
+
return `0${digits.slice(0, 3)}-${digits.slice(3, 5)} ${digits.slice(5, 7)} ${digits.slice(7, 9)}`;
|
|
288
|
+
}
|
|
289
|
+
if (digits.length === 7) {
|
|
290
|
+
const area = digits.slice(0, 1);
|
|
291
|
+
const rest = digits.slice(1);
|
|
292
|
+
return `0${area}-${rest.slice(0, 2)} ${rest.slice(2, 4)} ${rest.slice(4, 6)}`;
|
|
293
|
+
}
|
|
294
|
+
if (digits.length === 8) {
|
|
295
|
+
const area = digits.slice(0, 1);
|
|
296
|
+
const rest = digits.slice(1);
|
|
297
|
+
return `0${area}-${rest.slice(0, 2)} ${rest.slice(2, 4)} ${rest.slice(4, 7)}`;
|
|
298
|
+
}
|
|
299
|
+
return number;
|
|
300
|
+
}
|
|
301
|
+
export {
|
|
302
|
+
PhoneNumber,
|
|
303
|
+
maskPhoneNumber
|
|
304
|
+
};
|
|
305
|
+
//# sourceMappingURL=phone-number.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/contact/phone-number.ts"],
|
|
4
|
+
"sourcesContent": ["import { PrimitiveTypeInfo } from \"../primitive-type-info.js\";\nimport { PrimitivesDefaults } from \"../primitives-defaults.js\";\nimport { sanitizeInput } from \"../internal/input-sanitization.js\";\nimport { TextCandidateCategory } from \"../text-scanning/text-candidate-category.js\";\nimport { TextCandidate } from \"../text-scanning/text-candidate.js\";\nimport { TextMatchConfidence } from \"../text-scanning/text-match-confidence.js\";\nimport { Country } from \"../geography/index.js\";\nimport { PhoneCallingCode } from \"./phone-calling-code.js\";\n\nconst MAX_INPUT_LENGTH = 50;\nconst URI_PREFIXES = [\"callto:\", \"tel:\", \"sms:\", \"call:\"];\n\nconst TWO_DIGIT_CODES = new Set([\n \"20\",\n \"27\",\n \"30\",\n \"31\",\n \"32\",\n \"33\",\n \"34\",\n \"36\",\n \"39\",\n \"40\",\n \"41\",\n \"43\",\n \"44\",\n \"45\",\n \"46\",\n \"47\",\n \"48\",\n \"49\",\n \"51\",\n \"52\",\n \"53\",\n \"54\",\n \"55\",\n \"56\",\n \"57\",\n \"58\",\n \"60\",\n \"61\",\n \"62\",\n \"63\",\n \"64\",\n \"65\",\n \"66\",\n \"81\",\n \"82\",\n \"84\",\n \"86\",\n \"90\",\n \"91\",\n \"92\",\n \"93\",\n \"94\",\n \"95\",\n \"98\",\n]);\n\nconst LEADING_ZERO_SIGNIFICANT = new Set([\"39\"]);\n\nconst SCAN =\n /(?:(?:\\+|00)\\d{1,3}[\\s-]\\(?\\d{1,4}\\)?[\\s-]?\\d[\\d\\s-]{5,12}\\d)|(?:(?:\\+|00)\\d{7,15})|(?:0\\d{1,3}[\\s-]?\\d[\\d\\s-]{5,10}\\d)/g;\n\n/**\n * A phone number (`telefonnummer`). Stored normalized as `00` + country code +\n * subscriber digits (e.g. `0046701740633`). Use {@link toE164String} for the\n * `+`-prefixed E.164 form.\n */\nexport class PhoneNumber {\n static readonly typeInfo: PrimitiveTypeInfo = Object.freeze({\n englishName: \"Phone Number\",\n localizedName: \"Telefonnummer\",\n emoji: \"\\u{1F4DE}\",\n sources: Object.freeze([\n \"https://pts.se/\",\n \"https://www.itu.int/rec/T-REC-E.164/\",\n \"https://en.wikipedia.org/wiki/E.164\",\n ]),\n });\n\n readonly digits: string;\n readonly countryCallingCode: PhoneCallingCode;\n readonly country: Country | null;\n readonly isSwedish: boolean;\n readonly isMobile: boolean;\n\n private constructor(digits: string, isSwedish: boolean, isMobile: boolean) {\n this.digits = digits;\n this.isSwedish = isSwedish;\n this.isMobile = isMobile;\n this.countryCallingCode = PhoneCallingCode.fromResolvedDigits(resolveCallingCode(digits));\n this.country = Country.tryFindByCallingCode(this.countryCallingCode.value);\n }\n\n get isSwedishTestPhoneNumber(): boolean {\n if (!this.isSwedish) return false;\n const local = this.digits.slice(4);\n return (\n isInPtsRange(local, \"7017406\", 5, 99) ||\n isInPtsRange(local, \"3139006\", 0, 99) ||\n isInPtsRange(local, \"4062804\", 0, 99) ||\n isInPtsRange(local, \"8465004\", 0, 99) ||\n isInPtsRange(local, \"9803192\", 0, 99)\n );\n }\n\n get formatted(): string {\n return this.isSwedish ? this.toLocalString() : this.toDisplayInternationalString();\n }\n\n static tryParse(\n input: string | null | undefined,\n defaultCallingCode?: string | PhoneCallingCode | Country | null,\n ): PhoneNumber | null {\n if (input == null || input.trim() === \"\") return null;\n const dcc = resolveDefaultCallingCode(defaultCallingCode);\n if (!dcc) return null;\n\n let cleaned = sanitizeInput(input).trim();\n if (cleaned.length > MAX_INPUT_LENGTH) return null;\n\n for (const prefix of URI_PREFIXES) {\n if (cleaned.toLowerCase().startsWith(prefix)) {\n cleaned = cleaned.slice(prefix.length).trimStart();\n break;\n }\n }\n\n const hasPlus = cleaned.startsWith(\"+\");\n const withOAs0 = cleaned.replace(/O/g, \"0\");\n const digitsOnly = withOAs0.replace(/[^\\d]/g, \"\");\n if (digitsOnly === \"\") return null;\n\n let e164: string;\n if (hasPlus) {\n if (digitsOnly.length < 7 || digitsOnly.length > 15) return null;\n e164 = stripTrunkZeroAfterCallingCode(digitsOnly);\n } else if (digitsOnly.startsWith(\"00\")) {\n const cn = digitsOnly.slice(2);\n if (cn.length < 7 || cn.length > 15) return null;\n e164 = stripTrunkZeroAfterCallingCode(cn);\n } else if (digitsOnly.startsWith(dcc) && digitsOnly.length >= dcc.length + 7) {\n const subscriber = digitsOnly.slice(dcc.length);\n e164 = dcc + stripSingleTrunkZero(dcc, subscriber);\n } else if (digitsOnly.startsWith(\"0\")) {\n const subscriber = stripSingleTrunkZero(dcc, digitsOnly);\n const total = dcc.length + subscriber.length;\n if (total < 7 || total > 15) return null;\n e164 = dcc + subscriber;\n } else if (dcc === \"46\" && digitsOnly.length === 9 && digitsOnly.startsWith(\"7\")) {\n e164 = \"46\" + digitsOnly;\n } else {\n return null;\n }\n\n if (e164.length < 7 || e164.length > 15) return null;\n const isSwedish = e164.startsWith(\"46\");\n if (isSwedish) {\n const local = e164.slice(2);\n if (local.length < 7 || local.length > 9) return null;\n }\n const isMobile = isSwedish && e164.slice(2).startsWith(\"7\");\n return new PhoneNumber(\"00\" + e164, isSwedish, isMobile);\n }\n\n static parse(\n input: string,\n defaultCallingCode?: string | PhoneCallingCode | Country | null,\n ): PhoneNumber {\n const r = PhoneNumber.tryParse(input, defaultCallingCode);\n if (r === null) throw new Error(\"Invalid phone number.\");\n return r;\n }\n\n static isValid(\n input: string | null | undefined,\n defaultCallingCode?: string | PhoneCallingCode | Country | null,\n ): boolean {\n return PhoneNumber.tryParse(input, defaultCallingCode) !== null;\n }\n\n static format(\n input: string | null | undefined,\n options?: {\n defaultCallingCode?: string | PhoneCallingCode | Country | null;\n fallbackToTrimmedInputWhenInvalid?: boolean;\n },\n ): string | null {\n const dcc =\n resolveDefaultCallingCode(options?.defaultCallingCode) ??\n PrimitivesDefaults.defaultCallingCode;\n const r = PhoneNumber.tryParse(input, dcc);\n if (r) {\n return r.countryCallingCode.value === dcc\n ? r.toLocalString()\n : r.toDisplayInternationalString();\n }\n if (options?.fallbackToTrimmedInputWhenInvalid && input != null && input.trim() !== \"\") {\n return input.trim();\n }\n return null;\n }\n\n static normalize(\n input: string | null | undefined,\n options?: {\n defaultCallingCode?: string | PhoneCallingCode | Country | null;\n fallbackToTrimmedInputWhenInvalid?: boolean;\n },\n ): string | null {\n const r = PhoneNumber.tryParse(input, options?.defaultCallingCode);\n if (r) return r.digits;\n if (options?.fallbackToTrimmedInputWhenInvalid && input != null) {\n const t = input.trim();\n return t.length > 0 ? t : null;\n }\n return null;\n }\n\n static isNormalized(input: string | null | undefined): boolean {\n return input != null && PhoneNumber.normalize(input) === input;\n }\n\n static findCandidatesInText(text: string): readonly TextCandidate<PhoneNumber>[] {\n if (!text) return [];\n const out: TextCandidate<PhoneNumber>[] = [];\n SCAN.lastIndex = 0;\n let m: RegExpExecArray | null;\n while ((m = SCAN.exec(text)) !== null) {\n const phone = PhoneNumber.tryParse(m[0]);\n if (!phone) continue;\n out.push(\n new TextCandidate<PhoneNumber>({\n startIndex: m.index,\n length: m[0].length,\n originalText: m[0],\n typeName: \"PhoneNumber\",\n category: TextCandidateCategory.Contact,\n normalizedForm: phone.toNormalizedString(),\n formattedForm: phone.toString(),\n maskedForm: maskPhoneNumber(phone),\n confidence: TextMatchConfidence.Medium,\n value: phone,\n }),\n );\n }\n return out;\n }\n\n toNormalizedString(): string {\n return this.digits;\n }\n\n toLocalString(defaultCallingCode?: PhoneCallingCode | Country): string {\n if (defaultCallingCode) {\n const dcc =\n defaultCallingCode instanceof PhoneCallingCode\n ? defaultCallingCode.value\n : defaultCallingCode.callingCode;\n return this.countryCallingCode.value === dcc\n ? this.toLocalString()\n : this.toDisplayInternationalString();\n }\n const subscriber = this.digits.slice(2 + this.countryCallingCode.value.length);\n if (this.isSwedish) return formatSwedishLocal(\"0\" + subscriber);\n return \"0\" + subscriber;\n }\n\n toE164String(): string {\n return \"+\" + this.digits.slice(2);\n }\n toInternationalString(): string {\n return this.toE164String();\n }\n\n toDisplayInternationalString(): string {\n const subscriber = this.digits.slice(2 + this.countryCallingCode.value.length);\n return (\n \"+\" +\n this.countryCallingCode.value +\n \" \" +\n formatInternationalSubscriberDigits(this.countryCallingCode.value, subscriber)\n );\n }\n\n toString(): string {\n return this.formatted;\n }\n\n equals(other: PhoneNumber | null | undefined): boolean {\n return other != null && this.digits === other.digits;\n }\n compareTo(other: PhoneNumber | null | undefined): number {\n if (other == null) return 1;\n return this.digits < other.digits ? -1 : this.digits > other.digits ? 1 : 0;\n }\n}\n\n/** Mask a phone number, keeping country code and last 4 digits visible. */\nexport function maskPhoneNumber(p: PhoneNumber): string {\n const f = p.toE164String();\n if (f.length <= 5) return f.replace(/\\d/g, \"*\");\n const cc = \"+\" + p.countryCallingCode.value;\n const subscriber = f.slice(cc.length);\n if (subscriber.length <= 4) return cc + \"*\".repeat(subscriber.length);\n return cc + \"*\".repeat(subscriber.length - 4) + subscriber.slice(-4);\n}\n\nfunction resolveDefaultCallingCode(\n d: string | PhoneCallingCode | Country | null | undefined,\n): string | null {\n if (d == null) return PrimitivesDefaults.defaultCallingCode;\n if (typeof d === \"string\") return d;\n if (d instanceof PhoneCallingCode) return d.value;\n return d.callingCode;\n}\n\nfunction resolveCallingCode(digits: string): string {\n return resolveCallingCodeFromE164(digits.slice(2));\n}\n\nfunction resolveCallingCodeFromE164(e164: string): string {\n if (e164.length === 0) return \"\";\n if (e164[0] === \"1\" || e164[0] === \"7\") return e164.slice(0, 1);\n if (e164.length >= 2 && TWO_DIGIT_CODES.has(e164.slice(0, 2))) return e164.slice(0, 2);\n return e164.length >= 3 ? e164.slice(0, 3) : e164;\n}\n\nfunction stripTrunkZeroAfterCallingCode(e164: string): string {\n const cc = resolveCallingCodeFromE164(e164);\n if (cc.length === 0 || cc.length >= e164.length) return e164;\n const subscriber = e164.slice(cc.length);\n return cc + stripSingleTrunkZero(cc, subscriber);\n}\n\nfunction stripSingleTrunkZero(callingCode: string, subscriber: string): string {\n if (subscriber.length === 0 || subscriber[0] !== \"0\") return subscriber;\n if (LEADING_ZERO_SIGNIFICANT.has(callingCode)) return subscriber;\n return subscriber.slice(1);\n}\n\nfunction isInPtsRange(local: string, prefix: string, from: number, to: number): boolean {\n if (!local.startsWith(prefix)) return false;\n const suffix = local.slice(prefix.length);\n if (suffix.length !== 2) return false;\n const n = parseInt(suffix, 10);\n return Number.isFinite(n) && n >= from && n <= to;\n}\n\nfunction formatInternationalSubscriberDigits(callingCode: string, digits: string): string {\n if (callingCode === \"1\" && digits.length === 10) {\n return `${digits.slice(0, 3)} ${digits.slice(3, 6)} ${digits.slice(6, 10)}`;\n }\n switch (digits.length) {\n case 7:\n return `${digits.slice(0, 3)} ${digits.slice(3, 5)} ${digits.slice(5, 7)}`;\n case 8:\n return `${digits.slice(0, 2)} ${digits.slice(2, 4)} ${digits.slice(4, 6)} ${digits.slice(6, 8)}`;\n case 9:\n return `${digits.slice(0, 2)} ${digits.slice(2, 5)} ${digits.slice(5, 7)} ${digits.slice(7, 9)}`;\n case 10:\n return `${digits.slice(0, 2)} ${digits.slice(2, 6)} ${digits.slice(6, 10)}`;\n case 11:\n return `${digits.slice(0, 3)} ${digits.slice(3, 7)} ${digits.slice(7, 11)}`;\n default:\n return digits;\n }\n}\n\nfunction formatSwedishLocal(number: string): string {\n const digits = number.replace(/^0+/, \"\");\n if (digits.length === 9) {\n return `0${digits.slice(0, 3)}-${digits.slice(3, 5)} ${digits.slice(5, 7)} ${digits.slice(7, 9)}`;\n }\n if (digits.length === 7) {\n const area = digits.slice(0, 1);\n const rest = digits.slice(1);\n return `0${area}-${rest.slice(0, 2)} ${rest.slice(2, 4)} ${rest.slice(4, 6)}`;\n }\n if (digits.length === 8) {\n const area = digits.slice(0, 1);\n const rest = digits.slice(1);\n return `0${area}-${rest.slice(0, 2)} ${rest.slice(2, 4)} ${rest.slice(4, 7)}`;\n }\n return number;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { Country } from "../geography/index.js";
|
|
2
|
+
import * as A from "./country-addresses.js";
|
|
3
|
+
import { registerCountryAddress } from "./country-address-registry.js";
|
|
4
|
+
import { SwedishAddress } from "./swedish-address.js";
|
|
5
|
+
import { SwedishAddressZipCode } from "./swedish-address-zip-code.js";
|
|
6
|
+
let registered = false;
|
|
7
|
+
function registerDefaultCountryAddresses() {
|
|
8
|
+
if (registered) return;
|
|
9
|
+
registered = true;
|
|
10
|
+
registerCountryAddress({
|
|
11
|
+
country: Country.Sweden,
|
|
12
|
+
tryWrap: (address) => SwedishAddress.tryWrap(address),
|
|
13
|
+
formatZip: (value) => SwedishAddressZipCode.format(value)
|
|
14
|
+
});
|
|
15
|
+
for (const countryAddress of [
|
|
16
|
+
A.NorwegianAddress,
|
|
17
|
+
A.FinnishAddress,
|
|
18
|
+
A.DanishAddress,
|
|
19
|
+
A.GermanAddress,
|
|
20
|
+
A.PolishAddress,
|
|
21
|
+
A.EstonianAddress,
|
|
22
|
+
A.LithuanianAddress,
|
|
23
|
+
A.RomanianAddress,
|
|
24
|
+
A.BulgarianAddress,
|
|
25
|
+
A.LatvianAddress,
|
|
26
|
+
A.CzechAddress,
|
|
27
|
+
A.SpanishAddress,
|
|
28
|
+
A.DutchAddress,
|
|
29
|
+
A.GreekAddress,
|
|
30
|
+
A.ItalianAddress,
|
|
31
|
+
A.SlovenianAddress,
|
|
32
|
+
A.CroatianAddress,
|
|
33
|
+
A.PortugueseAddress,
|
|
34
|
+
A.HungarianAddress,
|
|
35
|
+
A.FrenchAddress,
|
|
36
|
+
A.SlovakAddress,
|
|
37
|
+
A.BelgianAddress,
|
|
38
|
+
A.BritishAddress,
|
|
39
|
+
A.AustrianAddress,
|
|
40
|
+
A.CypriotAddress,
|
|
41
|
+
A.IcelandicAddress,
|
|
42
|
+
A.SwissAddress,
|
|
43
|
+
A.IrishAddress,
|
|
44
|
+
A.LuxembourgishAddress,
|
|
45
|
+
A.MalteseAddress,
|
|
46
|
+
A.LiechtensteinAddress
|
|
47
|
+
]) {
|
|
48
|
+
registerCountryAddress({
|
|
49
|
+
country: countryAddress.country,
|
|
50
|
+
tryWrap: (address) => countryAddress.tryWrap(address),
|
|
51
|
+
formatZip: (value) => countryAddress.zipCodeType.format(value)
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
export {
|
|
56
|
+
registerDefaultCountryAddresses
|
|
57
|
+
};
|
|
58
|
+
//# sourceMappingURL=register-default-country-addresses.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/contact/register-default-country-addresses.ts"],
|
|
4
|
+
"sourcesContent": ["import { Country } from \"../geography/index.js\";\nimport * as A from \"./country-addresses.js\";\nimport { registerCountryAddress } from \"./country-address-registry.js\";\nimport { SwedishAddress } from \"./swedish-address.js\";\nimport { SwedishAddressZipCode } from \"./swedish-address-zip-code.js\";\n\nlet registered = false;\n\n/**\n * Registers every built-in country-specific address type so that\n * `Address.asCountryAddress()` and `Address.supportedCountryAddressTypes`\n * resolve them.\n *\n * This is an explicit call rather than module-load side effects because the\n * package declares `sideEffects: false`; a bundler is free to drop a module\n * that is only imported for its side effects.\n */\nexport function registerDefaultCountryAddresses(): void {\n if (registered) return;\n registered = true;\n\n // Sweden first, matching the .NET registry order.\n registerCountryAddress({\n country: Country.Sweden,\n tryWrap: (address) => SwedishAddress.tryWrap(address),\n formatZip: (value) => SwedishAddressZipCode.format(value),\n });\n\n for (const countryAddress of [\n A.NorwegianAddress,\n A.FinnishAddress,\n A.DanishAddress,\n A.GermanAddress,\n A.PolishAddress,\n A.EstonianAddress,\n A.LithuanianAddress,\n A.RomanianAddress,\n A.BulgarianAddress,\n A.LatvianAddress,\n A.CzechAddress,\n A.SpanishAddress,\n A.DutchAddress,\n A.GreekAddress,\n A.ItalianAddress,\n A.SlovenianAddress,\n A.CroatianAddress,\n A.PortugueseAddress,\n A.HungarianAddress,\n A.FrenchAddress,\n A.SlovakAddress,\n A.BelgianAddress,\n A.BritishAddress,\n A.AustrianAddress,\n A.CypriotAddress,\n A.IcelandicAddress,\n A.SwissAddress,\n A.IrishAddress,\n A.LuxembourgishAddress,\n A.MalteseAddress,\n A.LiechtensteinAddress,\n ]) {\n registerCountryAddress({\n country: countryAddress.country,\n tryWrap: (address) => countryAddress.tryWrap(address),\n formatZip: (value) => countryAddress.zipCodeType.format(value),\n });\n }\n}\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,eAAe;AACxB,YAAY,OAAO;AACnB,SAAS,8BAA8B;AACvC,SAAS,sBAAsB;AAC/B,SAAS,6BAA6B;AAEtC,IAAI,aAAa;AAWV,SAAS,kCAAwC;AACtD,MAAI,WAAY;AAChB,eAAa;AAGb,yBAAuB;AAAA,IACrB,SAAS,QAAQ;AAAA,IACjB,SAAS,CAAC,YAAY,eAAe,QAAQ,OAAO;AAAA,IACpD,WAAW,CAAC,UAAU,sBAAsB,OAAO,KAAK;AAAA,EAC1D,CAAC;AAED,aAAW,kBAAkB;AAAA,IAC3B,EAAE;AAAA,IACF,EAAE;AAAA,IACF,EAAE;AAAA,IACF,EAAE;AAAA,IACF,EAAE;AAAA,IACF,EAAE;AAAA,IACF,EAAE;AAAA,IACF,EAAE;AAAA,IACF,EAAE;AAAA,IACF,EAAE;AAAA,IACF,EAAE;AAAA,IACF,EAAE;AAAA,IACF,EAAE;AAAA,IACF,EAAE;AAAA,IACF,EAAE;AAAA,IACF,EAAE;AAAA,IACF,EAAE;AAAA,IACF,EAAE;AAAA,IACF,EAAE;AAAA,IACF,EAAE;AAAA,IACF,EAAE;AAAA,IACF,EAAE;AAAA,IACF,EAAE;AAAA,IACF,EAAE;AAAA,IACF,EAAE;AAAA,IACF,EAAE;AAAA,IACF,EAAE;AAAA,IACF,EAAE;AAAA,IACF,EAAE;AAAA,IACF,EAAE;AAAA,IACF,EAAE;AAAA,EACJ,GAAG;AACD,2BAAuB;AAAA,MACrB,SAAS,eAAe;AAAA,MACxB,SAAS,CAAC,YAAY,eAAe,QAAQ,OAAO;AAAA,MACpD,WAAW,CAAC,UAAU,eAAe,YAAY,OAAO,KAAK;AAAA,IAC/D,CAAC;AAAA,EACH;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { Country } from "../geography/index.js";
|
|
2
|
+
import { AddressZipCode } from "./address-zip-code.js";
|
|
3
|
+
const DIGITS = /^\d{5}$/;
|
|
4
|
+
class SwedishAddressZipCode {
|
|
5
|
+
static typeInfo = Object.freeze({
|
|
6
|
+
englishName: "Swedish Zip Code",
|
|
7
|
+
localizedName: "Svenskt postnummer",
|
|
8
|
+
emoji: "\u{1F1F8}\u{1F1EA}",
|
|
9
|
+
sources: Object.freeze([
|
|
10
|
+
"https://www.postnord.se/",
|
|
11
|
+
"https://sv.wikipedia.org/wiki/Postnummer_i_Sverige"
|
|
12
|
+
])
|
|
13
|
+
});
|
|
14
|
+
value;
|
|
15
|
+
formatted;
|
|
16
|
+
zipCode;
|
|
17
|
+
get country() {
|
|
18
|
+
return Country.Sweden;
|
|
19
|
+
}
|
|
20
|
+
constructor(value, formatted, zipCode) {
|
|
21
|
+
this.value = value;
|
|
22
|
+
this.formatted = formatted;
|
|
23
|
+
this.zipCode = zipCode;
|
|
24
|
+
}
|
|
25
|
+
static tryParse(input) {
|
|
26
|
+
if (input == null || input.trim() === "") return null;
|
|
27
|
+
const digits = [...input].filter((c) => c >= "0" && c <= "9").join("");
|
|
28
|
+
if (!DIGITS.test(digits)) return null;
|
|
29
|
+
const formatted = `${digits.slice(0, 3)} ${digits.slice(3)}`;
|
|
30
|
+
const az = AddressZipCode.tryParse(formatted, { country: Country.Sweden });
|
|
31
|
+
if (az === null) return null;
|
|
32
|
+
return new SwedishAddressZipCode(digits, formatted, az);
|
|
33
|
+
}
|
|
34
|
+
static parse(input) {
|
|
35
|
+
const r = SwedishAddressZipCode.tryParse(input);
|
|
36
|
+
if (r === null) throw new Error("Invalid Swedish zip code. Expected 5-digit format (NNN NN).");
|
|
37
|
+
return r;
|
|
38
|
+
}
|
|
39
|
+
static isValid(input) {
|
|
40
|
+
return SwedishAddressZipCode.tryParse(input) !== null;
|
|
41
|
+
}
|
|
42
|
+
static format(input, options) {
|
|
43
|
+
const r = SwedishAddressZipCode.tryParse(input);
|
|
44
|
+
if (r) return r.formatted;
|
|
45
|
+
if (options?.fallbackToTrimmedInputWhenInvalid && input != null && input.trim() !== "") {
|
|
46
|
+
return input.trim();
|
|
47
|
+
}
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
static normalize(input, options) {
|
|
51
|
+
const r = SwedishAddressZipCode.tryParse(input);
|
|
52
|
+
if (r) return r.value;
|
|
53
|
+
if (options?.fallbackToTrimmedInputWhenInvalid && input != null) {
|
|
54
|
+
const t = input.trim();
|
|
55
|
+
return t.length > 0 ? t : null;
|
|
56
|
+
}
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
static isNormalized(input) {
|
|
60
|
+
return input != null && SwedishAddressZipCode.normalize(input) === input;
|
|
61
|
+
}
|
|
62
|
+
toNormalizedString() {
|
|
63
|
+
return this.value;
|
|
64
|
+
}
|
|
65
|
+
toString() {
|
|
66
|
+
return this.formatted;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
export {
|
|
70
|
+
SwedishAddressZipCode
|
|
71
|
+
};
|
|
72
|
+
//# sourceMappingURL=swedish-address-zip-code.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/contact/swedish-address-zip-code.ts"],
|
|
4
|
+
"sourcesContent": ["import { PrimitiveTypeInfo } from \"../primitive-type-info.js\";\nimport { Country } from \"../geography/index.js\";\nimport { AddressZipCode } from \"./address-zip-code.js\";\n\nconst DIGITS = /^\\d{5}$/;\n\n/** A Swedish postal code (`postnummer`) \u2014 strictly 5 digits, formatted `NNN NN`. */\nexport class SwedishAddressZipCode {\n static readonly typeInfo: PrimitiveTypeInfo = Object.freeze({\n englishName: \"Swedish Zip Code\",\n localizedName: \"Svenskt postnummer\",\n emoji: \"\\u{1F1F8}\\u{1F1EA}\",\n sources: Object.freeze([\n \"https://www.postnord.se/\",\n \"https://sv.wikipedia.org/wiki/Postnummer_i_Sverige\",\n ]),\n });\n\n readonly value: string;\n readonly formatted: string;\n readonly zipCode: AddressZipCode;\n\n get country(): Country {\n return Country.Sweden;\n }\n\n private constructor(value: string, formatted: string, zipCode: AddressZipCode) {\n this.value = value;\n this.formatted = formatted;\n this.zipCode = zipCode;\n }\n\n static tryParse(input: string | null | undefined): SwedishAddressZipCode | null {\n if (input == null || input.trim() === \"\") return null;\n const digits = [...input].filter((c) => c >= \"0\" && c <= \"9\").join(\"\");\n if (!DIGITS.test(digits)) return null;\n const formatted = `${digits.slice(0, 3)} ${digits.slice(3)}`;\n const az = AddressZipCode.tryParse(formatted, { country: Country.Sweden });\n if (az === null) return null;\n return new SwedishAddressZipCode(digits, formatted, az);\n }\n\n static parse(input: string): SwedishAddressZipCode {\n const r = SwedishAddressZipCode.tryParse(input);\n if (r === null) throw new Error(\"Invalid Swedish zip code. Expected 5-digit format (NNN NN).\");\n return r;\n }\n\n static isValid(input: string | null | undefined): boolean {\n return SwedishAddressZipCode.tryParse(input) !== null;\n }\n\n static format(\n input: string | null | undefined,\n options?: { fallbackToTrimmedInputWhenInvalid?: boolean },\n ): string | null {\n const r = SwedishAddressZipCode.tryParse(input);\n if (r) return r.formatted;\n if (options?.fallbackToTrimmedInputWhenInvalid && input != null && input.trim() !== \"\") {\n return input.trim();\n }\n return null;\n }\n\n static normalize(\n input: string | null | undefined,\n options?: { fallbackToTrimmedInputWhenInvalid?: boolean },\n ): string | null {\n const r = SwedishAddressZipCode.tryParse(input);\n if (r) return r.value;\n if (options?.fallbackToTrimmedInputWhenInvalid && input != null) {\n const t = input.trim();\n return t.length > 0 ? t : null;\n }\n return null;\n }\n\n static isNormalized(input: string | null | undefined): boolean {\n return input != null && SwedishAddressZipCode.normalize(input) === input;\n }\n\n toNormalizedString(): string {\n return this.value;\n }\n toString(): string {\n return this.formatted;\n }\n}\n"],
|
|
5
|
+
"mappings": "AACA,SAAS,eAAe;AACxB,SAAS,sBAAsB;AAE/B,MAAM,SAAS;AAGR,MAAM,sBAAsB;AAAA,EACjC,OAAgB,WAA8B,OAAO,OAAO;AAAA,IAC1D,aAAa;AAAA,IACb,eAAe;AAAA,IACf,OAAO;AAAA,IACP,SAAS,OAAO,OAAO;AAAA,MACrB;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AAAA,EAEQ;AAAA,EACA;AAAA,EACA;AAAA,EAET,IAAI,UAAmB;AACrB,WAAO,QAAQ;AAAA,EACjB;AAAA,EAEQ,YAAY,OAAe,WAAmB,SAAyB;AAC7E,SAAK,QAAQ;AACb,SAAK,YAAY;AACjB,SAAK,UAAU;AAAA,EACjB;AAAA,EAEA,OAAO,SAAS,OAAgE;AAC9E,QAAI,SAAS,QAAQ,MAAM,KAAK,MAAM,GAAI,QAAO;AACjD,UAAM,SAAS,CAAC,GAAG,KAAK,EAAE,OAAO,CAAC,MAAM,KAAK,OAAO,KAAK,GAAG,EAAE,KAAK,EAAE;AACrE,QAAI,CAAC,OAAO,KAAK,MAAM,EAAG,QAAO;AACjC,UAAM,YAAY,GAAG,OAAO,MAAM,GAAG,CAAC,CAAC,IAAI,OAAO,MAAM,CAAC,CAAC;AAC1D,UAAM,KAAK,eAAe,SAAS,WAAW,EAAE,SAAS,QAAQ,OAAO,CAAC;AACzE,QAAI,OAAO,KAAM,QAAO;AACxB,WAAO,IAAI,sBAAsB,QAAQ,WAAW,EAAE;AAAA,EACxD;AAAA,EAEA,OAAO,MAAM,OAAsC;AACjD,UAAM,IAAI,sBAAsB,SAAS,KAAK;AAC9C,QAAI,MAAM,KAAM,OAAM,IAAI,MAAM,6DAA6D;AAC7F,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,QAAQ,OAA2C;AACxD,WAAO,sBAAsB,SAAS,KAAK,MAAM;AAAA,EACnD;AAAA,EAEA,OAAO,OACL,OACA,SACe;AACf,UAAM,IAAI,sBAAsB,SAAS,KAAK;AAC9C,QAAI,EAAG,QAAO,EAAE;AAChB,QAAI,SAAS,qCAAqC,SAAS,QAAQ,MAAM,KAAK,MAAM,IAAI;AACtF,aAAO,MAAM,KAAK;AAAA,IACpB;AACA,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,UACL,OACA,SACe;AACf,UAAM,IAAI,sBAAsB,SAAS,KAAK;AAC9C,QAAI,EAAG,QAAO,EAAE;AAChB,QAAI,SAAS,qCAAqC,SAAS,MAAM;AAC/D,YAAM,IAAI,MAAM,KAAK;AACrB,aAAO,EAAE,SAAS,IAAI,IAAI;AAAA,IAC5B;AACA,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,aAAa,OAA2C;AAC7D,WAAO,SAAS,QAAQ,sBAAsB,UAAU,KAAK,MAAM;AAAA,EACrE;AAAA,EAEA,qBAA6B;AAC3B,WAAO,KAAK;AAAA,EACd;AAAA,EACA,WAAmB;AACjB,WAAO,KAAK;AAAA,EACd;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { Country } from "../geography/index.js";
|
|
2
|
+
import { TextCandidateCategory } from "../text-scanning/text-candidate-category.js";
|
|
3
|
+
import { TextCandidate } from "../text-scanning/text-candidate.js";
|
|
4
|
+
import { Address } from "./address.js";
|
|
5
|
+
import { SwedishAddressZipCode } from "./swedish-address-zip-code.js";
|
|
6
|
+
class SwedishAddress {
|
|
7
|
+
static typeInfo = Object.freeze({
|
|
8
|
+
englishName: "Swedish Address",
|
|
9
|
+
localizedName: "Svensk adress",
|
|
10
|
+
emoji: "\u{1F1F8}\u{1F1EA}",
|
|
11
|
+
sources: Object.freeze(["https://www.postnord.se/", "https://www.lantmateriet.se/"])
|
|
12
|
+
});
|
|
13
|
+
street;
|
|
14
|
+
zipCode;
|
|
15
|
+
city;
|
|
16
|
+
address;
|
|
17
|
+
get country() {
|
|
18
|
+
return Country.Sweden;
|
|
19
|
+
}
|
|
20
|
+
/** The zip code as the country-agnostic {@link ICountryAddressZipCode} view. */
|
|
21
|
+
get countryZipCode() {
|
|
22
|
+
return this.zipCode;
|
|
23
|
+
}
|
|
24
|
+
get careOf() {
|
|
25
|
+
return this.street.careOf;
|
|
26
|
+
}
|
|
27
|
+
get postBox() {
|
|
28
|
+
return this.street.postBox;
|
|
29
|
+
}
|
|
30
|
+
get isPostBox() {
|
|
31
|
+
return this.street.isPostBox;
|
|
32
|
+
}
|
|
33
|
+
get apartmentNumber() {
|
|
34
|
+
return this.street.apartmentNumber;
|
|
35
|
+
}
|
|
36
|
+
get value() {
|
|
37
|
+
return this.toNormalizedString();
|
|
38
|
+
}
|
|
39
|
+
get formatted() {
|
|
40
|
+
return this.toString();
|
|
41
|
+
}
|
|
42
|
+
constructor(street, zipCode, city, address) {
|
|
43
|
+
this.street = street;
|
|
44
|
+
this.zipCode = zipCode;
|
|
45
|
+
this.city = city;
|
|
46
|
+
this.address = address;
|
|
47
|
+
}
|
|
48
|
+
static tryParse(arg) {
|
|
49
|
+
const address = typeof arg === "object" && arg !== null ? Address.tryParse(arg) : Address.tryParse(arg);
|
|
50
|
+
if (address === null) return null;
|
|
51
|
+
return SwedishAddress.tryWrap(address);
|
|
52
|
+
}
|
|
53
|
+
static parse(input) {
|
|
54
|
+
const r = SwedishAddress.tryParse(input);
|
|
55
|
+
if (r === null) {
|
|
56
|
+
throw new Error(
|
|
57
|
+
"Invalid Swedish address. Requires street, 5-digit zip code, and city within Sweden."
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
return r;
|
|
61
|
+
}
|
|
62
|
+
static isValid(input) {
|
|
63
|
+
return SwedishAddress.tryParse(input) !== null;
|
|
64
|
+
}
|
|
65
|
+
static format(input, options) {
|
|
66
|
+
const r = SwedishAddress.tryParse(input);
|
|
67
|
+
if (r) return r.toString();
|
|
68
|
+
if (options?.fallbackToTrimmedInputWhenInvalid && input != null && input.trim() !== "") {
|
|
69
|
+
return input.trim();
|
|
70
|
+
}
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
static normalize(input, options) {
|
|
74
|
+
const r = SwedishAddress.tryParse(input);
|
|
75
|
+
if (r) return r.toNormalizedString();
|
|
76
|
+
if (options?.fallbackToTrimmedInputWhenInvalid && input != null) {
|
|
77
|
+
const t = input.trim();
|
|
78
|
+
return t.length > 0 ? t : null;
|
|
79
|
+
}
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
static isNormalized(input) {
|
|
83
|
+
return input != null && SwedishAddress.normalize(input) === input;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Scans unstructured text for potential Swedish addresses.
|
|
87
|
+
*
|
|
88
|
+
* Results are heuristic candidates and can include false positives. Only
|
|
89
|
+
* address candidates with a Swedish zip code and city are returned.
|
|
90
|
+
*/
|
|
91
|
+
static findCandidatesInText(text) {
|
|
92
|
+
if (text.length === 0) return [];
|
|
93
|
+
const results = [];
|
|
94
|
+
for (const candidate of Address.findCandidatesInText(text)) {
|
|
95
|
+
const value = SwedishAddress.tryWrap(candidate.value);
|
|
96
|
+
if (!value) continue;
|
|
97
|
+
results.push(
|
|
98
|
+
new TextCandidate({
|
|
99
|
+
startIndex: candidate.startIndex,
|
|
100
|
+
length: candidate.length,
|
|
101
|
+
originalText: candidate.originalText,
|
|
102
|
+
typeName: "SwedishAddress",
|
|
103
|
+
category: TextCandidateCategory.Contact,
|
|
104
|
+
normalizedForm: value.toNormalizedString(),
|
|
105
|
+
formattedForm: value.toString(),
|
|
106
|
+
maskedForm: candidate.maskedForm,
|
|
107
|
+
confidence: candidate.confidence,
|
|
108
|
+
value
|
|
109
|
+
})
|
|
110
|
+
);
|
|
111
|
+
}
|
|
112
|
+
return results;
|
|
113
|
+
}
|
|
114
|
+
toNormalizedString() {
|
|
115
|
+
return this.address.toNormalizedString();
|
|
116
|
+
}
|
|
117
|
+
toString() {
|
|
118
|
+
const parts = [];
|
|
119
|
+
if (this.careOf) parts.push(`c/o ${this.careOf}`);
|
|
120
|
+
parts.push(this.buildStreetCoreLine());
|
|
121
|
+
parts.push(`${this.zipCode.formatted} ${this.city.value}`);
|
|
122
|
+
return parts.join(", ");
|
|
123
|
+
}
|
|
124
|
+
toMultilineString() {
|
|
125
|
+
const lines = [];
|
|
126
|
+
if (this.careOf) lines.push(`c/o ${this.careOf}`);
|
|
127
|
+
lines.push(this.buildStreetCoreLine());
|
|
128
|
+
lines.push(`${this.zipCode.formatted} ${this.city.value}`);
|
|
129
|
+
return lines.join("\n");
|
|
130
|
+
}
|
|
131
|
+
buildStreetCoreLine() {
|
|
132
|
+
if (this.apartmentNumber) return `${this.street.street} lgh ${this.apartmentNumber}`;
|
|
133
|
+
return this.street.street;
|
|
134
|
+
}
|
|
135
|
+
/** Wraps an already-parsed {@link Address}. Used by the country-address registry. */
|
|
136
|
+
static tryWrap(address) {
|
|
137
|
+
if (address.country && address.country.alpha2Code.toUpperCase() !== "SE") return null;
|
|
138
|
+
if (address.zipCode === null || !address.zipCode.isSwedish) return null;
|
|
139
|
+
if (address.city === null) return null;
|
|
140
|
+
const swedishZip = SwedishAddressZipCode.tryParse(address.zipCode.value);
|
|
141
|
+
if (swedishZip === null) return null;
|
|
142
|
+
const withCountry = address.country !== null ? address : new Address(address.street, address.zipCode, address.city, Country.Sweden);
|
|
143
|
+
return new SwedishAddress(address.street, swedishZip, address.city, withCountry);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
export {
|
|
147
|
+
SwedishAddress
|
|
148
|
+
};
|
|
149
|
+
//# sourceMappingURL=swedish-address.js.map
|