@opengis/fcore 0.0.1-beta.5 → 0.0.1-beta.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/config.js +1 -1
- package/dist/context.js +1 -1
- package/dist/errors.js +1 -1
- package/dist/fastify.d.ts +2 -1
- package/dist/fastify.d.ts.map +1 -1
- package/dist/fastify.js +1 -1
- package/dist/fcore.js +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/migrations/cli.js +1 -1
- package/dist/migrations/runner.js +1 -1
- package/dist/modules/auth/adduser-cli.js +1 -1
- package/dist/modules/auth/passwd-cli.js +1 -1
- package/dist/modules/auth/permission-cli.js +1 -1
- package/dist/modules/auth/route.d.ts.map +1 -1
- package/dist/modules/auth/route.js +1 -1
- package/dist/modules/auth/schema.d.ts +3 -0
- package/dist/modules/auth/schema.d.ts.map +1 -1
- package/dist/modules/auth/schema.js +1 -1
- package/dist/modules/auth/services/change-password.js +1 -1
- package/dist/modules/auth/services/get-current-user.d.ts +1 -0
- package/dist/modules/auth/services/get-current-user.d.ts.map +1 -1
- package/dist/modules/auth/services/get-current-user.js +1 -1
- package/dist/modules/auth/services/registration.js +1 -1
- package/dist/modules/auth/services/verify-two-factor.js +1 -1
- package/dist/modules/file/mime.d.ts +3 -0
- package/dist/modules/file/mime.d.ts.map +1 -0
- package/dist/modules/file/mime.js +1 -0
- package/dist/modules/file/route.d.ts.map +1 -1
- package/dist/modules/file/route.js +1 -1
- package/dist/modules/file/schema.d.ts +3 -0
- package/dist/modules/file/schema.d.ts.map +1 -1
- package/dist/modules/file/schema.js +1 -1
- package/dist/modules/file/services/get-file.js +1 -1
- package/dist/modules/file/services/resize-file.d.ts.map +1 -1
- package/dist/modules/file/services/resize-file.js +1 -1
- package/dist/modules/file/services/upload-file.d.ts +4 -6
- package/dist/modules/file/services/upload-file.d.ts.map +1 -1
- package/dist/modules/file/services/upload-file.js +1 -1
- package/dist/modules/resource/route.d.ts +0 -3
- package/dist/modules/resource/route.d.ts.map +1 -1
- package/dist/modules/resource/route.js +1 -1
- package/dist/modules/resource/schema.d.ts +3 -0
- package/dist/modules/resource/schema.d.ts.map +1 -1
- package/dist/modules/resource/schema.js +1 -1
- package/dist/modules/resource/services/add-note.js +1 -1
- package/dist/modules/resource/services/add-resource-file.js +1 -1
- package/dist/modules/resource/services/create-resource-relation.js +1 -1
- package/dist/modules/resource/services/create-resource.js +1 -1
- package/dist/modules/resource/services/delete-resource-relation.js +1 -1
- package/dist/modules/resource/services/delete-resource.js +1 -1
- package/dist/modules/resource/services/export-resource.d.ts.map +1 -1
- package/dist/modules/resource/services/export-resource.js +1 -1
- package/dist/modules/resource/services/get-resource.d.ts.map +1 -1
- package/dist/modules/resource/services/get-resource.js +1 -1
- package/dist/modules/resource/services/list-resource-relation.d.ts +2 -0
- package/dist/modules/resource/services/list-resource-relation.d.ts.map +1 -1
- package/dist/modules/resource/services/list-resource-relation.js +1 -1
- package/dist/modules/resource/services/list-resources.d.ts.map +1 -1
- package/dist/modules/resource/services/list-resources.js +1 -1
- package/dist/modules/resource/services/search-resource.d.ts.map +1 -1
- package/dist/modules/resource/services/search-resource.js +1 -1
- package/dist/modules/resource/services/suggest-resource.d.ts.map +1 -1
- package/dist/modules/resource/services/suggest-resource.js +1 -1
- package/dist/modules/resource/services/update-resource-relation.d.ts +10 -0
- package/dist/modules/resource/services/update-resource-relation.d.ts.map +1 -0
- package/dist/modules/resource/services/update-resource-relation.js +1 -0
- package/dist/modules/resource/services/update-resource.js +1 -1
- package/dist/modules/resource/services/upload-resource-file.js +1 -1
- package/dist/modules/system/route.d.ts.map +1 -1
- package/dist/modules/system/route.js +1 -1
- package/dist/modules/system/schema.js +1 -1
- package/dist/modules/system/services/check-system.d.ts.map +1 -1
- package/dist/modules/system/services/check-system.js +1 -1
- package/dist/modules/system/services/get-access.d.ts.map +1 -1
- package/dist/modules/system/services/get-access.js +1 -1
- package/dist/modules/system/services/get-api-list.d.ts.map +1 -1
- package/dist/modules/system/services/get-api-list.js +1 -1
- package/dist/modules/system/services/get-audit-log.d.ts.map +1 -1
- package/dist/modules/system/services/get-audit-log.js +1 -1
- package/dist/modules/system/services/get-dictionary.js +1 -1
- package/dist/modules/system/services/get-system-log.d.ts.map +1 -1
- package/dist/modules/system/services/get-system-log.js +1 -1
- package/dist/modules/system/services/get-system-settings.d.ts.map +1 -1
- package/dist/modules/system/services/get-system-settings.js +1 -1
- package/dist/modules/system/services/list-dictionaries.js +1 -1
- package/dist/modules/system/services/set-access.d.ts.map +1 -1
- package/dist/modules/system/services/set-access.js +1 -1
- package/dist/modules/system/services/update-dictionary.d.ts.map +1 -1
- package/dist/modules/system/services/update-dictionary.js +1 -1
- package/dist/modules/system/services/update-system-settings.d.ts.map +1 -1
- package/dist/modules/system/services/update-system-settings.js +1 -1
- package/dist/modules/utils/require-admin.js +1 -1
- package/dist/modules/utils/safe-user.js +1 -1
- package/dist/modules/utils/unsupported.js +1 -1
- package/dist/plugins/audit/audit.js +1 -1
- package/dist/plugins/audit/index.js +1 -1
- package/dist/plugins/audit/services/write-audit.js +1 -1
- package/dist/plugins/auth/get-user-permissions.js +1 -1
- package/dist/plugins/auth/index.js +1 -1
- package/dist/plugins/auth/verifyUser.js +1 -1
- package/dist/plugins/dictionary.d.ts +3 -0
- package/dist/plugins/dictionary.d.ts.map +1 -1
- package/dist/plugins/dictionary.js +1 -1
- package/dist/plugins/file.d.ts +3 -6
- package/dist/plugins/file.d.ts.map +1 -1
- package/dist/plugins/file.js +1 -1
- package/dist/plugins/index.d.ts +1 -0
- package/dist/plugins/index.d.ts.map +1 -1
- package/dist/plugins/index.js +1 -1
- package/dist/plugins/jwt.d.ts +4 -0
- package/dist/plugins/jwt.d.ts.map +1 -0
- package/dist/plugins/jwt.js +1 -0
- package/dist/plugins/logger/index.js +1 -1
- package/dist/plugins/logger/transport.js +1 -1
- package/dist/plugins/pg.d.ts.map +1 -1
- package/dist/plugins/pg.js +1 -1
- package/dist/plugins/redis.js +1 -1
- package/dist/plugins/resource/index.js +1 -1
- package/dist/plugins/resource/resource.d.ts.map +1 -1
- package/dist/plugins/resource/resource.js +1 -1
- package/dist/plugins/resource/resource.registry.js +1 -1
- package/dist/plugins/resource/resource.types.d.ts +18 -3
- package/dist/plugins/resource/resource.types.d.ts.map +1 -1
- package/dist/plugins/resource/services/add-dictionary-lookup-data.d.ts +3 -0
- package/dist/plugins/resource/services/add-dictionary-lookup-data.d.ts.map +1 -0
- package/dist/plugins/resource/services/add-dictionary-lookup-data.js +1 -0
- package/dist/plugins/resource/services/add-file-token.d.ts +3 -0
- package/dist/plugins/resource/services/add-file-token.d.ts.map +1 -0
- package/dist/plugins/resource/services/add-file-token.js +1 -0
- package/dist/plugins/resource/services/add-table-lookup-data.d.ts +4 -0
- package/dist/plugins/resource/services/add-table-lookup-data.d.ts.map +1 -0
- package/dist/plugins/resource/services/add-table-lookup-data.js +1 -0
- package/dist/plugins/resource/services/create-relation.js +1 -1
- package/dist/plugins/resource/services/create.d.ts.map +1 -1
- package/dist/plugins/resource/services/create.js +1 -1
- package/dist/plugins/resource/services/delete-relation.js +1 -1
- package/dist/plugins/resource/services/delete.d.ts.map +1 -1
- package/dist/plugins/resource/services/delete.js +1 -1
- package/dist/plugins/resource/services/find-one.d.ts +3 -2
- package/dist/plugins/resource/services/find-one.d.ts.map +1 -1
- package/dist/plugins/resource/services/find-one.js +1 -1
- package/dist/plugins/resource/services/find-relation.d.ts +3 -2
- package/dist/plugins/resource/services/find-relation.d.ts.map +1 -1
- package/dist/plugins/resource/services/find-relation.js +1 -1
- package/dist/plugins/resource/services/find.d.ts.map +1 -1
- package/dist/plugins/resource/services/find.js +1 -1
- package/dist/plugins/resource/services/update-relation.d.ts +11 -0
- package/dist/plugins/resource/services/update-relation.d.ts.map +1 -0
- package/dist/plugins/resource/services/update-relation.js +1 -0
- package/dist/plugins/resource/services/update.d.ts.map +1 -1
- package/dist/plugins/resource/services/update.js +1 -1
- package/dist/plugins/resource/utils/auto-index.d.ts +4 -0
- package/dist/plugins/resource/utils/auto-index.d.ts.map +1 -0
- package/dist/plugins/resource/utils/auto-index.js +1 -0
- package/dist/plugins/resource/utils/fields.js +1 -1
- package/dist/plugins/resource/utils/filters.d.ts +3 -2
- package/dist/plugins/resource/utils/filters.d.ts.map +1 -1
- package/dist/plugins/resource/utils/filters.js +1 -1
- package/dist/plugins/resource/utils/permissions.js +1 -1
- package/dist/plugins/resource/utils/sort.d.ts.map +1 -1
- package/dist/plugins/resource/utils/sort.js +1 -1
- package/dist/plugins/resource/utils/sql.js +1 -1
- package/dist/shared/getIP.js +1 -1
- package/migrations/20260905120000_add_user_foreign_keys.sql +42 -42
- package/package.json +3 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function U(){const u=['values','endpoint','method','format'];U=function(){return u;};return U();}function z(C,N){C=C-0x140;const r=U();let p=r[C];return p;}export async function getApiList(C,N){const Q=z,r=[...C['apiRoutes'][Q(0x140)]()]['sort']((p,c)=>(p[Q(0x141)]+'\x20'+p['method'])['localeCompare'](c[Q(0x141)]+'\x20'+c[Q(0x142)]));if(C[Q(0x143)]!=='short')return r;return r['map'](({method:p,endpoint:c,access:x,permissions:m})=>p+'\x20'+c);}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-audit-log.d.ts","sourceRoot":"","sources":["../../../../src/modules/system/services/get-audit-log.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAE5D,wBAAsB,WAAW,CAC/B,MAAM,EAAE;IACN,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,EACD,GAAG,EAAE,UAAU,GACd,OAAO,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"get-audit-log.d.ts","sourceRoot":"","sources":["../../../../src/modules/system/services/get-audit-log.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAE5D,wBAAsB,WAAW,CAC/B,MAAM,EAAE;IACN,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,EACD,GAAG,EAAE,UAAU,GACd,OAAO,CAAC,GAAG,CAAC,CAcd"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function z(C,N){C=C-0x103;const r=U();let p=r[C];return p;}export async function getAuditLog(C,N){const m=z,p=Math['min'](Math['max'](C['limit']??0x32,0x1),0xc8),c=Math['max']((C['page']??0x1)-0x1,0x0)*p,x=await N['pg']['query']('SELECT\x20*\x20FROM\x20admin.audit_log\x20ORDER\x20BY\x20id\x20DESC\x20LIMIT\x20$1\x20OFFSET\x20$2',[p,c]);return{'rows':x['rows'],'page':C[m(0x103)]??0x1,'limit':p};}function U(){const Q=['page'];U=function(){return Q;};return U();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
export async function getDictionary(C,N){return N['dictionary']['get'](C['name']);}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-system-log.d.ts","sourceRoot":"","sources":["../../../../src/modules/system/services/get-system-log.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"get-system-log.d.ts","sourceRoot":"","sources":["../../../../src/modules/system/services/get-system-log.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAc5D,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAsB,YAAY,CAChC,MAAM,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,EACrC,GAAG,EAAE,UAAU,GACd,OAAO,CAAC,SAAS,CAAC,CA0CpB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const _0x12b9ea=_0x4541;(function(_0xed251a,_0x1b76b9){const _0x137c2e=_0x4541,_0x2f6df2=_0xed251a();while(!![]){try{const _0x383d1e=-parseInt(_0x137c2e(0xc4))/0x1+parseInt(_0x137c2e(0xa0))/0x2+-parseInt(_0x137c2e(0x7e))/0x3*(parseInt(_0x137c2e(0xa9))/0x4)+-parseInt(_0x137c2e(0x8f))/0x5*(-parseInt(_0x137c2e(0x9e))/0x6)+-parseInt(_0x137c2e(0xe0))/0x7+parseInt(_0x137c2e(0x9f))/0x8*(-parseInt(_0x137c2e(0xdf))/0x9)+parseInt(_0x137c2e(0x9a))/0xa;if(_0x383d1e===_0x1b76b9)break;else _0x2f6df2['push'](_0x2f6df2['shift']());}catch(_0x5301fb){_0x2f6df2['push'](_0x2f6df2['shift']());}}}(_0x462f,0x7139f));import _0x108ef6 from'node:fs/promises';import _0x1d6e59 from'node:path';import{requireAdmin}from'../../utils/require-admin.js';function _0x462f(){const _0x4dda9d=['withFileTypes','cwd','isDirectory','<li><a\x20href=\x22','jenWB','>','some','&','GyaQa','bKeqS','type','rtycy','rchkr','uTXvJ','directory','304886QerFox','uBFSd','resolve','</a></li>','cgVhM','lTBnH','FLByh','KOlev','toISOString','join','dkMHL','close','logs','Yrfiq','FqEyf','utf8','system:logs','twBtV','open','<!DOCTYPE\x20html>\x0a<html>\x0a<head><meta\x20charset=\x22utf-8\x22><title>','tTsXP','</title></head>\x0a<body>\x0a<h1>','catch','concat','sep','vYjok','logs/','4513302QEmOEK','1646463qIAgfr','MvtFV','min','map','AgTTA','xkDmL','Log\x20path\x20not\x20found','Sqpwn','toString','hPmvV','name','startsWith','512514RBAfRq','ijNYo','pPyYL','BnIQa','iXJuC','text/html;\x20charset=utf-8','\x0a</ul>\x0a</body>\x0a</html>','KbbZl','split','EHfbr','user','file','fXDVN','localeCompare','aGGdY','reverse','</h1>\x0a<ul>\x0a','3165570oapBPQ','GPVPA','Invalid\x20log\x20path','read','kLvtB','replace','readdir','gxczO','pJKRc','text/plain;\x20charset=utf-8','bKNfk','8881570riCBnD','all','length','lQeuQ','6myxame','8LtFjSc','993182jxcMxp','CddKP','filter','<','BaKfz','slice','sort','mtime','alloc','12aYXTGW','nzOGj','Rfzlr','unshift','?path=','KJpWP','fsOlA','path','fRRDF','"','size','stat'];_0x462f=function(){return _0x4dda9d;};return _0x462f();}import{NotFoundError,ValidationError}from'../../../errors.js';const LOGS_ROOT=_0x1d6e59[_0x12b9ea(0xc6)](process[_0x12b9ea(0xb6)](),_0x12b9ea(0xd0)),TAIL_LINES=0x64;export async function getSystemLog(_0x5a66df,_0x196496){const _0x185761=_0x12b9ea,_0x54ad3b={'kLvtB':function(_0x40a8dd,_0x2b3d13){return _0x40a8dd===_0x2b3d13;},'pPyYL':function(_0x237e3c,_0x4f6849){return _0x237e3c??_0x4f6849;},'iXJuC':_0x185761(0x91),'GPVPA':function(_0x54d4d,_0x389c20){return _0x54d4d===_0x389c20;},'gxczO':_0x185761(0xd1),'cgVhM':_0x185761(0xc3),'rtycy':function(_0xaf40a5,_0x3a3eb1,_0x102bc3){return _0xaf40a5(_0x3a3eb1,_0x102bc3);},'FqEyf':function(_0x488047,_0x2727b1){return _0x488047!==_0x2727b1;},'lTBnH':function(_0x418fb9,_0x546738){return _0x418fb9!==_0x546738;},'xkDmL':_0x185761(0x9d),'fRRDF':_0x185761(0xe6),'GyaQa':function(_0x57d32c,_0x1df25b){return _0x57d32c===_0x1df25b;},'ijNYo':_0x185761(0xce),'BaKfz':_0x185761(0x83),'rchkr':function(_0x55bb74,_0x4f9eaa,_0x4b059f){return _0x55bb74(_0x4f9eaa,_0x4b059f);},'FLByh':function(_0x2ab187,_0x3b02d8,_0x27456f){return _0x2ab187(_0x3b02d8,_0x27456f);},'EHfbr':_0x185761(0x98)};_0x54ad3b[_0x185761(0xc0)](requireAdmin,_0x5a66df[_0x185761(0x88)],_0x185761(0xd4));const _0x585d1e=normalizePath(_0x5a66df[_0x185761(0xb0)]),_0x7704ec=_0x1d6e59[_0x185761(0xc6)](LOGS_ROOT,_0x585d1e);if(_0x54ad3b[_0x185761(0xd2)](_0x7704ec,LOGS_ROOT)&&!_0x7704ec[_0x185761(0xeb)](LOGS_ROOT+_0x1d6e59[_0x185761(0xdc)])){if(_0x54ad3b[_0x185761(0xc9)](_0x54ad3b[_0x185761(0xe5)],_0x54ad3b[_0x185761(0xe5)])){if(_0x54ad3b[_0x185761(0x93)](_0xfe1c89,0xa))_0x336081++;}else throw new ValidationError(_0x54ad3b[_0x185761(0x82)]);}const _0x11f746=await _0x108ef6[_0x185761(0xb4)](_0x7704ec)[_0x185761(0xda)](()=>null);if(!_0x11f746){if(_0x54ad3b[_0x185761(0xc9)](_0x185761(0xe1),_0x185761(0x97)))throw new NotFoundError(_0x54ad3b[_0x185761(0xb1)]);else throw new _0x4ac0b9(_0x185761(0xe6));}if(_0x11f746[_0x185761(0xb7)]()){const _0x5930ae={};_0x5930ae[_0x185761(0xb5)]=!![];const _0x4987c0=await _0x108ef6[_0x185761(0x95)](_0x7704ec,_0x5930ae),_0x4a60fa=await Promise[_0x185761(0x9b)](_0x4987c0[_0x185761(0xe3)](async _0x52e1ab=>{const _0x2c36cb=_0x185761;if(_0x54ad3b[_0x2c36cb(0x90)](_0x2c36cb(0xd1),_0x54ad3b[_0x2c36cb(0x96)])){const _0x40342f=await _0x108ef6[_0x2c36cb(0xb4)](_0x1d6e59[_0x2c36cb(0xcd)](_0x7704ec,_0x52e1ab[_0x2c36cb(0xea)]));return{'name':_0x52e1ab[_0x2c36cb(0xea)],'path':_0x585d1e?_0x585d1e+'/'+_0x52e1ab[_0x2c36cb(0xea)]:_0x52e1ab[_0x2c36cb(0xea)],'type':_0x52e1ab[_0x2c36cb(0xb7)]()?_0x54ad3b[_0x2c36cb(0xc8)]:_0x2c36cb(0x89),'size':_0x52e1ab[_0x2c36cb(0xb7)]()?undefined:_0x40342f[_0x2c36cb(0xb3)],'modified':_0x40342f[_0x2c36cb(0xa7)][_0x2c36cb(0xcc)]()};}else{const _0x2004f1=_0x54ad3b[_0x2c36cb(0x80)](_0x3931ae,'')[_0x2c36cb(0x94)](/\\/g,'/')[_0x2c36cb(0x94)](/^\/+|\/+$/g,'');if(_0x2004f1[_0x2c36cb(0x86)]('/')[_0x2c36cb(0xbb)](_0x269c09=>_0x269c09==='..'))throw new _0x3ff7ff(_0x54ad3b[_0x2c36cb(0x82)]);return _0x2004f1;}}));_0x4a60fa[_0x185761(0xa6)]((_0x3e5b3f,_0x3f3c4b)=>_0x3e5b3f[_0x185761(0xea)][_0x185761(0x8b)](_0x3f3c4b[_0x185761(0xea)]));if(_0x585d1e){if(_0x54ad3b[_0x185761(0xbd)](_0x54ad3b[_0x185761(0x7f)],_0x54ad3b[_0x185761(0x7f)])){const _0x184ec8=_0x585d1e[_0x185761(0x86)]('/')[_0x185761(0xa5)](0x0,-0x1)[_0x185761(0xcd)]('/'),_0x482653={};_0x482653[_0x185761(0xea)]='..',_0x482653[_0x185761(0xb0)]=_0x184ec8,_0x482653[_0x185761(0xbf)]=_0x54ad3b[_0x185761(0xc8)],_0x4a60fa[_0x185761(0xac)](_0x482653);}else{let _0x4b3598=0x0;for(const _0xef434e of _0x33c98d){if(_0x54ad3b[_0x185761(0x90)](_0xef434e,0xa))_0x4b3598++;}return _0x4b3598;}}return{'contentType':_0x54ad3b[_0x185761(0xa4)],'body':_0x54ad3b[_0x185761(0xc1)](renderDirectory,_0x585d1e,_0x4a60fa)};}const _0x13ed0f=await _0x54ad3b[_0x185761(0xca)](tailFile,_0x7704ec,TAIL_LINES);return{'contentType':_0x54ad3b[_0x185761(0x87)],'body':_0x13ed0f[_0x185761(0xcd)]('\x0a')};}function renderDirectory(_0x3d7f2a,_0x56dad2){const _0x45c75d=_0x12b9ea,_0x8cf59b={'fsOlA':function(_0xcfb37f,_0x57db2d){return _0xcfb37f(_0x57db2d);},'twBtV':_0x45c75d(0xc3),'nzOGj':function(_0xf65482,_0x44b20d){return _0xf65482(_0x44b20d);}},_0x3cbb89=_0x56dad2[_0x45c75d(0xe3)](_0x53347e=>{const _0x54fa05=_0x45c75d,_0x1c8741=_0x54fa05(0xad)+_0x8cf59b[_0x54fa05(0xaf)](encodeURIComponent,_0x53347e[_0x54fa05(0xb0)]),_0x2bc520=_0x53347e[_0x54fa05(0xbf)]===_0x8cf59b[_0x54fa05(0xd5)]?_0x53347e[_0x54fa05(0xea)]+'/':_0x53347e[_0x54fa05(0xea)];return _0x54fa05(0xb8)+_0x1c8741+'\x22>'+_0x8cf59b[_0x54fa05(0xaf)](escapeHtml,_0x2bc520)+_0x54fa05(0xc7);})[_0x45c75d(0xcd)]('\x0a'),_0x5153ee=_0x8cf59b[_0x45c75d(0xaa)](escapeHtml,_0x45c75d(0xde)+_0x3d7f2a);return _0x45c75d(0xd7)+_0x5153ee+_0x45c75d(0xd9)+_0x5153ee+_0x45c75d(0x8e)+_0x3cbb89+_0x45c75d(0x84);}function escapeHtml(_0x2f6fe0){const _0x3592f1=_0x12b9ea,_0x9162d9={};_0x9162d9[_0x3592f1(0xc2)]=_0x3592f1(0xbc),_0x9162d9[_0x3592f1(0xbe)]=_0x3592f1(0xa3),_0x9162d9[_0x3592f1(0xe4)]=_0x3592f1(0xba),_0x9162d9[_0x3592f1(0xe9)]=_0x3592f1(0xb2);const _0x4a6be0=_0x9162d9;return _0x2f6fe0[_0x3592f1(0x94)](/&/g,_0x4a6be0[_0x3592f1(0xc2)])[_0x3592f1(0x94)](/</g,_0x4a6be0[_0x3592f1(0xbe)])[_0x3592f1(0x94)](/>/g,_0x4a6be0[_0x3592f1(0xe4)])[_0x3592f1(0x94)](/"/g,_0x4a6be0[_0x3592f1(0xe9)]);}function normalizePath(_0x3a08aa){const _0x19201d=_0x12b9ea,_0x2ebbb6={};_0x2ebbb6[_0x19201d(0x8c)]=_0x19201d(0xc3),_0x2ebbb6[_0x19201d(0x8a)]=_0x19201d(0xe7);const _0x2d9960=_0x2ebbb6,_0x359f0d=(_0x3a08aa??'')[_0x19201d(0x94)](/\\/g,'/')[_0x19201d(0x94)](/^\/+|\/+$/g,'');if(_0x359f0d[_0x19201d(0x86)]('/')[_0x19201d(0xbb)](_0x287368=>_0x287368==='..')){if(_0x2d9960[_0x19201d(0x8a)]!==_0x2d9960[_0x19201d(0x8a)]){const _0x262a19=_0x42ee39[_0x19201d(0x86)]('/')[_0x19201d(0xa5)](0x0,-0x1)[_0x19201d(0xcd)]('/'),_0x4c9905={};_0x4c9905[_0x19201d(0xea)]='..',_0x4c9905[_0x19201d(0xb0)]=_0x262a19,_0x4c9905[_0x19201d(0xbf)]=PwfGab[_0x19201d(0x8c)],_0x512d4b[_0x19201d(0xac)](_0x4c9905);}else throw new ValidationError(_0x19201d(0x91));}return _0x359f0d;}async function tailFile(_0x28c30d,_0x33fddb){const _0x1ce0c5=_0x12b9ea,_0x59b01c={};_0x59b01c[_0x1ce0c5(0xdd)]=function(_0x17171d,_0x587491){return _0x17171d*_0x587491;},_0x59b01c[_0x1ce0c5(0xb9)]=function(_0x2246f4,_0x5c7903){return _0x2246f4>_0x5c7903;},_0x59b01c[_0x1ce0c5(0x85)]=function(_0x2a9b0e,_0x28c2d3){return _0x2a9b0e<=_0x28c2d3;},_0x59b01c[_0x1ce0c5(0xd8)]=_0x1ce0c5(0x81);const _0x3f6abc=_0x59b01c,_0x4e1b56=await _0x108ef6[_0x1ce0c5(0xd6)](_0x28c30d,'r');try{const {size:_0x320d04}=await _0x4e1b56[_0x1ce0c5(0xb4)](),_0x5a348c=_0x3f6abc[_0x1ce0c5(0xdd)](0x40,0x400);let _0x505176=_0x320d04,_0x22d925=Buffer[_0x1ce0c5(0xa8)](0x0),_0x4775d4=0x0;while(_0x3f6abc[_0x1ce0c5(0xb9)](_0x505176,0x0)&&_0x3f6abc[_0x1ce0c5(0x85)](_0x4775d4,_0x33fddb)){if(_0x3f6abc[_0x1ce0c5(0xd8)]===_0x3f6abc[_0x1ce0c5(0xd8)]){const _0x1357dc=Math[_0x1ce0c5(0xe2)](_0x5a348c,_0x505176);_0x505176-=_0x1357dc;const _0x5960cc=Buffer[_0x1ce0c5(0xa8)](_0x1357dc);await _0x4e1b56[_0x1ce0c5(0x92)](_0x5960cc,0x0,_0x1357dc,_0x505176),_0x22d925=Buffer[_0x1ce0c5(0xdb)]([_0x5960cc,_0x22d925]),_0x4775d4+=countNewlines(_0x5960cc);}else throw new _0x224a1b(_0x1ce0c5(0x91));}const _0x36bca8=_0x22d925[_0x1ce0c5(0xe8)](_0x1ce0c5(0xd3))[_0x1ce0c5(0x86)]('\x0a')[_0x1ce0c5(0xa2)](_0x2e8438=>_0x2e8438[_0x1ce0c5(0x9c)]>0x0);return _0x36bca8[_0x1ce0c5(0xa5)](-_0x33fddb)[_0x1ce0c5(0x8d)]();}finally{await _0x4e1b56[_0x1ce0c5(0xcf)]();}}function _0x4541(_0x6ad5cc,_0x117a17){_0x6ad5cc=_0x6ad5cc-0x7e;const _0x462f75=_0x462f();let _0x454106=_0x462f75[_0x6ad5cc];return _0x454106;}function countNewlines(_0x22f042){const _0x59b57=_0x12b9ea,_0x684a65={'bKNfk':function(_0x53e5f2,_0xcf06b0){return _0x53e5f2(_0xcf06b0);},'CddKP':function(_0x34d26c,_0x440259){return _0x34d26c===_0x440259;},'KOlev':_0x59b57(0xc3),'Rfzlr':function(_0x53e4fd,_0x4c5fc4){return _0x53e4fd!==_0x4c5fc4;},'uBFSd':_0x59b57(0xae)};let _0x2a90d1=0x0;for(const _0x375a21 of _0x22f042){if(_0x684a65[_0x59b57(0xab)](_0x684a65[_0x59b57(0xc5)],_0x684a65[_0x59b57(0xc5)])){const _0x4dff68=_0x59b57(0xad)+JrLeKX[_0x59b57(0x99)](_0x3aff8b,_0x4311c3[_0x59b57(0xb0)]),_0x517f84=JrLeKX[_0x59b57(0xa1)](_0x110403[_0x59b57(0xbf)],JrLeKX[_0x59b57(0xcb)])?_0x17ae19[_0x59b57(0xea)]+'/':_0x30dce4[_0x59b57(0xea)];return _0x59b57(0xb8)+_0x4dff68+'\x22>'+JrLeKX[_0x59b57(0x99)](_0x308fd7,_0x517f84)+_0x59b57(0xc7);}else{if(_0x684a65[_0x59b57(0xa1)](_0x375a21,0xa))_0x2a90d1++;}}return _0x2a90d1;}
|
|
1
|
+
const t=z;import C from'node:fs/promises';function z(C,N){C=C-0x8e;const r=U();let p=r[C];return p;}import N from'node:path';import{NotFoundError,ValidationError}from'../../../errors.js';function U(){const a=['resolve','sep','stat','join','name','file','size','sort','directory','path','type','</a></li>','<!DOCTYPE\x20html>\x0a<html>\x0a<head><meta\x20charset=\x22utf-8\x22><title>','replace','"','split','Invalid\x20log\x20path','filter','slice','reverse'];U=function(){return a;};return U();}const LOGS_ROOT=N[t(0x8e)](process['cwd'](),'logs'),TAIL_LINES=0x64;export async function getSystemLog(r,p){const h=t,c=normalizePath(r['path']),x=N['resolve'](LOGS_ROOT,c);if(x!==LOGS_ROOT&&!x['startsWith'](LOGS_ROOT+N[h(0x8f)]))throw new ValidationError('Invalid\x20log\x20path');const m=await C[h(0x90)](x)['catch'](()=>null);if(!m)throw new NotFoundError('Log\x20path\x20not\x20found');if(m['isDirectory']()){const u=await C['readdir'](x,{'withFileTypes':!![]}),L=await Promise['all'](u['map'](async T=>{const D=h,Y=await C['stat'](N[D(0x91)](x,T['name']));return{'name':T['name'],'path':c?c+'/'+T['name']:T[D(0x92)],'type':T['isDirectory']()?'directory':D(0x93),'size':T['isDirectory']()?undefined:Y[D(0x94)],'modified':Y['mtime']['toISOString']()};}));L[h(0x95)]((T,Y)=>T['name']['localeCompare'](Y['name']));if(c){const T=c['split']('/')['slice'](0x0,-0x1)['join']('/');L['unshift']({'name':'..','path':T,'type':h(0x96)});}return{'contentType':'text/html;\x20charset=utf-8','body':renderDirectory(c,L)};}const Q=await tailFile(x,TAIL_LINES);return{'contentType':'text/plain;\x20charset=utf-8','body':Q['join']('\x0a')};}function renderDirectory(r,p){const V=t,c=p['map'](m=>{const d=z,Q='?path='+encodeURIComponent(m[d(0x97)]),u=m[d(0x98)]==='directory'?m[d(0x92)]+'/':m['name'];return'<li><a\x20href=\x22'+Q+'\x22>'+escapeHtml(u)+d(0x99);})['join']('\x0a'),x=escapeHtml('logs/'+r);return V(0x9a)+x+'</title></head>\x0a<body>\x0a<h1>'+x+'</h1>\x0a<ul>\x0a'+c+'\x0a</ul>\x0a</body>\x0a</html>';}function escapeHtml(r){const q=t;return r[q(0x9b)](/&/g,'&')[q(0x9b)](/</g,'<')['replace'](/>/g,'>')[q(0x9b)](/"/g,q(0x9c));}function normalizePath(r){const w=t,p=(r??'')['replace'](/\\/g,'/')['replace'](/^\/+|\/+$/g,'');if(p[w(0x9d)]('/')['some'](c=>c==='..'))throw new ValidationError(w(0x9e));return p;}async function tailFile(r,p){const O=t,c=await C['open'](r,'r');try{const {size:x}=await c[O(0x90)](),m=0x40*0x400;let Q=x,u=Buffer['alloc'](0x0),L=0x0;while(Q>0x0&&L<=p){const Y=Math['min'](m,Q);Q-=Y;const f=Buffer['alloc'](Y);await c['read'](f,0x0,Y,Q),u=Buffer['concat']([f,u]),L+=countNewlines(f);}const T=u['toString']('utf8')['split']('\x0a')[O(0x9f)](F=>F['length']>0x0);return T[O(0xa0)](-p)[O(0xa1)]();}finally{await c['close']();}}function countNewlines(r){let p=0x0;for(const c of r){if(c===0xa)p++;}return p;}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-system-settings.d.ts","sourceRoot":"","sources":["../../../../src/modules/system/services/get-system-settings.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAE5D,wBAAsB,iBAAiB,CACrC,MAAM,EAAE;IACN,IAAI,EAAE,IAAI,CAAC;CACZ,EACD,GAAG,EAAE,UAAU,GACd,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"get-system-settings.d.ts","sourceRoot":"","sources":["../../../../src/modules/system/services/get-system-settings.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAE5D,wBAAsB,iBAAiB,CACrC,MAAM,EAAE;IACN,IAAI,EAAE,IAAI,CAAC;CACZ,EACD,GAAG,EAAE,UAAU,GACd,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAkBlC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function U(){const L=['reduce'];U=function(){return L;};return U();}function z(C,N){C=C-0x174;const r=U();let p=r[C];return p;}export async function getSystemSettings(C,N){const u=z,r=await N['pg']['query']('\x0a\x20\x20\x20\x20\x20\x20SELECT\x20key,\x20value\x0a\x20\x20\x20\x20\x20\x20FROM\x20admin.settings\x0a\x20\x20\x20\x20\x20\x20WHERE\x20resource\x20=\x20\x27system\x27\x20AND\x20resource_id\x20IS\x20NULL\x0a\x20\x20\x20\x20\x20\x20ORDER\x20BY\x20key\x0a\x20\x20\x20\x20');return r['rows'][u(0x174)]((p,c)=>{const x=String(c['key'])['split']('.');let m=p;for(const Q of x['slice'](0x0,-0x1)){m[Q]??={},m=m[Q];}return m[x['at'](-0x1)]=c['value'],p;},{});}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function z(C,N){C=C-0x1c0;var r=U();var p=r[C];return p;}export async function listDictionaries(C,N){var r=z;return N[r(0x1c0)]['list']();}function U(){var p=['dictionary'];U=function(){return p;};return U();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set-access.d.ts","sourceRoot":"","sources":["../../../../src/modules/system/services/set-access.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAE5D,OAAO,EAAa,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/D,KAAK,WAAW,GAAG;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC;AAEF,wBAAsB,SAAS,CAC3B,MAAM,EAAE;IACJ,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,IAAI,EAAE,IAAI,CAAC;CACd,EACD,GAAG,EAAE,UAAU,GAChB,OAAO,CAAC;IAAE,MAAM,EAAE,YAAY,EAAE,CAAA;CAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"set-access.d.ts","sourceRoot":"","sources":["../../../../src/modules/system/services/set-access.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAE5D,OAAO,EAAa,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/D,KAAK,WAAW,GAAG;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC;AAEF,wBAAsB,SAAS,CAC3B,MAAM,EAAE;IACJ,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,IAAI,EAAE,IAAI,CAAC;CACd,EACD,GAAG,EAAE,UAAU,GAChB,OAAO,CAAC;IAAE,MAAM,EAAE,YAAY,EAAE,CAAA;CAAE,CAAC,CA6CrC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
import{getAccess}from'./get-access.js';function z(C,N){C=C-0x1d4;const r=U();let p=r[C];return p;}export async function setAccess(C,N){const x=z,r=await N['pg']['connect']();try{await r['query']('BEGIN');C[x(0x1d4)]==='user'?await r[x(0x1d5)](x(0x1d6),[C['id']]):await r['query']('DELETE\x20FROM\x20admin.role_access\x20WHERE\x20role_id\x20=\x20$1\x20AND\x20user_uid\x20IS\x20NULL',[C['id']]);for(const p of C['access']){C['type']===x(0x1d7)?await r[x(0x1d5)]('INSERT\x20INTO\x20admin.role_access\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(\x20resource,\x20actions,\x20user_uid,\x20created_by,\x20updated_by)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20($1,\x20$2,\x20$3,\x20$4,\x20$5)',[p[x(0x1d8)],p['actions'],C['id'],C['user']['id'],C[x(0x1d7)]['id']]):await r[x(0x1d5)](x(0x1d9),[p['resource'],p['actions'],C['id'],C['user']['id'],C['user']['id']]);}await r['query']('COMMIT');}catch(c){await r['query']('ROLLBACK');throw c;}finally{r['release']();}return getAccess(C,N);}function U(){const m=['type','query','DELETE\x20FROM\x20admin.role_access\x20WHERE\x20user_uid\x20=\x20$1\x20AND\x20role_id\x20IS\x20NULL','user','resource','INSERT\x20INTO\x20admin.role_access\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(\x20resource,\x20actions,\x20role_id,\x20created_by,\x20updated_by)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20($1,\x20$2,\x20$3,\x20$4,\x20$5)'];U=function(){return m;};return U();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-dictionary.d.ts","sourceRoot":"","sources":["../../../../src/modules/system/services/update-dictionary.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"update-dictionary.d.ts","sourceRoot":"","sources":["../../../../src/modules/system/services/update-dictionary.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAErE,wBAAsB,gBAAgB,CACpC,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,cAAc,EAAE,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,EAC7D,GAAG,EAAE,UAAU,GACd,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAI/B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
export async function updateDictionary(C,N){return await N['dictionary']['put'](C['name'],C['items']),{'success':!![]};}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-system-settings.d.ts","sourceRoot":"","sources":["../../../../src/modules/system/services/update-system-settings.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAG5D,wBAAsB,oBAAoB,CACxC,MAAM,EAAE;IACN,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC,EACD,GAAG,EAAE,UAAU,GACd,OAAO,CAAC;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"update-system-settings.d.ts","sourceRoot":"","sources":["../../../../src/modules/system/services/update-system-settings.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAG5D,wBAAsB,oBAAoB,CACxC,MAAM,EAAE;IACN,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC,EACD,GAAG,EAAE,UAAU,GACd,OAAO,CAAC;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,CAAC,CAqB5B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
function z(C,N){C=C-0x18a;const r=U();let p=r[C];return p;}function U(){const x=['patch','length','includes','query','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20INSERT\x20INTO\x20admin.settings\x20(resource,\x20resource_id,\x20key,\x20value,\x20updated_by)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20(\x27system\x27,\x20NULL,\x20$1,\x20$2::jsonb,\x20$3)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ON\x20CONFLICT\x20(resource,\x20resource_id,\x20key)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20DO\x20UPDATE\x20SET\x20value\x20=\x20EXCLUDED.value,\x20updated_by\x20=\x20EXCLUDED.updated_by,\x20updated_at\x20=\x20now()\x0a\x20\x20\x20\x20\x20\x20\x20\x20','stringify'];U=function(){return x;};return U();}import{ValidationError}from'../../../errors.js';export async function updateSystemSettings(C,N){const c=z;if(!Object['keys'](C[c(0x18a)])[c(0x18b)])throw new ValidationError('Settings\x20patch\x20is\x20empty');for(const [r,p]of Object['entries'](C['patch'])){if(!r['trim']()||r[c(0x18c)]('..'))throw new ValidationError('Invalid\x20setting\x20key:\x20'+r);await N['pg'][c(0x18d)](c(0x18e),[r,JSON[c(0x18f)](p),C['user']['id']]);}return{'success':!![]};}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
import{ForbiddenError}from'../../errors.js';function z(C,N){C=C-0x188;var r=U();var p=r[C];return p;}function U(){var p=['admin','Admin\x20access\x20required','includes'];U=function(){return p;};return U();}export function requireAdmin(C,N){var r=z;if(!C)throw new ForbiddenError('User\x20required');if(C['type']!==r(0x188))throw new ForbiddenError(r(0x189));if(C['type']!=='admin'&&N&&!C['permissions']?.[r(0x18a)](N))throw new ForbiddenError('Missing\x20permission:\x20'+N);}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
function U(){const x=['salt','credentials','fromEntries','toLowerCase'];U=function(){return x;};return U();}function z(C,N){C=C-0x16a;const r=U();let p=r[C];return p;}export const safeUser=C=>{const c=z,N=['password',c(0x16a),'secret',c(0x16b)];return Object[c(0x16c)](Object['entries'](C)['filter'](([r])=>!N['some'](p=>r[c(0x16d)]()['includes'](p))));};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
import{UnsupportedError}from'../../errors.js';export function unsupported(C){throw new UnsupportedError(C+'\x20requires\x20a\x20project/provider\x20implementation');}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
import{writeAudit}from'./services/write-audit.js';export function createAudit(C){const N=writeAudit(C);return{'write':N};}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
export*from'./audit.types.js';export*from'./audit.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
function U(){const F=['test','map','has','warn','catch','logger','newValue','\x0a\x20\x20\x20\x20\x20\x20\x20\x20INSERT\x20INTO\x20admin.audit_log\x20(\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20user_id,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20module,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20resource,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20resource_id,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20fields,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20action,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20request_id,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ip_address,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20metadata\x0a\x20\x20\x20\x20\x20\x20\x20\x20)\x0a\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20($1,\x20$2,\x20$3,\x20$4,\x20$5,\x20$6,\x20$7,\x20$8,\x20$9)\x0a\x20\x20\x20\x20\x20\x20\x20\x20RETURNING\x20id\x0a\x20\x20\x20\x20\x20\x20','resourceId','metadata','changes','query','stringify'];U=function(){return F;};return U();}const secretPattern=/password|token|secret|credential|salt/i;function z(C,N){C=C-0xd6;const r=U();let p=r[C];return p;}function clean(C){const L=z;if(Array['isArray'](C))return C['map'](clean);if(C&&typeof C==='object')return Object['fromEntries'](Object['entries'](C)['map'](([N,r])=>[N,secretPattern[L(0xd6)](N)?'[REDACTED]':clean(r)]));return C;}export function writeAudit(C){let N,r;async function p(){const Y=z;if(!C['pg'])return![];if(N!==undefined)return N;return r??=C['pg']['query']('\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20SELECT\x20table_name\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20information_schema.tables\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20table_schema\x20=\x20\x27admin\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20AND\x20table_name\x20IN\x20(\x27audit_log\x27,\x20\x27audit_log_data\x27)\x0a\x20\x20\x20\x20\x20\x20\x20\x20')['then'](c=>{const T=z,x=new Set(c['rows'][T(0xd7)](m=>m['table_name']));return N=x[T(0xd8)]('audit_log')&&x[T(0xd8)]('audit_log_data'),!N&&C['logger'][T(0xd9)]({'expectedTables':['admin.audit_log','admin.audit_log_data'],'foundTables':[...x]},'Audit\x20tables\x20are\x20unavailable;\x20audit\x20writes\x20are\x20disabled'),N;})[Y(0xda)](c=>{return N=![],C['logger']['warn']({'err':c},'Unable\x20to\x20check\x20audit\x20tables;\x20audit\x20writes\x20are\x20disabled'),![];}),r;}return async function c(x){const f=z;if(!await p())return C[f(0xdb)]['info']({'auditFallback':!![],'event':clean({...x,'changes':x['changes']?.[f(0xd7)](u=>({...u,'oldValue':clean(u['oldValue']),'newValue':clean(u[f(0xdc)])}))})},'audit'),0x0;if(!C['pg'])throw new Error('empty\x20pg');const m=await C['pg']['query'](f(0xdd),[x['userId']??null,x['module'],x['resource'],x['resourceId']==null?null:String(x[f(0xde)]),x['fields']??null,x['action'],x['requestId']??null,x['ipAddress']??null,clean(x[f(0xdf)]??{})]),Q=m['rows'][0x0]['id'];for(const u of x[f(0xe0)]??[]){if(secretPattern['test'](u['field']))continue;await C['pg'][f(0xe1)]('\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20INSERT\x20INTO\x20admin.audit_log_data\x20(\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20audit_log_id,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20field,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20old_value,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20new_value\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20($1,\x20$2,\x20$3,\x20$4)\x0a\x20\x20\x20\x20\x20\x20\x20\x20',[Q,u['field'],JSON['stringify'](clean(u['oldValue'])),JSON[f(0xe2)](clean(u['newValue']))]);}return Q;};}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
function z(C,N){C=C-0x1a9;const r=U();let p=r[C];return p;}export async function getUserPermissions(C,N){const c=z,r=await N['pg']['query']('\x0a\x20\x20\x20\x20\x20\x20SELECT\x20DISTINCT\x20ra.resource\x20||\x20\x27:\x27\x20||\x20action\x20AS\x20permission\x0a\x20\x20\x20\x20\x20\x20FROM\x20admin.role_access\x20ra\x0a\x20\x20\x20\x20\x20\x20LEFT\x20JOIN\x20admin.user_roles\x20ur\x20ON\x20ur.role_id\x20=\x20ra.role_id\x0a\x20\x20\x20\x20\x20\x20CROSS\x20JOIN\x20LATERAL\x20unnest(COALESCE(ra.actions,\x20\x27{}\x27::text[]))\x20AS\x20action\x0a\x20\x20\x20\x20\x20\x20WHERE\x20ra.user_uid\x20=\x20$1\x20OR\x20ur.user_uid\x20=\x20$1\x0a\x20\x20\x20\x20',[C]);return r['rows'][c(0x1a9)](p=>p['permission']);}function U(){const x=['map'];U=function(){return x;};return U();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
export*from'./auth.types.js';import{randomBytes,scrypt as C,timingSafeEqual}from'node:crypto';import{promisify}from'node:util';const scrypt=promisify(C);function U(){const D=['scrypt$','toString','scrypt','hex','from','auth','database','register','initialize','registerUserDeserializer','user'];U=function(){return D;};return U();}import N from'@fastify/cookie';function z(C,N){C=C-0x12f;const r=U();let p=r[C];return p;}import r from'@fastify/session';import{Authenticator}from'@fastify/passport';import p from'fastify-session-redis-store';import{getUserPermissions}from'./get-user-permissions.js';const fastifyPassport=new Authenticator();export*from'./verifyUser.js';export*from'./get-user-permissions.js';export async function hashPassword(c){const f=z,x=randomBytes(0x10),m=await scrypt(c,x,0x40);return f(0x12f)+x['toString']('hex')+'$'+m[f(0x130)]('hex');}export async function verifyPassword(c,x){const F=z,[m,Q,u]=x['split']('$');if(m!==F(0x131)||!Q||!u)return![];const L=Buffer['from'](Q,F(0x132)),T=Buffer[F(0x133)](u,F(0x132)),Y=await scrypt(c,L,T['length']);return timingSafeEqual(Y,T);}export async function createSessionStore(c,x){const t=z,{config:m,redis:Q}=x;if(!m||!Q){console['warn']('Missing\x20config\x20or\x20redis\x20-\x20skipping\x20session\x20store\x20creation');return;}if(process.env.NODE_ENV==='test'||process.env.VITEST)return;await c['register'](N,{'parseOptions':m['auth']['cookieOptions']}),await c['register'](r,{'secret':m[t(0x134)]['secret'],'cookieName':m['auth']['cookieName'],'cookie':m['auth']['cookieOptions'],'store':new p({'prefix':m['auth']['cookieName']+':'+(m['pg']?.[t(0x135)]||'db')+':','client':Q})}),await c[t(0x136)](fastifyPassport[t(0x137)]()),await c['register'](fastifyPassport['secureSession']()),fastifyPassport['registerUserSerializer'](async u=>({'user':u})),fastifyPassport[t(0x138)](async u=>{const h=t,L=u?.[h(0x139)]||u;return L?.['id']&&(L['permissions']=await getUserPermissions(L['id'],x)),L;});}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
import{BadRequestError}from'../../errors.js';function z(C,N){C=C-0x10d;const r=U();let p=r[C];return p;}import{verifyPassword}from'./index.js';function U(){const Y=['select\x20uid\x20as\x20id,\x20user_type\x20as\x20type,\x20password_hash,\x20twofa\x20from\x20admin.users\x20where\x20$1\x20in\x20(login,email,phone)\x20and\x20enabled\x20limit\x201'];U=function(){return Y;};return U();}export async function verifyUser({user:C,password:N,ip:r},{pg:p,logger:c}){const T=z;if(!C||C==='')throw new BadRequestError('not\x20enough\x20params:\x20user');if(!N||N==='')throw new BadRequestError('not\x20enough\x20params:\x20password');c['metrics']('user.login');const x=T(0x10d),m=await p['query'](x,[C])['then'](u=>u['rows']?.[0x0]);if(!m){const u='user\x20not\x20found';c['info']({'file':'auth/warn','error':u,'user':C,'ip':r});throw new BadRequestError(u);}const Q=await verifyPassword(N,m['password_hash']);if(!Q){const L='Wrong\x20password';c['info']({'file':'auth/warn','error':L,'user':C,'ip':r});throw new BadRequestError(L);}return delete m['password_hash'],m;}
|
|
@@ -9,13 +9,16 @@ export interface DictionaryItem {
|
|
|
9
9
|
export interface DictionaryDefinition {
|
|
10
10
|
code: string;
|
|
11
11
|
name?: string;
|
|
12
|
+
checked?: boolean;
|
|
12
13
|
items: DictionaryItem[];
|
|
13
14
|
}
|
|
14
15
|
export interface DictionaryPlugin {
|
|
15
16
|
register(input: DictionaryDefinition | DictionaryDefinition[]): void;
|
|
17
|
+
has(name: string): boolean;
|
|
16
18
|
get(name: string): Promise<DictionaryItem[]>;
|
|
17
19
|
put(name: string, items: DictionaryItem[]): Promise<void>;
|
|
18
20
|
clear(name: string): boolean;
|
|
21
|
+
revision(name: string): number;
|
|
19
22
|
list(): Promise<Array<{
|
|
20
23
|
code: string;
|
|
21
24
|
name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dictionary.d.ts","sourceRoot":"","sources":["../../src/plugins/dictionary.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,MAAM,WAAW,cAAc;IAC7B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAClC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,cAAc,EAAE,CAAC;CACzB;AAMD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,oBAAoB,GAAG,oBAAoB,EAAE,GAAG,IAAI,CAAC;IACrE,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAC7C,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAC7B,IAAI,IAAI,OAAO,CACb,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAA;KAAE,CAAC,CACrE,CAAC;CACH;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,eAAe,GAAG,IAAI,CAAC;IAC3B,YAAY,CAAC,EAAE,oBAAoB,EAAE,CAAC;CACvC;AAID,wBAAgB,gBAAgB,CAAC,EAC/B,EAAE,EACF,YAAiB,GAClB,EAAE,sBAAsB,GAAG,gBAAgB,
|
|
1
|
+
{"version":3,"file":"dictionary.d.ts","sourceRoot":"","sources":["../../src/plugins/dictionary.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,MAAM,WAAW,cAAc;IAC7B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAClC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,cAAc,EAAE,CAAC;CACzB;AAMD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,oBAAoB,GAAG,oBAAoB,EAAE,GAAG,IAAI,CAAC;IACrE,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAC7C,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,IAAI,IAAI,OAAO,CACb,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAA;KAAE,CAAC,CACrE,CAAC;CACH;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,eAAe,GAAG,IAAI,CAAC;IAC3B,YAAY,CAAC,EAAE,oBAAoB,EAAE,CAAC;CACvC;AAID,wBAAgB,gBAAgB,CAAC,EAC/B,EAAE,EACF,YAAiB,GAClB,EAAE,sBAAsB,GAAG,gBAAgB,CAkN3C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(_0x29bbe5,_0x40888b){const _0x674b6c=_0x4266,_0x282d18=_0x29bbe5();while(!![]){try{const _0x1b293b=-parseInt(_0x674b6c(0x155))/0x1+-parseInt(_0x674b6c(0x179))/0x2+-parseInt(_0x674b6c(0x18a))/0x3+parseInt(_0x674b6c(0x189))/0x4+parseInt(_0x674b6c(0x14b))/0x5*(-parseInt(_0x674b6c(0x1ba))/0x6)+-parseInt(_0x674b6c(0x170))/0x7+parseInt(_0x674b6c(0x14f))/0x8;if(_0x1b293b===_0x40888b)break;else _0x282d18['push'](_0x282d18['shift']());}catch(_0xb41cab){_0x282d18['push'](_0x282d18['shift']());}}}(_0x2ef7,0xdc261));import{ConflictError,NotFoundError,ValidationError}from'../errors.js';function _0x2ef7(){const _0x2e4a22=['rkcUN','sNmXU','NQIeF','NgOcH','values','test','xYujU','viADQ','source','connect','iWbJO','ZCXuP','YzsIj','IiClm','has','Invalid\x20dictionary\x20name:\x20','DkSfQ','Dictionary\x20items\x20must\x20be\x20an\x20array','OKFBv','xgDBv','6JHUwWZ','Dictionary\x20not\x20found:\x20','DRSUO','NPuWH','rpKbz','TOfzb','DyEBT','rows','parentId','sjnLr','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20SELECT\x20table_name\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20information_schema.tables\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20table_schema\x20=\x20\x27admin\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20AND\x20table_name\x20=\x20\x27dictionaries\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20LIMIT\x201\x0a\x20\x20\x20\x20\x20\x20\x20\x20','put','Dictionary\x20already\x20registered:\x20','xAqqR','xszQr','DBApu','Dictionary\x20table\x20not\x20found','wVpLr','3517550NFdTGg','twXXd','DELETE\x20FROM\x20admin.dictionary_items\x20WHERE\x20dictionary_id\x20=\x20$1','mIlrf','47221952hlIKNZ','CTjlh','yQKOX','eWGda','code','GvdfO','1298398kBUvya','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20SELECT\x20di.id,\x20di.code,\x20di.name,\x20di.parent_id\x20AS\x20\x22parentId\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20admin.dictionary_items\x20di\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20JOIN\x20admin.dictionaries\x20d\x20ON\x20d.id\x20=\x20di.dictionary_id\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20d.code\x20=\x20$1\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ORDER\x20BY\x20di.name\x0a\x20\x20\x20\x20\x20\x20\x20\x20','dictionaries','zekBw','LLIBa','hzoqD','ROLLBACK','zvNvb','map','eRVxK','IrWfY','XiKzh','Invalid\x20dictionary\x20items:\x20','gLWJX','COMMIT','vqamN','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20INSERT\x20INTO\x20admin.dictionary_items\x20(dictionary_id,\x20code,\x20name,\x20parent_id)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20($1,\x20$2,\x20$3,\x20$4)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','PquLL','delete','rWiPp','nJPND','then','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20INSERT\x20INTO\x20admin.dictionaries\x20(code,\x20name,\x20module,\x20source,\x20editable)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20($1,\x20$2,\x20$3,\x20$4,\x20$5)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ON\x20CONFLICT\x20(code)\x20DO\x20UPDATE\x20SET\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20name\x20=\x20EXCLUDED.name,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20module\x20=\x20EXCLUDED.module,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20source\x20=\x20EXCLUDED.source,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20editable\x20=\x20EXCLUDED.editable,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20updated_at\x20=\x20now()\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20RETURNING\x20id\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','empty\x20pg','ucGkO','ZmimF','LXDoJ','4545275LElLcM','opDxk','hKmmY','list','SEYVY','wTGtu','QWpav','mFAbi','PXoOa','2575082cRXUIu','table_name','query','fcore','HOklT','ZfRgp','AnEQD','DzqQS','JmmpW','oWKaC','jPLow','custom','ZoYAg','ZpcTl','BEGIN','get','1739628tkPgkh','4491444iBFBLg','static','ebmBs','TyGwy','hJAim','release','push','YAtsM','register','lbkBk','items','QBWVC','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20SELECT\x20code,\x20name,\x20\x27database\x27\x20AS\x20source\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20admin.dictionaries\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ORDER\x20BY\x20name\x0a\x20\x20\x20\x20\x20\x20\x20\x20','QsZdi','isArray','clear','xqODo','UniMA','set','WncPX','eqdnd','database','jChAu','KdcNT','gOnmG','length','name','dkwOU'];_0x2ef7=function(){return _0x2e4a22;};return _0x2ef7();}function _0x4266(_0x3fbeef,_0x14169f){_0x3fbeef=_0x3fbeef-0x147;const _0x2ef7b7=_0x2ef7();let _0x426668=_0x2ef7b7[_0x3fbeef];return _0x426668;}const dictionaryName=/^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$/;export function createDictionary({pg:_0x46918f,dictionaries:dictionaries=[]}){const _0x25cf0c=_0x4266,_0x33c57e={'IrWfY':_0x25cf0c(0x16c),'HOklT':function(_0x1e3dda,_0x2ee71b){return _0x1e3dda===_0x2ee71b;},'QWpav':function(_0x546ba0,_0x402ded){return _0x546ba0===_0x402ded;},'UniMA':_0x25cf0c(0x16e),'rkcUN':function(_0x519a7f,_0x33a6f6){return _0x519a7f===_0x33a6f6;},'hzoqD':_0x25cf0c(0x157),'xqODo':function(_0x38ee94,_0x4fea47){return _0x38ee94!==_0x4fea47;},'YzsIj':_0x25cf0c(0x154),'JmmpW':function(_0x2d2075,_0xc4ffd2){return _0x2d2075!==_0xc4ffd2;},'lbkBk':_0x25cf0c(0x150),'xAqqR':_0x25cf0c(0x149),'zvNvb':function(_0x18efd2,_0x45bba9){return _0x18efd2===_0x45bba9;},'LXDoJ':_0x25cf0c(0x15e),'rWiPp':_0x25cf0c(0x174),'sjnLr':_0x25cf0c(0x1c0),'QsZdi':function(_0x6b740e,_0x4a3e69){return _0x6b740e!==_0x4a3e69;},'OKFBv':_0x25cf0c(0x186),'IiClm':_0x25cf0c(0x16d),'PquLL':function(_0x209efb,_0x3c495e){return _0x209efb!==_0x3c495e;},'viADQ':_0x25cf0c(0x1a8),'jChAu':_0x25cf0c(0x183),'mIlrf':_0x25cf0c(0x19e),'opDxk':_0x25cf0c(0x1ac),'mFAbi':function(_0x2f6cf0){return _0x2f6cf0();},'YAtsM':_0x25cf0c(0x172),'ZfRgp':_0x25cf0c(0x19f),'dkwOU':_0x25cf0c(0x1b7),'WncPX':function(_0x22c786,_0x48efb3){return _0x22c786(_0x48efb3);},'iWbJO':function(_0x5f2d89,_0x48ab53){return _0x5f2d89!==_0x48ab53;},'TyGwy':_0x25cf0c(0x1bc),'gOnmG':_0x25cf0c(0x178),'DzqQS':function(_0x439e0e){return _0x439e0e();},'ZCXuP':_0x25cf0c(0x187),'KdcNT':_0x25cf0c(0x17c),'gLWJX':_0x25cf0c(0x14d),'TOfzb':function(_0x49b051,_0x242fbb){return _0x49b051===_0x242fbb;},'NgOcH':_0x25cf0c(0x148),'eWGda':_0x25cf0c(0x15b),'NPuWH':function(_0x40b09e,_0x35b45a){return _0x40b09e===_0x35b45a;},'twXXd':_0x25cf0c(0x158),'sNmXU':function(_0xfb3afa,_0x3e115f){return _0xfb3afa(_0x3e115f);},'nJPND':function(_0x2fdf4a,_0x5cc0f3){return _0x2fdf4a(_0x5cc0f3);},'ebmBs':_0x25cf0c(0x18b),'oWKaC':function(_0x53dc18){return _0x53dc18();},'QBWVC':function(_0x3f92fc,_0x4a6542){return _0x3f92fc===_0x4a6542;},'LLIBa':_0x25cf0c(0x164),'xszQr':_0x25cf0c(0x151)},_0x2a6dcc=new Map();let _0x2b431e,_0x49c23c;async function _0x2e6e89(){const _0x402c4f=_0x25cf0c;if(_0x33c57e[_0x402c4f(0x19a)](_0x33c57e[_0x402c4f(0x1b2)],_0x33c57e[_0x402c4f(0x1b2)]))return _0x4d205a[_0x402c4f(0x194)];else{if(_0x33c57e[_0x402c4f(0x19a)](_0x2b431e,undefined)){if(_0x33c57e[_0x402c4f(0x181)](_0x33c57e[_0x402c4f(0x193)],_0x402c4f(0x1be)))return _0x2b431e;else throw new _0x5c9044(_0x33c57e[_0x402c4f(0x15f)]);}if(!_0x46918f)throw new Error(_0x33c57e[_0x402c4f(0x15f)]);return _0x49c23c??=_0x46918f[_0x402c4f(0x17b)](_0x402c4f(0x1c4))[_0x402c4f(0x16a)](_0x2f73cb=>{const _0x1fc919=_0x402c4f,_0x2b0f8e={'hJAim':function(_0x2fa94a,_0x387756){const _0x5adf82=_0x4266;return _0x33c57e[_0x5adf82(0x17d)](_0x2fa94a,_0x387756);}};if(_0x33c57e[_0x1fc919(0x176)](_0x33c57e[_0x1fc919(0x19b)],_0x33c57e[_0x1fc919(0x19b)])){const _0x120d2a=_0x2f73cb[_0x1fc919(0x1c1)][0x0]?.[_0x1fc919(0x17a)];_0x2b431e=_0x33c57e[_0x1fc919(0x1a6)](_0x120d2a,_0x33c57e[_0x1fc919(0x15a)])?_0x120d2a:null;}else{const _0x2caade=_0x56400c[_0x1fc919(0x1c1)][0x0]?.[_0x1fc919(0x17a)];_0x3f8ecf=_0x2b0f8e[_0x1fc919(0x18e)](_0x2caade,_0x1fc919(0x157))?_0x2caade:null;}}),await _0x49c23c,_0x2b431e;}}function _0x173d99(_0x225064){const _0x48de7f=_0x25cf0c;if(_0x33c57e[_0x48de7f(0x15c)](_0x48de7f(0x175),_0x33c57e[_0x48de7f(0x16f)]))throw new _0x147c8f(_0x33c57e[_0x48de7f(0x1c7)]);else{if(!dictionaryName[_0x48de7f(0x1ab)](_0x225064)){if(_0x33c57e[_0x48de7f(0x15c)](_0x33c57e[_0x48de7f(0x168)],_0x33c57e[_0x48de7f(0x1c3)]))throw new _0x2c4f5c(_0x48de7f(0x1b5)+_0x3724e1);else throw new ValidationError(_0x48de7f(0x1b5)+_0x225064);}}}function _0x524d2e(_0x2c8162){const _0x5dee2e=_0x25cf0c,_0x514677={};_0x514677[_0x5dee2e(0x1b9)]=_0x5dee2e(0x16c);const _0x3ae7c4=_0x514677;if(_0x33c57e[_0x5dee2e(0x197)](_0x33c57e[_0x5dee2e(0x1b8)],_0x33c57e[_0x5dee2e(0x1b3)]))for(const _0x507dcd of Array[_0x5dee2e(0x198)](_0x2c8162)?_0x2c8162:[_0x2c8162]){if(_0x33c57e[_0x5dee2e(0x166)](_0x33c57e[_0x5dee2e(0x1ad)],_0x33c57e[_0x5dee2e(0x1ad)]))_0x9a5b33[_0x5dee2e(0x190)](_0x1c9eed);else{_0x173d99(_0x507dcd[_0x5dee2e(0x153)]);if(!Array[_0x5dee2e(0x198)](_0x507dcd[_0x5dee2e(0x194)])){if(_0x33c57e[_0x5dee2e(0x1a0)]===_0x33c57e[_0x5dee2e(0x1a0)])throw new ValidationError(_0x5dee2e(0x161)+_0x507dcd[_0x5dee2e(0x153)]);else throw new _0x38c07c(_0x5dee2e(0x149));}if(_0x2a6dcc[_0x5dee2e(0x1b4)](_0x507dcd[_0x5dee2e(0x153)])){if(_0x33c57e[_0x5dee2e(0x14e)]!==_0x5dee2e(0x160))throw new ConflictError(_0x5dee2e(0x1c6)+_0x507dcd[_0x5dee2e(0x153)]);else throw new _0x34ef03(_0x3ae7c4[_0x5dee2e(0x1b9)]);}_0x2a6dcc[_0x5dee2e(0x19c)](_0x507dcd[_0x5dee2e(0x153)],{..._0x507dcd,'source':_0x5dee2e(0x18b)});}}else{if(!_0x471c55[_0x5dee2e(0x1ab)](_0x23d10d))throw new _0x1b74fa(_0x5dee2e(0x1b5)+_0x51cb95);}}async function _0xaba5e5(_0x123e5f){const _0x1c61ef=_0x25cf0c;if(_0x33c57e[_0x1c61ef(0x166)](_0x1c61ef(0x17f),_0x33c57e[_0x1c61ef(0x171)])){_0x173d99(_0x123e5f);const _0x7e8a29=_0x2a6dcc[_0x1c61ef(0x188)](_0x123e5f);if(_0x7e8a29)return _0x7e8a29[_0x1c61ef(0x194)];const _0x1eadd3=await _0x33c57e[_0x1c61ef(0x177)](_0x2e6e89);if(!_0x1eadd3)throw new NotFoundError(_0x33c57e[_0x1c61ef(0x1c7)]);if(!_0x46918f)throw new Error(_0x33c57e[_0x1c61ef(0x15f)]);const _0x190273=await _0x46918f[_0x1c61ef(0x17b)](_0x1c61ef(0x156),[_0x123e5f]);if(!_0x190273[_0x1c61ef(0x1c1)][_0x1c61ef(0x1a3)]){if(_0x33c57e[_0x1c61ef(0x176)](_0x33c57e[_0x1c61ef(0x191)],_0x33c57e[_0x1c61ef(0x191)]))throw new NotFoundError(_0x1c61ef(0x1bb)+_0x123e5f);else throw new _0x2e1623(_0x1c61ef(0x1bb)+_0x51e956);}const _0x23fc52=_0x190273[_0x1c61ef(0x1c1)];return _0x2a6dcc[_0x1c61ef(0x19c)](_0x123e5f,{'code':_0x123e5f,'name':_0x123e5f,'items':_0x23fc52,'source':_0x33c57e[_0x1c61ef(0x17e)]}),_0x23fc52;}else _0x2622a0[_0x1c61ef(0x18f)]();}async function _0x2227ef(_0x3a7445,_0xed1bcc){const _0x1ea0c9=_0x25cf0c,_0x2d8973={};_0x2d8973[_0x1ea0c9(0x185)]=_0x33c57e[_0x1ea0c9(0x1a5)];const _0x59dd29=_0x2d8973;if(_0x33c57e[_0x1ea0c9(0x166)](_0x1ea0c9(0x1b6),_0x1ea0c9(0x1b6)))return _0x572bea;else{_0x33c57e[_0x1ea0c9(0x19d)](_0x173d99,_0x3a7445);if(!Array[_0x1ea0c9(0x198)](_0xed1bcc)){if(_0x33c57e[_0x1ea0c9(0x1b0)](_0x33c57e[_0x1ea0c9(0x18d)],_0x33c57e[_0x1ea0c9(0x1a2)]))throw new ValidationError(_0x33c57e[_0x1ea0c9(0x1a5)]);else throw new _0x575bb5(_0x59dd29[_0x1ea0c9(0x185)]);}const _0x35e157=await _0x33c57e[_0x1ea0c9(0x180)](_0x2e6e89);if(!_0x35e157)throw new NotFoundError(_0x33c57e[_0x1ea0c9(0x1c7)]);if(!_0x46918f)throw new Error(_0x33c57e[_0x1ea0c9(0x15f)]);const _0x4f2e34=await _0x46918f[_0x1ea0c9(0x1af)]();try{await _0x4f2e34[_0x1ea0c9(0x17b)](_0x33c57e[_0x1ea0c9(0x1b1)]);const _0x3726d2=await _0x4f2e34[_0x1ea0c9(0x17b)](_0x1ea0c9(0x16b),[_0x3a7445,_0x3a7445,_0x33c57e[_0x1ea0c9(0x1a1)],_0x1ea0c9(0x184),!![]]),_0x18b124=_0x3726d2[_0x1ea0c9(0x1c1)][0x0]['id'];await _0x4f2e34[_0x1ea0c9(0x17b)](_0x33c57e[_0x1ea0c9(0x162)],[_0x18b124]);for(const _0x4a6bb7 of _0xed1bcc){await _0x4f2e34[_0x1ea0c9(0x17b)](_0x1ea0c9(0x165),[_0x18b124,_0x4a6bb7[_0x1ea0c9(0x153)],_0x4a6bb7[_0x1ea0c9(0x1a4)],_0x4a6bb7[_0x1ea0c9(0x1c2)]??null]);}await _0x4f2e34[_0x1ea0c9(0x17b)](_0x1ea0c9(0x163));}catch(_0x1a714a){if(_0x33c57e[_0x1ea0c9(0x1bf)](_0x1ea0c9(0x14a),_0x33c57e[_0x1ea0c9(0x1a9)]))throw new _0x438b9a(_0x1ea0c9(0x161)+_0x22f7d9[_0x1ea0c9(0x153)]);else{await _0x4f2e34[_0x1ea0c9(0x17b)](_0x33c57e[_0x1ea0c9(0x152)]);throw _0x1a714a;}}finally{if(_0x33c57e[_0x1ea0c9(0x1bd)](_0x1ea0c9(0x158),_0x33c57e[_0x1ea0c9(0x14c)]))_0x4f2e34[_0x1ea0c9(0x18f)]();else throw new _0x1ce61b(_0x1ea0c9(0x16c));}_0x33c57e[_0x1ea0c9(0x19d)](_0x4a5858,_0x3a7445);}}function _0x4a5858(_0x5938e1){const _0x3bdafb=_0x25cf0c;return _0x33c57e[_0x3bdafb(0x1a7)](_0x173d99,_0x5938e1),_0x2a6dcc[_0x3bdafb(0x167)](_0x5938e1);}async function _0x3aa563(){const _0x4938c8=_0x25cf0c,_0x598a84=[..._0x2a6dcc[_0x4938c8(0x1aa)]()][_0x4938c8(0x15d)](({code:_0x2089c6,name:_0x500cb5,source:_0x1ae24b})=>({'code':_0x2089c6,'name':_0x500cb5??_0x2089c6,'source':_0x1ae24b})),_0x40fc0f=await _0x33c57e[_0x4938c8(0x182)](_0x2e6e89);if(!_0x40fc0f)return _0x598a84;if(!_0x46918f)throw new Error(_0x33c57e[_0x4938c8(0x15f)]);const _0x322f9f=await _0x46918f[_0x4938c8(0x17b)](_0x4938c8(0x196));for(const _0x5d068e of _0x322f9f[_0x4938c8(0x1c1)]){if(_0x33c57e[_0x4938c8(0x195)](_0x33c57e[_0x4938c8(0x159)],_0x33c57e[_0x4938c8(0x147)])){_0x33c57e[_0x4938c8(0x169)](_0x4fd6df,_0x1213ee[_0x4938c8(0x153)]);if(!_0x28dbcc[_0x4938c8(0x198)](_0x483535[_0x4938c8(0x194)]))throw new _0x4c8a7b(_0x4938c8(0x161)+_0x17ee2e[_0x4938c8(0x153)]);if(_0x46a5cb[_0x4938c8(0x1b4)](_0x49fcb3[_0x4938c8(0x153)]))throw new _0x435cf1(_0x4938c8(0x1c6)+_0x20cc90[_0x4938c8(0x153)]);const _0x441eda={..._0x3543c3};_0x441eda[_0x4938c8(0x1ae)]=_0x33c57e[_0x4938c8(0x18c)],_0x4177b7[_0x4938c8(0x19c)](_0x36b6b1[_0x4938c8(0x153)],_0x441eda);}else!_0x2a6dcc[_0x4938c8(0x1b4)](_0x5d068e[_0x4938c8(0x153)])&&_0x598a84[_0x4938c8(0x190)](_0x5d068e);}return _0x598a84;}_0x524d2e(dictionaries);const _0x284d31={};return _0x284d31[_0x25cf0c(0x192)]=_0x524d2e,_0x284d31[_0x25cf0c(0x188)]=_0xaba5e5,_0x284d31[_0x25cf0c(0x1c5)]=_0x2227ef,_0x284d31[_0x25cf0c(0x199)]=_0x4a5858,_0x284d31[_0x25cf0c(0x173)]=_0x3aa563,_0x284d31;}
|
|
1
|
+
function z(C,N){C=C-0x19b;const r=U();let p=r[C];return p;}function U(){const A=['query','rows','table_name','dictionaries','code','items','Invalid\x20dictionary\x20items:\x20','has','Dictionary\x20table\x20not\x20found','set','database','Dictionary\x20items\x20must\x20be\x20an\x20array','connect','BEGIN','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20INSERT\x20INTO\x20admin.dictionaries\x20(code,\x20name,\x20module,\x20source,\x20editable)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20($1,\x20$2,\x20$3,\x20$4,\x20$5)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ON\x20CONFLICT\x20(code)\x20DO\x20UPDATE\x20SET\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20name\x20=\x20EXCLUDED.name,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20module\x20=\x20EXCLUDED.module,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20source\x20=\x20EXCLUDED.source,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20editable\x20=\x20EXCLUDED.editable,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20updated_at\x20=\x20now()\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20RETURNING\x20id\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20INSERT\x20INTO\x20admin.dictionary_items\x20(dictionary_id,\x20code,\x20name,\x20parent_id)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20($1,\x20$2,\x20$3,\x20$4)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','COMMIT','ROLLBACK','get','values','push'];U=function(){return A;};return U();}import{ConflictError,NotFoundError,ValidationError}from'../errors.js';const dictionaryName=/^[A-Za-z0-9][A-Za-z0-9_-]{0,127}$/;export function createDictionary({pg:C,dictionaries:dictionaries=[]}){const N=new Map(),r=new Map();let p,c;async function x(){const a=z;if(p!==undefined)return p;if(!C)throw new Error('empty\x20pg');return c??=C[a(0x19b)]('\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20SELECT\x20table_name\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20information_schema.tables\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20table_schema\x20=\x20\x27admin\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20AND\x20table_name\x20=\x20\x27dictionaries\x27\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20LIMIT\x201\x0a\x20\x20\x20\x20\x20\x20\x20\x20')['then'](t=>{const Z=a,h=t[Z(0x19c)][0x0]?.[Z(0x19d)];p=h===Z(0x19e)?h:null;}),await c,p;}function m(t){if(!dictionaryName['test'](t))throw new ValidationError('Invalid\x20dictionary\x20name:\x20'+t);}function Q(t){const H=z;for(const h of Array['isArray'](t)?t:[t]){m(h[H(0x19f)]);if(!Array['isArray'](h[H(0x1a0)]))throw new ValidationError(H(0x1a1)+h['code']);if(N[H(0x1a2)](h[H(0x19f)]))throw new ConflictError('Dictionary\x20already\x20registered:\x20'+h['code']);N['set'](h['code'],{...h,'source':'static'});}}function u(t){return N['has'](t);}async function L(t){const v=z;m(t);const h=N['get'](t);if(h&&h['checked'])return h[v(0x1a0)];const D=await x();if(!D)throw new NotFoundError(v(0x1a3));const d=await C?.[v(0x19b)]('\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20SELECT\x20di.code,\x20di.name\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20admin.dictionary_items\x20di\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20JOIN\x20admin.dictionaries\x20d\x20ON\x20d.id\x20=\x20di.dictionary_id\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20d.code\x20=\x20$1\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ORDER\x20BY\x20di.name\x0a\x20\x20\x20\x20\x20\x20\x20\x20',[t]);if(d?.['rows']?.['length']){const V=d?.['rows'];return N[v(0x1a4)](t,{'code':t,'name':t,'items':V,'source':v(0x1a5),'checked':!![]}),V;}if(!h?.['items'])throw new NotFoundError('Dictionary\x20not\x20found:\x20'+t);return h['checked']=!![],h['items'];}async function T(t,h){const n=z;m(t);if(!Array['isArray'](h))throw new ValidationError(n(0x1a6));const D=await x();if(!D)throw new NotFoundError('Dictionary\x20table\x20not\x20found');if(!C)throw new Error('empty\x20pg');const d=await C[n(0x1a7)]();try{await d['query'](n(0x1a8));const V=await d[n(0x19b)](n(0x1a9),[t,t,'fcore','custom',!![]]),q=V[n(0x19c)][0x0]['id'];await d[n(0x19b)]('DELETE\x20FROM\x20admin.dictionary_items\x20WHERE\x20dictionary_id\x20=\x20$1',[q]);for(const w of h){await d['query'](n(0x1aa),[q,w[n(0x19f)],w['name'],w['parentId']??null]);}await d['query'](n(0x1ab));}catch(O){await d['query'](n(0x1ac));throw O;}finally{d['release']();}N['set'](t,{'items':h,'code':t,'source':'static','checked':!![]}),r[n(0x1a4)](t,(r[n(0x1ad)](t)??0x0)+0x1);}function Y(t){const R=z;return m(t),r['set'](t,(r[R(0x1ad)](t)??0x0)+0x1),N['delete'](t);}function f(t){return r['get'](t)??0x0;}async function F(){const o=z,t=[...N[o(0x1ae)]()]['map'](({code:d,name:V,source:q})=>({'code':d,'name':V??d,'source':q})),h=await x();if(!h)return t;if(!C)throw new Error('empty\x20pg');const D=await C['query']('\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20SELECT\x20code,\x20name,\x20\x27database\x27\x20AS\x20source\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20admin.dictionaries\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ORDER\x20BY\x20name\x0a\x20\x20\x20\x20\x20\x20\x20\x20');for(const d of D[o(0x19c)]){!N['has'](d['code'])&&t[o(0x1af)](d);}return t;}return Q(dictionaries),{'register':Q,'get':L,'put':T,'clear':Y,'revision':f,'list':F,'has':u};}
|
package/dist/plugins/file.d.ts
CHANGED
|
@@ -1,17 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Implements the S3-compatible file storage adapter and its contracts.
|
|
3
3
|
*/
|
|
4
|
+
import type { Readable } from "node:stream";
|
|
4
5
|
export interface FileAdapter {
|
|
5
|
-
put(path: string,
|
|
6
|
+
put(path: string, body: Buffer | Readable): Promise<void>;
|
|
6
7
|
get(path: string): Promise<Buffer>;
|
|
7
8
|
exists(path: string): Promise<boolean>;
|
|
8
9
|
delete(path: string): Promise<void>;
|
|
9
10
|
create(path: string, ttl?: number): string;
|
|
10
|
-
verify(token: string):
|
|
11
|
-
}
|
|
12
|
-
export interface FileTokenPayload {
|
|
13
|
-
p: string;
|
|
14
|
-
exp: number;
|
|
11
|
+
verify(token: string): string;
|
|
15
12
|
}
|
|
16
13
|
export interface FileS3Config {
|
|
17
14
|
endpoint?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../src/plugins/file.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../src/plugins/file.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,WAAW,WAAW;IACxB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACnC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3C,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CACjC;AAKD,MAAM,WAAW,YAAY;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAgCD,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,WAAW,CAiF9D"}
|
package/dist/plugins/file.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
function z(C,N){C=C-0x100;const r=U();let p=r[C];return p;}function U(){const d=['replace','alloc','transformToByteArray','from','toString','endpoint','accessKey','accessKeyId','secretKey','folder','name','sha256','update','digest','length','Invalid\x20file\x20token','base64url'];U=function(){return d;};return U();}import{DeleteObjectCommand,GetObjectCommand,HeadObjectCommand,PutObjectCommand,S3Client}from'@aws-sdk/client-s3';import C from'node:crypto';import{ValidationError}from'../errors.js';import{UnauthorizedError}from'../errors.js';function keyFor(N,r){const Y=z;if(!r||r['startsWith']('/')||r['includes']('..'))throw new ValidationError('Invalid\x20file\x20path');const p=r['replace'](/\\/g,'/')['replace'](/^\/+/,''),c=(N??'')[Y(0x100)](/^\/+|\/+$/g,'');return c?c+'/'+p:p;}async function bodyToBuffer(N){const f=z;if(!N)return Buffer[f(0x101)](0x0);const r=N;if(typeof r[f(0x102)]==='function')return Buffer['from'](await r['transformToByteArray']());const p=[];for await(const c of N){p['push'](Buffer[f(0x103)](c));}return Buffer['concat'](p);}export function createFileS3(N){const F=z,r=N['tokenSecret']??process.env.FILE_TOKEN_SECRET??C['randomBytes'](0x20)[F(0x104)]('hex'),p=new S3Client({'endpoint':N[F(0x105)],'region':N['region']??'us-east-1','forcePathStyle':N['forcePathStyle']??!![],'credentials':N['accessKeyId']||N[F(0x106)]?{'accessKeyId':N[F(0x107)]??N['accessKey'],'secretAccessKey':N['secretAccessKey']??N[F(0x108)]}:undefined}),c=x=>keyFor(N[F(0x109)],x);return{async 'put'(x,m){await p['send'](new PutObjectCommand({'Bucket':N['bucket'],'Key':c(x),'Body':m}));},async 'get'(x){const m=await p['send'](new GetObjectCommand({'Bucket':N['bucket'],'Key':c(x)}));return bodyToBuffer(m['Body']);},async 'exists'(x){const t=F;try{return await p['send'](new HeadObjectCommand({'Bucket':N['bucket'],'Key':c(x)})),!![];}catch(m){const Q=m;if(Q['$metadata']?.['httpStatusCode']===0x194||Q[t(0x10a)]==='NotFound')return![];throw m;}},async 'delete'(x){await p['send'](new DeleteObjectCommand({'Bucket':N['bucket'],'Key':c(x)}));},'create'(x,m=N['tokenTtl']??0xe10){const h=F,Q=Buffer['from'](x)['toString']('base64url'),u=C['createHmac'](h(0x10b),r)[h(0x10c)](Q)[h(0x10d)]('base64url');return Q+'.'+u;},'verify'(x){const D=F,[m,Q]=x['split']('.');if(!m||!Q)throw new UnauthorizedError('Invalid\x20file\x20token');const u=C['createHmac']('sha256',r)[D(0x10c)](m)[D(0x10d)](),L=Buffer['from'](Q,'base64url');if(u[D(0x10e)]!==L[D(0x10e)]||!C['timingSafeEqual'](u,L))throw new UnauthorizedError(D(0x10f));const T=Buffer[D(0x103)](m,D(0x110))['toString']('utf8');return T;}};}
|
package/dist/plugins/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,UAAU,CAAC"}
|
package/dist/plugins/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
export*from'./logger/index.js';export*from'./redis.js';export*from'./pg.js';export*from'./auth/index.js';export*from'./file.js';export*from'./dictionary.js';export*from'./audit/index.js';export*from'./resource/index.js';export*from'./jwt.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jwt.d.ts","sourceRoot":"","sources":["../../src/plugins/jwt.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAIhD,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,+BAY/D;AACD,wBAAsB,cAAc,CAAC,KAAK,EAAE,MAAM,qBAKjD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const x=z;import{SignJWT,jwtVerify}from'jose';const secret=new TextEncoder()[x(0x64)](process.env.AUTH_JWT_SECRET);function U(){const u=['encode','setProtectedHeader','HS256'];U=function(){return u;};return U();}export async function jwtSignToken(C){const m=x;if(!process.env.AUTH_JWT_SECRET)return;const {id:N,type:r,permissions:p}=C,c=await new SignJWT({'id':N,'type':r,'permissions':p})[m(0x65)]({'alg':m(0x66)})['setIssuedAt']()['setExpirationTime']('1h')['sign'](secret);return c;}function z(C,N){C=C-0x64;const r=U();let p=r[C];return p;}export async function jwtVerifyToken(C){const Q=x,N=await jwtVerify(C,secret,{'algorithms':[Q(0x66)]})['catch'](r=>{console['log'](r['message']);});return N?.['payload'];}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function U(){const u=['password','token','end','bind'];U=function(){return u;};return U();}import C from'pino';function z(C,N){C=C-0x100;const r=U();let p=r[C];return p;}export function createLogger(){const Q=z,N=C['transport']({'target':'./transport.js'}),r=C({'level':'info','timestamp':C['stdTimeFunctions']['isoTime'],'base':{'service':'app'},'redact':{'paths':['req.headers.authorization',Q(0x100),Q(0x101),'accessToken','refreshToken'],'censor':'[REDACTED]'}},N),p={};function c(x,m){if(x===undefined)return{...p};p[x]=(p[x]??0x0)+(m??0x1);}return Object['assign'](r,{'close':async()=>N[Q(0x102)](),'metrics':c,'file':()=>r['info'][Q(0x103)](r)});}
|