first commit

This commit is contained in:
Ivan Antunes 2024-01-08 10:19:36 -03:00
parent 635236ef7a
commit 0fbfb7a564
19 changed files with 321 additions and 0 deletions

View File

@ -0,0 +1,6 @@
export declare class FreGenericException extends Error {
statusCode: number;
status: number;
extra?: any;
constructor(statusCode: number, message?: string | undefined, extra?: any);
}

View File

@ -0,0 +1 @@
'use strict';var a0_0x1ba129=a0_0x2f93;function a0_0x2f93(_0x465956,_0x481f49){var _0x10813d=a0_0x1081();return a0_0x2f93=function(_0x2f938b,_0x160dac){_0x2f938b=_0x2f938b-0xb1;var _0x76f29a=_0x10813d[_0x2f938b];return _0x76f29a;},a0_0x2f93(_0x465956,_0x481f49);}function a0_0x1081(){var _0x4c248d=['__esModule','2202938VguBQb','Exception','3099306CYzyji','extra','name','2713045qUaQZy','statusCode','2798796ekaWmh','20847jUuAkJ','3648804BGFkSO','16350712douWso','message','status','constructor','defineProperty','FreGenericException'];a0_0x1081=function(){return _0x4c248d;};return a0_0x1081();}(function(_0x31af86,_0x1e4a3d){var _0x29d495=a0_0x2f93,_0x2fccf5=_0x31af86();while(!![]){try{var _0x1ca2e5=parseInt(_0x29d495(0xbd))/0x1+parseInt(_0x29d495(0xb5))/0x2+parseInt(_0x29d495(0xb7))/0x3+parseInt(_0x29d495(0xbe))/0x4+-parseInt(_0x29d495(0xba))/0x5+parseInt(_0x29d495(0xbc))/0x6+-parseInt(_0x29d495(0xbf))/0x7;if(_0x1ca2e5===_0x1e4a3d)break;else _0x2fccf5['push'](_0x2fccf5['shift']());}catch(_0x251c9c){_0x2fccf5['push'](_0x2fccf5['shift']());}}}(a0_0x1081,0xa012c));Object[a0_0x1ba129(0xb2)](exports,a0_0x1ba129(0xb4),{'value':!![]}),exports[a0_0x1ba129(0xb3)]=void 0x0;class FreGenericException extends Error{[a0_0x1ba129(0xbb)];['status'];['extra'];constructor(_0x1c96fd,_0x5a2543,_0x21e319){var _0x149324=a0_0x1ba129;_0x5a2543=_0x5a2543??_0x149324(0xb6),super(_0x5a2543),this[_0x149324(0xc0)]=_0x5a2543,this[_0x149324(0xb9)]=this[_0x149324(0xb1)][_0x149324(0xb9)],Error['captureStackTrace'](this,this[_0x149324(0xb1)]),this[_0x149324(0xb8)]=_0x21e319,this[_0x149324(0xc1)]=this[_0x149324(0xbb)]=_0x1c96fd;}}exports[a0_0x1ba129(0xb3)]=FreGenericException;

1
lib/exception/index.d.ts vendored Normal file
View File

@ -0,0 +1 @@
export * from './FreGenericException';

1
lib/exception/index.js Normal file
View File

@ -0,0 +1 @@
'use strict';var a1_0x5c596a=a1_0x5990;(function(_0x2ddfe9,_0x472e7e){var _0x286601=a1_0x5990,_0x43fc2e=_0x2ddfe9();while(!![]){try{var _0x2d1d5a=-parseInt(_0x286601(0x10d))/0x1+-parseInt(_0x286601(0xfd))/0x2+-parseInt(_0x286601(0xfc))/0x3+-parseInt(_0x286601(0x10c))/0x4+parseInt(_0x286601(0xff))/0x5+-parseInt(_0x286601(0x102))/0x6+parseInt(_0x286601(0x109))/0x7;if(_0x2d1d5a===_0x472e7e)break;else _0x43fc2e['push'](_0x43fc2e['shift']());}catch(_0x4aa805){_0x43fc2e['push'](_0x43fc2e['shift']());}}}(a1_0x17a2,0x6fce5));function a1_0x5990(_0x3f766e,_0x24fc72){var _0x17a2bb=a1_0x17a2();return a1_0x5990=function(_0x599063,_0x482804){_0x599063=_0x599063-0xfc;var _0x3457bd=_0x17a2bb[_0x599063];return _0x3457bd;},a1_0x5990(_0x3f766e,_0x24fc72);}var __createBinding=this&&this['__createBinding']||(Object[a1_0x5c596a(0x10a)]?function(_0x134263,_0x5c7691,_0x326342,_0x1219f9){var _0x488928=a1_0x5c596a;if(_0x1219f9===undefined)_0x1219f9=_0x326342;var _0x2deea9=Object[_0x488928(0x106)](_0x5c7691,_0x326342);(!_0x2deea9||('get'in _0x2deea9?!_0x5c7691[_0x488928(0x104)]:_0x2deea9[_0x488928(0x108)]||_0x2deea9[_0x488928(0x103)]))&&(_0x2deea9={'enumerable':!![],'get':function(){return _0x5c7691[_0x326342];}}),Object[_0x488928(0xfe)](_0x134263,_0x1219f9,_0x2deea9);}:function(_0x212ce0,_0x2f6d54,_0x3ad032,_0x48431f){if(_0x48431f===undefined)_0x48431f=_0x3ad032;_0x212ce0[_0x48431f]=_0x2f6d54[_0x3ad032];}),__exportStar=this&&this[a1_0x5c596a(0x107)]||function(_0x284ab8,_0x1dd1b9){var _0x1cfc6f=a1_0x5c596a;for(var _0x23abf8 in _0x284ab8)if(_0x23abf8!==_0x1cfc6f(0x100)&&!Object[_0x1cfc6f(0x10e)][_0x1cfc6f(0x101)][_0x1cfc6f(0x10b)](_0x1dd1b9,_0x23abf8))__createBinding(_0x1dd1b9,_0x284ab8,_0x23abf8);};Object[a1_0x5c596a(0xfe)](exports,a1_0x5c596a(0x104),{'value':!![]}),__exportStar(require(a1_0x5c596a(0x105)),exports);function a1_0x17a2(){var _0x4611f4=['call','1244220pmqDJT','359917RwzlUg','prototype','919929JDmiUG','642012dRbdot','defineProperty','2835345TPHDin','default','hasOwnProperty','3294096suzyID','configurable','__esModule','./FreGenericException','getOwnPropertyDescriptor','__exportStar','writable','12169675xFvqaQ','create'];a1_0x17a2=function(){return _0x4611f4;};return a1_0x17a2();}

