@forestadmin/datasource-sql 1.5.1 → 1.6.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/dist/connection/index.js
CHANGED
|
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const sequelize_1 = require("sequelize");
|
|
7
7
|
const preprocess_1 = __importDefault(require("./preprocess"));
|
|
8
|
+
const reverse_proxy_1 = __importDefault(require("./reverse-proxy"));
|
|
8
9
|
const utils_1 = require("./utils");
|
|
9
10
|
function getSslConfiguration(dialect, sslMode, logger) {
|
|
10
11
|
switch (dialect) {
|
|
@@ -53,8 +54,15 @@ function getSslConfiguration(dialect, sslMode, logger) {
|
|
|
53
54
|
}
|
|
54
55
|
/** Attempt to connect to the database */
|
|
55
56
|
async function connect(uriOrOptions, logger) {
|
|
57
|
+
let proxy;
|
|
56
58
|
try {
|
|
57
|
-
|
|
59
|
+
let options = await (0, preprocess_1.default)(uriOrOptions);
|
|
60
|
+
if (options.proxySocks) {
|
|
61
|
+
proxy = new reverse_proxy_1.default(options);
|
|
62
|
+
await proxy.start();
|
|
63
|
+
options = proxy.connectionOptions;
|
|
64
|
+
}
|
|
65
|
+
const { uri, sslMode, ...opts } = options;
|
|
58
66
|
const schema = opts.schema ?? (0, utils_1.getSchema)(uri);
|
|
59
67
|
const logging = logger ? (0, utils_1.getLogger)(logger) : false;
|
|
60
68
|
opts.dialectOptions = {
|
|
@@ -64,12 +72,19 @@ async function connect(uriOrOptions, logger) {
|
|
|
64
72
|
const sequelize = uri
|
|
65
73
|
? new sequelize_1.Sequelize(uri, { ...opts, schema, logging })
|
|
66
74
|
: new sequelize_1.Sequelize({ ...opts, schema, logging });
|
|
75
|
+
// we want to stop the proxy when the sequelize connection is closed
|
|
76
|
+
sequelize.close = async function close() {
|
|
77
|
+
await sequelize_1.Sequelize.prototype.close.call(this);
|
|
78
|
+
await proxy?.stop();
|
|
79
|
+
};
|
|
67
80
|
await sequelize.authenticate(); // Test connection
|
|
68
81
|
return sequelize;
|
|
69
82
|
}
|
|
70
83
|
catch (e) {
|
|
71
|
-
|
|
84
|
+
await proxy?.stop();
|
|
85
|
+
// if proxy encountered an error, we want to throw it instead of the sequelize error
|
|
86
|
+
(0, utils_1.handleSequelizeError)(proxy?.getError() || e);
|
|
72
87
|
}
|
|
73
88
|
}
|
|
74
89
|
exports.default = connect;
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29ubmVjdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUdBLHlDQUErQztBQUUvQyw4REFBNkM7QUFDN0Msb0VBQTJDO0FBQzNDLG1DQUFxRTtBQUVyRSxTQUFTLG1CQUFtQixDQUMxQixPQUFnQixFQUNoQixPQUFnQixFQUNoQixNQUFlO0lBRWYsUUFBUSxPQUFPLEVBQUU7UUFDZixLQUFLLFNBQVM7WUFDWixJQUFJLE9BQU8sS0FBSyxVQUFVO2dCQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDbEQsSUFBSSxPQUFPLEtBQUssVUFBVTtnQkFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLEVBQUUsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUMxRSxJQUFJLE9BQU8sS0FBSyxRQUFRO2dCQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDL0MsTUFBTTtRQUVSLEtBQUssT0FBTztZQUNWLElBQUksT0FBTyxLQUFLLFVBQVU7Z0JBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ25FLElBQUksT0FBTyxLQUFLLFVBQVU7Z0JBQ3hCLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLHNCQUFzQixFQUFFLElBQUksRUFBRSxFQUFFLENBQUM7WUFDdEUsSUFBSSxPQUFPLEtBQUssUUFBUTtnQkFDdEIsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsc0JBQXNCLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUN2RSxNQUFNO1FBRVIsS0FBSyxPQUFPO1lBQ1YsSUFBSSxPQUFPLEtBQUssVUFBVTtnQkFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxD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
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ConnectionOptionsObj } from '../types';
|
|
2
|
+
export default class ReverseProxy {
|
|
3
|
+
private readonly errors;
|
|
4
|
+
private readonly server;
|
|
5
|
+
private readonly destination;
|
|
6
|
+
constructor(destination: ConnectionOptionsObj);
|
|
7
|
+
start(): Promise<void>;
|
|
8
|
+
stop(): Promise<void>;
|
|
9
|
+
get connectionOptions(): ConnectionOptionsObj;
|
|
10
|
+
getError(): Error | null;
|
|
11
|
+
private get destinationHost();
|
|
12
|
+
private get destinationPort();
|
|
13
|
+
private onConnection;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=reverse-proxy.d.ts.map
|
|
@@ -0,0 +1,69 @@
|
|
|
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 net_1 = __importDefault(require("net"));
|
|
7
|
+
const socks_1 = require("socks");
|
|
8
|
+
class ReverseProxy {
|
|
9
|
+
constructor(destination) {
|
|
10
|
+
this.errors = [];
|
|
11
|
+
this.destination = destination;
|
|
12
|
+
this.server = net_1.default.createServer(this.onConnection.bind(this));
|
|
13
|
+
if (!this.destinationPort)
|
|
14
|
+
throw new Error('Port is required');
|
|
15
|
+
if (!this.destinationHost)
|
|
16
|
+
throw new Error('Host is required');
|
|
17
|
+
}
|
|
18
|
+
start() {
|
|
19
|
+
return new Promise((resolve, reject) => {
|
|
20
|
+
this.server.on('error', reject);
|
|
21
|
+
this.server.listen(0, '127.0.0.1', resolve);
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
stop() {
|
|
25
|
+
return new Promise(resolve => {
|
|
26
|
+
this.server.close(() => resolve());
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
get connectionOptions() {
|
|
30
|
+
const { address, port } = this.server.address();
|
|
31
|
+
const connection = { ...this.destination };
|
|
32
|
+
if (this.destination.uri) {
|
|
33
|
+
const uri = new URL(this.destination.uri);
|
|
34
|
+
uri.host = address;
|
|
35
|
+
uri.port = port.toString();
|
|
36
|
+
connection.uri = uri.toString();
|
|
37
|
+
}
|
|
38
|
+
connection.host = address;
|
|
39
|
+
connection.port = port;
|
|
40
|
+
return connection;
|
|
41
|
+
}
|
|
42
|
+
getError() {
|
|
43
|
+
return this.errors.length > 0 ? this.errors[0] : null;
|
|
44
|
+
}
|
|
45
|
+
get destinationHost() {
|
|
46
|
+
return this.destination.uri ? new URL(this.destination.uri).hostname : this.destination.host;
|
|
47
|
+
}
|
|
48
|
+
get destinationPort() {
|
|
49
|
+
return Number(this.destination.uri ? new URL(this.destination.uri).port : this.destination.port);
|
|
50
|
+
}
|
|
51
|
+
async onConnection(socket) {
|
|
52
|
+
socket.on('error', error => this.errors.push(error));
|
|
53
|
+
try {
|
|
54
|
+
const socks5Proxy = await socks_1.SocksClient.createConnection({
|
|
55
|
+
proxy: { ...this.destination.proxySocks, type: 5 },
|
|
56
|
+
command: 'connect',
|
|
57
|
+
destination: { host: this.destinationHost, port: this.destinationPort },
|
|
58
|
+
});
|
|
59
|
+
socks5Proxy.socket.on('error', socket.destroy);
|
|
60
|
+
socks5Proxy.socket.pipe(socket);
|
|
61
|
+
socket.pipe(socks5Proxy.socket);
|
|
62
|
+
}
|
|
63
|
+
catch (err) {
|
|
64
|
+
socket.destroy(err);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
exports.default = ReverseProxy;
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV2ZXJzZS1wcm94eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25uZWN0aW9uL3JldmVyc2UtcHJveHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw4Q0FBc0I7QUFDdEIsaUNBQW9DO0FBSXBDLE1BQXFCLFlBQVk7SUFLL0IsWUFBWSxXQUFpQztRQUo1QixXQUFNLEdBQVksRUFBRSxDQUFDO1FBS3BDLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQy9CLElBQUksQ0FBQyxNQUFNLEdBQUcsYUFBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRTdELElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUMvRCxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWU7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELEtBQUs7UUFDSCxPQUFPLElBQUksT0FBTyxDQUFPLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQzNDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNoQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzlDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUk7UUFDRixPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzNCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDckMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBVyxp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
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Table } from './introspection/types';
|
|
2
|
-
import type { ConnectionOptions } from './types';
|
|
2
|
+
import type { ConnectionOptions, SslMode } from './types';
|
|
3
3
|
import type { DataSourceFactory, Logger } from '@forestadmin/datasource-toolkit';
|
|
4
4
|
import { Sequelize } from 'sequelize';
|
|
5
5
|
export declare function introspect(uriOrOptions: ConnectionOptions, logger?: Logger): Promise<Table[]>;
|
|
@@ -7,6 +7,6 @@ export declare function buildSequelizeInstance(uriOrOptions: ConnectionOptions,
|
|
|
7
7
|
export declare function createSqlDataSource(uriOrOptions: ConnectionOptions, options?: {
|
|
8
8
|
introspection: Table[];
|
|
9
9
|
}): DataSourceFactory;
|
|
10
|
-
export type { ConnectionOptions, Table };
|
|
10
|
+
export type { ConnectionOptions, Table, SslMode };
|
|
11
11
|
export { default as preprocessOptions } from './connection/preprocess';
|
|
12
12
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/types.d.ts
CHANGED
|
@@ -2,6 +2,14 @@ import { Options } from 'sequelize/types';
|
|
|
2
2
|
export type ConnectionOptionsObj = {
|
|
3
3
|
uri?: string;
|
|
4
4
|
sslMode?: SslMode;
|
|
5
|
+
proxySocks?: {
|
|
6
|
+
userId?: string;
|
|
7
|
+
password?: string;
|
|
8
|
+
host: string;
|
|
9
|
+
port: number;
|
|
10
|
+
version?: 5;
|
|
11
|
+
command?: 'connect';
|
|
12
|
+
};
|
|
5
13
|
} & Pick<Options, 'database' | 'dialect' | 'dialectModule' | 'dialectModulePath' | 'dialectOptions' | 'host' | 'minifyAliases' | 'native' | 'password' | 'pool' | 'port' | 'protocol' | 'replication' | 'schema' | 'ssl' | 'storage' | 'username'>;
|
|
6
14
|
export type ConnectionOptions = ConnectionOptionsObj | string;
|
|
7
15
|
export type SslMode = 'preferred' | 'disabled' | 'required' | 'verify' | 'manual';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@forestadmin/datasource-sql",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.0",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"license": "GPL-3.0",
|
|
6
6
|
"publishConfig": {
|
|
@@ -15,7 +15,8 @@
|
|
|
15
15
|
"@forestadmin/datasource-sequelize": "1.3.1",
|
|
16
16
|
"@forestadmin/datasource-toolkit": "1.5.0",
|
|
17
17
|
"pluralize": "^8.0.0",
|
|
18
|
-
"sequelize": "^6.28.0"
|
|
18
|
+
"sequelize": "^6.28.0",
|
|
19
|
+
"socks": "^2.7.1"
|
|
19
20
|
},
|
|
20
21
|
"files": [
|
|
21
22
|
"dist/**/*.js",
|