@budiauktioner/buildi-primitives 0.2.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/PARITY.md +7 -7
  3. package/README.md +18 -1
  4. package/dist/cjs/contact/phone-number-test-data.js +1 -1
  5. package/dist/cjs/contact/phone-number-test-data.js.map +1 -1
  6. package/dist/cjs/contact/phone-number.js +36 -14
  7. package/dist/cjs/contact/phone-number.js.map +2 -2
  8. package/dist/cjs/organization/swedish-organization-number.js.map +2 -2
  9. package/dist/cjs/register-default-text-scanners.js +2 -0
  10. package/dist/cjs/register-default-text-scanners.js.map +2 -2
  11. package/dist/cjs/sample-data/index.js +18 -1
  12. package/dist/cjs/sample-data/index.js.map +2 -2
  13. package/dist/cjs/text-scanning/text-scan-result.js +3 -0
  14. package/dist/cjs/text-scanning/text-scan-result.js.map +2 -2
  15. package/dist/cjs/validation/validation-error-reason.js +6 -1
  16. package/dist/cjs/validation/validation-error-reason.js.map +2 -2
  17. package/dist/cjs/vehicle/index.js +4 -0
  18. package/dist/cjs/vehicle/index.js.map +2 -2
  19. package/dist/cjs/vehicle/watercraft-identification-number.js +332 -0
  20. package/dist/cjs/vehicle/watercraft-identification-number.js.map +7 -0
  21. package/dist/esm/contact/phone-number-test-data.js +1 -1
  22. package/dist/esm/contact/phone-number-test-data.js.map +1 -1
  23. package/dist/esm/contact/phone-number.js +36 -14
  24. package/dist/esm/contact/phone-number.js.map +2 -2
  25. package/dist/esm/organization/swedish-organization-number.js.map +2 -2
  26. package/dist/esm/register-default-text-scanners.js +2 -0
  27. package/dist/esm/register-default-text-scanners.js.map +2 -2
  28. package/dist/esm/sample-data/index.js +18 -1
  29. package/dist/esm/sample-data/index.js.map +2 -2
  30. package/dist/esm/text-scanning/text-scan-result.js +3 -0
  31. package/dist/esm/text-scanning/text-scan-result.js.map +2 -2
  32. package/dist/esm/validation/validation-error-reason.js +6 -1
  33. package/dist/esm/validation/validation-error-reason.js.map +2 -2
  34. package/dist/esm/vehicle/index.js +8 -0
  35. package/dist/esm/vehicle/index.js.map +2 -2
  36. package/dist/esm/vehicle/watercraft-identification-number.js +315 -0
  37. package/dist/esm/vehicle/watercraft-identification-number.js.map +7 -0
  38. package/dist/types/banking/index.d.cts +2 -2
  39. package/dist/types/banking/index.d.ts +2 -2
  40. package/dist/types/contact/index.d.cts +1 -1
  41. package/dist/types/contact/index.d.ts +1 -1
  42. package/dist/types/index.d.cts +2 -1
  43. package/dist/types/index.d.ts +2 -1
  44. package/dist/types/sample-data/index.d.cts +10 -2
  45. package/dist/types/sample-data/index.d.ts +10 -2
  46. package/dist/types/text-scanning/index.d.cts +3 -1
  47. package/dist/types/text-scanning/index.d.ts +3 -1
  48. package/dist/types/validation/index.d.cts +4 -0
  49. package/dist/types/validation/index.d.ts +4 -0
  50. package/dist/types/vehicle/index.d.cts +2 -0
  51. package/dist/types/vehicle/index.d.ts +2 -0
  52. package/dist/types/watercraft-identification-number-Db1I2LQM.d.cts +123 -0
  53. package/dist/types/watercraft-identification-number-o8B3C6Nx.d.ts +123 -0
  54. package/package.json +18 -13
  55. package/dist/types/{swedish-swish-number-CL6Gx_h3.d.cts → swedish-swish-number-Bh-UbVoN.d.cts} +136 -136
  56. package/dist/types/{swedish-swish-number-DDG3mNDg.d.ts → swedish-swish-number-C2Wccuyr.d.ts} +136 -136
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/organization/swedish-organization-number.ts"],
4
- "sourcesContent": ["import { PrimitiveTypeInfo } from \"../primitive-type-info.js\";\nimport { keepDigits, sanitizeInput } from \"../internal/input-sanitization.js\";\nimport { luhnIsValid } from \"../internal/luhn.js\";\nimport { TextCandidateCategory } from \"../text-scanning/text-candidate-category.js\";\nimport { TextCandidate } from \"../text-scanning/text-candidate.js\";\nimport { TextMatchConfidence } from \"../text-scanning/text-match-confidence.js\";\nimport { ValidationErrorReason, ValidationResult } from \"../validation/index.js\";\nimport { invalidResult, validResult } from \"../validation/validation-result.js\";\nimport { SwedishPersonalIdentityNumber } from \"../person/swedish-personal-identity-number.js\";\nimport { SwedishCoordinationNumber } from \"../person/swedish-coordination-number.js\";\nimport { SwedishOrganizationName } from \"./swedish-organization-name.js\";\nimport { SwedishOrganizationType } from \"./swedish-organization-type.js\";\n\nconst MAX_INPUT_LENGTH = 30;\nconst LEGAL_ENTITY_PREFIX = \"16\";\n\nexport interface SwedishOrganizationTypeHintResult {\n readonly certain: SwedishOrganizationType;\n readonly bestGuess: SwedishOrganizationType;\n}\n\n/** A Swedish organization number (`organisationsnummer`). */\nexport class SwedishOrganizationNumber {\n static readonly typeInfo: PrimitiveTypeInfo = Object.freeze({\n englishName: \"Organization Number\",\n localizedName: \"Organisationsnummer\",\n emoji: \"\\u{1F3E2}\",\n sources: Object.freeze([\n \"https://bolagsverket.se\",\n \"https://skatteverket.se/foretag/drivaforetag/startaforetag/organisationsnummer.html\",\n \"https://sv.wikipedia.org/wiki/Organisationsnummer\",\n ]),\n });\n\n readonly _tenWithDash: string;\n readonly _twelveDigits: string;\n readonly _isPerson: boolean;\n\n get isPerson(): boolean {\n return this._isPerson;\n }\n\n private constructor(tenWithDash: string, twelveDigits: string, isPerson: boolean) {\n this._tenWithDash = tenWithDash;\n this._twelveDigits = twelveDigits;\n this._isPerson = isPerson;\n }\n\n static tryParse(input: string | null | undefined): SwedishOrganizationNumber | null {\n if (input == null || input.trim() === \"\") return null;\n const sanitized = sanitizeInput(input).trim();\n if (sanitized.length > MAX_INPUT_LENGTH) return null;\n\n const pin = SwedishPersonalIdentityNumber.tryParse(sanitized);\n if (pin) {\n return new SwedishOrganizationNumber(pin.formatted, pin.value, true);\n }\n const cn = SwedishCoordinationNumber.tryParse(sanitized);\n if (cn) {\n return new SwedishOrganizationNumber(cn.formatted, cn.value, true);\n }\n\n const digits = keepDigits(sanitized);\n if (digits.length === 0) return null;\n\n let tenDigits: string;\n if (digits.length === 10) tenDigits = digits;\n else if (digits.length === 12 && digits.startsWith(LEGAL_ENTITY_PREFIX))\n tenDigits = digits.slice(2);\n else return null;\n\n if (!isLegalEntityPattern(tenDigits)) return null;\n if (!luhnIsValid(tenDigits)) return null;\n\n const tenWithDash = `${tenDigits.slice(0, 6)}-${tenDigits.slice(6)}`;\n const twelve = LEGAL_ENTITY_PREFIX + tenDigits;\n return new SwedishOrganizationNumber(tenWithDash, twelve, false);\n }\n\n static parse(input: string): SwedishOrganizationNumber {\n const r = SwedishOrganizationNumber.tryParse(input);\n if (r === null) throw new Error(\"Invalid Swedish organization number.\");\n return r;\n }\n\n static isValid(input: string | null | undefined): boolean {\n return SwedishOrganizationNumber.tryParse(input) !== null;\n }\n\n static format(\n input: string | null | undefined,\n options?: { fallbackToTrimmedInputWhenInvalid?: boolean },\n ): string | null {\n const r = SwedishOrganizationNumber.tryParse(input);\n if (r) return r.to10DigitString();\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 = SwedishOrganizationNumber.tryParse(input);\n if (r) return r.to12DigitString();\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 && SwedishOrganizationNumber.normalize(input) === input;\n }\n\n to10DigitsOnly(): string {\n return this._tenWithDash.replace(/[-+]/g, \"\");\n }\n to10DigitString(): string {\n return this._tenWithDash;\n }\n to12DigitString(): string {\n return this._twelveDigits;\n }\n toNormalizedString(): string {\n return this.to12DigitString();\n }\n toString(): string {\n return this.to10DigitString();\n }\n\n getSwedishOrganizationTypeHint(\n name?: string | null,\n isPrivatePerson?: boolean | null,\n ): SwedishOrganizationTypeHintResult {\n let certain: SwedishOrganizationType;\n let bestGuess: SwedishOrganizationType;\n\n if (this._isPerson) {\n certain = SwedishOrganizationType.EnskildFirmaEllerPrivatperson;\n if (isPrivatePerson === true) bestGuess = SwedishOrganizationType.Privatperson;\n else if (isPrivatePerson === false) bestGuess = SwedishOrganizationType.EnskildFirma;\n else {\n const nameType = SwedishOrganizationName.inferSwedishOrganizationType(name ?? null);\n bestGuess =\n nameType === SwedishOrganizationType.EnskildFirma ||\n nameType === SwedishOrganizationType.Privatperson\n ? nameType\n : certain;\n }\n return { certain, bestGuess };\n }\n\n const first = this.to10DigitsOnly()[0]!;\n const nameType = SwedishOrganizationName.inferSwedishOrganizationType(name ?? null);\n\n switch (first) {\n case \"1\":\n certain = SwedishOrganizationType.Dodsbo;\n bestGuess = certain;\n break;\n case \"2\":\n certain = SwedishOrganizationType.OffentligSektor;\n bestGuess =\n nameType === SwedishOrganizationType.Kommun ||\n nameType === SwedishOrganizationType.Region ||\n nameType === SwedishOrganizationType.Forsamling\n ? nameType\n : certain;\n break;\n case \"5\":\n certain = SwedishOrganizationType.Aktiebolag;\n bestGuess = nameType === SwedishOrganizationType.Kommanditbolag ? nameType : certain;\n break;\n case \"6\":\n certain = SwedishOrganizationType.HandelsbolagEllerKommanditbolag;\n bestGuess =\n nameType === SwedishOrganizationType.Kommanditbolag ||\n nameType === SwedishOrganizationType.Handelsbolag\n ? nameType\n : certain;\n break;\n case \"7\":\n certain = SwedishOrganizationType.EkonomiskForening;\n bestGuess =\n nameType === SwedishOrganizationType.Bostadsrattsforening ||\n nameType === SwedishOrganizationType.Samfallighetsforening\n ? nameType\n : certain;\n break;\n case \"8\":\n certain = SwedishOrganizationType.IdeellForening;\n bestGuess = nameType === SwedishOrganizationType.Stiftelse ? nameType : certain;\n break;\n case \"9\":\n certain = SwedishOrganizationType.HandelsbolagEllerKommanditbolag;\n bestGuess =\n nameType === SwedishOrganizationType.Kommanditbolag ||\n nameType === SwedishOrganizationType.Handelsbolag\n ? nameType\n : certain;\n break;\n default:\n certain = SwedishOrganizationType.Other;\n bestGuess =\n nameType === SwedishOrganizationType.EuropeiskEkonomiskIntressegruppering ||\n nameType === SwedishOrganizationType.Europabolag ||\n nameType === SwedishOrganizationType.SCEForening ||\n nameType === SwedishOrganizationType.Filial\n ? nameType\n : certain;\n break;\n }\n return { certain, bestGuess };\n }\n\n static validate(input: string | null | undefined): ValidationResult {\n if (input == null || input.trim() === \"\") {\n return invalidResult(\n input,\n ValidationErrorReason.InputIsEmpty,\n \"Input is empty or whitespace.\",\n \"V\u00E4rdet \u00E4r tomt.\",\n );\n }\n const sanitized = sanitizeInput(input).trim();\n if (sanitized.length > MAX_INPUT_LENGTH) {\n return invalidResult(\n input,\n ValidationErrorReason.InputTooLong,\n \"Input contains too many characters.\",\n \"V\u00E4rdet inneh\u00E5ller f\u00F6r m\u00E5nga tecken.\",\n );\n }\n if (SwedishPersonalIdentityNumber.tryParse(sanitized)) return validResult(input);\n if (SwedishCoordinationNumber.tryParse(sanitized)) return validResult(input);\n\n const digits = keepDigits(sanitized);\n if (digits.length === 0) {\n return invalidResult(\n input,\n ValidationErrorReason.InvalidFormat,\n \"Input contains no digits.\",\n \"V\u00E4rdet inneh\u00E5ller inga siffror.\",\n );\n }\n if (\n !(digits.length === 10 || (digits.length === 12 && digits.startsWith(LEGAL_ENTITY_PREFIX)))\n ) {\n return invalidResult(\n input,\n ValidationErrorReason.InvalidLength,\n \"Organization number must be 10 or 12 digits (12-digit form must start with 16).\",\n \"Organisationsnummer m\u00E5ste vara 10 eller 12 siffror (12-siffrig form m\u00E5ste b\u00F6rja med 16).\",\n );\n }\n const tenDigits = digits.length === 12 ? digits.slice(2) : digits;\n if (!isLegalEntityPattern(tenDigits)) {\n return invalidResult(\n input,\n ValidationErrorReason.InvalidEntityPattern,\n \"Number does not match a valid organization type pattern.\",\n \"Numret matchar inte ett giltigt organisationstypsm\u00F6nster.\",\n );\n }\n if (!luhnIsValid(tenDigits)) {\n return invalidResult(\n input,\n ValidationErrorReason.InvalidCheckDigit,\n \"Invalid check digit.\",\n \"Ogiltig kontrollsiffra.\",\n );\n }\n return validResult(input);\n }\n\n static findCandidatesInText(text: string): readonly TextCandidate<SwedishOrganizationNumber>[] {\n if (!text) return [];\n const out: TextCandidate<SwedishOrganizationNumber>[] = [];\n const re = /(?<!\\d)(\\d{6})-?(\\d{4})(?!\\d)/g;\n let m: RegExpExecArray | null;\n while ((m = re.exec(text)) !== null) {\n const r = SwedishOrganizationNumber.tryParse(m[0]);\n if (!r || r.isPerson) continue;\n out.push(\n new TextCandidate<SwedishOrganizationNumber>({\n startIndex: m.index,\n length: m[0].length,\n originalText: m[0],\n typeName: \"SwedishOrganizationNumber\",\n category: TextCandidateCategory.OrganizationIdentifier,\n normalizedForm: r.toNormalizedString(),\n formattedForm: r.toString(),\n maskedForm: maskSwedishOrganizationNumber(r),\n confidence: TextMatchConfidence.High,\n value: r,\n }),\n );\n }\n return out;\n }\n\n equals(other: SwedishOrganizationNumber | null | undefined): boolean {\n return other != null && this._twelveDigits === other._twelveDigits;\n }\n compareTo(other: SwedishOrganizationNumber | null | undefined): number {\n if (other == null) return 1;\n return this._twelveDigits < other._twelveDigits\n ? -1\n : this._twelveDigits > other._twelveDigits\n ? 1\n : 0;\n }\n}\n\nfunction isLegalEntityPattern(tenDigits: string): boolean {\n if (tenDigits.length !== 10) return false;\n if (tenDigits[0] === \"1\") return true;\n const first = tenDigits[0]!;\n if (\n first !== \"2\" &&\n first !== \"3\" &&\n first !== \"5\" &&\n first !== \"6\" &&\n first !== \"7\" &&\n first !== \"8\" &&\n first !== \"9\"\n )\n return false;\n const m1 = tenDigits.charCodeAt(2) - 0x30;\n const m2 = tenDigits.charCodeAt(3) - 0x30;\n const mm = m1 * 10 + m2;\n return mm >= 20;\n}\n\n/**\n * Masks person-based Swedish organization identifiers by default.\n * Public legal-entity organization numbers are returned unmasked unless\n * `maskOrganizationNumbers` is set.\n */\nexport function maskSwedishOrganizationNumber(\n o: SwedishOrganizationNumber,\n options?: { maskOrganizationNumbers?: boolean; maskBirthDate?: boolean },\n): string {\n const s = o.to10DigitString();\n if (o.isPerson) {\n const sep = s[6]!;\n if (options?.maskBirthDate) return \"******\" + sep + \"****\";\n return s.slice(0, 6) + sep + \"****\";\n }\n if (options?.maskOrganizationNumbers) return s.slice(0, 7) + \"****\";\n return s;\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { PrimitiveTypeInfo } from \"../primitive-type-info.js\";\nimport { keepDigits, sanitizeInput } from \"../internal/input-sanitization.js\";\nimport { luhnIsValid } from \"../internal/luhn.js\";\nimport { TextCandidateCategory } from \"../text-scanning/text-candidate-category.js\";\nimport { TextCandidate } from \"../text-scanning/text-candidate.js\";\nimport { TextMatchConfidence } from \"../text-scanning/text-match-confidence.js\";\nimport { ValidationErrorReason, ValidationResult } from \"../validation/index.js\";\nimport { invalidResult, validResult } from \"../validation/validation-result.js\";\nimport { SwedishPersonalIdentityNumber } from \"../person/swedish-personal-identity-number.js\";\nimport { SwedishCoordinationNumber } from \"../person/swedish-coordination-number.js\";\nimport { SwedishOrganizationName } from \"./swedish-organization-name.js\";\nimport { SwedishOrganizationType } from \"./swedish-organization-type.js\";\n\nconst MAX_INPUT_LENGTH = 30;\nconst LEGAL_ENTITY_PREFIX = \"16\";\n\nexport interface SwedishOrganizationTypeHintResult {\n readonly certain: SwedishOrganizationType;\n readonly bestGuess: SwedishOrganizationType;\n}\n\n/** A Swedish organization number (`organisationsnummer`). */\nexport class SwedishOrganizationNumber {\n static readonly typeInfo: PrimitiveTypeInfo = Object.freeze({\n englishName: \"Organization Number\",\n localizedName: \"Organisationsnummer\",\n emoji: \"\\u{1F3E2}\",\n sources: Object.freeze([\n \"https://bolagsverket.se\",\n \"https://skatteverket.se/foretag/drivaforetag/startaforetag/organisationsnummer.html\",\n \"https://sv.wikipedia.org/wiki/Organisationsnummer\",\n ]),\n });\n\n readonly _tenWithDash: string;\n readonly _twelveDigits: string;\n readonly _isPerson: boolean;\n\n get isPerson(): boolean {\n return this._isPerson;\n }\n\n private constructor(tenWithDash: string, twelveDigits: string, isPerson: boolean) {\n this._tenWithDash = tenWithDash;\n this._twelveDigits = twelveDigits;\n this._isPerson = isPerson;\n }\n\n static tryParse(input: string | null | undefined): SwedishOrganizationNumber | null {\n if (input == null || input.trim() === \"\") return null;\n const sanitized = sanitizeInput(input).trim();\n if (sanitized.length > MAX_INPUT_LENGTH) return null;\n\n const pin = SwedishPersonalIdentityNumber.tryParse(sanitized);\n if (pin) {\n return new SwedishOrganizationNumber(pin.formatted, pin.value, true);\n }\n const cn = SwedishCoordinationNumber.tryParse(sanitized);\n if (cn) {\n return new SwedishOrganizationNumber(cn.formatted, cn.value, true);\n }\n\n const digits = keepDigits(sanitized);\n if (digits.length === 0) return null;\n\n let tenDigits: string;\n if (digits.length === 10) tenDigits = digits;\n else if (digits.length === 12 && digits.startsWith(LEGAL_ENTITY_PREFIX))\n tenDigits = digits.slice(2);\n else return null;\n\n if (!isLegalEntityPattern(tenDigits)) return null;\n if (!luhnIsValid(tenDigits)) return null;\n\n const tenWithDash = `${tenDigits.slice(0, 6)}-${tenDigits.slice(6)}`;\n const twelve = LEGAL_ENTITY_PREFIX + tenDigits;\n return new SwedishOrganizationNumber(tenWithDash, twelve, false);\n }\n\n static parse(input: string): SwedishOrganizationNumber {\n const r = SwedishOrganizationNumber.tryParse(input);\n if (r === null) throw new Error(\"Invalid Swedish organization number.\");\n return r;\n }\n\n static isValid(input: string | null | undefined): boolean {\n return SwedishOrganizationNumber.tryParse(input) !== null;\n }\n\n static format(\n input: string | null | undefined,\n options?: { fallbackToTrimmedInputWhenInvalid?: boolean },\n ): string | null {\n const r = SwedishOrganizationNumber.tryParse(input);\n if (r) return r.to10DigitString();\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 = SwedishOrganizationNumber.tryParse(input);\n if (r) return r.to12DigitString();\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 && SwedishOrganizationNumber.normalize(input) === input;\n }\n\n to10DigitsOnly(): string {\n return this._tenWithDash.replace(/[-+]/g, \"\");\n }\n to10DigitString(): string {\n return this._tenWithDash;\n }\n to12DigitString(): string {\n return this._twelveDigits;\n }\n toNormalizedString(): string {\n return this.to12DigitString();\n }\n toString(): string {\n return this.to10DigitString();\n }\n\n getSwedishOrganizationTypeHint(\n name?: string | null,\n isPrivatePerson?: boolean | null,\n ): SwedishOrganizationTypeHintResult {\n let certain: SwedishOrganizationType;\n let bestGuess: SwedishOrganizationType;\n\n if (this._isPerson) {\n certain = SwedishOrganizationType.EnskildFirmaEllerPrivatperson;\n if (isPrivatePerson === true) bestGuess = SwedishOrganizationType.Privatperson;\n else if (isPrivatePerson === false) bestGuess = SwedishOrganizationType.EnskildFirma;\n else {\n const nameType = SwedishOrganizationName.inferSwedishOrganizationType(name ?? null);\n bestGuess =\n nameType === SwedishOrganizationType.EnskildFirma ||\n nameType === SwedishOrganizationType.Privatperson\n ? nameType\n : certain;\n }\n return { certain, bestGuess };\n }\n\n const first = this.to10DigitsOnly()[0]!;\n const nameType = SwedishOrganizationName.inferSwedishOrganizationType(name ?? null);\n\n switch (first) {\n case \"1\":\n certain = SwedishOrganizationType.Dodsbo;\n bestGuess = certain;\n break;\n case \"2\":\n certain = SwedishOrganizationType.OffentligSektor;\n bestGuess =\n nameType === SwedishOrganizationType.Kommun ||\n nameType === SwedishOrganizationType.Region ||\n nameType === SwedishOrganizationType.Forsamling\n ? nameType\n : certain;\n break;\n case \"5\":\n certain = SwedishOrganizationType.Aktiebolag;\n bestGuess = nameType === SwedishOrganizationType.Kommanditbolag ? nameType : certain;\n break;\n case \"6\":\n certain = SwedishOrganizationType.HandelsbolagEllerKommanditbolag;\n bestGuess =\n nameType === SwedishOrganizationType.Kommanditbolag ||\n nameType === SwedishOrganizationType.Handelsbolag\n ? nameType\n : certain;\n break;\n case \"7\":\n certain = SwedishOrganizationType.EkonomiskForening;\n bestGuess =\n nameType === SwedishOrganizationType.Bostadsrattsforening ||\n nameType === SwedishOrganizationType.Samfallighetsforening\n ? nameType\n : certain;\n break;\n case \"8\":\n certain = SwedishOrganizationType.IdeellForening;\n bestGuess = nameType === SwedishOrganizationType.Stiftelse ? nameType : certain;\n break;\n case \"9\":\n certain = SwedishOrganizationType.HandelsbolagEllerKommanditbolag;\n bestGuess =\n nameType === SwedishOrganizationType.Kommanditbolag ||\n nameType === SwedishOrganizationType.Handelsbolag\n ? nameType\n : certain;\n break;\n default:\n certain = SwedishOrganizationType.Other;\n bestGuess =\n nameType === SwedishOrganizationType.EuropeiskEkonomiskIntressegruppering ||\n nameType === SwedishOrganizationType.Europabolag ||\n nameType === SwedishOrganizationType.SCEForening ||\n nameType === SwedishOrganizationType.Filial\n ? nameType\n : certain;\n break;\n }\n return { certain, bestGuess };\n }\n\n static validate(input: string | null | undefined): ValidationResult {\n if (input == null || input.trim() === \"\") {\n return invalidResult(\n input,\n ValidationErrorReason.InputIsEmpty,\n \"Input is empty or whitespace.\",\n \"V\u00E4rdet \u00E4r tomt.\",\n );\n }\n const sanitized = sanitizeInput(input).trim();\n if (sanitized.length > MAX_INPUT_LENGTH) {\n return invalidResult(\n input,\n ValidationErrorReason.InputTooLong,\n \"Input contains too many characters.\",\n \"V\u00E4rdet inneh\u00E5ller f\u00F6r m\u00E5nga tecken.\",\n );\n }\n if (SwedishPersonalIdentityNumber.tryParse(sanitized)) return validResult(input);\n if (SwedishCoordinationNumber.tryParse(sanitized)) return validResult(input);\n\n const digits = keepDigits(sanitized);\n if (digits.length === 0) {\n return invalidResult(\n input,\n ValidationErrorReason.InvalidFormat,\n \"Input contains no digits.\",\n \"V\u00E4rdet inneh\u00E5ller inga siffror.\",\n );\n }\n if (!(\n digits.length === 10 ||\n (digits.length === 12 && digits.startsWith(LEGAL_ENTITY_PREFIX))\n )) {\n return invalidResult(\n input,\n ValidationErrorReason.InvalidLength,\n \"Organization number must be 10 or 12 digits (12-digit form must start with 16).\",\n \"Organisationsnummer m\u00E5ste vara 10 eller 12 siffror (12-siffrig form m\u00E5ste b\u00F6rja med 16).\",\n );\n }\n const tenDigits = digits.length === 12 ? digits.slice(2) : digits;\n if (!isLegalEntityPattern(tenDigits)) {\n return invalidResult(\n input,\n ValidationErrorReason.InvalidEntityPattern,\n \"Number does not match a valid organization type pattern.\",\n \"Numret matchar inte ett giltigt organisationstypsm\u00F6nster.\",\n );\n }\n if (!luhnIsValid(tenDigits)) {\n return invalidResult(\n input,\n ValidationErrorReason.InvalidCheckDigit,\n \"Invalid check digit.\",\n \"Ogiltig kontrollsiffra.\",\n );\n }\n return validResult(input);\n }\n\n static findCandidatesInText(text: string): readonly TextCandidate<SwedishOrganizationNumber>[] {\n if (!text) return [];\n const out: TextCandidate<SwedishOrganizationNumber>[] = [];\n const re = /(?<!\\d)(\\d{6})-?(\\d{4})(?!\\d)/g;\n let m: RegExpExecArray | null;\n while ((m = re.exec(text)) !== null) {\n const r = SwedishOrganizationNumber.tryParse(m[0]);\n if (!r || r.isPerson) continue;\n out.push(\n new TextCandidate<SwedishOrganizationNumber>({\n startIndex: m.index,\n length: m[0].length,\n originalText: m[0],\n typeName: \"SwedishOrganizationNumber\",\n category: TextCandidateCategory.OrganizationIdentifier,\n normalizedForm: r.toNormalizedString(),\n formattedForm: r.toString(),\n maskedForm: maskSwedishOrganizationNumber(r),\n confidence: TextMatchConfidence.High,\n value: r,\n }),\n );\n }\n return out;\n }\n\n equals(other: SwedishOrganizationNumber | null | undefined): boolean {\n return other != null && this._twelveDigits === other._twelveDigits;\n }\n compareTo(other: SwedishOrganizationNumber | null | undefined): number {\n if (other == null) return 1;\n return this._twelveDigits < other._twelveDigits\n ? -1\n : this._twelveDigits > other._twelveDigits\n ? 1\n : 0;\n }\n}\n\nfunction isLegalEntityPattern(tenDigits: string): boolean {\n if (tenDigits.length !== 10) return false;\n if (tenDigits[0] === \"1\") return true;\n const first = tenDigits[0]!;\n if (\n first !== \"2\" &&\n first !== \"3\" &&\n first !== \"5\" &&\n first !== \"6\" &&\n first !== \"7\" &&\n first !== \"8\" &&\n first !== \"9\"\n )\n return false;\n const m1 = tenDigits.charCodeAt(2) - 0x30;\n const m2 = tenDigits.charCodeAt(3) - 0x30;\n const mm = m1 * 10 + m2;\n return mm >= 20;\n}\n\n/**\n * Masks person-based Swedish organization identifiers by default.\n * Public legal-entity organization numbers are returned unmasked unless\n * `maskOrganizationNumbers` is set.\n */\nexport function maskSwedishOrganizationNumber(\n o: SwedishOrganizationNumber,\n options?: { maskOrganizationNumbers?: boolean; maskBirthDate?: boolean },\n): string {\n const s = o.to10DigitString();\n if (o.isPerson) {\n const sep = s[6]!;\n if (options?.maskBirthDate) return \"******\" + sep + \"****\";\n return s.slice(0, 6) + sep + \"****\";\n }\n if (options?.maskOrganizationNumbers) return s.slice(0, 7) + \"****\";\n return s;\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["nameType"]
7
7
  }