4
lib/index.d.ts vendored Normal file
View File

@ -0,0 +1,4 @@
export * from './utils/rotines';
export * from './utils/byte';
export * from './ip_filter';
export * from './exception';

1
lib/index.js Normal file
View File

@ -0,0 +1 @@
'use strict';function a2_0x25d4(){var _0x44508e=['prototype','32rzSChL','289908eCmQou','__exportStar','getOwnPropertyDescriptor','172rFsmHR','call','__createBinding','defineProperty','hasOwnProperty','./ip_filter','./utils/rotines','__esModule','19113IzxMRI','1337861CflEQy','915422HOwSLa','./utils/byte','create','get','13929620puiCpK','12wqvVvH','default','configurable','221034notCim','1583065jitWTJ'];a2_0x25d4=function(){return _0x44508e;};return a2_0x25d4();}var a2_0x16a7fb=a2_0x3a4b;(function(_0x1f7c3d,_0x4eb3f5){var _0x4f5488=a2_0x3a4b,_0x1ede06=_0x1f7c3d();while(!![]){try{var _0x8c62ff=-parseInt(_0x4f5488(0x152))/0x1+-parseInt(_0x4f5488(0x14a))/0x2+-parseInt(_0x4f5488(0x148))/0x3*(parseInt(_0x4f5488(0x159))/0x4)+parseInt(_0x4f5488(0x153))/0x5+parseInt(_0x4f5488(0x14f))/0x6*(-parseInt(_0x4f5488(0x149))/0x7)+-parseInt(_0x4f5488(0x155))/0x8*(parseInt(_0x4f5488(0x156))/0x9)+parseInt(_0x4f5488(0x14e))/0xa;if(_0x8c62ff===_0x4eb3f5)break;else _0x1ede06['push'](_0x1ede06['shift']());}catch(_0xf310f7){_0x1ede06['push'](_0x1ede06['shift']());}}}(a2_0x25d4,0x3c017));var __createBinding=this&&this[a2_0x16a7fb(0x15b)]||(Object[a2_0x16a7fb(0x14c)]?function(_0x227fd7,_0x53735f,_0xd06f3,_0x30da69){var _0x3f39ef=a2_0x16a7fb;if(_0x30da69===undefined)_0x30da69=_0xd06f3;var _0x553c16=Object[_0x3f39ef(0x158)](_0x53735f,_0xd06f3);(!_0x553c16||(_0x3f39ef(0x14d)in _0x553c16?!_0x53735f[_0x3f39ef(0x160)]:_0x553c16['writable']||_0x553c16[_0x3f39ef(0x151)]))&&(_0x553c16={'enumerable':!![],'get':function(){return _0x53735f[_0xd06f3];}}),Object['defineProperty'](_0x227fd7,_0x30da69,_0x553c16);}:function(_0x1099be,_0x4b6e51,_0x336b30,_0x21414a){if(_0x21414a===undefined)_0x21414a=_0x336b30;_0x1099be[_0x21414a]=_0x4b6e51[_0x336b30];}),__exportStar=this&&this[a2_0x16a7fb(0x157)]||function(_0x4d4ca6,_0x4622da){var _0x40d3ee=a2_0x16a7fb;for(var _0x1c265e in _0x4d4ca6)if(_0x1c265e!==_0x40d3ee(0x150)&&!Object[_0x40d3ee(0x154)][_0x40d3ee(0x15d)][_0x40d3ee(0x15a)](_0x4622da,_0x1c265e))__createBinding(_0x4622da,_0x4d4ca6,_0x1c265e);};function a2_0x3a4b(_0x2c1cbf,_0x38c923){var _0x25d456=a2_0x25d4();return a2_0x3a4b=function(_0x3a4b26,_0x492e51){_0x3a4b26=_0x3a4b26-0x148;var _0x5c5dca=_0x25d456[_0x3a4b26];return _0x5c5dca;},a2_0x3a4b(_0x2c1cbf,_0x38c923);}Object[a2_0x16a7fb(0x15c)](exports,a2_0x16a7fb(0x160),{'value':!![]}),__exportStar(require(a2_0x16a7fb(0x15f)),exports),__exportStar(require(a2_0x16a7fb(0x14b)),exports),__exportStar(require(a2_0x16a7fb(0x15e)),exports),__exportStar(require('./exception'),exports);

