@requestly/requestly-proxy 1.0.0
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/LICENSE +201 -0
- package/README.md +5 -0
- package/dist/components/interfaces/logger-service.d.ts +4 -0
- package/dist/components/interfaces/logger-service.js +2 -0
- package/dist/components/interfaces/rules-data-source.d.ts +6 -0
- package/dist/components/interfaces/rules-data-source.js +2 -0
- package/dist/components/proxy-middleware/constants.d.ts +11 -0
- package/dist/components/proxy-middleware/constants.js +21 -0
- package/dist/components/proxy-middleware/helpers/ctx_rq_namespace.d.ts +35 -0
- package/dist/components/proxy-middleware/helpers/ctx_rq_namespace.js +96 -0
- package/dist/components/proxy-middleware/helpers/harObectCreator.d.ts +140 -0
- package/dist/components/proxy-middleware/helpers/harObectCreator.js +158 -0
- package/dist/components/proxy-middleware/helpers/http_helpers.d.ts +2 -0
- package/dist/components/proxy-middleware/helpers/http_helpers.js +47 -0
- package/dist/components/proxy-middleware/helpers/proxy_ctx_helper.d.ts +14 -0
- package/dist/components/proxy-middleware/helpers/proxy_ctx_helper.js +86 -0
- package/dist/components/proxy-middleware/helpers/response_helper.d.ts +3 -0
- package/dist/components/proxy-middleware/helpers/response_helper.js +17 -0
- package/dist/components/proxy-middleware/helpers/rule_processor_helper.d.ts +17 -0
- package/dist/components/proxy-middleware/helpers/rule_processor_helper.js +192 -0
- package/dist/components/proxy-middleware/index.d.ts +25 -0
- package/dist/components/proxy-middleware/index.js +257 -0
- package/dist/components/proxy-middleware/middlewares/amiusing_middleware.d.ts +6 -0
- package/dist/components/proxy-middleware/middlewares/amiusing_middleware.js +25 -0
- package/dist/components/proxy-middleware/middlewares/logger_middleware.d.ts +66 -0
- package/dist/components/proxy-middleware/middlewares/logger_middleware.js +89 -0
- package/dist/components/proxy-middleware/middlewares/rules_middleware.d.ts +40 -0
- package/dist/components/proxy-middleware/middlewares/rules_middleware.js +117 -0
- package/dist/components/proxy-middleware/middlewares/ssl_cert_middleware.d.ts +7 -0
- package/dist/components/proxy-middleware/middlewares/ssl_cert_middleware.js +33 -0
- package/dist/components/proxy-middleware/rule_action_processor/handle_mixed_response.d.ts +14 -0
- package/dist/components/proxy-middleware/rule_action_processor/handle_mixed_response.js +78 -0
- package/dist/components/proxy-middleware/rule_action_processor/index.d.ts +13 -0
- package/dist/components/proxy-middleware/rule_action_processor/index.js +101 -0
- package/dist/components/proxy-middleware/rule_action_processor/modified_requests_pool.d.ts +7 -0
- package/dist/components/proxy-middleware/rule_action_processor/modified_requests_pool.js +34 -0
- package/dist/components/proxy-middleware/rule_action_processor/processors/block_processor.d.ts +6 -0
- package/dist/components/proxy-middleware/rule_action_processor/processors/block_processor.js +21 -0
- package/dist/components/proxy-middleware/rule_action_processor/processors/delay_processor.d.ts +6 -0
- package/dist/components/proxy-middleware/rule_action_processor/processors/delay_processor.js +29 -0
- package/dist/components/proxy-middleware/rule_action_processor/processors/insert_processor.d.ts +6 -0
- package/dist/components/proxy-middleware/rule_action_processor/processors/insert_processor.js +154 -0
- package/dist/components/proxy-middleware/rule_action_processor/processors/modify_header_processor.d.ts +6 -0
- package/dist/components/proxy-middleware/rule_action_processor/processors/modify_header_processor.js +69 -0
- package/dist/components/proxy-middleware/rule_action_processor/processors/modify_request_processor.d.ts +6 -0
- package/dist/components/proxy-middleware/rule_action_processor/processors/modify_request_processor.js +89 -0
- package/dist/components/proxy-middleware/rule_action_processor/processors/modify_response_processor.d.ts +6 -0
- package/dist/components/proxy-middleware/rule_action_processor/processors/modify_response_processor.js +109 -0
- package/dist/components/proxy-middleware/rule_action_processor/processors/modify_user_agent_processor.d.ts +6 -0
- package/dist/components/proxy-middleware/rule_action_processor/processors/modify_user_agent_processor.js +25 -0
- package/dist/components/proxy-middleware/rule_action_processor/processors/redirect_processor.d.ts +6 -0
- package/dist/components/proxy-middleware/rule_action_processor/processors/redirect_processor.js +58 -0
- package/dist/components/proxy-middleware/rule_action_processor/utils.d.ts +11 -0
- package/dist/components/proxy-middleware/rule_action_processor/utils.js +33 -0
- package/dist/components/ssl-proxying/ssl-proxying-manager.d.ts +3 -0
- package/dist/components/ssl-proxying/ssl-proxying-manager.js +6 -0
- package/dist/constants/cert.d.ts +7 -0
- package/dist/constants/cert.js +13 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +11 -0
- package/dist/lib/proxy/bin/mitm-proxy.d.ts +2 -0
- package/dist/lib/proxy/bin/mitm-proxy.js +30 -0
- package/dist/lib/proxy/custom/utils/checkInvalidHeaderChar.d.ts +8 -0
- package/dist/lib/proxy/custom/utils/checkInvalidHeaderChar.js +14 -0
- package/dist/lib/proxy/index.d.ts +2 -0
- package/dist/lib/proxy/index.js +2 -0
- package/dist/lib/proxy/lib/ca.d.ts +8 -0
- package/dist/lib/proxy/lib/ca.js +277 -0
- package/dist/lib/proxy/lib/middleware/gunzip.d.ts +2 -0
- package/dist/lib/proxy/lib/middleware/gunzip.js +17 -0
- package/dist/lib/proxy/lib/middleware/wildcard.d.ts +1 -0
- package/dist/lib/proxy/lib/middleware/wildcard.js +20 -0
- package/dist/lib/proxy/lib/proxy.d.ts +36 -0
- package/dist/lib/proxy/lib/proxy.js +1217 -0
- package/dist/rq-proxy-provider.d.ts +10 -0
- package/dist/rq-proxy-provider.js +20 -0
- package/dist/rq-proxy.d.ts +15 -0
- package/dist/rq-proxy.js +53 -0
- package/dist/test.d.ts +1 -0
- package/dist/test.js +111 -0
- package/dist/types/index.d.ts +12 -0
- package/dist/types/index.js +2 -0
- package/dist/utils/circularQueue.d.ts +2 -0
- package/dist/utils/circularQueue.js +31 -0
- package/dist/utils/helpers/rules-helper.d.ts +11 -0
- package/dist/utils/helpers/rules-helper.js +59 -0
- package/dist/utils/index.d.ts +0 -0
- package/dist/utils/index.js +0 -0
- package/package.json +43 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import RQProxy from "./rq-proxy";
|
|
2
|
+
import ILoggerService from "./components/interfaces/logger-service";
|
|
3
|
+
import IRulesDataSource from "./components/interfaces/rules-data-source";
|
|
4
|
+
import { ProxyConfig } from "./types";
|
|
5
|
+
declare class RQProxyProvider {
|
|
6
|
+
static rqProxyInstance: any;
|
|
7
|
+
static createInstance: (proxyConfig: ProxyConfig, rulesDataSource: IRulesDataSource, loggerService: ILoggerService) => void;
|
|
8
|
+
static getInstance: () => RQProxy;
|
|
9
|
+
}
|
|
10
|
+
export default RQProxyProvider;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const rq_proxy_1 = __importDefault(require("./rq-proxy"));
|
|
7
|
+
class RQProxyProvider {
|
|
8
|
+
}
|
|
9
|
+
RQProxyProvider.rqProxyInstance = null;
|
|
10
|
+
// TODO: rulesDataSource can be static here
|
|
11
|
+
RQProxyProvider.createInstance = (proxyConfig, rulesDataSource, loggerService) => {
|
|
12
|
+
RQProxyProvider.rqProxyInstance = new rq_proxy_1.default(proxyConfig, rulesDataSource, loggerService);
|
|
13
|
+
};
|
|
14
|
+
RQProxyProvider.getInstance = () => {
|
|
15
|
+
if (!RQProxyProvider.rqProxyInstance) {
|
|
16
|
+
console.error("Instance need to be created first");
|
|
17
|
+
}
|
|
18
|
+
return RQProxyProvider.rqProxyInstance;
|
|
19
|
+
};
|
|
20
|
+
exports.default = RQProxyProvider;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import IRulesDataSource from "./components/interfaces/rules-data-source";
|
|
2
|
+
import { ProxyConfig } from "./types";
|
|
3
|
+
import RulesHelper from "./utils/helpers/rules-helper";
|
|
4
|
+
import ProxyMiddlewareManager from "./components/proxy-middleware";
|
|
5
|
+
import ILoggerService from "./components/interfaces/logger-service";
|
|
6
|
+
declare class RQProxy {
|
|
7
|
+
proxy: any;
|
|
8
|
+
proxyMiddlewareManager: ProxyMiddlewareManager;
|
|
9
|
+
rulesHelper: RulesHelper;
|
|
10
|
+
loggerService: ILoggerService;
|
|
11
|
+
constructor(proxyConfig: ProxyConfig, rulesDataSource: IRulesDataSource, loggerService: ILoggerService);
|
|
12
|
+
initProxy: (proxyConfig: ProxyConfig) => void;
|
|
13
|
+
doSomething: () => void;
|
|
14
|
+
}
|
|
15
|
+
export default RQProxy;
|
package/dist/rq-proxy.js
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const proxy_1 = __importDefault(require("./lib/proxy"));
|
|
7
|
+
const rules_helper_1 = __importDefault(require("./utils/helpers/rules-helper"));
|
|
8
|
+
const proxy_middleware_1 = __importDefault(require("./components/proxy-middleware"));
|
|
9
|
+
class RQProxy {
|
|
10
|
+
constructor(proxyConfig, rulesDataSource, loggerService) {
|
|
11
|
+
this.initProxy = (proxyConfig) => {
|
|
12
|
+
console.log("initProxy");
|
|
13
|
+
console.log(proxyConfig);
|
|
14
|
+
// @ts-ignore
|
|
15
|
+
this.proxy = new proxy_1.default();
|
|
16
|
+
// console.log(this.proxy);
|
|
17
|
+
this.proxy.listen({
|
|
18
|
+
port: proxyConfig.port,
|
|
19
|
+
sslCaDir: proxyConfig.certPath,
|
|
20
|
+
host: "0.0.0.0",
|
|
21
|
+
}, (err) => {
|
|
22
|
+
console.log("Proxy Listen");
|
|
23
|
+
if (err) {
|
|
24
|
+
console.log(err);
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
console.log("Proxy Started");
|
|
28
|
+
this.proxyMiddlewareManager = new proxy_middleware_1.default(this.proxy, proxyConfig, this.rulesHelper, this.loggerService, null);
|
|
29
|
+
this.proxyMiddlewareManager.init();
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
// For Testing //
|
|
33
|
+
this.proxy.onRequest(function (ctx, callback) {
|
|
34
|
+
if (ctx.clientToProxyRequest.headers.host == 'example.com') {
|
|
35
|
+
ctx.use(proxy_1.default.gunzip);
|
|
36
|
+
ctx.onResponseData(function (ctx, chunk, callback) {
|
|
37
|
+
chunk = new Buffer("<h1>Hello There</h1>");
|
|
38
|
+
return callback(null, chunk);
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
return callback();
|
|
42
|
+
});
|
|
43
|
+
//
|
|
44
|
+
};
|
|
45
|
+
this.doSomething = () => {
|
|
46
|
+
console.log("do something");
|
|
47
|
+
};
|
|
48
|
+
this.initProxy(proxyConfig);
|
|
49
|
+
this.rulesHelper = new rules_helper_1.default(rulesDataSource);
|
|
50
|
+
this.loggerService = loggerService;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
exports.default = RQProxy;
|
package/dist/test.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/test.js
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
const axios_1 = __importDefault(require("axios"));
|
|
16
|
+
const rq_proxy_provider_1 = __importDefault(require("./rq-proxy-provider"));
|
|
17
|
+
console.log("start");
|
|
18
|
+
const proxyConfig = {
|
|
19
|
+
port: 8281,
|
|
20
|
+
// @ts-ignore
|
|
21
|
+
certPath: "/Users/sahilgupta/Library/Application\\ Support/Electron/.requestly-certs-temp",
|
|
22
|
+
// TODO: MOVE THIS IN RQ PROXY
|
|
23
|
+
rootCertPath: "/Users/sahilgupta/Library/Application\\ Support/Electron/.requestly-certs-temp/certs/ca.pem"
|
|
24
|
+
};
|
|
25
|
+
class RulesDataSource {
|
|
26
|
+
constructor() {
|
|
27
|
+
this.getRules = (requestHeaders) => __awaiter(this, void 0, void 0, function* () {
|
|
28
|
+
return [
|
|
29
|
+
{
|
|
30
|
+
"creationDate": 1648800254537,
|
|
31
|
+
"description": "",
|
|
32
|
+
"groupId": "",
|
|
33
|
+
"id": "Headers_br050",
|
|
34
|
+
"isSample": false,
|
|
35
|
+
"name": "Test Header Rule",
|
|
36
|
+
"objectType": "rule",
|
|
37
|
+
"pairs": [
|
|
38
|
+
{
|
|
39
|
+
"header": "abc",
|
|
40
|
+
"value": "abc value",
|
|
41
|
+
"type": "Add",
|
|
42
|
+
"target": "Request",
|
|
43
|
+
"source": {
|
|
44
|
+
"filters": {},
|
|
45
|
+
"key": "Url",
|
|
46
|
+
"operator": "Contains",
|
|
47
|
+
"value": "example"
|
|
48
|
+
},
|
|
49
|
+
"id": "lussg"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"header": "abc",
|
|
53
|
+
"value": "bac value",
|
|
54
|
+
"type": "Add",
|
|
55
|
+
"target": "Response",
|
|
56
|
+
"source": {
|
|
57
|
+
"filters": {},
|
|
58
|
+
"key": "Url",
|
|
59
|
+
"operator": "Contains",
|
|
60
|
+
"value": "example"
|
|
61
|
+
},
|
|
62
|
+
"id": "be1k6"
|
|
63
|
+
}
|
|
64
|
+
],
|
|
65
|
+
"ruleType": "Headers",
|
|
66
|
+
"status": "Active",
|
|
67
|
+
"createdBy": "9cxfwgyBXKQxj9lU14GiTO5KTNY2",
|
|
68
|
+
"currentOwner": "9cxfwgyBXKQxj9lU14GiTO5KTNY2",
|
|
69
|
+
"lastModifiedBy": "9cxfwgyBXKQxj9lU14GiTO5KTNY2",
|
|
70
|
+
"modificationDate": 1648800283699,
|
|
71
|
+
"lastModified": 1648800283699
|
|
72
|
+
}
|
|
73
|
+
];
|
|
74
|
+
});
|
|
75
|
+
this.getGroups = (requestHeaders) => __awaiter(this, void 0, void 0, function* () {
|
|
76
|
+
return [
|
|
77
|
+
{
|
|
78
|
+
id: "1",
|
|
79
|
+
status: "Inactive"
|
|
80
|
+
}
|
|
81
|
+
];
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
class LoggerService {
|
|
86
|
+
constructor() {
|
|
87
|
+
this.addLog = (log, requestHeaders) => {
|
|
88
|
+
console.log(JSON.stringify(log, null, 4));
|
|
89
|
+
const headers = {
|
|
90
|
+
"device_id": "test_device",
|
|
91
|
+
"sdk_id": "7jcFc1g5j7ozfSXe7lc6",
|
|
92
|
+
};
|
|
93
|
+
// TODO: Keeping this as Strong for now to avoid changes in UI
|
|
94
|
+
log.finalHar = JSON.stringify(log.finalHar);
|
|
95
|
+
(0, axios_1.default)({
|
|
96
|
+
method: "post",
|
|
97
|
+
url: "http://localhost:5001/requestly-dev/us-central1/addSdkLog",
|
|
98
|
+
headers,
|
|
99
|
+
data: log
|
|
100
|
+
}).then(() => {
|
|
101
|
+
console.log("Successfully added log");
|
|
102
|
+
}).catch(error => {
|
|
103
|
+
console.log(`Could not add Log`);
|
|
104
|
+
});
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
// RQProxyProvider.getInstance().doSomething();
|
|
109
|
+
rq_proxy_provider_1.default.createInstance(proxyConfig, new RulesDataSource(), new LoggerService());
|
|
110
|
+
rq_proxy_provider_1.default.getInstance().doSomething();
|
|
111
|
+
console.log("end");
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const Queue = function (maxSize) {
|
|
4
|
+
this.reset = function () {
|
|
5
|
+
this.head = -1;
|
|
6
|
+
this.queue = [];
|
|
7
|
+
};
|
|
8
|
+
this.reset();
|
|
9
|
+
this.maxSize = maxSize || Queue.MAX_SIZE;
|
|
10
|
+
this.increment = function (number) {
|
|
11
|
+
return (number + 1) % this.maxSize;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
Queue.MAX_SIZE = Math.pow(2, 53) - 1;
|
|
15
|
+
Queue.prototype.enQueue = function (record) {
|
|
16
|
+
this.head = this.increment(this.head);
|
|
17
|
+
this.queue[this.head] = record;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* @param record Record to look for
|
|
21
|
+
* @returns Number Position of record in the queue otherwise -1
|
|
22
|
+
*/
|
|
23
|
+
Queue.prototype.getElementIndex = function (record) {
|
|
24
|
+
return this.queue.indexOf(record);
|
|
25
|
+
};
|
|
26
|
+
Queue.prototype.print = function () {
|
|
27
|
+
for (var i = 0; i <= this.head; i++) {
|
|
28
|
+
console.log(this.queue[i]);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
exports.default = Queue;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import IRulesDataSource from "../../components/interfaces/rules-data-source";
|
|
2
|
+
declare class RulesHelper {
|
|
3
|
+
rulesDataSource: IRulesDataSource;
|
|
4
|
+
constructor(rulesDataSource: IRulesDataSource);
|
|
5
|
+
is_group_active: (group: any) => boolean;
|
|
6
|
+
is_rule_active: (rule: any, active_group_ids?: any[]) => boolean;
|
|
7
|
+
get_groups: (is_active?: boolean, requestHeaders?: {}) => Promise<import("../../types").RuleGroup[]>;
|
|
8
|
+
get_group_ids: (is_active?: boolean, requestHeaders?: {}) => Promise<String[]>;
|
|
9
|
+
get_rules: (is_active?: boolean, requestHeaders?: {}) => Promise<import("../../types").Rule[]>;
|
|
10
|
+
}
|
|
11
|
+
export default RulesHelper;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
class RulesHelper {
|
|
13
|
+
// TODO: this can be static class too
|
|
14
|
+
constructor(rulesDataSource) {
|
|
15
|
+
this.is_group_active = (group) => {
|
|
16
|
+
if (!group) {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
return group.status == "Active";
|
|
20
|
+
};
|
|
21
|
+
this.is_rule_active = (rule, active_group_ids = []) => {
|
|
22
|
+
if (!rule) {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
let status = false;
|
|
26
|
+
status = rule.status == "Active";
|
|
27
|
+
// No group case || active group case
|
|
28
|
+
if (rule.groupId == "" || active_group_ids.includes(rule.groupId)) {
|
|
29
|
+
return status;
|
|
30
|
+
}
|
|
31
|
+
return false;
|
|
32
|
+
};
|
|
33
|
+
this.get_groups = (is_active = false, requestHeaders = {}) => __awaiter(this, void 0, void 0, function* () {
|
|
34
|
+
let groups = (yield this.rulesDataSource.getGroups(requestHeaders)) || [];
|
|
35
|
+
if (is_active === true) {
|
|
36
|
+
groups = groups.filter((group) => this.is_group_active(group));
|
|
37
|
+
}
|
|
38
|
+
return groups;
|
|
39
|
+
});
|
|
40
|
+
this.get_group_ids = (is_active = false, requestHeaders = {}) => __awaiter(this, void 0, void 0, function* () {
|
|
41
|
+
const groups = yield this.get_groups(is_active, requestHeaders);
|
|
42
|
+
return groups.map((group) => group.id);
|
|
43
|
+
});
|
|
44
|
+
this.get_rules = (is_active = false, requestHeaders = {}) => __awaiter(this, void 0, void 0, function* () {
|
|
45
|
+
let rules = (yield this.rulesDataSource.getRules(requestHeaders)) || [];
|
|
46
|
+
let active_group_ids = (yield this.get_group_ids(true, requestHeaders)) || [];
|
|
47
|
+
if (is_active === true) {
|
|
48
|
+
rules = rules.filter((rule) => this.is_rule_active(rule, active_group_ids));
|
|
49
|
+
}
|
|
50
|
+
// Sorting Rules By id asc
|
|
51
|
+
rules = rules.sort((rule1, rule2) => {
|
|
52
|
+
return ("" + rule1.id).localeCompare(rule2.id);
|
|
53
|
+
});
|
|
54
|
+
return rules;
|
|
55
|
+
});
|
|
56
|
+
this.rulesDataSource = rulesDataSource;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
exports.default = RulesHelper;
|
|
File without changes
|
|
File without changes
|
package/package.json
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@requestly/requestly-proxy",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Proxy that gives superpowers to all the Requestly clients",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"test": "echo \"Error: no test specified\" && exit 1",
|
|
8
|
+
"dev": "nodemon src/test.ts",
|
|
9
|
+
"build": "tsc"
|
|
10
|
+
},
|
|
11
|
+
"repository": {
|
|
12
|
+
"type": "git",
|
|
13
|
+
"url": "git+https://github.com/requestly/rq-proxy.git"
|
|
14
|
+
},
|
|
15
|
+
"author": "",
|
|
16
|
+
"license": "ISC",
|
|
17
|
+
"dependencies": {
|
|
18
|
+
"@requestly/requestly-core": "^1.0.0",
|
|
19
|
+
"@sentry/browser": "^6.19.2",
|
|
20
|
+
"async": "^3.2.1",
|
|
21
|
+
"axios": "^0.26.1",
|
|
22
|
+
"charset": "^1.0.1",
|
|
23
|
+
"debug": "^4.3.2",
|
|
24
|
+
"httpsnippet": "^2.0.0",
|
|
25
|
+
"lodash": "^4.17.21",
|
|
26
|
+
"mime-types": "^2.1.35",
|
|
27
|
+
"mkdirp": "^0.5.5",
|
|
28
|
+
"node-forge": "^1.3.0",
|
|
29
|
+
"semaphore": "^1.1.0",
|
|
30
|
+
"ua-parser-js": "^1.0.2",
|
|
31
|
+
"url": "^0.11.0",
|
|
32
|
+
"uuid": "^8.3.2",
|
|
33
|
+
"ws": "^8.5.0"
|
|
34
|
+
},
|
|
35
|
+
"devDependencies": {
|
|
36
|
+
"@types/node": "^17.0.23",
|
|
37
|
+
"nodemon": "^2.0.15",
|
|
38
|
+
"typescript": "^4.6.3"
|
|
39
|
+
},
|
|
40
|
+
"files": [
|
|
41
|
+
"dist"
|
|
42
|
+
]
|
|
43
|
+
}
|