@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.
Files changed (3) hide show
  1. package/lib/area.json +11453 -0
  2. package/lib/utils.js +21 -3
  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 utils = global.utils = module.exports = {};
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.14",
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",