japanese_address_parser 3.0.5 → 3.1.1
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.
- 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
|
});
|