japanese_address_parser 3.0.5 → 3.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +22 -2
- data/Gemfile.lock +6 -6
- data/js/node_modules/.package-lock.json +86 -1
- data/js/node_modules/@geolonia/normalize-japanese-addresses/dist/lib/cacheRegexes.d.ts +9 -2
- data/js/node_modules/@geolonia/normalize-japanese-addresses/dist/main-browser.js +141 -25
- data/js/node_modules/@geolonia/normalize-japanese-addresses/dist/main-es.d.ts +3 -0
- data/js/node_modules/@geolonia/normalize-japanese-addresses/dist/main-es.js +1922 -0
- data/js/node_modules/@geolonia/normalize-japanese-addresses/dist/main-node.d.ts +6 -0
- data/js/node_modules/@geolonia/normalize-japanese-addresses/dist/main-node.js +203 -54
- data/js/node_modules/@geolonia/normalize-japanese-addresses/dist/normalize.d.ts +47 -3
- data/js/node_modules/@geolonia/normalize-japanese-addresses/package.json +9 -5
- data/js/node_modules/@geolonia/normalize-japanese-addresses/rollup.config.ts +9 -0
- data/js/node_modules/@geolonia/normalize-japanese-addresses/src/config.ts +1 -0
- data/js/node_modules/@geolonia/normalize-japanese-addresses/src/lib/cacheRegexes.ts +71 -11
- data/js/node_modules/@geolonia/normalize-japanese-addresses/src/lib/dict.ts +3 -2
- data/js/node_modules/@geolonia/normalize-japanese-addresses/src/lib/kan2num.ts +6 -2
- data/js/node_modules/@geolonia/normalize-japanese-addresses/src/main-es.ts +4 -0
- data/js/node_modules/@geolonia/normalize-japanese-addresses/src/main-node.ts +41 -12
- data/js/node_modules/@geolonia/normalize-japanese-addresses/src/normalize.ts +165 -37
- data/js/package-lock.json +7 -7
- data/js/package.json +1 -1
- data/lib/japanese_address_parser/data/03-03206.csv +1 -0
- data/lib/japanese_address_parser/data/04-04421.csv +8 -8
- data/lib/japanese_address_parser/data/05-05203.csv +5 -0
- data/lib/japanese_address_parser/data/08-08222.csv +4 -0
- data/lib/japanese_address_parser/data/11-11442.csv +2 -0
- data/lib/japanese_address_parser/data/13-13225.csv +3 -0
- data/lib/japanese_address_parser/data/14-14134.csv +3 -0
- data/lib/japanese_address_parser/data/15-15104.csv +1 -1
- data/lib/japanese_address_parser/data/15-15222.csv +1 -1
- data/lib/japanese_address_parser/data/15-15225.csv +1 -1
- data/lib/japanese_address_parser/data/18-18202.csv +1 -1
- data/lib/japanese_address_parser/data/22-22102.csv +6 -0
- data/lib/japanese_address_parser/data/23-23202.csv +1 -0
- data/lib/japanese_address_parser/data/23-23207.csv +5 -0
- data/lib/japanese_address_parser/data/23-23213.csv +1 -0
- data/lib/japanese_address_parser/data/23-23236.csv +1 -0
- data/lib/japanese_address_parser/data/25-25206.csv +4 -0
- data/lib/japanese_address_parser/data/27-27212.csv +4 -0
- data/lib/japanese_address_parser/data/28-28108.csv +1 -0
- data/lib/japanese_address_parser/data/28-28204.csv +1 -1
- data/lib/japanese_address_parser/data/28-28226.csv +1 -0
- data/lib/japanese_address_parser/data/29-29201.csv +1 -1
- data/lib/japanese_address_parser/data/34-34207.csv +3 -0
- data/lib/japanese_address_parser/data/35-35215.csv +3 -0
- data/lib/japanese_address_parser/data/38-38204.csv +17 -0
- data/lib/japanese_address_parser/data/40-40131.csv +1 -0
- data/lib/japanese_address_parser/data/40-40342.csv +4 -0
- data/lib/japanese_address_parser/data/44-44201.csv +27 -0
- data/lib/japanese_address_parser/data/46-46201.csv +4 -0
- data/lib/japanese_address_parser/data/47-47205.csv +4 -0
- data/lib/japanese_address_parser/version.rb +1 -1
- metadata +6 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 53a31a273123299a2e48aea1fa82e3bd4d0d33d7e8f1a694ef39a1926004576a
|
4
|
+
data.tar.gz: 21198c935bf0dc0892f5ff395403ef4aaa08d03f60d576e7cfbeaa556ae9ebed
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 742a64618c177ef65bf6dcb0677993ba531f734efda24b81dc2a5f0839aef47ae42c57e829b5c9a3e9b984dbb4b1960303a1b05c8d88dcfc516b473948f8219e
|
7
|
+
data.tar.gz: dab2e5dedbeda742af992a5b9574697523f9816c9765741c8f6b9eec6b06723c98247f9248d20a61aeebdcaf541d09d734c2a30a12ca22a47b5b2f1ab2da5694
|
data/CHANGELOG.md
CHANGED
@@ -9,8 +9,6 @@ Change Log の形式は [Keep a Changelog](http://keepachangelog.com/) に従い
|
|
9
9
|
|
10
10
|
### Changed
|
11
11
|
|
12
|
-
- [#79](https://github.com/yamat47/japanese_address_parser/pull/79) Bump activesupport from 7.0.4 to 7.0.4.1([@yamat47](https://github.com/yamat47))
|
13
|
-
|
14
12
|
### Deprecated
|
15
13
|
|
16
14
|
### Removed
|
@@ -19,6 +17,28 @@ Change Log の形式は [Keep a Changelog](http://keepachangelog.com/) に従い
|
|
19
17
|
|
20
18
|
### Security
|
21
19
|
|
20
|
+
## [3.1.1] - 2023-09-07
|
21
|
+
|
22
|
+
### Changed
|
23
|
+
|
24
|
+
- [#95](https://github.com/yamat47/japanese_address_parser/pull/95) Bump @geolonia/normalize-japanese-addresses from 2.8.0 to 2.9.2 in /js([@yamat47](https://github.com/yamat47))
|
25
|
+
|
26
|
+
### Security
|
27
|
+
|
28
|
+
- [#94](https://github.com/yamat47/japanese_address_parser/pull/94) Bump activesupport from 7.0.4.3 to 7.0.7.1([@yamat47](https://github.com/yamat47))
|
29
|
+
|
30
|
+
## [3.1.0] - 2023-07-24
|
31
|
+
|
32
|
+
### Changed
|
33
|
+
|
34
|
+
- [#79](https://github.com/yamat47/japanese_address_parser/pull/79) Bump activesupport from 7.0.4 to 7.0.4.1([@yamat47](https://github.com/yamat47))
|
35
|
+
- [#84](https://github.com/yamat47/japanese_address_parser/pull/84) Bump activesupport from 7.0.4.1 to 7.0.4.3([@yamat47](https://github.com/yamat47))
|
36
|
+
- [#85](https://github.com/yamat47/japanese_address_parser/pull/85) CIに必要な権限を追加した。([@yamat47](https://github.com/yamat47))
|
37
|
+
|
38
|
+
### Removed
|
39
|
+
|
40
|
+
- [#89](https://github.com/yamat47/japanese_address_parser/pull/89) 最新のRubyでCIを実行するのを一時的に停止した。([@yamat47](https://github.com/yamat47))
|
41
|
+
|
22
42
|
## [3.0.5]
|
23
43
|
### Changed
|
24
44
|
|
data/Gemfile.lock
CHANGED
@@ -1,31 +1,31 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
japanese_address_parser (3.
|
4
|
+
japanese_address_parser (3.1.1)
|
5
5
|
schmooze
|
6
6
|
|
7
7
|
GEM
|
8
8
|
remote: https://rubygems.org/
|
9
9
|
specs:
|
10
|
-
activesupport (7.0.
|
10
|
+
activesupport (7.0.7.1)
|
11
11
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
12
12
|
i18n (>= 1.6, < 2)
|
13
13
|
minitest (>= 5.1)
|
14
14
|
tzinfo (~> 2.0)
|
15
15
|
ast (2.4.2)
|
16
|
-
concurrent-ruby (1.
|
16
|
+
concurrent-ruby (1.2.2)
|
17
17
|
diff-lcs (1.5.0)
|
18
18
|
factory_bot (6.2.1)
|
19
19
|
activesupport (>= 5.0.0)
|
20
20
|
ffi (1.15.5)
|
21
|
-
i18n (1.
|
21
|
+
i18n (1.14.1)
|
22
22
|
concurrent-ruby (~> 1.0)
|
23
23
|
json (2.6.2)
|
24
24
|
language_server-protocol (3.17.0.1)
|
25
25
|
listen (3.7.1)
|
26
26
|
rb-fsevent (~> 0.10, >= 0.10.3)
|
27
27
|
rb-inotify (~> 0.9, >= 0.9.10)
|
28
|
-
minitest (5.
|
28
|
+
minitest (5.19.0)
|
29
29
|
parallel (1.22.1)
|
30
30
|
parser (3.1.2.1)
|
31
31
|
ast (~> 2.4.1)
|
@@ -81,7 +81,7 @@ GEM
|
|
81
81
|
unicode-display_width (>= 1.1.1, < 3)
|
82
82
|
typeprof (0.21.3)
|
83
83
|
rbs (>= 1.8.1)
|
84
|
-
tzinfo (2.0.
|
84
|
+
tzinfo (2.0.6)
|
85
85
|
concurrent-ruby (~> 1.0)
|
86
86
|
unicode-display_width (2.3.0)
|
87
87
|
|
@@ -1,5 +1,90 @@
|
|
1
1
|
{
|
2
|
+
"name": "japanese_address_parser",
|
2
3
|
"lockfileVersion": 3,
|
3
4
|
"requires": true,
|
4
|
-
"packages": {
|
5
|
+
"packages": {
|
6
|
+
"node_modules/@geolonia/japanese-numeral": {
|
7
|
+
"version": "0.1.16",
|
8
|
+
"resolved": "https://registry.npmjs.org/@geolonia/japanese-numeral/-/japanese-numeral-0.1.16.tgz",
|
9
|
+
"integrity": "sha512-xzSsIHhyyjqNpW8qSh5bFMu3FJvyJGBbNZ/t8clPHkigjUdZ7Ck8wkzCkcwlVd00RkoHwGDLnvXx5W0WiGK0TQ=="
|
10
|
+
},
|
11
|
+
"node_modules/@geolonia/normalize-japanese-addresses": {
|
12
|
+
"version": "2.9.2",
|
13
|
+
"resolved": "https://registry.npmjs.org/@geolonia/normalize-japanese-addresses/-/normalize-japanese-addresses-2.9.2.tgz",
|
14
|
+
"integrity": "sha512-sbeV/seJ/ue6pn2sLo+Ccunl6eB3yNhrUIzNpT2IiR9Fw6fW5f1lLdApODqhTmz++xr1dyPwZOzTXCGEaXejDA==",
|
15
|
+
"dependencies": {
|
16
|
+
"@geolonia/japanese-numeral": "^0.1.16",
|
17
|
+
"isomorphic-unfetch": "^3.1.0",
|
18
|
+
"lru-cache": "^6.0.0"
|
19
|
+
}
|
20
|
+
},
|
21
|
+
"node_modules/isomorphic-unfetch": {
|
22
|
+
"version": "3.1.0",
|
23
|
+
"resolved": "https://registry.npmjs.org/isomorphic-unfetch/-/isomorphic-unfetch-3.1.0.tgz",
|
24
|
+
"integrity": "sha512-geDJjpoZ8N0kWexiwkX8F9NkTsXhetLPVbZFQ+JTW239QNOwvB0gniuR1Wc6f0AMTn7/mFGyXvHTifrCp/GH8Q==",
|
25
|
+
"dependencies": {
|
26
|
+
"node-fetch": "^2.6.1",
|
27
|
+
"unfetch": "^4.2.0"
|
28
|
+
}
|
29
|
+
},
|
30
|
+
"node_modules/lru-cache": {
|
31
|
+
"version": "6.0.0",
|
32
|
+
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
|
33
|
+
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
|
34
|
+
"dependencies": {
|
35
|
+
"yallist": "^4.0.0"
|
36
|
+
},
|
37
|
+
"engines": {
|
38
|
+
"node": ">=10"
|
39
|
+
}
|
40
|
+
},
|
41
|
+
"node_modules/node-fetch": {
|
42
|
+
"version": "2.6.7",
|
43
|
+
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
|
44
|
+
"integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
|
45
|
+
"dependencies": {
|
46
|
+
"whatwg-url": "^5.0.0"
|
47
|
+
},
|
48
|
+
"engines": {
|
49
|
+
"node": "4.x || >=6.0.0"
|
50
|
+
},
|
51
|
+
"peerDependencies": {
|
52
|
+
"encoding": "^0.1.0"
|
53
|
+
},
|
54
|
+
"peerDependenciesMeta": {
|
55
|
+
"encoding": {
|
56
|
+
"optional": true
|
57
|
+
}
|
58
|
+
}
|
59
|
+
},
|
60
|
+
"node_modules/tr46": {
|
61
|
+
"version": "0.0.3",
|
62
|
+
"resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
|
63
|
+
"integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o="
|
64
|
+
},
|
65
|
+
"node_modules/unfetch": {
|
66
|
+
"version": "4.2.0",
|
67
|
+
"resolved": "https://registry.npmjs.org/unfetch/-/unfetch-4.2.0.tgz",
|
68
|
+
"integrity": "sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA=="
|
69
|
+
},
|
70
|
+
"node_modules/webidl-conversions": {
|
71
|
+
"version": "3.0.1",
|
72
|
+
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
|
73
|
+
"integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE="
|
74
|
+
},
|
75
|
+
"node_modules/whatwg-url": {
|
76
|
+
"version": "5.0.0",
|
77
|
+
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
|
78
|
+
"integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=",
|
79
|
+
"dependencies": {
|
80
|
+
"tr46": "~0.0.3",
|
81
|
+
"webidl-conversions": "^3.0.0"
|
82
|
+
}
|
83
|
+
},
|
84
|
+
"node_modules/yallist": {
|
85
|
+
"version": "4.0.0",
|
86
|
+
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
|
87
|
+
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
|
88
|
+
}
|
89
|
+
}
|
5
90
|
}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
declare type PrefectureList = {
|
1
|
+
export declare type PrefectureList = {
|
2
2
|
[key: string]: string[];
|
3
3
|
};
|
4
4
|
interface SingleTown {
|
@@ -8,7 +8,13 @@ interface SingleTown {
|
|
8
8
|
lat: string;
|
9
9
|
lng: string;
|
10
10
|
}
|
11
|
-
declare type TownList = SingleTown[];
|
11
|
+
export declare type TownList = SingleTown[];
|
12
|
+
interface SingleAddr {
|
13
|
+
addr: string;
|
14
|
+
lat: string | null;
|
15
|
+
lng: string | null;
|
16
|
+
}
|
17
|
+
export declare type AddrList = SingleAddr[];
|
12
18
|
interface GaikuListItem {
|
13
19
|
gaiku: string;
|
14
20
|
lat: string;
|
@@ -28,6 +34,7 @@ export declare const getCityRegexPatterns: (pref: string, cities: string[]) => [
|
|
28
34
|
export declare const getTowns: (pref: string, city: string) => Promise<TownList>;
|
29
35
|
export declare const getGaikuList: (pref: string, city: string, town: string) => Promise<GaikuListItem[]>;
|
30
36
|
export declare const getResidentials: (pref: string, city: string, town: string) => Promise<ResidentialList>;
|
37
|
+
export declare const getAddrs: (pref: string, city: string, town: string) => Promise<AddrList>;
|
31
38
|
export declare const getTownRegexPatterns: (pref: string, city: string) => Promise<[SingleTown, string][]>;
|
32
39
|
export declare const getSameNamedPrefectureCityRegexPatterns: (prefs: string[], prefList: PrefectureList) => [string, string][];
|
33
40
|
export {};
|
@@ -348,6 +348,7 @@
|
|
348
348
|
|
349
349
|
var gh_pages_endpoint = 'https://geolonia.github.io/japanese-addresses/api/ja';
|
350
350
|
var currentConfig = {
|
351
|
+
interfaceVersion: 1,
|
351
352
|
japaneseAddressesApi: gh_pages_endpoint,
|
352
353
|
townCacheSize: 1000,
|
353
354
|
};
|
@@ -355,8 +356,13 @@
|
|
355
356
|
var kan2num = function (string) {
|
356
357
|
var kanjiNumbers = dist.findKanjiNumbers(string);
|
357
358
|
for (var i = 0; i < kanjiNumbers.length; i++) {
|
358
|
-
|
359
|
-
|
359
|
+
try {
|
360
|
+
// @ts-ignore
|
361
|
+
string = string.replace(kanjiNumbers[i], dist.kanji2number(kanjiNumbers[i]));
|
362
|
+
}
|
363
|
+
catch (error) {
|
364
|
+
// ignore
|
365
|
+
}
|
360
366
|
}
|
361
367
|
return string;
|
362
368
|
};
|
@@ -402,8 +408,8 @@
|
|
402
408
|
};
|
403
409
|
|
404
410
|
// JIS 第2水準 => 第1水準 及び 旧字体 => 新字体
|
405
|
-
var JIS_OLD_KANJI = '
|
406
|
-
var JIS_NEW_KANJI = '
|
411
|
+
var JIS_OLD_KANJI = '亞,圍,壹,榮,驛,應,櫻,假,會,懷,覺,樂,陷,歡,氣,戲,據,挾,區,徑,溪,輕,藝,儉,圈,權,嚴,恆,國,齋,雜,蠶,殘,兒,實,釋,從,縱,敍,燒,條,剩,壤,釀,眞,盡,醉,髓,聲,竊,淺,錢,禪,爭,插,騷,屬,對,滯,擇,單,斷,癡,鑄,敕,鐵,傳,黨,鬪,屆,腦,廢,發,蠻,拂,邊,瓣,寶,沒,滿,藥,餘,樣,亂,兩,禮,靈,爐,灣,惡,醫,飮,營,圓,歐,奧,價,繪,擴,學,罐,勸,觀,歸,犧,擧,狹,驅,莖,經,繼,缺,劍,檢,顯,廣,鑛,碎,劑,參,慘,絲,辭,舍,壽,澁,肅,將,證,乘,疊,孃,觸,寢,圖,穗,樞,齊,攝,戰,潛,雙,莊,裝,藏,續,體,臺,澤,膽,彈,蟲,廳,鎭,點,燈,盜,獨,貳,霸,賣,髮,祕,佛,變,辯,豐,飜,默,與,譽,謠,覽,獵,勵,齡,勞,壓,爲,隱,衞,鹽,毆,穩,畫,壞,殼,嶽,卷,關,顏,僞,舊,峽,曉,勳,惠,螢,鷄,縣,險,獻,驗,效,號,濟,册,棧,贊,齒,濕,寫,收,獸,處,稱,奬,淨,繩,讓,囑,愼,粹,隨,數,靜,專,踐,纖,壯,搜,總,臟,墮,帶,瀧,擔,團,遲,晝,聽,遞,轉,當,稻,讀,惱,拜,麥,拔,濱,竝,辨,舖,襃,萬,譯,豫,搖,來,龍,壘,隸,戀,樓,鰺,鶯,蠣,攪,竈,灌,諫,頸,礦,蘂,靱,賤,壺,礪,檮,濤,邇,蠅,檜,儘,藪,籠,彌,麩'.split(/,/);
|
412
|
+
var JIS_NEW_KANJI = '亜,囲,壱,栄,駅,応,桜,仮,会,懐,覚,楽,陥,歓,気,戯,拠,挟,区,径,渓,軽,芸,倹,圏,権,厳,恒,国,斎,雑,蚕,残,児,実,釈,従,縦,叙,焼,条,剰,壌,醸,真,尽,酔,髄,声,窃,浅,銭,禅,争,挿,騒,属,対,滞,択,単,断,痴,鋳,勅,鉄,伝,党,闘,届,脳,廃,発,蛮,払,辺,弁,宝,没,満,薬,余,様,乱,両,礼,霊,炉,湾,悪,医,飲,営,円,欧,奥,価,絵,拡,学,缶,勧,観,帰,犠,挙,狭,駆,茎,経,継,欠,剣,検,顕,広,鉱,砕,剤,参,惨,糸,辞,舎,寿,渋,粛,将,証,乗,畳,嬢,触,寝,図,穂,枢,斉,摂,戦,潜,双,荘,装,蔵,続,体,台,沢,胆,弾,虫,庁,鎮,点,灯,盗,独,弐,覇,売,髪,秘,仏,変,弁,豊,翻,黙,与,誉,謡,覧,猟,励,齢,労,圧,為,隠,衛,塩,殴,穏,画,壊,殻,岳,巻,関,顔,偽,旧,峡,暁,勲,恵,蛍,鶏,県,険,献,験,効,号,済,冊,桟,賛,歯,湿,写,収,獣,処,称,奨,浄,縄,譲,嘱,慎,粋,随,数,静,専,践,繊,壮,捜,総,臓,堕,帯,滝,担,団,遅,昼,聴,逓,転,当,稲,読,悩,拝,麦,抜,浜,並,弁,舗,褒,万,訳,予,揺,来,竜,塁,隷,恋,楼,鯵,鴬,蛎,撹,竃,潅,諌,頚,砿,蕊,靭,賎,壷,砺,梼,涛,迩,蝿,桧,侭,薮,篭,弥,麸'.split(/,/);
|
407
413
|
var JIS_KANJI_REGEX_PATTERNS = JIS_OLD_KANJI.map(function (old, i) {
|
408
414
|
var pattern = old + "|" + JIS_NEW_KANJI[i];
|
409
415
|
return [pattern, old, JIS_NEW_KANJI[i]];
|
@@ -422,6 +428,7 @@
|
|
422
428
|
_str = _str
|
423
429
|
.replace(/三栄町|四谷三栄町/g, '(三栄町|四谷三栄町)')
|
424
430
|
.replace(/鬮野川|くじ野川|くじの川/g, '(鬮野川|くじ野川|くじの川)')
|
431
|
+
.replace(/柿碕町|柿さき町/g, '(柿碕町|柿さき町)')
|
425
432
|
.replace(/通り|とおり/g, '(通り|とおり)')
|
426
433
|
.replace(/埠頭|ふ頭/g, '(埠頭|ふ頭)')
|
427
434
|
.replace(/番町|番丁/g, '(番町|番丁)')
|
@@ -1227,6 +1234,7 @@
|
|
1227
1234
|
var cachedTowns = {};
|
1228
1235
|
var cachedGaikuListItem = {};
|
1229
1236
|
var cachedResidentials = {};
|
1237
|
+
var cachedAddrs = {}; // TODO: use LRU
|
1230
1238
|
var cachedSameNamedPrefectureCityRegexPatterns = undefined;
|
1231
1239
|
var getPrefectures = function () { return __awaiter(void 0, void 0, void 0, function () {
|
1232
1240
|
var prefsResp, data;
|
@@ -1236,7 +1244,7 @@
|
|
1236
1244
|
if (typeof cachedPrefectures !== 'undefined') {
|
1237
1245
|
return [2 /*return*/, cachedPrefectures];
|
1238
1246
|
}
|
1239
|
-
return [4 /*yield*/, __internals.fetch('.json')]; // ja.json
|
1247
|
+
return [4 /*yield*/, __internals.fetch('.json', { level: 1 })]; // ja.json
|
1240
1248
|
case 1:
|
1241
1249
|
prefsResp = _a.sent() // ja.json
|
1242
1250
|
;
|
@@ -1290,7 +1298,7 @@
|
|
1290
1298
|
if (typeof cachedTown !== 'undefined') {
|
1291
1299
|
return [2 /*return*/, cachedTown];
|
1292
1300
|
}
|
1293
|
-
return [4 /*yield*/, __internals.fetch(['', encodeURI(pref), encodeURI(city) + '.json'].join('/'))];
|
1301
|
+
return [4 /*yield*/, __internals.fetch(['', encodeURI(pref), encodeURI(city) + '.json'].join('/'), { level: 3, pref: pref, city: city })];
|
1294
1302
|
case 1:
|
1295
1303
|
townsResp = _a.sent();
|
1296
1304
|
return [4 /*yield*/, townsResp.json()];
|
@@ -1305,7 +1313,10 @@
|
|
1305
1313
|
return __generator(this, function (_b) {
|
1306
1314
|
switch (_b.label) {
|
1307
1315
|
case 0:
|
1308
|
-
|
1316
|
+
if (currentConfig.interfaceVersion > 1) {
|
1317
|
+
throw new Error("Invalid config.interfaceVersion: " + currentConfig.interfaceVersion + "'}. Please set config.interfaceVersion to 1.");
|
1318
|
+
}
|
1319
|
+
cacheKey = pref + "-" + city + "-" + town + "-v" + currentConfig.interfaceVersion;
|
1309
1320
|
cache = cachedGaikuListItem[cacheKey];
|
1310
1321
|
if (typeof cache !== 'undefined') {
|
1311
1322
|
return [2 /*return*/, cache];
|
@@ -1333,7 +1344,10 @@
|
|
1333
1344
|
return __generator(this, function (_b) {
|
1334
1345
|
switch (_b.label) {
|
1335
1346
|
case 0:
|
1336
|
-
|
1347
|
+
if (currentConfig.interfaceVersion > 1) {
|
1348
|
+
throw new Error("Invalid config.interfaceVersion: " + currentConfig.interfaceVersion + "'}. Please set config.interfaceVersion to 1.");
|
1349
|
+
}
|
1350
|
+
cacheKey = pref + "-" + city + "-" + town + "-v" + currentConfig.interfaceVersion;
|
1337
1351
|
cache = cachedResidentials[cacheKey];
|
1338
1352
|
if (typeof cache !== 'undefined') {
|
1339
1353
|
return [2 /*return*/, cache];
|
@@ -1367,6 +1381,39 @@
|
|
1367
1381
|
}
|
1368
1382
|
});
|
1369
1383
|
}); };
|
1384
|
+
var getAddrs = function (pref, city, town) { return __awaiter(void 0, void 0, void 0, function () {
|
1385
|
+
var cacheKey, cache, addrsResp, addrs;
|
1386
|
+
return __generator(this, function (_b) {
|
1387
|
+
switch (_b.label) {
|
1388
|
+
case 0:
|
1389
|
+
if (currentConfig.interfaceVersion < 2) {
|
1390
|
+
throw new Error("Invalid config.interfaceVersion: " + currentConfig.interfaceVersion + "'}. Please set config.interfaceVersion to 2 or higher");
|
1391
|
+
}
|
1392
|
+
cacheKey = pref + "-" + city + "-" + town + "-v" + currentConfig.interfaceVersion;
|
1393
|
+
cache = cachedAddrs[cacheKey];
|
1394
|
+
if (typeof cache !== 'undefined') {
|
1395
|
+
return [2 /*return*/, cache];
|
1396
|
+
}
|
1397
|
+
return [4 /*yield*/, __internals.fetch(['', encodeURI(pref), encodeURI(city), encodeURI(town) + '.json'].join('/'), { level: 8, pref: pref, city: city, town: town })];
|
1398
|
+
case 1:
|
1399
|
+
addrsResp = _b.sent();
|
1400
|
+
_b.label = 2;
|
1401
|
+
case 2:
|
1402
|
+
_b.trys.push([2, 4, , 5]);
|
1403
|
+
return [4 /*yield*/, addrsResp.json()];
|
1404
|
+
case 3:
|
1405
|
+
addrs = (_b.sent());
|
1406
|
+
return [3 /*break*/, 5];
|
1407
|
+
case 4:
|
1408
|
+
_b.sent();
|
1409
|
+
addrs = [];
|
1410
|
+
return [3 /*break*/, 5];
|
1411
|
+
case 5:
|
1412
|
+
addrs.sort(function (res1, res2) { return res1.addr.length - res2.addr.length; });
|
1413
|
+
return [2 /*return*/, (cachedAddrs[cacheKey] = addrs)];
|
1414
|
+
}
|
1415
|
+
});
|
1416
|
+
}); };
|
1370
1417
|
// 十六町 のように漢数字と町が連結しているか
|
1371
1418
|
var isKanjiNumberFollewedByCho = function (targetTownName) {
|
1372
1419
|
var xCho = targetTownName.match(/.町/g);
|
@@ -1376,9 +1423,9 @@
|
|
1376
1423
|
return kanjiNumbers.length > 0;
|
1377
1424
|
};
|
1378
1425
|
var getTownRegexPatterns = function (pref, city) { return __awaiter(void 0, void 0, void 0, function () {
|
1379
|
-
var cachedResult, pre_towns, townSet, towns, isKyoto, _i, pre_towns_1, town, originalTown, townAbbr, patterns;
|
1380
|
-
return __generator(this, function (
|
1381
|
-
switch (
|
1426
|
+
var cachedResult, pre_towns, townSet, towns, isKyoto, _i, pre_towns_1, town, originalTown, townAbbr, patterns, _a, towns_1, town, chomeMatch, chomeNamePart, chomeNum, pattern;
|
1427
|
+
return __generator(this, function (_b) {
|
1428
|
+
switch (_b.label) {
|
1382
1429
|
case 0:
|
1383
1430
|
cachedResult = cachedTownRegexes.get(pref + "-" + city);
|
1384
1431
|
if (typeof cachedResult !== 'undefined') {
|
@@ -1386,7 +1433,7 @@
|
|
1386
1433
|
}
|
1387
1434
|
return [4 /*yield*/, getTowns(pref, city)];
|
1388
1435
|
case 1:
|
1389
|
-
pre_towns =
|
1436
|
+
pre_towns = _b.sent();
|
1390
1437
|
townSet = new Set(pre_towns.map(function (town) { return town.town; }));
|
1391
1438
|
towns = [];
|
1392
1439
|
isKyoto = city.match(/^京都市/);
|
@@ -1452,6 +1499,18 @@
|
|
1452
1499
|
}));
|
1453
1500
|
return [town, pattern];
|
1454
1501
|
});
|
1502
|
+
// X丁目の丁目なしの数字だけ許容するため、最後に数字だけ追加していく
|
1503
|
+
for (_a = 0, towns_1 = towns; _a < towns_1.length; _a++) {
|
1504
|
+
town = towns_1[_a];
|
1505
|
+
chomeMatch = town.town.match(/([^一二三四五六七八九十]+)([一二三四五六七八九十]+)(丁目?)/);
|
1506
|
+
if (!chomeMatch) {
|
1507
|
+
continue;
|
1508
|
+
}
|
1509
|
+
chomeNamePart = chomeMatch[1];
|
1510
|
+
chomeNum = chomeMatch[2];
|
1511
|
+
pattern = toRegexPattern("^" + chomeNamePart + "(" + chomeNum + "|" + kan2num(chomeNum) + ")");
|
1512
|
+
patterns.push([town, pattern]);
|
1513
|
+
}
|
1455
1514
|
cachedTownRegexes.set(pref + "-" + city, patterns);
|
1456
1515
|
return [2 /*return*/, patterns];
|
1457
1516
|
}
|
@@ -1586,10 +1645,32 @@
|
|
1586
1645
|
}
|
1587
1646
|
});
|
1588
1647
|
}); };
|
1648
|
+
var normalizeAddrPart = function (addr, pref, city, town) { return __awaiter(void 0, void 0, void 0, function () {
|
1649
|
+
var addrListItem, addrItem, other;
|
1650
|
+
return __generator(this, function (_a) {
|
1651
|
+
switch (_a.label) {
|
1652
|
+
case 0: return [4 /*yield*/, getAddrs(pref, city, town)
|
1653
|
+
// 住居表示住所、および地番住所が見つからなかった
|
1654
|
+
];
|
1655
|
+
case 1:
|
1656
|
+
addrListItem = _a.sent();
|
1657
|
+
// 住居表示住所、および地番住所が見つからなかった
|
1658
|
+
if (addrListItem.length === 0) {
|
1659
|
+
return [2 /*return*/, null];
|
1660
|
+
}
|
1661
|
+
addrItem = addrListItem.find(function (item) { return addr.startsWith(item.addr); });
|
1662
|
+
if (addrItem) {
|
1663
|
+
other = addr.replace(addrItem.addr, '').trim();
|
1664
|
+
return [2 /*return*/, { addr: addrItem.addr, other: other, lat: addrItem.lat, lng: addrItem.lng }];
|
1665
|
+
}
|
1666
|
+
return [2 /*return*/, null];
|
1667
|
+
}
|
1668
|
+
});
|
1669
|
+
}); };
|
1589
1670
|
var normalize$1 = function (address, _option) {
|
1590
1671
|
if (_option === void 0) { _option = defaultOption; }
|
1591
1672
|
return __awaiter(void 0, void 0, void 0, function () {
|
1592
|
-
var option, addr, pref, city, town, lat, lng, level, normalized, prefectures, prefs, prefPatterns, sameNamedPrefectureCityRegexPatterns, i, _a, prefectureCity, reg, match, i, _b, _pref, pattern, match, matched, _pref, cities, cityPatterns, i, _c, _city, pattern, match, i, normalized_1, cities, cityPatterns, i, _d, _city, pattern, match, result;
|
1673
|
+
var option, addr, pref, city, town, lat, lng, level, normalized, prefectures, prefs, prefPatterns, sameNamedPrefectureCityRegexPatterns, i, _a, prefectureCity, reg, match, i, _b, _pref, pattern, match, matched, _pref, cities, cityPatterns, i, _c, _city, pattern, match, i, normalized_1, cities, cityPatterns, i, _d, _city, pattern, match, normalizedAddrPart, other, result, result;
|
1593
1674
|
return __generator(this, function (_e) {
|
1594
1675
|
switch (_e.label) {
|
1595
1676
|
case 0:
|
@@ -1732,7 +1813,7 @@
|
|
1732
1813
|
});
|
1733
1814
|
})
|
1734
1815
|
.replace(/(([0-9〇一二三四五六七八九十百千]+)(番地?)([0-9〇一二三四五六七八九十百千]+)号)\s*(.+)/, '$1 $5')
|
1735
|
-
.replace(/([0-9〇一二三四五六七八九十百千]+)(番地?)([0-9〇一二三四五六七八九十百千]+)
|
1816
|
+
.replace(/([0-9〇一二三四五六七八九十百千]+)\s*(番地?)\s*([0-9〇一二三四五六七八九十百千]+)\s*号?/, '$1-$3')
|
1736
1817
|
.replace(/([0-9〇一二三四五六七八九十百千]+)番地?/, '$1')
|
1737
1818
|
.replace(/([0-9〇一二三四五六七八九十百千]+)の/g, '$1-')
|
1738
1819
|
.replace(/([0-9〇一二三四五六七八九十百千]+)[--﹣−‐⁃‑‒–—﹘―⎯⏤ーー─━]/g, function (match) {
|
@@ -1749,7 +1830,7 @@
|
|
1749
1830
|
// `-1` のようなケース
|
1750
1831
|
return kan2num(s);
|
1751
1832
|
})
|
1752
|
-
.replace(/-[^0-9]
|
1833
|
+
.replace(/-[^0-9]([0-9〇一二三四五六七八九十百千]+)/, function (s) {
|
1753
1834
|
// `-あ1` のようなケース
|
1754
1835
|
return kan2num(zen2han(s));
|
1755
1836
|
})
|
@@ -1762,12 +1843,52 @@
|
|
1762
1843
|
_e.label = 8;
|
1763
1844
|
case 8:
|
1764
1845
|
addr = patchAddr(pref, city, town, addr);
|
1765
|
-
if (
|
1766
|
-
|
1846
|
+
if (pref)
|
1847
|
+
level = level + 1;
|
1848
|
+
if (city)
|
1849
|
+
level = level + 1;
|
1850
|
+
if (town)
|
1851
|
+
level = level + 1;
|
1852
|
+
if (option.level <= 3 || level < 3) {
|
1853
|
+
return [2 /*return*/, { pref: pref, city: city, town: town, addr: addr, level: level, lat: lat, lng: lng }];
|
1854
|
+
}
|
1855
|
+
if (!(currentConfig.interfaceVersion === 2)) return [3 /*break*/, 10];
|
1856
|
+
return [4 /*yield*/, normalizeAddrPart(addr, pref, city, town)];
|
1767
1857
|
case 9:
|
1768
|
-
|
1769
|
-
|
1858
|
+
normalizedAddrPart = _e.sent();
|
1859
|
+
other = undefined;
|
1860
|
+
if (normalizedAddrPart) {
|
1861
|
+
addr = normalizedAddrPart.addr;
|
1862
|
+
if (normalizedAddrPart.other) {
|
1863
|
+
other = normalizedAddrPart.other;
|
1864
|
+
}
|
1865
|
+
if (normalizedAddrPart.lat !== null)
|
1866
|
+
lat = parseFloat(normalizedAddrPart.lat);
|
1867
|
+
if (normalizedAddrPart.lng !== null)
|
1868
|
+
lng = parseFloat(normalizedAddrPart.lng);
|
1869
|
+
level = 8;
|
1870
|
+
}
|
1871
|
+
result = {
|
1872
|
+
pref: pref,
|
1873
|
+
city: city,
|
1874
|
+
town: town,
|
1875
|
+
addr: addr,
|
1876
|
+
level: level,
|
1877
|
+
lat: lat,
|
1878
|
+
lng: lng,
|
1879
|
+
};
|
1880
|
+
if (other) {
|
1881
|
+
result.other = other;
|
1882
|
+
}
|
1883
|
+
return [2 /*return*/, result];
|
1770
1884
|
case 10:
|
1885
|
+
if (!(currentConfig.interfaceVersion === 1)) return [3 /*break*/, 13];
|
1886
|
+
if (!(option.level > 3 && normalized && town)) return [3 /*break*/, 12];
|
1887
|
+
return [4 /*yield*/, normalizeResidentialPart(addr, pref, city, town)];
|
1888
|
+
case 11:
|
1889
|
+
normalized = _e.sent();
|
1890
|
+
_e.label = 12;
|
1891
|
+
case 12:
|
1771
1892
|
if (normalized) {
|
1772
1893
|
lat = parseFloat(normalized.lat);
|
1773
1894
|
lng = parseFloat(normalized.lng);
|
@@ -1776,12 +1897,6 @@
|
|
1776
1897
|
lat = null;
|
1777
1898
|
lng = null;
|
1778
1899
|
}
|
1779
|
-
if (pref)
|
1780
|
-
level = level + 1;
|
1781
|
-
if (city)
|
1782
|
-
level = level + 1;
|
1783
|
-
if (town)
|
1784
|
-
level = level + 1;
|
1785
1900
|
result = {
|
1786
1901
|
pref: pref,
|
1787
1902
|
city: city,
|
@@ -1801,6 +1916,7 @@
|
|
1801
1916
|
result.level = 8;
|
1802
1917
|
}
|
1803
1918
|
return [2 /*return*/, result];
|
1919
|
+
case 13: throw new Error('invalid interfaceVersion');
|
1804
1920
|
}
|
1805
1921
|
});
|
1806
1922
|
});
|