pak-geodata 0.1.0 → 0.2.2
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 +474 -3
- package/dist/data/cities.d.ts.map +1 -1
- package/dist/data/cities.js +897 -0
- package/dist/data/cities.js.map +1 -1
- package/dist/geo.d.ts +20 -0
- package/dist/geo.d.ts.map +1 -1
- package/dist/geo.js +71 -3
- package/dist/geo.js.map +1 -1
- package/dist/hierarchy.cjs +6591 -0
- package/dist/hierarchy.d.ts +39 -0
- package/dist/hierarchy.d.ts.map +1 -0
- package/dist/hierarchy.js +242 -0
- package/dist/hierarchy.js.map +1 -0
- package/dist/index.cjs +1402 -157
- package/dist/index.d.ts +6 -17
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -29
- package/dist/index.js.map +1 -1
- package/dist/search.d.ts +19 -5
- package/dist/search.d.ts.map +1 -1
- package/dist/search.js +147 -60
- package/dist/search.js.map +1 -1
- package/dist/types.d.ts +11 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/urdu.d.ts +5 -0
- package/dist/urdu.d.ts.map +1 -0
- package/dist/urdu.js +44 -0
- package/dist/urdu.js.map +1 -0
- package/package.json +6 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import { haversineDistanceKm } from './geo.js';
|
|
1
|
+
import type { PakistanArea, PakistanCity, PakistanProvince } from './types.js';
|
|
3
2
|
/**
|
|
4
3
|
* Returns all verified provinces and administrative territories of Pakistan.
|
|
5
4
|
*/
|
|
@@ -36,19 +35,9 @@ export declare function findAreaByPostalCode(postalCode: string | number): Pakis
|
|
|
36
35
|
* Returns all areas sharing a given 5-digit Pakistan Post postal code.
|
|
37
36
|
*/
|
|
38
37
|
export declare function findAreasByPostalCode(postalCode: string | number): PakistanArea[];
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
*/
|
|
45
|
-
export declare function searchAreas(query: string, options?: SearchOptions, candidateAreas?: readonly PakistanArea[]): PakistanArea[];
|
|
46
|
-
/**
|
|
47
|
-
* Finds the nearest verified PakistanArea to the given coordinates.
|
|
48
|
-
*
|
|
49
|
-
* Scopes candidate pool via O(1) city map when options.cityId is provided.
|
|
50
|
-
*/
|
|
51
|
-
export declare function getNearestArea(coords: Coordinates, options?: NearestAreaOptions, candidateAreas?: readonly PakistanArea[]): PakistanArea | null;
|
|
52
|
-
export { haversineDistanceKm };
|
|
53
|
-
export type { Coordinates, AreaType, PakistanArea, PakistanCity, PakistanProvince, ProvinceType, SearchOptions, NearestAreaOptions };
|
|
38
|
+
export { searchAreas } from './search.js';
|
|
39
|
+
export { getNearestArea, haversineDistanceKm } from './geo.js';
|
|
40
|
+
export { normalizeUrduText, toWesternDigits, toEasternDigits, stripUrduDiacritics } from './urdu.js';
|
|
41
|
+
export { getCityName, getAreaName, toLocationItem, getProvincesAsLocationItems, getCitiesAsLocationItems, getAreasAsLocationItems, searchLocationItems } from './hierarchy.js';
|
|
42
|
+
export type { Coordinates, AreaType, PakistanArea, PakistanCity, PakistanProvince, ProvinceType, SearchOptions, NearestAreaOptions, PakLocationType, PakLocationItem, ProvinceId, CityId } from './types.js';
|
|
54
43
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,gBAAgB,EACjB,MAAM,YAAY,CAAC;AA0CpB;;GAEG;AACH,wBAAgB,eAAe,IAAI,gBAAgB,EAAE,CAEpD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAGxE;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,YAAY,EAAE,CAE7C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY,EAAE,CAGtE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAGhE;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,YAAY,EAAE,CAE5C;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE,CAG7D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,YAAY,GAAG,SAAS,CAG1F;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,YAAY,EAAE,CAGjF;AAED,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAG/D,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,mBAAmB,EACpB,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,WAAW,EACX,WAAW,EACX,cAAc,EACd,2BAA2B,EAC3B,wBAAwB,EACxB,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,gBAAgB,CAAC;AAGxB,YAAY,EACV,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,UAAU,EACV,MAAM,EACP,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { provinces } from './data/provinces.js';
|
|
2
2
|
import { cities } from './data/cities.js';
|
|
3
3
|
import { allAreas } from './data/areas/index.js';
|
|
4
|
-
import { haversineDistanceKm, getNearestArea as baseGetNearestArea } from './geo.js';
|
|
5
|
-
import { searchAreas as baseSearchAreas } from './search.js';
|
|
6
4
|
// Pre-indexed lookup maps for O(1) lookups
|
|
7
5
|
const provinceByIdMap = new Map();
|
|
8
6
|
for (const p of provinces) {
|
|
@@ -100,31 +98,11 @@ export function findAreasByPostalCode(postalCode) {
|
|
|
100
98
|
return [];
|
|
101
99
|
return [...(areasByPostalCodeMap.get(String(postalCode).trim()) || [])];
|
|
102
100
|
}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
export
|
|
110
|
-
let pool = candidateAreas;
|
|
111
|
-
if (!pool && options?.cityId && typeof options.cityId === 'string') {
|
|
112
|
-
pool = areasByCityMap.get(options.cityId.toLowerCase().trim()) || [];
|
|
113
|
-
}
|
|
114
|
-
return baseSearchAreas(query, options, pool);
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* Finds the nearest verified PakistanArea to the given coordinates.
|
|
118
|
-
*
|
|
119
|
-
* Scopes candidate pool via O(1) city map when options.cityId is provided.
|
|
120
|
-
*/
|
|
121
|
-
export function getNearestArea(coords, options, candidateAreas) {
|
|
122
|
-
let pool = candidateAreas;
|
|
123
|
-
if (!pool && options?.cityId && typeof options.cityId === 'string') {
|
|
124
|
-
pool = areasByCityMap.get(options.cityId.toLowerCase().trim()) || [];
|
|
125
|
-
}
|
|
126
|
-
return baseGetNearestArea(coords, options, pool);
|
|
127
|
-
}
|
|
128
|
-
// Re-export spatial distance utility
|
|
129
|
-
export { haversineDistanceKm };
|
|
101
|
+
// Re-export search and spatial geocoding
|
|
102
|
+
export { searchAreas } from './search.js';
|
|
103
|
+
export { getNearestArea, haversineDistanceKm } from './geo.js';
|
|
104
|
+
// Re-export Urdu normalization engine
|
|
105
|
+
export { normalizeUrduText, toWesternDigits, toEasternDigits, stripUrduDiacritics } from './urdu.js';
|
|
106
|
+
// Re-export hierarchy and bilingual name lookups
|
|
107
|
+
export { getCityName, getAreaName, toLocationItem, getProvincesAsLocationItems, getCitiesAsLocationItems, getAreasAsLocationItems, searchLocationItems } from './hierarchy.js';
|
|
130
108
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/search.d.ts
CHANGED
|
@@ -1,12 +1,26 @@
|
|
|
1
|
-
import type { PakistanArea, SearchOptions } from './types.js';
|
|
1
|
+
import type { PakistanArea, SearchOptions, PakLocationItem } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Searches areas within a specific city and returns ranked results as PakLocationItem[].
|
|
4
|
+
*
|
|
5
|
+
* Each returned PakLocationItem always contains both English (`nameEn`) and Urdu (`nameUr`) names.
|
|
6
|
+
* The `_lang` parameter is accepted for Sanctuary compatibility.
|
|
7
|
+
*
|
|
8
|
+
* @param cityKey - City identifier, English name, or Urdu name
|
|
9
|
+
* @param query - Search term (English or Urdu)
|
|
10
|
+
* @param _lang - Optional language code accepted for Sanctuary compatibility
|
|
11
|
+
* @returns Ranked array of PakLocationItem elements
|
|
12
|
+
*/
|
|
13
|
+
export declare function searchLocationItems(cityKey: string, query: string, _lang?: 'en' | 'ur'): PakLocationItem[];
|
|
2
14
|
/**
|
|
3
15
|
* Searches Pakistan areas using structured matching and ranking:
|
|
4
16
|
* Exact match > Prefix match > Alias match > Substring / Token match > Fuzzy match.
|
|
5
17
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
18
|
+
* Overload 1 (Sanctuary signature):
|
|
19
|
+
* searchAreas(cityKey: string, query: string, lang?: 'en' | 'ur'): PakLocationItem[]
|
|
20
|
+
*
|
|
21
|
+
* Overload 2 (Classic signature):
|
|
22
|
+
* searchAreas(query: string, options?: SearchOptions, candidateAreas?: readonly PakistanArea[]): PakistanArea[]
|
|
10
23
|
*/
|
|
24
|
+
export declare function searchAreas(cityKey: string, query: string, lang?: 'en' | 'ur'): PakLocationItem[];
|
|
11
25
|
export declare function searchAreas(query: string, options?: SearchOptions, candidateAreas?: readonly PakistanArea[]): PakistanArea[];
|
|
12
26
|
//# sourceMappingURL=search.d.ts.map
|
package/dist/search.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AA+
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AA+P/E;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,IAAI,GAAG,IAAI,GAClB,eAAe,EAAE,CAanB;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GACjB,eAAe,EAAE,CAAC;AACrB,wBAAgB,WAAW,CACzB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,aAAa,EACvB,cAAc,CAAC,EAAE,SAAS,YAAY,EAAE,GACvC,YAAY,EAAE,CAAC"}
|
package/dist/search.js
CHANGED
|
@@ -1,12 +1,6 @@
|
|
|
1
1
|
import { allAreas } from './data/areas/index.js';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
for (const a of allAreas) {
|
|
5
|
-
const cityKey = a.cityId.toLowerCase();
|
|
6
|
-
const list = areasByCityMap.get(cityKey) || [];
|
|
7
|
-
list.push(a);
|
|
8
|
-
areasByCityMap.set(cityKey, list);
|
|
9
|
-
}
|
|
2
|
+
import { normalizeUrduText } from './urdu.js';
|
|
3
|
+
import { toLocationItem, cityLookupMap } from './hierarchy.js';
|
|
10
4
|
function normalizeString(str) {
|
|
11
5
|
return str.toLowerCase().trim().replace(/[-_.,/]/g, ' ').replace(/\s+/g, ' ');
|
|
12
6
|
}
|
|
@@ -34,16 +28,69 @@ function levenshteinDistance(a, b) {
|
|
|
34
28
|
}
|
|
35
29
|
return matrix[b.length];
|
|
36
30
|
}
|
|
31
|
+
function createNormalizedCandidate(area) {
|
|
32
|
+
const normName = normalizeString(area.name);
|
|
33
|
+
const normId = normalizeString(area.id);
|
|
34
|
+
const rawUrdu = area.urduName ? area.urduName.trim() : '';
|
|
35
|
+
const normUrdu = area.urduName ? normalizeUrduText(area.urduName) : '';
|
|
36
|
+
const normAliases = area.aliases.map((a) => normalizeString(a));
|
|
37
|
+
const allText = `${normName} ${normId} ${normAliases.join(' ')} ${normUrdu} ${rawUrdu}`.trim();
|
|
38
|
+
return {
|
|
39
|
+
area,
|
|
40
|
+
normName,
|
|
41
|
+
normId,
|
|
42
|
+
normUrdu,
|
|
43
|
+
rawUrdu,
|
|
44
|
+
normAliases,
|
|
45
|
+
allText
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
// Pre-tokenize and normalize all candidates at module load time to eliminate
|
|
49
|
+
// repeated string allocations and lowercasing inside keystroke search loops.
|
|
50
|
+
const normalizedCandidates = allAreas.map(createNormalizedCandidate);
|
|
51
|
+
const candidateByAreaMap = new Map();
|
|
52
|
+
for (const c of normalizedCandidates) {
|
|
53
|
+
candidateByAreaMap.set(c.area, c);
|
|
54
|
+
}
|
|
55
|
+
const normalizedByCityMap = new Map();
|
|
56
|
+
for (const c of normalizedCandidates) {
|
|
57
|
+
const cityKey = c.area.cityId.toLowerCase();
|
|
58
|
+
const list = normalizedByCityMap.get(cityKey) || [];
|
|
59
|
+
list.push(c);
|
|
60
|
+
normalizedByCityMap.set(cityKey, list);
|
|
61
|
+
}
|
|
37
62
|
/**
|
|
38
|
-
*
|
|
39
|
-
* Exact match > Prefix match > Alias match > Substring / Token match > Fuzzy match.
|
|
40
|
-
*
|
|
41
|
-
* @param query - Search term (English, Urdu, ID, or colloquial alias)
|
|
42
|
-
* @param options - Optional filters (cityId, provinceId, limit)
|
|
43
|
-
* @param candidateAreas - Custom pool of areas (defaults to all verified areas)
|
|
44
|
-
* @returns Ranked array of matching PakistanArea objects
|
|
63
|
+
* Resolves candidates pool with O(1) city selection and pre-normalized metadata.
|
|
45
64
|
*/
|
|
46
|
-
|
|
65
|
+
function getCandidatePool(options, candidateAreas = allAreas) {
|
|
66
|
+
let list;
|
|
67
|
+
if (candidateAreas === allAreas) {
|
|
68
|
+
if (options?.cityId && typeof options.cityId === 'string') {
|
|
69
|
+
const cityId = options.cityId.toLowerCase().trim();
|
|
70
|
+
list = normalizedByCityMap.get(cityId) || [];
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
list = normalizedCandidates;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
let filtered = candidateAreas;
|
|
78
|
+
if (options?.cityId && typeof options.cityId === 'string') {
|
|
79
|
+
const cityId = options.cityId.toLowerCase().trim();
|
|
80
|
+
filtered = filtered.filter((a) => a.cityId.toLowerCase() === cityId);
|
|
81
|
+
}
|
|
82
|
+
list = filtered.map((a) => candidateByAreaMap.get(a) || createNormalizedCandidate(a));
|
|
83
|
+
}
|
|
84
|
+
if (options?.provinceId && typeof options.provinceId === 'string') {
|
|
85
|
+
const provinceId = options.provinceId.toLowerCase().trim();
|
|
86
|
+
list = list.filter((c) => c.area.provinceId.toLowerCase() === provinceId);
|
|
87
|
+
}
|
|
88
|
+
return list;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Classic search implementation returning PakistanArea[].
|
|
92
|
+
*/
|
|
93
|
+
function classicSearchAreas(query, options, candidateAreas = allAreas) {
|
|
47
94
|
if (typeof query !== 'string') {
|
|
48
95
|
return [];
|
|
49
96
|
}
|
|
@@ -52,86 +99,87 @@ export function searchAreas(query, options, candidateAreas = allAreas) {
|
|
|
52
99
|
return [];
|
|
53
100
|
}
|
|
54
101
|
const normQuery = normalizeString(trimmed);
|
|
102
|
+
const normUrduQuery = normalizeUrduText(trimmed);
|
|
55
103
|
const queryTokens = normQuery.split(' ').filter(Boolean);
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
const cityId = options.cityId.toLowerCase().trim();
|
|
59
|
-
if (candidateAreas === allAreas) {
|
|
60
|
-
filtered = areasByCityMap.get(cityId) || [];
|
|
61
|
-
}
|
|
62
|
-
else {
|
|
63
|
-
filtered = filtered.filter((a) => a.cityId.toLowerCase() === cityId);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
if (options?.provinceId && typeof options.provinceId === 'string') {
|
|
67
|
-
const provinceId = options.provinceId.toLowerCase().trim();
|
|
68
|
-
filtered = filtered.filter((a) => a.provinceId.toLowerCase() === provinceId);
|
|
69
|
-
}
|
|
104
|
+
const urduTokens = normUrduQuery ? normUrduQuery.split(' ').filter(Boolean) : [];
|
|
105
|
+
const pool = getCandidatePool(options, candidateAreas);
|
|
70
106
|
const scored = [];
|
|
71
|
-
for (const
|
|
107
|
+
for (const c of pool) {
|
|
72
108
|
let score = 0;
|
|
73
|
-
const normName = normalizeString(area.name);
|
|
74
|
-
const normId = normalizeString(area.id);
|
|
75
|
-
const normUrdu = area.urduName ? area.urduName.trim() : '';
|
|
76
|
-
const normAliases = area.aliases.map((a) => normalizeString(a));
|
|
77
109
|
// 1. Exact matches
|
|
78
|
-
if (normName === normQuery) {
|
|
110
|
+
if (c.normName === normQuery) {
|
|
79
111
|
score = Math.max(score, 1000);
|
|
80
112
|
}
|
|
81
|
-
else if (normId === normQuery) {
|
|
113
|
+
else if (c.normId === normQuery) {
|
|
82
114
|
score = Math.max(score, 950);
|
|
83
115
|
}
|
|
84
|
-
else if (normUrdu && normUrdu ===
|
|
116
|
+
else if ((c.normUrdu && c.normUrdu === normUrduQuery) ||
|
|
117
|
+
(c.rawUrdu && c.rawUrdu === trimmed)) {
|
|
85
118
|
score = Math.max(score, 900);
|
|
86
119
|
}
|
|
87
|
-
else if (normAliases.some((al) => al === normQuery)) {
|
|
120
|
+
else if (c.normAliases.some((al) => al === normQuery)) {
|
|
88
121
|
score = Math.max(score, 850);
|
|
89
122
|
}
|
|
90
123
|
// 2. Prefix matches
|
|
91
124
|
if (score < 800) {
|
|
92
|
-
if (normName.startsWith(normQuery)) {
|
|
93
|
-
score = Math.max(score, 700 + (normQuery.length / normName.length) * 50);
|
|
125
|
+
if (c.normName.startsWith(normQuery)) {
|
|
126
|
+
score = Math.max(score, 700 + (normQuery.length / c.normName.length) * 50);
|
|
94
127
|
}
|
|
95
|
-
else if (normUrdu && normUrdu.startsWith(
|
|
128
|
+
else if ((c.normUrdu && normUrduQuery && c.normUrdu.startsWith(normUrduQuery)) ||
|
|
129
|
+
(c.rawUrdu && c.rawUrdu.startsWith(trimmed))) {
|
|
96
130
|
score = Math.max(score, 650);
|
|
97
131
|
}
|
|
98
|
-
else if (normAliases.some((al) => al.startsWith(normQuery))) {
|
|
132
|
+
else if (c.normAliases.some((al) => al.startsWith(normQuery))) {
|
|
99
133
|
score = Math.max(score, 600);
|
|
100
134
|
}
|
|
101
135
|
}
|
|
102
136
|
// 3. Substring / Token matches
|
|
103
137
|
if (score < 600) {
|
|
104
|
-
if (normName.includes(normQuery)) {
|
|
138
|
+
if (c.normName.includes(normQuery)) {
|
|
105
139
|
score = Math.max(score, 500);
|
|
106
140
|
}
|
|
107
|
-
else if (normUrdu && normUrdu.includes(
|
|
141
|
+
else if ((c.normUrdu && normUrduQuery && c.normUrdu.includes(normUrduQuery)) ||
|
|
142
|
+
(c.rawUrdu && c.rawUrdu.includes(trimmed))) {
|
|
108
143
|
score = Math.max(score, 450);
|
|
109
144
|
}
|
|
110
|
-
else if (normAliases.some((al) => al.includes(normQuery))) {
|
|
145
|
+
else if (c.normAliases.some((al) => al.includes(normQuery))) {
|
|
111
146
|
score = Math.max(score, 400);
|
|
112
147
|
}
|
|
113
|
-
else
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
148
|
+
else {
|
|
149
|
+
let tokenScore = 0;
|
|
150
|
+
if (queryTokens.length > 0) {
|
|
151
|
+
const matched = queryTokens.filter((token) => c.allText.includes(token));
|
|
152
|
+
if (matched.length === queryTokens.length) {
|
|
153
|
+
tokenScore = Math.max(tokenScore, 300 + queryTokens.length * 20);
|
|
154
|
+
}
|
|
155
|
+
else if (matched.length > 0) {
|
|
156
|
+
tokenScore = Math.max(tokenScore, 100 + (matched.length / queryTokens.length) * 100);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
if (urduTokens.length > 0) {
|
|
160
|
+
const matchedUrdu = urduTokens.filter((token) => c.allText.includes(token));
|
|
161
|
+
if (matchedUrdu.length === urduTokens.length) {
|
|
162
|
+
tokenScore = Math.max(tokenScore, 300 + urduTokens.length * 20);
|
|
163
|
+
}
|
|
164
|
+
else if (matchedUrdu.length > 0) {
|
|
165
|
+
tokenScore = Math.max(tokenScore, 100 + (matchedUrdu.length / urduTokens.length) * 100);
|
|
166
|
+
}
|
|
118
167
|
}
|
|
119
|
-
|
|
120
|
-
score = Math.max(score,
|
|
168
|
+
if (tokenScore > 0) {
|
|
169
|
+
score = Math.max(score, tokenScore);
|
|
121
170
|
}
|
|
122
171
|
}
|
|
123
172
|
}
|
|
124
173
|
// 4. Fuzzy fallback for short queries or slight typos (4 <= length <= 40)
|
|
125
174
|
if (score === 0 && normQuery.length >= 4 && normQuery.length <= 40) {
|
|
126
|
-
const dist = levenshteinDistance(normQuery, normName);
|
|
127
|
-
const maxLen = Math.max(normQuery.length, normName.length);
|
|
175
|
+
const dist = levenshteinDistance(normQuery, c.normName);
|
|
176
|
+
const maxLen = Math.max(normQuery.length, c.normName.length);
|
|
128
177
|
const similarity = 1 - dist / maxLen;
|
|
129
178
|
if (similarity >= 0.72) {
|
|
130
179
|
score = Math.max(score, 150 * similarity);
|
|
131
180
|
}
|
|
132
181
|
else {
|
|
133
|
-
|
|
134
|
-
for (const al of normAliases) {
|
|
182
|
+
for (const al of c.normAliases) {
|
|
135
183
|
if (al.length >= 3) {
|
|
136
184
|
const aliasDist = levenshteinDistance(normQuery, al);
|
|
137
185
|
const aliasMaxLen = Math.max(normQuery.length, al.length);
|
|
@@ -145,16 +193,16 @@ export function searchAreas(query, options, candidateAreas = allAreas) {
|
|
|
145
193
|
}
|
|
146
194
|
}
|
|
147
195
|
if (score > 0) {
|
|
148
|
-
scored.push({
|
|
196
|
+
scored.push({ candidate: c, score });
|
|
149
197
|
}
|
|
150
198
|
}
|
|
151
199
|
scored.sort((a, b) => {
|
|
152
200
|
if (b.score !== a.score) {
|
|
153
201
|
return b.score - a.score;
|
|
154
202
|
}
|
|
155
|
-
return a.area.name.localeCompare(b.area.name);
|
|
203
|
+
return a.candidate.area.name.localeCompare(b.candidate.area.name);
|
|
156
204
|
});
|
|
157
|
-
const results = scored.map((s) => s.area);
|
|
205
|
+
const results = scored.map((s) => s.candidate.area);
|
|
158
206
|
if (options?.limit !== undefined) {
|
|
159
207
|
if (options.limit <= 0) {
|
|
160
208
|
return [];
|
|
@@ -163,4 +211,43 @@ export function searchAreas(query, options, candidateAreas = allAreas) {
|
|
|
163
211
|
}
|
|
164
212
|
return results;
|
|
165
213
|
}
|
|
214
|
+
/**
|
|
215
|
+
* Searches areas within a specific city and returns ranked results as PakLocationItem[].
|
|
216
|
+
*
|
|
217
|
+
* Each returned PakLocationItem always contains both English (`nameEn`) and Urdu (`nameUr`) names.
|
|
218
|
+
* The `_lang` parameter is accepted for Sanctuary compatibility.
|
|
219
|
+
*
|
|
220
|
+
* @param cityKey - City identifier, English name, or Urdu name
|
|
221
|
+
* @param query - Search term (English or Urdu)
|
|
222
|
+
* @param _lang - Optional language code accepted for Sanctuary compatibility
|
|
223
|
+
* @returns Ranked array of PakLocationItem elements
|
|
224
|
+
*/
|
|
225
|
+
export function searchLocationItems(cityKey, query, _lang) {
|
|
226
|
+
if (typeof cityKey !== 'string' || typeof query !== 'string')
|
|
227
|
+
return [];
|
|
228
|
+
const trimmedCity = cityKey.trim();
|
|
229
|
+
const trimmedQuery = query.trim();
|
|
230
|
+
if (!trimmedCity || !trimmedQuery)
|
|
231
|
+
return [];
|
|
232
|
+
const city = cityLookupMap.get(trimmedCity.toLowerCase()) ||
|
|
233
|
+
cityLookupMap.get(normalizeUrduText(trimmedCity));
|
|
234
|
+
if (!city)
|
|
235
|
+
return [];
|
|
236
|
+
const results = classicSearchAreas(trimmedQuery, { cityId: city.id });
|
|
237
|
+
return results.map(toLocationItem);
|
|
238
|
+
}
|
|
239
|
+
export function searchAreas(firstArg, secondArg, thirdArg) {
|
|
240
|
+
// Runtime dispatch: when argument 2 is a string, route to Sanctuary mode
|
|
241
|
+
if (typeof secondArg === 'string') {
|
|
242
|
+
const cityKey = firstArg;
|
|
243
|
+
const query = secondArg;
|
|
244
|
+
const lang = thirdArg === 'ur' ? 'ur' : 'en';
|
|
245
|
+
return searchLocationItems(cityKey, query, lang);
|
|
246
|
+
}
|
|
247
|
+
// Otherwise, route to classic search mode
|
|
248
|
+
const query = firstArg;
|
|
249
|
+
const options = typeof secondArg === 'object' && secondArg !== null ? secondArg : undefined;
|
|
250
|
+
const candidateAreas = Array.isArray(thirdArg) ? thirdArg : allAreas;
|
|
251
|
+
return classicSearchAreas(query, options, candidateAreas);
|
|
252
|
+
}
|
|
166
253
|
//# sourceMappingURL=search.js.map
|
package/dist/search.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,mEAAmE;AACnE,MAAM,cAAc,GAAG,IAAI,GAAG,EAA0B,CAAC;AACzD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;IACzB,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;IACvC,MAAM,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/C,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACb,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,eAAe,CAAC,GAAW;IAClC,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAChF,CAAC;AAED,SAAS,mBAAmB,CAAC,CAAS,EAAE,CAAS;IAC/C,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IACtB,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC,MAAM,CAAC;IACpC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC,MAAM,CAAC;IAEpC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAChB,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACnC,MAAM,GAAG,GACP,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACnB,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;gBACf,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YACnD,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;YACrB,IAAI,GAAG,GAAG,CAAC;QACb,CAAC;QACD,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAC1B,CAAC;AAOD;;;;;;;;GAQG;AACH,MAAM,UAAU,WAAW,CACzB,KAAa,EACb,OAAuB,EACvB,iBAA0C,QAAQ;IAElD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEzD,IAAI,QAAQ,GAAG,cAAc,CAAC;IAE9B,IAAI,OAAO,EAAE,MAAM,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC1D,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;QACnD,IAAI,cAAc,KAAK,QAAQ,EAAE,CAAC;YAChC,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED,IAAI,OAAO,EAAE,UAAU,IAAI,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QAClE,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;QAC3D,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC,CAAC;IAC/E,CAAC;IAED,MAAM,MAAM,GAAiB,EAAE,CAAC;IAEhC,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;QAEhE,mBAAmB;QACnB,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAChC,CAAC;aAAM,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YAChC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC/B,CAAC;aAAM,IAAI,QAAQ,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YAC5C,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC/B,CAAC;aAAM,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,SAAS,CAAC,EAAE,CAAC;YACtD,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC/B,CAAC;QAED,oBAAoB;QACpB,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;YAChB,IAAI,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBACnC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;YAC3E,CAAC;iBAAM,IAAI,QAAQ,IAAI,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBACpD,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC/B,CAAC;iBAAM,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;gBAC9D,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QAED,+BAA+B;QAC/B,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;YAChB,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBACjC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC/B,CAAC;iBAAM,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAClD,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC/B,CAAC;iBAAM,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;gBAC5D,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC/B,CAAC;iBAAM,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClC,MAAM,WAAW,GAAG,GAAG,QAAQ,IAAI,MAAM,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrE,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;gBACjF,IAAI,aAAa,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC;oBAChD,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC3D,CAAC;qBAAM,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACpC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,aAAa,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC;gBACnF,CAAC;YACH,CAAC;QACH,CAAC;QAED,0EAA0E;QAC1E,IAAI,KAAK,KAAK,CAAC,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,IAAI,SAAS,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;YACnE,MAAM,IAAI,GAAG,mBAAmB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YACtD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC3D,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC;YACrC,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;gBACvB,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,GAAG,UAAU,CAAC,CAAC;YAC5C,CAAC;iBAAM,CAAC;gBACN,qBAAqB;gBACrB,KAAK,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC;oBAC7B,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;wBACnB,MAAM,SAAS,GAAG,mBAAmB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;wBACrD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;wBAC1D,MAAM,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,WAAW,CAAC;wBAC7C,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;4BACrB,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,GAAG,QAAQ,CAAC,CAAC;4BACxC,MAAM;wBACR,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACnB,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;YACxB,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;QAC3B,CAAC;QACD,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAE1C,IAAI,OAAO,EAAE,KAAK,KAAK,SAAS,EAAE,CAAC;QACjC,IAAI,OAAO,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;YACvB,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -51,4 +51,15 @@ export interface NearestAreaOptions {
|
|
|
51
51
|
provinceId?: string;
|
|
52
52
|
maxDistanceKm?: number;
|
|
53
53
|
}
|
|
54
|
+
export type PakLocationType = 'province' | 'division' | 'district' | 'tehsil' | 'area';
|
|
55
|
+
export interface PakLocationItem {
|
|
56
|
+
id: string;
|
|
57
|
+
nameEn: string;
|
|
58
|
+
nameUr: string;
|
|
59
|
+
type: PakLocationType;
|
|
60
|
+
parentId?: string;
|
|
61
|
+
coordinates?: Coordinates;
|
|
62
|
+
}
|
|
63
|
+
export type ProvinceId = 'punjab' | 'sindh' | 'khyber-pakhtunkhwa' | 'balochistan' | 'islamabad-ict' | 'azad-jammu-kashmir' | 'gilgit-baltistan';
|
|
64
|
+
export type CityId = 'lahore' | 'karachi' | 'islamabad' | 'rawalpindi' | 'faisalabad' | (string & {});
|
|
54
65
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,MAAM,QAAQ,GAChB,cAAc,GACd,QAAQ,GACR,YAAY,GACZ,iBAAiB,GACjB,QAAQ,GACR,YAAY,GACZ,gBAAgB,CAAC;AAErB,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,WAAW,CAAC;IACzB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,WAAW,CAAC;IACzB,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,MAAM,CAAC,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,iBAAiB,GAAG,sBAAsB,CAAC;AAEnF,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,YAAY,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,MAAM,QAAQ,GAChB,cAAc,GACd,QAAQ,GACR,YAAY,GACZ,iBAAiB,GACjB,QAAQ,GACR,YAAY,GACZ,gBAAgB,CAAC;AAErB,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,WAAW,CAAC;IACzB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,WAAW,CAAC;IACzB,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,MAAM,CAAC,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,iBAAiB,GAAG,sBAAsB,CAAC;AAEnF,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,YAAY,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEvF,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,eAAe,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,MAAM,MAAM,UAAU,GAClB,QAAQ,GACR,OAAO,GACP,oBAAoB,GACpB,aAAa,GACb,eAAe,GACf,oBAAoB,GACpB,kBAAkB,CAAC;AAEvB,MAAM,MAAM,MAAM,GACd,QAAQ,GACR,SAAS,GACT,WAAW,GACX,YAAY,GACZ,YAAY,GACZ,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC"}
|
package/dist/urdu.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare function toWesternDigits(text: string): string;
|
|
2
|
+
export declare function toEasternDigits(text: string): string;
|
|
3
|
+
export declare function stripUrduDiacritics(text: string): string;
|
|
4
|
+
export declare function normalizeUrduText(text: string): string;
|
|
5
|
+
//# sourceMappingURL=urdu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"urdu.d.ts","sourceRoot":"","sources":["../src/urdu.ts"],"names":[],"mappings":"AAcA,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGpD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGpD;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIxD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAatD"}
|
package/dist/urdu.js
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
const EASTERN_TO_WESTERN_DIGITS = {
|
|
2
|
+
// Eastern Arabic-Indic digits (Urdu/Persian: \u06F0-\u06F9)
|
|
3
|
+
'۰': '0', '۱': '1', '۲': '2', '۳': '3', '۴': '4',
|
|
4
|
+
'۵': '5', '۶': '6', '۷': '7', '۸': '8', '۹': '9',
|
|
5
|
+
// Standard Arabic-Indic digits (\u0660-\u0669)
|
|
6
|
+
'٠': '0', '١': '1', '٢': '2', '٣': '3', '٤': '4',
|
|
7
|
+
'٥': '5', '٦': '6', '٧': '7', '٨': '8', '٩': '9'
|
|
8
|
+
};
|
|
9
|
+
const WESTERN_TO_EASTERN_DIGITS = {
|
|
10
|
+
'0': '۰', '1': '۱', '2': '۲', '3': '۳', '4': '۴',
|
|
11
|
+
'5': '۵', '6': '۶', '7': '۷', '8': '۸', '9': '۹'
|
|
12
|
+
};
|
|
13
|
+
export function toWesternDigits(text) {
|
|
14
|
+
if (typeof text !== 'string')
|
|
15
|
+
return '';
|
|
16
|
+
return text.replace(/[۰-۹\u0660-\u0669]/g, (char) => EASTERN_TO_WESTERN_DIGITS[char] || char);
|
|
17
|
+
}
|
|
18
|
+
export function toEasternDigits(text) {
|
|
19
|
+
if (typeof text !== 'string')
|
|
20
|
+
return '';
|
|
21
|
+
return text.replace(/[0-9]/g, (char) => WESTERN_TO_EASTERN_DIGITS[char] || char);
|
|
22
|
+
}
|
|
23
|
+
export function stripUrduDiacritics(text) {
|
|
24
|
+
if (typeof text !== 'string')
|
|
25
|
+
return '';
|
|
26
|
+
// Unicode range for Arabic/Urdu diacritics / tashkeel and Tatweel (\u0640)
|
|
27
|
+
return text.replace(/[\u0640\u064B-\u065F\u0670]/g, '');
|
|
28
|
+
}
|
|
29
|
+
export function normalizeUrduText(text) {
|
|
30
|
+
if (typeof text !== 'string')
|
|
31
|
+
return '';
|
|
32
|
+
let str = stripUrduDiacritics(text);
|
|
33
|
+
// Normalize Arabic Yeh (ي) & Alef Maksura (ى) to Urdu Yeh (ی)
|
|
34
|
+
str = str.replace(/[\u064A\u0649]/g, '\u06CC');
|
|
35
|
+
// Normalize Arabic Kaf (ك) to Urdu Keheh (ک)
|
|
36
|
+
str = str.replace(/\u0643/g, '\u06A9');
|
|
37
|
+
// Normalize Arabic Heh (ه) to Urdu Goal Heh (ہ)
|
|
38
|
+
str = str.replace(/\u0647/g, '\u06C1');
|
|
39
|
+
// Unify numerals to Western digits for robust matching
|
|
40
|
+
str = toWesternDigits(str);
|
|
41
|
+
// Normalize whitespace
|
|
42
|
+
return str.trim().replace(/\s+/g, ' ');
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=urdu.js.map
|
package/dist/urdu.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"urdu.js","sourceRoot":"","sources":["../src/urdu.ts"],"names":[],"mappings":"AAAA,MAAM,yBAAyB,GAA2B;IACxD,4DAA4D;IAC5D,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAChD,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAChD,+CAA+C;IAC/C,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAChD,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;CACjD,CAAC;AAEF,MAAM,yBAAyB,GAA2B;IACxD,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAChD,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;CACjD,CAAC;AAEF,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IACxC,OAAO,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;AAChG,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IACxC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;AACnF,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IACxC,2EAA2E;IAC3E,OAAO,IAAI,CAAC,OAAO,CAAC,8BAA8B,EAAE,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IACxC,IAAI,GAAG,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACpC,8DAA8D;IAC9D,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;IAC/C,6CAA6C;IAC7C,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACvC,gDAAgD;IAChD,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACvC,uDAAuD;IACvD,GAAG,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IAC3B,uBAAuB;IACvB,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACzC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pak-geodata",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.2",
|
|
4
4
|
"description": "Comprehensive, typed, offline geographic data for all areas and cities in Pakistan",
|
|
5
5
|
"author": "Sohaib Bin Mohsin <sohaibbinmohsin@gmail.com> (https://sohaibbinmohsin.com)",
|
|
6
6
|
"contributors": [
|
|
@@ -17,6 +17,11 @@
|
|
|
17
17
|
"import": "./dist/index.js",
|
|
18
18
|
"require": "./dist/index.cjs"
|
|
19
19
|
},
|
|
20
|
+
"./hierarchy": {
|
|
21
|
+
"types": "./dist/hierarchy.d.ts",
|
|
22
|
+
"import": "./dist/hierarchy.js",
|
|
23
|
+
"require": "./dist/hierarchy.cjs"
|
|
24
|
+
},
|
|
20
25
|
"./areas/*": {
|
|
21
26
|
"types": "./dist/areas/*.d.ts",
|
|
22
27
|
"import": "./dist/areas/*.js",
|