6
lib/ip_filter/IpDeniedError.d.ts vendored Normal file
View File

@ -0,0 +1,6 @@
export declare class IpDeniedError extends Error {
statusCode: number;
status: number;
extra?: any;
constructor(message?: string | undefined, extra?: any);
}

View File

@ -0,0 +1 @@
'use strict';var a3_0x2f1406=a3_0x173f;function a3_0x173f(_0x5a53cb,_0x290ff3){var _0x1f6a92=a3_0x1f6a();return a3_0x173f=function(_0x173ff2,_0x2a5523){_0x173ff2=_0x173ff2-0x9b;var _0x9f69b=_0x1f6a92[_0x173ff2];return _0x9f69b;},a3_0x173f(_0x5a53cb,_0x290ff3);}(function(_0x3dc8a3,_0x4669dd){var _0x2a84e1=a3_0x173f,_0x4404f6=_0x3dc8a3();while(!![]){try{var _0x525b03=-parseInt(_0x2a84e1(0xa7))/0x1*(parseInt(_0x2a84e1(0xac))/0x2)+parseInt(_0x2a84e1(0xa8))/0x3+-parseInt(_0x2a84e1(0xaa))/0x4*(parseInt(_0x2a84e1(0x9f))/0x5)+parseInt(_0x2a84e1(0x9b))/0x6*(parseInt(_0x2a84e1(0xa5))/0x7)+parseInt(_0x2a84e1(0xa2))/0x8*(-parseInt(_0x2a84e1(0xa0))/0x9)+parseInt(_0x2a84e1(0xab))/0xa*(-parseInt(_0x2a84e1(0xae))/0xb)+-parseInt(_0x2a84e1(0xad))/0xc*(-parseInt(_0x2a84e1(0xa3))/0xd);if(_0x525b03===_0x4669dd)break;else _0x4404f6['push'](_0x4404f6['shift']());}catch(_0x3b34ff){_0x4404f6['push'](_0x4404f6['shift']());}}}(a3_0x1f6a,0x456d6));function a3_0x1f6a(){var _0x57e927=['constructor','800490mPkXVN','extra','The\x20requesting\x20IP\x20was\x20denied','status','15SWmWQU','52938wVZJDC','IpDeniedError','200fUgpDY','13EcWcId','message','21uLicFl','defineProperty','2Xaqdti','1415781HZKTkv','name','749732XELlFS','70FnuLBI','455106HmTuiE','8728488XbVMRF','236841HpEUZM','statusCode'];a3_0x1f6a=function(){return _0x57e927;};return a3_0x1f6a();}Object[a3_0x2f1406(0xa6)](exports,'__esModule',{'value':!![]}),exports[a3_0x2f1406(0xa1)]=void 0x0;class IpDeniedError extends Error{[a3_0x2f1406(0xaf)];[a3_0x2f1406(0x9e)];[a3_0x2f1406(0x9c)];constructor(_0x51ebd8,_0x109d57){var _0x3c9b9a=a3_0x2f1406;_0x51ebd8=_0x51ebd8??_0x3c9b9a(0x9d),super(_0x51ebd8),this[_0x3c9b9a(0xa4)]=_0x51ebd8,this[_0x3c9b9a(0xa9)]=this['constructor']['name'],Error['captureStackTrace'](this,this[_0x3c9b9a(0xb0)]),this[_0x3c9b9a(0x9c)]=_0x109d57,this[_0x3c9b9a(0x9e)]=this[_0x3c9b9a(0xaf)]=0x193;}}exports[a3_0x2f1406(0xa1)]=IpDeniedError;

24
lib/ip_filter/IpFilter.d.ts vendored Normal file
View File

@ -0,0 +1,24 @@
import { IpFilterOptions, IpCallback, IpList, IpResult } from './IpTypes';
export declare class IpFilter {
private settings;
private getIps;
private logger;
private detectIp;
constructor(ips: IpList | IpCallback, opts?: IpFilterOptions);
/**
* Compile "proxy trust" value to function. (from express)
*
* @param {Boolean|String|Number|Array|Function} val
* @return {Function}
* @api private
*/
private compileTrust;
private testExplicitIp;
private testCidrBlock;
private testRange;
private testIp;
private matchClientIp;
private error;
get middleware(): (req: any, _res: any, next: any) => void;
checkIP(req: any): IpResult;
}

File diff suppressed because one or more lines are too long

