@id-region-data/data 1.0.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.
Files changed (41) hide show
  1. package/dist/cjs/data/districts/1101.json +7 -0
  2. package/dist/cjs/data/districts/1201.json +7 -0
  3. package/dist/cjs/data/provinces.json +10 -0
  4. package/dist/cjs/data/regencies/11.json +7 -0
  5. package/dist/cjs/data/regencies/12.json +7 -0
  6. package/dist/cjs/data/villages/110101.json +7 -0
  7. package/dist/cjs/data/villages/120101.json +7 -0
  8. package/dist/cjs/index.d.ts +25 -0
  9. package/dist/cjs/index.d.ts.map +1 -0
  10. package/dist/cjs/index.js +43 -0
  11. package/dist/cjs/index.js.map +1 -0
  12. package/dist/cjs/package.json +1 -0
  13. package/dist/cjs/types.d.ts +20 -0
  14. package/dist/cjs/types.d.ts.map +1 -0
  15. package/dist/cjs/types.js +3 -0
  16. package/dist/cjs/types.js.map +1 -0
  17. package/dist/esm/data/districts/1101.json +7 -0
  18. package/dist/esm/data/districts/1201.json +7 -0
  19. package/dist/esm/data/provinces.json +10 -0
  20. package/dist/esm/data/regencies/11.json +7 -0
  21. package/dist/esm/data/regencies/12.json +7 -0
  22. package/dist/esm/data/villages/110101.json +7 -0
  23. package/dist/esm/data/villages/120101.json +7 -0
  24. package/dist/esm/index.d.ts +25 -0
  25. package/dist/esm/index.d.ts.map +1 -0
  26. package/dist/esm/index.js +36 -0
  27. package/dist/esm/index.js.map +1 -0
  28. package/dist/esm/types.d.ts +20 -0
  29. package/dist/esm/types.d.ts.map +1 -0
  30. package/dist/esm/types.js +2 -0
  31. package/dist/esm/types.js.map +1 -0
  32. package/package.json +47 -0
  33. package/src/data/districts/1101.json +7 -0
  34. package/src/data/districts/1201.json +7 -0
  35. package/src/data/provinces.json +10 -0
  36. package/src/data/regencies/11.json +7 -0
  37. package/src/data/regencies/12.json +7 -0
  38. package/src/data/villages/110101.json +7 -0
  39. package/src/data/villages/120101.json +7 -0
  40. package/src/index.ts +40 -0
  41. package/src/types.ts +22 -0