@@ -67,6 +67,7 @@ import { SwedishEcoVehicleClassification } from "./vehicle/swedish-eco-vehicle-c
67
67
  import { SwedishVehicleRegistrationNumber } from "./vehicle/swedish-vehicle-registration-number.js";
68
68
  import { TireDimension } from "./vehicle/tire-dimension.js";
69
69
  import { VehicleIdentificationNumber } from "./vehicle/vehicle-identification-number.js";
70
+ import { WatercraftIdentificationNumber } from "./vehicle/watercraft-identification-number.js";
70
71
  import { WheelRimDimension } from "./vehicle/wheel-rim-dimension.js";
71
72
  let registered = false;
72
73
  function registerDefaultTextScanners() {
@@ -235,6 +236,7 @@ function registerDefaultTextScanners() {
235
236
  ["SwedishVehicleRegistrationNumber", SwedishVehicleRegistrationNumber],
236
237
  ["TireDimension", TireDimension],
237
238
  ["VehicleIdentificationNumber", VehicleIdentificationNumber],
239
+ ["WatercraftIdentificationNumber", WatercraftIdentificationNumber],
238
240
  ["WheelRimDimension", WheelRimDimension]
239
241
  ];
240
242
  for (const [typeName, vehicle] of vehicles) {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/register-default-text-scanners.ts"],
4
- "sourcesContent": ["import { Address } from \"./contact/address.js\";\nimport { AddressZipCode } from \"./contact/address-zip-code.js\";\nimport { PhoneNumber } from \"./contact/phone-number.js\";\nimport { SwedishAddress } from \"./contact/swedish-address.js\";\nimport { Country } from \"./geography/country.js\";\nimport { SwedishCounty } from \"./geography/swedish-county.js\";\nimport { SwedishMunicipality } from \"./geography/swedish-municipality.js\";\nimport { DunsNumber } from \"./organization/duns-number.js\";\nimport { EuVatNumber } from \"./organization/eu-vat-number.js\";\nimport { LeiCode } from \"./organization/lei-code.js\";\nimport { SwedishOrganizationNumber } from \"./organization/swedish-organization-number.js\";\nimport { SwedishCoordinationNumber } from \"./person/swedish-coordination-number.js\";\nimport { SwedishPersonalIdentityNumber } from \"./person/swedish-personal-identity-number.js\";\nimport { TextCandidateCategory } from \"./text-scanning/text-candidate-category.js\";\nimport type { TextScanFunction } from \"./text-scanning/text-scanner.js\";\nimport { defaultTextScanner } from \"./text-scanning/text-scanner.js\";\nimport { EmailAddress } from \"./web/email-address.js\";\nimport { Url } from \"./web/url.js\";\nimport { Isin } from \"./finance/isin.js\";\nimport { SwedishPropertyDesignation } from \"./property/swedish-property-designation.js\";\nimport { Iban } from \"./banking/iban.js\";\nimport { Bic } from \"./banking/bic.js\";\nimport { SwedishBankgiroNumber } from \"./banking/swedish-bankgiro-number.js\";\nimport { SwedishPostgiroNumber } from \"./banking/swedish-postgiro-number.js\";\nimport { SwedishOcrReferenceNumber } from \"./banking/swedish-ocr-reference-number.js\";\nimport { SwedishBankAccount } from \"./banking/swedish-bank-account.js\";\nimport { SwedishSwishNumber } from \"./banking/swedish-swish-number.js\";\nimport { Area } from \"./measurement/area.js\";\nimport { DataSize } from \"./measurement/data-size.js\";\nimport { ElectricCharge } from \"./measurement/electric-charge.js\";\nimport { ElectricCurrent } from \"./measurement/electric-current.js\";\nimport { Energy } from \"./measurement/energy.js\";\nimport { FlowRate } from \"./measurement/flow-rate.js\";\nimport { Frequency } from \"./measurement/frequency.js\";\nimport { Length } from \"./measurement/length.js\";\nimport { Luminance } from \"./measurement/luminance.js\";\nimport { LuminousFlux } from \"./measurement/luminous-flux.js\";\nimport { Percentage } from \"./measurement/percentage.js\";\nimport { Power } from \"./measurement/power.js\";\nimport { Pressure } from \"./measurement/pressure.js\";\nimport { RotationalSpeed } from \"./measurement/rotational-speed.js\";\nimport { SoundLevel } from \"./measurement/sound-level.js\";\nimport { Speed } from \"./measurement/speed.js\";\nimport { Temperature } from \"./measurement/temperature.js\";\nimport { Torque } from \"./measurement/torque.js\";\nimport { Voltage } from \"./measurement/voltage.js\";\nimport { Volume } from \"./measurement/volume.js\";\nimport { Weight } from \"./measurement/weight.js\";\nimport { Color } from \"./product/color.js\";\nimport { ElectricalPhase } from \"./product/electrical-phase.js\";\nimport { Gtin8 } from \"./product/gtin8.js\";\nimport { Gtin12 } from \"./product/gtin12.js\";\nimport { Gtin13 } from \"./product/gtin13.js\";\nimport { Gtin14 } from \"./product/gtin14.js\";\nimport { IpRating } from \"./product/ip-rating.js\";\nimport { Refrigerant } from \"./product/refrigerant.js\";\nimport { ScreenResolution } from \"./product/screen-resolution.js\";\nimport { ScreenSize } from \"./product/screen-size.js\";\nimport { BoltPattern } from \"./vehicle/bolt-pattern.js\";\nimport { EmissionRate } from \"./vehicle/emission-rate.js\";\nimport { EnginePower } from \"./vehicle/engine-power.js\";\nimport { EuTypeApprovalNumber } from \"./vehicle/eu-type-approval-number.js\";\nimport { EuroEmissionClass } from \"./vehicle/euro-emission-class.js\";\nimport { FuelConsumption } from \"./vehicle/fuel-consumption.js\";\nimport { OperatingHours } from \"./vehicle/operating-hours.js\";\nimport { SwedishDrivingLicenseCategory } from \"./vehicle/swedish-driving-license-category.js\";\nimport { SwedishEcoVehicleClassification } from \"./vehicle/swedish-eco-vehicle-classification.js\";\nimport { SwedishVehicleRegistrationNumber } from \"./vehicle/swedish-vehicle-registration-number.js\";\nimport { TireDimension } from \"./vehicle/tire-dimension.js\";\nimport { VehicleIdentificationNumber } from \"./vehicle/vehicle-identification-number.js\";\nimport { WheelRimDimension } from \"./vehicle/wheel-rim-dimension.js\";\n\nlet registered = false;\n\n/** Registers every built-in `findCandidatesInText` implementation on the shared scanner. */\nexport function registerDefaultTextScanners(): void {\n if (registered) return;\n registered = true;\n\n defaultTextScanner.register({\n typeName: \"Address\",\n category: TextCandidateCategory.Contact,\n scan: Address.findCandidatesInText,\n });\n defaultTextScanner.register({\n typeName: \"AddressZipCode\",\n category: TextCandidateCategory.Contact,\n scan: AddressZipCode.findCandidatesInText,\n });\n defaultTextScanner.register({\n typeName: \"PhoneNumber\",\n category: TextCandidateCategory.Contact,\n scan: PhoneNumber.findCandidatesInText,\n });\n defaultTextScanner.register({\n typeName: \"SwedishAddress\",\n category: TextCandidateCategory.Contact,\n scan: SwedishAddress.findCandidatesInText,\n });\n\n defaultTextScanner.register({\n typeName: \"Country\",\n category: TextCandidateCategory.Geography,\n scan: Country.findCandidatesInText,\n });\n defaultTextScanner.register({\n typeName: \"SwedishCounty\",\n category: TextCandidateCategory.Geography,\n scan: SwedishCounty.findCandidatesInText,\n });\n defaultTextScanner.register({\n typeName: \"SwedishMunicipality\",\n category: TextCandidateCategory.Geography,\n scan: SwedishMunicipality.findCandidatesInText,\n });\n\n defaultTextScanner.register({\n typeName: \"SwedishPersonalIdentityNumber\",\n category: TextCandidateCategory.PersonalIdentifier,\n scan: SwedishPersonalIdentityNumber.findCandidatesInText,\n });\n defaultTextScanner.register({\n typeName: \"SwedishCoordinationNumber\",\n category: TextCandidateCategory.PersonalIdentifier,\n scan: SwedishCoordinationNumber.findCandidatesInText,\n });\n\n defaultTextScanner.register({\n typeName: \"SwedishOrganizationNumber\",\n category: TextCandidateCategory.OrganizationIdentifier,\n scan: SwedishOrganizationNumber.findCandidatesInText,\n });\n defaultTextScanner.register({\n typeName: \"EuVatNumber\",\n category: TextCandidateCategory.OrganizationIdentifier,\n scan: EuVatNumber.findCandidatesInText,\n });\n defaultTextScanner.register({\n typeName: \"DunsNumber\",\n category: TextCandidateCategory.OrganizationIdentifier,\n scan: DunsNumber.findCandidatesInText,\n });\n defaultTextScanner.register({\n typeName: \"LeiCode\",\n category: TextCandidateCategory.OrganizationIdentifier,\n scan: LeiCode.findCandidatesInText,\n });\n\n defaultTextScanner.register({\n typeName: \"EmailAddress\",\n category: TextCandidateCategory.Contact,\n scan: EmailAddress.findCandidatesInText,\n });\n defaultTextScanner.register({\n typeName: \"Url\",\n category: TextCandidateCategory.Contact,\n scan: Url.findCandidatesInText,\n });\n\n defaultTextScanner.register({\n typeName: \"Isin\",\n category: TextCandidateCategory.Financial,\n scan: Isin.findCandidatesInText,\n });\n\n defaultTextScanner.register({\n typeName: \"SwedishPropertyDesignation\",\n category: TextCandidateCategory.Property,\n scan: SwedishPropertyDesignation.findCandidatesInText,\n });\n\n defaultTextScanner.register({\n typeName: \"Iban\",\n category: TextCandidateCategory.Financial,\n scan: Iban.findCandidatesInText,\n });\n defaultTextScanner.register({\n typeName: \"Bic\",\n category: TextCandidateCategory.Financial,\n scan: Bic.findCandidatesInText,\n });\n defaultTextScanner.register({\n typeName: \"SwedishBankgiroNumber\",\n category: TextCandidateCategory.Financial,\n scan: SwedishBankgiroNumber.findCandidatesInText,\n });\n defaultTextScanner.register({\n typeName: \"SwedishPostgiroNumber\",\n category: TextCandidateCategory.Financial,\n scan: SwedishPostgiroNumber.findCandidatesInText,\n });\n defaultTextScanner.register({\n typeName: \"SwedishOcrReferenceNumber\",\n category: TextCandidateCategory.Financial,\n scan: SwedishOcrReferenceNumber.findCandidatesInText,\n });\n defaultTextScanner.register({\n typeName: \"SwedishBankAccount\",\n category: TextCandidateCategory.Financial,\n scan: SwedishBankAccount.findCandidatesInText,\n });\n defaultTextScanner.register({\n typeName: \"SwedishSwishNumber\",\n category: TextCandidateCategory.Financial,\n scan: SwedishSwishNumber.findCandidatesInText,\n });\n\n // Names are spelled out rather than read from `Class.name`, which a\n // consumer's minifier is free to mangle.\n const quantities: readonly (readonly [string, { findCandidatesInText: TextScanFunction }])[] = [\n [\"Area\", Area],\n [\"DataSize\", DataSize],\n [\"ElectricCharge\", ElectricCharge],\n [\"ElectricCurrent\", ElectricCurrent],\n [\"Energy\", Energy],\n [\"FlowRate\", FlowRate],\n [\"Frequency\", Frequency],\n [\"Length\", Length],\n [\"Luminance\", Luminance],\n [\"LuminousFlux\", LuminousFlux],\n [\"Percentage\", Percentage],\n [\"Power\", Power],\n [\"Pressure\", Pressure],\n [\"RotationalSpeed\", RotationalSpeed],\n [\"SoundLevel\", SoundLevel],\n [\"Speed\", Speed],\n [\"Temperature\", Temperature],\n [\"Torque\", Torque],\n [\"Voltage\", Voltage],\n [\"Volume\", Volume],\n [\"Weight\", Weight],\n ];\n\n for (const [typeName, quantity] of quantities) {\n defaultTextScanner.register({\n typeName,\n category: TextCandidateCategory.Measurement,\n scan: quantity.findCandidatesInText,\n });\n }\n\n // The same set the .NET `TextScanner` runs. `EnergyConsumption` can scan on its\n // own but is deliberately left out here to match .NET.\n const vehicles: readonly (readonly [string, { findCandidatesInText: TextScanFunction }])[] = [\n [\"BoltPattern\", BoltPattern],\n [\"EmissionRate\", EmissionRate],\n [\"EnginePower\", EnginePower],\n [\"EuTypeApprovalNumber\", EuTypeApprovalNumber],\n [\"EuroEmissionClass\", EuroEmissionClass],\n [\"FuelConsumption\", FuelConsumption],\n [\"OperatingHours\", OperatingHours],\n [\"SwedishDrivingLicenseCategory\", SwedishDrivingLicenseCategory],\n [\"SwedishEcoVehicleClassification\", SwedishEcoVehicleClassification],\n [\"SwedishVehicleRegistrationNumber\", SwedishVehicleRegistrationNumber],\n [\"TireDimension\", TireDimension],\n [\"VehicleIdentificationNumber\", VehicleIdentificationNumber],\n [\"WheelRimDimension\", WheelRimDimension],\n ];\n\n for (const [typeName, vehicle] of vehicles) {\n defaultTextScanner.register({\n typeName,\n category: TextCandidateCategory.Vehicle,\n scan: vehicle.findCandidatesInText,\n });\n }\n\n // The same set the .NET `TextScanner` runs. `CameraResolution` can scan on its own but is\n // deliberately left out here to match .NET.\n const products: readonly (readonly [string, { findCandidatesInText: TextScanFunction }])[] = [\n [\"Gtin13\", Gtin13],\n [\"Gtin8\", Gtin8],\n [\"Gtin12\", Gtin12],\n [\"Gtin14\", Gtin14],\n [\"IpRating\", IpRating],\n [\"ElectricalPhase\", ElectricalPhase],\n [\"Refrigerant\", Refrigerant],\n [\"Color\", Color],\n [\"ScreenResolution\", ScreenResolution],\n [\"ScreenSize\", ScreenSize],\n ];\n\n for (const [typeName, product] of products) {\n defaultTextScanner.register({\n typeName,\n category: TextCandidateCategory.Product,\n scan: product.findCandidatesInText,\n });\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { Address } from \"./contact/address.js\";\nimport { AddressZipCode } from \"./contact/address-zip-code.js\";\nimport { PhoneNumber } from \"./contact/phone-number.js\";\nimport { SwedishAddress } from \"./contact/swedish-address.js\";\nimport { Country } from \"./geography/country.js\";\nimport { SwedishCounty } from \"./geography/swedish-county.js\";\nimport { SwedishMunicipality } from \"./geography/swedish-municipality.js\";\nimport { DunsNumber } from \"./organization/duns-number.js\";\nimport { EuVatNumber } from \"./organization/eu-vat-number.js\";\nimport { LeiCode } from \"./organization/lei-code.js\";\nimport { SwedishOrganizationNumber } from \"./organization/swedish-organization-number.js\";\nimport { SwedishCoordinationNumber } from \"./person/swedish-coordination-number.js\";\nimport { SwedishPersonalIdentityNumber } from \"./person/swedish-personal-identity-number.js\";\nimport { TextCandidateCategory } from \"./text-scanning/text-candidate-category.js\";\nimport type { TextScanFunction } from \"./text-scanning/text-scanner.js\";\nimport { defaultTextScanner } from \"./text-scanning/text-scanner.js\";\nimport { EmailAddress } from \"./web/email-address.js\";\nimport { Url } from \"./web/url.js\";\nimport { Isin } from \"./finance/isin.js\";\nimport { SwedishPropertyDesignation } from \"./property/swedish-property-designation.js\";\nimport { Iban } from \"./banking/iban.js\";\nimport { Bic } from \"./banking/bic.js\";\nimport { SwedishBankgiroNumber } from \"./banking/swedish-bankgiro-number.js\";\nimport { SwedishPostgiroNumber } from \"./banking/swedish-postgiro-number.js\";\nimport { SwedishOcrReferenceNumber } from \"./banking/swedish-ocr-reference-number.js\";\nimport { SwedishBankAccount } from \"./banking/swedish-bank-account.js\";\nimport { SwedishSwishNumber } from \"./banking/swedish-swish-number.js\";\nimport { Area } from \"./measurement/area.js\";\nimport { DataSize } from \"./measurement/data-size.js\";\nimport { ElectricCharge } from \"./measurement/electric-charge.js\";\nimport { ElectricCurrent } from \"./measurement/electric-current.js\";\nimport { Energy } from \"./measurement/energy.js\";\nimport { FlowRate } from \"./measurement/flow-rate.js\";\nimport { Frequency } from \"./measurement/frequency.js\";\nimport { Length } from \"./measurement/length.js\";\nimport { Luminance } from \"./measurement/luminance.js\";\nimport { LuminousFlux } from \"./measurement/luminous-flux.js\";\nimport { Percentage } from \"./measurement/percentage.js\";\nimport { Power } from \"./measurement/power.js\";\nimport { Pressure } from \"./measurement/pressure.js\";\nimport { RotationalSpeed } from \"./measurement/rotational-speed.js\";\nimport { SoundLevel } from \"./measurement/sound-level.js\";\nimport { Speed } from \"./measurement/speed.js\";\nimport { Temperature } from \"./measurement/temperature.js\";\nimport { Torque } from \"./measurement/torque.js\";\nimport { Voltage } from \"./measurement/voltage.js\";\nimport { Volume } from \"./measurement/volume.js\";\nimport { Weight } from \"./measurement/weight.js\";\nimport { Color } from \"./product/color.js\";\nimport { ElectricalPhase } from \"./product/electrical-phase.js\";\nimport { Gtin8 } from \"./product/gtin8.js\";\nimport { Gtin12 } from \"./product/gtin12.js\";\nimport { Gtin13 } from \"./product/gtin13.js\";\nimport { Gtin14 } from \"./product/gtin14.js\";\nimport { IpRating } from \"./product/ip-rating.js\";\nimport { Refrigerant } from \"./product/refrigerant.js\";\nimport { ScreenResolution } from \"./product/screen-resolution.js\";\nimport { ScreenSize } from \"./product/screen-size.js\";\nimport { BoltPattern } from \"./vehicle/bolt-pattern.js\";\nimport { EmissionRate } from \"./vehicle/emission-rate.js\";\nimport { EnginePower } from \"./vehicle/engine-power.js\";\nimport { EuTypeApprovalNumber } from \"./vehicle/eu-type-approval-number.js\";\nimport { EuroEmissionClass } from \"./vehicle/euro-emission-class.js\";\nimport { FuelConsumption } from \"./vehicle/fuel-consumption.js\";\nimport { OperatingHours } from \"./vehicle/operating-hours.js\";\nimport { SwedishDrivingLicenseCategory } from \"./vehicle/swedish-driving-license-category.js\";\nimport { SwedishEcoVehicleClassification } from \"./vehicle/swedish-eco-vehicle-classification.js\";\nimport { SwedishVehicleRegistrationNumber } from \"./vehicle/swedish-vehicle-registration-number.js\";\nimport { TireDimension } from \"./vehicle/tire-dimension.js\";\nimport { VehicleIdentificationNumber } from \"./vehicle/vehicle-identification-number.js\";\nimport { WatercraftIdentificationNumber } from \"./vehicle/watercraft-identification-number.js\";\nimport { WheelRimDimension } from \"./vehicle/wheel-rim-dimension.js\";\n\nlet registered = false;\n\n/** Registers every built-in `findCandidatesInText` implementation on the shared scanner. */\nexport function registerDefaultTextScanners(): void {\n if (registered) return;\n registered = true;\n\n defaultTextScanner.register({\n typeName: \"Address\",\n category: TextCandidateCategory.Contact,\n scan: Address.findCandidatesInText,\n });\n defaultTextScanner.register({\n typeName: \"AddressZipCode\",\n category: TextCandidateCategory.Contact,\n scan: AddressZipCode.findCandidatesInText,\n });\n defaultTextScanner.register({\n typeName: \"PhoneNumber\",\n category: TextCandidateCategory.Contact,\n scan: PhoneNumber.findCandidatesInText,\n });\n defaultTextScanner.register({\n typeName: \"SwedishAddress\",\n category: TextCandidateCategory.Contact,\n scan: SwedishAddress.findCandidatesInText,\n });\n\n defaultTextScanner.register({\n typeName: \"Country\",\n category: TextCandidateCategory.Geography,\n scan: Country.findCandidatesInText,\n });\n defaultTextScanner.register({\n typeName: \"SwedishCounty\",\n category: TextCandidateCategory.Geography,\n scan: SwedishCounty.findCandidatesInText,\n });\n defaultTextScanner.register({\n typeName: \"SwedishMunicipality\",\n category: TextCandidateCategory.Geography,\n scan: SwedishMunicipality.findCandidatesInText,\n });\n\n defaultTextScanner.register({\n typeName: \"SwedishPersonalIdentityNumber\",\n category: TextCandidateCategory.PersonalIdentifier,\n scan: SwedishPersonalIdentityNumber.findCandidatesInText,\n });\n defaultTextScanner.register({\n typeName: \"SwedishCoordinationNumber\",\n category: TextCandidateCategory.PersonalIdentifier,\n scan: SwedishCoordinationNumber.findCandidatesInText,\n });\n\n defaultTextScanner.register({\n typeName: \"SwedishOrganizationNumber\",\n category: TextCandidateCategory.OrganizationIdentifier,\n scan: SwedishOrganizationNumber.findCandidatesInText,\n });\n defaultTextScanner.register({\n typeName: \"EuVatNumber\",\n category: TextCandidateCategory.OrganizationIdentifier,\n scan: EuVatNumber.findCandidatesInText,\n });\n defaultTextScanner.register({\n typeName: \"DunsNumber\",\n category: TextCandidateCategory.OrganizationIdentifier,\n scan: DunsNumber.findCandidatesInText,\n });\n defaultTextScanner.register({\n typeName: \"LeiCode\",\n category: TextCandidateCategory.OrganizationIdentifier,\n scan: LeiCode.findCandidatesInText,\n });\n\n defaultTextScanner.register({\n typeName: \"EmailAddress\",\n category: TextCandidateCategory.Contact,\n scan: EmailAddress.findCandidatesInText,\n });\n defaultTextScanner.register({\n typeName: \"Url\",\n category: TextCandidateCategory.Contact,\n scan: Url.findCandidatesInText,\n });\n\n defaultTextScanner.register({\n typeName: \"Isin\",\n category: TextCandidateCategory.Financial,\n scan: Isin.findCandidatesInText,\n });\n\n defaultTextScanner.register({\n typeName: \"SwedishPropertyDesignation\",\n category: TextCandidateCategory.Property,\n scan: SwedishPropertyDesignation.findCandidatesInText,\n });\n\n defaultTextScanner.register({\n typeName: \"Iban\",\n category: TextCandidateCategory.Financial,\n scan: Iban.findCandidatesInText,\n });\n defaultTextScanner.register({\n typeName: \"Bic\",\n category: TextCandidateCategory.Financial,\n scan: Bic.findCandidatesInText,\n });\n defaultTextScanner.register({\n typeName: \"SwedishBankgiroNumber\",\n category: TextCandidateCategory.Financial,\n scan: SwedishBankgiroNumber.findCandidatesInText,\n });\n defaultTextScanner.register({\n typeName: \"SwedishPostgiroNumber\",\n category: TextCandidateCategory.Financial,\n scan: SwedishPostgiroNumber.findCandidatesInText,\n });\n defaultTextScanner.register({\n typeName: \"SwedishOcrReferenceNumber\",\n category: TextCandidateCategory.Financial,\n scan: SwedishOcrReferenceNumber.findCandidatesInText,\n });\n defaultTextScanner.register({\n typeName: \"SwedishBankAccount\",\n category: TextCandidateCategory.Financial,\n scan: SwedishBankAccount.findCandidatesInText,\n });\n defaultTextScanner.register({\n typeName: \"SwedishSwishNumber\",\n category: TextCandidateCategory.Financial,\n scan: SwedishSwishNumber.findCandidatesInText,\n });\n\n // Names are spelled out rather than read from `Class.name`, which a\n // consumer's minifier is free to mangle.\n const quantities: readonly (readonly [string, { findCandidatesInText: TextScanFunction }])[] = [\n [\"Area\", Area],\n [\"DataSize\", DataSize],\n [\"ElectricCharge\", ElectricCharge],\n [\"ElectricCurrent\", ElectricCurrent],\n [\"Energy\", Energy],\n [\"FlowRate\", FlowRate],\n [\"Frequency\", Frequency],\n [\"Length\", Length],\n [\"Luminance\", Luminance],\n [\"LuminousFlux\", LuminousFlux],\n [\"Percentage\", Percentage],\n [\"Power\", Power],\n [\"Pressure\", Pressure],\n [\"RotationalSpeed\", RotationalSpeed],\n [\"SoundLevel\", SoundLevel],\n [\"Speed\", Speed],\n [\"Temperature\", Temperature],\n [\"Torque\", Torque],\n [\"Voltage\", Voltage],\n [\"Volume\", Volume],\n [\"Weight\", Weight],\n ];\n\n for (const [typeName, quantity] of quantities) {\n defaultTextScanner.register({\n typeName,\n category: TextCandidateCategory.Measurement,\n scan: quantity.findCandidatesInText,\n });\n }\n\n // The same set the .NET `TextScanner` runs. `EnergyConsumption` can scan on its\n // own but is deliberately left out here to match .NET.\n const vehicles: readonly (readonly [string, { findCandidatesInText: TextScanFunction }])[] = [\n [\"BoltPattern\", BoltPattern],\n [\"EmissionRate\", EmissionRate],\n [\"EnginePower\", EnginePower],\n [\"EuTypeApprovalNumber\", EuTypeApprovalNumber],\n [\"EuroEmissionClass\", EuroEmissionClass],\n [\"FuelConsumption\", FuelConsumption],\n [\"OperatingHours\", OperatingHours],\n [\"SwedishDrivingLicenseCategory\", SwedishDrivingLicenseCategory],\n [\"SwedishEcoVehicleClassification\", SwedishEcoVehicleClassification],\n [\"SwedishVehicleRegistrationNumber\", SwedishVehicleRegistrationNumber],\n [\"TireDimension\", TireDimension],\n [\"VehicleIdentificationNumber\", VehicleIdentificationNumber],\n [\"WatercraftIdentificationNumber\", WatercraftIdentificationNumber],\n [\"WheelRimDimension\", WheelRimDimension],\n ];\n\n for (const [typeName, vehicle] of vehicles) {\n defaultTextScanner.register({\n typeName,\n category: TextCandidateCategory.Vehicle,\n scan: vehicle.findCandidatesInText,\n });\n }\n\n // The same set the .NET `TextScanner` runs. `CameraResolution` can scan on its own but is\n // deliberately left out here to match .NET.\n const products: readonly (readonly [string, { findCandidatesInText: TextScanFunction }])[] = [\n [\"Gtin13\", Gtin13],\n [\"Gtin8\", Gtin8],\n [\"Gtin12\", Gtin12],\n [\"Gtin14\", Gtin14],\n [\"IpRating\", IpRating],\n [\"ElectricalPhase\", ElectricalPhase],\n [\"Refrigerant\", Refrigerant],\n [\"Color\", Color],\n [\"ScreenResolution\", ScreenResolution],\n [\"ScreenSize\", ScreenSize],\n ];\n\n for (const [typeName, product] of products) {\n defaultTextScanner.register({\n typeName,\n category: TextCandidateCategory.Product,\n scan: product.findCandidatesInText,\n });\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -11,6 +11,7 @@ import {
11
11
  import { EmailAddress, Url } from "../web/index.js";
12
12
  import { Currency, Isin, MoneyAmount } from "../finance/index.js";
13
13
  import { SwedishPropertyDesignation, SwedishPropertyTaxationCode } from "../property/index.js";
14
+ import { WatercraftIdentificationNumber } from "../vehicle/index.js";
14
15
  import {
15
16
  Bic,
16
17
  Iban,
@@ -32,7 +33,7 @@ const PhoneNumberSamples = Object.freeze({
32
33
  folksam: PhoneNumber.parse("+46771950950"),
33
34
  kooperativaForbundet: PhoneNumber.parse("+46107400000"),
34
35
  swedishMobileTest: PhoneNumber.parse("+46701740605"),
35
- swedishFixedTest: PhoneNumber.parse("+4681234567")
36
+ swedishFixedTest: PhoneNumber.parse("+46846500400")
36
37
  });
37
38
  const SwedishCountySamples = Object.freeze({
38
39
  stockholm: SwedishCounty.parse("01"),
@@ -224,6 +225,15 @@ const SwedishPropertyTaxationCodeSamples = Object.freeze({
224
225
  hyreshusBostad: SwedishPropertyTaxationCode.parse("320"),
225
226
  industriBebyggd: SwedishPropertyTaxationCode.parse("420")
226
227
  });
228
+ const WatercraftIdentificationNumberSamples = Object.freeze({
229
+ /** The worked example in ISO 10087:2022 §4.6. */
230
+ iso10087Example: WatercraftIdentificationNumber.parse("NL-HXAB7A33G506"),
231
+ /**
232
+ * A US HIN constructed for this library: an all-Z manufacturer code and serial number `00001`.
233
+ * It has not been checked against the Coast Guard's register of manufacturer codes.
234
+ */
235
+ unitedStatesExample: WatercraftIdentificationNumber.parse("ZZZ00001A020")
236
+ });
227
237
  const PropertySampleData = Object.freeze({
228
238
  SwedishPropertyDesignation: Object.freeze({
229
239
  ...SwedishPropertyDesignationSamples,
@@ -234,6 +244,12 @@ const PropertySampleData = Object.freeze({
234
244
  all: Object.freeze(Object.values(SwedishPropertyTaxationCodeSamples))
235
245
  })
236
246
  });
247
+ const VehicleSampleData = Object.freeze({
248
+ WatercraftIdentificationNumber: Object.freeze({
249
+ ...WatercraftIdentificationNumberSamples,
250
+ all: Object.freeze(Object.values(WatercraftIdentificationNumberSamples))
251
+ })
252
+ });
237
253
  const IbanSamples = Object.freeze({
238
254
  vattenfall: Iban.parse("SE7495000099604203849767"),
239
255
  swedishGeneric: Iban.parse("SE4550000000058398257466"),
@@ -350,6 +366,7 @@ export {
350
366
  GeographySampleData,
351
367
  OrganizationSampleData,
352
368
  PropertySampleData,
369
+ VehicleSampleData,
353
370
  WebSampleData
354
371
  };
355
372
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/sample-data/index.ts"],
4
- "sourcesContent": ["import { PhoneNumber } from \"../contact/index.js\";\nimport { GeoCoordinate, Language, SwedishCounty, SwedishMunicipality } from \"../geography/index.js\";\nimport {\n DunsNumber,\n ElfCode,\n EuVatNumber,\n LeiCode,\n SwedishOrganizationNumber,\n SwedishSniCode,\n} from \"../organization/index.js\";\nimport { EmailAddress, Url } from \"../web/index.js\";\nimport { Currency, Isin, MoneyAmount } from \"../finance/index.js\";\nimport { SwedishPropertyDesignation, SwedishPropertyTaxationCode } from \"../property/index.js\";\nimport {\n Bic,\n Iban,\n SwedishBankAccount,\n SwedishBankAccountHolderName,\n SwedishBankClearingNumber,\n SwedishBankgiroNumber,\n SwedishOcrReferenceNumber,\n SwedishPostgiroNumber,\n SwedishSwishNumber,\n} from \"../banking/index.js\";\n\nconst PhoneNumberSamples = Object.freeze({\n systembolaget: PhoneNumber.parse(\"+46850330000\"),\n sj: PhoneNumber.parse(\"+46107516000\"),\n vattenfall: PhoneNumber.parse(\"+4687396000\"),\n samhall: PhoneNumber.parse(\"+4620572572\"),\n stockholmsKommun: PhoneNumber.parse(\"+46850829000\"),\n svenskaKyrkan: PhoneNumber.parse(\"+4618169500\"),\n folksam: PhoneNumber.parse(\"+46771950950\"),\n kooperativaForbundet: PhoneNumber.parse(\"+46107400000\"),\n swedishMobileTest: PhoneNumber.parse(\"+46701740605\"),\n swedishFixedTest: PhoneNumber.parse(\"+4681234567\"),\n});\n\nconst SwedishCountySamples = Object.freeze({\n stockholm: SwedishCounty.parse(\"01\"),\n uppsala: SwedishCounty.parse(\"03\"),\n vastraGotaland: SwedishCounty.parse(\"14\"),\n skane: SwedishCounty.parse(\"12\"),\n norrbotten: SwedishCounty.parse(\"25\"),\n});\n\nconst SwedishMunicipalitySamples = Object.freeze({\n stockholm: SwedishMunicipality.parse(\"Stockholm\"),\n solna: SwedishMunicipality.parse(\"Solna\"),\n uppsala: SwedishMunicipality.parse(\"Uppsala\"),\n lulea: SwedishMunicipality.parse(\"Lule\u00E5\"),\n goteborg: SwedishMunicipality.parse(\"G\u00F6teborg\"),\n malmo: SwedishMunicipality.parse(\"Malm\u00F6\"),\n});\n\nconst LanguageSamples = Object.freeze({\n swedish: Language.parse(\"sv\"),\n english: Language.parse(\"en\"),\n german: Language.parse(\"de\"),\n french: Language.parse(\"fr\"),\n spanish: Language.parse(\"es\"),\n arabic: Language.parse(\"ar\"),\n finnish: Language.parse(\"fi\"),\n norwegian: Language.parse(\"no\"),\n danish: Language.parse(\"da\"),\n});\n\nconst GeoCoordinateSamples = Object.freeze({\n stockholm: GeoCoordinate.parse(\"59.3293, 18.0686\"),\n gothenburg: GeoCoordinate.parse(\"57.7089, 11.9746\"),\n malmo: GeoCoordinate.parse(\"55.6050, 13.0038\"),\n lulea: GeoCoordinate.parse(\"65.5848, 22.1547\"),\n nullIsland: GeoCoordinate.parse(\"0, 0\"),\n});\n\nconst OrganizationNumberSamples = Object.freeze({\n budiAB: SwedishOrganizationNumber.parse(\"559246-0421\"),\n systembolaget: SwedishOrganizationNumber.parse(\"556059-9473\"),\n sj: SwedishOrganizationNumber.parse(\"556196-1599\"),\n postNord: SwedishOrganizationNumber.parse(\"556711-5695\"),\n vattenfall: SwedishOrganizationNumber.parse(\"556036-2138\"),\n samhall: SwedishOrganizationNumber.parse(\"556448-1397\"),\n lkab: SwedishOrganizationNumber.parse(\"556001-5835\"),\n svt: SwedishOrganizationNumber.parse(\"556033-4285\"),\n sverigesRadio: SwedishOrganizationNumber.parse(\"556419-3232\"),\n telia: SwedishOrganizationNumber.parse(\"556430-0142\"),\n stockholmsKommun: SwedishOrganizationNumber.parse(\"212000-0142\"),\n skr: SwedishOrganizationNumber.parse(\"222000-0315\"),\n svenskaKyrkan: SwedishOrganizationNumber.parse(\"252002-6135\"),\n folksam: SwedishOrganizationNumber.parse(\"502006-1619\"),\n lantmannen: SwedishOrganizationNumber.parse(\"769605-2856\"),\n kooperativaForbundet: SwedishOrganizationNumber.parse(\"702001-1693\"),\n skatteverket: SwedishOrganizationNumber.parse(\"202100-5448\"),\n forsakringskassan: SwedishOrganizationNumber.parse(\"202100-5521\"),\n arbetsformedlingen: SwedishOrganizationNumber.parse(\"202100-2114\"),\n bolagsverket: SwedishOrganizationNumber.parse(\"202100-5000\"),\n trafikverket: SwedishOrganizationNumber.parse(\"202100-6297\"),\n lantmateriet: SwedishOrganizationNumber.parse(\"202100-4888\"),\n kronofogden: SwedishOrganizationNumber.parse(\"202100-2809\"),\n transportstyrelsen: SwedishOrganizationNumber.parse(\"202100-6099\"),\n migrationsverket: SwedishOrganizationNumber.parse(\"202100-2163\"),\n tullverket: SwedishOrganizationNumber.parse(\"202100-0969\"),\n});\n\nconst EuVatNumberSamples = Object.freeze({\n budiAB: EuVatNumber.parse(\"SE559246042101\"),\n systembolaget: EuVatNumber.parse(\"SE556059947301\"),\n sj: EuVatNumber.parse(\"SE556196159901\"),\n postNord: EuVatNumber.parse(\"SE556711569501\"),\n vattenfall: EuVatNumber.parse(\"SE556036213801\"),\n samhall: EuVatNumber.parse(\"SE556448139701\"),\n lkab: EuVatNumber.parse(\"SE556001583501\"),\n svt: EuVatNumber.parse(\"SE556033428501\"),\n sverigesRadio: EuVatNumber.parse(\"SE556419323201\"),\n telia: EuVatNumber.parse(\"SE556430014201\"),\n});\n\nconst LeiCodeSamples = Object.freeze({\n vattenfall: LeiCode.parse(\"549300T5RZ1HA5HZ3109\"),\n lkab: LeiCode.parse(\"549300ONBUTV20237K19\"),\n folksam: LeiCode.parse(\"5493003384H0SVUD4J19\"),\n});\n\nconst DunsNumberSamples = Object.freeze({\n budiAB: DunsNumber.parse(\"350827673\"),\n});\n\nconst ElfCodeSamples = Object.freeze({\n aktiebolag: ElfCode.parse(\"XTIQ\"),\n handelsbolag: ElfCode.parse(\"N2GY\"),\n enskildFirma: ElfCode.parse(\"WJEL\"),\n stiftelse: ElfCode.parse(\"CLBQ\"),\n});\n\nconst SwedishSniCodeSamples = Object.freeze({\n budiAB: SwedishSniCode.parse(\"47917\"),\n systembolaget: SwedishSniCode.parse(\"47250\"),\n sj: SwedishSniCode.parse(\"49100\"),\n postNord: SwedishSniCode.parse(\"53100\"),\n vattenfall: SwedishSniCode.parse(\"35120\"),\n samhall: SwedishSniCode.parse(\"81210\"),\n lkab: SwedishSniCode.parse(\"07100\"),\n telia: SwedishSniCode.parse(\"61100\"),\n skr: SwedishSniCode.parse(\"94112\"),\n svenskaKyrkan: SwedishSniCode.parse(\"94910\"),\n folksam: SwedishSniCode.parse(\"65120\"),\n lantmannen: SwedishSniCode.parse(\"46210\"),\n kooperativaForbundet: SwedishSniCode.parse(\"70100\"),\n});\n\nexport const ContactSampleData = Object.freeze({\n PhoneNumber: Object.freeze({\n ...PhoneNumberSamples,\n all: Object.freeze(Object.values(PhoneNumberSamples)),\n }),\n});\n\nexport const GeographySampleData = Object.freeze({\n SwedishCounty: Object.freeze({\n ...SwedishCountySamples,\n all: Object.freeze(Object.values(SwedishCountySamples)),\n }),\n SwedishMunicipality: Object.freeze({\n ...SwedishMunicipalitySamples,\n all: Object.freeze(Object.values(SwedishMunicipalitySamples)),\n }),\n Language: Object.freeze({\n ...LanguageSamples,\n all: Object.freeze(Object.values(LanguageSamples)),\n }),\n GeoCoordinate: Object.freeze({\n ...GeoCoordinateSamples,\n all: Object.freeze(Object.values(GeoCoordinateSamples)),\n }),\n});\n\nconst EmailAddressSamples = Object.freeze({\n samhall: EmailAddress.parse(\"kontakt@samhall.se\"),\n lkab: EmailAddress.parse(\"redovisning@lkab.com\"),\n example: EmailAddress.parse(\"user@example.com\"),\n exampleOrg: EmailAddress.parse(\"info@example.org\"),\n});\n\nconst UrlSamples = Object.freeze({\n samhall: Url.parse(\"https://samhall.se\"),\n lkab: Url.parse(\"https://lkab.com\"),\n example: Url.parse(\"https://example.com\"),\n exampleOrg: Url.parse(\"https://example.org\"),\n});\n\nexport const WebSampleData = Object.freeze({\n EmailAddress: Object.freeze({\n ...EmailAddressSamples,\n all: Object.freeze(Object.values(EmailAddressSamples)),\n }),\n Url: Object.freeze({\n ...UrlSamples,\n all: Object.freeze(Object.values(UrlSamples)),\n }),\n});\n\nconst CurrencySamples = Object.freeze({\n sek: Currency.SEK,\n eur: Currency.EUR,\n usd: Currency.USD,\n nok: Currency.NOK,\n dkk: Currency.DKK,\n gbp: Currency.GBP,\n});\n\nconst IsinSamples = Object.freeze({\n ericsson: Isin.parse(\"SE0000108656\"),\n telia: Isin.parse(\"SE0000667891\"),\n apple: Isin.parse(\"US0378331005\"),\n});\n\nconst MoneyAmountSamples = Object.freeze({\n oneThousandSek: MoneyAmount.create(1000, Currency.SEK),\n hundredEur: MoneyAmount.create(100, Currency.EUR),\n fiveHundredUsd: MoneyAmount.create(500, Currency.USD),\n});\n\nexport const FinanceSampleData = Object.freeze({\n Currency: Object.freeze({\n ...CurrencySamples,\n all: Object.freeze(Object.values(CurrencySamples)),\n }),\n Isin: Object.freeze({\n ...IsinSamples,\n all: Object.freeze(Object.values(IsinSamples)),\n }),\n MoneyAmount: Object.freeze({\n ...MoneyAmountSamples,\n all: Object.freeze(Object.values(MoneyAmountSamples)),\n }),\n});\n\nconst SwedishPropertyDesignationSamples = Object.freeze({\n uppsalaDomkyrka: SwedishPropertyDesignation.parse(\"Uppsala Fj\u00E4rdingen 22:1\"),\n genericUrban: SwedishPropertyDesignation.parse(\"Stockholm Norrmalm 3:12\"),\n genericRural: SwedishPropertyDesignation.parse(\"G\u00E4vle Olsbacka 11:1\"),\n});\n\nconst SwedishPropertyTaxationCodeSamples = Object.freeze({\n smahusBebyggd: SwedishPropertyTaxationCode.parse(\"220\"),\n hyreshusBostad: SwedishPropertyTaxationCode.parse(\"320\"),\n industriBebyggd: SwedishPropertyTaxationCode.parse(\"420\"),\n});\n\nexport const PropertySampleData = Object.freeze({\n SwedishPropertyDesignation: Object.freeze({\n ...SwedishPropertyDesignationSamples,\n all: Object.freeze(Object.values(SwedishPropertyDesignationSamples)),\n }),\n SwedishPropertyTaxationCode: Object.freeze({\n ...SwedishPropertyTaxationCodeSamples,\n all: Object.freeze(Object.values(SwedishPropertyTaxationCodeSamples)),\n }),\n});\n\nconst IbanSamples = Object.freeze({\n vattenfall: Iban.parse(\"SE7495000099604203849767\"),\n swedishGeneric: Iban.parse(\"SE4550000000058398257466\"),\n germanGeneric: Iban.parse(\"DE89370400440532013000\"),\n britishGeneric: Iban.parse(\"GB29NWBK60161331926819\"),\n});\n\nconst BicSamples = Object.freeze({\n nordea: Bic.parse(\"NDEASESS\"),\n seb: Bic.parse(\"ESSESESS\"),\n swedbank: Bic.parse(\"SWEDSESS\"),\n handelsbanken: Bic.parse(\"HANDSESS\"),\n});\n\nconst SwedishBankgiroNumberSamples = Object.freeze({\n budiAB: SwedishBankgiroNumber.parse(\"235-9321\"),\n vattenfall: SwedishBankgiroNumber.parse(\"5110-8348\"),\n telia: SwedishBankgiroNumber.parse(\"5117-7913\"),\n svenskaKyrkan: SwedishBankgiroNumber.parse(\"900-1223\"),\n});\n\nconst SwedishPostgiroNumberSamples = Object.freeze({\n vattenfall: SwedishPostgiroNumber.parse(\"4131300-8\"),\n svenskaKyrkan: SwedishPostgiroNumber.parse(\"900122-3\"),\n});\n\nconst SwedishOcrReferenceNumberSamples = Object.freeze({\n generic: SwedishOcrReferenceNumber.parse(\"12345674\"),\n short: SwedishOcrReferenceNumber.parse(\"18\"),\n});\n\nconst SwedishBankClearingNumberSamples = Object.freeze({\n seb: SwedishBankClearingNumber.parse(\"5001\"),\n handelsbanken: SwedishBankClearingNumber.parse(\"6789\"),\n swedbank: SwedishBankClearingNumber.parse(\"81234\"),\n nordeaPersonkonto: SwedishBankClearingNumber.parse(\"3300\"),\n});\n\nconst SwedishBankAccountSamples = Object.freeze({\n seb: SwedishBankAccount.parse(\"50011234567\"),\n swedbank: SwedishBankAccount.parse(\"81234123456\"),\n nordeaPersonkonto: SwedishBankAccount.parse(\"33001234567890\"),\n});\n\nconst SwedishBankAccountHolderNameSamples = Object.freeze({\n person: SwedishBankAccountHolderName.parse(\"Anna Andersson\"),\n organization: SwedishBankAccountHolderName.parse(\"VOLVO AB\"),\n});\n\nconst SwedishSwishNumberSamples = Object.freeze({\n rodaKorset: SwedishSwishNumber.parse(\"1236652895\"),\n raddaBarnen: SwedishSwishNumber.parse(\"9020033\"),\n});\n\nexport const BankingSampleData = Object.freeze({\n Iban: Object.freeze({\n ...IbanSamples,\n all: Object.freeze(Object.values(IbanSamples)),\n }),\n Bic: Object.freeze({\n ...BicSamples,\n all: Object.freeze(Object.values(BicSamples)),\n }),\n SwedishBankgiroNumber: Object.freeze({\n ...SwedishBankgiroNumberSamples,\n all: Object.freeze(Object.values(SwedishBankgiroNumberSamples)),\n }),\n SwedishPostgiroNumber: Object.freeze({\n ...SwedishPostgiroNumberSamples,\n all: Object.freeze(Object.values(SwedishPostgiroNumberSamples)),\n }),\n SwedishOcrReferenceNumber: Object.freeze({\n ...SwedishOcrReferenceNumberSamples,\n all: Object.freeze(Object.values(SwedishOcrReferenceNumberSamples)),\n }),\n SwedishBankClearingNumber: Object.freeze({\n ...SwedishBankClearingNumberSamples,\n all: Object.freeze(Object.values(SwedishBankClearingNumberSamples)),\n }),\n SwedishBankAccount: Object.freeze({\n ...SwedishBankAccountSamples,\n all: Object.freeze(Object.values(SwedishBankAccountSamples)),\n }),\n SwedishBankAccountHolderName: Object.freeze({\n ...SwedishBankAccountHolderNameSamples,\n all: Object.freeze(Object.values(SwedishBankAccountHolderNameSamples)),\n }),\n SwedishSwishNumber: Object.freeze({\n ...SwedishSwishNumberSamples,\n all: Object.freeze(Object.values(SwedishSwishNumberSamples)),\n }),\n});\n\nexport const OrganizationSampleData = Object.freeze({\n OrganizationNumber: Object.freeze({\n ...OrganizationNumberSamples,\n all: Object.freeze(Object.values(OrganizationNumberSamples)),\n }),\n EuVatNumber: Object.freeze({\n ...EuVatNumberSamples,\n all: Object.freeze(Object.values(EuVatNumberSamples)),\n }),\n LeiCode: Object.freeze({\n ...LeiCodeSamples,\n all: Object.freeze(Object.values(LeiCodeSamples)),\n }),\n DunsNumber: Object.freeze({\n ...DunsNumberSamples,\n all: Object.freeze(Object.values(DunsNumberSamples)),\n }),\n ElfCode: Object.freeze({\n ...ElfCodeSamples,\n all: Object.freeze(Object.values(ElfCodeSamples)),\n }),\n SwedishSniCode: Object.freeze({\n ...SwedishSniCodeSamples,\n all: Object.freeze(Object.values(SwedishSniCodeSamples)),\n }),\n});\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { PhoneNumber } from \"../contact/index.js\";\nimport { GeoCoordinate, Language, SwedishCounty, SwedishMunicipality } from \"../geography/index.js\";\nimport {\n DunsNumber,\n ElfCode,\n EuVatNumber,\n LeiCode,\n SwedishOrganizationNumber,\n SwedishSniCode,\n} from \"../organization/index.js\";\nimport { EmailAddress, Url } from \"../web/index.js\";\nimport { Currency, Isin, MoneyAmount } from \"../finance/index.js\";\nimport { SwedishPropertyDesignation, SwedishPropertyTaxationCode } from \"../property/index.js\";\nimport { WatercraftIdentificationNumber } from \"../vehicle/index.js\";\nimport {\n Bic,\n Iban,\n SwedishBankAccount,\n SwedishBankAccountHolderName,\n SwedishBankClearingNumber,\n SwedishBankgiroNumber,\n SwedishOcrReferenceNumber,\n SwedishPostgiroNumber,\n SwedishSwishNumber,\n} from \"../banking/index.js\";\n\nconst PhoneNumberSamples = Object.freeze({\n systembolaget: PhoneNumber.parse(\"+46850330000\"),\n sj: PhoneNumber.parse(\"+46107516000\"),\n vattenfall: PhoneNumber.parse(\"+4687396000\"),\n samhall: PhoneNumber.parse(\"+4620572572\"),\n stockholmsKommun: PhoneNumber.parse(\"+46850829000\"),\n svenskaKyrkan: PhoneNumber.parse(\"+4618169500\"),\n folksam: PhoneNumber.parse(\"+46771950950\"),\n kooperativaForbundet: PhoneNumber.parse(\"+46107400000\"),\n swedishMobileTest: PhoneNumber.parse(\"+46701740605\"),\n swedishFixedTest: PhoneNumber.parse(\"+46846500400\"),\n});\n\nconst SwedishCountySamples = Object.freeze({\n stockholm: SwedishCounty.parse(\"01\"),\n uppsala: SwedishCounty.parse(\"03\"),\n vastraGotaland: SwedishCounty.parse(\"14\"),\n skane: SwedishCounty.parse(\"12\"),\n norrbotten: SwedishCounty.parse(\"25\"),\n});\n\nconst SwedishMunicipalitySamples = Object.freeze({\n stockholm: SwedishMunicipality.parse(\"Stockholm\"),\n solna: SwedishMunicipality.parse(\"Solna\"),\n uppsala: SwedishMunicipality.parse(\"Uppsala\"),\n lulea: SwedishMunicipality.parse(\"Lule\u00E5\"),\n goteborg: SwedishMunicipality.parse(\"G\u00F6teborg\"),\n malmo: SwedishMunicipality.parse(\"Malm\u00F6\"),\n});\n\nconst LanguageSamples = Object.freeze({\n swedish: Language.parse(\"sv\"),\n english: Language.parse(\"en\"),\n german: Language.parse(\"de\"),\n french: Language.parse(\"fr\"),\n spanish: Language.parse(\"es\"),\n arabic: Language.parse(\"ar\"),\n finnish: Language.parse(\"fi\"),\n norwegian: Language.parse(\"no\"),\n danish: Language.parse(\"da\"),\n});\n\nconst GeoCoordinateSamples = Object.freeze({\n stockholm: GeoCoordinate.parse(\"59.3293, 18.0686\"),\n gothenburg: GeoCoordinate.parse(\"57.7089, 11.9746\"),\n malmo: GeoCoordinate.parse(\"55.6050, 13.0038\"),\n lulea: GeoCoordinate.parse(\"65.5848, 22.1547\"),\n nullIsland: GeoCoordinate.parse(\"0, 0\"),\n});\n\nconst OrganizationNumberSamples = Object.freeze({\n budiAB: SwedishOrganizationNumber.parse(\"559246-0421\"),\n systembolaget: SwedishOrganizationNumber.parse(\"556059-9473\"),\n sj: SwedishOrganizationNumber.parse(\"556196-1599\"),\n postNord: SwedishOrganizationNumber.parse(\"556711-5695\"),\n vattenfall: SwedishOrganizationNumber.parse(\"556036-2138\"),\n samhall: SwedishOrganizationNumber.parse(\"556448-1397\"),\n lkab: SwedishOrganizationNumber.parse(\"556001-5835\"),\n svt: SwedishOrganizationNumber.parse(\"556033-4285\"),\n sverigesRadio: SwedishOrganizationNumber.parse(\"556419-3232\"),\n telia: SwedishOrganizationNumber.parse(\"556430-0142\"),\n stockholmsKommun: SwedishOrganizationNumber.parse(\"212000-0142\"),\n skr: SwedishOrganizationNumber.parse(\"222000-0315\"),\n svenskaKyrkan: SwedishOrganizationNumber.parse(\"252002-6135\"),\n folksam: SwedishOrganizationNumber.parse(\"502006-1619\"),\n lantmannen: SwedishOrganizationNumber.parse(\"769605-2856\"),\n kooperativaForbundet: SwedishOrganizationNumber.parse(\"702001-1693\"),\n skatteverket: SwedishOrganizationNumber.parse(\"202100-5448\"),\n forsakringskassan: SwedishOrganizationNumber.parse(\"202100-5521\"),\n arbetsformedlingen: SwedishOrganizationNumber.parse(\"202100-2114\"),\n bolagsverket: SwedishOrganizationNumber.parse(\"202100-5000\"),\n trafikverket: SwedishOrganizationNumber.parse(\"202100-6297\"),\n lantmateriet: SwedishOrganizationNumber.parse(\"202100-4888\"),\n kronofogden: SwedishOrganizationNumber.parse(\"202100-2809\"),\n transportstyrelsen: SwedishOrganizationNumber.parse(\"202100-6099\"),\n migrationsverket: SwedishOrganizationNumber.parse(\"202100-2163\"),\n tullverket: SwedishOrganizationNumber.parse(\"202100-0969\"),\n});\n\nconst EuVatNumberSamples = Object.freeze({\n budiAB: EuVatNumber.parse(\"SE559246042101\"),\n systembolaget: EuVatNumber.parse(\"SE556059947301\"),\n sj: EuVatNumber.parse(\"SE556196159901\"),\n postNord: EuVatNumber.parse(\"SE556711569501\"),\n vattenfall: EuVatNumber.parse(\"SE556036213801\"),\n samhall: EuVatNumber.parse(\"SE556448139701\"),\n lkab: EuVatNumber.parse(\"SE556001583501\"),\n svt: EuVatNumber.parse(\"SE556033428501\"),\n sverigesRadio: EuVatNumber.parse(\"SE556419323201\"),\n telia: EuVatNumber.parse(\"SE556430014201\"),\n});\n\nconst LeiCodeSamples = Object.freeze({\n vattenfall: LeiCode.parse(\"549300T5RZ1HA5HZ3109\"),\n lkab: LeiCode.parse(\"549300ONBUTV20237K19\"),\n folksam: LeiCode.parse(\"5493003384H0SVUD4J19\"),\n});\n\nconst DunsNumberSamples = Object.freeze({\n budiAB: DunsNumber.parse(\"350827673\"),\n});\n\nconst ElfCodeSamples = Object.freeze({\n aktiebolag: ElfCode.parse(\"XTIQ\"),\n handelsbolag: ElfCode.parse(\"N2GY\"),\n enskildFirma: ElfCode.parse(\"WJEL\"),\n stiftelse: ElfCode.parse(\"CLBQ\"),\n});\n\nconst SwedishSniCodeSamples = Object.freeze({\n budiAB: SwedishSniCode.parse(\"47917\"),\n systembolaget: SwedishSniCode.parse(\"47250\"),\n sj: SwedishSniCode.parse(\"49100\"),\n postNord: SwedishSniCode.parse(\"53100\"),\n vattenfall: SwedishSniCode.parse(\"35120\"),\n samhall: SwedishSniCode.parse(\"81210\"),\n lkab: SwedishSniCode.parse(\"07100\"),\n telia: SwedishSniCode.parse(\"61100\"),\n skr: SwedishSniCode.parse(\"94112\"),\n svenskaKyrkan: SwedishSniCode.parse(\"94910\"),\n folksam: SwedishSniCode.parse(\"65120\"),\n lantmannen: SwedishSniCode.parse(\"46210\"),\n kooperativaForbundet: SwedishSniCode.parse(\"70100\"),\n});\n\nexport const ContactSampleData = Object.freeze({\n PhoneNumber: Object.freeze({\n ...PhoneNumberSamples,\n all: Object.freeze(Object.values(PhoneNumberSamples)),\n }),\n});\n\nexport const GeographySampleData = Object.freeze({\n SwedishCounty: Object.freeze({\n ...SwedishCountySamples,\n all: Object.freeze(Object.values(SwedishCountySamples)),\n }),\n SwedishMunicipality: Object.freeze({\n ...SwedishMunicipalitySamples,\n all: Object.freeze(Object.values(SwedishMunicipalitySamples)),\n }),\n Language: Object.freeze({\n ...LanguageSamples,\n all: Object.freeze(Object.values(LanguageSamples)),\n }),\n GeoCoordinate: Object.freeze({\n ...GeoCoordinateSamples,\n all: Object.freeze(Object.values(GeoCoordinateSamples)),\n }),\n});\n\nconst EmailAddressSamples = Object.freeze({\n samhall: EmailAddress.parse(\"kontakt@samhall.se\"),\n lkab: EmailAddress.parse(\"redovisning@lkab.com\"),\n example: EmailAddress.parse(\"user@example.com\"),\n exampleOrg: EmailAddress.parse(\"info@example.org\"),\n});\n\nconst UrlSamples = Object.freeze({\n samhall: Url.parse(\"https://samhall.se\"),\n lkab: Url.parse(\"https://lkab.com\"),\n example: Url.parse(\"https://example.com\"),\n exampleOrg: Url.parse(\"https://example.org\"),\n});\n\nexport const WebSampleData = Object.freeze({\n EmailAddress: Object.freeze({\n ...EmailAddressSamples,\n all: Object.freeze(Object.values(EmailAddressSamples)),\n }),\n Url: Object.freeze({\n ...UrlSamples,\n all: Object.freeze(Object.values(UrlSamples)),\n }),\n});\n\nconst CurrencySamples = Object.freeze({\n sek: Currency.SEK,\n eur: Currency.EUR,\n usd: Currency.USD,\n nok: Currency.NOK,\n dkk: Currency.DKK,\n gbp: Currency.GBP,\n});\n\nconst IsinSamples = Object.freeze({\n ericsson: Isin.parse(\"SE0000108656\"),\n telia: Isin.parse(\"SE0000667891\"),\n apple: Isin.parse(\"US0378331005\"),\n});\n\nconst MoneyAmountSamples = Object.freeze({\n oneThousandSek: MoneyAmount.create(1000, Currency.SEK),\n hundredEur: MoneyAmount.create(100, Currency.EUR),\n fiveHundredUsd: MoneyAmount.create(500, Currency.USD),\n});\n\nexport const FinanceSampleData = Object.freeze({\n Currency: Object.freeze({\n ...CurrencySamples,\n all: Object.freeze(Object.values(CurrencySamples)),\n }),\n Isin: Object.freeze({\n ...IsinSamples,\n all: Object.freeze(Object.values(IsinSamples)),\n }),\n MoneyAmount: Object.freeze({\n ...MoneyAmountSamples,\n all: Object.freeze(Object.values(MoneyAmountSamples)),\n }),\n});\n\nconst SwedishPropertyDesignationSamples = Object.freeze({\n uppsalaDomkyrka: SwedishPropertyDesignation.parse(\"Uppsala Fj\u00E4rdingen 22:1\"),\n genericUrban: SwedishPropertyDesignation.parse(\"Stockholm Norrmalm 3:12\"),\n genericRural: SwedishPropertyDesignation.parse(\"G\u00E4vle Olsbacka 11:1\"),\n});\n\nconst SwedishPropertyTaxationCodeSamples = Object.freeze({\n smahusBebyggd: SwedishPropertyTaxationCode.parse(\"220\"),\n hyreshusBostad: SwedishPropertyTaxationCode.parse(\"320\"),\n industriBebyggd: SwedishPropertyTaxationCode.parse(\"420\"),\n});\n\nconst WatercraftIdentificationNumberSamples = Object.freeze({\n /** The worked example in ISO 10087:2022 \u00A74.6. */\n iso10087Example: WatercraftIdentificationNumber.parse(\"NL-HXAB7A33G506\"),\n /**\n * A US HIN constructed for this library: an all-Z manufacturer code and serial number `00001`.\n * It has not been checked against the Coast Guard's register of manufacturer codes.\n */\n unitedStatesExample: WatercraftIdentificationNumber.parse(\"ZZZ00001A020\"),\n});\n\nexport const PropertySampleData = Object.freeze({\n SwedishPropertyDesignation: Object.freeze({\n ...SwedishPropertyDesignationSamples,\n all: Object.freeze(Object.values(SwedishPropertyDesignationSamples)),\n }),\n SwedishPropertyTaxationCode: Object.freeze({\n ...SwedishPropertyTaxationCodeSamples,\n all: Object.freeze(Object.values(SwedishPropertyTaxationCodeSamples)),\n }),\n});\n\nexport const VehicleSampleData = Object.freeze({\n WatercraftIdentificationNumber: Object.freeze({\n ...WatercraftIdentificationNumberSamples,\n all: Object.freeze(Object.values(WatercraftIdentificationNumberSamples)),\n }),\n});\n\nconst IbanSamples = Object.freeze({\n vattenfall: Iban.parse(\"SE7495000099604203849767\"),\n swedishGeneric: Iban.parse(\"SE4550000000058398257466\"),\n germanGeneric: Iban.parse(\"DE89370400440532013000\"),\n britishGeneric: Iban.parse(\"GB29NWBK60161331926819\"),\n});\n\nconst BicSamples = Object.freeze({\n nordea: Bic.parse(\"NDEASESS\"),\n seb: Bic.parse(\"ESSESESS\"),\n swedbank: Bic.parse(\"SWEDSESS\"),\n handelsbanken: Bic.parse(\"HANDSESS\"),\n});\n\nconst SwedishBankgiroNumberSamples = Object.freeze({\n budiAB: SwedishBankgiroNumber.parse(\"235-9321\"),\n vattenfall: SwedishBankgiroNumber.parse(\"5110-8348\"),\n telia: SwedishBankgiroNumber.parse(\"5117-7913\"),\n svenskaKyrkan: SwedishBankgiroNumber.parse(\"900-1223\"),\n});\n\nconst SwedishPostgiroNumberSamples = Object.freeze({\n vattenfall: SwedishPostgiroNumber.parse(\"4131300-8\"),\n svenskaKyrkan: SwedishPostgiroNumber.parse(\"900122-3\"),\n});\n\nconst SwedishOcrReferenceNumberSamples = Object.freeze({\n generic: SwedishOcrReferenceNumber.parse(\"12345674\"),\n short: SwedishOcrReferenceNumber.parse(\"18\"),\n});\n\nconst SwedishBankClearingNumberSamples = Object.freeze({\n seb: SwedishBankClearingNumber.parse(\"5001\"),\n handelsbanken: SwedishBankClearingNumber.parse(\"6789\"),\n swedbank: SwedishBankClearingNumber.parse(\"81234\"),\n nordeaPersonkonto: SwedishBankClearingNumber.parse(\"3300\"),\n});\n\nconst SwedishBankAccountSamples = Object.freeze({\n seb: SwedishBankAccount.parse(\"50011234567\"),\n swedbank: SwedishBankAccount.parse(\"81234123456\"),\n nordeaPersonkonto: SwedishBankAccount.parse(\"33001234567890\"),\n});\n\nconst SwedishBankAccountHolderNameSamples = Object.freeze({\n person: SwedishBankAccountHolderName.parse(\"Anna Andersson\"),\n organization: SwedishBankAccountHolderName.parse(\"VOLVO AB\"),\n});\n\nconst SwedishSwishNumberSamples = Object.freeze({\n rodaKorset: SwedishSwishNumber.parse(\"1236652895\"),\n raddaBarnen: SwedishSwishNumber.parse(\"9020033\"),\n});\n\nexport const BankingSampleData = Object.freeze({\n Iban: Object.freeze({\n ...IbanSamples,\n all: Object.freeze(Object.values(IbanSamples)),\n }),\n Bic: Object.freeze({\n ...BicSamples,\n all: Object.freeze(Object.values(BicSamples)),\n }),\n SwedishBankgiroNumber: Object.freeze({\n ...SwedishBankgiroNumberSamples,\n all: Object.freeze(Object.values(SwedishBankgiroNumberSamples)),\n }),\n SwedishPostgiroNumber: Object.freeze({\n ...SwedishPostgiroNumberSamples,\n all: Object.freeze(Object.values(SwedishPostgiroNumberSamples)),\n }),\n SwedishOcrReferenceNumber: Object.freeze({\n ...SwedishOcrReferenceNumberSamples,\n all: Object.freeze(Object.values(SwedishOcrReferenceNumberSamples)),\n }),\n SwedishBankClearingNumber: Object.freeze({\n ...SwedishBankClearingNumberSamples,\n all: Object.freeze(Object.values(SwedishBankClearingNumberSamples)),\n }),\n SwedishBankAccount: Object.freeze({\n ...SwedishBankAccountSamples,\n all: Object.freeze(Object.values(SwedishBankAccountSamples)),\n }),\n SwedishBankAccountHolderName: Object.freeze({\n ...SwedishBankAccountHolderNameSamples,\n all: Object.freeze(Object.values(SwedishBankAccountHolderNameSamples)),\n }),\n SwedishSwishNumber: Object.freeze({\n ...SwedishSwishNumberSamples,\n all: Object.freeze(Object.values(SwedishSwishNumberSamples)),\n }),\n});\n\nexport const OrganizationSampleData = Object.freeze({\n OrganizationNumber: Object.freeze({\n ...OrganizationNumberSamples,\n all: Object.freeze(Object.values(OrganizationNumberSamples)),\n }),\n EuVatNumber: Object.freeze({\n ...EuVatNumberSamples,\n all: Object.freeze(Object.values(EuVatNumberSamples)),\n }),\n LeiCode: Object.freeze({\n ...LeiCodeSamples,\n all: Object.freeze(Object.values(LeiCodeSamples)),\n }),\n DunsNumber: Object.freeze({\n ...DunsNumberSamples,\n all: Object.freeze(Object.values(DunsNumberSamples)),\n }),\n ElfCode: Object.freeze({\n ...ElfCodeSamples,\n all: Object.freeze(Object.values(ElfCodeSamples)),\n }),\n SwedishSniCode: Object.freeze({\n ...SwedishSniCodeSamples,\n all: Object.freeze(Object.values(SwedishSniCodeSamples)),\n }),\n});\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -172,6 +172,9 @@ class TextScanResult {
172
172
  get vehicleIdentificationNumbers() {
173
173
  return this.byTypeName("VehicleIdentificationNumber");
174
174
  }
175
+ get watercraftIdentificationNumbers() {
176
+ return this.byTypeName("WatercraftIdentificationNumber");
177
+ }
175
178
  get operatingHourValues() {
176
179
  return this.byTypeName("OperatingHours");
177
180
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/text-scanning/text-scan-result.ts"],
4
- "sourcesContent": ["import { TextCandidate } from \"./text-candidate.js\";\nimport { TextCandidateCategory } from \"./text-candidate-category.js\";\nimport { TextMatchConfidence } from \"./text-match-confidence.js\";\n\n// Type-only imports: every scannable type imports this module for `TextCandidate`,\n// so importing them as values would form a cycle. These are erased at compile time.\nimport type { Iban } from \"../banking/iban.js\";\nimport type { Bic } from \"../banking/bic.js\";\nimport type { SwedishBankAccount } from \"../banking/swedish-bank-account.js\";\nimport type { SwedishBankgiroNumber } from \"../banking/swedish-bankgiro-number.js\";\nimport type { SwedishOcrReferenceNumber } from \"../banking/swedish-ocr-reference-number.js\";\nimport type { SwedishPostgiroNumber } from \"../banking/swedish-postgiro-number.js\";\nimport type { SwedishSwishNumber } from \"../banking/swedish-swish-number.js\";\nimport type { Address } from \"../contact/address.js\";\nimport type { AddressZipCode } from \"../contact/address-zip-code.js\";\nimport type { PhoneNumber } from \"../contact/phone-number.js\";\nimport type { SwedishAddress } from \"../contact/swedish-address.js\";\nimport type { Isin } from \"../finance/isin.js\";\nimport type { Area } from \"../measurement/area.js\";\nimport type { DataSize } from \"../measurement/data-size.js\";\nimport type { ElectricCharge } from \"../measurement/electric-charge.js\";\nimport type { ElectricCurrent } from \"../measurement/electric-current.js\";\nimport type { Energy } from \"../measurement/energy.js\";\nimport type { FlowRate } from \"../measurement/flow-rate.js\";\nimport type { Frequency } from \"../measurement/frequency.js\";\nimport type { Length } from \"../measurement/length.js\";\nimport type { Luminance } from \"../measurement/luminance.js\";\nimport type { LuminousFlux } from \"../measurement/luminous-flux.js\";\nimport type { Percentage } from \"../measurement/percentage.js\";\nimport type { Power } from \"../measurement/power.js\";\nimport type { SoundLevel } from \"../measurement/sound-level.js\";\nimport type { Pressure } from \"../measurement/pressure.js\";\nimport type { RotationalSpeed } from \"../measurement/rotational-speed.js\";\nimport type { Speed } from \"../measurement/speed.js\";\nimport type { Temperature } from \"../measurement/temperature.js\";\nimport type { Torque } from \"../measurement/torque.js\";\nimport type { Voltage } from \"../measurement/voltage.js\";\nimport type { Volume } from \"../measurement/volume.js\";\nimport type { Weight } from \"../measurement/weight.js\";\nimport type { Country } from \"../geography/country.js\";\nimport type { SwedishCounty } from \"../geography/swedish-county.js\";\nimport type { SwedishMunicipality } from \"../geography/swedish-municipality.js\";\nimport type { DunsNumber } from \"../organization/duns-number.js\";\nimport type { EuVatNumber } from \"../organization/eu-vat-number.js\";\nimport type { LeiCode } from \"../organization/lei-code.js\";\nimport type { SwedishOrganizationNumber } from \"../organization/swedish-organization-number.js\";\nimport type { SwedishCoordinationNumber } from \"../person/swedish-coordination-number.js\";\nimport type { SwedishPersonalIdentityNumber } from \"../person/swedish-personal-identity-number.js\";\nimport type { SwedishPropertyDesignation } from \"../property/swedish-property-designation.js\";\nimport type { EmailAddress } from \"../web/email-address.js\";\nimport type { Url } from \"../web/url.js\";\nimport type { Color } from \"../product/color.js\";\nimport type { ElectricalPhase } from \"../product/electrical-phase.js\";\nimport type { Gtin8 } from \"../product/gtin8.js\";\nimport type { Gtin12 } from \"../product/gtin12.js\";\nimport type { Gtin13 } from \"../product/gtin13.js\";\nimport type { Gtin14 } from \"../product/gtin14.js\";\nimport type { IpRating } from \"../product/ip-rating.js\";\nimport type { Refrigerant } from \"../product/refrigerant.js\";\nimport type { ScreenResolution } from \"../product/screen-resolution.js\";\nimport type { ScreenSize } from \"../product/screen-size.js\";\nimport type { BoltPattern } from \"../vehicle/bolt-pattern.js\";\nimport type { EmissionRate } from \"../vehicle/emission-rate.js\";\nimport type { EnginePower } from \"../vehicle/engine-power.js\";\nimport type { EuTypeApprovalNumber } from \"../vehicle/eu-type-approval-number.js\";\nimport type { EuroEmissionClass } from \"../vehicle/euro-emission-class.js\";\nimport type { FuelConsumption } from \"../vehicle/fuel-consumption.js\";\nimport type { OperatingHours } from \"../vehicle/operating-hours.js\";\nimport type { SwedishDrivingLicenseCategory } from \"../vehicle/swedish-driving-license-category.js\";\nimport type { SwedishEcoVehicleClassification } from \"../vehicle/swedish-eco-vehicle-classification.js\";\nimport type { SwedishVehicleRegistrationNumber } from \"../vehicle/swedish-vehicle-registration-number.js\";\nimport type { TireDimension } from \"../vehicle/tire-dimension.js\";\nimport type { VehicleIdentificationNumber } from \"../vehicle/vehicle-identification-number.js\";\nimport type { WheelRimDimension } from \"../vehicle/wheel-rim-dimension.js\";\n\n/**\n * The result of scanning unstructured text for structured value types.\n * Contains all found candidates, a resolved non-overlapping subset, and\n * methods for bulk replacement / masking.\n *\n * Text scanning is heuristic-based. Candidates may be false positives, and\n * valid occurrences may be missed.\n */\nexport class TextScanResult {\n /** All candidates sorted by `startIndex`, including overlapping ones. */\n readonly all: readonly TextCandidate[];\n /**\n * Non-overlapping subset after resolution. When candidates overlap or one\n * contains another, the winner is chosen by: containment (longer enclosing\n * match wins), then higher {@link TextMatchConfidence}, then longer span,\n * then category priority.\n */\n readonly resolvedCandidates: readonly TextCandidate[];\n\n constructor(candidates: readonly TextCandidate[]) {\n const sorted = [...candidates].sort((a, b) => a.startIndex - b.startIndex);\n this.all = Object.freeze(sorted);\n this.resolvedCandidates = Object.freeze(resolve(sorted));\n }\n\n get totalCount(): number {\n return this.all.length;\n }\n\n /** Returns the number of candidates in the given category. */\n countByCategory(category: TextCandidateCategory): number {\n return this.all.reduce((acc, c) => (c.category === category ? acc + 1 : acc), 0);\n }\n\n /** Returns the number of candidates at or above the given confidence level. */\n countByConfidence(minimum: TextMatchConfidence): number {\n return this.all.reduce((acc, c) => (c.confidence >= minimum ? acc + 1 : acc), 0);\n }\n\n /** Returns all candidates whose `typeName` equals `typeName`. */\n byTypeName<T = unknown>(typeName: string): TextCandidate<T>[] {\n return this.all.filter((c) => c.typeName === typeName) as TextCandidate<T>[];\n }\n\n // Typed accessors. Each returns every candidate of that type from `all`,\n // before overlap resolution.\n\n get emails(): TextCandidate<EmailAddress>[] {\n return this.byTypeName<EmailAddress>(\"EmailAddress\");\n }\n get urls(): TextCandidate<Url>[] {\n return this.byTypeName<Url>(\"Url\");\n }\n get phoneNumbers(): TextCandidate<PhoneNumber>[] {\n return this.byTypeName<PhoneNumber>(\"PhoneNumber\");\n }\n get zipCodes(): TextCandidate<AddressZipCode>[] {\n return this.byTypeName<AddressZipCode>(\"AddressZipCode\");\n }\n get addresses(): TextCandidate<Address>[] {\n return this.byTypeName<Address>(\"Address\");\n }\n get swedishAddresses(): TextCandidate<SwedishAddress>[] {\n return this.byTypeName<SwedishAddress>(\"SwedishAddress\");\n }\n\n get personalIdentityNumbers(): TextCandidate<SwedishPersonalIdentityNumber>[] {\n return this.byTypeName<SwedishPersonalIdentityNumber>(\"SwedishPersonalIdentityNumber\");\n }\n get coordinationNumbers(): TextCandidate<SwedishCoordinationNumber>[] {\n return this.byTypeName<SwedishCoordinationNumber>(\"SwedishCoordinationNumber\");\n }\n\n get organizationNumbers(): TextCandidate<SwedishOrganizationNumber>[] {\n return this.byTypeName<SwedishOrganizationNumber>(\"SwedishOrganizationNumber\");\n }\n get euVatNumbers(): TextCandidate<EuVatNumber>[] {\n return this.byTypeName<EuVatNumber>(\"EuVatNumber\");\n }\n get leiCodes(): TextCandidate<LeiCode>[] {\n return this.byTypeName<LeiCode>(\"LeiCode\");\n }\n get dunsNumbers(): TextCandidate<DunsNumber>[] {\n return this.byTypeName<DunsNumber>(\"DunsNumber\");\n }\n\n get ibans(): TextCandidate<Iban>[] {\n return this.byTypeName<Iban>(\"Iban\");\n }\n get bics(): TextCandidate<Bic>[] {\n return this.byTypeName<Bic>(\"Bic\");\n }\n get bankgiroNumbers(): TextCandidate<SwedishBankgiroNumber>[] {\n return this.byTypeName<SwedishBankgiroNumber>(\"SwedishBankgiroNumber\");\n }\n get postgiroNumbers(): TextCandidate<SwedishPostgiroNumber>[] {\n return this.byTypeName<SwedishPostgiroNumber>(\"SwedishPostgiroNumber\");\n }\n get bankAccounts(): TextCandidate<SwedishBankAccount>[] {\n return this.byTypeName<SwedishBankAccount>(\"SwedishBankAccount\");\n }\n get ocrReferences(): TextCandidate<SwedishOcrReferenceNumber>[] {\n return this.byTypeName<SwedishOcrReferenceNumber>(\"SwedishOcrReferenceNumber\");\n }\n get swedishSwishNumbers(): TextCandidate<SwedishSwishNumber>[] {\n return this.byTypeName<SwedishSwishNumber>(\"SwedishSwishNumber\");\n }\n get isins(): TextCandidate<Isin>[] {\n return this.byTypeName<Isin>(\"Isin\");\n }\n\n get countries(): TextCandidate<Country>[] {\n return this.byTypeName<Country>(\"Country\");\n }\n get counties(): TextCandidate<SwedishCounty>[] {\n return this.byTypeName<SwedishCounty>(\"SwedishCounty\");\n }\n get municipalities(): TextCandidate<SwedishMunicipality>[] {\n return this.byTypeName<SwedishMunicipality>(\"SwedishMunicipality\");\n }\n\n get propertyDesignations(): TextCandidate<SwedishPropertyDesignation>[] {\n return this.byTypeName<SwedishPropertyDesignation>(\"SwedishPropertyDesignation\");\n }\n\n get areas(): TextCandidate<Area>[] {\n return this.byTypeName<Area>(\"Area\");\n }\n get dataSizes(): TextCandidate<DataSize>[] {\n return this.byTypeName<DataSize>(\"DataSize\");\n }\n get electricCharges(): TextCandidate<ElectricCharge>[] {\n return this.byTypeName<ElectricCharge>(\"ElectricCharge\");\n }\n get electricCurrents(): TextCandidate<ElectricCurrent>[] {\n return this.byTypeName<ElectricCurrent>(\"ElectricCurrent\");\n }\n get energies(): TextCandidate<Energy>[] {\n return this.byTypeName<Energy>(\"Energy\");\n }\n get flowRates(): TextCandidate<FlowRate>[] {\n return this.byTypeName<FlowRate>(\"FlowRate\");\n }\n get frequencies(): TextCandidate<Frequency>[] {\n return this.byTypeName<Frequency>(\"Frequency\");\n }\n get lengths(): TextCandidate<Length>[] {\n return this.byTypeName<Length>(\"Length\");\n }\n get luminances(): TextCandidate<Luminance>[] {\n return this.byTypeName<Luminance>(\"Luminance\");\n }\n get luminousFluxes(): TextCandidate<LuminousFlux>[] {\n return this.byTypeName<LuminousFlux>(\"LuminousFlux\");\n }\n get percentages(): TextCandidate<Percentage>[] {\n return this.byTypeName<Percentage>(\"Percentage\");\n }\n get powers(): TextCandidate<Power>[] {\n return this.byTypeName<Power>(\"Power\");\n }\n get soundLevels(): TextCandidate<SoundLevel>[] {\n return this.byTypeName<SoundLevel>(\"SoundLevel\");\n }\n get pressures(): TextCandidate<Pressure>[] {\n return this.byTypeName<Pressure>(\"Pressure\");\n }\n get rotationalSpeeds(): TextCandidate<RotationalSpeed>[] {\n return this.byTypeName<RotationalSpeed>(\"RotationalSpeed\");\n }\n get speeds(): TextCandidate<Speed>[] {\n return this.byTypeName<Speed>(\"Speed\");\n }\n get temperatures(): TextCandidate<Temperature>[] {\n return this.byTypeName<Temperature>(\"Temperature\");\n }\n get torques(): TextCandidate<Torque>[] {\n return this.byTypeName<Torque>(\"Torque\");\n }\n get voltages(): TextCandidate<Voltage>[] {\n return this.byTypeName<Voltage>(\"Voltage\");\n }\n get volumes(): TextCandidate<Volume>[] {\n return this.byTypeName<Volume>(\"Volume\");\n }\n get weights(): TextCandidate<Weight>[] {\n return this.byTypeName<Weight>(\"Weight\");\n }\n\n get vehicleRegistrationNumbers(): TextCandidate<SwedishVehicleRegistrationNumber>[] {\n return this.byTypeName<SwedishVehicleRegistrationNumber>(\"SwedishVehicleRegistrationNumber\");\n }\n get vehicleIdentificationNumbers(): TextCandidate<VehicleIdentificationNumber>[] {\n return this.byTypeName<VehicleIdentificationNumber>(\"VehicleIdentificationNumber\");\n }\n get operatingHourValues(): TextCandidate<OperatingHours>[] {\n return this.byTypeName<OperatingHours>(\"OperatingHours\");\n }\n get boltPatterns(): TextCandidate<BoltPattern>[] {\n return this.byTypeName<BoltPattern>(\"BoltPattern\");\n }\n get wheelRimDimensions(): TextCandidate<WheelRimDimension>[] {\n return this.byTypeName<WheelRimDimension>(\"WheelRimDimension\");\n }\n get tireDimensions(): TextCandidate<TireDimension>[] {\n return this.byTypeName<TireDimension>(\"TireDimension\");\n }\n get euTypeApprovalNumbers(): TextCandidate<EuTypeApprovalNumber>[] {\n return this.byTypeName<EuTypeApprovalNumber>(\"EuTypeApprovalNumber\");\n }\n get enginePowers(): TextCandidate<EnginePower>[] {\n return this.byTypeName<EnginePower>(\"EnginePower\");\n }\n get fuelConsumptions(): TextCandidate<FuelConsumption>[] {\n return this.byTypeName<FuelConsumption>(\"FuelConsumption\");\n }\n get emissionRates(): TextCandidate<EmissionRate>[] {\n return this.byTypeName<EmissionRate>(\"EmissionRate\");\n }\n get euroEmissionClasses(): TextCandidate<EuroEmissionClass>[] {\n return this.byTypeName<EuroEmissionClass>(\"EuroEmissionClass\");\n }\n get swedishEcoVehicleClassifications(): TextCandidate<SwedishEcoVehicleClassification>[] {\n return this.byTypeName<SwedishEcoVehicleClassification>(\"SwedishEcoVehicleClassification\");\n }\n get drivingLicenseCategories(): TextCandidate<SwedishDrivingLicenseCategory>[] {\n return this.byTypeName<SwedishDrivingLicenseCategory>(\"SwedishDrivingLicenseCategory\");\n }\n\n get gtin8s(): TextCandidate<Gtin8>[] {\n return this.byTypeName<Gtin8>(\"Gtin8\");\n }\n get gtin12s(): TextCandidate<Gtin12>[] {\n return this.byTypeName<Gtin12>(\"Gtin12\");\n }\n get gtin13s(): TextCandidate<Gtin13>[] {\n return this.byTypeName<Gtin13>(\"Gtin13\");\n }\n get gtin14s(): TextCandidate<Gtin14>[] {\n return this.byTypeName<Gtin14>(\"Gtin14\");\n }\n get ipRatings(): TextCandidate<IpRating>[] {\n return this.byTypeName<IpRating>(\"IpRating\");\n }\n get electricalPhases(): TextCandidate<ElectricalPhase>[] {\n return this.byTypeName<ElectricalPhase>(\"ElectricalPhase\");\n }\n get refrigerants(): TextCandidate<Refrigerant>[] {\n return this.byTypeName<Refrigerant>(\"Refrigerant\");\n }\n get colors(): TextCandidate<Color>[] {\n return this.byTypeName<Color>(\"Color\");\n }\n get screenResolutions(): TextCandidate<ScreenResolution>[] {\n return this.byTypeName<ScreenResolution>(\"ScreenResolution\");\n }\n get screenSizes(): TextCandidate<ScreenSize>[] {\n return this.byTypeName<ScreenSize>(\"ScreenSize\");\n }\n\n /** Returns all candidates in the given category. */\n byCategory(category: TextCandidateCategory): TextCandidate[] {\n return this.all.filter((c) => c.category === category);\n }\n\n /**\n * Replaces each resolved candidate's span in `text` with its `maskedForm`.\n */\n maskAll(text: string): string {\n return this.replaceAll(text, (c) => c.maskedForm);\n }\n\n /**\n * Replaces each resolved candidate's span in `text` with `replacement`.\n */\n redactAll(text: string, replacement = \"[REDACTED]\"): string {\n return this.replaceAll(text, () => replacement);\n }\n\n /**\n * Replaces each resolved candidate's span in `text` using a custom mapper.\n * Replacements are applied right-to-left on the original text so positions\n * remain valid.\n */\n replaceAll(text: string, replacer: (c: TextCandidate) => string): string {\n if (this.resolvedCandidates.length === 0) return text;\n let out = text;\n for (let i = this.resolvedCandidates.length - 1; i >= 0; i--) {\n const c = this.resolvedCandidates[i]!;\n if (c.startIndex + c.length > out.length) continue;\n out = out.slice(0, c.startIndex) + replacer(c) + out.slice(c.startIndex + c.length);\n }\n return out;\n }\n}\n\nconst CATEGORY_PRIORITY: Record<TextCandidateCategory, number> = {\n [TextCandidateCategory.PersonalIdentifier]: 0,\n [TextCandidateCategory.Contact]: 1,\n [TextCandidateCategory.Financial]: 2,\n [TextCandidateCategory.OrganizationIdentifier]: 3,\n [TextCandidateCategory.Vehicle]: 4,\n [TextCandidateCategory.Property]: 5,\n [TextCandidateCategory.Product]: 6,\n [TextCandidateCategory.Geography]: 7,\n [TextCandidateCategory.Measurement]: 8,\n};\n\nfunction resolve(sorted: readonly TextCandidate[]): TextCandidate[] {\n if (sorted.length === 0) return [];\n\n const resolved: TextCandidate[] = [];\n for (const candidate of sorted) {\n let dominated = false;\n for (let i = resolved.length - 1; i >= 0; i--) {\n const existing = resolved[i]!;\n if (!existing.overlaps(candidate)) continue;\n const winner = pickWinner(existing, candidate);\n if (winner === existing) {\n dominated = true;\n break;\n }\n resolved.splice(i, 1);\n }\n if (!dominated) resolved.push(candidate);\n }\n\n resolved.sort((a, b) => a.startIndex - b.startIndex);\n return resolved;\n}\n\nfunction pickWinner(a: TextCandidate, b: TextCandidate): TextCandidate {\n if (a.contains(b)) return a;\n if (b.contains(a)) return b;\n if (a.confidence !== b.confidence) return a.confidence > b.confidence ? a : b;\n if (a.length !== b.length) return a.length > b.length ? a : b;\n const pa = CATEGORY_PRIORITY[a.category] ?? 99;\n const pb = CATEGORY_PRIORITY[b.category] ?? 99;\n return pa <= pb ? a : b;\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { TextCandidate } from \"./text-candidate.js\";\nimport { TextCandidateCategory } from \"./text-candidate-category.js\";\nimport { TextMatchConfidence } from \"./text-match-confidence.js\";\n\n// Type-only imports: every scannable type imports this module for `TextCandidate`,\n// so importing them as values would form a cycle. These are erased at compile time.\nimport type { Iban } from \"../banking/iban.js\";\nimport type { Bic } from \"../banking/bic.js\";\nimport type { SwedishBankAccount } from \"../banking/swedish-bank-account.js\";\nimport type { SwedishBankgiroNumber } from \"../banking/swedish-bankgiro-number.js\";\nimport type { SwedishOcrReferenceNumber } from \"../banking/swedish-ocr-reference-number.js\";\nimport type { SwedishPostgiroNumber } from \"../banking/swedish-postgiro-number.js\";\nimport type { SwedishSwishNumber } from \"../banking/swedish-swish-number.js\";\nimport type { Address } from \"../contact/address.js\";\nimport type { AddressZipCode } from \"../contact/address-zip-code.js\";\nimport type { PhoneNumber } from \"../contact/phone-number.js\";\nimport type { SwedishAddress } from \"../contact/swedish-address.js\";\nimport type { Isin } from \"../finance/isin.js\";\nimport type { Area } from \"../measurement/area.js\";\nimport type { DataSize } from \"../measurement/data-size.js\";\nimport type { ElectricCharge } from \"../measurement/electric-charge.js\";\nimport type { ElectricCurrent } from \"../measurement/electric-current.js\";\nimport type { Energy } from \"../measurement/energy.js\";\nimport type { FlowRate } from \"../measurement/flow-rate.js\";\nimport type { Frequency } from \"../measurement/frequency.js\";\nimport type { Length } from \"../measurement/length.js\";\nimport type { Luminance } from \"../measurement/luminance.js\";\nimport type { LuminousFlux } from \"../measurement/luminous-flux.js\";\nimport type { Percentage } from \"../measurement/percentage.js\";\nimport type { Power } from \"../measurement/power.js\";\nimport type { SoundLevel } from \"../measurement/sound-level.js\";\nimport type { Pressure } from \"../measurement/pressure.js\";\nimport type { RotationalSpeed } from \"../measurement/rotational-speed.js\";\nimport type { Speed } from \"../measurement/speed.js\";\nimport type { Temperature } from \"../measurement/temperature.js\";\nimport type { Torque } from \"../measurement/torque.js\";\nimport type { Voltage } from \"../measurement/voltage.js\";\nimport type { Volume } from \"../measurement/volume.js\";\nimport type { Weight } from \"../measurement/weight.js\";\nimport type { Country } from \"../geography/country.js\";\nimport type { SwedishCounty } from \"../geography/swedish-county.js\";\nimport type { SwedishMunicipality } from \"../geography/swedish-municipality.js\";\nimport type { DunsNumber } from \"../organization/duns-number.js\";\nimport type { EuVatNumber } from \"../organization/eu-vat-number.js\";\nimport type { LeiCode } from \"../organization/lei-code.js\";\nimport type { SwedishOrganizationNumber } from \"../organization/swedish-organization-number.js\";\nimport type { SwedishCoordinationNumber } from \"../person/swedish-coordination-number.js\";\nimport type { SwedishPersonalIdentityNumber } from \"../person/swedish-personal-identity-number.js\";\nimport type { SwedishPropertyDesignation } from \"../property/swedish-property-designation.js\";\nimport type { EmailAddress } from \"../web/email-address.js\";\nimport type { Url } from \"../web/url.js\";\nimport type { Color } from \"../product/color.js\";\nimport type { ElectricalPhase } from \"../product/electrical-phase.js\";\nimport type { Gtin8 } from \"../product/gtin8.js\";\nimport type { Gtin12 } from \"../product/gtin12.js\";\nimport type { Gtin13 } from \"../product/gtin13.js\";\nimport type { Gtin14 } from \"../product/gtin14.js\";\nimport type { IpRating } from \"../product/ip-rating.js\";\nimport type { Refrigerant } from \"../product/refrigerant.js\";\nimport type { ScreenResolution } from \"../product/screen-resolution.js\";\nimport type { ScreenSize } from \"../product/screen-size.js\";\nimport type { BoltPattern } from \"../vehicle/bolt-pattern.js\";\nimport type { EmissionRate } from \"../vehicle/emission-rate.js\";\nimport type { EnginePower } from \"../vehicle/engine-power.js\";\nimport type { EuTypeApprovalNumber } from \"../vehicle/eu-type-approval-number.js\";\nimport type { EuroEmissionClass } from \"../vehicle/euro-emission-class.js\";\nimport type { FuelConsumption } from \"../vehicle/fuel-consumption.js\";\nimport type { OperatingHours } from \"../vehicle/operating-hours.js\";\nimport type { SwedishDrivingLicenseCategory } from \"../vehicle/swedish-driving-license-category.js\";\nimport type { SwedishEcoVehicleClassification } from \"../vehicle/swedish-eco-vehicle-classification.js\";\nimport type { SwedishVehicleRegistrationNumber } from \"../vehicle/swedish-vehicle-registration-number.js\";\nimport type { TireDimension } from \"../vehicle/tire-dimension.js\";\nimport type { VehicleIdentificationNumber } from \"../vehicle/vehicle-identification-number.js\";\nimport type { WatercraftIdentificationNumber } from \"../vehicle/watercraft-identification-number.js\";\nimport type { WheelRimDimension } from \"../vehicle/wheel-rim-dimension.js\";\n\n/**\n * The result of scanning unstructured text for structured value types.\n * Contains all found candidates, a resolved non-overlapping subset, and\n * methods for bulk replacement / masking.\n *\n * Text scanning is heuristic-based. Candidates may be false positives, and\n * valid occurrences may be missed.\n */\nexport class TextScanResult {\n /** All candidates sorted by `startIndex`, including overlapping ones. */\n readonly all: readonly TextCandidate[];\n /**\n * Non-overlapping subset after resolution. When candidates overlap or one\n * contains another, the winner is chosen by: containment (longer enclosing\n * match wins), then higher {@link TextMatchConfidence}, then longer span,\n * then category priority.\n */\n readonly resolvedCandidates: readonly TextCandidate[];\n\n constructor(candidates: readonly TextCandidate[]) {\n const sorted = [...candidates].sort((a, b) => a.startIndex - b.startIndex);\n this.all = Object.freeze(sorted);\n this.resolvedCandidates = Object.freeze(resolve(sorted));\n }\n\n get totalCount(): number {\n return this.all.length;\n }\n\n /** Returns the number of candidates in the given category. */\n countByCategory(category: TextCandidateCategory): number {\n return this.all.reduce((acc, c) => (c.category === category ? acc + 1 : acc), 0);\n }\n\n /** Returns the number of candidates at or above the given confidence level. */\n countByConfidence(minimum: TextMatchConfidence): number {\n return this.all.reduce((acc, c) => (c.confidence >= minimum ? acc + 1 : acc), 0);\n }\n\n /** Returns all candidates whose `typeName` equals `typeName`. */\n byTypeName<T = unknown>(typeName: string): TextCandidate<T>[] {\n return this.all.filter((c) => c.typeName === typeName) as TextCandidate<T>[];\n }\n\n // Typed accessors. Each returns every candidate of that type from `all`,\n // before overlap resolution.\n\n get emails(): TextCandidate<EmailAddress>[] {\n return this.byTypeName<EmailAddress>(\"EmailAddress\");\n }\n get urls(): TextCandidate<Url>[] {\n return this.byTypeName<Url>(\"Url\");\n }\n get phoneNumbers(): TextCandidate<PhoneNumber>[] {\n return this.byTypeName<PhoneNumber>(\"PhoneNumber\");\n }\n get zipCodes(): TextCandidate<AddressZipCode>[] {\n return this.byTypeName<AddressZipCode>(\"AddressZipCode\");\n }\n get addresses(): TextCandidate<Address>[] {\n return this.byTypeName<Address>(\"Address\");\n }\n get swedishAddresses(): TextCandidate<SwedishAddress>[] {\n return this.byTypeName<SwedishAddress>(\"SwedishAddress\");\n }\n\n get personalIdentityNumbers(): TextCandidate<SwedishPersonalIdentityNumber>[] {\n return this.byTypeName<SwedishPersonalIdentityNumber>(\"SwedishPersonalIdentityNumber\");\n }\n get coordinationNumbers(): TextCandidate<SwedishCoordinationNumber>[] {\n return this.byTypeName<SwedishCoordinationNumber>(\"SwedishCoordinationNumber\");\n }\n\n get organizationNumbers(): TextCandidate<SwedishOrganizationNumber>[] {\n return this.byTypeName<SwedishOrganizationNumber>(\"SwedishOrganizationNumber\");\n }\n get euVatNumbers(): TextCandidate<EuVatNumber>[] {\n return this.byTypeName<EuVatNumber>(\"EuVatNumber\");\n }\n get leiCodes(): TextCandidate<LeiCode>[] {\n return this.byTypeName<LeiCode>(\"LeiCode\");\n }\n get dunsNumbers(): TextCandidate<DunsNumber>[] {\n return this.byTypeName<DunsNumber>(\"DunsNumber\");\n }\n\n get ibans(): TextCandidate<Iban>[] {\n return this.byTypeName<Iban>(\"Iban\");\n }\n get bics(): TextCandidate<Bic>[] {\n return this.byTypeName<Bic>(\"Bic\");\n }\n get bankgiroNumbers(): TextCandidate<SwedishBankgiroNumber>[] {\n return this.byTypeName<SwedishBankgiroNumber>(\"SwedishBankgiroNumber\");\n }\n get postgiroNumbers(): TextCandidate<SwedishPostgiroNumber>[] {\n return this.byTypeName<SwedishPostgiroNumber>(\"SwedishPostgiroNumber\");\n }\n get bankAccounts(): TextCandidate<SwedishBankAccount>[] {\n return this.byTypeName<SwedishBankAccount>(\"SwedishBankAccount\");\n }\n get ocrReferences(): TextCandidate<SwedishOcrReferenceNumber>[] {\n return this.byTypeName<SwedishOcrReferenceNumber>(\"SwedishOcrReferenceNumber\");\n }\n get swedishSwishNumbers(): TextCandidate<SwedishSwishNumber>[] {\n return this.byTypeName<SwedishSwishNumber>(\"SwedishSwishNumber\");\n }\n get isins(): TextCandidate<Isin>[] {\n return this.byTypeName<Isin>(\"Isin\");\n }\n\n get countries(): TextCandidate<Country>[] {\n return this.byTypeName<Country>(\"Country\");\n }\n get counties(): TextCandidate<SwedishCounty>[] {\n return this.byTypeName<SwedishCounty>(\"SwedishCounty\");\n }\n get municipalities(): TextCandidate<SwedishMunicipality>[] {\n return this.byTypeName<SwedishMunicipality>(\"SwedishMunicipality\");\n }\n\n get propertyDesignations(): TextCandidate<SwedishPropertyDesignation>[] {\n return this.byTypeName<SwedishPropertyDesignation>(\"SwedishPropertyDesignation\");\n }\n\n get areas(): TextCandidate<Area>[] {\n return this.byTypeName<Area>(\"Area\");\n }\n get dataSizes(): TextCandidate<DataSize>[] {\n return this.byTypeName<DataSize>(\"DataSize\");\n }\n get electricCharges(): TextCandidate<ElectricCharge>[] {\n return this.byTypeName<ElectricCharge>(\"ElectricCharge\");\n }\n get electricCurrents(): TextCandidate<ElectricCurrent>[] {\n return this.byTypeName<ElectricCurrent>(\"ElectricCurrent\");\n }\n get energies(): TextCandidate<Energy>[] {\n return this.byTypeName<Energy>(\"Energy\");\n }\n get flowRates(): TextCandidate<FlowRate>[] {\n return this.byTypeName<FlowRate>(\"FlowRate\");\n }\n get frequencies(): TextCandidate<Frequency>[] {\n return this.byTypeName<Frequency>(\"Frequency\");\n }\n get lengths(): TextCandidate<Length>[] {\n return this.byTypeName<Length>(\"Length\");\n }\n get luminances(): TextCandidate<Luminance>[] {\n return this.byTypeName<Luminance>(\"Luminance\");\n }\n get luminousFluxes(): TextCandidate<LuminousFlux>[] {\n return this.byTypeName<LuminousFlux>(\"LuminousFlux\");\n }\n get percentages(): TextCandidate<Percentage>[] {\n return this.byTypeName<Percentage>(\"Percentage\");\n }\n get powers(): TextCandidate<Power>[] {\n return this.byTypeName<Power>(\"Power\");\n }\n get soundLevels(): TextCandidate<SoundLevel>[] {\n return this.byTypeName<SoundLevel>(\"SoundLevel\");\n }\n get pressures(): TextCandidate<Pressure>[] {\n return this.byTypeName<Pressure>(\"Pressure\");\n }\n get rotationalSpeeds(): TextCandidate<RotationalSpeed>[] {\n return this.byTypeName<RotationalSpeed>(\"RotationalSpeed\");\n }\n get speeds(): TextCandidate<Speed>[] {\n return this.byTypeName<Speed>(\"Speed\");\n }\n get temperatures(): TextCandidate<Temperature>[] {\n return this.byTypeName<Temperature>(\"Temperature\");\n }\n get torques(): TextCandidate<Torque>[] {\n return this.byTypeName<Torque>(\"Torque\");\n }\n get voltages(): TextCandidate<Voltage>[] {\n return this.byTypeName<Voltage>(\"Voltage\");\n }\n get volumes(): TextCandidate<Volume>[] {\n return this.byTypeName<Volume>(\"Volume\");\n }\n get weights(): TextCandidate<Weight>[] {\n return this.byTypeName<Weight>(\"Weight\");\n }\n\n get vehicleRegistrationNumbers(): TextCandidate<SwedishVehicleRegistrationNumber>[] {\n return this.byTypeName<SwedishVehicleRegistrationNumber>(\"SwedishVehicleRegistrationNumber\");\n }\n get vehicleIdentificationNumbers(): TextCandidate<VehicleIdentificationNumber>[] {\n return this.byTypeName<VehicleIdentificationNumber>(\"VehicleIdentificationNumber\");\n }\n get watercraftIdentificationNumbers(): TextCandidate<WatercraftIdentificationNumber>[] {\n return this.byTypeName<WatercraftIdentificationNumber>(\"WatercraftIdentificationNumber\");\n }\n get operatingHourValues(): TextCandidate<OperatingHours>[] {\n return this.byTypeName<OperatingHours>(\"OperatingHours\");\n }\n get boltPatterns(): TextCandidate<BoltPattern>[] {\n return this.byTypeName<BoltPattern>(\"BoltPattern\");\n }\n get wheelRimDimensions(): TextCandidate<WheelRimDimension>[] {\n return this.byTypeName<WheelRimDimension>(\"WheelRimDimension\");\n }\n get tireDimensions(): TextCandidate<TireDimension>[] {\n return this.byTypeName<TireDimension>(\"TireDimension\");\n }\n get euTypeApprovalNumbers(): TextCandidate<EuTypeApprovalNumber>[] {\n return this.byTypeName<EuTypeApprovalNumber>(\"EuTypeApprovalNumber\");\n }\n get enginePowers(): TextCandidate<EnginePower>[] {\n return this.byTypeName<EnginePower>(\"EnginePower\");\n }\n get fuelConsumptions(): TextCandidate<FuelConsumption>[] {\n return this.byTypeName<FuelConsumption>(\"FuelConsumption\");\n }\n get emissionRates(): TextCandidate<EmissionRate>[] {\n return this.byTypeName<EmissionRate>(\"EmissionRate\");\n }\n get euroEmissionClasses(): TextCandidate<EuroEmissionClass>[] {\n return this.byTypeName<EuroEmissionClass>(\"EuroEmissionClass\");\n }\n get swedishEcoVehicleClassifications(): TextCandidate<SwedishEcoVehicleClassification>[] {\n return this.byTypeName<SwedishEcoVehicleClassification>(\"SwedishEcoVehicleClassification\");\n }\n get drivingLicenseCategories(): TextCandidate<SwedishDrivingLicenseCategory>[] {\n return this.byTypeName<SwedishDrivingLicenseCategory>(\"SwedishDrivingLicenseCategory\");\n }\n\n get gtin8s(): TextCandidate<Gtin8>[] {\n return this.byTypeName<Gtin8>(\"Gtin8\");\n }\n get gtin12s(): TextCandidate<Gtin12>[] {\n return this.byTypeName<Gtin12>(\"Gtin12\");\n }\n get gtin13s(): TextCandidate<Gtin13>[] {\n return this.byTypeName<Gtin13>(\"Gtin13\");\n }\n get gtin14s(): TextCandidate<Gtin14>[] {\n return this.byTypeName<Gtin14>(\"Gtin14\");\n }\n get ipRatings(): TextCandidate<IpRating>[] {\n return this.byTypeName<IpRating>(\"IpRating\");\n }\n get electricalPhases(): TextCandidate<ElectricalPhase>[] {\n return this.byTypeName<ElectricalPhase>(\"ElectricalPhase\");\n }\n get refrigerants(): TextCandidate<Refrigerant>[] {\n return this.byTypeName<Refrigerant>(\"Refrigerant\");\n }\n get colors(): TextCandidate<Color>[] {\n return this.byTypeName<Color>(\"Color\");\n }\n get screenResolutions(): TextCandidate<ScreenResolution>[] {\n return this.byTypeName<ScreenResolution>(\"ScreenResolution\");\n }\n get screenSizes(): TextCandidate<ScreenSize>[] {\n return this.byTypeName<ScreenSize>(\"ScreenSize\");\n }\n\n /** Returns all candidates in the given category. */\n byCategory(category: TextCandidateCategory): TextCandidate[] {\n return this.all.filter((c) => c.category === category);\n }\n\n /**\n * Replaces each resolved candidate's span in `text` with its `maskedForm`.\n */\n maskAll(text: string): string {\n return this.replaceAll(text, (c) => c.maskedForm);\n }\n\n /**\n * Replaces each resolved candidate's span in `text` with `replacement`.\n */\n redactAll(text: string, replacement = \"[REDACTED]\"): string {\n return this.replaceAll(text, () => replacement);\n }\n\n /**\n * Replaces each resolved candidate's span in `text` using a custom mapper.\n * Replacements are applied right-to-left on the original text so positions\n * remain valid.\n */\n replaceAll(text: string, replacer: (c: TextCandidate) => string): string {\n if (this.resolvedCandidates.length === 0) return text;\n let out = text;\n for (let i = this.resolvedCandidates.length - 1; i >= 0; i--) {\n const c = this.resolvedCandidates[i]!;\n if (c.startIndex + c.length > out.length) continue;\n out = out.slice(0, c.startIndex) + replacer(c) + out.slice(c.startIndex + c.length);\n }\n return out;\n }\n}\n\nconst CATEGORY_PRIORITY: Record<TextCandidateCategory, number> = {\n [TextCandidateCategory.PersonalIdentifier]: 0,\n [TextCandidateCategory.Contact]: 1,\n [TextCandidateCategory.Financial]: 2,\n [TextCandidateCategory.OrganizationIdentifier]: 3,\n [TextCandidateCategory.Vehicle]: 4,\n [TextCandidateCategory.Property]: 5,\n [TextCandidateCategory.Product]: 6,\n [TextCandidateCategory.Geography]: 7,\n [TextCandidateCategory.Measurement]: 8,\n};\n\nfunction resolve(sorted: readonly TextCandidate[]): TextCandidate[] {\n if (sorted.length === 0) return [];\n\n const resolved: TextCandidate[] = [];\n for (const candidate of sorted) {\n let dominated = false;\n for (let i = resolved.length - 1; i >= 0; i--) {\n const existing = resolved[i]!;\n if (!existing.overlaps(candidate)) continue;\n const winner = pickWinner(existing, candidate);\n if (winner === existing) {\n dominated = true;\n break;\n }\n resolved.splice(i, 1);\n }\n if (!dominated) resolved.push(candidate);\n }\n\n resolved.sort((a, b) => a.startIndex - b.startIndex);\n return resolved;\n}\n\nfunction pickWinner(a: TextCandidate, b: TextCandidate): TextCandidate {\n if (a.contains(b)) return a;\n if (b.contains(a)) return b;\n if (a.confidence !== b.confidence) return a.confidence > b.confidence ? a : b;\n if (a.length !== b.length) return a.length > b.length ? a : b;\n const pa = CATEGORY_PRIORITY[a.category] ?? 99;\n const pb = CATEGORY_PRIORITY[b.category] ?? 99;\n return pa <= pb ? a : b;\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -25,7 +25,12 @@ const ValidationErrorReason = {
25
25
  // --- Email ---
26
26
  MissingAtSign: "MissingAtSign",
27
27
  InvalidLocalPart: "InvalidLocalPart",
28
- InvalidDomain: "InvalidDomain"
28
+ InvalidDomain: "InvalidDomain",
29
+ // --- Watercraft identification ---
30
+ InvalidManufacturerCode: "InvalidManufacturerCode",
31
+ InvalidSerialNumber: "InvalidSerialNumber",
32
+ InvalidMonthCode: "InvalidMonthCode",
33
+ InvalidYearDigits: "InvalidYearDigits"
29
34
  };
30
35
  export {
31
36
  ValidationErrorReason
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/validation/validation-error-reason.ts"],
4
- "sourcesContent": ["/**\n * Describes why a value failed validation. Shared across all types that support\n * the `validate` method. Not every reason applies to every type.\n *\n * Maps 1:1 to the .NET `ValidationErrorReason` enum.\n */\nexport const ValidationErrorReason = {\n // --- Common ---\n InputIsEmpty: \"InputIsEmpty\",\n InputTooLong: \"InputTooLong\",\n InputTooShort: \"InputTooShort\",\n InvalidLength: \"InvalidLength\",\n InvalidFormat: \"InvalidFormat\",\n InvalidCharacters: \"InvalidCharacters\",\n InvalidCheckDigit: \"InvalidCheckDigit\",\n\n // --- Banking / clearing ---\n UnknownClearingRange: \"UnknownClearingRange\",\n InvalidSwedbankFormat: \"InvalidSwedbankFormat\",\n InvalidAccountLengthForBank: \"InvalidAccountLengthForBank\",\n InvalidClearingNumber: \"InvalidClearingNumber\",\n\n // --- Identity / organization ---\n InvalidDate: \"InvalidDate\",\n InvalidPrefix: \"InvalidPrefix\",\n InvalidEntityPattern: \"InvalidEntityPattern\",\n\n // --- International / country ---\n UnknownCountryCode: \"UnknownCountryCode\",\n InvalidCountryPrefix: \"InvalidCountryPrefix\",\n InvalidLengthForCountry: \"InvalidLengthForCountry\",\n\n // --- OCR ---\n InvalidLengthDigit: \"InvalidLengthDigit\",\n\n // --- Email ---\n MissingAtSign: \"MissingAtSign\",\n InvalidLocalPart: \"InvalidLocalPart\",\n InvalidDomain: \"InvalidDomain\",\n} as const;\n\nexport type ValidationErrorReason =\n (typeof ValidationErrorReason)[keyof typeof ValidationErrorReason];\n"],
5
- "mappings": "AAMO,MAAM,wBAAwB;AAAA;AAAA,EAEnC,cAAc;AAAA,EACd,cAAc;AAAA,EACd,eAAe;AAAA,EACf,eAAe;AAAA,EACf,eAAe;AAAA,EACf,mBAAmB;AAAA,EACnB,mBAAmB;AAAA;AAAA,EAGnB,sBAAsB;AAAA,EACtB,uBAAuB;AAAA,EACvB,6BAA6B;AAAA,EAC7B,uBAAuB;AAAA;AAAA,EAGvB,aAAa;AAAA,EACb,eAAe;AAAA,EACf,sBAAsB;AAAA;AAAA,EAGtB,oBAAoB;AAAA,EACpB,sBAAsB;AAAA,EACtB,yBAAyB;AAAA;AAAA,EAGzB,oBAAoB;AAAA;AAAA,EAGpB,eAAe;AAAA,EACf,kBAAkB;AAAA,EAClB,eAAe;AACjB;",
4
+ "sourcesContent": ["/**\n * Describes why a value failed validation. Shared across all types that support\n * the `validate` method. Not every reason applies to every type.\n *\n * Maps 1:1 to the .NET `ValidationErrorReason` enum.\n */\nexport const ValidationErrorReason = {\n // --- Common ---\n InputIsEmpty: \"InputIsEmpty\",\n InputTooLong: \"InputTooLong\",\n InputTooShort: \"InputTooShort\",\n InvalidLength: \"InvalidLength\",\n InvalidFormat: \"InvalidFormat\",\n InvalidCharacters: \"InvalidCharacters\",\n InvalidCheckDigit: \"InvalidCheckDigit\",\n\n // --- Banking / clearing ---\n UnknownClearingRange: \"UnknownClearingRange\",\n InvalidSwedbankFormat: \"InvalidSwedbankFormat\",\n InvalidAccountLengthForBank: \"InvalidAccountLengthForBank\",\n InvalidClearingNumber: \"InvalidClearingNumber\",\n\n // --- Identity / organization ---\n InvalidDate: \"InvalidDate\",\n InvalidPrefix: \"InvalidPrefix\",\n InvalidEntityPattern: \"InvalidEntityPattern\",\n\n // --- International / country ---\n UnknownCountryCode: \"UnknownCountryCode\",\n InvalidCountryPrefix: \"InvalidCountryPrefix\",\n InvalidLengthForCountry: \"InvalidLengthForCountry\",\n\n // --- OCR ---\n InvalidLengthDigit: \"InvalidLengthDigit\",\n\n // --- Email ---\n MissingAtSign: \"MissingAtSign\",\n InvalidLocalPart: \"InvalidLocalPart\",\n InvalidDomain: \"InvalidDomain\",\n\n // --- Watercraft identification ---\n InvalidManufacturerCode: \"InvalidManufacturerCode\",\n InvalidSerialNumber: \"InvalidSerialNumber\",\n InvalidMonthCode: \"InvalidMonthCode\",\n InvalidYearDigits: \"InvalidYearDigits\",\n} as const;\n\nexport type ValidationErrorReason =\n (typeof ValidationErrorReason)[keyof typeof ValidationErrorReason];\n"],
5
+ "mappings": "AAMO,MAAM,wBAAwB;AAAA;AAAA,EAEnC,cAAc;AAAA,EACd,cAAc;AAAA,EACd,eAAe;AAAA,EACf,eAAe;AAAA,EACf,eAAe;AAAA,EACf,mBAAmB;AAAA,EACnB,mBAAmB;AAAA;AAAA,EAGnB,sBAAsB;AAAA,EACtB,uBAAuB;AAAA,EACvB,6BAA6B;AAAA,EAC7B,uBAAuB;AAAA;AAAA,EAGvB,aAAa;AAAA,EACb,eAAe;AAAA,EACf,sBAAsB;AAAA;AAAA,EAGtB,oBAAoB;AAAA,EACpB,sBAAsB;AAAA,EACtB,yBAAyB;AAAA;AAAA,EAGzB,oBAAoB;AAAA;AAAA,EAGpB,eAAe;AAAA,EACf,kBAAkB;AAAA,EAClB,eAAe;AAAA;AAAA,EAGf,yBAAyB;AAAA,EACzB,qBAAqB;AAAA,EACrB,kBAAkB;AAAA,EAClB,mBAAmB;AACrB;",
6
6
  "names": []
7
7
  }