27
lib/ip_filter/IpTypes.d.ts vendored Normal file
View File

@ -0,0 +1,27 @@
/// <reference types="node" />
import { IncomingMessage } from 'http';
export type Ip = string;
export type CidrRange = string;
export type Route = string;
export type StartEndIpRange = Ip[];
export type IpRange = CidrRange | StartEndIpRange;
export type IpList = (Ip | IpRange)[];
export type IPListAsync = Promise<IpList>;
export type IpCallback = () => IpList;
export interface IpResult {
status: boolean;
ip: Ip;
msg?: string;
}
export interface IpFilterOptions {
detectIp?: (request: IncomingMessage) => Ip;
excluding?: Route[];
log?: boolean;
logLevel?: 'all' | 'deny' | 'allow';
logF?: (message: string) => void;
mode?: 'deny' | 'allow';
trustProxy?: any;
cidr?: boolean;
allowedHeaders?: any[];
allowPrivateIPs?: boolean;
}

1
lib/ip_filter/IpTypes.js Normal file
View File

@ -0,0 +1 @@
'use strict';var a5_0xf0a73d=a5_0x900d;function a5_0x900d(_0x428d4d,_0x3617e2){var _0x465325=a5_0x4653();return a5_0x900d=function(_0x900d0b,_0x447037){_0x900d0b=_0x900d0b-0x1ac;var _0x38423d=_0x465325[_0x900d0b];return _0x38423d;},a5_0x900d(_0x428d4d,_0x3617e2);}(function(_0x150c33,_0x20d2ae){var _0x3c09a8=a5_0x900d,_0x1472e9=_0x150c33();while(!![]){try{var _0xe66f2f=parseInt(_0x3c09a8(0x1b4))/0x1+-parseInt(_0x3c09a8(0x1ae))/0x2+parseInt(_0x3c09a8(0x1b3))/0x3+-parseInt(_0x3c09a8(0x1b5))/0x4+parseInt(_0x3c09a8(0x1b2))/0x5+parseInt(_0x3c09a8(0x1b1))/0x6*(parseInt(_0x3c09a8(0x1b6))/0x7)+parseInt(_0x3c09a8(0x1ac))/0x8*(-parseInt(_0x3c09a8(0x1b0))/0x9);if(_0xe66f2f===_0x20d2ae)break;else _0x1472e9['push'](_0x1472e9['shift']());}catch(_0x488a88){_0x1472e9['push'](_0x1472e9['shift']());}}}(a5_0x4653,0x90a38));function a5_0x4653(){var _0x4f0aea=['3200687iicTks','7552912pgUucg','defineProperty','412778LxrbWa','__esModule','9HAIXlA','12WvYQFU','1765VLmhgJ','2412192yXAAmY','932864RtIRcP','3635280xgUTsN'];a5_0x4653=function(){return _0x4f0aea;};return a5_0x4653();}Object[a5_0xf0a73d(0x1ad)](exports,a5_0xf0a73d(0x1af),{'value':!![]});

3
lib/ip_filter/index.d.ts vendored Normal file
View File

@ -0,0 +1,3 @@
export * from './IpFilter';
export * from './IpDeniedError';
export * from './IpTypes';

1
lib/ip_filter/index.js Normal file
View File

@ -0,0 +1 @@
'use strict';var a6_0x70a55f=a6_0x2bad;function a6_0x2bad(_0x590a37,_0x5af2b4){var _0x5c7303=a6_0x5c73();return a6_0x2bad=function(_0x2bad05,_0x13d2d2){_0x2bad05=_0x2bad05-0x70;var _0x2d27df=_0x5c7303[_0x2bad05];return _0x2d27df;},a6_0x2bad(_0x590a37,_0x5af2b4);}(function(_0x218b10,_0x10126b){var _0x42c381=a6_0x2bad,_0x1e0d03=_0x218b10();while(!![]){try{var _0x22d711=parseInt(_0x42c381(0x80))/0x1+-parseInt(_0x42c381(0x74))/0x2+parseInt(_0x42c381(0x7c))/0x3*(parseInt(_0x42c381(0x78))/0x4)+parseInt(_0x42c381(0x75))/0x5*(parseInt(_0x42c381(0x71))/0x6)+parseInt(_0x42c381(0x7a))/0x7+-parseInt(_0x42c381(0x70))/0x8+-parseInt(_0x42c381(0x7b))/0x9;if(_0x22d711===_0x10126b)break;else _0x1e0d03['push'](_0x1e0d03['shift']());}catch(_0x2841e7){_0x1e0d03['push'](_0x1e0d03['shift']());}}}(a6_0x5c73,0x5744c));var __createBinding=this&&this['__createBinding']||(Object['create']?function(_0x528b1b,_0x266e99,_0x2e8b72,_0x1449ee){var _0x56e40d=a6_0x2bad;if(_0x1449ee===undefined)_0x1449ee=_0x2e8b72;var _0x4561c7=Object[_0x56e40d(0x79)](_0x266e99,_0x2e8b72);(!_0x4561c7||('get'in _0x4561c7?!_0x266e99[_0x56e40d(0x77)]:_0x4561c7['writable']||_0x4561c7['configurable']))&&(_0x4561c7={'enumerable':!![],'get':function(){return _0x266e99[_0x2e8b72];}}),Object[_0x56e40d(0x72)](_0x528b1b,_0x1449ee,_0x4561c7);}:function(_0x18c176,_0x25a991,_0x5573d2,_0x4684f4){if(_0x4684f4===undefined)_0x4684f4=_0x5573d2;_0x18c176[_0x4684f4]=_0x25a991[_0x5573d2];}),__exportStar=this&&this[a6_0x70a55f(0x73)]||function(_0xadd42f,_0x1faab9){var _0x490649=a6_0x70a55f;for(var _0x3d4c9e in _0xadd42f)if(_0x3d4c9e!==_0x490649(0x7d)&&!Object[_0x490649(0x7f)][_0x490649(0x76)][_0x490649(0x82)](_0x1faab9,_0x3d4c9e))__createBinding(_0x1faab9,_0xadd42f,_0x3d4c9e);};function a6_0x5c73(){var _0x53dd49=['defineProperty','__exportStar','181486ajbRTy','5fKJzuW','hasOwnProperty','__esModule','176980ArfdOF','getOwnPropertyDescriptor','1707944ogosdv','7783434ooaTGr','30RoBpsj','default','./IpTypes','prototype','240620CswqCZ','./IpFilter','call','835184jONVgY','2942142fwTKll'];a6_0x5c73=function(){return _0x53dd49;};return a6_0x5c73();}Object['defineProperty'](exports,a6_0x70a55f(0x77),{'value':!![]}),__exportStar(require(a6_0x70a55f(0x81)),exports),__exportStar(require('./IpDeniedError'),exports),__exportStar(require(a6_0x70a55f(0x7e)),exports);

