@0xd33p/vietnam-divisions 0.2.0 → 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.
package/README.md CHANGED
@@ -1,80 +1,113 @@
1
- # @0xd33p/vietnam-divisions — Dữ liệu hành chính Việt Nam
1
+ # @0xd33p/vietnam-divisions
2
2
 
3
- Package nội bộ zero runtime dependencies. Quản 2 hệ thống dữ liệu (v3 hiện tại &
4
- legacy cũ) với auto-detect và auto-resolve ID.
3
+ Dữ liệu hành chính Việt Nam không phụ thuộc runtime nào.
5
4
 
6
- ## API
5
+ Cung cấp cả hệ thống **hiện tại** (34 tỉnh, sau sáp nhập 2025) và **cũ** (63 tỉnh) kèm tự động tra cứu ID giữa hai hệ thống.
7
6
 
8
- 1 object `vn` — unified deep module. 3 methods, 3 types.
7
+ ---
9
8
 
10
- ```typescript
11
- import { vn } from '@0xd33p/vietnam-divisions';
12
- import type { GeoUnit, GeoError, GeoResult } from '@0xd33p/vietnam-divisions';
9
+ ## Cài đặt
10
+
11
+ ```bash
12
+ npm install @0xd33p/vietnam-divisions
13
13
  ```
14
14
 
15
- | Method | Input | Output |
16
- | ------------------------------------ | ---------------- | ------------------------------------------ |
17
- | `vn.divisions()` | — | 34 tỉnh (v3) |
18
- | `vn.divisions(provinceId)` | `string` | Xã/phường theo tỉnh |
19
- | `vn.lookup(query)` | `string` | Tra cứu ID/mã/tên — auto-resolve legacy ID |
20
- | `vn.search(name)` | `string` | Tìm tỉnh theo tên |
21
- | `vn.search(name, provinceId)` | `string, string` | Tìm xã theo tên trong tỉnh |
22
- | `vn.legacy.divisions()` | — | 63 tỉnh (legacy) |
23
- | `vn.legacy.divisions(provinceId)` | `string` | Huyện theo tỉnh |
24
- | `vn.legacy.lookup(query)` | `string` | Tra cứu legacy ID (tỉnh/huyện/xã) |
25
- | `vn.legacy.search(name)` | `string` | Tìm tỉnh legacy theo tên |
26
- | `vn.legacy.search(name, provinceId)` | `string, string` | Tìm huyện theo tên trong tỉnh |
27
-
28
- Output type cho tất cả method: `GeoResult<T> | GeoErrorResult` (legacy methods cũng
29
- vậy — unified error handling).
30
-
31
- ## Types
32
-
33
- | Type | Mô tả |
34
- | ---------------- | --------------------------------------------------------------- |
35
- | `GeoUnit` | `{ id: string; name: string }` |
36
- | `GeoError` | `'province_not_found' \| 'commune_not_found' \| ...` (9 errors) |
37
- | `GeoResult<T>` | `{ data: T }` — success |
38
- | `GeoErrorResult` | `{ data: null; error: GeoError }` — failure |
39
-
40
- ## Ví dụ
15
+ ## Bắt đầu nhanh
41
16
 
42
17
  ```typescript
43
- // 34 tỉnh mới
44
- const { data: provinces } = vn.divisions();
18
+ import { vn } from '@0xd33p/vietnam-divisions';
19
+
20
+ // Danh sách tỉnh hiện tại
21
+ const { data: tinh } = vn.divisions();
45
22
 
46
- // Xã/phường theo tỉnh (cần 2-char ID)
47
- const { data: communes } = vn.divisions('79');
23
+ // Danh sách xã/phường theo tỉnh
24
+ const { data: xa } = vn.divisions('79'); // TP.HCM
48
25
 
49
- // Tra cứu auto-resolve old ID new ID
50
- const result = vn.lookup('79'); // province by ID → { name: 'Hồ Chí Minh', kind: 'province' }
51
- const hcm = vn.lookup('HCM'); // province by code
52
- const hn = vn.lookup('01'); // province by ID
53
- const ward = vn.lookup('27148'); // commune by ID
26
+ // Tra cứu theo ID, mã, hoặc tên (tự động resolve ID cũ)
27
+ const tinhTra = vn.lookup('HCM');
28
+ const phuong = vn.lookup('00004');
54
29
 
55
- // Tìm kiếm
56
- const found = vn.search('Hồ Chí Minh');
57
- const wards = vn.search('Phường', '79');
30
+ // Tìm kiếm theo tên
31
+ const ketQua = vn.search('Hồ Chí Minh');
58
32
 
59
- // Legacy 63 tỉnh, 3 cấp (province → district → commune)
60
- const { data: oldProvinces } = vn.legacy.divisions();
33
+ // Hệ thống cũ (63 tỉnh, 3 cấp)
34
+ const { data: tinhCu } = vn.legacy.divisions();
61
35
  const { data: huyen } = vn.legacy.divisions('01');