@@ -0,0 +1,7 @@
1
+ [
2
+ {
3
+ "code": "110101",
4
+ "regencyCode": "1101",
5
+ "name": "BAKONGAN"
6
+ }
7
+ ]
@@ -0,0 +1,7 @@
1
+ [
2
+ {
3
+ "code": "120101",
4
+ "regencyCode": "1201",
5
+ "name": "BARUS"
6
+ }
7
+ ]
@@ -0,0 +1,10 @@
1
+ [
2
+ {
3
+ "code": "11",
4
+ "name": "ACEH"
5
+ },
6
+ {
7
+ "code": "12",
8
+ "name": "SUMATERA UTARA"
9
+ }
10
+ ]
@@ -0,0 +1,7 @@
1
+ [
2
+ {
3
+ "code": "1101",
4
+ "provinceCode": "11",
5
+ "name": "KABUPATEN ACEH SELATAN"
6
+ }
7
+ ]
@@ -0,0 +1,7 @@
1
+ [
2
+ {
3
+ "code": "1201",
4
+ "provinceCode": "12",
5
+ "name": "KABUPATEN TAPANULI TENGAH"
6
+ }
7
+ ]
@@ -0,0 +1,7 @@
1
+ [
2
+ {
3
+ "code": "1101012001",
4
+ "districtCode": "110101",
5
+ "name": "KEUDE BAKONGAN"
6
+ }
7
+ ]
@@ -0,0 +1,7 @@
1
+ [
2
+ {
3
+ "code": "1201012001",
4
+ "districtCode": "120101",
5
+ "name": "AER MANSUR"
6
+ }
7
+ ]
@@ -0,0 +1,25 @@
1
+ import type { Province, Regency, District, Village } from './types.js';
2
+ /**
3
+ * Get all provinces.
4
+ * @returns Promise<Province[]>
5
+ */
6
+ export declare const getProvinces: () => Promise<Province[]>;
7
+ /**
8
+ * Get regencies by province code.
9
+ * @param provinceCode The parent province code.
10
+ * @returns Promise<Regency[]>
11
+ */
12
+ export declare const getRegenciesByProvince: (provinceCode: string) => Promise<Regency[]>;
13
+ /**
14
+ * Get districts by regency code.
15
+ * @param regencyCode The parent regency code.
16
+ * @returns Promise<District[]>
17
+ */
18
+ export declare const getDistrictsByRegency: (regencyCode: string) => Promise<District[]>;
19
+ /**
20
+ * Get villages by district code.
21
+ * @param districtCode The parent district code.
22
+ * @returns Promise<Village[]>
23
+ */
24
+ export declare const getVillagesByDistrict: (districtCode: string) => Promise<Village[]>;
25
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAEvE;;;GAGG;AACH,eAAO,MAAM,YAAY,QAAa,OAAO,CAAC,QAAQ,EAAE,CAGvD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GAAU,cAAc,MAAM,KAAG,OAAO,CAAC,OAAO,EAAE,CAGpF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAAU,aAAa,MAAM,KAAG,OAAO,CAAC,QAAQ,EAAE,CAGnF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAAU,cAAc,MAAM,KAAG,OAAO,CAAC,OAAO,EAAE,CAGnF,CAAC"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getVillagesByDistrict = exports.getDistrictsByRegency = exports.getRegenciesByProvince = exports.getProvinces = void 0;
4
+ /**
5
+ * Get all provinces.
6
+ * @returns Promise<Province[]>
7
+ */
8
+ const getProvinces = async () => {
9
+ const { default: data } = await import('./data/provinces.json', { with: { type: 'json' } });
10
+ return data;
11
+ };
12
+ exports.getProvinces = getProvinces;
13
+ /**
14
+ * Get regencies by province code.
15
+ * @param provinceCode The parent province code.
16
+ * @returns Promise<Regency[]>
17
+ */
18
+ const getRegenciesByProvince = async (provinceCode) => {
19
+ const { default: data } = await import(`./data/regencies/${provinceCode}.json`, { with: { type: 'json' } });
20
+ return data;
21
+ };
22
+ exports.getRegenciesByProvince = getRegenciesByProvince;
23
+ /**
24
+ * Get districts by regency code.
25
+ * @param regencyCode The parent regency code.
26
+ * @returns Promise<District[]>
27
+ */
28
+ const getDistrictsByRegency = async (regencyCode) => {
29
+ const { default: data } = await import(`./data/districts/${regencyCode}.json`, { with: { type: 'json' } });
30
+ return data;
31
+ };
32
+ exports.getDistrictsByRegency = getDistrictsByRegency;
33
+ /**
34
+ * Get villages by district code.
35
+ * @param districtCode The parent district code.
36
+ * @returns Promise<Village[]>
37
+ */
38
+ const getVillagesByDistrict = async (districtCode) => {
39
+ const { default: data } = await import(`./data/villages/${districtCode}.json`, { with: { type: 'json' } });
40
+ return data;
41
+ };
42
+ exports.getVillagesByDistrict = getVillagesByDistrict;
43
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAEA;;;GAGG;AACI,MAAM,YAAY,GAAG,KAAK,IAAyB,EAAE;IAC1D,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAC5F,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAHW,QAAA,YAAY,gBAGvB;AAEF;;;;GAIG;AACI,MAAM,sBAAsB,GAAG,KAAK,EAAE,YAAoB,EAAsB,EAAE;IACvF,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,YAAY,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAC5G,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAHW,QAAA,sBAAsB,0BAGjC;AAEF;;;;GAIG;AACI,MAAM,qBAAqB,GAAG,KAAK,EAAE,WAAmB,EAAuB,EAAE;IACtF,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,WAAW,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAC3G,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAHW,QAAA,qBAAqB,yBAGhC;AAEF;;;;GAIG;AACI,MAAM,qBAAqB,GAAG,KAAK,EAAE,YAAoB,EAAsB,EAAE;IACtF,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,YAAY,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAC3G,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAHW,QAAA,qBAAqB,yBAGhC"}
@@ -0,0 +1 @@
1
+ {"type": "commonjs"}
@@ -0,0 +1,20 @@
1
+ export interface Province {
2
+ code: string;
3
+ name: string;
4
+ }
5
+ export interface Regency {
6
+ code: string;
7
+ provinceCode: string;
8
+ name: string;
9
+ }
10
+ export interface District {
11
+ code: string;
12
+ regencyCode: string;
13
+ name: string;
14
+ }
15
+ export interface Village {
16
+ code: string;
17
+ districtCode: string;
18
+ name: string;
19
+ }
20
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ [
2
+ {
3
+ "code": "110101",
4
+ "regencyCode": "1101",
5
+ "name": "BAKONGAN"
6
+ }
7
+ ]
@@ -0,0 +1,7 @@
1
+ [
2
+ {
3
+ "code": "120101",
4
+ "regencyCode": "1201",
5
+ "name": "BARUS"
6
+ }
7
+ ]
@@ -0,0 +1,10 @@
1
+ [
2
+ {
3
+ "code": "11",
4
+ "name": "ACEH"
5
+ },
6
+ {
7
+ "code": "12",
8
+ "name": "SUMATERA UTARA"
9
+ }
10
+ ]
@@ -0,0 +1,7 @@
1
+ [
2
+ {
3
+ "code": "1101",
4
+ "provinceCode": "11",
5
+ "name": "KABUPATEN ACEH SELATAN"
6
+ }
7
+ ]
@@ -0,0 +1,7 @@
1
+ [
2
+ {
3
+ "code": "1201",
4
+ "provinceCode": "12",
5
+ "name": "KABUPATEN TAPANULI TENGAH"
6
+ }
7
+ ]
@@ -0,0 +1,7 @@
1
+ [
2
+ {
3
+ "code": "1101012001",
4
+ "districtCode": "110101",
5
+ "name": "KEUDE BAKONGAN"
6
+ }
7
+ ]
@@ -0,0 +1,7 @@
1
+ [
2
+ {
3
+ "code": "1201012001",
4
+ "districtCode": "120101",
5
+ "name": "AER MANSUR"
6
+ }
7
+ ]
@@ -0,0 +1,25 @@
1
+ import type { Province, Regency, District, Village } from './types.js';
2
+ /**
3
+ * Get all provinces.
4
+ * @returns Promise<Province[]>
5
+ */
6
+ export declare const getProvinces: () => Promise<Province[]>;
7
+ /**
8
+ * Get regencies by province code.
9
+ * @param provinceCode The parent province code.
10
+ * @returns Promise<Regency[]>
11
+ */
12
+ export declare const getRegenciesByProvince: (provinceCode: string) => Promise<Regency[]>;
13
+ /**
14
+ * Get districts by regency code.
15
+ * @param regencyCode The parent regency code.
16
+ * @returns Promise<District[]>
17
+ */
18
+ export declare const getDistrictsByRegency: (regencyCode: string) => Promise<District[]>;
19
+ /**
20
+ * Get villages by district code.
21
+ * @param districtCode The parent district code.
22
+ * @returns Promise<Village[]>
23
+ */
24
+ export declare const getVillagesByDistrict: (districtCode: string) => Promise<Village[]>;
25
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAEvE;;;GAGG;AACH,eAAO,MAAM,YAAY,QAAa,OAAO,CAAC,QAAQ,EAAE,CAGvD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GAAU,cAAc,MAAM,KAAG,OAAO,CAAC,OAAO,EAAE,CAGpF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAAU,aAAa,MAAM,KAAG,OAAO,CAAC,QAAQ,EAAE,CAGnF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAAU,cAAc,MAAM,KAAG,OAAO,CAAC,OAAO,EAAE,CAGnF,CAAC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Get all provinces.
3
+ * @returns Promise<Province[]>
4
+ */
5
+ export const getProvinces = async () => {
6
+ const { default: data } = await import('./data/provinces.json', { with: { type: 'json' } });
7
+ return data;
8
+ };
9
+ /**
10
+ * Get regencies by province code.
11
+ * @param provinceCode The parent province code.
12
+ * @returns Promise<Regency[]>
13
+ */
14
+ export const getRegenciesByProvince = async (provinceCode) => {
15
+ const { default: data } = await import(`./data/regencies/${provinceCode}.json`, { with: { type: 'json' } });
16
+ return data;
17
+ };
18
+ /**
19
+ * Get districts by regency code.
20
+ * @param regencyCode The parent regency code.
21
+ * @returns Promise<District[]>
22
+ */
23
+ export const getDistrictsByRegency = async (regencyCode) => {
24
+ const { default: data } = await import(`./data/districts/${regencyCode}.json`, { with: { type: 'json' } });
25
+ return data;
26
+ };
27
+ /**
28
+ * Get villages by district code.
29
+ * @param districtCode The parent district code.
30
+ * @returns Promise<Village[]>
31
+ */
32
+ export const getVillagesByDistrict = async (districtCode) => {
33
+ const { default: data } = await import(`./data/villages/${districtCode}.json`, { with: { type: 'json' } });
34
+ return data;
35
+ };
36
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,IAAyB,EAAE;IAC1D,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAC5F,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EAAE,YAAoB,EAAsB,EAAE;IACvF,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,YAAY,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAC5G,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EAAE,WAAmB,EAAuB,EAAE;IACtF,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,WAAW,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAC3G,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EAAE,YAAoB,EAAsB,EAAE;IACtF,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,YAAY,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAC3G,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
@@ -0,0 +1,20 @@
1
+ export interface Province {
2
+ code: string;
3
+ name: string;
4
+ }
5
+ export interface Regency {
6
+ code: string;
7
+ provinceCode: string;
8
+ name: string;
9
+ }
10
+ export interface District {
11
+ code: string;
12
+ regencyCode: string;
13
+ name: string;
14
+ }
15
+ export interface Village {
16
+ code: string;
17
+ districtCode: string;
18
+ name: string;
19
+ }
20
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,47 @@
1
+ {
2
+ "name": "@id-region-data/data",
3
+ "version": "1.0.0",
4
+ "description": "High-performance, ultra-lightweight Indonesian region data package with tree-shaking and lazy loading support.",
5
+ "type": "module",
6
+ "main": "./dist/cjs/index.js",
7
+ "module": "./dist/esm/index.js",
8
+ "types": "./dist/esm/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "import": "./dist/esm/index.js",
12
+ "require": "./dist/cjs/index.js",
13
+ "types": "./dist/esm/index.d.ts"
14
+ },
15
+ "./package.json": "./package.json"
16
+ },
17
+ "files": [
18
+ "dist",
19
+ "src"
20
+ ],
21
+ "scripts": {
22
+ "clean": "rm -rf dist",
23
+ "build:data": "node --loader ts-node/esm scripts/build-data.ts",
24
+ "build:esm": "tsc -p tsconfig.json",
25
+ "build:cjs": "(mv package.json _package.json && echo '{\"type\": \"commonjs\"}' > package.json && tsc -p tsconfig.cjs.json); mv _package.json package.json && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json",
26
+ "build": "npm run clean && npm run build:data && npm run build:esm && npm run build:cjs",
27
+ "prepublishOnly": "npm run build"
28
+ },
29
+ "keywords": [
30
+ "indonesia",
31
+ "region",
32
+ "data",
33
+ "province",
34
+ "regency",
35
+ "district",
36
+ "village",
37
+ "wilayah",
38
+ "indonesia-data"
39
+ ],
40
+ "author": "Gemini CLI",
41
+ "license": "MIT",
42
+ "devDependencies": {
43
+ "@types/node": "^20.0.0",
44
+ "ts-node": "^10.9.2",
45
+ "typescript": "^5.3.3"
46
+ }
47
+ }
@@ -0,0 +1,7 @@
1
+ [
2
+ {
3
+ "code": "110101",
4
+ "regencyCode": "1101",
5
+ "name": "BAKONGAN"
6
+ }
7
+ ]
@@ -0,0 +1,7 @@
1
+ [
2
+ {
3
+ "code": "120101",
4
+ "regencyCode": "1201",
5
+ "name": "BARUS"
6
+ }
7
+ ]
@@ -0,0 +1,10 @@
1
+ [
2
+ {
3
+ "code": "11",
4
+ "name": "ACEH"
5
+ },
6
+ {
7
+ "code": "12",
8
+ "name": "SUMATERA UTARA"
9
+ }
10
+ ]
@@ -0,0 +1,7 @@
1
+ [
2
+ {
3
+ "code": "1101",
4
+ "provinceCode": "11",
5
+ "name": "KABUPATEN ACEH SELATAN"
6
+ }
7
+ ]
@@ -0,0 +1,7 @@
1
+ [
2
+ {
3
+ "code": "1201",
4
+ "provinceCode": "12",
5
+ "name": "KABUPATEN TAPANULI TENGAH"
6
+ }
7
+ ]
@@ -0,0 +1,7 @@
1
+ [
2
+ {
3
+ "code": "1101012001",
4
+ "districtCode": "110101",
5
+ "name": "KEUDE BAKONGAN"
6
+ }
7
+ ]
@@ -0,0 +1,7 @@
1
+ [
2
+ {
3
+ "code": "1201012001",
4
+ "districtCode": "120101",
5
+ "name": "AER MANSUR"
6
+ }
7
+ ]
package/src/index.ts ADDED
@@ -0,0 +1,40 @@
1
+ import type { Province, Regency, District, Village } from './types.js';
2
+
3
+ /**
4
+ * Get all provinces.
5
+ * @returns Promise<Province[]>
6
+ */
7
+ export const getProvinces = async (): Promise<Province[]> => {
8
+ const { default: data } = await import('./data/provinces.json', { with: { type: 'json' } });
9
+ return data;
10
+ };
11
+
12
+ /**
13
+ * Get regencies by province code.
14
+ * @param provinceCode The parent province code.
15
+ * @returns Promise<Regency[]>
16
+ */
17
+ export const getRegenciesByProvince = async (provinceCode: string): Promise<Regency[]> => {
18
+ const { default: data } = await import(`./data/regencies/${provinceCode}.json`, { with: { type: 'json' } });
19
+ return data;
20
+ };
21
+
22
+ /**
23
+ * Get districts by regency code.
24
+ * @param regencyCode The parent regency code.
25
+ * @returns Promise<District[]>
26
+ */
27
+ export const getDistrictsByRegency = async (regencyCode: string): Promise<District[]> => {
28
+ const { default: data } = await import(`./data/districts/${regencyCode}.json`, { with: { type: 'json' } });
29
+ return data;
30
+ };
31
+
32
+ /**
33
+ * Get villages by district code.
34
+ * @param districtCode The parent district code.
35
+ * @returns Promise<Village[]>
36
+ */
37
+ export const getVillagesByDistrict = async (districtCode: string): Promise<Village[]> => {
38
+ const { default: data } = await import(`./data/villages/${districtCode}.json`, { with: { type: 'json' } });
39
+ return data;
40
+ };
package/src/types.ts ADDED
@@ -0,0 +1,22 @@
1
+ export interface Province {
2
+ code: string;
3
+ name: string;
4
+ }
5
+
6
+ export interface Regency {
7
+ code: string;
8
+ provinceCode: string;
9
+ name: string;
10
+ }
11
+
12
+ export interface District {
13
+ code: string;
14
+ regencyCode: string;
15
+ name: string;
16
+ }
17
+
18
+ export interface Village {
19
+ code: string;
20
+ districtCode: string;
21
+ name: string;
22
+ }