myanmar-nrc-validator 1.0.4 → 1.0.6
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/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/utils/formatter.d.ts +6 -0
- package/dist/utils/formatter.d.ts.map +1 -0
- package/dist/utils/formatter.js +50 -0
- package/dist/utils/formatter.js.map +1 -0
- package/dist/utils/regions.d.ts +13 -0
- package/dist/utils/regions.d.ts.map +1 -0
- package/dist/utils/regions.js +56 -0
- package/dist/utils/regions.js.map +1 -0
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -11,4 +11,6 @@ export { parseNRC } from "./utils/parser.js";
|
|
|
11
11
|
export type { ParsedNRC } from "./utils/parser.js";
|
|
12
12
|
export { composeNRC } from "./utils/composer.js";
|
|
13
13
|
export type { ComposeOptions, CitizenType } from "./utils/composer.js";
|
|
14
|
+
export { getStates, getStateTownships } from "./utils/regions.js";
|
|
15
|
+
export { formatNRC } from "./utils/formatter.js";
|
|
14
16
|
//# 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":"AAGA,eAAO,MAAM,aAAa,EAAiB,MAAM,CAC/C,MAAM,EACN;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAC3B,CAAC;AACF,eAAO,MAAM,iBAAiB,EAAkC,MAAM,CACpE,MAAM,EACN;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAC3B,CAAC;AAEF,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,aAAa,EAAiB,MAAM,CAC/C,MAAM,EACN;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAC3B,CAAC;AACF,eAAO,MAAM,iBAAiB,EAAkC,MAAM,CACpE,MAAM,EACN;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAC3B,CAAC;AAEF,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -5,4 +5,6 @@ export const CITIZENSHIP_TYPES = citizenTypesData;
|
|
|
5
5
|
export { validateNRC, isValidTownship } from "./utils/validator.js";
|
|
6
6
|
export { parseNRC } from "./utils/parser.js";
|
|
7
7
|
export { composeNRC } from "./utils/composer.js";
|
|
8
|
+
export { getStates, getStateTownships } from "./utils/regions.js";
|
|
9
|
+
export { formatNRC } from "./utils/formatter.js";
|
|
8
10
|
//# 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":"AAAA,OAAO,UAAU,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAClE,OAAO,gBAAgB,MAAM,2BAA2B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAE/E,MAAM,CAAC,MAAM,aAAa,GAAG,UAG5B,CAAC;AACF,MAAM,CAAC,MAAM,iBAAiB,GAAG,gBAGhC,CAAC;AAEF,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,oBAAoB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAClE,OAAO,gBAAgB,MAAM,2BAA2B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAE/E,MAAM,CAAC,MAAM,aAAa,GAAG,UAG5B,CAAC;AACF,MAAM,CAAC,MAAM,iBAAiB,GAAG,gBAGhC,CAAC;AAEF,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatter.d.ts","sourceRoot":"","sources":["../../src/utils/formatter.ts"],"names":[],"mappings":"AA+BA;;;GAGG;AAEH,wBAAgB,SAAS,CACvB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,IAAI,GAAG,IAAI,GAClB,MAAM,GAAG,IAAI,CAqBf"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { parseNRC } from "./parser.js";
|
|
2
|
+
import { composeNRC } from "./composer.js";
|
|
3
|
+
function toMyanmarDigits(input) {
|
|
4
|
+
const enDigits = {
|
|
5
|
+
"0": "၀",
|
|
6
|
+
"1": "၁",
|
|
7
|
+
"2": "၂",
|
|
8
|
+
"3": "၃",
|
|
9
|
+
"4": "၄",
|
|
10
|
+
"5": "၅",
|
|
11
|
+
"6": "၆",
|
|
12
|
+
"7": "၇",
|
|
13
|
+
"8": "၈",
|
|
14
|
+
"9": "၉",
|
|
15
|
+
};
|
|
16
|
+
return input.replace(/[0-9]/g, (digit) => enDigits[digit] || digit);
|
|
17
|
+
}
|
|
18
|
+
const TYPE_MAP = {
|
|
19
|
+
N: { en: "N", mm: "နိုင်" },
|
|
20
|
+
P: { en: "P", mm: "ပြု" },
|
|
21
|
+
A: { en: "A", mm: "ဧည့်" },
|
|
22
|
+
T: { en: "T", mm: "ယာယီ" },
|
|
23
|
+
နိုင်: { en: "N", mm: "နိုင်" },
|
|
24
|
+
ပြု: { en: "P", mm: "ပြု" },
|
|
25
|
+
ဧည့်: { en: "A", mm: "ဧည့်" },
|
|
26
|
+
ယာယီ: { en: "T", mm: "ယာယီ" },
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* @param nrcString
|
|
30
|
+
* @param target
|
|
31
|
+
*/
|
|
32
|
+
export function formatNRC(nrcString, target) {
|
|
33
|
+
const parsed = parseNRC(nrcString);
|
|
34
|
+
if (!parsed)
|
|
35
|
+
return null;
|
|
36
|
+
const typeObj = TYPE_MAP[parsed.type] || { en: "N", mm: "နိုင်" };
|
|
37
|
+
const citizenType = target === "mm" ? typeObj.mm : typeObj.en;
|
|
38
|
+
if (target === "en") {
|
|
39
|
+
return composeNRC({
|
|
40
|
+
stateCode: parsed.stateCode,
|
|
41
|
+
township: parsed.township,
|
|
42
|
+
type: citizenType,
|
|
43
|
+
number: parsed.number,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
const stateMmDigits = toMyanmarDigits(parsed.stateCode);
|
|
47
|
+
const numberMmDigits = toMyanmarDigits(parsed.number);
|
|
48
|
+
return `${stateMmDigits}/${parsed.township}(${citizenType})${numberMmDigits}`;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=formatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatter.js","sourceRoot":"","sources":["../../src/utils/formatter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,UAAU,EAAoB,MAAM,eAAe,CAAC;AAG7D,SAAS,eAAe,CAAC,KAAa;IACpC,MAAM,QAAQ,GAA2B;QACvC,GAAG,EAAE,GAAG;QACR,GAAG,EAAE,GAAG;QACR,GAAG,EAAE,GAAG;QACR,GAAG,EAAE,GAAG;QACR,GAAG,EAAE,GAAG;QACR,GAAG,EAAE,GAAG;QACR,GAAG,EAAE,GAAG;QACR,GAAG,EAAE,GAAG;QACR,GAAG,EAAE,GAAG;QACR,GAAG,EAAE,GAAG;KACT,CAAC;IACF,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,QAAQ,GAAoD;IAChE,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE;IAC3B,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE;IACzB,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE;IAC1B,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE;IAC1B,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE;IAC/B,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE;IAC3B,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE;IAC7B,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE;CAC9B,CAAC;AAEF;;;GAGG;AAEH,MAAM,UAAU,SAAS,CACvB,SAAiB,EACjB,MAAmB;IAEnB,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;IACnC,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAEzB,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC;IAClE,MAAM,WAAW,GACf,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAE,OAAO,CAAC,EAAkB,CAAC;IAE7D,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO,UAAU,CAAC;YAChB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,IAAI,EAAE,WAAW;YACjB,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,aAAa,GAAG,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACxD,MAAM,cAAc,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAEtD,OAAO,GAAG,aAAa,IAAI,MAAM,CAAC,QAAQ,IAAI,WAAW,IAAI,cAAc,EAAE,CAAC;AAChF,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface StateInfo {
|
|
2
|
+
code: string;
|
|
3
|
+
en: string;
|
|
4
|
+
mm: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function getStates(): StateInfo[];
|
|
7
|
+
export declare function getStateTownships(stateCode: string | number): {
|
|
8
|
+
stateCode: string;
|
|
9
|
+
stateNameEn: string;
|
|
10
|
+
stateNameMm: string;
|
|
11
|
+
townships: any;
|
|
12
|
+
} | null;
|
|
13
|
+
//# sourceMappingURL=regions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"regions.d.ts","sourceRoot":"","sources":["../../src/utils/regions.ts"],"names":[],"mappings":"AAmCA,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,wBAAgB,SAAS,IAAI,SAAS,EAAE,CAMvC;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;;;;;SAiB3D"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import statesData from "../data/states.json" with { type: "json" };
|
|
2
|
+
import kachinData from "../data/townships/kachin.json" with { type: "json" };
|
|
3
|
+
import kayahData from "../data/townships/kayah.json" with { type: "json" };
|
|
4
|
+
import kayinData from "../data/townships/kayin.json" with { type: "json" };
|
|
5
|
+
import chinData from "../data/townships/chin.json" with { type: "json" };
|
|
6
|
+
import sagaingData from "../data/townships/sagaing.json" with { type: "json" };
|
|
7
|
+
import tanintharyiData from "../data/townships/tanintharyi.json" with { type: "json" };
|
|
8
|
+
import bagoData from "../data/townships/bago.json" with { type: "json" };
|
|
9
|
+
import magwayData from "../data/townships/magway.json" with { type: "json" };
|
|
10
|
+
import mandalayData from "../data/townships/mandalay.json" with { type: "json" };
|
|
11
|
+
import monData from "../data/townships/mon.json" with { type: "json" };
|
|
12
|
+
import rakhineData from "../data/townships/rakhine.json" with { type: "json" };
|
|
13
|
+
import yangonData from "../data/townships/yangon.json" with { type: "json" };
|
|
14
|
+
import shanData from "../data/townships/shan.json" with { type: "json" };
|
|
15
|
+
import ayeyarwadyData from "../data/townships/ayeyarwady.json" with { type: "json" };
|
|
16
|
+
const TOWNSHIP_FILES = {
|
|
17
|
+
"1": kachinData,
|
|
18
|
+
"2": kayahData,
|
|
19
|
+
"3": kayinData,
|
|
20
|
+
"4": chinData,
|
|
21
|
+
"5": sagaingData,
|
|
22
|
+
"6": tanintharyiData,
|
|
23
|
+
"7": bagoData,
|
|
24
|
+
"8": magwayData,
|
|
25
|
+
"9": mandalayData,
|
|
26
|
+
"10": monData,
|
|
27
|
+
"11": rakhineData,
|
|
28
|
+
"12": yangonData,
|
|
29
|
+
"13": shanData,
|
|
30
|
+
"14": ayeyarwadyData,
|
|
31
|
+
};
|
|
32
|
+
const STATE_REGIONS = statesData;
|
|
33
|
+
export function getStates() {
|
|
34
|
+
return Object.entries(STATE_REGIONS).map(([code, info]) => ({
|
|
35
|
+
code,
|
|
36
|
+
en: info.en,
|
|
37
|
+
mm: info.mm,
|
|
38
|
+
}));
|
|
39
|
+
}
|
|
40
|
+
export function getStateTownships(stateCode) {
|
|
41
|
+
if (stateCode === undefined || stateCode === null)
|
|
42
|
+
return null;
|
|
43
|
+
const codeStr = String(stateCode).trim();
|
|
44
|
+
const stateFile = TOWNSHIP_FILES[codeStr];
|
|
45
|
+
const stateInfo = STATE_REGIONS[codeStr];
|
|
46
|
+
if (!stateFile || !stateInfo) {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
return {
|
|
50
|
+
stateCode: codeStr,
|
|
51
|
+
stateNameEn: stateInfo.en,
|
|
52
|
+
stateNameMm: stateInfo.mm,
|
|
53
|
+
townships: stateFile.townships,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=regions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"regions.js","sourceRoot":"","sources":["../../src/utils/regions.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,qBAAqB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACnE,OAAO,UAAU,MAAM,+BAA+B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC7E,OAAO,SAAS,MAAM,8BAA8B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC3E,OAAO,SAAS,MAAM,8BAA8B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC3E,OAAO,QAAQ,MAAM,6BAA6B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACzE,OAAO,WAAW,MAAM,gCAAgC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC/E,OAAO,eAAe,MAAM,oCAAoC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACvF,OAAO,QAAQ,MAAM,6BAA6B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACzE,OAAO,UAAU,MAAM,+BAA+B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC7E,OAAO,YAAY,MAAM,iCAAiC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACjF,OAAO,OAAO,MAAM,4BAA4B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACvE,OAAO,WAAW,MAAM,gCAAgC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC/E,OAAO,UAAU,MAAM,+BAA+B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAC7E,OAAO,QAAQ,MAAM,6BAA6B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACzE,OAAO,cAAc,MAAM,mCAAmC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAErF,MAAM,cAAc,GAAwB;IAC1C,GAAG,EAAE,UAAU;IACf,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,WAAW;IAChB,GAAG,EAAE,eAAe;IACpB,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,UAAU;IACf,GAAG,EAAE,YAAY;IACjB,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,cAAc;CACrB,CAAC;AAEF,MAAM,aAAa,GAAG,UAAwD,CAAC;AAQ/E,MAAM,UAAU,SAAS;IACvB,OAAO,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1D,IAAI;QACJ,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,EAAE,EAAE,IAAI,CAAC,EAAE;KACZ,CAAC,CAAC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,SAA0B;IAC1D,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAE/D,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;IACzC,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IAEzC,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,SAAS,EAAE,OAAO;QAClB,WAAW,EAAE,SAAS,CAAC,EAAE;QACzB,WAAW,EAAE,SAAS,CAAC,EAAE;QACzB,SAAS,EAAE,SAAS,CAAC,SAAS;KAC/B,CAAC;AACJ,CAAC"}
|