62
- const { data: oldWard } = vn.legacy.lookup('00100');
63
36
  ```
64
37
 
65
- ## Hidden
38
+ ---
66
39
 
67
- - **Auto-detect**: `lookup()` nhận ID 2-char (tỉnh), 3-char (mã), 5-char (xã), hoặc tên
68
- - **Auto-resolve**: old province/commune IDs → new IDs qua merge/mapping data
40
+ ## API
69
41
 
70
- ## File structure
42
+ ### `vn.divisions(maTinh?)`
71
43
 
44
+ | Đầu vào | Kết quả |
45
+ | --------- | ----------------------- |
46
+ | _(không)_ | 34 tỉnh hiện tại |
47
+ | `"79"` | Xã/phường thuộc tỉnh đó |
48
+
49
+ ### `vn.lookup(truyVan)`
50
+
51
+ Chấp nhận: ID tỉnh (`"79"`), mã tỉnh (`"HCM"`), ID xã (`"00004"`), hoặc tên đầy đủ.
52
+
53
+ Tự động resolve ID cũ sang ID mới.
54
+
55
+ ### `vn.search(ten, maTinh?)`
56
+
57
+ Tìm mờ theo tên (không phân biệt hoa thường). Có `maTinh` thì giới hạn trong tỉnh đó.
58
+
59
+ ### `vn.addressLookup(diaChi)`
60
+
61
+ Phân tích địa chỉ dạng chuỗi và trả về kết quả khớp ở **cả hai** hệ thống.
62
+
63
+ ```typescript
64
+ const ketQua = vn.addressLookup(
65
+ 'Thôn Nghĩa Thắng, Đông Hòa, TP Thái Bình, Thái Bình',
66
+ );
67
+ // {
68
+ // legacy: { province: { id: '34', name: 'Tỉnh Thái Bình' }, ... },
69
+ // v3: { province: { id: '33', name: 'Hưng Yên' }, ... },
70
+ // }
72
71
  ```
73
- src/
74
- ├── index.ts # vn object (public API)
75
- ├── types.ts # GeoUnit, GeoError, GeoResult, GeoErrorResult
76
- ├── data/
77
- │ ├── v3/ # 34 tỉnh (NQ 202/2025/QH15)
78
- │ └── legacy/ # 63 tỉnh, 696 huyện, 10,051 (cũ)
79
- └── internal/ # Implementation
80
- ```
72
+
73
+ Tính năng:
74
+
75
+ - Tự động tách thành phần (dấu phẩy, nhận diện cấp)
76
+ - Không phân biệt có dấu / không dấu (`"Thai Binh"` → `"Thái Bình"`)
77
+ - Mở rộng viết tắt (`"TP"` `"Thành phố"`)
78
+ - Chế độ chặt: báo lỗi nếu thiếu hoặc không xác định được tỉnh
79
+
80
+ ### `vn.legacy.*`
81
+
82
+ 3 phương thức tương tự (`divisions`, `lookup`, `search`) cho hệ thống 63 tỉnh cũ với 3 cấp (tỉnh → huyện → xã).
83
+
84
+ ---
85
+
86
+ ## Kiểu dữ liệu
87
+
88
+ | Kiểu | Mô tả |
89
+ | --------------------- | -------------------------------------------- |
90
+ | `GeoUnit` | `{ id: string; name: string }` |
91
+ | `GeoResult<T>` | `{ data: T }` — thành công |
92
+ | `GeoErrorResult` | `{ data: null; error: GeoError }` — thất bại |
93
+ | `GeoError` | 11 mã lỗi dạng discriminated union |
94
+ | `AddressLookupResult` | `{ legacy: {...}, v3: {...} }` |
95
+
96
+ ---
97
+
98
+ ## Dữ liệu
99
+
100
+ | Hệ thống | Tỉnh | Huyện | Xã |
101
+ | ------------- | ---- | ----- | ------ |
102
+ | v3 (hiện tại) | 34 | — | 3.321 |
103
+ | Cũ | 63 | 696 | 10.051 |
104
+
105
+ Hệ thống v3 áp dụng theo Nghị quyết 202/2025/QH15 (sáp nhập tỉnh có hiệu lực từ 2025).
106
+
107
+ ---
108
+
109
+ ## Ứng dụng
110
+
111
+ - **Form địa chỉ** — đổ dữ liệu tỉnh/xã vào dropdown
112
+ - **Xác thực địa chỉ** — kiểm tra địa chỉ nhập vào có hợp lệ không
113
+ - **Chuyển đổi dữ liệu** — map địa chỉ cũ sang hệ thống mới
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
+ import { addressQuery } from './query.js';
1
2
  import type { GeoUnit, GeoResult, GeoErrorResult, AddressLookupResult } from './types.js';
