@qingfu/core-env 0.5.14 → 0.5.15
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/lib/area.json +11453 -0
- package/lib/utils.js +21 -3
- package/package.json +1 -2
package/lib/utils.js
CHANGED
|
@@ -5,11 +5,11 @@ const xml2js = require( 'xml2js' );
|
|
|
5
5
|
const xlsx = require( 'xlsx' );
|
|
6
6
|
const baseX = require( 'base-x' ).default;
|
|
7
7
|
const pinyin = require( 'pinyin' ).default;
|
|
8
|
-
const idcard = require( 'idcard' );
|
|
9
8
|
const qrcode = require( 'qr-image' );
|
|
10
9
|
const request = require( 'superagent' );
|
|
11
10
|
const { serializeError } = require( 'serialize-error' );
|
|
12
|
-
const
|
|
11
|
+
const { diff: areaDiff, history: areaHistory } = require( './area.json' );
|
|
12
|
+
const utils = global.utils = module.exports = {};
|
|
13
13
|
|
|
14
14
|
utils.serializeError = serializeError;
|
|
15
15
|
|
|
@@ -247,7 +247,6 @@ utils.minaDecrypt = ({ encrypted, session, iv }) => {
|
|
|
247
247
|
}
|
|
248
248
|
};
|
|
249
249
|
|
|
250
|
-
utils.identityDetail = idcard.info;
|
|
251
250
|
utils.identityValidate = identity => {
|
|
252
251
|
if ( !identity || identity.length !== 18 ) return false;
|
|
253
252
|
if ( !/^\d{6}(18|19|20)?\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/i.test( identity )) return false;
|
|
@@ -264,6 +263,25 @@ utils.identityValidate = identity => {
|
|
|
264
263
|
else return true;
|
|
265
264
|
};
|
|
266
265
|
|
|
266
|
+
utils.identityDetail = ( identity, returnNew = true ) => {
|
|
267
|
+
let getItem = code => {
|
|
268
|
+
code = _.padEnd( code, 6, '0' );
|
|
269
|
+
if ( returnNew ) code = _.last( areaDiff[ code ]) || code;
|
|
270
|
+
return { code, text: areaHistory[ code ]};
|
|
271
|
+
};
|
|
272
|
+
let result = {
|
|
273
|
+
valid: utils.identityValidate( identity ),
|
|
274
|
+
province: getItem( identity.slice( 0, 2 )),
|
|
275
|
+
city: getItem( identity.slice( 0, 4 )),
|
|
276
|
+
area: getItem( identity.slice( 0, 6 ))
|
|
277
|
+
};
|
|
278
|
+
if ( result.valid ) Object.assign( result, {
|
|
279
|
+
gender: utils.getGender( identity ),
|
|
280
|
+
age: utils.getAge( identity )
|
|
281
|
+
});
|
|
282
|
+
return result;
|
|
283
|
+
};
|
|
284
|
+
|
|
267
285
|
utils.fetchBig = async ({ url, dest, method = 'GET', header = {}, retry = 0 }) => {
|
|
268
286
|
try {
|
|
269
287
|
return await new Promise(( resolve, reject ) => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@qingfu/core-env",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.15",
|
|
4
4
|
"readmeFilename": "README.md",
|
|
5
5
|
"dependencies": {
|
|
6
6
|
"@koa/cors": "5.0.0",
|
|
@@ -12,7 +12,6 @@
|
|
|
12
12
|
"dotenv-extended": "2.9.0",
|
|
13
13
|
"glob": "8.1.0",
|
|
14
14
|
"helmet": "8.0.0",
|
|
15
|
-
"idcard": "4.2.0",
|
|
16
15
|
"ioredis": "5.5.0",
|
|
17
16
|
"jsonwebtoken": "9.0.2",
|
|
18
17
|
"koa": "2.15.4",
|