65
lib/utils/byte.d.ts vendored Normal file
View File

@ -0,0 +1,65 @@
/**
* Classe para trabalhar melhor com bytes
* A classe usa Uint8Array com uma posição
*
* @export
* @class Byte
*/
export declare class Byte {
private _byte;
/**
* Creates an instance of Byte.
* @param {number} valor
* @memberof Byte
*/
constructor(valor: number);
/**
* Retorna uma nova instancia de Byte a partir de um Numero
* @param n Numero para construir o byte
*/
static from(n: number): Byte;
/**
* Retorna o valor do byte salvo
*
* @memberof Byte
*/
get value(): number;
/**
* Define um valor novo para o byte
*
* @memberof Byte
*/
set value(valor: number);
/**
* Define a a posição de uma lista de bits de um byte como LOW ou HIGH e retorna o valor do Byte atualizado
*
* @param position Posição do bit que sera alterada
* @param value Altura do Bit, True = High, False = Low
*/
setBits(bits: Array<{
position: number;
value: boolean;
}>): number;
/**
* Define a uma posicao do byte como LOW ou HIGH e retorna o valor atualizado
*
* @param position Posição do bit que sera alterada
* @param value Altura do Bit, True = High, False = Low
*/
setBit(pos: number, value: boolean): number;
/**
* Define a uma posicao do byte como HIGH e retorna o valor atualizado
* @param position Posição do bit que sera alterada para Low
*/
setBitHigh(position: number): number;
/**
* Define a uma posicao do byte como LOW e retorna o valor atualizado
* @param position Posição do bit que sera alterada para High
*/
setBitLow(position: number): number;
/**
*
* @param position Posição do bit que sera lida
*/
readBit(position: number): boolean;
}

1
lib/utils/byte.js Normal file
View File