2
- export type { GeoUnit, GeoError, GeoResult, AddressLookupResult, } from './types.js';
3
+ export type { GeoUnit, GeoError, GeoResult, AddressLookupResult, AddressQueryInput, AddressQueryResult, ResolvedUnit, VerifiedUnit, } from './types.js';
3
4
  export declare const vn: {
4
5
  /**
5
6
  * Get administrative divisions.
@@ -33,6 +34,21 @@ export declare const vn: {
33
34
  * `address_missing_province` or `address_ambiguous_province` otherwise.
34
35
  */
35
36
  addressLookup(raw: string): GeoResult<AddressLookupResult> | GeoErrorResult;
37
+ /**
38
+ * Structured address query — resolve address components across both v3 and legacy
39
+ * systems with fuzzy matching and flat LLM-friendly output.
40
+ *
41
+ * All fields in the input are optional — pass only what you know.
42
+ * Structured params take priority; address string is used as fallback.
43
+ *
44
+ * @example
45
+ * vn.address.query({ province: 'HCM' })
46
+ * vn.address.query({ address: 'Quận 1, Hồ Chí Minh', district: 'Quận 1' })
47
+ * vn.address.query({ province: 'Thái Bình', commune: 'Đông Hòa' })
48
+ */
49
+ address: {
50
+ query: typeof addressQuery;
51
+ };
36
52
  /**
37
53
  * Legacy system (63 provinces, 3 levels: province → district → commune).
38
54
  * Explicit opt-in for backward compatibility.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,OAAO,EACP,SAAS,EACT,cAAc,EACd,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,OAAO,EACP,QAAQ,EACR,SAAS,EACT,mBAAmB,GACpB,MAAM,YAAY,CAAC;AA8CpB,eAAO,MAAM,EAAE;IACb;;;;OAIG;yBACkB,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,cAAc;IAYnE;;;;;OAKG;kBAEM,MAAM,GACZ,SAAS,CAAC,OAAO,GAAG;QAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CAAA;KAAE,CAAC,GAAG,cAAc;IA4DtE;;;;OAIG;iBACU,MAAM,aAAa,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;IAU7D;;;;;;;;;OASG;uBAEI,MAAM,GACV,SAAS,CAAC,mBAAmB,CAAC,GAAG,cAAc;IA0JlD;;;OAGG;;QAED;;;;WAIG;6BACkB,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,cAAc;QAYnE;;;WAGG;sBAEM,MAAM,GAEX,SAAS,CAAC,OAAO,GAAG;YAAE,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,MAAM,CAAA;SAAE,CAAC,GAC/D,cAAc;QAwClB;;;;WAIG;qBACU,MAAM,aAAa,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;;CAehE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EACV,OAAO,EACP,SAAS,EACT,cAAc,EACd,mBAAmB,EAKpB,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,OAAO,EACP,QAAQ,EACR,SAAS,EACT,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,YAAY,GACb,MAAM,YAAY,CAAC;AAqCpB,eAAO,MAAM,EAAE;IACb;;;;OAIG;yBACkB,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,cAAc;IAYnE;;;;;OAKG;kBAEM,MAAM,GACZ,SAAS,CAAC,OAAO,GAAG;QAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CAAA;KAAE,CAAC,GAAG,cAAc;IA4DtE;;;;OAIG;iBACU,MAAM,aAAa,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;IAU7D;;;;;;;;;OASG;uBACgB,MAAM,GAAG,SAAS,CAAC,mBAAmB,CAAC,GAAG,cAAc;IAkJ3E;;;;;;;;;;;OAWG;;;;IAKH;;;OAGG;;QAED;;;;WAIG;6BACkB,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,cAAc;QAYnE;;;WAGG;sBAEM,MAAM,GAEX,SAAS,CAAC,OAAO,GAAG;YAAE,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,MAAM,CAAA;SAAE,CAAC,GAC/D,cAAc;QAwClB;;;;WAIG;qBACU,MAAM,aAAa,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;;CAehE,CAAC"}
package/dist/index.js CHANGED
@@ -2,6 +2,7 @@ import { v3 as v3Internal, provinceMerges, wardMappings, } from './internal/v3/i
2
2
  import { legacy as legacyInternal } from './internal/legacy/index.js';
3
3
  import { normalizeProvince, normalizeCommune, normalizeDistrict, normalizeName, ok, fail, } from './internal/helpers.js';
4
4
  import { parseAddress, fuzzySearchProvinces } from './internal/address.js';
5
+ import { addressQuery } from './query.js';
5
6
  // ─── Private helpers ────────────────────────────────────
6
7
  function resolveOldProvinceId(oldId) {
7
8
  const trimmed = oldId.trim();
@@ -18,8 +19,7 @@ function resolveOldProvinceId(oldId) {
18
19
  }
19
20
  function resolveOldCommuneId(oldId) {
20
21
  const trimmed = oldId.trim();
21
- const rawMappings = wardMappings;
22
- for (const mapping of rawMappings) {
22
+ for (const mapping of wardMappings) {
23
23
  if (mapping.oldWardCode === trimmed) {
24
24
  const c = v3Internal.getCommuneById(mapping.newWardCode);
25
25
  if (c) {
@@ -212,8 +212,7 @@ export const vn = {
212
212
  if (v3Province) {
213
213
  // 6a. Try ward_mappings if we have a legacy commune
214
214
  if (legacyCommune) {
215
- const rawMappings = wardMappings;
216
- const match = rawMappings.find((m) => m.oldWardCode === legacyCommune.id);
215
+ const match = wardMappings.find((m) => m.oldWardCode === legacyCommune.id);
217
216
  if (match) {
218
217
  const resolved = v3Internal.getCommuneById(match.newWardCode);
219
218
  if (resolved) {
@@ -248,6 +247,21 @@ export const vn = {
248
247
  };
249
248
  return ok(result);
250
249
  },
250
+ /**
251
+ * Structured address query — resolve address components across both v3 and legacy
252
+ * systems with fuzzy matching and flat LLM-friendly output.
253
+ *
254
+ * All fields in the input are optional — pass only what you know.
255
+ * Structured params take priority; address string is used as fallback.
256
+ *
257
+ * @example
258
+ * vn.address.query({ province: 'HCM' })
259
+ * vn.address.query({ address: 'Quận 1, Hồ Chí Minh', district: 'Quận 1' })
260
+ * vn.address.query({ province: 'Thái Bình', commune: 'Đông Hòa' })
261
+ */
262
+ address: {
263
+ query: addressQuery,
264
+ },
251
265
  /**
252
266
  * Legacy system (63 provinces, 3 levels: province → district → commune).
253
267
  * Explicit opt-in for backward compatibility.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../src/internal/address.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAU3C;;;GAGG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,aAAa,CAAC,EAAE,OAAO,GACtB,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CA4B5D;AAED,MAAM,WAAW,aAAa;IAC5B,wEAAwE;IACxE,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CA8DvD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOxD;AASD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAQjE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,OAAO,EAAE,GACf,OAAO,EAAE,CAkBX"}
1
+ {"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../src/internal/address.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAU3C;;;GAGG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,aAAa,CAAC,EAAE,OAAO,GACtB,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CA4B5D;AAED,MAAM,WAAW,aAAa;IAC5B,wEAAwE;IACxE,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CA6EvD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOxD;AASD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAQjE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,OAAO,EAAE,GACf,OAAO,EAAE,CAkBX"}
@@ -44,12 +44,27 @@ export function detectLevel(part, provinceFound) {
44
44
  */
45
45
  export function parseAddress(raw) {
46
46
  if (!raw) {
47
- return { parts: [], hamlet: null, commune: null, district: null, province: null };
47
+ return {
48
+ parts: [],
49
+ hamlet: null,
50
+ commune: null,
51
+ district: null,
52
+ province: null,
53
+ };
48
54
  }
49
55
  // Split by comma, trim, filter empty
50
- const rawParts = raw.split(',').map((s) => s.trim()).filter(Boolean);
56
+ const rawParts = raw
57
+ .split(',')
58
+ .map((s) => s.trim())
59
+ .filter(Boolean);
51
60
  if (rawParts.length === 0) {
52
- return { parts: [], hamlet: null, commune: null, district: null, province: null };
61
+ return {
62
+ parts: [],
63
+ hamlet: null,
64
+ commune: null,
65
+ district: null,
66
+ province: null,
67
+ };
53
68
  }
54
69
  // Dedup by normalized form (keep first occurrence)
55
70
  const seen = new Set();
@@ -115,8 +130,8 @@ export function expandAbbreviations(name) {
115
130
  .replace(/\bhni\b/gi, 'hà nội');
116
131
  }
117
132
  /**
118
- * Normalize for search: expand abbreviations first, THEN remove diacritics.
119
- */
133
+ * Normalize for search: expand abbreviations first, THEN remove diacritics.
134
+ */
120
135
  function normalizeForSearch(name) {
121
136
  return normalizeName(expandAbbreviations(name));
122
137
  }
@@ -1 +1 @@
1
- {"version":3,"file":"address.js","sourceRoot":"","sources":["../../src/internal/address.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"address.js","sourceRoot":"","sources":["../../src/internal/address.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/internal/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAgCrD,oEAAoE;AACpE,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQlD;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,OAAO,CAEV;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,OAAO,CAEV;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,OAAO,CAEV;AAED,wBAAgB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG;IAAE,IAAI,EAAE,CAAC,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAA;CAAE,CAE7D;AAED,wBAAgB,IAAI,CAAC,KAAK,EAAE,QAAQ,GAAG;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,QAAQ,CAAA;CAAE,CAErE"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/internal/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAwJrD,oEAAoE;AACpE,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQlD;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,OAAO,CAEV;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,OAAO,CAEV;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,OAAO,CAEV;AAED,wBAAgB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG;IAAE,IAAI,EAAE,CAAC,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAA;CAAE,CAE7D;AAED,wBAAgB,IAAI,CAAC,KAAK,EAAE,QAAQ,GAAG;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,QAAQ,CAAA;CAAE,CAErE"}
@@ -1,30 +1,150 @@
1
1
  const DIACRITIC_MAP = {
2
- a: 'a', à: 'a', á: 'a', ả: 'a', ã: 'a', ạ: 'a',
3
- ă: 'a', ằ: 'a', ắ: 'a', ẳ: 'a', ẵ: 'a', ặ: 'a',
4
- â: 'a', ầ: 'a', ấ: 'a', ẩ: 'a', ẫ: 'a', ậ: 'a',
5
- e: 'e', è: 'e', é: 'e', ẻ: 'e', ẽ: 'e', ẹ: 'e',
6
- ê: 'e', ề: 'e', ế: 'e', ể: 'e', ễ: 'e', ệ: 'e',
7
- i: 'i', ì: 'i', í: 'i', ỉ: 'i', ĩ: 'i', ị: 'i',
8
- o: 'o', ò: 'o', ó: 'o', ỏ: 'o', õ: 'o', ọ: 'o',
9
- ô: 'o', ồ: 'o', ố: 'o', ổ: 'o', ỗ: 'o', ộ: 'o',
10
- ơ: 'o', ờ: 'o', ớ: 'o', ở: 'o', ỡ: 'o', ợ: 'o',
11
- u: 'u', ù: 'u', ú: 'u', ủ: 'u', ũ: 'u', ụ: 'u',
12
- ư: 'u', ừ: 'u', ứ: 'u', ử: 'u', ữ: 'u', ự: 'u',
13
- y: 'y', ỳ: 'y', ý: 'y', ỷ: 'y', ỹ: 'y', ỵ: 'y',
2
+ a: 'a',
3
+ à: 'a',
4
+ á: 'a',
5
+ ả: 'a',
6
+ ã: 'a',
7
+ ạ: 'a',
8
+ ă: 'a',
9
+ ằ: 'a',
10
+ ắ: 'a',
11
+ ẳ: 'a',
12
+ ẵ: 'a',
13
+ ặ: 'a',
14
+ â: 'a',
15
+ ầ: 'a',
16
+ ấ: 'a',
17
+ ẩ: 'a',
18
+ ẫ: 'a',
19
+ ậ: 'a',
20
+ e: 'e',
21
+ è: 'e',
22
+ é: 'e',
23
+ ẻ: 'e',
24
+ ẽ: 'e',
25
+ ẹ: 'e',
26
+ ê: 'e',
27
+ ề: 'e',
28
+ ế: 'e',
29
+ ể: 'e',
30
+ ễ: 'e',
31
+ ệ: 'e',
32
+ i: 'i',
33
+ ì: 'i',
34
+ í: 'i',
35
+ ỉ: 'i',
36
+ ĩ: 'i',
37
+ ị: 'i',
38
+ o: 'o',
39
+ ò: 'o',
40
+ ó: 'o',
41
+ ỏ: 'o',
42
+ õ: 'o',
43
+ ọ: 'o',
44
+ ô: 'o',
45
+ ồ: 'o',
46
+ ố: 'o',
47
+ ổ: 'o',
48
+ ỗ: 'o',
49
+ ộ: 'o',
50
+ ơ: 'o',
51
+ ờ: 'o',
52
+ ớ: 'o',
53
+ ở: 'o',
54
+ ỡ: 'o',
55
+ ợ: 'o',
56
+ u: 'u',
57
+ ù: 'u',
58
+ ú: 'u',
59
+ ủ: 'u',
60
+ ũ: 'u',
61
+ ụ: 'u',
62
+ ư: 'u',
63
+ ừ: 'u',
64
+ ứ: 'u',
65
+ ử: 'u',
66
+ ữ: 'u',
67
+ ự: 'u',
68
+ y: 'y',
69
+ ỳ: 'y',
70
+ ý: 'y',
71
+ ỷ: 'y',
72
+ ỹ: 'y',
73
+ ỵ: 'y',
14
74
  đ: 'd',
15
75
  // uppercase
16
- A: 'a', À: 'a', Á: 'a', Ả: 'a', Ã: 'a', Ạ: 'a',
17
- Ă: 'a', Ằ: 'a', Ắ: 'a', Ẳ: 'a', Ẵ: 'a', Ặ: 'a',
18
- Â: 'a', Ầ: 'a', Ấ: 'a', Ẩ: 'a', Ẫ: 'a', Ậ: 'a',
19
- E: 'e', È: 'e', É: 'e', Ẻ: 'e', Ẽ: 'e', Ẹ: 'e',
20
- Ê: 'e', Ề: 'e', Ế: 'e', Ể: 'e', Ễ: 'e', Ệ: 'e',
21
- I: 'i', Ì: 'i', Í: 'i', Ỉ: 'i', Ĩ: 'i', Ị: 'i',
22
- O: 'o', Ò: 'o', Ó: 'o', Ỏ: 'o', Õ: 'o', Ọ: 'o',
23
- Ô: 'o', Ồ: 'o', Ố: 'o', Ổ: 'o', Ỗ: 'o', Ộ: 'o',
24
- Ơ: 'o', Ờ: 'o', Ớ: 'o', Ở: 'o', Ỡ: 'o', Ợ: 'o',
25
- U: 'u', Ù: 'u', Ú: 'u', Ủ: 'u', Ũ: 'u', Ụ: 'u',
26
- Ư: 'u', Ừ: 'u', Ứ: 'u', Ử: 'u', Ữ: 'u', Ự: 'u',
27
- Y: 'y', Ỳ: 'y', Ý: 'y', Ỷ: 'y', Ỹ: 'y', Ỵ: 'y',
76
+ A: 'a',
77
+ À: 'a',
78
+ Á: 'a',
79
+ Ả: 'a',
80
+ Ã: 'a',
81
+ Ạ: 'a',
82
+ Ă: 'a',
83
+ Ằ: 'a',
84
+ Ắ: 'a',
85
+ Ẳ: 'a',
86
+ Ẵ: 'a',
87
+ Ặ: 'a',
88
+ Â: 'a',
89
+ Ầ: 'a',
90
+ Ấ: 'a',
91
+ Ẩ: 'a',
92
+ Ẫ: 'a',
93
+ Ậ: 'a',
94
+ E: 'e',
95
+ È: 'e',
96
+ É: 'e',
97
+ Ẻ: 'e',
98
+ Ẽ: 'e',
99
+ Ẹ: 'e',
100
+ Ê: 'e',
101
+ Ề: 'e',
102
+ Ế: 'e',
103
+ Ể: 'e',
104
+ Ễ: 'e',
105
+ Ệ: 'e',
106
+ I: 'i',
107
+ Ì: 'i',
108
+ Í: 'i',
109
+ Ỉ: 'i',
110
+ Ĩ: 'i',
111
+ Ị: 'i',
112
+ O: 'o',
113
+ Ò: 'o',
114
+ Ó: 'o',
115
+ Ỏ: 'o',
116
+ Õ: 'o',
117
+ Ọ: 'o',
118
+ Ô: 'o',
119
+ Ồ: 'o',
120
+ Ố: 'o',
121
+ Ổ: 'o',
122
+ Ỗ: 'o',
123
+ Ộ: 'o',
124
+ Ơ: 'o',
125
+ Ờ: 'o',
126
+ Ớ: 'o',
127
+ Ở: 'o',
128
+ Ỡ: 'o',
129
+ Ợ: 'o',
130
+ U: 'u',
131
+ Ù: 'u',
132
+ Ú: 'u',
133
+ Ủ: 'u',
134
+ Ũ: 'u',
135
+ Ụ: 'u',
136
+ Ư: 'u',
137
+ Ừ: 'u',
138
+ Ứ: 'u',
139
+ Ử: 'u',
140
+ Ữ: 'u',
141
+ Ự: 'u',
142
+ Y: 'y',
143
+ Ỳ: 'y',
144
+ Ý: 'y',
145
+ Ỷ: 'y',
146
+ Ỹ: 'y',
147
+ Ỵ: 'y',
28
148
  Đ: 'd',
29
149
  };
30
150
  /** Remove Vietnamese diacritics, lowercase, collapse whitespace. */
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/internal/helpers.ts"],"names":[],"mappings":"AAEA,MAAM,aAAa,GAA2B;IAC5C,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG;IAC9C,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG;IAC9C,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG;IAC9C,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG;IAC9C,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG;IAC9C,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG;IAC9C,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG;IAC9C,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG;IAC9C,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG;IAC9C,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG;IAC9C,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG;IAC9C,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG;IAC9C,CAAC,EAAE,GAAG;IACN,YAAY;IACZ,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG;IAC9C,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG;IAC9C,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG;IAC9C,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG;IAC9C,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG;IAC9C,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG;IAC9C,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG;IAC9C,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG;IAC9C,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG;IAC9C,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG;IAC9C,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG;IAC9C,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG;IAC9C,CAAC,EAAE,GAAG;CACP,CAAC;AAEF,oEAAoE;AACpE,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,IAAI;SACR,KAAK,CAAC,EAAE,CAAC;SACT,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;SACpC,IAAI,CAAC,EAAE,CAAC;SACR,WAAW,EAAE;SACb,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,CAGjC;IACC,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,CAGhC;IACC,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,CAGjC;IACC,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,EAAE,CAAI,IAAO;IAC3B,OAAO,EAAE,IAAI,EAAE,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,KAAe;IAClC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAC/B,CAAC"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/internal/helpers.ts"],"names":[],"mappings":"AAEA,MAAM,aAAa,GAA2B;IAC5C,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,YAAY;IACZ,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;IACN,CAAC,EAAE,GAAG;CACP,CAAC;AAEF,oEAAoE;AACpE,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,IAAI;SACR,KAAK,CAAC,EAAE,CAAC;SACT,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;SACpC,IAAI,CAAC,EAAE,CAAC;SACR,WAAW,EAAE;SACb,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,CAGjC;IACC,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,CAGhC;IACC,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,CAGjC;IACC,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,EAAE,CAAI,IAAO;IAC3B,OAAO,EAAE,IAAI,EAAE,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,KAAe;IAClC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAC/B,CAAC"}
@@ -24,10 +24,12 @@ export interface ProvinceMerge {
24
24
  }
25
25
  /** Old-to-new ward code mapping. */
26
26
  export interface WardMapping {
27
- oldIdCommune: string;
28
- oldCommuneName: string;
29
- newIdCommune: string;
30
- newCommuneName: string;
31
- newIdProvince: string;
27
+ oldWardCode: string;
28
+ oldWardName: string;
29
+ oldDistrictName: string;
30
+ oldProvinceName: string;
31
+ newWardCode: string;
32
+ newWardName: string;
33
+ newProvinceName: string;
32
34
  }
33
35
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/internal/v3/types.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,MAAM,WAAW,QAAQ;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,yDAAyD;AACzD,MAAM,WAAW,OAAO;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,yCAAyC;AACzC,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,iBAAiB,EAAE,CAAC;CACjC;AAED,oCAAoC;AACpC,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;CACvB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/internal/v3/types.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,MAAM,WAAW,QAAQ;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,yDAAyD;AACzD,MAAM,WAAW,OAAO;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,yCAAyC;AACzC,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,iBAAiB,EAAE,CAAC;CACjC;AAED,oCAAoC;AACpC,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;CACzB"}
@@ -0,0 +1,11 @@
1
+ import type { AddressQueryInput, AddressQueryResult } from './types.js';
2
+ /**
3
+ * Structured address query: resolve address components across both v3 and legacy
4
+ * systems with fuzzy matching, cross-resolution, and flat LLM-friendly output.
5
+ *
6
+ * - All fields are optional — pass only what you know.
7
+ * - Structured params (province/district/commune/hamlet) take priority over address parsing.
8
+ * - Address string is used as fallback for any missing structured param.
9
+ */
10
+ export declare function addressQuery(input: AddressQueryInput): AddressQueryResult;
11
+ //# sourceMappingURL=query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAGnB,MAAM,YAAY,CAAC;AAuHpB;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,kBAAkB,CAsKzE"}
package/dist/query.js ADDED
@@ -0,0 +1,262 @@
1
+ import { parseAddress, fuzzySearchProvinces, } from './internal/address.js';
2
+ import { normalizeProvince, normalizeCommune, normalizeDistrict, } from './internal/helpers.js';
3
+ import { v3 as v3Internal, provinceMerges, wardMappings } from './internal/v3/index.js';
4
+ import { legacy as legacyInternal } from './internal/legacy/index.js';
5
+ // ─── Private helpers ────────────────────────────────────
6
+ function toResolvedUnit(unit) {
7
+ if (!unit)
8
+ return { id: null, name: null };
9
+ return { id: unit.id, name: unit.name };
10
+ }
11
+ /**
12
+ * Resolve a province query against both v3 and legacy systems.
13
+ * Attempts ID, code, and name lookups with cross-resolution via provinceMerges.
14
+ */
15
+ function resolveProvince(query) {
16
+ if (!query) {
17
+ return { v3Province: { id: null, name: null }, legacyProvince: { id: null, name: null } };
18
+ }
19
+ const trimmed = query.trim();
20
+ const v3ProvinceList = v3Internal.provinces().map(normalizeProvince);
21
+ const legacyProvinceList = legacyInternal.provinces().map(normalizeProvince);
22
+ let v3Province = null;
23
+ let legacyProvince = null;
24
+ // ── v3 lookup ──
25
+ // By code (3-letter, e.g. "HCM", "HNI")
26
+ if (trimmed.length === 3 && /^[A-Za-z]+$/.test(trimmed)) {
27
+ const byCode = v3Internal.getProvinceByCode(trimmed.toUpperCase());
28
+ if (byCode)
29
+ v3Province = normalizeProvince(byCode);
30
+ }
31
+ // By ID (2-digit)
32
+ if (!v3Province && trimmed.length === 2 && /^\d+$/.test(trimmed)) {
33
+ const byId = v3Internal.getProvinceById(trimmed);
34
+ if (byId)
35
+ v3Province = normalizeProvince(byId);
36
+ }
37
+ // By name (fuzzy)
38
+ if (!v3Province) {
39
+ const matches = fuzzySearchProvinces(trimmed, v3ProvinceList);
40
+ if (matches.length >= 1)
41
+ v3Province = matches[0];
42
+ }
43
+ // ── Legacy lookup ──
44
+ // By ID (2-digit)
45
+ if (trimmed.length === 2 && /^\d+$/.test(trimmed)) {
46
+ const byId = legacyInternal.getProvinceById(trimmed);
47
+ if (byId)
48
+ legacyProvince = normalizeProvince(byId);
49
+ }
50
+ // By name (fuzzy)
51
+ if (!legacyProvince) {
52
+ const matches = fuzzySearchProvinces(trimmed, legacyProvinceList);
53
+ if (matches.length >= 1)
54
+ legacyProvince = matches[0];
55
+ }
56
+ // ── Cross-resolution ──
57
+ // v3 → legacy: try direct ID match first
58
+ if (v3Province && !legacyProvince) {
59
+ const byId = legacyInternal.getProvinceById(v3Province.id);
60
+ if (byId) {
61
+ legacyProvince = normalizeProvince(byId);
62
+ }
63
+ }
64
+ // legacy → v3: try direct ID match first
65
+ if (!v3Province && legacyProvince) {
66
+ const byId = v3Internal.getProvinceById(legacyProvince.id);
67
+ if (byId) {
68
+ v3Province = normalizeProvince(byId);
69
+ }
70
+ }
71
+ // v3 → legacy via provinceMerges (v3 is new merged province)
72
+ if (v3Province && !legacyProvince) {
73
+ for (const merge of provinceMerges) {
74
+ if (merge.newProvinceId === v3Province.id) {
75
+ const firstOld = merge.mergedFrom[0];
76
+ if (firstOld) {
77
+ legacyProvince = normalizeProvince({
78
+ idProvince: firstOld.oldProvinceId,
79
+ name: firstOld.oldProvinceName,
80
+ });
81
+ }
82
+ break;
83
+ }
84
+ }
85
+ }
86
+ // legacy → v3 via provinceMerges
87
+ if (!v3Province && legacyProvince) {
88
+ for (const merge of provinceMerges) {
89
+ const found = merge.mergedFrom.find((m) => m.oldProvinceId === legacyProvince.id);
90
+ if (found) {
91
+ const resolved = v3Internal.getProvinceById(merge.newProvinceId);
92
+ if (resolved) {
93
+ v3Province = normalizeProvince(resolved);
94
+ }
95
+ break;
96
+ }
97
+ }
98
+ }
99
+ return {
100
+ v3Province: toResolvedUnit(v3Province),
101
+ legacyProvince: toResolvedUnit(legacyProvince),
102
+ };
103
+ }
104
+ // ─── Public API ─────────────────────────────────────────
105
+ /**
106
+ * Structured address query: resolve address components across both v3 and legacy
107
+ * systems with fuzzy matching, cross-resolution, and flat LLM-friendly output.
108
+ *
109
+ * - All fields are optional — pass only what you know.
110
+ * - Structured params (province/district/commune/hamlet) take priority over address parsing.
111
+ * - Address string is used as fallback for any missing structured param.
112
+ */
113
+ export function addressQuery(input) {
114
+ const raw = { ...input };
115
+ // ── Phase 1: Parse address string (fallback) ──
116
+ const parsed = input.address
117
+ ? parseAddress(input.address)
118
+ : {
119
+ parts: [],
120
+ hamlet: null,
121
+ commune: null,
122
+ district: null,
123
+ province: null,
124
+ };
125
+ // Structured params take priority; address fills in missing fields
126
+ const targetProvince = input.province || parsed.province;
127
+ const targetDistrict = input.district || parsed.district;
128
+ const targetCommune = input.commune || parsed.commune;
129
+ const targetHamlet = input.hamlet || parsed.hamlet;
130
+ // ── Phase 2: Determine which fields were requested ──
131
+ const requestedFields = new Set();
132
+ if (input.province)
133
+ requestedFields.add('province');
134
+ else if (parsed.province)
135
+ requestedFields.add('province');
136
+ if (input.district)
137
+ requestedFields.add('district');
138
+ else if (parsed.district)
139
+ requestedFields.add('district');
140
+ if (input.commune)
141
+ requestedFields.add('commune');
142
+ else if (parsed.commune)
143
+ requestedFields.add('commune');
144
+ if (input.hamlet)
145
+ requestedFields.add('hamlet');
146
+ else if (parsed.hamlet)
147
+ requestedFields.add('hamlet');
148
+ // ── Phase 3: Resolve province ──
149
+ const { v3Province, legacyProvince } = resolveProvince(targetProvince);
150
+ // ── Phase 4: Resolve district (legacy system) ──
151
+ let resolvedLegacyDistrict = { id: null, name: null };
152
+ if (targetDistrict && legacyProvince.id) {
153
+ const districts = legacyInternal
154
+ .getDistrictsByProvinceId(legacyProvince.id)
155
+ .map(normalizeDistrict);
156
+ const matches = fuzzySearchProvinces(targetDistrict, districts);
157
+ if (matches.length > 0) {
158
+ resolvedLegacyDistrict = toResolvedUnit(matches[0]);
159
+ }
160
+ }
161
+ // ── Phase 5: Resolve commune ──
162
+ let resolvedV3Commune = { id: null, name: null };
163
+ let resolvedLegacyCommune = { id: null, name: null };
164
+ if (targetCommune) {
165
+ // 5a. Legacy commune search
166
+ if (legacyProvince.id) {
167
+ // Within district first
168
+ if (resolvedLegacyDistrict.id) {
169
+ const communes = legacyInternal
170
+ .getCommunesByDistrictId(resolvedLegacyDistrict.id)
171
+ .map(normalizeCommune);
172
+ const matches = fuzzySearchProvinces(targetCommune, communes);
173
+ if (matches.length > 0) {
174
+ resolvedLegacyCommune = toResolvedUnit(matches[0]);
175
+ }
176
+ }
177
+ // Then within province
178
+ if (!resolvedLegacyCommune.id) {
179
+ const communes = legacyInternal
180
+ .getCommunesByProvinceId(legacyProvince.id)
181
+ .map(normalizeCommune);
182
+ const matches = fuzzySearchProvinces(targetCommune, communes);
183
+ if (matches.length > 0) {
184
+ resolvedLegacyCommune = toResolvedUnit(matches[0]);
185
+ }
186
+ }
187
+ }
188
+ // 5b. V3 commune search (when v3 province known)
189
+ if (v3Province.id) {
190
+ // Try wardMappings first if we have a legacy commune (authoritative cross-ref)
191
+ if (resolvedLegacyCommune.id) {
192
+ const mapping = wardMappings.find((m) => m.oldWardCode === resolvedLegacyCommune.id);
193
+ if (mapping) {
194
+ const resolved = v3Internal.getCommuneById(mapping.newWardCode);
195
+ if (resolved) {
196
+ resolvedV3Commune = toResolvedUnit(normalizeCommune(resolved));
197
+ }
198
+ }
199
+ }
200
+ // Fall back to name search in v3 communes
201
+ if (!resolvedV3Commune.id) {
202
+ const v3Communes = v3Internal
203
+ .getCommunesByProvinceId(v3Province.id)
204
+ .map(normalizeCommune);
205
+ const matches = fuzzySearchProvinces(targetCommune, v3Communes);
206
+ if (matches.length > 0) {
207
+ resolvedV3Commune = toResolvedUnit(matches[0]);
208
+ }
209
+ }
210
+ }
211
+ }
212
+ // ── Phase 6: Build result ──
213
+ // Verified status
214
+ const provinceVerified = v3Province.id !== null || legacyProvince.id !== null;
215
+ const communeVerified = resolvedV3Commune.id !== null;
216
+ const districtVerified = resolvedLegacyDistrict.id !== null;
217
+ // Best-match flat fields
218
+ const bestProvinceName = v3Province.name || legacyProvince.name;
219
+ const bestProvinceId = v3Province.id || legacyProvince.id;
220
+ const bestCommuneName = resolvedV3Commune.name || resolvedLegacyCommune.name;
221
+ const bestCommuneId = resolvedV3Commune.id || resolvedLegacyCommune.id;
222
+ // Missing fields
223
+ const missingFields = [];
224
+ if (requestedFields.has('province') && !bestProvinceName) {
225
+ missingFields.push('province');
226
+ }
227
+ if (requestedFields.has('district') && !resolvedLegacyDistrict.name) {
228
+ missingFields.push('district');
229
+ }
230
+ if (requestedFields.has('commune') && !bestCommuneName) {
231
+ missingFields.push('commune');
232
+ }
233
+ if (requestedFields.has('hamlet') && !targetHamlet) {
234
+ missingFields.push('hamlet');
235
+ }
236
+ return {
237
+ raw,
238
+ v3: {
239
+ province: v3Province,
240
+ commune: resolvedV3Commune,
241
+ },
242
+ legacy: {
243
+ province: legacyProvince,
244
+ district: resolvedLegacyDistrict,
245
+ commune: resolvedLegacyCommune,
246
+ hamlet: targetHamlet,
247
+ },
248
+ province: bestProvinceName,
249
+ provinceId: bestProvinceId,
250
+ provinceVerified,
251
+ commune: bestCommuneName,
252
+ communeId: bestCommuneId,
253
+ communeVerified,
254
+ district: resolvedLegacyDistrict.name,
255
+ districtId: resolvedLegacyDistrict.id,
256
+ districtVerified,
257
+ hamlet: targetHamlet,
258
+ missingFields,
259
+ complete: missingFields.length === 0,
260
+ };
261
+ }
262
+ //# sourceMappingURL=query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -34,4 +34,64 @@ export interface AddressLookupResult {
34
34
  hamlet: string | null;
35
35
  };
