{
  "version": 3,
  "sources": ["../src/jpostcode.ts"],
  "sourcesContent": ["import * as fs from 'node:fs';\nimport * as path from 'node:path';\n\ninterface AddressData {\n  postcode: string;\n  prefecture: string;\n  prefecture_kana: string;\n  prefecture_code: number;\n  city: string;\n  city_kana: string;\n  town: string;\n  town_kana: string;\n}\n\nclass Address {\n  constructor(private data: AddressData) {}\n\n  get prefecture() {\n    return this.data.prefecture;\n  }\n\n  get prefectureKana() {\n    return this.data.prefecture_kana;\n  }\n\n  get prefectureCode() {\n    return this.data.prefecture_code;\n  }\n\n  get city() {\n    return this.data.city;\n  }\n\n  get cityKana() {\n    return this.data.city_kana;\n  }\n\n  get town() {\n    return this.data.town;\n  }\n\n  get townKana() {\n    return this.data.town_kana;\n  }\n\n  get zipCode() {\n    return this.data.postcode;\n  }\n}\n\nclass Jpostcode {\n  private static DATA_DIR = [\n    path.join(__dirname, './jpostcode-data/data/json'),\n    path.join(__dirname, '../jpostcode-data/data/json')\n  ].find((dir) => fs.existsSync(dir)) ?? path.join(__dirname, './jpostcode-data/data/json');\n\n  static find(postalCode: string): Address[] {\n    const normalizedCode = postalCode.replace(/-/g, '');\n    const upper = normalizedCode.substring(0, 3);\n    const lower = normalizedCode.substring(3);\n    const file = path.join(this.DATA_DIR, `${upper}.json`);\n    if (!fs.existsSync(file)) {\n      return [];\n    }\n\n    const data = JSON.parse(fs.readFileSync(file).toString());\n    const entry = data[lower];\n    if (!entry) {\n      return [];\n    }\n    if (entry instanceof Array) {\n      const entries:AddressData[] = entry as AddressData[];\n      return entries.map((entry) => new Address(entry as AddressData));\n    } else {\n      return [new Address(entry as AddressData)];\n    }\n  }\n}\n\nexport { Jpostcode, Address };\n"],
  "mappings": ";;;;;;;;;;;AAAA,UAAYA,MAAQ,UACpB,UAAYC,MAAU,YAatB,IAAMC,EAAN,KAAc,CACZ,YAAoBC,EAAmB,CAAnB,UAAAA,CAAoB,CAExC,IAAI,YAAa,CACf,OAAO,KAAK,KAAK,UACnB,CAEA,IAAI,gBAAiB,CACnB,OAAO,KAAK,KAAK,eACnB,CAEA,IAAI,gBAAiB,CACnB,OAAO,KAAK,KAAK,eACnB,CAEA,IAAI,MAAO,CACT,OAAO,KAAK,KAAK,IACnB,CAEA,IAAI,UAAW,CACb,OAAO,KAAK,KAAK,SACnB,CAEA,IAAI,MAAO,CACT,OAAO,KAAK,KAAK,IACnB,CAEA,IAAI,UAAW,CACb,OAAO,KAAK,KAAK,SACnB,CAEA,IAAI,SAAU,CACZ,OAAO,KAAK,KAAK,QACnB,CACF,EAEMC,EAAN,KAAgB,CACd,YAAe,SAAW,CACnB,OAAK,UAAW,4BAA4B,EAC5C,OAAK,UAAW,6BAA6B,CACpD,EAAE,KAAMC,GAAW,aAAWA,CAAG,CAAC,GAAU,OAAK,UAAW,4BAA4B,EAExF,OAAO,KAAKC,EAA+B,CACzC,IAAMC,EAAiBD,EAAW,QAAQ,KAAM,EAAE,EAC5CE,EAAQD,EAAe,UAAU,EAAG,CAAC,EACrCE,EAAQF,EAAe,UAAU,CAAC,EAClCG,EAAY,OAAK,KAAK,SAAU,GAAGF,CAAK,OAAO,EACrD,GAAI,CAAI,aAAWE,CAAI,EACrB,MAAO,CAAC,EAIV,IAAMC,EADO,KAAK,MAAS,eAAaD,CAAI,EAAE,SAAS,CAAC,EACrCD,CAAK,EACxB,OAAKE,EAGDA,aAAiB,MACWA,EACf,IAAKA,GAAU,IAAIT,EAAQS,CAAoB,CAAC,EAExD,CAAC,IAAIT,EAAQS,CAAoB,CAAC,EANlC,CAAC,CAQZ,CACF",
  "names": ["fs", "path", "Address", "data", "Jpostcode", "dir", "postalCode", "normalizedCode", "upper", "lower", "file", "entry"]
}