@ -0,0 +1 @@
'use strict';function a7_0x4545(){var _0x5c7aab=['7sHvXeJ','setBitHigh','setBit','4291520VSpOYy','3712689KUJdIl','from','setBitLow','__esModule','setBits','value','Byte','defineProperty','5KEcyno','_byte','555224kcEvTi','forEach','2288336mzKOgO','1091184YKyrTZ','234626tWxWCU','readBit','583754pDDBzp','position','3CEnlLW'];a7_0x4545=function(){return _0x5c7aab;};return a7_0x4545();}function a7_0x36e4(_0x1c6bf7,_0x14ee2e){var _0x454500=a7_0x4545();return a7_0x36e4=function(_0x36e4de,_0x1ea398){_0x36e4de=_0x36e4de-0xca;var _0x242e52=_0x454500[_0x36e4de];return _0x242e52;},a7_0x36e4(_0x1c6bf7,_0x14ee2e);}var a7_0x4257ad=a7_0x36e4;(function(_0x1082b7,_0x34fd1e){var _0x59bdc4=a7_0x36e4,_0x12b931=_0x1082b7();while(!![]){try{var _0x724d9f=parseInt(_0x59bdc4(0xe0))/0x1+parseInt(_0x59bdc4(0xcb))/0x2*(parseInt(_0x59bdc4(0xcd))/0x3)+-parseInt(_0x59bdc4(0xdc))/0x4*(-parseInt(_0x59bdc4(0xda))/0x5)+-parseInt(_0x59bdc4(0xdf))/0x6+parseInt(_0x59bdc4(0xce))/0x7*(-parseInt(_0x59bdc4(0xde))/0x8)+-parseInt(_0x59bdc4(0xd2))/0x9+parseInt(_0x59bdc4(0xd1))/0xa;if(_0x724d9f===_0x34fd1e)break;else _0x12b931['push'](_0x12b931['shift']());}catch(_0x45e39c){_0x12b931['push'](_0x12b931['shift']());}}}(a7_0x4545,0x34412));Object[a7_0x4257ad(0xd9)](exports,a7_0x4257ad(0xd5),{'value':!![]}),exports[a7_0x4257ad(0xd8)]=void 0x0;class Byte{[a7_0x4257ad(0xdb)];constructor(_0x1dfcb9){this['_byte']=new Uint8Array(0x1),this['_byte'][0x0]=_0x1dfcb9;}static[a7_0x4257ad(0xd3)](_0x1cbbde){return new Byte(_0x1cbbde);}get[a7_0x4257ad(0xd7)](){var _0x5aa45c=a7_0x4257ad;return this[_0x5aa45c(0xdb)][0x0];}set[a7_0x4257ad(0xd7)](_0x53197a){var _0x4c36ac=a7_0x4257ad;this[_0x4c36ac(0xdb)][0x0]=_0x53197a;}[a7_0x4257ad(0xd6)](_0x4aec19){var _0x1f93bf=a7_0x4257ad;return _0x4aec19[_0x1f93bf(0xdd)](_0x3b46e6=>{var _0x4b04d6=_0x1f93bf;_0x3b46e6[_0x4b04d6(0xd7)]?this[_0x4b04d6(0xcf)](_0x3b46e6[_0x4b04d6(0xcc)]):this[_0x4b04d6(0xd4)](_0x3b46e6[_0x4b04d6(0xcc)]);}),this[_0x1f93bf(0xd7)];}[a7_0x4257ad(0xd0)](_0x50250e,_0xd3493d){var _0x244a48=a7_0x4257ad;return _0xd3493d?this[_0x244a48(0xcf)](_0x50250e):this['setBitLow'](_0x50250e),this[_0x244a48(0xd7)];}['setBitHigh'](_0xe4e3a5){return this['value']|=0x1<<_0xe4e3a5,this['value'];}['setBitLow'](_0x15d93a){var _0xf1a3b0=a7_0x4257ad;return this[_0xf1a3b0(0xd7)]&=~(0x1<<_0x15d93a),this[_0xf1a3b0(0xd7)];}[a7_0x4257ad(0xca)](_0x962bb2){var _0x2badca=a7_0x4257ad;return(this[_0x2badca(0xd7)]&0x1<<_0x962bb2)>0x0;}}exports[a7_0x4257ad(0xd8)]=Byte;

96
lib/utils/rotines.d.ts vendored Normal file
View File

@ -0,0 +1,96 @@
/**
* Classe de rotinas basicas para utilização em qualquer sistema
*
* @export
* @class Routines
*/
export declare class Routines {
/**
* Completa a string um valor informado e do lado informado
*
* @static
* @param {string} valor Valor base para concatenar
* @param {string} mascara Valor que será utilizado paca completar a string Ex.: '0' ou ' '
* @param {('E' | 'D')} lado Lado que será completada a string 'E' = Esquerda ou 'D' = Direita
* @param {number} tamanho Tamanho final que a string deve ter
* @param {boolean} [recorta=true] Remove o resto do valor caso o valor fique maior que o tamanho definido
* @returns {string} Retorna a string formatada
* @memberof Routines
*/
static CompletaCampos: (valor: string, mascara: string, lado: 'E' | 'D', tamanho: number, recorta?: boolean) => string;
/**
* Converte 2 bytes em um word
*
* @static
* @param {Uint8Array} bytes Array com no minimo 2 bytes os demais bytes serão ignorados
* @returns {(number | undefined)} retorna undefined caso seja menor que 2 bytes ou o valor convertido
* @memberof Routines
*/
static ByteToWord: (bytes: Uint8Array) => number | undefined;
/**
* Converte até 4 bytes em um number
*
* @static
* @param {Uint8Array} bytes
* @returns {(number | undefined)} retorna undefined caso não tenha entre 1 e 4 bytes ou o valor convertido
* @memberof Routines
*/
static ByteToNumber: (bytes: Uint8Array) => number | undefined;
/**
* Converte um array de bytes em String
*
* @static
* @param {Uint8Array} bytes Array de bytes Ex.: [0x31, 0x32, 0x33, 0x2A]
* @returns {string} retorna a string convertida Ex: [0x31, 0x32, 0x33, 0x2A] = '123*'
* @memberof Routines
*/
static ByteToString: (bytes: Uint8Array) => string;
/**
* Converte um array de bytes em uma string com o valor hexadecimal correspondente
*
* @static
* @param {Uint8Array} bytes Array de bytes Ex.: [0x31, 0x32, 0x33, 0x2A]
* @returns {string} retorna a string convertida Ex: [0x31, 0x32, 0x33, 0x2A] = '3132332A'
* @memberof Routines
*/
static ByteToHexa: (bytes: Uint8Array) => string;
/**
* Converte uma string em hexadecimal para um array de bytes
*
* @static
* @param {string} hex String em hexa Ex.: '3132332A'
* @returns {Uint8Array} Retorna um array de bytes referente a string Ex: '3132332A' = [0x31, 0x32, 0x33, 0x2A]
* @memberof Routines
*/
static StrHexaToByte: (hex: string) => Uint8Array;
/**
* Converte uma string em array de bytes
*
* @static
* @param {string} str String que será convertida EX.: '123*'
* @returns {Uint8Array} retorna um array com os valores correspondentes Ex: '123*' = [0x31, 0x32, 0x33, 0x2A]
* @memberof Routines
*/
static StrToByte: (str: string) => Uint8Array;
/**
* Verifiaca se um número informado está entre outros dois
*
* @static
* @param {number} x valor que será verificado
* @param {number} min valor minino da comparação
* @param {number} max valor maximo da comparação
* @returns {boolean} retorna se o x está entre o min e o max
* @memberof Routines
*/
static between: (x: number, min: number, max: number) => boolean;
/**
* Converte uma string em número caso não seja um número válido ele devolve o valor default
*
* @static
* @param {string} s String com um valor numérico que será convertido
* @param {number} df valor default que será resultado caso a conversão falhe
* @returns {number} retorna o valor convertido ou o default caso não consiga converter
* @memberof Routines
*/
static parseNumber: (s: string, df: number) => number;
}