36
36
  }
37
+ /** Input for structured address query. All fields optional — mix and match. */
38
+ export interface AddressQueryInput {
39
+ /** Full address string (free text, will be parsed if needed) */
40
+ address?: string;
41
+ /** Province/city name or ID (e.g. "Hà Nội", "01", "HNI") */
42
+ province?: string;
43
+ /** District name (legacy system — quận/huyện) */
44
+ district?: string;
45
+ /** Commune/ward name (v3 system — phường/xã) */
46
+ commune?: string;
47
+ /** Hamlet/village name (thôn/ấp) */
48
+ hamlet?: string;
49
+ }
50
+ /** A resolved administrative unit with verification status. */
51
+ export interface ResolvedUnit {
52
+ id: string | null;
53
+ name: string | null;
54
+ }
55
+ /** A resolved unit with verification flag. */
56
+ export interface VerifiedUnit extends ResolvedUnit {
57
+ verified: boolean;
58
+ }
59
+ /** Result of structured address query — flat, LLM-friendly. */
60
+ export interface AddressQueryResult {
61
+ /** Original input */
62
+ raw: AddressQueryInput;
63
+ /** v3 system (34 tỉnh, 2-tier: province → commune) */
64
+ v3: {
65
+ province: ResolvedUnit | null;
66
+ commune: ResolvedUnit | null;
67
+ };
68
+ /** Legacy system (63 tỉnh, 3-tier: province → district → commune) */
69
+ legacy: {
70
+ province: ResolvedUnit | null;
71
+ district: ResolvedUnit | null;
72
+ commune: ResolvedUnit | null;
73
+ hamlet: string | null;
74
+ };
75
+ /** Best-match province name */
76
+ province: string | null;
77
+ provinceId: string | null;
78
+ /** true if province was found in official data */
79
+ provinceVerified: boolean;
80
+ /** Best-match commune/ward name (v3) */
81
+ commune: string | null;
82
+ communeId: string | null;
83
+ /** true if commune was found in v3 data */
84
+ communeVerified: boolean;
85
+ /** Best-match district name (legacy) */
86
+ district: string | null;
87
+ districtId: string | null;
88
+ /** true if district was found in legacy data */
89
+ districtVerified: boolean;
90
+ /** Hamlet/village */
91
+ hamlet: string | null;
92
+ /** Fields that were requested but couldn't be resolved */
93
+ missingFields: string[];
94
+ /** Overall: true if all requested fields were resolved */
95
+ complete: boolean;
96
+ }
37
97
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,sCAAsC;AACtC,MAAM,MAAM,QAAQ,GAChB,oBAAoB,GACpB,mBAAmB,GACnB,oBAAoB,GACpB,qBAAqB,GACrB,oBAAoB,GACpB,qBAAqB,GACrB,qBAAqB,GACrB,oBAAoB,GACpB,eAAe,GACf,0BAA0B,GAC1B,4BAA4B,CAAC;AAEjC,4CAA4C;AAC5C,MAAM,WAAW,SAAS,CAAC,CAAC;IAC1B,IAAI,EAAE,CAAC,CAAC;IACR,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,QAAQ,CAAC;CACjB;AAED,iDAAiD;AACjD,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;CACtD;AAED,sFAAsF;AACtF,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE;QACN,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;QACzB,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;QACzB,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;QACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;KACvB,CAAC;IACF,EAAE,EAAE;QACF,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;QACzB,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;QACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;KACvB,CAAC;CACH"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,9 @@
1
1
  {
2
2
  "name": "@0xd33p/vietnam-divisions",
3
- "version": "0.2.0",
4
- "files": ["dist"],
3
+ "version": "0.3.0",
4
+ "files": [
5
+ "dist"
6
+ ],
5
7
  "publishConfig": {
6
8
  "access": "public"
7
9
  },