myanmar-nrc-validator 1.0.13 → 1.0.16
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 +25 -0
- package/dist/utils/parser.d.ts +5 -1
- package/dist/utils/parser.d.ts.map +1 -1
- package/dist/utils/parser.js +8 -2
- package/dist/utils/parser.js.map +1 -1
- package/package.json +15 -8
package/README.md
CHANGED
|
@@ -119,6 +119,31 @@ console.log(getStateTownships("12"));
|
|
|
119
119
|
// Get all available citizen types (နိုင်, ဧည့်, ပြု, etc.)
|
|
120
120
|
console.log(getCitizenTypes());
|
|
121
121
|
|
|
122
|
+
### Get Citizen Type(s) (`getCitizenType`)
|
|
123
|
+
This function is polymorphic (flexible):
|
|
124
|
+
- Pass an NRC string to extract its specific citizen type.
|
|
125
|
+
- Call it **without arguments** to get the full list of all available citizen types.
|
|
126
|
+
|
|
127
|
+
```typescript
|
|
128
|
+
import { getCitizenType } from "myanmar-nrc-validator";
|
|
129
|
+
|
|
130
|
+
// 1. Extract citizen type from an NRC string
|
|
131
|
+
const citizenType = getCitizenType("12/UKAMA(N)123456");
|
|
132
|
+
console.log(citizenType); // နိုင် (or N)
|
|
133
|
+
|
|
134
|
+
// 2. Get all available citizen types (get all)
|
|
135
|
+
const allCitizenTypes = getCitizenType();
|
|
136
|
+
console.log(allCitizenTypes);
|
|
137
|
+
/*
|
|
138
|
+
Output:
|
|
139
|
+
[
|
|
140
|
+
{ code: "N", en: "Citizen", mm: "နိုင်" },
|
|
141
|
+
{ code: "E", en: "Associate Citizen", mm: "ဧည့်" },
|
|
142
|
+
{ code: "P", en: "Naturalized Citizen", mm: "ပြု" },
|
|
143
|
+
...
|
|
144
|
+
]
|
|
145
|
+
*/
|
|
146
|
+
|
|
122
147
|
```
|
|
123
148
|
|
|
124
149
|
### 5. Compose NRC (`composeNRC`)
|
package/dist/utils/parser.d.ts
CHANGED
|
@@ -8,5 +8,9 @@ export interface ParsedNRC {
|
|
|
8
8
|
raw: string;
|
|
9
9
|
}
|
|
10
10
|
export declare function parseNRC(nrcString: string): ParsedNRC | null;
|
|
11
|
-
export declare function getCitizenType(nrcString
|
|
11
|
+
export declare function getCitizenType(nrcString?: string): string | null | Array<{
|
|
12
|
+
code: string;
|
|
13
|
+
en: string;
|
|
14
|
+
mm: string;
|
|
15
|
+
}>;
|
|
12
16
|
//# sourceMappingURL=parser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/utils/parser.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/utils/parser.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb;AAED,wBAAgB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAuC5D;AAED,wBAAgB,cAAc,CAC5B,SAAS,CAAC,EAAE,MAAM,GACjB,MAAM,GAAG,IAAI,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,CAgBjE"}
|
package/dist/utils/parser.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import statesData from "../data/states.json" with { type: "json" };
|
|
2
2
|
import { validateNRC, isValidTownship, normalizeDigits } from "./validator.js";
|
|
3
|
+
import citizenTypesData from "../data/citizen-types.json" with { type: "json" };
|
|
3
4
|
const STATE_REGIONS = statesData;
|
|
4
5
|
export function parseNRC(nrcString) {
|
|
5
6
|
if (!nrcString || typeof nrcString !== "string") {
|
|
@@ -33,8 +34,13 @@ export function parseNRC(nrcString) {
|
|
|
33
34
|
};
|
|
34
35
|
}
|
|
35
36
|
export function getCitizenType(nrcString) {
|
|
36
|
-
if (!nrcString)
|
|
37
|
-
return
|
|
37
|
+
if (!nrcString || typeof nrcString !== "string" || nrcString.trim() === "") {
|
|
38
|
+
return Object.entries(citizenTypesData).map(([code, info]) => ({
|
|
39
|
+
code,
|
|
40
|
+
en: info.en,
|
|
41
|
+
mm: info.mm,
|
|
42
|
+
}));
|
|
43
|
+
}
|
|
38
44
|
const match = nrcString.match(/\(([^)]+)\)/);
|
|
39
45
|
if (match && match[1]) {
|
|
40
46
|
return match[1].trim();
|
package/dist/utils/parser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/utils/parser.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,qBAAqB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/utils/parser.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,qBAAqB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC/E,OAAO,gBAAgB,MAAM,4BAA4B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAEhF,MAAM,aAAa,GAAG,UAAwD,CAAC;AAY/E,MAAM,UAAU,QAAQ,CAAC,SAAiB;IACxC,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,UAAU,GAAG,eAAe,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;IAErD,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,KAAK,GACT,iEAAiE,CAAC;IACpE,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAEtC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,SAAS,GAAW,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACxC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACtB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAExB,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;IAEjE,OAAO;QACL,SAAS;QACT,WAAW,EAAE,SAAS,CAAC,EAAE;QACzB,WAAW,EAAE,SAAS,CAAC,EAAE;QACzB,QAAQ;QACR,IAAI;QACJ,MAAM;QACN,GAAG,EAAE,SAAS,CAAC,IAAI,EAAE;KACtB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,SAAkB;IAElB,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC3E,OAAO,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,GAAG,CACzC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAgB,EAAE,EAAE,CAAC,CAAC;YAChC,IAAI;YACJ,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,EAAE,EAAE,IAAI,CAAC,EAAE;SACZ,CAAC,CACH,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAC7C,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACzB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "myanmar-nrc-validator",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "A
|
|
3
|
+
"version": "1.0.16",
|
|
4
|
+
"description": "A robust TypeScript library to validate, parse, and format Myanmar NRC numbers, states, townships, and citizen types.",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
7
7
|
"exports": {
|
|
8
8
|
".": {
|
|
9
9
|
"types": "./dist/index.d.ts",
|
|
10
|
-
"
|
|
10
|
+
"import": "./dist/index.js"
|
|
11
11
|
}
|
|
12
12
|
},
|
|
13
13
|
"files": [
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
"nrc": "./dist/cli.js"
|
|
19
19
|
},
|
|
20
20
|
"scripts": {
|
|
21
|
+
"clean": "rimraf dist",
|
|
21
22
|
"build": "tsc",
|
|
22
23
|
"prepublishOnly": "npm run build",
|
|
23
24
|
"test": "echo \"Error: no test specified\" && exit 1"
|
|
@@ -25,17 +26,23 @@
|
|
|
25
26
|
"keywords": [
|
|
26
27
|
"myanmar",
|
|
27
28
|
"nrc",
|
|
28
|
-
"validator"
|
|
29
|
+
"validator",
|
|
30
|
+
"burmese-nrc",
|
|
31
|
+
"nrc-parser",
|
|
32
|
+
"cannopy-fleet"
|
|
29
33
|
],
|
|
30
34
|
"author": "Aung Phyo Khant",
|
|
31
35
|
"license": "MIT",
|
|
32
36
|
"type": "module",
|
|
37
|
+
"engines": {
|
|
38
|
+
"node": ">=18"
|
|
39
|
+
},
|
|
33
40
|
"devDependencies": {
|
|
34
|
-
"@types/node": "^
|
|
35
|
-
"rimraf": "^6.
|
|
36
|
-
"typescript": "^7.
|
|
41
|
+
"@types/node": "^24.21.0",
|
|
42
|
+
"rimraf": "^6.0.0",
|
|
43
|
+
"typescript": "^5.7.3"
|
|
37
44
|
},
|
|
38
45
|
"dependencies": {
|
|
39
|
-
"zod": "^
|
|
46
|
+
"zod": "^3.24.0"
|
|
40
47
|
}
|
|
41
48
|
}
|