1
lib/utils/rotines.js Normal file
View File

@ -0,0 +1 @@
'use strict';const a8_0x3d614c=a8_0x8c8b;(function(_0x5cbdc5,_0x2ccf4c){const _0x391f86=a8_0x8c8b,_0x2e37bf=_0x5cbdc5();while(!![]){try{const _0x1abf5c=parseInt(_0x391f86(0x131))/0x1*(-parseInt(_0x391f86(0x12f))/0x2)+-parseInt(_0x391f86(0x129))/0x3+parseInt(_0x391f86(0x126))/0x4*(-parseInt(_0x391f86(0x11c))/0x5)+parseInt(_0x391f86(0x128))/0x6+-parseInt(_0x391f86(0x11d))/0x7*(-parseInt(_0x391f86(0x130))/0x8)+-parseInt(_0x391f86(0x11b))/0x9+parseInt(_0x391f86(0x12c))/0xa*(parseInt(_0x391f86(0x120))/0xb);if(_0x1abf5c===_0x2ccf4c)break;else _0x2e37bf['push'](_0x2e37bf['shift']());}catch(_0x2bb266){_0x2e37bf['push'](_0x2e37bf['shift']());}}}(a8_0x1c6a,0xb231f));function a8_0x8c8b(_0x11cc30,_0x2f8ad6){const _0x1c6a94=a8_0x1c6a();return a8_0x8c8b=function(_0x8c8b48,_0x3821ad){_0x8c8b48=_0x8c8b48-0x11b;let _0x5c32c6=_0x1c6a94[_0x8c8b48];return _0x5c32c6;},a8_0x8c8b(_0x11cc30,_0x2f8ad6);}Object[a8_0x3d614c(0x138)](exports,'__esModule',{'value':!![]}),exports[a8_0x3d614c(0x12a)]=void 0x0;function a8_0x1c6a(){const _0x3b4a6a=['ByteToNumber','ByteToString','StrToByte','buffer','20QxTqJW','hex','4674816pmUfny','1374765KXXOUe','Routines','between','1916930AYaFLm','CompletaCampos','fromCharCode','66lGaJPS','8416jzXHCr','34978mzuALy','ByteToHexa','length','charCodeAt','from','substr','padStart','defineProperty','ByteToWord','map','856782ixtnuM','699605sZBAoU','6762xtvuZs','StrHexaToByte','padEnd','77sFgKGR','parseNumber'];a8_0x1c6a=function(){return _0x3b4a6a;};return a8_0x1c6a();}const buffer_1=require(a8_0x3d614c(0x125));class Routines{static [a8_0x3d614c(0x12d)]=(_0x1ac148,_0x4b28d3,_0x4042c3,_0x595d64,_0x5c8943=!![])=>{const _0x41c372=a8_0x3d614c;if(_0x1ac148[_0x41c372(0x133)]<_0x595d64)return _0x4042c3==='E'?_0x1ac148[_0x41c372(0x137)](_0x595d64,_0x4b28d3):_0x1ac148[_0x41c372(0x11f)](_0x595d64,_0x4b28d3);else{if(_0x1ac148['length']>_0x595d64&&_0x5c8943)return _0x1ac148[_0x41c372(0x136)](0x0,_0x595d64);}return _0x1ac148;};static [a8_0x3d614c(0x139)]=_0xcfe177=>{const _0x13fa5e=a8_0x3d614c;if(_0xcfe177[_0x13fa5e(0x133)]>0x2)return _0xcfe177[0x0]<<0x8|_0xcfe177[0x1];};static [a8_0x3d614c(0x122)]=_0x1e0843=>{const _0x20bb3d=a8_0x3d614c;if(Routines[_0x20bb3d(0x12b)](_0x1e0843[_0x20bb3d(0x133)],0x1,0x4)){let _0x486a9d=0x0;for(let _0x152f3a=0x0;_0x152f3a<_0x1e0843[_0x20bb3d(0x133)];_0x152f3a++){_0x486a9d|=_0x1e0843[_0x1e0843[_0x20bb3d(0x133)]-0x1-_0x152f3a]<<_0x152f3a*0x8;}return _0x486a9d;}};static [a8_0x3d614c(0x123)]=_0x56c01e=>{const _0x16dbbe=a8_0x3d614c;let _0x43f320='';return _0x56c01e[_0x16dbbe(0x13a)](_0x1b6efd=>{const _0x40e0a3=_0x16dbbe;return _0x43f320+=String[_0x40e0a3(0x12e)](_0x1b6efd),_0x1b6efd;}),_0x43f320;};static [a8_0x3d614c(0x132)]=_0x26db9e=>buffer_1['Buffer'][a8_0x3d614c(0x135)](_0x26db9e)['toString'](a8_0x3d614c(0x127));static [a8_0x3d614c(0x11e)]=_0x409f96=>{const _0x11bcdf=a8_0x3d614c;let _0x5d5fdf='';_0x409f96[_0x11bcdf(0x133)]%0x2!==0x0?_0x5d5fdf=_0x409f96['padStart'](_0x409f96[_0x11bcdf(0x133)]+0x1,'0'):_0x5d5fdf=_0x409f96;const _0x55d3ee=new Uint8Array(_0x409f96[_0x11bcdf(0x133)]/0x2);for(let _0x58cb97=0x0,_0x5ac817=0x0;_0x58cb97<_0x409f96[_0x11bcdf(0x133)];_0x58cb97+=0x2,_0x5ac817++){_0x55d3ee[_0x5ac817]=parseInt(_0x409f96[_0x11bcdf(0x136)](_0x58cb97,0x2),0x10);}return _0x55d3ee;};static [a8_0x3d614c(0x124)]=_0x3af102=>{const _0x52f7c9=a8_0x3d614c,_0x32f9f1=new Uint8Array(_0x3af102[_0x52f7c9(0x133)]);let _0x5a48a5=0x0;for(const _0x3b2777 of _0x3af102){_0x32f9f1[_0x5a48a5++]=_0x3b2777[_0x52f7c9(0x134)](0x0);}return _0x32f9f1;};static [a8_0x3d614c(0x12b)]=(_0xbfc5a6,_0x4556f8,_0x300926)=>_0xbfc5a6>=_0x4556f8&&_0xbfc5a6<=_0x300926;static [a8_0x3d614c(0x121)]=(_0x3db793,_0x390cb4)=>{try{return isNaN(Number(_0x3db793))?_0x390cb4:Number(_0x3db793);}catch(_0x5568ce){return _0x390cb4;}};}exports[a8_0x3d614c(0x12a)]=Routines;

