@blod-nm/user-kit 0.1.6 → 0.1.7
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/access-key.js +1 -0
- package/dist/auth.js +1 -0
- package/dist/index.js +1 -0
- package/dist/login-ticket.js +1 -0
- package/dist/schemas.js +1 -0
- package/dist/token-broker.js +1 -0
- package/dist/user.js +1 -0
- package/dist/wechat.js +1 -0
- package/package.json +15 -6
- package/src/access-key.js +0 -130
- package/src/auth.js +0 -229
- package/src/index.js +0 -70
- package/src/schemas.js +0 -333
- package/src/token-broker.js +0 -62
- package/src/user.js +0 -241
- package/src/wechat.js +0 -20
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function _0x1d46(){const _0x28b7ae=['A2v5swq','DNnPwvO','teriD2e','Dxfyvvu','A2v5x2HHC2G','z2v0','A2v5x2LK','yxbPA2v5ioETVUwpKEwKSEI0Pq','5P+L6k+IigTLEsdLPlhOTku','vKXJyM8','ndq3odaZnevxserpEq','5zck6zsaigTLEsdLPlhOTku','vKLZrLK','sLfTBfm','mJu5mZqZnu9vC2jSyW','mtmWreP3Egzd','DeD5A0G','zxHWAxjLC0f0','mtm4neP3t3zhCa','q1jfqvrfifrbqKXfieLgie5pvcbfweLtvfmGx191C2vYx3rVA2vUx2nHy2HLicGkicb1AwqGDgv4DcbquKLnqvjzieTfwsWGywnJzxnZx3rVA2vUihrLEhqGtK9uie5vteWSihjLzNjLC2HFDg9Rzw4GDgv4Dcbot1qGtLvmtcWkicbLEhbPCMvZx2f0igjPz2LUDcbot1qGtLvmtcWGDxbKyxrLzf9HDcb0Aw1LC3rHBxb0EIberuzbvuXuig5VDYGPie5pvcbovuXmkq','DwLK','C2HHmJu2','zgvSzxrL','zgLNzxn0','yxv0Ac5RzxKUy3jLyxrL','CMvZDwX0','vvbeqvrfif9FDxnLCL9Hy2nLC3nFA2v5ifnfvcbYzxzVA2vKx2f0pw5VDYGPlcb1CgrHDgvKx2f0pw5VDYGPifDirvjfigTLEv9Pzd0KmsbbtKqGDwLKpsqYieforcbYzxzVA2vKx2f0ieLtie5vteWGuKvuvvjosu5higTLEv9OyxnO','C2v0','nta4mdu5uw5TD3PP','yxv0Ac5RzxKUCMv2B2TL','AvLLEM8','EKnXtfK','nda0swnUDMjH','Afzdzvu','otaWmZa5Dg1pELjm','DMvYAwz5','C2L6zq','zxHWAxjLC19HDa','C3rYAw5N','CMv2B2TLzf9HDa','yxbPA2v5ioAxOoAvIa','q1jfqvrfieLorevyieLgie5pvcbfweLtvfmGAwr4x3vZzxjFywnJzxnZx2TLEv91AwqGt04Gx191C2vYx2fJy2vZC19RzxKODwLKkq','y2fJAgu','AuTwu08','mJGXnZvjBLbSDMS','A2v5x3bYzwzPEa','zKHXwgm','otKYndmYBg1lrwXA','CMvHC29U','Agv4','DwLKuMvM','DgHLBG','DxnLCG','rw9rtMq','ndeXwvLhyMz5','t0PpEeW','C2nLBMu','yxbPA2v5','Dw50AwW','zKX2CxC'];_0x1d46=function(){return _0x28b7ae;};return _0x1d46();}const _0x21c5b0=_0x18ce;(function(_0x1d7fab,_0x1946d7){const _0x5c2d93=_0x18ce,_0x3c76ca=_0x1d7fab();while(!![]){try{const _0x307f6e=-parseInt(_0x5c2d93(0xf6))/0x1+-parseInt(_0x5c2d93(0xf4))/0x2*(parseInt(_0x5c2d93(0x10a))/0x3)+parseInt(_0x5c2d93(0x103))/0x4+parseInt(_0x5c2d93(0x11e))/0x5+-parseInt(_0x5c2d93(0x11a))/0x6+-parseInt(_0x5c2d93(0x100))/0x7*(-parseInt(_0x5c2d93(0x122))/0x8)+parseInt(_0x5c2d93(0xf0))/0x9*(parseInt(_0x5c2d93(0x11f))/0xa);if(_0x307f6e===_0x1946d7)break;else _0x3c76ca['push'](_0x3c76ca['shift']());}catch(_0x3c6bc0){_0x3c76ca['push'](_0x3c76ca['shift']());}}}(_0x1d46,0x7f9a5));import{createHash}from'node:crypto';import{createIssuer,createVerifier}from'@blod-nm/ak';function _0x18ce(_0x43f6c5,_0x20ef71){_0x43f6c5=_0x43f6c5-0xe8;const _0x1d464c=_0x1d46();let _0x18cec9=_0x1d464c[_0x43f6c5];if(_0x18ce['lEUoAE']===undefined){var _0x3e5ed2=function(_0x18ce92){const _0x590ca0='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3e3030='',_0x306c8e='';for(let _0x23bec4=0x0,_0x398ddb,_0x5e208f,_0x2f5dbd=0x0;_0x5e208f=_0x18ce92['charAt'](_0x2f5dbd++);~_0x5e208f&&(_0x398ddb=_0x23bec4%0x4?_0x398ddb*0x40+_0x5e208f:_0x5e208f,_0x23bec4++%0x4)?_0x3e3030+=String['fromCharCode'](0xff&_0x398ddb>>(-0x2*_0x23bec4&0x6)):0x0){_0x5e208f=_0x590ca0['indexOf'](_0x5e208f);}for(let _0x2f44d1=0x0,_0x3184b0=_0x3e3030['length'];_0x2f44d1<_0x3184b0;_0x2f44d1++){_0x306c8e+='%'+('00'+_0x3e3030['charCodeAt'](_0x2f44d1)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x306c8e);};_0x18ce['iToXao']=_0x3e5ed2,_0x18ce['LVwQub']={},_0x18ce['lEUoAE']=!![];}const _0x188f21=_0x1d464c[0x0],_0xfc3ec1=_0x43f6c5+_0x188f21,_0x370c53=_0x18ce['LVwQub'][_0xfc3ec1];return!_0x370c53?(_0x18cec9=_0x18ce['iToXao'](_0x18cec9),_0x18ce['LVwQub'][_0xfc3ec1]=_0x18cec9):_0x18cec9=_0x370c53,_0x18cec9;}const CACHE_TTL_MS=0x7530,DEFAULT_TTL_SEC=0x278d00;export const DDL_USER_TOKEN_CACHE=_0x21c5b0(0x123);export const DDL_USER_ACCESS_KEY='CREATE\x20TABLE\x20IF\x20NOT\x20EXISTS\x20__user_access_key\x20(\x0a\x20\x20key_hash\x20text\x20PRIMARY\x20KEY,\x20key_id\x20text\x20NOT\x20NULL\x20UNIQUE,\x20uid\x20text\x20NOT\x20NULL,\x0a\x20\x20scene\x20text\x20NOT\x20NULL\x20DEFAULT\x20\x27\x27,\x20key_prefix\x20text\x20NOT\x20NULL,\x0a\x20\x20created_at\x20timestamptz\x20DEFAULT\x20now()\x20NOT\x20NULL,\x20expires_at\x20bigint\x20NOT\x20NULL,\x0a\x20\x20revoked_at\x20timestamptz,\x20updated_at\x20timestamptz\x20DEFAULT\x20now()\x20NOT\x20NULL)';export const DDL_USER_ACCESS_KEY_INDEX=_0x21c5b0(0xfd);const SQL_SELECT_KEY='SELECT\x20key_id,\x20uid,\x20scene,\x20key_prefix,\x20revoked_at,\x20expires_at\x20FROM\x20__user_access_key\x20WHERE\x20key_hash=$1',SQL_INSERT_KEY='INSERT\x20INTO\x20__user_access_key\x20(key_hash,\x20key_id,\x20uid,\x20scene,\x20key_prefix,\x20expires_at)\x20VALUES\x20($1,\x20$2,\x20$3,\x20$4,\x20$5,\x20$6)',SQL_LIST_KEYS='SELECT\x20key_id,\x20key_prefix,\x20scene,\x20created_at,\x20expires_at,\x20revoked_at\x20FROM\x20__user_access_key\x20WHERE\x20uid=$1\x20ORDER\x20BY\x20created_at\x20DESC',SQL_REVOKE_KEY=_0x21c5b0(0xee),err=(_0x1bd34b,_0x45ae82)=>Object['assign'](new Error(_0x45ae82),{'code':_0x1bd34b});export const sha256hex=_0x274b77=>createHash(_0x21c5b0(0xe9))['update'](String(_0x274b77))[_0x21c5b0(0xeb)](_0x21c5b0(0x105));export const createVerifyCache=(_0x14c99d=CACHE_TTL_MS)=>{const _0x540278=_0x21c5b0,_0x45b020={};_0x45b020['EoQNd']=function(_0xaa4a79,_0x1b19c6){return _0xaa4a79<=_0x1b19c6;},_0x45b020[_0x540278(0xf5)]=function(_0x31efbc,_0x47cfac){return _0x31efbc+_0x47cfac;};const _0x50466b=_0x45b020,_0x56ce59=new Map();return{'get'(_0x512d5c){const _0xa5bccc=_0x540278,_0xe6ccfb=_0x56ce59[_0xa5bccc(0x115)](_0x512d5c);if(!_0xe6ccfb)return null;if(_0x50466b[_0xa5bccc(0x109)](_0xe6ccfb[_0xa5bccc(0x10e)],Date['now']()))return _0x56ce59[_0xa5bccc(0xea)](_0x512d5c),null;return _0xe6ccfb[_0xa5bccc(0xed)];},'set'(_0x5c7fa5,_0x297259){const _0x2447de=_0x540278;_0x56ce59[_0x2447de(0xef)](_0x5c7fa5,{'result':_0x297259,'until':_0x50466b[_0x2447de(0xf5)](Date['now'](),_0x14c99d)});},'clear'(_0x3d6e34){const _0x188158=_0x540278;_0x56ce59[_0x188158(0xea)](_0x3d6e34);},'size':()=>_0x56ce59[_0x540278(0xf8)]};};export function createKeyAbilities({cfg:_0x85fa6,runSql:_0x172b51}){const _0x27c160=_0x21c5b0,_0x17d107={'LDHwa':function(_0x104e1c){return _0x104e1c();},'JQmlS':function(_0x534d6b,_0x7ce8ed){return _0x534d6b(_0x7ce8ed);},'VLcbo':function(_0x54246d,_0x2c7326,_0x5126fb){return _0x54246d(_0x2c7326,_0x5126fb);},'VIsFY':function(_0x226382,_0x491771){return _0x226382??_0x491771;},'fLvqw':function(_0x92367d,_0x5d658a){return _0x92367d??_0x5d658a;},'fHqXc':function(_0x4c80bc,_0x4184cd,_0xd2c13d){return _0x4c80bc(_0x4184cd,_0xd2c13d);},'irUha':function(_0x1324df,_0x78cb2c){return _0x1324df(_0x78cb2c);},'OJOxL':function(_0x262380,_0x58f367){return _0x262380(_0x58f367);},'QbfBS':function(_0x13f0a4,_0x2191da,_0xcd2329){return _0x13f0a4(_0x2191da,_0xcd2329);},'iYezo':function(_0x1a77cb,_0x574159){return _0x1a77cb(_0x574159);},'iKVSO':function(_0x14b4e2,_0x48faf0,_0xa7c1c8){return _0x14b4e2(_0x48faf0,_0xa7c1c8);},'kkITX':'key_id\x20必填','zCqLY':_0x27c160(0x11b),'PngAl':_0x27c160(0xec),'vsiYZ':_0x27c160(0x108),'uqXUU':'签发新\x20apikey(当前\x20key\x20换\x20uid;scene\x20只存不用)','tGykH':'吊销\x20key(key_id\x20必须属于当前用户;0\x20行\x20→\x20404)','jkhHE':'auth.key.verify'},_0xaa7dea=createVerifyCache(),_0x20ebaf=()=>Number(_0x85fa6?.['akDefaultKeyTtlSec']??DEFAULT_TTL_SEC);let _0xceed71=null,_0x7dba27=null;const _0x4086de={};_0x4086de['masterSecret']=_0x85fa6['akMasterSecret'];const _0x38f3a7=()=>_0xceed71??=createIssuer(_0x4086de),_0x539d4f={};_0x539d4f['masterSecret']=_0x85fa6['akMasterSecret'];const _0x5b9d7d=()=>_0x7dba27??=createVerifier(_0x539d4f);async function _0x484db8(_0x454773,{scene:scene='',ttl:_0x4ff06a}={}){const _0x45ad5a=_0x27c160,_0x322166=await _0x38f3a7(),_0x134827=await _0x322166['issue']({'uid':_0x454773,'scene':scene,'ttl':Number(_0x4ff06a??_0x17d107[_0x45ad5a(0x112)](_0x20ebaf))}),_0x29d14e=_0x17d107[_0x45ad5a(0x11d)](sha256hex,_0x134827['key']);await _0x17d107[_0x45ad5a(0x119)](_0x172b51,SQL_INSERT_KEY,[_0x29d14e,_0x134827[_0x45ad5a(0x110)],_0x454773,_0x17d107[_0x45ad5a(0x11c)](scene,''),_0x134827['keyPrefix'],_0x134827['expiresAt']]);const _0x2d7f44={};return _0x2d7f44['apikey']=_0x134827['key'],_0x2d7f44[_0x45ad5a(0x114)]=_0x29d14e,_0x2d7f44[_0x45ad5a(0x116)]=_0x134827[_0x45ad5a(0x110)],_0x2d7f44[_0x45ad5a(0x101)]=_0x134827['keyPrefix'],_0x2d7f44[_0x45ad5a(0xf9)]=_0x134827[_0x45ad5a(0x121)],_0x2d7f44;}async function _0xdaddd0(_0x4debc1,{useCache:useCache=!![]}={}){const _0x5cb1be=_0x27c160,_0x567a9c=sha256hex(_0x17d107[_0x5cb1be(0x10f)](_0x4debc1,''));if(useCache){const _0x5822e7=_0xaa7dea[_0x5cb1be(0x115)](_0x567a9c);if(_0x5822e7)return _0x5822e7;}const _0x166bae=await _0x5b9d7d()[_0x5cb1be(0x107)](_0x517978=>_0x517978['verify'](_0x4debc1??''));if(!_0x166bae['ok'])return{'ok':![],'reason':_0x166bae['reason']};let _0x1d2aa8;try{_0x1d2aa8=await _0x172b51(SQL_SELECT_KEY,[_0x567a9c]);}catch{throw _0x17d107[_0x5cb1be(0x102)](err,0x1f7,'apikey\x20校验失败');}const _0xb187a3=_0x1d2aa8?.[0x0],_0x55d25c={};_0x55d25c['ok']=![],_0x55d25c[_0x5cb1be(0x104)]='malformed';const _0x26cc36={};_0x26cc36['ok']=![],_0x26cc36[_0x5cb1be(0x104)]='revoked';const _0xe277b7=!_0xb187a3?_0x55d25c:_0xb187a3[_0x5cb1be(0xfb)]!=null?_0x26cc36:{'ok':!![],'auth':{'uidRef':_0xb187a3[_0x5cb1be(0xe8)],'scene':_0xb187a3[_0x5cb1be(0x10c)]??'','keyId':_0xb187a3[_0x5cb1be(0x116)],'keyPrefix':_0xb187a3['key_prefix'],'expiresAt':_0x17d107['irUha'](Number,_0xb187a3['expires_at'])}};if(_0xe277b7['ok'])_0xaa7dea[_0x5cb1be(0xef)](_0x567a9c,_0xe277b7);return _0xe277b7;}async function _0x50a44f(_0x3a58a1){const _0x3c89f7=_0x27c160,_0x28c324={};_0x28c324['useCache']=![];const _0x25dc97=await _0xdaddd0(_0x3a58a1,_0x28c324);if(!_0x25dc97['ok'])throw err(0x191,_0x3c89f7(0xfc));return _0x25dc97['auth'][_0x3c89f7(0x106)];}const _0x555a54=[[_0x17d107['PngAl'],{'auth':_0x17d107[_0x27c160(0x111)],'describe':_0x17d107[_0x27c160(0x113)],'run':async(_0x5cf948={})=>{const _0x5e14ef=_0x27c160,_0x5c1a8c=await _0x50a44f(_0x5cf948[_0x5e14ef(0x10d)]??_0x5cf948['access_token']),_0xf1ebc6=typeof _0x5cf948['scene']===_0x5e14ef(0xfa)?_0x5cf948['scene']:'';let _0x12bed8;try{const _0x4b0912={};_0x4b0912['scene']=_0xf1ebc6,_0x12bed8=await _0x484db8(_0x5c1a8c,_0x4b0912);}catch{throw err(0x1f4,_0x5e14ef(0x117));}const _0x16022a={};return _0x16022a['apikey']=_0x12bed8[_0x5e14ef(0x10d)],_0x16022a['key_id']=_0x12bed8[_0x5e14ef(0x116)],_0x16022a[_0x5e14ef(0x101)]=_0x12bed8[_0x5e14ef(0x101)],_0x16022a['expires_at']=_0x12bed8['expires_at'],_0x16022a;}}],['auth.key.list',{'auth':_0x17d107['vsiYZ'],'describe':'当前用户的\x20key\x20档案列表(不含明文/key_hash)','run':async(_0x4ac178={})=>{const _0x4ddb51=_0x27c160,_0x49da14=await _0x17d107[_0x4ddb51(0x10b)](_0x50a44f,_0x4ac178[_0x4ddb51(0x10d)]??_0x4ac178['access_token']);let _0x2171e3;try{_0x2171e3=await _0x17d107['QbfBS'](_0x172b51,SQL_LIST_KEYS,[_0x49da14]);}catch{throw err(0x1f7,_0x4ddb51(0x118));}return(_0x2171e3??[])['map'](_0x49033b=>({..._0x49033b,'expires_at':Number(_0x49033b['expires_at'])}));}}],[_0x27c160(0xf1),{'auth':'user','describe':_0x17d107[_0x27c160(0x120)],'run':async(_0x251eed={})=>{const _0x339699=_0x27c160,_0xc688f2=await _0x17d107[_0x339699(0xf2)](_0x50a44f,_0x251eed[_0x339699(0x10d)]??_0x251eed['access_token']);if(!_0x251eed[_0x339699(0x116)])throw _0x17d107[_0x339699(0xff)](err,0x190,_0x17d107['kkITX']);let _0x5d4de5;try{_0x5d4de5=await _0x172b51(SQL_REVOKE_KEY,[_0x251eed['key_id'],_0xc688f2]);}catch{throw err(0x1f7,_0x17d107[_0x339699(0xf3)]);}const _0x181d7e=_0x5d4de5?.[0x0]?.[_0x339699(0x114)];if(!_0x181d7e)throw _0x17d107[_0x339699(0x102)](err,0x194,'key\x20不存在或不属于当前用户');_0xaa7dea['clear'](_0x181d7e);const _0x123077={};return _0x123077['revoked']=!![],_0x123077[_0x339699(0x116)]=_0x251eed['key_id'],_0x123077;}}],[_0x17d107['jkhHE'],{'auth':_0x17d107[_0x27c160(0x111)],'describe':'校验\x20apikey(唯一裁决路径,返回\x20verify\x20结果对象)','run':async(_0x3be2ac={})=>_0xdaddd0(_0x3be2ac[_0x27c160(0x10d)]??_0x3be2ac['access_token'])}]],_0xd69579={};return _0xd69579[_0x27c160(0xf7)]=_0xdaddd0,_0xd69579['issue']=_0x484db8,_0xd69579['uidOf']=_0x50a44f,_0xd69579['abilities']=_0x555a54,_0xd69579[_0x27c160(0xfe)]=_0xaa7dea,_0xd69579;}
|
package/dist/auth.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const _0x2fd5af=_0x5f41;(function(_0x3cfb44,_0x3f6712){const _0xdf9fe1=_0x5f41,_0x7f27cf=_0x3cfb44();while(!![]){try{const _0x5d7a21=-parseInt(_0xdf9fe1(0x1d9))/0x1*(-parseInt(_0xdf9fe1(0x1e4))/0x2)+-parseInt(_0xdf9fe1(0x214))/0x3+-parseInt(_0xdf9fe1(0x21e))/0x4*(parseInt(_0xdf9fe1(0x1c7))/0x5)+parseInt(_0xdf9fe1(0x213))/0x6*(-parseInt(_0xdf9fe1(0x1e5))/0x7)+-parseInt(_0xdf9fe1(0x1cd))/0x8+-parseInt(_0xdf9fe1(0x233))/0x9*(-parseInt(_0xdf9fe1(0x1e6))/0xa)+parseInt(_0xdf9fe1(0x231))/0xb;if(_0x5d7a21===_0x3f6712)break;else _0x7f27cf['push'](_0x7f27cf['shift']());}catch(_0x4e3994){_0x7f27cf['push'](_0x7f27cf['shift']());}}}(_0x23a8,0x6be5b));import _0x3174ef from'@cloudbase/node-sdk';import{code2Session as _0xc1febb}from'./wechat.js';function _0x23a8(){const _0x5dd165=['y29KztjtzxnZAw9UioIVT+AXGUwKSEI0Pq','A01pzey','ywnJzxnZx3rVA2vU','CgHVBMvFBNvTyMvY','zMXVB3i','BM9KztPMCY9WCM9TAxnLCW','Aw5JBhvKzxm','zMv0y2HqCMvMAxHdB25MAwC','DxnLCG','6lsM5y+35A+g56cb55M75B2v77Yi6ycp5lYGk+w7UUAHO++8IE+8MLbpu1qGl2f1DgGVDJeVC2LNBMLUihSGDxnLCM5HBwuSihbHC3n3B3jKih3VViZLK43LUPtLJP/MOlFOOAuGDwLK','y3jLzgvUDgLHBhmGBxvZDcbPBMnSDwrLigTLEv9PzcbHBMqGChjPDMf0zv9RzxK','yxbPA2v5ioAxOoAvIa','yxv0Ac5Zzw5Ku21Zq29Kzq','yxv0Ac5ZAwDUt3v0','yNjVA2vY','DMvYAwzPy2f0Aw9Ux2nVzguG5B+f5AgR','CgfZC3DVCMq','CMvX','B3bLBMLK','AgvHzgvYCW','55+T5l+H6AQm6k+b56cb55M75B2v77Yi6ycp5lYGk+w7UUAHO++8IE+8MLbpu1qGl2f1DgGVDJeVC2LNBMLUihSGDMvYAwzPy2f0Aw9Ux3rVA2vUih0','ndHRq25Sruy','mJu0mtiYmKnuEwPVuG','Ahr0Chm6lY8','ChjVDMLKzxjFDg9Rzw4','tvrZwNu','r0vu','C2T2yvq','Aw5PDa','qw9dEu4','DMvYAwzPy2f0Aw9Ux2nVzgu','5y+r6ykU566X6AQm6k+b56cb77YAC2vUzfzLCMLMAwnHDgLVBIdOLOtLIkVLKi3VViHLBwfPBcdLV4xLOAVVViK','mtu2s3j5zKPc','C2vUzfzLCMLMAwnHDgLVBG','y3jLyxrLvgLJA2v0','D3HszxnVBhzLvwLK','yxv0Ac5SB2DPBKj5vw5PB25Pza','zxjYBxnN','BM93','DNDKzhe','y29KztjtzxnZAw9UiowKSEI0Pq','55sO5OI35RoO5yAm5AsX6lsL','DMvYAwz5x29WDa','DxnLCI1RAxq6iowpGUAvScbJB2rLiow/HEwHQW','yxbPA2v5','6iEQ5A6A5lMj55M75B2v6k+35Rgc5AsX6lsL','5y+r55+T5l+H6AQm6k+b56cb77YAC2vUzfzLCMLMAwnHDgLVBIdOLOtLIkVLKi3VViHWAg9UzsdLV4xLOAVVViK','zw52swq','A3rOzwi','DwLKuMvM','yxv0Ac5Zzw5Krw1HAwXdB2rL','mJa3nduYnJnyyM96y00','CgHVBMuG5B+f5AgR','mti4mteXne9RqvfvEG','Dg9Rzw4G5QcH6AQm77YAr0vuic9HDxrOl3yXl3rVA2vUl2LUDhjVC3bLy3tVViHczwfYzxlVViNVViZNVzhLHBpLJP/MOlFVViJLKkSGC3vI77Yj','yxv0Ac5SB2DPBKj5rw1HAwW','DwLK','Cwz0sLm','DMvYAwzPy2f0Aw9Ux3rVA2vUiow/HEwHQW','thDQC0S','55M75yE677YAue9tvcaVyxv0Ac92ms91C2vYl3nPz25VDxtVViHczwfYzxlVViNVViZKUi3LHPNMOAm','CgHVBMvFBNvTyMvYl2vTywLSl3bYB3zPzgvYx3rVA2vUiow/HEwHQ+wfTUs4Ga','qxHYD24','l2f1DgGVDJeVC2LNBMLU','l2f1DgGVDJeVDMvYAwzPy2f0Aw9U','C1HSuwG','qu1oqwO','EM95A3e','AMD1EuW','y3jLzgvUDgLHBhm','CgHVBMu','A2v5x2LK','mteXnte1y2r3Bgj3','EgnpzLO','AxnZDwu','DKPguxO','C2LNBMLUuMvXDwvZDa','DMvYAwz5','nJGYodK2mefgtKHyBG','ue9tva','yxv0Ac5ZAwDUDxa','y0rRque','Dg9Rzw4','CgHVBMuG5OIwigvTywLSios6JoMaIEs4Gow/HEwHQW','CMvMCMvZAfrVA2vUuMvXDwvZDa','v1zhCuK','l3yXl3n0B3jHz2vZl29IAMvJDc9ZDg9Yzs9WDwjSAwmVD3HFBxbFy29UzI9WCMvMAxHFy29UzMLNlMPZB24','yxv0Aa','yxv0Ac52zxjPzNLdB2rL','BfnJt3a','mte5CKTtCLHV','5RoO5yAm77Yi5OMl5PY6l+McRUEUSs9WCM92AwrLCL90B2TLBIdKUiNLVAlMGihVViNVVjPqt1nuic9HDxrOl3yXl3nPz251Co+8JowtJEw6LowoN+AGTYVOOAuGDwLKk+w7UUAHOW','DxrMltG','5BYa5Ps+55M75B2v77YA5zsV5lIaigLKioAZQowgJoEzU+w9LE+8Iow7UUAHO+kgKNrPy2TLDokgKNnPz25PBI9JDxn0B23IHPlMIzJNRQeR562+5y+rigTLEE+8Iq','yM9KEq','uMnoEhi','zuDpuNK','DMvYAwzPy2f0Aw9Ux3rVA2vU','DxnLCM5HBwu','zw1HAwXFy29Kzq','DMvYAwz5x29WDcdLV4xLOAVVViHWAg9Uzv9JB2rLFgvTywLSx2nVzgxVViK','nZCWnKfbwKfTEG','mZGYndHkCunqAxm','ntb2CLvOvgW','q2jHBK4','yxbPlNrJBg91zgjHC2vNyxrLD2f5lMnVBq','zw52x2LK','zg9TywLU','DhjPBq','qwLODfi','we5PuNO','zw1HAwW','y3vZDg9T','Dw5PB25Pza','5B6U5l+HignVzguG55M75B2v5ywO6zo+77YA5BU65QgJk+IhQUwUMUs5IEs7PoEjJcTWCMvMAxHFy29UzMLN77YinYdLRzFMRRxOO7JLR7NOSAhVViK','iow/HEwHQW','wM1gzNi','C3rHCNrZv2L0Aa','ChjVzMLSzq','zxHWAxjLC19PBG','CNvU','CMvMCMvZAa','A3P5yu0','Aw5Qzwn0','yxv0Ac5Zzw5KvMvYAwzPy2f0Aw9U','zw52','ChjPDMf0zv9RzxLFAwq'];_0x23a8=function(){return _0x5dd165;};return _0x23a8();}import{decodeJWT,throwGatewayError,makeGateway}from'./user.js';import{withSchemas}from'./schemas.js';export{decodeJWT};function _0x5f41(_0x45f7f2,_0x4f703c){_0x45f7f2=_0x45f7f2-0x1c0;const _0x23a8e6=_0x23a8();let _0x5f4124=_0x23a8e6[_0x45f7f2];if(_0x5f41['sDwTly']===undefined){var _0x427fa4=function(_0x1dd2d9){const _0x79ebc7='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3bd2f9='',_0x23426f='';for(let _0x54884b=0x0,_0x1e8b67,_0x21df82,_0x29313a=0x0;_0x21df82=_0x1dd2d9['charAt'](_0x29313a++);~_0x21df82&&(_0x1e8b67=_0x54884b%0x4?_0x1e8b67*0x40+_0x21df82:_0x21df82,_0x54884b++%0x4)?_0x3bd2f9+=String['fromCharCode'](0xff&_0x1e8b67>>(-0x2*_0x54884b&0x6)):0x0){_0x21df82=_0x79ebc7['indexOf'](_0x21df82);}for(let _0xbc317c=0x0,_0x58d858=_0x3bd2f9['length'];_0xbc317c<_0x58d858;_0xbc317c++){_0x23426f+='%'+('00'+_0x3bd2f9['charCodeAt'](_0xbc317c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x23426f);};_0x5f41['JwvyKz']=_0x427fa4,_0x5f41['fiUpwZ']={},_0x5f41['sDwTly']=!![];}const _0x29907f=_0x23a8e6[0x0],_0x13d33b=_0x45f7f2+_0x29907f,_0x100775=_0x5f41['fiUpwZ'][_0x13d33b];return!_0x100775?(_0x5f4124=_0x5f41['JwvyKz'](_0x5f4124),_0x5f41['fiUpwZ'][_0x13d33b]=_0x5f4124):_0x5f4124=_0x100775,_0x5f4124;}const DEFAULT_DOMAIN=_0x2fd5af(0x1e8),_0x32c422={};_0x32c422[_0x2fd5af(0x1f8)]=0x7*0x18*0xe10*0x3e8,_0x32c422['expire']=0x1e*0x18*0xe10*0x3e8;const TICKET_TTL=_0x32c422,err=(_0x1b4838,_0x181763,_0x46159={})=>Object['assign'](new Error(_0x181763),{'code':_0x1b4838,..._0x46159});export async function loadCredentials(_0x192f84,_0x4747fe){const _0x1c6709=_0x2fd5af,_0x24c44b={};_0x24c44b['XNiRz']='缺少自定义登录私钥:tcbAuthCredentials(JSON\x20文案或文件路径,按\x20{\x20开头自动识别)',_0x24c44b[_0x1c6709(0x1f9)]=function(_0x3719e9,_0x3b585b){return _0x3719e9 in _0x3b585b;},_0x24c44b['Axrwn']=_0x1c6709(0x208);const _0x475dc8=_0x24c44b,_0x304fea=String(_0x192f84||'')[_0x1c6709(0x1eb)]();if(!_0x304fea)throw new Error(_0x475dc8[_0x1c6709(0x1ed)]);const _0x2c2d79=_0x304fea[_0x1c6709(0x1f4)]('{')?_0x304fea:await(await import(_0x1c6709(0x203)))['readFile'](_0x304fea,_0x1c6709(0x1db)),_0x9080c6=JSON['parse'](_0x2c2d79);if(_0x475dc8['kzyaM'](_0x1c6709(0x1fd),_0x9080c6)&&!(_0x1c6709(0x1c6)in _0x9080c6))_0x9080c6[_0x1c6709(0x1c6)]=_0x9080c6[_0x1c6709(0x1fd)];if(!_0x9080c6[_0x1c6709(0x1c6)]||!_0x9080c6['private_key'])throw new Error(_0x475dc8[_0x1c6709(0x23c)]);if(!_0x9080c6[_0x1c6709(0x1e9)])_0x9080c6[_0x1c6709(0x1e9)]=_0x4747fe;return _0x9080c6;}let tcbAppCache=null;async function tcbCreateTicket(_0x31db6e,_0x28de86){const _0x1f7594=_0x2fd5af;if(!tcbAppCache){const _0x328d43=await loadCredentials(_0x31db6e['tcbAuthCredentials'],_0x31db6e['envId']),_0x570877={};_0x570877[_0x1f7594(0x1fc)]=_0x328d43[_0x1f7594(0x1e9)],_0x570877[_0x1f7594(0x1c4)]=_0x328d43,tcbAppCache=_0x3174ef[_0x1f7594(0x21a)](_0x570877);}return tcbAppCache[_0x1f7594(0x1d6)]()[_0x1f7594(0x220)](_0x28de86,TICKET_TTL);}export const makeRefreshTokenRequest=(_0x210aee,_0x315ee7)=>(_0x210aee[_0x2fd5af(0x1fa)]||{})[_0x2fd5af(0x1d3)]||(_0x2e7eae=>_0x315ee7['req'](_0x2fd5af(0x215)+_0x210aee[_0x2fd5af(0x22d)]+'.'+(_0x210aee[_0x2fd5af(0x1ea)]||DEFAULT_DOMAIN)+'/auth/v1/token',{'method':'POST','body':_0x2e7eae}));export function createAuthAbilities(_0x2a371,_0x511a08,_0x470ec4={}){const _0x1e1406=_0x2fd5af,_0x2a3cb5={'kMOdF':function(_0xfc67af,_0x5126a5){return _0xfc67af(_0x5126a5);},'jguyL':_0x1e1406(0x22b),'VNliz':function(_0x235de0,_0x108849,_0x4e607f){return _0x235de0(_0x108849,_0x4e607f);},'CbanN':_0x1e1406(0x227),'INWFv':function(_0x174979,_0x1b8319){return _0x174979/_0x1b8319;},'cDkAA':function(_0x996690,_0x2855f4,_0x5ba68f){return _0x996690(_0x2855f4,_0x5ba68f);},'MTsZu':'apikey\x20签发失败','ZmFfr':function(_0x55b8ea,_0x4d87f1){return _0x55b8ea(_0x4d87f1);},'AihtR':function(_0x26a80e,_0x4709a4,_0x4deda0){return _0x26a80e(_0x4709a4,_0x4deda0);},'CTMog':'phone','AMNAj':function(_0x1ca0ac,_0x145050,_0x5bd10f){return _0x1ca0ac(_0x145050,_0x5bd10f);},'awwsg':function(_0x3d01ea,_0x4610c4,_0x321be2){return _0x3d01ea(_0x4610c4,_0x321be2);},'WVGqI':'email\x20必填','lScOp':function(_0x26adfe,_0x4e8967,_0x18ac22){return _0x26adfe(_0x4e8967,_0x18ac22);},'qdSYr':_0x1e1406(0x20d),'vJFQz':_0x1e1406(0x1ce),'skvaT':function(_0x5890af,_0x25da8a){return _0x5890af(_0x25da8a);},'spMfj':'/auth/v1/user/reauthenticate','RhnbR':function(_0x42daa3,_0x51361c){return _0x42daa3(_0x51361c);},'RcNxr':function(_0x251b85,_0x12da61,_0xa3189c,_0x14efdb){return _0x251b85(_0x12da61,_0xa3189c,_0x14efdb);},'OHyKP':'/auth/v1/token/introspect','GaNTX':function(_0x4f0e44,_0x284070){return _0x4f0e44(_0x284070);},'qftJS':_0x1e1406(0x23b),'tvYnR':'/auth/v1/signup','LwjsK':function(_0x5bb762,_0x43fd94){return _0x5bb762!==_0x43fd94;},'LDglb':function(_0x499fd8,_0x564100,_0x28c503){return _0x499fd8(_0x564100,_0x28c503);},'zoykq':'/auth/v1/user/signout','ktheb':_0x1e1406(0x22c),'xcOfZ':'验证码校验:POST\x20/auth/v1/verification/verify,网关原样(含\x20verification_token)','owQDR':'重认证发码:POST\x20/auth/v1/user/reauthenticate(Bearer;verify_opt\x20∈\x20phone_code|email_code)','AoCyN':'auth.loginByPassword','CMjjN':_0x1e1406(0x212),'sMRiq':_0x1e1406(0x235),'eGORy':'auth.loginByWxcode','sXlQh':_0x1e1406(0x222),'GmCwj':_0x1e1406(0x1dc),'vwddq':_0x1e1406(0x20b),'bPcYp':_0x1e1406(0x23a)},_0x10fdb1=_0x2a371[_0x1e1406(0x1fa)]||{},_0x494823=_0x1e1406(0x215)+_0x2a371['envId']+'.'+(_0x2a371['domain']||DEFAULT_DOMAIN),_0x41ade6=_0x10fdb1[_0x1e1406(0x21f)]||(_0x47f616=>_0x511a08['req'](_0x494823+_0x1e1406(0x23e),{'method':_0x1e1406(0x1ce),'body':_0x47f616})),_0x2bef94=_0x10fdb1[_0x1e1406(0x1cb)]||(_0x206713=>_0x511a08['req'](_0x494823+_0x1e1406(0x23d),{'method':_0x1e1406(0x1ce),'body':_0x206713})),_0x554ac5=_0x10fdb1['customSignin']||(_0x4bb2b6=>_0x511a08['req'](_0x494823+'/auth/v1/signin/custom',{'method':_0x1e1406(0x1ce),'body':{'provider_id':_0x1e1406(0x1ef),'ticket':_0x4bb2b6}})),_0x53ca41=_0x10fdb1['code2Session']||(_0x1c8de4=>_0xc1febb(_0x2a371,_0x1c8de4)),_0x3601ec=_0x10fdb1[_0x1e1406(0x221)]||(_0x71a154=>_0x71a154[_0x1e1406(0x210)]),_0x5f4db7=_0x10fdb1[_0x1e1406(0x220)]||(_0x184ec3=>tcbCreateTicket(_0x2a371,_0x184ec3)),_0x403972={};_0x403972['Cache-Control']='no-cache';const _0x30b4bb={};_0x30b4bb[_0x1e1406(0x211)]=_0x403972;const _0x3243bb=_0x10fdb1[_0x1e1406(0x205)]||(()=>_0x511a08[_0x1e1406(0x20f)](_0x494823+_0x1e1406(0x1d5),_0x30b4bb)),_0x3b7a0c=makeGateway(_0x2a371,_0x511a08),_0x28a042=async(_0x1bf05e,_0x464a71,_0xb25120)=>{try{return await _0x3b7a0c(_0x1bf05e,_0x464a71,_0xb25120);}catch(_0x5874c4){throwGatewayError(_0x5874c4);}},_0x1ff5b3=_0x31f0b8=>_0x10fdb1['sendVerification']?_0x10fdb1[_0x1e1406(0x21f)](_0x31f0b8):_0x28a042(_0x1e1406(0x1ce),_0x1e1406(0x23e),{'body':_0x31f0b8});async function _0x13fbe3(_0x2ecc0e){const _0x550b84=_0x1e1406,_0x3e3954=await _0x2a3cb5[_0x550b84(0x1ff)](_0x5f4db7,_0x2ecc0e);let _0x4ed5ed;try{_0x4ed5ed=await _0x2a3cb5['kMOdF'](_0x554ac5,_0x3e3954);}catch{throw err(0x1f6,_0x2a3cb5[_0x550b84(0x1c3)]);}const {access_token:_0x55e581,refresh_token:_0x2a8543,expires_in:_0x3254c2}=_0x4ed5ed,_0x10dc51={};return _0x10dc51['at']=_0x55e581,_0x10dc51['rt']=_0x2a8543,_0x10dc51['expires_in']=_0x3254c2,_0x10dc51;}async function _0x8849b7(_0x14a2a5){const _0x297ad8=_0x1e1406;try{await _0x511a08['ctx'][_0x297ad8(0x1f7)]('user.upsert',_0x14a2a5);}catch{throw _0x2a3cb5['VNliz'](err,0x1f4,_0x2a3cb5[_0x297ad8(0x1e7)]);}}const _0x294ee5=_0x34d43a=>_0x34d43a?.['sub']||_0x34d43a?.[_0x1e1406(0x206)]?.['id']||decodeJWT(_0x34d43a?.[_0x1e1406(0x200)])['sub']||null;async function _0x12d264(_0x51128e,_0x5ef467){const _0x22370f=_0x1e1406,_0x1d125a=Math[_0x22370f(0x202)](_0x2a3cb5['INWFv'](Date[_0x22370f(0x224)](),0x3e8))+(_0x2a3cb5[_0x22370f(0x1ff)](Number,_0x5ef467?.[_0x22370f(0x1f6)])||0x0),_0x1a8beb=_0x5ef467?.['at']??_0x5ef467?.[_0x22370f(0x200)],_0x10578e=_0x5ef467?.['rt']??_0x5ef467?.['refresh_token'];try{await _0x470ec4['broker']['upsert'](_0x51128e,_0x1a8beb,_0x10578e,_0x1d125a);}catch{throw _0x2a3cb5[_0x22370f(0x1d0)](err,0x1f4,'官方凭证托管失败');}let _0x3b9f38;try{_0x3b9f38=await _0x470ec4[_0x22370f(0x1c9)](_0x51128e);}catch{throw err(0x1f4,_0x2a3cb5[_0x22370f(0x217)]);}const _0x54e69a={};return _0x54e69a[_0x22370f(0x22a)]=_0x3b9f38[_0x22370f(0x22a)],_0x54e69a['expires_at']=_0x3b9f38['expires_at'],_0x54e69a;}async function _0x5775a2(_0x53fe11){const _0x2b4806=_0x1e1406,_0x5bacb3=await _0x470ec4[_0x2b4806(0x1cc)](_0x53fe11);if(!_0x5bacb3['ok'])throw _0x2a3cb5[_0x2b4806(0x1d0)](err,0x191,_0x2b4806(0x209));const {access_token:_0x2bac7c}=await _0x470ec4[_0x2b4806(0x20c)]['get'](_0x5bacb3[_0x2b4806(0x1d6)]['uidRef']),_0x9071b1={};return _0x9071b1[_0x2b4806(0x236)]=_0x5bacb3['auth'][_0x2b4806(0x22f)],_0x9071b1[_0x2b4806(0x1d1)]=_0x2bac7c,_0x9071b1;}async function _0x54685c(_0x443fe9,_0x5351ae){const _0x255231=_0x1e1406;for(const _0x16d266 of _0x5351ae){if(!_0x443fe9?.[_0x16d266])throw err(0x190,_0x16d266+_0x255231(0x1f2));}let _0x411427;try{_0x411427=await _0x2bef94(_0x443fe9);}catch(_0x4ffc56){_0x2a3cb5[_0x255231(0x1f3)](throwGatewayError,_0x4ffc56);}const _0x48c503=_0x294ee5(_0x411427);if(!_0x48c503)throw err(0x1f4,_0x255231(0x227));const _0x5b8a1f={};return _0x5b8a1f['uid']=_0x48c503,_0x5b8a1f['profile']={},await _0x8849b7(_0x5b8a1f),_0x2a3cb5[_0x255231(0x1ec)](_0x12d264,_0x48c503,_0x411427);}return withSchemas([[_0x1e1406(0x1fb),{'describe':'发验证码(phone/email\x20二选一):POST\x20/auth/v1/verification,网关原样(含\x20verification_token)','run':async(_0x2e96a4={})=>{const _0x4f909f=_0x1e1406,_0x5625a4={};for(const _0xe0a77b of[_0x2a3cb5['CTMog'],'email','email_redirect_to'])if(_0x2e96a4[_0xe0a77b]!==undefined)_0x5625a4[_0xe0a77b]=_0x2e96a4[_0xe0a77b];if(!_0x5625a4[_0x4f909f(0x1c5)]&&!_0x5625a4[_0x4f909f(0x1ee)])throw err(0x190,_0x4f909f(0x1d2));return _0x1ff5b3(_0x5625a4);}}],[_0x1e1406(0x20a),{'describe':_0x2a3cb5[_0x1e1406(0x22e)],'run':async({phone:_0x22e114}={})=>{const _0x3dbde2=_0x1e1406;if(!_0x22e114)throw _0x2a3cb5[_0x3dbde2(0x1c1)](err,0x190,_0x3dbde2(0x232));const _0x109f0d={};return _0x109f0d['phone']=_0x22e114,_0x1ff5b3(_0x109f0d);}}],[_0x1e1406(0x230),{'describe':_0x1e1406(0x21d),'run':async({email:_0x3f3b77}={})=>{const _0x674690=_0x1e1406;if(!_0x3f3b77)throw _0x2a3cb5['awwsg'](err,0x190,_0x2a3cb5[_0x674690(0x1d4)]);const _0x10f2ab={};return _0x10f2ab['email']=_0x3f3b77,_0x2a3cb5[_0x674690(0x1f3)](_0x1ff5b3,_0x10f2ab);}}],[_0x1e1406(0x1d7),{'describe':_0x2a3cb5[_0x1e1406(0x1c8)],'run':async({verification_id:_0x39be93,verification_code:_0x45d3c2}={})=>{const _0x114868=_0x1e1406;if(!_0x39be93)throw err(0x190,'verification_id\x20必填');if(!_0x45d3c2)throw _0x2a3cb5[_0x114868(0x1d8)](err,0x190,_0x2a3cb5['qdSYr']);const _0x384075={};_0x384075['verification_id']=_0x39be93,_0x384075[_0x114868(0x21c)]=_0x45d3c2;const _0x26c122={};return _0x26c122['body']=_0x384075,_0x28a042(_0x2a3cb5[_0x114868(0x1ca)],'/auth/v1/verification/verify',_0x26c122);}}],['auth.reauthenticate',{'describe':_0x2a3cb5['owQDR'],'run':async(_0x212481={})=>{const _0x1b7e09=_0x1e1406,{apikey:_0x223bfe,verify_opt:_0x3cc53c}=_0x212481;if(!['phone_code',_0x1b7e09(0x1e2)][_0x1b7e09(0x204)](_0x3cc53c))throw err(0x190,_0x1b7e09(0x1e3));const {token:_0x4d2e62}=await _0x2a3cb5[_0x1b7e09(0x219)](_0x5775a2,_0x223bfe),_0x1c4508={};_0x1c4508[_0x1b7e09(0x228)]=_0x3cc53c;const _0x1ad275={};return _0x1ad275[_0x1b7e09(0x1dd)]=_0x1c4508,_0x1ad275[_0x1b7e09(0x1d1)]=_0x4d2e62,_0x28a042('POST',_0x2a3cb5['spMfj'],_0x1ad275);}}],['auth.introspect',{'describe':_0x1e1406(0x234),'run':async({apikey:_0x43cfed}={})=>{const _0x2b8b02=_0x1e1406,{token:_0x3b2e41}=await _0x2a3cb5['RhnbR'](_0x5775a2,_0x43cfed),_0x419086={};return _0x419086[_0x2b8b02(0x1d1)]=_0x3b2e41,_0x2a3cb5['RcNxr'](_0x28a042,_0x2b8b02(0x218),_0x2a3cb5['OHyKP'],_0x419086);}}],[_0x2a3cb5[_0x1e1406(0x21b)],{'describe':_0x1e1406(0x207),'run':async(_0x3fc7bb={})=>_0x54685c({'username':_0x3fc7bb['username'],'password':_0x3fc7bb[_0x1e1406(0x20e)]},[_0x1e1406(0x1e1),_0x1e1406(0x20e)])}],['auth.loginBySms',{'describe':_0x2a3cb5['CMjjN'],'run':async(_0x3b3787={})=>_0x54685c({'verification_token':_0x3b3787['verification_token']},[_0x1e1406(0x1e0)])}],[_0x2a3cb5['sMRiq'],{'describe':'邮箱验证码登录(与\x20SMS\x20同端点同实现,命名只表达调用意图)','run':async(_0x81313f={})=>_0x54685c({'verification_token':_0x81313f['verification_token']},['verification_token'])}],[_0x2a3cb5[_0x1e1406(0x1df)],{'describe':_0x1e1406(0x1f1),'run':async(_0x658b61={})=>{const _0x56fa88=_0x1e1406,{code:_0x7c2e82}=_0x658b61;if(!_0x7c2e82||typeof _0x7c2e82!=='string')throw err(0x190,_0x56fa88(0x229));let _0x1123e3;try{_0x1123e3=await _0x53ca41(_0x7c2e82);}catch{throw err(0x1f6,_0x56fa88(0x1fe));}if(_0x1123e3['errcode'])throw err(0x190,_0x1123e3['errmsg']||_0x56fa88(0x226),{'errcode':_0x1123e3['errcode'],'errmsg':_0x1123e3[_0x56fa88(0x223)]||'code2Session\x20失败'});const _0x50a3e0=await _0x3601ec(_0x1123e3),_0x57577d={};_0x57577d['openid']=_0x1123e3[_0x56fa88(0x210)],_0x57577d[_0x56fa88(0x1f0)]=_0x1123e3['unionid']||null;const _0xf63c96={};_0xf63c96['uid']=_0x50a3e0,_0xf63c96['profile']=_0x57577d,await _0x8849b7(_0xf63c96);const _0x57b181=await _0x12d264(_0x50a3e0,await _0x2a3cb5['skvaT'](_0x13fbe3,_0x50a3e0));return{..._0x57b181,'config':await _0x3243bb()};}}],[_0x2a3cb5[_0x1e1406(0x1c0)],{'describe':_0x2a3cb5['GmCwj'],'run':async(_0x15b787={})=>{const _0x1a98ce=_0x1e1406,{unionid:_0x4056c2}=_0x15b787;if(!_0x4056c2)throw err(0x190,'缺少\x20unionid');const _0xa73161={};return _0xa73161[_0x1a98ce(0x236)]=_0x4056c2,_0xa73161[_0x1a98ce(0x1f5)]={},await _0x2a3cb5['GaNTX'](_0x8849b7,_0xa73161),_0x2a3cb5[_0x1a98ce(0x1c1)](_0x12d264,_0x4056c2,await _0x13fbe3(_0x4056c2));}}],[_0x1e1406(0x1cf),{'describe':_0x1e1406(0x1da),'run':async(_0x11d2ed={})=>{const _0x4e6cd8=_0x1e1406,_0x39d5a5=!!(_0x11d2ed?.['phone_number']||_0x11d2ed?.['email']);if(_0x39d5a5&&!_0x11d2ed?.['verification_token'])throw err(0x190,_0x4e6cd8(0x238));if(!_0x39d5a5&&!_0x11d2ed?.[_0x4e6cd8(0x216)])throw _0x2a3cb5['lScOp'](err,0x190,_0x2a3cb5[_0x4e6cd8(0x237)]);const _0x2ee333={};_0x2ee333['body']=_0x11d2ed;const _0x525852=await _0x28a042(_0x4e6cd8(0x1ce),_0x2a3cb5['tvYnR'],_0x2ee333),_0x32fe4f=_0x294ee5(_0x525852);if(!_0x32fe4f)throw err(0x1f4,_0x4e6cd8(0x227));const _0x5bfb4a={};if(_0x2a3cb5[_0x4e6cd8(0x239)](_0x11d2ed['username'],undefined))_0x5bfb4a['username']=_0x11d2ed[_0x4e6cd8(0x1e1)];if(_0x11d2ed[_0x4e6cd8(0x1ee)]!==undefined)_0x5bfb4a[_0x4e6cd8(0x1ee)]=_0x11d2ed[_0x4e6cd8(0x1ee)];if(_0x11d2ed[_0x4e6cd8(0x201)]!==undefined)_0x5bfb4a['phone']=_0x11d2ed[_0x4e6cd8(0x201)];const _0x2034f2={};return _0x2034f2['uid']=_0x32fe4f,_0x2034f2[_0x4e6cd8(0x1f5)]=_0x5bfb4a,await _0x2a3cb5[_0x4e6cd8(0x219)](_0x8849b7,_0x2034f2),_0x2a3cb5['LDglb'](_0x12d264,_0x32fe4f,_0x525852);}}],[_0x2a3cb5[_0x1e1406(0x225)],{'describe':_0x2a3cb5['bPcYp'],'run':async(_0x18691d={})=>{const _0x16b1c7=_0x1e1406,{apikey:_0x5c61d6,..._0xa914db}=_0x18691d??{},{token:_0x5d4369}=await _0x5775a2(_0x5c61d6),_0x41df1f={};return _0x41df1f['body']=_0xa914db,_0x41df1f['token']=_0x5d4369,_0x2a3cb5[_0x16b1c7(0x1de)](_0x28a042,_0x16b1c7(0x1ce),_0x2a3cb5[_0x16b1c7(0x1c2)],_0x41df1f);}}]]);}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const _0x325c8b=_0x5b2e;(function(_0x416654,_0x1312c3){const _0x1697a7=_0x5b2e,_0x50225d=_0x416654();while(!![]){try{const _0x116ee5=-parseInt(_0x1697a7(0xa9))/0x1*(parseInt(_0x1697a7(0xc4))/0x2)+parseInt(_0x1697a7(0xa1))/0x3+-parseInt(_0x1697a7(0xc1))/0x4*(parseInt(_0x1697a7(0xbb))/0x5)+-parseInt(_0x1697a7(0xc0))/0x6+parseInt(_0x1697a7(0xca))/0x7*(parseInt(_0x1697a7(0xc7))/0x8)+-parseInt(_0x1697a7(0xc8))/0x9*(-parseInt(_0x1697a7(0xac))/0xa)+parseInt(_0x1697a7(0xc9))/0xb*(-parseInt(_0x1697a7(0xb3))/0xc);if(_0x116ee5===_0x1312c3)break;else _0x50225d['push'](_0x50225d['shift']());}catch(_0x40c37a){_0x50225d['push'](_0x50225d['shift']());}}}(_0x4fd7,0xa35a8));import{createKit as _0x245693}from'@blod-nm/base-cb';import{createAuthAbilities,makeRefreshTokenRequest}from'./auth.js';import{createUserAbilities}from'./user.js';import{createKeyAbilities}from'./access-key.js';import{createCbTokenBroker,makeRunSql}from'./token-broker.js';function _0x5b2e(_0x427f6d,_0x492134){_0x427f6d=_0x427f6d-0x9f;const _0x4fd7aa=_0x4fd7();let _0x5b2ee4=_0x4fd7aa[_0x427f6d];if(_0x5b2e['dwvtHz']===undefined){var _0x28aae9=function(_0x21b14b){const _0x14821a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1a99d3='',_0xfb8700='';for(let _0x3db305=0x0,_0x734b6f,_0x17a11e,_0x519b23=0x0;_0x17a11e=_0x21b14b['charAt'](_0x519b23++);~_0x17a11e&&(_0x734b6f=_0x3db305%0x4?_0x734b6f*0x40+_0x17a11e:_0x17a11e,_0x3db305++%0x4)?_0x1a99d3+=String['fromCharCode'](0xff&_0x734b6f>>(-0x2*_0x3db305&0x6)):0x0){_0x17a11e=_0x14821a['indexOf'](_0x17a11e);}for(let _0x39ff1d=0x0,_0x1c27b8=_0x1a99d3['length'];_0x39ff1d<_0x1c27b8;_0x39ff1d++){_0xfb8700+='%'+('00'+_0x1a99d3['charCodeAt'](_0x39ff1d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xfb8700);};_0x5b2e['KwkUIz']=_0x28aae9,_0x5b2e['eKjwWM']={},_0x5b2e['dwvtHz']=!![];}const _0x20996b=_0x4fd7aa[0x0],_0x3659ad=_0x427f6d+_0x20996b,_0x3c0c8c=_0x5b2e['eKjwWM'][_0x3659ad];return!_0x3c0c8c?(_0x5b2ee4=_0x5b2e['KwkUIz'](_0x5b2ee4),_0x5b2e['eKjwWM'][_0x3659ad]=_0x5b2ee4):_0x5b2ee4=_0x3c0c8c,_0x5b2ee4;}function _0x4fd7(){const _0x45d970=['AxnZDwu','ndC5mLLyrM1bra','mJqZntq5uuPevvb2','otiYodaXC2LPvvDi','nZyYm2DMyvf2Aa','yxnZAwDU','yxv0Ac5RzxKUDMvYAwz5','mZC5nZy0nNLfEvrdra','zw52swq','CwjSDhG','ywjPBgL0AwvZ','57Y65BcrihvPza','CMvX','y2rhzLe','CNvUu3fS','mJq4nJm1u0HTvuDA','ChjVza','wgLbyLm','mZGWuLzVsMTU','yxv0Ac5RzxKUBgLZDa','u3vpEue','DwLK','y3r4','D3HbChbPza','DgnIqxv0AenYzwrLBNrPywXZ','mtjMsfD3yxq','DMvYAwz5','shr1tgy','CNvU','CMvNAxn0zxi','D3HtzwnYzxq','z2v0','ywTnyxn0zxjtzwnYzxq','mtqWntqWAffbEvL0','y29Kzq','yNL0zuXLBMD0Aa','ywTezwzHDwX0s2v5vhrSu2vJ','y2zN','ndm1mJKXmfbeCMLnEa','mZjZu0nvzeK','zgvZy3jPyMu','C3rYAw5N','mtbABLHHz1O','yxv0Ac5JyLrVA2vUlMDLDa'];_0x4fd7=function(){return _0x45d970;};return _0x4fd7();}import{createLoginTicketAbilities}from'./login-ticket.js';import{withSchemas}from'./schemas.js';const REQUIRED=[_0x325c8b(0xa2),'apiKey',_0x325c8b(0xb1),_0x325c8b(0xb8),_0x325c8b(0xb2),_0x325c8b(0xba)],DEFAULT_KEY_TTL_SEC=0x278d00;export function createKit(_0x3fe1e7={}){const _0x4f44b7=_0x325c8b,_0x8d9ac3={'zPznx':_0x4f44b7(0xa5),'qbltx':function(_0x162b3b,_0x304d28){return _0x162b3b(_0x304d28);},'SuOyA':'utf8','cdGfQ':'user-kit:\x20cfg.akMasterSecret\x20需\x20≥32\x20字节','XiAbS':function(_0x34e982,_0x4c614b){return _0x34e982(_0x4c614b);},'NnIie':function(_0x344ce6,_0x30326e,_0x3ecfa4,_0x96392b){return _0x344ce6(_0x30326e,_0x3ecfa4,_0x96392b);},'MWEsh':function(_0x238424,_0x4969bc){return _0x238424(_0x4969bc);},'HtuLf':_0x4f44b7(0xc5)};for(const _0x8a92e6 of REQUIRED){if(!_0x3fe1e7?.[_0x8a92e6])throw new Error('user-kit:\x20cfg\x20缺\x20'+_0x8a92e6);}if(Buffer[_0x4f44b7(0xbd)](_0x8d9ac3['qbltx'](String,_0x3fe1e7['akMasterSecret']),_0x8d9ac3[_0x4f44b7(0xae)])<0x20)throw new Error(_0x8d9ac3[_0x4f44b7(0xa7)]);const _0x3c34d6={..._0x3fe1e7};_0x3c34d6['env']=_0x3fe1e7['env']||_0x4f44b7(0xaa),_0x3c34d6['akDefaultKeyTtlSec']=_0x3fe1e7[_0x4f44b7(0xbe)]??DEFAULT_KEY_TTL_SEC;const _0x1467b3=_0x3c34d6,_0x3ab439=_0x245693(_0x1467b3),_0x4b6957=_0x8d9ac3[_0x4f44b7(0xa3)](makeRunSql,_0x3ab439),_0x1f4154=makeRefreshTokenRequest(_0x1467b3,_0x3ab439),_0x1e065f={};_0x1e065f['cfg']=_0x1467b3,_0x1e065f['refreshTokenRequest']=_0x1f4154,_0x1e065f[_0x4f44b7(0xa8)]=_0x4b6957;const _0x2ec0f3=_0x8d9ac3[_0x4f44b7(0xab)](createCbTokenBroker,_0x1e065f),_0x23e399={};_0x23e399[_0x4f44b7(0xbf)]=_0x1467b3,_0x23e399[_0x4f44b7(0xa8)]=_0x4b6957;const _0x120e5c=createKeyAbilities(_0x23e399),_0x357111={};_0x357111['broker']=_0x2ec0f3,_0x357111[_0x4f44b7(0xa8)]=_0x4b6957,_0x357111[_0x4f44b7(0xb4)]=_0x120e5c[_0x4f44b7(0xb4)],_0x357111['issue']=_0x120e5c[_0x4f44b7(0xc6)],_0x357111['refreshTokenRequest']=_0x1f4154;const _0x2c5d96=_0x357111,_0x23ee98={'describe':'托管官方\x20token\x20兑换:uid\x20→\x20{\x20access_token,\x20expires_at,\x20from_cache\x20}(宿主透传前取\x20Bearer)','run':async(_0x36f2aa={})=>{const _0x47052e=_0x4f44b7,_0x3b37af={};_0x3b37af[_0x47052e(0xbc)]=0x190;if(!_0x36f2aa?.['uid'])throw Object[_0x47052e(0x9f)](new Error(_0x8d9ac3['zPznx']),_0x3b37af);return _0x2ec0f3[_0x47052e(0xb9)](_0x36f2aa[_0x47052e(0xaf)]);}};for(const [_0x35e6a2,_0x34f8a7]of[..._0x8d9ac3['NnIie'](createAuthAbilities,_0x1467b3,_0x3ab439,_0x2c5d96),...createUserAbilities(_0x1467b3,_0x3ab439,_0x2c5d96),...createLoginTicketAbilities(_0x1467b3,_0x3ab439),..._0x120e5c[_0x4f44b7(0xa4)],..._0x8d9ac3['MWEsh'](withSchemas,[[_0x8d9ac3[_0x4f44b7(0xb5)],_0x23ee98]])]){_0x3ab439[_0x4f44b7(0xb0)][_0x4f44b7(0xb7)](_0x35e6a2,_0x34f8a7);}const _0x320f6d={'create':_0x459c7d=>_0x3ab439[_0x4f44b7(0xb0)][_0x4f44b7(0xb6)]('auth.key.create',_0x459c7d),'list':_0x423f67=>_0x3ab439[_0x4f44b7(0xb0)]['run'](_0x4f44b7(0xad),_0x423f67),'revoke':_0x13b428=>_0x3ab439['ctx']['run']('auth.key.revoke',_0x13b428),'verify':_0x470d85=>_0x3ab439[_0x4f44b7(0xb0)][_0x4f44b7(0xb6)](_0x4f44b7(0xa0),typeof _0x470d85===_0x4f44b7(0xc3)?{'apikey':_0x470d85}:_0x470d85)};return{'ctx':_0x3ab439['ctx'],'req':_0x3ab439[_0x4f44b7(0xa6)],'cfg':_0x1467b3,'broker':_0x2ec0f3,'key':_0x320f6d,'describe':()=>_0x3ab439['ctx'][_0x4f44b7(0xc2)]()};}export default createKit;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const _0x2bd4e5=_0x4237;function _0xd875(){const _0xe71465=['Buf1rKK','tNrUwxO','murSvLbqCq','5B6U5l+H5OMR56cb55M75B2v56wO5O2Uimk3ioETVUwpKq','lMPZB24','Chv0vxjS','mtaZotiZnM56qvLmDW','zNvSBfvYBa','y29Kzq','mtGYrgHvvK1k','B2jQzwn0','ntCYotK2D3fzqM9W','562+5y+r5lIa5QYH5OcN5OMR56cb56wO5O2UoIdOV5tLM54GA2v5koI9RUIVOIbNzxqG55sOkEs4JIbWDxrvCMWO6jc95zYW6Ag1ifbvvcb7C3rHDhvZoIjZy2fUBMvKiIWGy29Kzx0SioACIEAvIoACN+wgHEwnLEASOEwgMsK7igXPBMSGpsbTCdOVlYdNQ5NLHOxPOBxPK77MJQxVViJLSi/NQiVLUO/LHOxPG6JMIAVNOihMOApNM7tMJQuGz290B++8M+wKLUMdQoAjQ+EGGEEAHcb1CMXSAw5RiowpPUIURU+8Iq','refHteK','BhrcDwnRzxq','mtyYnJrwufzHB2G','yxnZAwDU','ueTrwKi','CNvU','AxbuBg8','zxHWAxjLC0LUioMCGos4UIaOmcWGmZyWmf0G55Qe5Pw05PwW56Es','yxv0Ac53EeXVz2LUvgLJA2v0lMDLDa','mJmZndi2BMzKA2Pe','y2f0y2G','mtq4ntuWufH2EKnJ','A2v5','tfDKAMi','CgvUzgLUzW','zNvSBfnPz25Lzfvsta','y2fJAguTDgLJA2v0','D3GTy29Kzs1LEgnOyw5Nzs8','yxv0Ac53EeXVz2LUvgLJA2v0lMnYzwf0zq','y3r4','nJmZota2u3LjvvD5','C2nHBM5Lza','m2jTr0juua','nJC2mZC1C3zLzuHZ','C3rHDhvZ','DgvZDa','BhrfEhbPCMvZsw5tzwm','mteWzuvQt3vT','BgLUAW'];_0xd875=function(){return _0xe71465;};return _0xd875();}(function(_0x175247,_0x60a6f8){const _0xdf2a1b=_0x4237,_0x33508a=_0x175247();while(!![]){try{const _0x3b8b3c=-parseInt(_0xdf2a1b(0x115))/0x1*(-parseInt(_0xdf2a1b(0xff))/0x2)+-parseInt(_0xdf2a1b(0x10c))/0x3*(parseInt(_0xdf2a1b(0x11e))/0x4)+parseInt(_0xdf2a1b(0x10d))/0x5+parseInt(_0xdf2a1b(0x119))/0x6+-parseInt(_0xdf2a1b(0x11c))/0x7*(-parseInt(_0xdf2a1b(0x122))/0x8)+-parseInt(_0xdf2a1b(0x10a))/0x9+-parseInt(_0xdf2a1b(0x101))/0xa*(parseInt(_0xdf2a1b(0x111))/0xb);if(_0x3b8b3c===_0x60a6f8)break;else _0x33508a['push'](_0x33508a['shift']());}catch(_0xe4e023){_0x33508a['push'](_0x33508a['shift']());}}}(_0xd875,0x1c46b));import{randomUUID}from'node:crypto';const err=(_0x2bbc90,_0x1a2ec8)=>Object[_0x2bd4e5(0x123)](new Error(_0x1a2ec8),{'code':_0x2bbc90});function _0x4237(_0x2ffca5,_0x55b5d6){_0x2ffca5=_0x2ffca5-0xfb;const _0xd87513=_0xd875();let _0x423702=_0xd87513[_0x2ffca5];if(_0x4237['MTBJJE']===undefined){var _0x2a5233=function(_0x13f363){const _0x13d980='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2a96a8='',_0x25e12d='';for(let _0x4c392e=0x0,_0x415722,_0x4a1565,_0x56d797=0x0;_0x4a1565=_0x13f363['charAt'](_0x56d797++);~_0x4a1565&&(_0x415722=_0x4c392e%0x4?_0x415722*0x40+_0x4a1565:_0x4a1565,_0x4c392e++%0x4)?_0x2a96a8+=String['fromCharCode'](0xff&_0x415722>>(-0x2*_0x4c392e&0x6)):0x0){_0x4a1565=_0x13d980['indexOf'](_0x4a1565);}for(let _0x57e34a=0x0,_0x590fe2=_0x2a96a8['length'];_0x57e34a<_0x590fe2;_0x57e34a++){_0x25e12d+='%'+('00'+_0x2a96a8['charCodeAt'](_0x57e34a)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x25e12d);};_0x4237['KquYfn']=_0x2a5233,_0x4237['RKYqKt']={},_0x4237['MTBJJE']=!![];}const _0xd02c77=_0xd87513[0x0],_0x1f5cd9=_0x2ffca5+_0xd02c77,_0xdd436d=_0x4237['RKYqKt'][_0x1f5cd9];return!_0xdd436d?(_0x423702=_0x4237['KquYfn'](_0x423702),_0x4237['RKYqKt'][_0x1f5cd9]=_0x423702):_0x423702=_0xdd436d,_0x423702;}export function createLoginTicketAbilities(_0x5f23cc,_0xb475b2){const _0x3e8d9c=_0x2bd4e5,_0x1ab858={};_0x1ab858['DAaLI']=function(_0x519908,_0x1c2dfe){return _0x519908<=_0x1c2dfe;},_0x1ab858['OAjUS']=function(_0x322c6f,_0x5a4ca5){return _0x322c6f===_0x5a4ca5;},_0x1ab858['LWdjb']='scanned',_0x1ab858['UPmXW']=_0x3e8d9c(0x104),_0x1ab858[_0x3e8d9c(0xfc)]=_0x3e8d9c(0x116),_0x1ab858[_0x3e8d9c(0x113)]='票据有效秒数,\x20默认\x2060,\x20上限\x203600',_0x1ab858[_0x3e8d9c(0x114)]='按\x20key\x20轮询:\x20{status:\x22scanned\x22,\x20code}(已推\x20code)\x20或\x20{status:\x22pending\x22,\x20putUrl}(未扫,\x20附落地页可用\x20PUT\x20地址)',_0x1ab858[_0x3e8d9c(0x124)]='string';const _0x5d17fd=_0x1ab858,_0x5d405f=_0x5f23cc[_0x3e8d9c(0x121)]||_0x3e8d9c(0x106),_0x2674f6=_0x5f23cc[_0x3e8d9c(0x110)]??0x3c,_0x12f710=_0x290d6c=>_0x3e8d9c(0x107)+_0x290d6c+_0x3e8d9c(0x117);return[[_0x3e8d9c(0x108),{'title':_0x5d17fd[_0x3e8d9c(0xfc)],'describe':_0x3e8d9c(0x11f),'inputSchema':{'type':_0x3e8d9c(0x11d),'properties':{'expiresIn':{'type':'integer','description':_0x5d17fd['mAuFI']}}},'run':async({expiresIn:expiresIn=_0x2674f6}={})=>{const _0x88fc03=_0x3e8d9c;if(!Number['isInteger'](expiresIn)||_0x5d17fd[_0x88fc03(0x120)](expiresIn,0x0)||expiresIn>0xe10)throw err(0x190,_0x88fc03(0xfd));const _0x5b90ac=randomUUID(),_0x223c5e=await _0xb475b2[_0x88fc03(0x109)]['run']('storage.signUpload',{'bucketId':_0x5d405f,'objectName':_0x12f710(_0x5b90ac),'expiresIn':expiresIn}),_0x487702={};return _0x487702[_0x88fc03(0x102)]=_0x5b90ac,_0x487702[_0x88fc03(0x112)]='mp://pages/qrcode-login/index?k='+_0x5b90ac,_0x487702[_0x88fc03(0x118)]=_0x223c5e[_0x88fc03(0x11a)],_0x487702['expiresIn']=expiresIn,_0x487702;}}],[_0x3e8d9c(0xfe),{'title':'微信扫码登录票据\x20·\x20轮询/取写票','describe':_0x5d17fd[_0x3e8d9c(0x114)],'inputSchema':{'type':'object','required':[_0x3e8d9c(0x102)],'properties':{'key':{'type':_0x5d17fd[_0x3e8d9c(0x124)],'description':'create\x20返回的\x20key\x20(uuid)'}}},'run':async({key:_0x424758}={})=>{const _0xaccafd=_0x3e8d9c;if(!_0x424758||!/^[0-9a-f-]{36}$/i[_0xaccafd(0x10f)](String(_0x424758)))throw err(0x190,'key\x20需为\x20uuid');const [_0x1786e5]=await _0xb475b2['ctx']['run']('storage.downloadUrl',{'bucketId':_0x5d405f,'paths':[_0x12f710(_0x424758)],'expiresIn':0x3c});if(_0x1786e5?.[_0xaccafd(0x105)]){const _0x2cd9d9=await fetch(_0x1786e5[_0xaccafd(0x105)]);if(_0x2cd9d9['ok']){const _0x2ba8d5=await _0x2cd9d9['json']()[_0xaccafd(0x100)](()=>null);if(_0x5d17fd['OAjUS'](_0x2ba8d5?.[_0xaccafd(0x10e)],_0xaccafd(0x10b))&&_0x2ba8d5['code'])return{'status':_0x5d17fd[_0xaccafd(0x103)],'code':_0x2ba8d5[_0xaccafd(0x11b)]};}else{if(_0x2cd9d9[_0xaccafd(0x10e)]!==0x194)throw err(0x1f6,'票据读回异常:\x20HTTP\x20'+_0x2cd9d9[_0xaccafd(0x10e)]);}}try{const _0x3b0d8d=await _0xb475b2['ctx'][_0xaccafd(0xfb)]('storage.signUpload',{'bucketId':_0x5d405f,'objectName':_0x12f710(_0x424758),'expiresIn':_0x2674f6}),_0x10bb34={};return _0x10bb34['status']=_0x5d17fd['UPmXW'],_0x10bb34[_0xaccafd(0x118)]=_0x3b0d8d['fullUrl'],_0x10bb34;}catch{const _0x171946={};return _0x171946['status']=_0xaccafd(0x104),_0x171946;}}}]];}
|
package/dist/schemas.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const _0x375d6d=_0x4c58;(function(_0x54cc49,_0x458d18){const _0xfbf8d2=_0x4c58,_0x152c4a=_0x54cc49();while(!![]){try{const _0x4e82dd=-parseInt(_0xfbf8d2(0x139))/0x1*(-parseInt(_0xfbf8d2(0x142))/0x2)+parseInt(_0xfbf8d2(0x191))/0x3+-parseInt(_0xfbf8d2(0x13c))/0x4+parseInt(_0xfbf8d2(0x176))/0x5+-parseInt(_0xfbf8d2(0x158))/0x6*(-parseInt(_0xfbf8d2(0x13f))/0x7)+parseInt(_0xfbf8d2(0x152))/0x8+-parseInt(_0xfbf8d2(0x153))/0x9;if(_0x4e82dd===_0x458d18)break;else _0x152c4a['push'](_0x152c4a['shift']());}catch(_0x52d9ac){_0x152c4a['push'](_0x152c4a['shift']());}}}(_0x39cb,0xd9bae));const str=(_0x1c2083,_0x314f33={})=>({'type':_0x375d6d(0x124),'description':_0x1c2083,..._0x314f33}),_0x2f8658={};_0x2f8658[_0x375d6d(0x160)]='string',_0x2f8658[_0x375d6d(0x192)]='唯一用户\x20id(≤128\x20字符,不含控制字符)',_0x2f8658[_0x375d6d(0x162)]=0x80,_0x2f8658[_0x375d6d(0x146)]='^[^\x5cu0000-\x5cu001f\x5cu007f]+$';const uidField=_0x2f8658,freeObj=_0x246caf=>({'type':_0x375d6d(0x143),'description':_0x246caf,'additionalProperties':!![]}),obj=(_0x97ada0={},{required:required=[],anyOf:_0x4a7238,additionalProperties:additionalProperties=!![]}={})=>({'type':_0x375d6d(0x143),'properties':_0x97ada0,...required[_0x375d6d(0x12c)]?{'required':required}:{},..._0x4a7238?{'anyOf':_0x4a7238}:{},'additionalProperties':additionalProperties}),apikeyField=str(_0x375d6d(0x14d)),_0x322da3={};_0x322da3['apikey']=apikeyField;const apikeyIn=_0x322da3,_0x99d8aa={};_0x99d8aa['type']='number',_0x99d8aa[_0x375d6d(0x192)]=_0x375d6d(0x14f);const sessionProps={'apikey':str(_0x375d6d(0x148)),'expires_at':_0x99d8aa},_0xb0c65f={...sessionProps},_0x36e6c3={};_0x36e6c3['type']='object',_0x36e6c3['properties']=_0xb0c65f,_0x36e6c3['required']=[_0x375d6d(0x16e),_0x375d6d(0x125)],_0x36e6c3[_0x375d6d(0x18d)]=![];const sessionOut=_0x36e6c3,_0x168268={};_0x168268[_0x375d6d(0x168)]=['code'],_0x168268['additionalProperties']=![];const _0x23242b={};_0x23242b['type']='object',_0x23242b[_0x375d6d(0x192)]=_0x375d6d(0x19b);const _0x56b8fd={...sessionProps};_0x56b8fd[_0x375d6d(0x135)]=_0x23242b;const _0x529d71={};_0x529d71[_0x375d6d(0x168)]=[_0x375d6d(0x16e),'expires_at',_0x375d6d(0x135)],_0x529d71[_0x375d6d(0x18d)]=![];const _0x42f6e={};_0x42f6e['openWorldHint']=!![];const _0x4feea5={};_0x4feea5[_0x375d6d(0x168)]=[_0x375d6d(0x17a)],_0x4feea5[_0x375d6d(0x18d)]=![];const _0x215119={};_0x215119['openWorldHint']=!![];const _0x3e2f71={};_0x3e2f71['required']=[_0x375d6d(0x196),_0x375d6d(0x15f)];const _0x187d5a={};_0x187d5a[_0x375d6d(0x163)]=!![];const _0x224bb8={};_0x224bb8[_0x375d6d(0x168)]=['verification_token'];const _0x5ab194={};_0x5ab194[_0x375d6d(0x163)]=!![];const _0x5ddacf={};_0x5ddacf[_0x375d6d(0x168)]=[_0x375d6d(0x16d)];const _0x4c371a={};_0x4c371a[_0x375d6d(0x163)]=!![];const _0x860476={};_0x860476[_0x375d6d(0x168)]=[_0x375d6d(0x16d),_0x375d6d(0x171)];const _0x43b3ab={};_0x43b3ab[_0x375d6d(0x168)]=['verification_token',_0x375d6d(0x14a)];const _0x3f0b99={};_0x3f0b99[_0x375d6d(0x168)]=[_0x375d6d(0x15b)];const _0x43939b={};_0x43939b[_0x375d6d(0x15e)]=[_0x860476,_0x43b3ab,_0x3f0b99];const _0x570924={};_0x570924['openWorldHint']=!![];const _0xf0000a={};_0xf0000a[_0x375d6d(0x168)]=['phone'];const _0x7d0e58={};_0x7d0e58[_0x375d6d(0x168)]=['email'];const _0x3e0889={};_0x3e0889['anyOf']=[_0xf0000a,_0x7d0e58];const _0x35f14b={};_0x35f14b['required']=[_0x375d6d(0x179)];const _0x110f35={};_0x110f35['required']=[_0x375d6d(0x134)],_0x110f35[_0x375d6d(0x18d)]=![];const _0x2a144c={};_0x2a144c['required']=[_0x375d6d(0x179)];const _0x24a903={};_0x24a903['required']=[_0x375d6d(0x14a)],_0x24a903[_0x375d6d(0x18d)]=![];const _0x27a195={};_0x27a195[_0x375d6d(0x168)]=[_0x375d6d(0x179)];const _0x342b76={};_0x342b76['required']=['verification_id',_0x375d6d(0x172)],_0x342b76[_0x375d6d(0x18d)]=![];const _0x12fa9f={};_0x12fa9f[_0x375d6d(0x168)]=['verification_token'];const _0x3bb1cc={};_0x3bb1cc['type']=_0x375d6d(0x124),_0x3bb1cc[_0x375d6d(0x184)]=[_0x375d6d(0x13b),'email_code'],_0x3bb1cc['description']=_0x375d6d(0x194);const _0x265700={...apikeyIn};_0x265700['verify_opt']=_0x3bb1cc;const _0xdf9298={};_0xdf9298['required']=['apikey','verify_opt'],_0xdf9298[_0x375d6d(0x18d)]=![];const _0x18c658={...apikeyIn},_0x2a48dc={};_0x2a48dc['required']=[_0x375d6d(0x16e)],_0x2a48dc[_0x375d6d(0x18d)]=![];const _0x5ed65d={};_0x5ed65d[_0x375d6d(0x160)]=_0x375d6d(0x138),_0x5ed65d['description']='是否有效';const _0xd8863e={};_0xd8863e[_0x375d6d(0x120)]=!![],_0xd8863e[_0x375d6d(0x163)]=!![];const _0x49476b={};_0x49476b['required']=['apikey'],_0x49476b[_0x375d6d(0x18d)]=!![];const _0x4de460={};_0x4de460[_0x375d6d(0x160)]=_0x375d6d(0x143),_0x4de460[_0x375d6d(0x192)]='网关响应(通常为空对象)';const _0x303d4d={};_0x303d4d[_0x375d6d(0x19d)]=!![];const _0x548f43={};_0x548f43[_0x375d6d(0x168)]=[_0x375d6d(0x17c)],_0x548f43[_0x375d6d(0x18d)]=![];const _0x38245d={};_0x38245d[_0x375d6d(0x160)]=_0x375d6d(0x143),_0x38245d['description']=_0x375d6d(0x18f);const _0x54a3f1={};_0x54a3f1['additionalProperties']=![];const _0x44fe64={};_0x44fe64[_0x375d6d(0x18d)]=![];const _0x38f315={};_0x38f315['type']='object';function _0x39cb(){const _0x516a36=['DMvYAwz5ioE7K+AENo+8Ig9Rl2f1DgGG5OIwig9Rl3jLyxnVBU+8Iq','ndG3mJK2nLfSCen6zG','zgvZy3jPChrPB24','5PAWigfWAwTLEsdMMi7MLOFVViJLV4xOV5tVViZKU4xMRAtKUidMRkhVViK','6AQm6k+b5PA55BYp77Yi5B+f5AgR77Yj','55sOihD4lMXVz2LUioEAHcbJB2rLioEzU+w9LE+8MUIhQUwkQow7UUAHO+w5TUI/LowBNUs8MUIVNEs7PoEjJos4JUs4I+wpKEMfJEE9RG','DxnLCM5HBwu','6AQm6k+b56cb5lUK54Mm77Yi5B+f6l+u77Yj','56YS5lIj5PA5ihbYB3zPzgvYx3rVA2vU77Yi5lIj6ycj5lIa77YB5lIo6AQm6k+b56cb5PA55BYp5lQs5PAL77Yj','5RoO5yAm5PAW55sO5OI377YA5OMl5PY65y+3k+MQJoIVGEEGGsaVioMcRUEUSsVPQOZOR4hNOieGlYdNRkZKUiNMLRKGChjVDMLKzxjFDg9Rzw4G5lIj6ycj5lIa77Ym6iEQ5yQO5BU65QgJ','5PI156EW77Yi5y+V6ycj77Yj','ChjLzML4x2nVBMzPz++8Iow/HEI/Lo+8JowUOUAiT+ERR+w8UUs+NEI1LU+8Iq','6l+h5PYFihvUAxGG56Es','zgvZDhj1y3rPDMviAw50','5QcH6AQm6AQm6k+b56cb','5QcH6AQm5lUK54Mm','CMvHze9UBhLiAw50','D3GUBg9NAw4G5B6x5yIW55QeignVzgxVViJLV4xLOAVVViK','twfNAwmGtgLUAYdOT7pOVAZLNldLNydVViJLJ6/PGiNVViZKU4xPGQ7NRRhVViK','C3rHDhvZ','C3rYAw5N','zxHWAxjLC19HDa','6k6+5AshigLK77Yi5y+V6ycj77Yj','6lsM5y+35A+g56cb55M75B2v','55sOihzLCMLMEunVzguG5O2I5P2L55QeihzLCMLMAwnHDgLVBL90B2TLBIdNMBVLVzxVVjRLU7RMOAmGkYdMIzJNRQhLRPJMLRNKU6tNIyZLUBBNRB7LJ5eGyxbPA2v5','EYbJCMvHDgvKoIbZDhjPBMDBxsWGzxHPC3rPBMC6ihn0CMLUz1TDih0','Cgf0y2G','5QgJ5Qgi6kgm77Yi5PEG6kgm5PE2ihn0CNvJDhvYzwrdB250zw50ioECGEEvPE+8JgnVBNrLBNqG5PAh5PYS5lI6ig51BgZVViK','BgvUz3rO','zNjVBv9JywnOzq','5Rwf5zci5BM25PU05PAW5B2t5yMn55M75B2v55sO5OI355Qe5lIA5yQH5QgJ5QgiihbYB2zPBguG5Q6177Yi5PYS5zYW5A2x5Q6177Ym5lIn6lwW572r5ywZ77Yj','6lsM5y+35A+g56cb55M75B2v77YA5BU65QgJicSG5OMy566H5A6y5PA55lUK54Mm5BM2562+5y+rigfWAwTLEq','yxjYyxK','5zsV5lIaigLKioEzU+w9Lq','DMvYAwz5q29KzsdLVPFLIldNMOtKU6tNIyZVViJLV4xLOAVVViK','DxnLCG','CgHVBMu','y29UzMLN','5zck6zsaigfWAwTLEq','5RoO6zsa6lsM5y+3','yM9VBgvHBG','ouHHAef5Cq','5PIV5zcM5OIq5yQF','CgHVBMvFy29Kzq','ntmZmtGYofDYveLOAW','C2vSzG','5A6I5OI356UVigLK77Yi5y+V6ycj77Ym6BUy6k6K546V5AkdigLK77Yj','mJHIuxrpr1y','5BU65QgJ5OIw5yI35PAWihvWzgf0zwrFyxtVViJNMBVLVzxPK77OT6/LHOxPG6JMRAxVViZNMBVLVzxML7BOH6RLIQJMIAFOOyZVViK','DgfIBgu','otq1mdzJAhbQDgO','B2jQzwn0','5OMl5PY65y+377Yi5B+f5AgR77Yj','572r5ywZ5zon5BQu77Yi6ycA5BI45lI656M65A+56lgH77Yj','Cgf0DgvYBG','5B2t5yMnigfWAwTLEE+8Iow/HEwHQ++8Iq','5PAW562+5y+r55QeigfWAwTLEE+8Iow/HEI/Lo+8M+AyJUAwH+wpQUwhUUEoSoI/MEs4GoASOE+8Iq','5A6y5PA5ihrVA2vUioAjMoEUOEwfKEAnOG','zw1HAwW','5PIV5zcM5zg95lIT5OMy566H57Yt5A2y','5QcH6AQm5B2t5yMnigfWAwTLEsdLR7NLUPtNMOtLRPJMLRNKU6tNIyZMMk/LKkBMNiNMLyJVViZOV5tLM57NLkJMIlCGC3vI','yxbPA2v577Yi5B+f5AgR77YBytfFiowjJEE8Go+8Iq','6kgO5PIV5zcM5A2y5zYO','yxbPA2v5ioI/H+ACN+AxTUMxTo+8IhvUAxGG56Es77Ym5B+f6l+u77Yj','BwfW','5OcN5yIR77Yi5y+V6ycj77Yj','mtm2mZCWnZjsreXouLu','mZyWotq2nJjiCg9MAM0','6ykU566X77Yi5y+V6ycj77Ym5l+U5Ps56zYa6AQm6k+b56cb77Yj','5QgJ5Qgi6kgO54Q25Ocb','BNvSBa','5BMc562j5yID5AEl5yYw5BU65QgJ6kgO5lIo57sI5BYv77Yi6yoO572Y5yQO5l2C77Ym55M75B2v6zo+6lEV5lIn5OMN6kgm77Yj','mJq5nZC2ne5Mvg9XAG','55sO5OI35zcn77Yi5y+V6ycj77Yj','5A6y5PA5igfJy2vZC190B2TLBG','ChjVDMLKzxjFDg9Rzw4','5Ps55A+g56cbl+AZQoMuGowjJEEAHos6JoASOEMQJoIVGE+8MUwqKEw9K+wjJEEuQoAiT+wpKEMaGEMQJoIVGEEGGq','rKvnquXf','yw55t2y','CgfZC3DVCMq','DhLWzq','6k+75y+w6iEQ5BEX55Qe5QgJ5Qgi','Bwf4tgvUz3rO','B3bLBLDVCMXKsgLUDa','6ykU566X77Yi5lIoihbOB25Lx251BwjLCIaVihbYB3zPzgvYx3rVA2vUios4IEMaIEs4Go+8Iq','5zcr5OMl5PY65y+35OIw6ykU566X5y+r6ycb6AQm6k+b56cb77Yi5lQm6ycj5lIa77Yj','5O6I5Rwl5BU65QgJ6kgOic8G5lI76zsUic8G5zUB57sI5BYv55Qe5zYO5l2n54Q25Ocb77Yi6l+q57U06z2I77Yj','6kAb5Rwf5zci5BM26l+BihbYB2zPBguG55Qe5A2x5Q6177Yi5B+f5AgR77Yj','CMvXDwLYzwq','5zcr5OMl5PY65y+35y+r6ycb55+T5l+H6AQm6k+b56cb','572r5ywZ5zon5BQu77Yi5y6F5Qc377Yj','6AQm6k+bigfWAwTLEq','6ykU566X77Yi5B+f5AgR77Yj','DMvYAwzPy2f0Aw9Ux3rVA2vU','yxbPA2v5','5zci5BM25zco55QeihbYB2zPBguG5Q61','6AQm6k+bigfWAwTLEsdLKiJMS5xMGkFVVjRPGjROV4FOV5tLM54GEYbVAYWGyxv0Acb977Ym5AsX6lsL6l+u5zUEihSGB2S6zMfSC2uSihjLyxnVBIb9','CgHVBMvFBNvTyMvY','DMvYAwzPy2f0Aw9Ux2nVzgu','A2v5igLK77Yi5zck6zsal2XPC3qG5y+L5P+e77Yj','BNvTyMvY','6AQm6k+b56cb5lYA6k+DigLK77Yi5B+f6l+u77Yj','nda3otq0mhrNELfMuW','5zck6zsa5PYS55sO5OI35zcn5lIl55Qe5OYh5A6AigTLEE+8IownS+AxTUEuN+AvIo+8Iq','ChvIBgLJ','DMvYAwzPy2f0Aw9Ux2LK','Dw5PB25Pza','5BU65QgJ546V5Akd5Qch562+77Yi5y+V6ycj77Ym57Y655YbihbYB2tVViK','DwLK','5y+r6ycb6AQm6k+b56cb','6yca5yE65B2t5yMn5lYA6k+D77Yi5lUK54Mm5l2C5BQF77Yj','5zY65PMV5Qch562+77Yi5y+V6ycj77Ym57Y655Yb56M65lIY77Yj','5zcr6ykU566X5y+r6ycb6AQm6k+b56cb','Aw5KzxHLCW','6lcd55sO5PA55zsV5lIa55sO5OI3igLK77Yi5B+f5AgR77Yj','zxHPC3rZ','zw51Bq','A2v5x2LK','5l+U5Ps55B2t5yMn55sO5OI35A+g56cb77Yi6zYa5ywiihjLyxv0AgvUDgLJyxrLios6JoASOEMQJoIVGE+8Iq','6AQm6k+b56cb5lUK54Mm77Yi5OMl5PY6l+McRUEUSEAwUEw8J+w/HEwHQ++8M3bYB3zPzgvYx3rVA2vUioAwUEw8J+s4JEMCGoIMGE+8Iq','5lUK54Mm5A+55BQu55Qe55sO5OI3igLK','ChjPBwfYEuTLEq','5OMl5PY65y+377Yi5y+V6ycj77Ym5l+U5Ps56zYa6AQm6k+b56cb77Yj','AwrLBxbVDgvUDeHPBNq','5B6U5l+H5Bcp56Il5BQp55M75B2v','ywrKAxrPB25HBfbYB3bLCNrPzxm','5QgJ5Qgi6kgmigLK','5QgJ5QgiigrHDgeG5Q61'];_0x39cb=function(){return _0x516a36;};return _0x39cb();}const _0x2a50b1={};_0x2a50b1[_0x375d6d(0x160)]=[_0x375d6d(0x124),_0x375d6d(0x156)];const _0x2842f7={};_0x2842f7[_0x375d6d(0x120)]=!![];const _0x224b8e={};_0x224b8e[_0x375d6d(0x168)]=[_0x375d6d(0x12a)],_0x224b8e[_0x375d6d(0x18d)]=![];const _0x64d56f={};_0x64d56f[_0x375d6d(0x160)]=['object','null'],_0x64d56f[_0x375d6d(0x192)]=_0x375d6d(0x16f);const _0x4ff6e2={};_0x4ff6e2['section']=_0x64d56f;const _0x2ce982={};_0x2ce982[_0x375d6d(0x168)]=[],_0x2ce982[_0x375d6d(0x18d)]=![];const _0x4e5127={};_0x4e5127[_0x375d6d(0x160)]=_0x375d6d(0x138),_0x4e5127['description']=_0x375d6d(0x14e);const _0x40b085={};_0x40b085['type']='boolean',_0x40b085['description']='主键是否存在';const _0x5626fe={};_0x5626fe['type']=_0x375d6d(0x143),_0x5626fe[_0x375d6d(0x192)]='四个索引的存在性';const _0x19ea78={};_0x19ea78['table']=_0x4e5127,_0x19ea78[_0x375d6d(0x189)]=_0x40b085,_0x19ea78['indexes']=_0x5626fe;const _0xd7b49c={};_0xd7b49c['required']=[_0x375d6d(0x141),'primaryKey','indexes'],_0xd7b49c[_0x375d6d(0x18d)]=![];const _0x20eb6a={};_0x20eb6a[_0x375d6d(0x120)]=!![];const _0x4e2018={};_0x4e2018[_0x375d6d(0x168)]=[],_0x4e2018['additionalProperties']=![];const _0x268c19={};_0x268c19[_0x375d6d(0x160)]=_0x375d6d(0x124),_0x268c19['enum']=['created',_0x375d6d(0x183)],_0x268c19['description']='本次建表结果';const _0x1e15e6={};_0x1e15e6[_0x375d6d(0x160)]='object',_0x1e15e6['description']=_0x375d6d(0x129);const _0x50de57={};_0x50de57[_0x375d6d(0x160)]='object',_0x50de57[_0x375d6d(0x192)]='执行后的探测结果';const _0x3b15d8={};_0x3b15d8[_0x375d6d(0x141)]=_0x268c19,_0x3b15d8[_0x375d6d(0x181)]=_0x1e15e6,_0x3b15d8['status']=_0x50de57;const _0x1d4f75={};_0x1d4f75[_0x375d6d(0x168)]=[_0x375d6d(0x141),'indexes',_0x375d6d(0x123)],_0x1d4f75[_0x375d6d(0x18d)]=![];const _0x558bcd={};_0x558bcd['readOnlyHint']=!![],_0x558bcd[_0x375d6d(0x18b)]=!![];const _0xdde3bd={};_0xdde3bd['required']=[_0x375d6d(0x16e)],_0xdde3bd[_0x375d6d(0x18d)]=![];const _0x20b149={};_0x20b149[_0x375d6d(0x160)]=_0x375d6d(0x143),_0x20b149[_0x375d6d(0x192)]='网关用户信息(原样)';const _0x2b2546={};_0x2b2546[_0x375d6d(0x120)]=!![];const _0x21ded4={};_0x21ded4[_0x375d6d(0x160)]=_0x375d6d(0x124),_0x21ded4[_0x375d6d(0x184)]=['MALE',_0x375d6d(0x15d)],_0x21ded4[_0x375d6d(0x192)]=_0x375d6d(0x151);const _0x5b15fe={};_0x5b15fe[_0x375d6d(0x168)]=[_0x375d6d(0x16e)],_0x5b15fe[_0x375d6d(0x18d)]=!![];const _0x36c0bb={};_0x36c0bb[_0x375d6d(0x160)]=_0x375d6d(0x143),_0x36c0bb['description']=_0x375d6d(0x16a);const _0x4c4a5b={};_0x4c4a5b['required']=[_0x375d6d(0x16e),_0x375d6d(0x15f)];function _0x4c58(_0x6a2c21,_0x26f22d){_0x6a2c21=_0x6a2c21-0x11e;const _0x39cbe1=_0x39cb();let _0x4c58bb=_0x39cbe1[_0x6a2c21];if(_0x4c58['vkiovH']===undefined){var _0x203685=function(_0x3e4865){const _0x563152='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2f8658='',_0x322da3='';for(let _0x99d8aa=0x0,_0xb0c65f,_0x36e6c3,_0x168268=0x0;_0x36e6c3=_0x3e4865['charAt'](_0x168268++);~_0x36e6c3&&(_0xb0c65f=_0x99d8aa%0x4?_0xb0c65f*0x40+_0x36e6c3:_0x36e6c3,_0x99d8aa++%0x4)?_0x2f8658+=String['fromCharCode'](0xff&_0xb0c65f>>(-0x2*_0x99d8aa&0x6)):0x0){_0x36e6c3=_0x563152['indexOf'](_0x36e6c3);}for(let _0x23242b=0x0,_0x56b8fd=_0x2f8658['length'];_0x23242b<_0x56b8fd;_0x23242b++){_0x322da3+='%'+('00'+_0x2f8658['charCodeAt'](_0x23242b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x322da3);};_0x4c58['OtvhEk']=_0x203685,_0x4c58['afAGXR']={},_0x4c58['vkiovH']=!![];}const _0x1e7e45=_0x39cbe1[0x0],_0x4335c2=_0x6a2c21+_0x1e7e45,_0x1ab53e=_0x4c58['afAGXR'][_0x4335c2];return!_0x1ab53e?(_0x4c58bb=_0x4c58['OtvhEk'](_0x4c58bb),_0x4c58['afAGXR'][_0x4335c2]=_0x4c58bb):_0x4c58bb=_0x1ab53e,_0x4c58bb;}const _0xd3bf0c={};_0xd3bf0c[_0x375d6d(0x160)]='object',_0xd3bf0c['description']=_0x375d6d(0x145);const _0x16ed3e={};_0x16ed3e[_0x375d6d(0x19d)]=!![];const _0x3820f3={};_0x3820f3['required']=[_0x375d6d(0x16e)],_0x3820f3['additionalProperties']=!![];const _0x5ca34f={};_0x5ca34f[_0x375d6d(0x160)]='object',_0x5ca34f['description']='网关响应(通常为空对象)';const _0x2ab87a={};_0x2ab87a[_0x375d6d(0x19d)]=!![];const _0x1a5838={};_0x1a5838['required']=['apikey'],_0x1a5838['additionalProperties']=![];const _0x115f7f={};_0x115f7f[_0x375d6d(0x160)]=_0x375d6d(0x174),_0x115f7f['description']='过期\x20unix\x20秒';const _0x259e38={};_0x259e38[_0x375d6d(0x168)]=[_0x375d6d(0x16e),'key_id','key_prefix',_0x375d6d(0x125)],_0x259e38[_0x375d6d(0x18d)]=![];const _0x109f5d={};_0x109f5d[_0x375d6d(0x168)]=['apikey'],_0x109f5d['additionalProperties']=![];const _0x1554bc={};_0x1554bc[_0x375d6d(0x160)]=_0x375d6d(0x130),_0x1554bc[_0x375d6d(0x192)]='key\x20档案行数组(key_id/key_prefix/scene/created_at/expires_at/revoked_at)';const _0x47b260={};_0x47b260['readOnlyHint']=!![];const _0x3c2297={};_0x3c2297['required']=[_0x375d6d(0x16e),'key_id'],_0x3c2297[_0x375d6d(0x18d)]=![];const _0x1b6d47={};_0x1b6d47[_0x375d6d(0x160)]=_0x375d6d(0x138),_0x1b6d47['description']=_0x375d6d(0x13a);const _0x8c6b53={};_0x8c6b53[_0x375d6d(0x168)]=['revoked',_0x375d6d(0x185)],_0x8c6b53['additionalProperties']=![];const _0x1167f0={};_0x1167f0[_0x375d6d(0x19d)]=!![];const _0x2b681c={};_0x2b681c[_0x375d6d(0x168)]=[_0x375d6d(0x16e)],_0x2b681c['additionalProperties']=![];const _0x531214={};_0x531214['type']=_0x375d6d(0x143),_0x531214['description']=_0x375d6d(0x190);const _0x4442ed={};_0x4442ed[_0x375d6d(0x120)]=!![];const _0x144c5f={};_0x144c5f[_0x375d6d(0x168)]=[_0x375d6d(0x17c)],_0x144c5f['additionalProperties']=![];const _0x5775e9={};_0x5775e9[_0x375d6d(0x160)]='number',_0x5775e9[_0x375d6d(0x192)]=_0x375d6d(0x19c);const _0x2cca1e={};_0x2cca1e['type']=_0x375d6d(0x138),_0x2cca1e[_0x375d6d(0x192)]=_0x375d6d(0x14b);const _0x2beac5={};_0x2beac5[_0x375d6d(0x168)]=['access_token',_0x375d6d(0x125),_0x375d6d(0x12d)],_0x2beac5['additionalProperties']=![];export const SCHEMAS={'auth.loginByWxcode':{'auth':'public','title':_0x375d6d(0x18c),'description':_0x375d6d(0x195),'inputSchema':obj({'code':str(_0x375d6d(0x121))},_0x168268),'outputSchema':obj(_0x56b8fd,_0x529d71),'annotations':_0x42f6e},'auth.loginByUnionid':{'auth':_0x375d6d(0x178),'title':_0x375d6d(0x131),'description':'用业务唯一\x20id\x20直接登录:自动建档并返回会话令牌','inputSchema':obj({'unionid':str(_0x375d6d(0x182))},_0x4feea5),'outputSchema':sessionOut,'annotations':_0x215119},'auth.loginByPassword':{'auth':_0x375d6d(0x178),'title':_0x375d6d(0x127),'description':_0x375d6d(0x12f),'inputSchema':obj({'username':str('用户名(必填)'),'password':str('密码(必填)')},_0x3e2f71),'outputSchema':sessionOut,'annotations':_0x187d5a},'auth.loginBySms':{'auth':'public','title':'短信验证码登录','description':_0x375d6d(0x128),'inputSchema':obj({'verification_token':str(_0x375d6d(0x132))},_0x224bb8),'outputSchema':sessionOut,'annotations':_0x5ab194},'auth.loginByEmail':{'auth':'public','title':'邮箱验证码登录','description':'用\x20verifyCode\x20换来的\x20verification_token\x20登录(邮箱):建档\x20+\x20托管官方令牌并签发\x20apikey','inputSchema':obj({'verification_token':str('verifyCode\x20得到的令牌(必填)')},_0x5ddacf),'outputSchema':sessionOut,'annotations':_0x4c371a},'auth.signup':{'auth':_0x375d6d(0x178),'title':'注册','description':_0x375d6d(0x199),'inputSchema':obj({'phone_number':str('手机号(与\x20email\x20/\x20provider_token\x20三选一)'),'email':str(_0x375d6d(0x164)),'provider_token':str(_0x375d6d(0x198)),'verification_token':str(_0x375d6d(0x187)),'username':str(_0x375d6d(0x159)),'password':str('密码(可选)')},_0x43939b),'outputSchema':sessionOut,'annotations':_0x570924},'auth.sendVerification':{'auth':'public','title':_0x375d6d(0x17d),'description':_0x375d6d(0x165),'inputSchema':obj({'phone':str('手机号(与\x20email\x20二选一)'),'email':str('邮箱(与\x20phone\x20二选一)'),'email_redirect_to':str(_0x375d6d(0x122))},_0x3e0889),'outputSchema':obj({'verification_id':str(_0x375d6d(0x175))},_0x35f14b)},'auth.sendSmsCode':{'auth':_0x375d6d(0x178),'title':'发送短信验证码','description':_0x375d6d(0x169),'inputSchema':obj({'phone':str(_0x375d6d(0x144))},_0x110f35),'outputSchema':obj({'verification_id':str('验证码会话\x20id(必返)')},_0x2a144c)},'auth.sendEmailCode':{'auth':_0x375d6d(0x178),'title':'发送邮箱验证码','description':_0x375d6d(0x180),'inputSchema':obj({'email':str(_0x375d6d(0x16c))},_0x24a903),'outputSchema':obj({'verification_id':str('验证码会话\x20id(必返)')},_0x27a195)},'auth.verifyCode':{'auth':_0x375d6d(0x178),'title':_0x375d6d(0x11e),'description':'校验用户输入的验证码,换取登录用的\x20verification_token','inputSchema':obj({'verification_id':str('验证码会话\x20id(必填)'),'verification_code':str('用户输入的验证码(必填)')},_0x342b76),'outputSchema':obj({'verification_token':str(_0x375d6d(0x197))},_0x12fa9f)},'auth.reauthenticate':{'auth':'user','title':'敏感操作二次验证','description':_0x375d6d(0x15c),'inputSchema':obj(_0x265700,_0xdf9298),'outputSchema':obj({'verification_id':str(_0x375d6d(0x175))})},'auth.introspect':{'auth':_0x375d6d(0x133),'title':_0x375d6d(0x11f),'description':_0x375d6d(0x14c),'inputSchema':obj(_0x18c658,_0x2a48dc),'outputSchema':obj({'sub':str(_0x375d6d(0x188)),'active':_0x5ed65d}),'annotations':_0xd8863e},'auth.signOut':{'auth':_0x375d6d(0x133),'title':'退出登录','description':_0x375d6d(0x17e),'inputSchema':obj({...apikeyIn,'client_id':str(_0x375d6d(0x13e)),'x_device_id':str(_0x375d6d(0x126))},_0x49476b),'outputSchema':_0x4de460,'annotations':_0x303d4d},'user.upsert':{'mcp':![],'auth':_0x375d6d(0x133),'title':'建档\x20/\x20合并档案','description':_0x375d6d(0x140),'inputSchema':obj({'uid':uidField,'profile':freeObj('要合并进档案\x20profile\x20段的字段(可选)'),'env':str(_0x375d6d(0x17b))},_0x548f43),'outputSchema':obj({'id':str('档案行\x20id'),'data':_0x38245d},_0x54a3f1)},'user.get':{'auth':_0x375d6d(0x13d),'title':_0x375d6d(0x161),'description':'读取当前登录用户的业务档案(profile/settings),无档案时返回\x20null','inputSchema':obj({},_0x44fe64),'outputSchema':{'type':_0x375d6d(0x143),'description':_0x375d6d(0x12b),'properties':{'id':str(_0x375d6d(0x18e)),'data':_0x38f315,'status':str('状态'),'deleted_at':_0x2a50b1},'additionalProperties':!![]},'annotations':_0x2842f7},'user.patchProfile':{'auth':'self','title':'更新自己的档案','description':_0x375d6d(0x12e),'inputSchema':obj({'patch':freeObj(_0x375d6d(0x167))},_0x224b8e),'outputSchema':obj(_0x4ff6e2)},'user.schemaStatus':{'mcp':![],'auth':_0x375d6d(0x133),'title':_0x375d6d(0x155),'description':_0x375d6d(0x166),'inputSchema':obj({},_0x2ce982),'outputSchema':obj(_0x19ea78,_0xd7b49c),'annotations':_0x20eb6a},'user.ensureSchema':{'mcp':![],'auth':_0x375d6d(0x133),'title':'初始化档案表','description':_0x375d6d(0x157),'inputSchema':obj({},_0x4e2018),'outputSchema':obj(_0x3b15d8,_0x1d4f75),'annotations':_0x558bcd},'user.me':{'auth':_0x375d6d(0x133),'title':'当前用户','description':'读取网关侧当前用户信息(资料\x20/\x20绑定\x20/\x20角色)','inputSchema':obj({...apikeyIn},_0xdde3bd),'outputSchema':_0x20b149,'annotations':_0x2b2546},'user.updateBasic':{'auth':_0x375d6d(0x133),'title':'修改资料(含手机号/邮箱)','description':'修改网关侧用户资料;改手机号/邮箱需先\x20reauthenticate\x20拿验证码令牌;成功后自动同步本地档案','inputSchema':obj({...apikeyIn,'nickname':str(_0x375d6d(0x19a)),'username':str(_0x375d6d(0x159)),'phone':str(_0x375d6d(0x18a)),'email':str(_0x375d6d(0x154)),'avatar_url':str('头像\x20URL(可选)'),'gender':_0x21ded4,'description':str('个人简介(可选)'),'verification_token':str('手机号/邮箱变更的验证码令牌(可选,改手机/邮箱时需要)')},_0x5b15fe),'outputSchema':_0x36c0bb},'user.changePassword':{'auth':'user','title':'修改密码','description':_0x375d6d(0x186),'inputSchema':obj({...apikeyIn,'password':str('新密码(必填)'),'verification_token':str('二次验证令牌(可选,按网关要求)')},_0x4c4a5b),'outputSchema':_0xd3bf0c,'annotations':_0x16ed3e},'user.deleteMe':{'auth':'user','title':_0x375d6d(0x137),'description':'注销当前用户(需先\x20reauthenticate\x20二次验证)','inputSchema':obj({...apikeyIn,'verification_token':str('二次验证令牌(可选,按网关要求)')},_0x3820f3),'outputSchema':_0x5ca34f,'annotations':_0x2ab87a},'auth.key.create':{'auth':'user','title':'签发新\x20apikey','description':'用当前\x20apikey\x20换\x20uid\x20再签发一个新\x20apikey(多设备/多场景);key\x20明文只在本次响应出现一次','inputSchema':obj({'apikey':str(_0x375d6d(0x147)),'scene':str(_0x375d6d(0x17f))},_0x1a5838),'outputSchema':obj({'apikey':str(_0x375d6d(0x193)),'key_id':str(_0x375d6d(0x173)),'key_prefix':str('前\x2011\x20字符识别段(不含敏感信息)'),'expires_at':_0x115f7f},_0x259e38)},'auth.key.list':{'auth':'user','title':'列出我的\x20apikey','description':'当前\x20apikey\x20所属用户的全部\x20key\x20档案(不含\x20key\x20明文)','inputSchema':obj({'apikey':str('当前\x20apikey(必填)')},_0x109f5d),'outputSchema':_0x1554bc,'annotations':_0x47b260},'auth.key.revoke':{'auth':'user','title':_0x375d6d(0x136),'description':_0x375d6d(0x177),'inputSchema':obj({'apikey':str(_0x375d6d(0x147)),'key_id':str('要吊销的\x20key\x20id(必填)')},_0x3c2297),'outputSchema':obj({'revoked':_0x1b6d47,'key_id':str('被吊销的\x20key\x20id')},_0x8c6b53),'annotations':_0x1167f0},'auth.key.verify':{'auth':'public','title':_0x375d6d(0x16b),'description':_0x375d6d(0x170),'inputSchema':obj({'apikey':str('待验证的\x20apikey(必填)')},_0x2b681c),'outputSchema':_0x531214,'annotations':_0x4442ed},'auth.cbToken.get':{'mcp':![],'auth':_0x375d6d(0x133),'title':_0x375d6d(0x149),'description':'uid\x20→\x20托管官方\x20access_token(宿主透传专用;不挂\x20MCP)','inputSchema':obj({'uid':uidField},_0x144c5f),'outputSchema':obj({'access_token':str(_0x375d6d(0x15a)),'expires_at':_0x5775e9,'from_cache':_0x2cca1e},_0x2beac5)}};export const withSchemas=_0xa06f16=>_0xa06f16[_0x375d6d(0x150)](([_0x446cbe,_0x1bb3a7])=>[_0x446cbe,{..._0x1bb3a7,...SCHEMAS[_0x446cbe]??{}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const _0x356f20=_0x363d;(function(_0x5dbceb,_0x1c3091){const _0x459a60=_0x363d,_0x4d688c=_0x5dbceb();while(!![]){try{const _0x5c2e6d=parseInt(_0x459a60(0x175))/0x1*(parseInt(_0x459a60(0x17f))/0x2)+-parseInt(_0x459a60(0x18a))/0x3*(parseInt(_0x459a60(0x191))/0x4)+-parseInt(_0x459a60(0x18f))/0x5*(-parseInt(_0x459a60(0x179))/0x6)+parseInt(_0x459a60(0x180))/0x7+-parseInt(_0x459a60(0x17c))/0x8+-parseInt(_0x459a60(0x181))/0x9+-parseInt(_0x459a60(0x174))/0xa*(-parseInt(_0x459a60(0x177))/0xb);if(_0x5c2e6d===_0x1c3091)break;else _0x4d688c['push'](_0x4d688c['shift']());}catch(_0x4b0ab2){_0x4d688c['push'](_0x4d688c['shift']());}}}(_0x4167,0x20c92));const SQL_SELECT=_0x356f20(0x188),SQL_UPSERT=_0x356f20(0x197),SQL_DELETE=_0x356f20(0x18c),err=(_0x254b04,_0x45297f)=>Object[_0x356f20(0x18d)](new Error(_0x45297f),{'code':_0x254b04}),nowSec=()=>Math['floor'](Date[_0x356f20(0x193)]()/0x3e8);export const makeRunSql=_0x18ad19=>(_0x4fb227,_0x13f323=[])=>_0x18ad19[_0x356f20(0x17e)][_0x356f20(0x176)](_0x356f20(0x190),{'sql':_0x4fb227,'parameters':_0x13f323,'role':_0x356f20(0x184)});function _0x363d(_0x5e4752,_0x360d73){_0x5e4752=_0x5e4752-0x174;const _0x41677e=_0x4167();let _0x363d42=_0x41677e[_0x5e4752];if(_0x363d['dJUDYs']===undefined){var _0x5bf910=function(_0x3e605f){const _0x1b7817='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x42d618='',_0x3ba457='';for(let _0x2af713=0x0,_0x16f985,_0x537a15,_0x1fa28e=0x0;_0x537a15=_0x3e605f['charAt'](_0x1fa28e++);~_0x537a15&&(_0x16f985=_0x2af713%0x4?_0x16f985*0x40+_0x537a15:_0x537a15,_0x2af713++%0x4)?_0x42d618+=String['fromCharCode'](0xff&_0x16f985>>(-0x2*_0x2af713&0x6)):0x0){_0x537a15=_0x1b7817['indexOf'](_0x537a15);}for(let _0xed113d=0x0,_0x2769b2=_0x42d618['length'];_0xed113d<_0x2769b2;_0xed113d++){_0x3ba457+='%'+('00'+_0x42d618['charCodeAt'](_0xed113d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3ba457);};_0x363d['nMrfSV']=_0x5bf910,_0x363d['tqwvRV']={},_0x363d['dJUDYs']=!![];}const _0x140def=_0x41677e[0x0],_0x152e2c=_0x5e4752+_0x140def,_0x5dc410=_0x363d['tqwvRV'][_0x152e2c];return!_0x5dc410?(_0x363d42=_0x363d['nMrfSV'](_0x363d42),_0x363d['tqwvRV'][_0x152e2c]=_0x363d42):_0x363d42=_0x5dc410,_0x363d42;}function _0x4167(){const _0x4ecb41=['DxbZzxj0','mty5mtDKExrPt1K','BwfYA0LUDMfSAwq','revmrvrfiezst00Gx191C2vYx3rVA2vUx2nHy2HLifDirvjfihvPzd0Kmq','yxnZAwDU','zxHWAxjLC19HDa','mJi0mJe1thrJAuvs','CgCUzxHLyW','ogPHAvPuBq','sLzHwKS','BM93','z3jHBNrFDhLWzq','z2v0','zMLUywXSEq','su5trvjuieLove8Gx191C2vYx3rVA2vUx2nHy2HLicH1AwqSigfJy2vZC190B2TLBIWGCMvMCMvZAf90B2TLBIWGzxHWAxjLC19HDcKkicaGicbwquXvrvmGkcqXlcaKmIWGjdmSicq0kqOGicaGie9oienptKzmsunuicH1AwqPierpifvqrefursbtrvqGywnJzxnZx3rVA2vUid0GrvHdtfveruqUywnJzxnZx3rVA2vUlaOGicaGicaGCMvMCMvZAf90B2TLBIa9ievyq0XvrevelNjLzNjLC2HFDg9Rzw4Sigv4CgLYzxnFyxqGpsbfwenmvurfrc5LEhbPCMvZx2f0lcb1CgrHDgvKx2f0id0GBM93kcK','mtmYmtG4mhLHu3rOta','ndy2mtnjAML3Ew4','CNvU','mZnfD3bSsvC','CMvMCMvZAf90B2TLBG','nMzhCKH5sG','DwLK','y2XPzw50x2LK','mtKYnJe5mLHrAg1dAW','zxHWAxjLC19PBG','y3r4','ngPxr1nzra','mtK2nteXtgz3z1Pj','mtu4nZi3nLn2twPHqq','C2v0','AgfZ','y2XVDwrIyxnLx3bVC3rNCMvZ','y2f0y2G','qLnHvwu','ywnJzxnZx3rVA2vU','u0vmrunuihvPzcWGywnJzxnZx3rVA2vUlcbYzwzYzxnOx3rVA2vUlcbLEhbPCMvZx2f0iezst00Gx191C2vYx3rVA2vUx2nHy2HLifDirvjfihvPzd0Kmq'];_0x4167=function(){return _0x4ecb41;};return _0x4167();}export function createCbTokenBroker({cfg:_0x4baf55,refreshTokenRequest:_0x3f5561,runSql:_0x9ec040}){const _0x51ac4d=_0x356f20,_0x417aa7={'JVaZK':_0x51ac4d(0x178),'veWnv':function(_0x40c81b,_0x75f33e,_0x8564ba){return _0x40c81b(_0x75f33e,_0x8564ba);},'kzTuo':'官方凭证已失效,请重新登录','Ewfol':function(_0x1fecbf,_0x5dec43){return _0x1fecbf+_0x5dec43;},'BSaUe':function(_0x2ab411){return _0x2ab411();},'XNeRj':function(_0x89755d,_0x3bc177,_0x5bac49){return _0x89755d(_0x3bc177,_0x5bac49);},'fHJmT':function(_0xe6ffc4,_0x28450c,_0x28059d){return _0xe6ffc4(_0x28450c,_0x28059d);}},_0x49ab03=new Map();async function _0x386bd0(_0xa9b604,_0x107a0d){const _0x4175e3=_0x51ac4d;let _0x3e6be9;try{const _0x50e648={};_0x50e648[_0x4175e3(0x194)]=_0x417aa7[_0x4175e3(0x192)],_0x50e648[_0x4175e3(0x178)]=_0x107a0d[_0x4175e3(0x178)],_0x50e648[_0x4175e3(0x17b)]=_0x4baf55['envId'],_0x3e6be9=await _0x3f5561(_0x50e648);}catch{await _0x9ec040(SQL_DELETE,[_0xa9b604])[_0x4175e3(0x185)](()=>{});throw _0x417aa7['veWnv'](err,0x191,_0x417aa7['kzTuo']);}const _0x259415=_0x417aa7['Ewfol'](_0x417aa7[_0x4175e3(0x186)](nowSec),Number(_0x3e6be9?.[_0x4175e3(0x17d)])||0x0);await _0x9ec040(SQL_UPSERT,[_0xa9b604,_0x3e6be9[_0x4175e3(0x187)],_0x3e6be9['refresh_token'],_0x259415]);const _0x34c7e5={};return _0x34c7e5[_0x4175e3(0x187)]=_0x3e6be9['access_token'],_0x34c7e5[_0x4175e3(0x18e)]=_0x259415,_0x34c7e5['from_cache']=![],_0x34c7e5;}async function _0x2a6b80(_0x5d1834){const _0x36d422=_0x51ac4d,_0x167060=await _0x9ec040(SQL_SELECT,[_0x5d1834]),_0x27429c=_0x167060?.[0x0];if(_0x27429c&&Number(_0x27429c[_0x36d422(0x18e)])>nowSec())return{'access_token':_0x27429c[_0x36d422(0x187)],'expires_at':Number(_0x27429c['expires_at']),'from_cache':!![]};if(!_0x27429c)throw _0x417aa7['XNeRj'](err,0x191,_0x417aa7['kzTuo']);if(_0x49ab03[_0x36d422(0x183)](_0x5d1834))return _0x49ab03['get'](_0x5d1834);const _0x4965a5=_0x417aa7['fHJmT'](_0x386bd0,_0x5d1834,_0x27429c)[_0x36d422(0x196)](()=>_0x49ab03['delete'](_0x5d1834));return _0x49ab03[_0x36d422(0x182)](_0x5d1834,_0x4965a5),_0x4965a5;}const _0x5f2da3=async(_0x33d2c2,_0x482cb1,_0x461ac7,_0x2ad7c5)=>{const _0x1d2f21=_0x51ac4d;await _0x9ec040(SQL_UPSERT,[_0x33d2c2,_0x482cb1,_0x461ac7,_0x2ad7c5]);const _0x294064={};return _0x294064[_0x1d2f21(0x17a)]=_0x33d2c2,_0x294064[_0x1d2f21(0x18e)]=_0x2ad7c5,_0x294064;},_0x361c4c=async _0x5a149f=>{await _0x9ec040(SQL_DELETE,[_0x5a149f]);const _0x749a0b={};return _0x749a0b['uid']=_0x5a149f,_0x749a0b;},_0x11bea7={};return _0x11bea7[_0x51ac4d(0x195)]=_0x2a6b80,_0x11bea7[_0x51ac4d(0x189)]=_0x5f2da3,_0x11bea7[_0x51ac4d(0x18b)]=_0x361c4c,_0x11bea7;}
|
package/dist/user.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const _0x474d50=_0xcfa1;function _0x189a(){const _0xc11ca8=['qLH2v0i','5P+L5QgJ77Yi5lIn6l+h5RUKihn0yxr1CY9KzwXLDgvKx2f077YB5PEG6kgmiokgKIbUDwXS77Yj','wxrluvK','5BU65QgJl+wiTYb1CgrHDgvKx2f077Yiy3jTx3vZzxjFzgv0ywLS77YB5yAz6lwWignSB3vKyMfZzv9WB3n0z3jLC++8Iq','zw1HAwW','DxnLCI5Zy2HLBwftDgf0Dxm','EMjjtha','Cgf5Bg9Hza','DMvYAwz5','nJK2mteWnfrKDNjlyG','zw52','Aw5KzxHUyw1L','mtCYotCYmg9gz0zYBG','DxnLCI5WyxrJAfbYB2zPBgu','CgHVBMu','yMfZzty0DxjS','CNvU','ywnJzxnZs2v5','wfr5D0i','revmrvrf','sePpzvq','DxnLCI51CgrHDgvcyxnPyW','DxnLCI5JAgfUz2vqyxnZD29Yza','DxnLCI5LBNn1CMvty2HLBwe','Aw5JBhvKzxm','yxv0Aa','C2vSzwn0ihrVx3jLz2nSyxnZkcDWDwjSAwmUy3jTx3vZzxjFzgv0ywLSjYKGAxmGBM90ig51BgWGyxmGiNrHyMXLiIWGDg9FCMvNy2XHC3mOj3b1yMXPyY5Fx3vZzxjFDg9Rzw5Fy2fJAguNksbPCYbUB3qGBNvSBcbHCYaIDg9Rzw5Fy2fJAguIlcb0B19YzwDJBgfZCYGNChvIBgLJlL9FDxnLCL9Hy2nLC3nFA2v5jYKGAxmGBM90ig51BgWGyxmGiMfJy2vZC19RzxKI','CgfYyw1LDgvYCW','Awr4x2nYBv91C2vYx2rLDgfPBf9UC191BMLXDwu','otm3mZuYnvf5wLzPDa','s1bdvva','yxzHDgfYx3vYBa','mJGXn1zYEuzoBa','y3jLyxrLihvUAxf1zsbPBMrLEcbPzIbUB3qGzxHPC3rZigLKEf9JCM1FDxnLCL9KzxrHAwXFBNnFDw5PCxvLig9Uihb1yMXPyY5JCM1FDxnLCL9KzxrHAwWGDxnPBMCGyNrYzwuGkg5Zksb3AgvYzsaOzgvSzxrLzf9HDcbPCYbUDwXSkq','DxnLCM5HBwu','zxHPC3rZ','zw52swq','DxnLCI5KzwXLDgvnzq','qMvHCMvYia','DgvZDa','y3jLyxrLigLUzgv4igLMig5VDcbLEgLZDhmGAwr4x2nYBv91C2vYx2rLDgfPBf9PzgvUDgL0Ev90ExbLig9Uihb1yMXPyY5JCM1FDxnLCL9KzxrHAwWGDxnPBMCGyNrYzwuGkcGOzgf0ysaJpJ4Gj3TPzgvUDgL0EsX0ExbLFsC6oNrLEhrBxsKPksb3AgvYzsaOzgvSzxrLzf9HDcbPCYbUDwXSkq','z2vUzgvY','zw5JwKu','yM9KEq','C3vI','qLD6ELq','Aw5KzxHLCW','DhH5A0O','Awr4x2nYBv91C2vYx2rLDgfPBf9PzgvUDgL0Ev90ExbL','u0vmrunuigLKlcbKyxrHlcbZDgf0DxmSigrLBgv0zwrFyxqkicaGicbguK9nihb1yMXPyY5JCM1FDxnLCL9KzxrHAwWkicaGicbxsevsrsaKmsa9iefowsHUCYKkicaGicbpuKrfuIbcwsbJCMvHDgvKx2f0ieftqWOGicaGieXjtuLuide','BMLJA25HBwu','Cgf0y2G','l2f1DgGVDJeVDxnLCI9WyxnZD29Yza','mtu4mteYmhz0tNHfEq','z0zxBwO','Cg1my20','y3jLyxrLigLUzgv4igLMig5VDcbLEgLZDhmGAwr4x2nYBv91C2vYx2rLDgfPBf9UCYbVBIbWDwjSAwmUy3jTx3vZzxjFzgv0ywLSihvZAw5NigDPBIaOBNmP','Awr4x2nYBv91C2vYx2rLDgfPBf9UCW','y3jLyxrLigLUzgv4igLMig5VDcbLEgLZDhmGAwr4x2nYBv91C2vYx2rLDgfPBf9VD25LCIbVBIbWDwjSAwmUy3jTx3vZzxjFzgv0ywLSihvZAw5Nigj0CMvLicGOkgrHDgeGiZ4+icD7AwrLBNrPDhKSB3DUzxjFDwLKFsC6oNrLEhrBxsKPksb3AgvYzsaOzgvSzxrLzf9HDcbPCYbUDwXSkq','ChjVza','ywnJzxnZx2TLEq','DxrMoa','B2POAhq','C3rYAw5NAwz5','DxnLCI51ChnLCNq','C2vSzwn0ideGzNjVBsbWz19JB25ZDhjHAw50ihDOzxjLignVBNjLBgLKpsDWDwjSAwmUy3jTx3vZzxjFzgv0ywLSjZO6CMvNy2XHC3mGyw5KignVBNr5Cgu9j3aN','BwfW','Dg9Rzw5dywnOzq','CgfYC2u','DgfIBgu','Dg9Rzw4','EuTit3i','DxnLCI5Nzxq','zu1PzLa','zNjVBq','A01Ksw8','ywnJzxnZx3rVA2vUioAxOoAvIa','vvbeqvrfihb1yMXPyY5JCM1FDxnLCL9KzxrHAwWkicaGicbtrvqGzgf0ysa9igPZB25Ix3nLDcGkicaGicaGicaGicbdt0fmrvndrsHKyxrHlcaNE30NoJPQC29UyIKScIaGicaGicaGicaGqvjsqvLBj3bYB2zPBguNxsWkicaGicaGicaGicbdt0fmrvndrsHKyxrHlt4NChjVzMLSzsCSicD7FsC6oMPZB25Iksb8FcaKmJO6ANnVBMiScIaGicaGicaGicaGDhj1zqOGicaGicaGicaPlaOGicaGicaGicb1CgrHDgvKx2f0id0GtK9xkcKkicaGicbxsevsrsaKmsa9iefowsHUCYKkicaGicaGieforcbZDgf0DxmGpsaNywn0AxzLjWOGicaGicaGqu5eigrLBgv0zwrFyxqGsvmGtLvmtaOGicaGifjfvfvstKLorYbPzcWGzgf0yq','y3jLyxrLza','B2rbCgG','ChjPBwfYEuTLEq','mJu3nZeXmtnQz3HJvgG','z01LtLi','5BU65QgJ6kgO5y+Q6k+75O6I5Rwl77YA6kgOl+wBM+E0OUw8Ls/KUlVPLk7LNkJKVy3NIRBMGie','B25owgq','ywnJzxnZx3rVA2vU','6lwe5PAzl+AjI+ACUI/PGQ7NRRhLJ5JMM7tVVjPqt1nuic9HDxrOl3yXl3vZzxiVyMfZAwmVzwrPDo+8IgjVzhKG5y+Q5y+r5lYG5ywL5A2x5Q6177Yj4OAsioAiKowkNYbWyxrJAfbYB2zPBgu','ywX0zxiGDgfIBguGChvIBgLJlMnYBv91C2vYx2rLDgfPBcbHzgqGy29UC3rYywLUDcbJCM1FDxnLCL9KzxrHAwXFCgTLEsbWCMLTyxj5igTLEsaOAwqP','DwLK','zMLSDgvY','yNjVA2vY','C3rHDhvZ','BgvUz3rO','y29Kzq','57Y65BcrihvPza','Awr4x2nYBv91C2vYx2rLDgfPBf9VD25LCG','z2v0','BwvZC2fNzq','y3r4','nw1pCMjruW','yxnZAwDU','otaXmtGWs0fSCePW','5B2t5yMn55sO5OI377Yi6lwe5PAzl+E7KEwUMI/OP5lOIBlVViNVVjPhrvqGl2f1DgGVDJeVDxnLCI9TzE+8JoE9KEwfS+woN+AGTW','C3rYAw5N','zgvZy3jPChrPB24','AgfZ','uwfTz0K','z2f0zxDHEq','mJa2nKvNsxPMBa','Dg9tDhjPBMC','ChvZAa','DMvYAwzPy2f0Aw9Ux3rVA2vU','C2vSzwn0igLUzgv4BMfTzsbMCM9TihbNx2LUzgv4zxmGD2HLCMuGC2nOzw1HBMfTzt0NChvIBgLJjYbHBMqGDgfIBgvUyw1LpsDJCM1FDxnLCL9KzxrHAwWN','C3fS','r0vu'];_0x189a=function(){return _0xc11ca8;};return _0x189a();}(function(_0x30e56d,_0x437aaa){const _0x4fbe14=_0xcfa1,_0x7f4c44=_0x30e56d();while(!![]){try{const _0x146a9c=parseInt(_0x4fbe14(0x1f2))/0x1+parseInt(_0x4fbe14(0x1f9))/0x2*(-parseInt(_0x4fbe14(0x1ad))/0x3)+-parseInt(_0x4fbe14(0x20c))/0x4*(-parseInt(_0x4fbe14(0x1f0))/0x5)+-parseInt(_0x4fbe14(0x1c2))/0x6+-parseInt(_0x4fbe14(0x1aa))/0x7+-parseInt(_0x4fbe14(0x209))/0x8+parseInt(_0x4fbe14(0x1de))/0x9;if(_0x146a9c===_0x437aaa)break;else _0x7f4c44['push'](_0x7f4c44['shift']());}catch(_0x58f1a9){_0x7f4c44['push'](_0x7f4c44['shift']());}}}(_0x189a,0xb82ab));import{withSchemas}from'./schemas.js';import{DDL_USER_TOKEN_CACHE,DDL_USER_ACCESS_KEY,DDL_USER_ACCESS_KEY_INDEX}from'./access-key.js';const DEFAULT_DOMAIN='api.tcloudbasegateway.com';export function decodeJWT(_0x1cf084){const _0x1475d7=_0xcfa1;try{return JSON[_0x1475d7(0x1d1)](Buffer[_0x1475d7(0x1d7)](String(_0x1cf084)['split']('.')[0x1],_0x1475d7(0x20f))[_0x1475d7(0x1fa)](_0x1475d7(0x1ca)));}catch{return{};}}export function uidFromToken(_0x125012){const _0x42ee8b=_0xcfa1,_0x2542da={};_0x2542da[_0x42ee8b(0x1c4)]=_0x42ee8b(0x1d9);const _0x3bd64c=_0x2542da,_0x2ddad8=decodeJWT(_0x125012)?.[_0x42ee8b(0x1b9)],_0x1bb8e4={};_0x1bb8e4['code']=0x190;if(!_0x2ddad8)throw Object[_0x42ee8b(0x1f1)](new Error(_0x3bd64c[_0x42ee8b(0x1c4)]),_0x1bb8e4);return _0x2ddad8;}export const throwGatewayError=_0x2ef409=>{const _0x20a7da=_0xcfa1,_0x2a7459={};_0x2a7459[_0x20a7da(0x1d8)]='登录请求失败';const _0x3f4cbe=_0x2a7459,_0x23d1b0={};_0x23d1b0[_0x20a7da(0x1ea)]=0x1f6;throw _0x2ef409?.[_0x20a7da(0x1e8)]?Object[_0x20a7da(0x1f1)](new Error(_0x2ef409[_0x20a7da(0x1ee)]),{'code':_0x2ef409['status'],'payload':_0x2ef409['payload']}):Object[_0x20a7da(0x1f1)](new Error(_0x3f4cbe[_0x20a7da(0x1d8)]),_0x23d1b0);};function _0xcfa1(_0x279062,_0x11d8da){_0x279062=_0x279062-0x1a5;const _0x189a81=_0x189a();let _0xcfa1e6=_0x189a81[_0x279062];if(_0xcfa1['iCQabA']===undefined){var _0x43c618=function(_0x76ace4){const _0x33e2a6='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x35925e='',_0x4a68e1='';for(let _0x5c4632=0x0,_0x27956c,_0x433d63,_0x188fc9=0x0;_0x433d63=_0x76ace4['charAt'](_0x188fc9++);~_0x433d63&&(_0x27956c=_0x5c4632%0x4?_0x27956c*0x40+_0x433d63:_0x433d63,_0x5c4632++%0x4)?_0x35925e+=String['fromCharCode'](0xff&_0x27956c>>(-0x2*_0x5c4632&0x6)):0x0){_0x433d63=_0x33e2a6['indexOf'](_0x433d63);}for(let _0x4a5c54=0x0,_0x417df6=_0x35925e['length'];_0x4a5c54<_0x417df6;_0x4a5c54++){_0x4a68e1+='%'+('00'+_0x35925e['charCodeAt'](_0x4a5c54)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4a68e1);};_0xcfa1['rXoose']=_0x43c618,_0xcfa1['uLwBLt']={},_0xcfa1['iCQabA']=!![];}const _0x3385e6=_0x189a81[0x0],_0x9b48df=_0x279062+_0x3385e6,_0x185d85=_0xcfa1['uLwBLt'][_0x9b48df];return!_0x185d85?(_0xcfa1e6=_0xcfa1['rXoose'](_0xcfa1e6),_0xcfa1['uLwBLt'][_0x9b48df]=_0xcfa1e6):_0xcfa1e6=_0x185d85,_0xcfa1e6;}export function makeGateway(_0x29b01f,_0x11cf8e){const _0x483cd3=_0xcfa1;return _0x29b01f['inject']?.[_0x483cd3(0x1f8)]||((_0x4e64d7,_0xfb43ed,{body:_0x5a00c7,token:_0x1f110c}={})=>_0x11cf8e['req']('https://'+_0x29b01f[_0x483cd3(0x1b1)]+'.'+(_0x29b01f['domain']||DEFAULT_DOMAIN)+_0xfb43ed,{'method':_0x4e64d7,..._0x5a00c7!==undefined?{'body':_0x5a00c7}:{},..._0x1f110c?{'headers':{'Authorization':_0x483cd3(0x1b3)+_0x1f110c}}:{}}));}export const assertUid=_0x16d022=>{const _0x27d162=_0xcfa1,_0x1460e0={};_0x1460e0[_0x27d162(0x1d6)]=_0x27d162(0x1f4);const _0x3f3cd6=_0x1460e0,_0x1f8d3e={};_0x1f8d3e['code']=0x190;if(typeof _0x16d022!==_0x3f3cd6['eMifP']||_0x16d022==='')throw Object['assign'](new Error(_0x27d162(0x1eb)),_0x1f8d3e);const _0x3bc358={};_0x3bc358[_0x27d162(0x1ea)]=0x190;if(_0x16d022[_0x27d162(0x1e9)]>0x80||/[\u0000-\u001f\u007f]/[_0x27d162(0x1b4)](_0x16d022))throw Object['assign'](new Error(_0x27d162(0x1eb)),_0x3bc358);return _0x16d022;};export function buildUpsertUserQuery(_0x36429f,_0x3481b2,_0x2a142e){const _0x8c7aeb=_0xcfa1,_0x1c0f3f={};return _0x1c0f3f['profile']=_0x3481b2??{},{'sql':'INSERT\x20INTO\x20public.crm_user_detail\x20AS\x20t\x20(ns,\x20data,\x20ext,\x20tag,\x20status)\x0a\x20\x20\x20\x20\x20VALUES\x20(ARRAY[\x27uid:\x27\x20||\x20$4]::text[],\x20$1::jsonb,\x20NULL,\x20$2::text[]\x20||\x20ARRAY[\x27from_env:\x27||$3]::text[],\x20\x27active\x27)\x0a\x20\x20\x20\x20\x20ON\x20CONFLICT\x20(ns)\x20WHERE\x20(deleted_at\x20IS\x20NULL)\x0a\x20\x20\x20\x20\x20DO\x20UPDATE\x20SET\x0a\x20\x20\x20\x20\x20\x20\x20data\x20=\x20CASE\x20WHEN\x20EXCLUDED.data\x20?\x20\x27profile\x27\x20THEN\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20(COALESCE(t.data,\x27{}\x27::jsonb)\x20||\x20EXCLUDED.data)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20||\x20jsonb_build_object(\x27profile\x27,\x20COALESCE(t.data->\x27profile\x27,\x27{}\x27::jsonb)\x20||\x20COALESCE(EXCLUDED.data->\x27profile\x27,\x27{}\x27::jsonb))\x0a\x20\x20\x20\x20\x20\x20\x20ELSE\x20COALESCE(t.data,\x27{}\x27::jsonb)\x20||\x20EXCLUDED.data\x20END,\x0a\x20\x20\x20\x20\x20\x20\x20updated_at\x20=\x20NOW()\x0a\x20\x20\x20\x20\x20RETURNING\x20id,\x20data','parameters':[JSON[_0x8c7aeb(0x1cc)](_0x1c0f3f),[],_0x2a142e||_0x8c7aeb(0x1c8),_0x36429f]};}export function buildSelectUserQuery(_0x156a4d){const _0xa17543=_0xcfa1,_0x767ff4={};_0x767ff4['KOwIl']=function(_0x44c8ee,_0x43ae08){return _0x44c8ee+_0x43ae08;};const _0x4c7df6=_0x767ff4;return{'sql':_0xa17543(0x1be),'parameters':[_0x4c7df6['KOwIl']('uid:',_0x156a4d)]};}export function buildPatchProfileQuery(_0x540f28,_0x3e6072){const _0x273f0f=_0xcfa1,_0x4e349d={};_0x4e349d[_0x273f0f(0x1cb)]=function(_0x3e0761,_0xbaf6f7){return _0x3e0761??_0xbaf6f7;};const _0x36e21b=_0x4e349d;return{'sql':_0x273f0f(0x1da),'parameters':['uid:'+_0x540f28,JSON[_0x273f0f(0x1cc)](_0x36e21b['ojhht'](_0x3e6072,{}))]};}const PROBE_TABLE=_0x474d50(0x1a7),PROBE_INDEXES=_0x474d50(0x1fd),PROBE_PKEY=_0x474d50(0x1ce),DDL_TABLE='create\x20table\x20if\x20not\x20exists\x20public.crm_user_detail\x20(id\x20uuid\x20default\x20gen_random_uuid()\x20not\x20null,\x20ns\x20text[]\x20not\x20null,\x20data\x20jsonb\x20default\x20\x27{}\x27::jsonb\x20not\x20null,\x20ext\x20jsonb,\x20tag\x20text[]\x20default\x20\x27{}\x27::text[],\x20status\x20text\x20default\x20\x27active\x27\x20not\x20null,\x20created_at\x20timestamptz\x20default\x20now()\x20not\x20null,\x20updated_at\x20timestamptz\x20default\x20now()\x20not\x20null,\x20deleted_at\x20timestamptz)',DDL_PKEY=_0x474d50(0x1e4),_0x597028={};_0x597028[_0x474d50(0x1a9)]=_0x474d50(0x1ae),_0x597028[_0x474d50(0x1c6)]=_0x474d50(0x1c5),_0x597028[_0x474d50(0x1ec)]=_0x474d50(0x1c7),_0x597028[_0x474d50(0x1bd)]=_0x474d50(0x1b5);const DDL_INDEXES=_0x597028,INDEX_ORDER=['idx_crm_user_detail_ns_unique',_0x474d50(0x1c6),_0x474d50(0x1ec),'idx_crm_user_detail_identity_type'],EDIT_BODY=[_0x474d50(0x1bf),'username','phone',_0x474d50(0x204),_0x474d50(0x1ac),_0x474d50(0x1b6),_0x474d50(0x1f5),_0x474d50(0x1fc)],ARCHIVABLE=[_0x474d50(0x1bf),_0x474d50(0x1af),_0x474d50(0x20e),'email',_0x474d50(0x1ac),'gender','description'];export function createUserAbilities(_0x590763,_0x355eab,_0xa62695={}){const _0x51b7d9=_0x474d50,_0x278bda={'KPCUP':'apikey\x20无效','BXvWB':function(_0x1d2a1c,_0x26dfb5,_0x34b9bf,_0x402dce){return _0x1d2a1c(_0x26dfb5,_0x34b9bf,_0x402dce);},'encZE':function(_0x266551,_0x3776a2){return _0x266551(_0x3776a2);},'BWzzT':_0x51b7d9(0x1d5),'YtKQY':function(_0x4c73db,_0x3dcee6){return _0x4c73db===_0x3dcee6;},'odAph':'active','zbILp':function(_0x448c64,_0x56e91b,_0x8cdde3){return _0x448c64(_0x56e91b,_0x8cdde3);},'txykJ':'/auth/v1/user/basic/edit','yKHOr':_0x51b7d9(0x1c1),'onNXd':function(_0xab12b1,_0x4bbdfd,_0x1ba1b4,_0xf1ecdb){return _0xab12b1(_0x4bbdfd,_0x1ba1b4,_0xf1ecdb);},'qmgPp':'exists','XTywB':_0x51b7d9(0x1db),'gMeNR':function(_0x5d93fe){return _0x5d93fe();},'Jkbax':'user.upsert','jhKiu':'user.me','zTNCP':_0x51b7d9(0x1f3),'GVmyK':'改密(前置\x20reauthenticate):PATCH\x20/auth/v1/user/password,网关原样(不写档)','QamgI':'删号(前置\x20reauthenticate):DELETE\x20/auth/v1/user/me,网关原样(不自行标删/不写档)','gFWmj':_0x51b7d9(0x205),'HJOeT':_0x51b7d9(0x217),'TGEAK':'建档表幂等初始化:缺什么补什么(DDL\x20逐条\x20pg.exec;调用方显式执行,登录不做\x20DDL)'},_0x3781a7=_0x278bda['zbILp'](makeGateway,_0x590763,_0x355eab),_0x28aff2=async(_0x5d6747,_0x2671ae,_0x16b661)=>{try{return await _0x3781a7(_0x5d6747,_0x2671ae,_0x16b661);}catch(_0x218201){throwGatewayError(_0x218201);}},_0x13fed3=async _0x228df9=>{const _0x27a794=_0x51b7d9,_0x5005ea=await _0xa62695[_0x27a794(0x208)](_0x228df9),_0x54f5d2={};_0x54f5d2['code']=0x191;if(!_0x5005ea['ok'])throw Object[_0x27a794(0x1f1)](new Error(_0x278bda[_0x27a794(0x1ab)]),_0x54f5d2);const _0x39379c=await _0xa62695[_0x27a794(0x1e7)][_0x27a794(0x1ed)](_0x5005ea[_0x27a794(0x1a6)]['uidRef']),_0x296b6f={};return _0x296b6f['uid']=_0x5005ea['auth']['uidRef'],_0x296b6f[_0x27a794(0x1e2)]=_0x39379c[_0x27a794(0x1e2)],_0x296b6f;},_0x5dbfaa=_0x2eea71=>_0x355eab[_0x51b7d9(0x1ef)][_0x51b7d9(0x210)]('pg.exec',{'sql':_0x2eea71['sql'],'parameters':_0x2eea71['parameters'],'role':'cloudbase_postgres'}),_0xd9d01e=async()=>{const _0x2ccde0=_0x51b7d9,_0x3cd451={};_0x3cd451['sql']=PROBE_TABLE,_0x3cd451[_0x2ccde0(0x1a8)]=[];const _0x10cd02={};_0x10cd02['sql']=PROBE_INDEXES,_0x10cd02['parameters']=[];const _0x113b80={};_0x113b80['sql']=PROBE_PKEY,_0x113b80[_0x2ccde0(0x1a8)]=[];const [_0x5f551b,_0x3b4801,_0x347a7c]=[await _0x5dbfaa(_0x3cd451),await _0x5dbfaa(_0x10cd02),await _0x5dbfaa(_0x113b80)],_0x2cba06=new Set(_0x3b4801['map'](_0x38e21f=>_0x38e21f[_0x2ccde0(0x20b)]));return{'table':!!_0x5f551b[0x0]?.[_0x2ccde0(0x1d2)],'tokenCache':!!_0x5f551b[0x0]?.['token_cache'],'accessKey':!!_0x5f551b[0x0]?.[_0x2ccde0(0x1c9)],'indexes':Object['fromEntries'](INDEX_ORDER[_0x2ccde0(0x1cf)](_0x4266a8=>[_0x4266a8,_0x2cba06[_0x2ccde0(0x1f6)](_0x4266a8)])),'primaryKey':_0x347a7c[_0x2ccde0(0x1e9)]>0x0};};return withSchemas([[_0x278bda['Jkbax'],{'describe':_0x51b7d9(0x203),'run':async(_0x5864d9={})=>{const _0x51dbd5=_0x51b7d9,{uid:_0x12140d,profile:_0x277754,env:_0x4f8e0e}=_0x5864d9,_0x470757=await _0x5dbfaa(_0x278bda[_0x51dbd5(0x200)](buildUpsertUserQuery,assertUid(_0x12140d),_0x277754,_0x4f8e0e??_0x590763[_0x51dbd5(0x20a)]));return _0x470757?.[0x0]??null;}}],[_0x51b7d9(0x1d5),{'describe':_0x51b7d9(0x201),'run':async(_0x48fb06={})=>{const _0x495d77=_0x51b7d9,_0x313d23=await _0x5dbfaa(_0x278bda['encZE'](buildSelectUserQuery,_0x278bda[_0x495d77(0x1b7)](assertUid,_0x48fb06[_0x495d77(0x1e5)])));return _0x313d23?.[0x0]??null;}}],[_0x51b7d9(0x20d),{'describe':'档案段更新(profile\x20浅合并;0\x20行→建档→重试一次→403\x20用户不可用)','run':async(_0x4ddfcd={})=>{const _0x46054e=_0x51b7d9,_0x376a68=assertUid(_0x4ddfcd[_0x46054e(0x1e5)]),_0x276230=await _0x5dbfaa(buildPatchProfileQuery(_0x376a68,_0x4ddfcd[_0x46054e(0x1c0)]));if(_0x276230?.[_0x46054e(0x1e9)])return _0x276230[0x0];const _0x14117f={};_0x14117f[_0x46054e(0x1e5)]=_0x376a68,await _0x355eab[_0x46054e(0x1ef)][_0x46054e(0x210)](_0x46054e(0x1cd),_0x14117f);const _0x1083eb={};_0x1083eb[_0x46054e(0x1e5)]=_0x376a68;const _0xe58092=await _0x355eab[_0x46054e(0x1ef)]['run'](_0x278bda[_0x46054e(0x1ba)],_0x1083eb);if(_0x278bda[_0x46054e(0x202)](_0xe58092?.[_0x46054e(0x1e8)],_0x278bda[_0x46054e(0x1dc)])&&!_0xe58092['deleted_at']){const _0x3f41d2=await _0x5dbfaa(_0x278bda[_0x46054e(0x206)](buildPatchProfileQuery,_0x376a68,_0x4ddfcd[_0x46054e(0x1c0)]));if(_0x3f41d2?.[_0x46054e(0x1e9)])return _0x3f41d2[0x0];}const _0x13bbdc={};_0x13bbdc[_0x46054e(0x1ea)]=0x193;throw Object[_0x46054e(0x1f1)](new Error('用户不可用'),_0x13bbdc);}}],[_0x278bda['jhKiu'],{'describe':_0x278bda['zTNCP'],'run':async({apikey:_0x1e5b0c}={})=>{const _0xbe6841=_0x51b7d9,{access_token:_0xf56d81}=await _0x13fed3(_0x1e5b0c),_0x8aef08={};return _0x8aef08['token']=_0xf56d81,_0x28aff2(_0xbe6841(0x1ff),'/auth/v1/user/me',_0x8aef08);}}],[_0x51b7d9(0x215),{'describe':_0x51b7d9(0x1e3),'run':async(_0x5c566d={})=>{const _0x2e58f6=_0x51b7d9,{uid:_0x34d112,access_token:_0x4d0134}=await _0x13fed3(_0x5c566d['apikey']),_0x225d1d={};for(const _0xd5c0b9 of EDIT_BODY)if(_0x5c566d[_0xd5c0b9]!==undefined)_0x225d1d[_0xd5c0b9]=_0x5c566d[_0xd5c0b9];const _0x372d7c={};_0x372d7c[_0x2e58f6(0x1b8)]=_0x225d1d,_0x372d7c[_0x2e58f6(0x1d3)]=_0x4d0134;const _0x224248=await _0x278bda['BXvWB'](_0x28aff2,'POST',_0x278bda[_0x2e58f6(0x1bc)],_0x372d7c),_0x3e4207={};for(const _0x5b98aa of ARCHIVABLE)if(_0x5b98aa in _0x225d1d)_0x3e4207[_0x5b98aa]=_0x225d1d[_0x5b98aa];const _0x450c91={};return _0x450c91[_0x2e58f6(0x1e5)]=_0x34d112,_0x450c91['patch']=_0x3e4207,await _0x355eab[_0x2e58f6(0x1ef)]['run'](_0x2e58f6(0x20d),_0x450c91),_0x224248;}}],[_0x51b7d9(0x216),{'describe':_0x278bda['GVmyK'],'run':async(_0x170005={})=>{const _0x46bf29=_0x51b7d9,{apikey:_0x23150c,..._0x44ad07}=_0x170005,{access_token:_0x184579}=await _0x13fed3(_0x23150c),_0x136839={};return _0x136839[_0x46bf29(0x1b8)]=_0x44ad07,_0x136839['token']=_0x184579,_0x28aff2('PATCH',_0x278bda[_0x46bf29(0x1d4)],_0x136839);}}],[_0x51b7d9(0x1b2),{'describe':_0x278bda[_0x51b7d9(0x1f7)],'run':async(_0x5b9d10={})=>{const _0x24640d=_0x51b7d9,{apikey:_0x4899d0,..._0x423837}=_0x5b9d10,{access_token:_0x277bb1}=await _0x13fed3(_0x4899d0),_0x46547c={};return _0x46547c[_0x24640d(0x1b8)]=_0x423837,_0x46547c[_0x24640d(0x1d3)]=_0x277bb1,_0x278bda[_0x24640d(0x1e1)](_0x28aff2,_0x24640d(0x213),'/auth/v1/user/me',_0x46547c);}}],[_0x278bda[_0x51b7d9(0x1c3)],{'describe':_0x51b7d9(0x1e0),'run':async()=>_0xd9d01e()}],[_0x278bda[_0x51b7d9(0x214)],{'describe':_0x278bda['TGEAK'],'run':async()=>{const _0x4b9b8a=_0x51b7d9,_0x5109dc=await _0xd9d01e(),_0x273bd3=[];if(!_0x5109dc[_0x4b9b8a(0x1d2)])_0x273bd3['push'](DDL_TABLE);if(!_0x5109dc['tokenCache'])_0x273bd3['push'](DDL_USER_TOKEN_CACHE);if(!_0x5109dc[_0x4b9b8a(0x211)])_0x273bd3[_0x4b9b8a(0x1fb)](DDL_USER_ACCESS_KEY,DDL_USER_ACCESS_KEY_INDEX);if(!_0x5109dc[_0x4b9b8a(0x1dd)])_0x273bd3[_0x4b9b8a(0x1fb)](DDL_PKEY);const _0xbccf09=INDEX_ORDER['filter'](_0x44c054=>!_0x5109dc[_0x4b9b8a(0x1bb)][_0x44c054]);for(const _0x360160 of _0xbccf09)_0x273bd3[_0x4b9b8a(0x1fb)](DDL_INDEXES[_0x360160]);for(const _0x50202c of _0x273bd3){try{const _0x49c560={};_0x49c560[_0x4b9b8a(0x1fe)]=_0x50202c,_0x49c560[_0x4b9b8a(0x1a8)]=[],await _0x278bda[_0x4b9b8a(0x1b7)](_0x5dbfaa,_0x49c560);}catch(_0x5a13c5){throw _0x5a13c5?.['status']?Object['assign'](new Error(_0x5a13c5['message']),{'code':_0x5a13c5[_0x4b9b8a(0x1e8)],'payload':_0x5a13c5[_0x4b9b8a(0x207)]}):_0x5a13c5;}}return{'table':_0x5109dc[_0x4b9b8a(0x1d2)]?_0x278bda['qmgPp']:_0x278bda[_0x4b9b8a(0x212)],'tokenCache':_0x5109dc[_0x4b9b8a(0x1d0)]?_0x4b9b8a(0x1b0):_0x278bda['XTywB'],'accessKey':_0x5109dc['accessKey']?_0x4b9b8a(0x1b0):'created','indexes':{'created':_0xbccf09,'existing':INDEX_ORDER[_0x4b9b8a(0x1e6)](_0x2d7988=>!_0xbccf09[_0x4b9b8a(0x1a5)](_0x2d7988))},'status':await _0x278bda[_0x4b9b8a(0x1df)](_0xd9d01e)};}}]]);}
|
package/dist/wechat.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function _0x50c9(_0x47e889,_0x1da67b){_0x47e889=_0x47e889-0x129;const _0x135500=_0x1355();let _0x50c908=_0x135500[_0x47e889];if(_0x50c9['AxlJFL']===undefined){var _0x2b8db2=function(_0x3523b4){const _0x2ad14c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x594a7a='',_0x3335b7='';for(let _0x16877c=0x0,_0xc12c1f,_0x4410e6,_0x2c1560=0x0;_0x4410e6=_0x3523b4['charAt'](_0x2c1560++);~_0x4410e6&&(_0xc12c1f=_0x16877c%0x4?_0xc12c1f*0x40+_0x4410e6:_0x4410e6,_0x16877c++%0x4)?_0x594a7a+=String['fromCharCode'](0xff&_0xc12c1f>>(-0x2*_0x16877c&0x6)):0x0){_0x4410e6=_0x2ad14c['indexOf'](_0x4410e6);}for(let _0x3f8b14=0x0,_0xdc3ed0=_0x594a7a['length'];_0x3f8b14<_0xdc3ed0;_0x3f8b14++){_0x3335b7+='%'+('00'+_0x594a7a['charCodeAt'](_0x3f8b14)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3335b7);};_0x50c9['cJYRvB']=_0x2b8db2,_0x50c9['SNZlqW']={},_0x50c9['AxlJFL']=!![];}const _0xbfba84=_0x135500[0x0],_0x3e099d=_0x47e889+_0xbfba84,_0x4e958f=_0x50c9['SNZlqW'][_0x3e099d];return!_0x4e958f?(_0x50c908=_0x50c9['cJYRvB'](_0x50c908),_0x50c9['SNZlqW'][_0x3e099d]=_0x50c908):_0x50c908=_0x4e958f,_0x50c908;}(function(_0x273372,_0x164748){const _0x3b65c8=_0x50c9,_0x3ec9a2=_0x273372();while(!![]){try{const _0x11a3e7=-parseInt(_0x3b65c8(0x13a))/0x1+parseInt(_0x3b65c8(0x130))/0x2*(parseInt(_0x3b65c8(0x12e))/0x3)+parseInt(_0x3b65c8(0x131))/0x4+-parseInt(_0x3b65c8(0x12d))/0x5+-parseInt(_0x3b65c8(0x135))/0x6+parseInt(_0x3b65c8(0x132))/0x7*(parseInt(_0x3b65c8(0x137))/0x8)+-parseInt(_0x3b65c8(0x129))/0x9;if(_0x11a3e7===_0x164748)break;else _0x3ec9a2['push'](_0x3ec9a2['shift']());}catch(_0xfff5fa){_0x3ec9a2['push'](_0x3ec9a2['shift']());}}}(_0x1355,0x4f9a9));export async function code2Session(_0x3d7211,_0x3f448c){const _0x3b826d=_0x50c9,_0x4b8d58={'HPxcZ':_0x3b826d(0x136),'zpkWW':function(_0x2cdce0,_0xe44ed){return _0x2cdce0(_0xe44ed);}},_0x3c2a6a={};_0x3c2a6a['appid']=_0x3d7211[_0x3b826d(0x133)],_0x3c2a6a[_0x3b826d(0x12a)]=_0x3d7211[_0x3b826d(0x138)],_0x3c2a6a[_0x3b826d(0x139)]=_0x3f448c,_0x3c2a6a['grant_type']=_0x4b8d58[_0x3b826d(0x12b)];const _0xf376fe=new URLSearchParams(_0x3c2a6a),_0x3a4855=await _0x4b8d58[_0x3b826d(0x134)](fetch,_0x3b826d(0x12c)+_0xf376fe);if(!_0x3a4855['ok'])throw new Error(_0x3b826d(0x12f)+_0x3a4855['status']);return await _0x3a4855['json']();}function _0x1355(){const _0xb013f8=['Ahr0Chm6lY9HCgKUD2vPEgLUlNfXlMnVBs9ZBNmVANnJB2rLmNnLC3nPB24/','nti5odiWzK16ExPH','m2fRtw1pDa','y29KztjtzxnZAw9UihjLCxvLC3qGzMfPBgvKihDPDgGGC3rHDhvZia','mtiXmJyZngvpBK11tG','odCWmZq0z2nhzfLm','mZvgC3vfwM4','D3HbChbPza','ENbRv1C','mZC2nJGZmfniBvfLwq','yxv0Ag9YAxPHDgLVBL9JB2rL','ntqXnJCYq1LusvnP','D3HtzwnYzxq','ANnFy29Kzq','nJi3odbgrgHnAuG','mZu4ntC4t21Zzu9b','C2vJCMv0','sfb4y1O'];_0x1355=function(){return _0xb013f8;};return _0x1355();}
|
package/package.json
CHANGED
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blod-nm/user-kit",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.7",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "CloudBase user-center kit: auth (wechat code / unionid / password / sms / email / signup) + crm_user_detail archive on @blod-nm/base-cb.",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"exports": {
|
|
9
|
-
".": "./
|
|
9
|
+
".": "./dist/index.js"
|
|
10
10
|
},
|
|
11
11
|
"files": [
|
|
12
|
-
"
|
|
13
|
-
"README.md"
|
|
12
|
+
"dist"
|
|
14
13
|
],
|
|
15
14
|
"engines": {
|
|
16
15
|
"node": ">=18"
|
|
@@ -25,11 +24,21 @@
|
|
|
25
24
|
"dependencies": {
|
|
26
25
|
"@blod-nm/base-ctx": "^0.1.1",
|
|
27
26
|
"@blod-nm/base-cb": "^0.2.0",
|
|
28
|
-
"@cloudbase/node-sdk": "^3"
|
|
27
|
+
"@cloudbase/node-sdk": "^3",
|
|
28
|
+
"@blod-nm/ak": "^0.1.0"
|
|
29
29
|
},
|
|
30
30
|
"scripts": {
|
|
31
31
|
"test": "bun test test/",
|
|
32
32
|
"test:e2e": "bun test e2e/",
|
|
33
|
-
"test:e2e:proxy": "CBKIT_E2E=proxy bun test e2e/"
|
|
33
|
+
"test:e2e:proxy": "CBKIT_E2E=proxy bun test e2e/",
|
|
34
|
+
"build": "bun scripts/build.mjs",
|
|
35
|
+
"prepack": "bun run build"
|
|
36
|
+
},
|
|
37
|
+
"devDependencies": {
|
|
38
|
+
"javascript-obfuscator": "^4.2.2"
|
|
39
|
+
},
|
|
40
|
+
"publishConfig": {
|
|
41
|
+
"access": "public",
|
|
42
|
+
"registry": "https://registry.npmjs.org"
|
|
34
43
|
}
|
|
35
44
|
}
|
package/src/access-key.js
DELETED
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* access-key.js — apikey 签发 / verify(+30s 进程缓存)/ key 域能力(spec §3.1 · §3.4 · §3.5 · §3.7)
|
|
3
|
-
*
|
|
4
|
-
* 形态: key='a1_'+b64u(randomBytes(32))(只在签发响应出现一次)· key_hash=sha256hex(key)(档案表主键,库内不存明文)
|
|
5
|
-
* key_id='k_'+key_hash[0:12](展示/吊销句柄)· key_prefix=key[0:11](识别用,不含敏感信息)
|
|
6
|
-
* expires_at=unix 秒(now + (ttl ?? cfg.akDefaultKeyTtlSec))
|
|
7
|
-
* 两张表: __user_token_cache(token 托管,broker 读写)/ __user_access_key(key 档案,本文件读写)
|
|
8
|
-
* verify: 一条 SQL 查 key_hash → 四分支(malformed/revoked/expired/ok);ok 结果进程内 Map 缓存 30s;
|
|
9
|
-
* revoke 用 RETURNING key_hash 主动清缓存;DB 异常 → 503(fail-closed,查不到=拒绝)。
|
|
10
|
-
* key 域: create(当前 key 换 uid → 签发新 key)/ list(不含明文与 hash)/ revoke(他人 key → 404)/ verify。
|
|
11
|
-
* 禁止: 任何官方网关调用 / HMAC / masterSecret(查表派:档案表是唯一真相)。
|
|
12
|
-
*/
|
|
13
|
-
import { createHash, randomBytes } from 'node:crypto'
|
|
14
|
-
|
|
15
|
-
const CACHE_TTL_MS = 30_000
|
|
16
|
-
const DEFAULT_TTL_SEC = 2592000
|
|
17
|
-
|
|
18
|
-
export const DDL_USER_TOKEN_CACHE = `CREATE TABLE IF NOT EXISTS __user_token_cache (
|
|
19
|
-
uid text PRIMARY KEY, access_token text NOT NULL, refresh_token text NOT NULL,
|
|
20
|
-
expires_at bigint NOT NULL, updated_at timestamptz DEFAULT now() NOT NULL)`
|
|
21
|
-
|
|
22
|
-
export const DDL_USER_ACCESS_KEY = `CREATE TABLE IF NOT EXISTS __user_access_key (
|
|
23
|
-
key_hash text PRIMARY KEY, key_id text NOT NULL UNIQUE, uid text NOT NULL,
|
|
24
|
-
scene text NOT NULL DEFAULT '', key_prefix text NOT NULL,
|
|
25
|
-
created_at timestamptz DEFAULT now() NOT NULL, expires_at bigint NOT NULL,
|
|
26
|
-
revoked_at timestamptz, updated_at timestamptz DEFAULT now() NOT NULL)`
|
|
27
|
-
|
|
28
|
-
export const DDL_USER_ACCESS_KEY_INDEX = 'CREATE INDEX IF NOT EXISTS idx_user_access_key_uid ON __user_access_key(uid)'
|
|
29
|
-
|
|
30
|
-
const SQL_SELECT_KEY = 'SELECT key_id, uid, scene, key_prefix, revoked_at, expires_at FROM __user_access_key WHERE key_hash=$1'
|
|
31
|
-
const SQL_INSERT_KEY = 'INSERT INTO __user_access_key (key_hash, key_id, uid, scene, key_prefix, expires_at) VALUES ($1, $2, $3, $4, $5, $6)'
|
|
32
|
-
const SQL_LIST_KEYS = 'SELECT key_id, key_prefix, scene, created_at, expires_at, revoked_at FROM __user_access_key WHERE uid=$1 ORDER BY created_at DESC'
|
|
33
|
-
const SQL_REVOKE_KEY = 'UPDATE __user_access_key SET revoked_at=now(), updated_at=now() WHERE key_id=$1 AND uid=$2 AND revoked_at IS NULL RETURNING key_hash'
|
|
34
|
-
|
|
35
|
-
const err = (code, message) => Object.assign(new Error(message), { code })
|
|
36
|
-
const nowSec = () => Math.floor(Date.now() / 1000)
|
|
37
|
-
export const sha256hex = s => createHash('sha256').update(String(s)).digest('hex')
|
|
38
|
-
|
|
39
|
-
/** 进程内 verify 缓存(key_hash → { result, until });只缓存 ok 结果,写路径不读 */
|
|
40
|
-
export const createVerifyCache = (ttlMs = CACHE_TTL_MS) => {
|
|
41
|
-
const store = new Map()
|
|
42
|
-
return {
|
|
43
|
-
get(hash) {
|
|
44
|
-
const hit = store.get(hash)
|
|
45
|
-
if (!hit) return null
|
|
46
|
-
if (hit.until <= Date.now()) { store.delete(hash); return null }
|
|
47
|
-
return hit.result
|
|
48
|
-
},
|
|
49
|
-
set(hash, result) { store.set(hash, { result, until: Date.now() + ttlMs }) },
|
|
50
|
-
clear(hash) { store.delete(hash) },
|
|
51
|
-
size: () => store.size,
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* key 域工厂:verify / issue 闭包共享缓存与 runSql 接缝;abilities 为 auth.key.* 四条注册项。
|
|
57
|
-
* runSql(sql, parameters) 是本文件唯一表读写入口(§3.7,pg 适配器由 index.js 注入)。
|
|
58
|
-
*/
|
|
59
|
-
export function createKeyAbilities({ cfg, runSql }) {
|
|
60
|
-
const cache = createVerifyCache()
|
|
61
|
-
const ttlSec = () => Number(cfg?.akDefaultKeyTtlSec ?? DEFAULT_TTL_SEC)
|
|
62
|
-
|
|
63
|
-
// 签发:生成明文 + 落档(只返回 hash 供内部使用,明文仅由调用方取走一次性响应)
|
|
64
|
-
async function issue(uid, { scene = '', ttl } = {}) {
|
|
65
|
-
const apikey = 'a1_' + randomBytes(32).toString('base64url')
|
|
66
|
-
const keyHash = sha256hex(apikey)
|
|
67
|
-
const keyId = 'k_' + keyHash.slice(0, 12)
|
|
68
|
-
const keyPrefix = apikey.slice(0, 11)
|
|
69
|
-
const expiresAt = nowSec() + Number(ttl ?? ttlSec())
|
|
70
|
-
await runSql(SQL_INSERT_KEY, [keyHash, keyId, uid, scene ?? '', keyPrefix, expiresAt])
|
|
71
|
-
return { apikey, key_hash: keyHash, key_id: keyId, key_prefix: keyPrefix, expires_at: expiresAt }
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
// 唯一裁决路径:sha256(key) → 一行 SQL → 四分支;ok 结果 30s 缓存
|
|
75
|
-
async function verify(apikey, { useCache = true } = {}) {
|
|
76
|
-
const keyHash = sha256hex(apikey ?? '')
|
|
77
|
-
if (useCache) {
|
|
78
|
-
const hit = cache.get(keyHash)
|
|
79
|
-
if (hit) return hit
|
|
80
|
-
}
|
|
81
|
-
let rows
|
|
82
|
-
try { rows = await runSql(SQL_SELECT_KEY, [keyHash]) } catch { throw err(503, 'apikey 校验失败') }
|
|
83
|
-
const row = rows?.[0]
|
|
84
|
-
const result = !row ? { ok: false, reason: 'malformed' }
|
|
85
|
-
: row.revoked_at != null ? { ok: false, reason: 'revoked' }
|
|
86
|
-
: Number(row.expires_at) <= nowSec() ? { ok: false, reason: 'expired' }
|
|
87
|
-
: { ok: true, auth: { uidRef: row.uid, scene: row.scene ?? '', keyId: row.key_id, keyPrefix: row.key_prefix, expiresAt: Number(row.expires_at) } }
|
|
88
|
-
if (result.ok) cache.set(keyHash, result)
|
|
89
|
-
return result
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
// 凭证类能力共用:verify → 401 / 返回 uid(内部调用无缓存,避免读到过期判定)
|
|
93
|
-
async function uidOf(apikey) {
|
|
94
|
-
const v = await verify(apikey, { useCache: false })
|
|
95
|
-
if (!v.ok) throw err(401, 'apikey 无效')
|
|
96
|
-
return v.auth.uidRef
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
const abilities = [
|
|
100
|
-
['auth.key.create', { describe: '签发新 apikey(当前 key 换 uid;scene 只存不用)', run: async (args = {}) => {
|
|
101
|
-
const uid = await uidOf(args.apikey)
|
|
102
|
-
const scene = typeof args.scene === 'string' ? args.scene : ''
|
|
103
|
-
let issued
|
|
104
|
-
try { issued = await issue(uid, { scene }) } catch { throw err(500, 'apikey 签发失败') }
|
|
105
|
-
return { apikey: issued.apikey, key_id: issued.key_id, key_prefix: issued.key_prefix, expires_at: issued.expires_at }
|
|
106
|
-
} }],
|
|
107
|
-
|
|
108
|
-
['auth.key.list', { describe: '当前用户的 key 档案列表(不含明文/key_hash)', run: async (args = {}) => {
|
|
109
|
-
const uid = await uidOf(args.apikey)
|
|
110
|
-
let rows
|
|
111
|
-
try { rows = await runSql(SQL_LIST_KEYS, [uid]) } catch { throw err(503, '查询 key 失败') }
|
|
112
|
-
return (rows ?? []).map(r => ({ ...r, expires_at: Number(r.expires_at) }))
|
|
113
|
-
} }],
|
|
114
|
-
|
|
115
|
-
['auth.key.revoke', { describe: '吊销 key(key_id 必须属于当前用户;0 行 → 404)', run: async (args = {}) => {
|
|
116
|
-
const uid = await uidOf(args.apikey)
|
|
117
|
-
if (!args.key_id) throw err(400, 'key_id 必填')
|
|
118
|
-
let rows
|
|
119
|
-
try { rows = await runSql(SQL_REVOKE_KEY, [args.key_id, uid]) } catch { throw err(503, '吊销 key 失败') }
|
|
120
|
-
const keyHash = rows?.[0]?.key_hash
|
|
121
|
-
if (!keyHash) throw err(404, 'key 不存在或不属于当前用户')
|
|
122
|
-
cache.clear(keyHash) // 写路径不读缓存;成功即失效该 key
|
|
123
|
-
return { revoked: true, key_id: args.key_id }
|
|
124
|
-
} }],
|
|
125
|
-
|
|
126
|
-
['auth.key.verify', { describe: '校验 apikey(唯一裁决路径,返回 verify 结果对象)', run: async (args = {}) => verify(args.apikey) }],
|
|
127
|
-
]
|
|
128
|
-
|
|
129
|
-
return { verify, issue, uidOf, abilities, cache }
|
|
130
|
-
}
|