80
package.json Normal file
View File

@ -0,0 +1,80 @@
{
"name": "fre-utils",
"version": "1.1.1",
"description": "",
"bin": "lib/index.js",
"main": "lib/index.js",
"types": "lib/index.d.ts",
"scripts": {
"lint": "tslint --project tsconfig.json",
"start": "ts-node src/index.ts",
"watch": "nodemon -e ts -w ./src -x npm run watch:serve",
"watch:serve": "ts-node src/index.ts",
"postversion": "git push && git push --tags",
"build": "rm -rf lib/ && tsc && npm run obfuscate && npm run copy-pages",
"prepare": "npm run build",
"obfuscate": "javascript-obfuscator lib/ --config obfuscator-config.json && node rename-lib-files",
"copy-pages": "",
"test": "ENV_PATH=.env.test jest --no-cache --detectOpenHandles"
},
"files": [
"lib/**/*"
],
"keywords": [
"api",
"node",
"js",
"ts",
"utils"
],
"author": {
"email": "tisoares@outlook.com",
"name": "Tiago Soares",
"url": "https://github.com/tisoares/"
},
"license": "ISC",
"repository": {
"type": "git",
"url": "git+ssh://git@git.fre.com.br:FREInformatica/node-fre-utils.git"
},
"dependencies": {
"ip": "^1.1.8",
"proxy-addr": "^2.0.7",
"range_check": "^2.0.4",
"tslib": "^2.6.2",
"tslint": "^6.1.3"
},
"devDependencies": {
"@types/ip": "^1.1.3",
"@types/jest": "^29.5.11",
"@types/node": "^20.10.4",
"@types/proxy-addr": "^2.0.3",
"javascript-obfuscator": "^4.1.0",
"jest": "^29.7.0",
"nodemon": "^3.0.2",
"ts-jest": "^29.1.1",
"ts-node": "^10.9.2",
"typescript": "^5.3.3"
},
"engineStrict": true,
"jest": {
"clearMocks": true,
"collectCoverage": true,
"collectCoverageFrom": [
"src/**/*.ts"
],
"testRegex": "\\.test\\.ts",
"coverageDirectory": "coverage",
"transform": {
".+\\.ts$": "ts-jest"
},
"moduleFileExtensions": [
"ts",
"tsx",
"js",
"jsx",
"json",
"node"
]
}
}