@forestadmin/datasource-sql 1.6.3 → 1.6.4

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.
@@ -0,0 +1,17 @@
1
+ import { ConnectionOptionsObj } from '../types';
2
+ export type SourceError = 'Proxy' | 'Database';
3
+ declare class BaseError extends Error {
4
+ source: SourceError;
5
+ uri: string;
6
+ readonly details: string;
7
+ constructor(message: string, details?: string);
8
+ }
9
+ export declare class DatabaseConnectError extends BaseError {
10
+ constructor(message: string, databaseUri?: string, source?: SourceError);
11
+ }
12
+ export declare class ProxyConnectError extends BaseError {
13
+ constructor(message: string, proxyConfig?: ConnectionOptionsObj['proxySocks']);
14
+ private static buildSanitizedUriFromConfig;
15
+ }
16
+ export {};
17
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProxyConnectError = exports.DatabaseConnectError = void 0;
4
+ function sanitizeUri(uri) {
5
+ const uriObject = new URL(uri);
6
+ if (uriObject.password) {
7
+ uriObject.password = '**sanitizedPassword**';
8
+ }
9
+ return uriObject.toString();
10
+ }
11
+ class BaseError extends Error {
12
+ constructor(message, details) {
13
+ const messageWithDetails = details ? `${message}\n${details}` : message;
14
+ super(messageWithDetails);
15
+ this.details = details;
16
+ }
17
+ }
18
+ class DatabaseConnectError extends BaseError {
19
+ constructor(message, databaseUri, source = 'Database') {
20
+ if (databaseUri) {
21
+ const sanitizedUri = sanitizeUri(databaseUri);
22
+ super(`Unable to connect to the given uri: ${sanitizedUri}.`, message);
23
+ this.uri = sanitizedUri;
24
+ }
25
+ else {
26
+ super(`Unable to connect to the given uri.`, message);
27
+ }
28
+ this.name = this.constructor.name;
29
+ this.source = source;
30
+ }
31
+ }
32
+ exports.DatabaseConnectError = DatabaseConnectError;
33
+ class ProxyConnectError extends BaseError {
34
+ constructor(message, proxyConfig) {
35
+ const defaultMessage = 'Your proxy has encountered an error.';
36
+ if (proxyConfig) {
37
+ const sanitizedUri = ProxyConnectError.buildSanitizedUriFromConfig(proxyConfig);
38
+ super(`${defaultMessage} Unable to connect to the given uri: ${sanitizedUri}.`, message);
39
+ this.uri = sanitizedUri;
40
+ }
41
+ else {
42
+ super(defaultMessage, message);
43
+ }
44
+ this.name = this.constructor.name;
45
+ this.source = 'Proxy';
46
+ }
47
+ static buildSanitizedUriFromConfig(proxyConfig) {
48
+ const proxyUri = new URL(`socks://${proxyConfig.host}:${proxyConfig.port}`);
49
+ if (proxyConfig.userId) {
50
+ proxyUri.username = proxyConfig.userId;
51
+ }
52
+ if (proxyConfig.password) {
53
+ proxyUri.password = proxyConfig.password;
54
+ }
55
+ return sanitizeUri(proxyUri.toString()).replace('socks://', '');
56
+ }
57
+ }
58
+ exports.ProxyConnectError = ProxyConnectError;
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Nvbm5lY3Rpb24vZXJyb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdBLFNBQVMsV0FBVyxDQUFDLEdBQVc7SUFDOUIsTUFBTSxTQUFTLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFL0IsSUFBSSxTQUFTLENBQUMsUUFBUSxFQUFFO1FBQ3RCLFNBQVMsQ0FBQyxRQUFRLEdBQUcsdUJBQXVCLENBQUM7S0FDOUM7SUFFRCxPQUFPLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztBQUM5QixDQUFDO0FBSUQsTUFBTSxTQUFVLFNBQVEsS0FBSztJQUszQixZQUFZLE9BQWUsRUFBRSxPQUFnQjtRQUMzQyxNQUFNLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLEtBQUssT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUN4RSxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUUxQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUN6QixDQUFDO0NBQ0Y7QUFFRCxNQUFhLG9CQUFxQixTQUFRLFNBQVM7SUFDakQsWUFBWSxPQUFlLEVBQUUsV0FBb0IsRUFBRSxTQUFzQixVQUFVO1FBQ2pGLElBQUksV0FBVyxFQUFFO1lBQ2YsTUFBTSxZQUFZLEdBQUcsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzlDLEtBQUssQ0FBQyx1Q0FBdUMsWUFBWSxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDdkUsSUFBSSxDQUFDLEdBQUcsR0FBRyxZQUFZLENBQUM7U0FDekI7YUFBTTtZQUNMLEtBQUssQ0FBQyxxQ0FBcUMsRUFBRSxPQUFPLENBQUMsQ0FBQztTQUN2RDtRQUVELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7UUFDbEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDdkIsQ0FBQztDQUNGO0FBYkQsb0RBYUM7QUFFRCxNQUFhLGlCQUFrQixTQUFRLFNBQVM7SUFDOUMsWUFBWSxPQUFlLEVBQUUsV0FBZ0Q7UUFDM0UsTUFBTSxjQUFjLEdBQUcsc0NBQXNDLENBQUM7UUFFOUQsSUFBSSxXQUFXLEVBQUU7WUFDZixNQUFNLFlBQVksR0FBRyxpQkFBaUIsQ0FBQywyQkFBMkIsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNoRixLQUFLLENBQUMsR0FBRyxjQUFjLHdDQUF3QyxZQUFZLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUN6RixJQUFJLENBQUMsR0FBRyxHQUFHLFlBQVksQ0FBQztTQUN6QjthQUFNO1lBQ0wsS0FBSyxDQUFDLGNBQWMsRUFBRSxPQUFPLENBQUMsQ0FBQztTQUNoQztRQUVELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7UUFDbEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUVPLE1BQU0sQ0FBQywyQkFBMkIsQ0FDeEMsV0FBK0M7UUFFL0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxHQUFHLENBQUMsV0FBVyxXQUFXLENBQUMsSUFBSSxJQUFJLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRTVFLElBQUksV0FBVyxDQUFDLE1BQU0sRUFBRTtZQUN0QixRQUFRLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUM7U0FDeEM7UUFFRCxJQUFJLFdBQVcsQ0FBQyxRQUFRLEVBQUU7WUFDeEIsUUFBUSxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDO1NBQzFDO1FBRUQsT0FBTyxXQUFXLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNsRSxDQUFDO0NBQ0Y7QUEvQkQsOENBK0JDIn0=
@@ -0,0 +1,4 @@
1
+ import ReverseProxy from './reverse-proxy';
2
+ import { ConnectionOptionsObj } from '../types';
3
+ export default function handleErrors(error: Error, options?: ConnectionOptionsObj, proxy?: ReverseProxy): void;
4
+ //# sourceMappingURL=handle-errors.d.ts.map
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const sequelize_1 = require("sequelize");
4
+ const errors_1 = require("./errors");
5
+ function handleProxyErrors(error, databaseUri, proxyConfig) {
6
+ // eslint-disable-next-line max-len
7
+ // @link: list of errors thrown by the proxy https://github.com/JoshGlazebrook/socks/blob/76d013e4c9a2d956f07868477d8f12ec0b96edfc/src/common/constants.ts#LL10C10-L10C10
8
+ if (error?.stack.includes('SocksClient')) {
9
+ if (error.message.includes('Socket closed') ||
10
+ error.message.includes('Socks5 proxy rejected connection')) {
11
+ throw new errors_1.DatabaseConnectError(null, databaseUri, 'Proxy');
12
+ }
13
+ throw new errors_1.ProxyConnectError(error.message, proxyConfig);
14
+ }
15
+ }
16
+ function handleErrors(error, options, proxy) {
17
+ handleProxyErrors(error, proxy?.destination.uri, proxy?.destination.proxySocks);
18
+ if (error instanceof sequelize_1.BaseError) {
19
+ const nameWithoutSequelize = error.name.replace('Sequelize', '');
20
+ const nameWithSpaces = nameWithoutSequelize.replace(/([a-z])([A-Z])/g, (_, m1, m2) => `${m1} ${m2.toLowerCase()}`);
21
+ throw new errors_1.DatabaseConnectError(`${nameWithSpaces}: ${error.message}`, options?.uri);
22
+ }
23
+ throw error;
24
+ }
25
+ exports.default = handleErrors;
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlLWVycm9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25uZWN0aW9uL2hhbmRsZS1lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx5Q0FBc0M7QUFFdEMscUNBQW1FO0FBSW5FLFNBQVMsaUJBQWlCLENBQ3hCLEtBQVksRUFDWixXQUFvQixFQUNwQixXQUFnRDtJQUVoRCxtQ0FBbUM7SUFDbkMseUtBQXlLO0lBQ3pLLElBQUksS0FBSyxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEVBQUU7UUFDeEMsSUFDRSxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUM7WUFDdkMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsa0NBQWtDLENBQUMsRUFDMUQ7WUFDQSxNQUFNLElBQUksNkJBQW9CLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztTQUM1RDtRQUVELE1BQU0sSUFBSSwwQkFBaUIsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0tBQ3pEO0FBQ0gsQ0FBQztBQUVELFNBQXdCLFlBQVksQ0FDbEMsS0FBWSxFQUNaLE9BQThCLEVBQzlCLEtBQW9CO0lBRXBCLGlCQUFpQixDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsV0FBVyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRWhGLElBQUksS0FBSyxZQUFZLHFCQUFTLEVBQUU7UUFDOUIsTUFBTSxvQkFBb0IsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakUsTUFBTSxjQUFjLEdBQUcsb0JBQW9CLENBQUMsT0FBTyxDQUNqRCxpQkFBaUIsRUFDakIsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQzNDLENBQUM7UUFFRixNQUFNLElBQUksNkJBQW9CLENBQUMsR0FBRyxjQUFjLEtBQUssS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztLQUNyRjtJQUVELE1BQU0sS0FBSyxDQUFDO0FBQ2QsQ0FBQztBQWxCRCwrQkFrQkMifQ==
@@ -4,69 +4,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const sequelize_1 = require("sequelize");
7
+ const handle_errors_1 = __importDefault(require("./handle-errors"));
7
8
  const preprocess_1 = __importDefault(require("./preprocess"));
8
9
  const reverse_proxy_1 = __importDefault(require("./reverse-proxy"));
9
10
  const utils_1 = require("./utils");
10
- function getSslConfiguration(dialect, sslMode, servername, logger) {
11
- switch (dialect) {
12
- case 'mariadb':
13
- if (sslMode === 'disabled')
14
- return { ssl: false };
15
- if (sslMode === 'required')
16
- return { ssl: { rejectUnauthorized: false } };
17
- if (sslMode === 'verify')
18
- return { ssl: true };
19
- break;
20
- case 'mssql':
21
- if (sslMode === 'disabled')
22
- return { options: { encrypt: false } };
23
- if (sslMode === 'required')
24
- return { options: { encrypt: true, trustServerCertificate: true } };
25
- if (sslMode === 'verify')
26
- return { options: { encrypt: true, trustServerCertificate: false } };
27
- break;
28
- case 'mysql':
29
- if (sslMode === 'disabled')
30
- return { ssl: false };
31
- if (sslMode === 'required')
32
- return { ssl: { rejectUnauthorized: false } };
33
- if (sslMode === 'verify')
34
- return { ssl: { rejectUnauthorized: true } };
35
- break;
36
- case 'postgres':
37
- if (sslMode === 'disabled')
38
- return { ssl: false };
39
- // Pass servername to the net.tlsSocket constructor.
40
- // This is done so that
41
- // - Certificate verification still work when using a proxy server to reach the db (we are
42
- // forced to use a tcp reverse proxy because some drivers do not support them)
43
- // - Providers which use SNI to route requests to the correct database still work (most
44
- // notably neon.tech).
45
- // Note that we should either do that for the other vendors (if possible), or
46
- // replace the reverse proxy by a forward proxy (when supported).
47
- if (sslMode === 'required')
48
- return { ssl: { require: true, rejectUnauthorized: false, servername } };
49
- if (sslMode === 'verify')
50
- return { ssl: { require: true, rejectUnauthorized: true, servername } };
51
- break;
52
- case 'db2':
53
- case 'oracle':
54
- case 'snowflake':
55
- case 'sqlite':
56
- default:
57
- if (sslMode && sslMode !== 'manual') {
58
- logger?.('Warn', `ignoring sslMode=${sslMode} (not supported for ${dialect})`);
59
- }
60
- return {};
61
- }
62
- }
63
11
  /** Attempt to connect to the database */
64
12
  async function connect(uriOrOptions, logger) {
65
13
  let proxy;
66
14
  let sequelize;
15
+ let options;
16
+ let servername;
67
17
  try {
68
- let options = await (0, preprocess_1.default)(uriOrOptions);
69
- let servername;
18
+ options = await (0, preprocess_1.default)(uriOrOptions);
70
19
  try {
71
20
  servername = options?.host ?? new URL(options.uri).hostname;
72
21
  }
@@ -83,7 +32,7 @@ async function connect(uriOrOptions, logger) {
83
32
  const logging = logger ? (0, utils_1.getLogger)(logger) : false;
84
33
  opts.dialectOptions = {
85
34
  ...(opts.dialectOptions ?? {}),
86
- ...getSslConfiguration(opts.dialect, sslMode, servername, logger),
35
+ ...(0, utils_1.getSslConfiguration)(opts.dialect, sslMode, servername, logger),
87
36
  };
88
37
  sequelize = uri
89
38
  ? new sequelize_1.Sequelize(uri, { ...opts, schema, logging })
@@ -103,8 +52,8 @@ async function connect(uriOrOptions, logger) {
103
52
  catch (e) {
104
53
  await sequelize?.close();
105
54
  // if proxy encountered an error, we want to throw it instead of the sequelize error
106
- (0, utils_1.handleSequelizeError)(proxy?.error || e);
55
+ (0, handle_errors_1.default)(proxy?.error || e, options, proxy);
107
56
  }
108
57
  }
109
58
  exports.default = connect;
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29ubmVjdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUdBLHlDQUErQztBQUUvQyw4REFBNkM7QUFDN0Msb0VBQTJDO0FBQzNDLG1DQUFxRTtBQUVyRSxTQUFTLG1CQUFtQixDQUMxQixPQUFnQixFQUNoQixPQUFnQixFQUNoQixVQUFtQixFQUNuQixNQUFlO0lBRWYsUUFBUSxPQUFPLEVBQUU7UUFDZixLQUFLLFNBQVM7WUFDWixJQUFJLE9BQU8sS0FBSyxVQUFVO2dCQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDbEQsSUFBSSxPQUFPLEtBQUssVUFBVTtnQkFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLEVBQUUsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUMxRSxJQUFJLE9BQU8sS0FBSyxRQUFRO2dCQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDL0MsTUFBTTtRQUVSLEtBQUssT0FBTztZQUNWLElBQUksT0FBTyxLQUFLLFVBQVU7Z0JBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ25FLElBQUksT0FBTyxLQUFLLFVBQVU7Z0JBQ3hCLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLHNCQUFzQixFQUFFLElBQUksRUFBRSxFQUFFLENBQUM7WUFDdEUsSUFBSSxPQUFPLEtBQUssUUFBUTtnQkFDdEIsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsc0JBQXNCLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUN2RSxNQUFNO1FBRVIsS0FBSyxPQUFPO1lBQ1YsSUFBSSxPQUFPLEtBQUssVUFBVTtnQkFBRSxPQUFPLEVBQUUsR0FBRyxFQUFF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
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29ubmVjdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUdBLHlDQUFzQztBQUV0QyxvRUFBMkM7QUFDM0MsOERBQTZDO0FBQzdDLG9FQUEyQztBQUMzQyxtQ0FBb0U7QUFFcEUseUNBQXlDO0FBQzFCLEtBQUssVUFBVSxPQUFPLENBQ25DLFlBQStCLEVBQy9CLE1BQWU7SUFFZixJQUFJLEtBQW1CLENBQUM7SUFDeEIsSUFBSSxTQUFvQixDQUFDO0lBQ3pCLElBQUksT0FBNkIsQ0FBQztJQUNsQyxJQUFJLFVBQWtCLENBQUM7SUFFdkIsSUFBSTtRQUNGLE9BQU8sR0FBRyxNQUFNLElBQUEsb0JBQWlCLEVBQUMsWUFBWSxDQUFDLENBQUM7UUFFaEQsSUFBSTtZQUNGLFVBQVUsR0FBRyxPQUFPLEVBQUUsSUFBSSxJQUFJLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUM7U0FDN0Q7UUFBQyxNQUFNO1lBQ04sbURBQW1EO1NBQ3BEO1FBRUQsSUFBSSxPQUFPLENBQUMsVUFBVSxFQUFFO1lBQ3RCLEtBQUssR0FBRyxJQUFJLHVCQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDbEMsTUFBTSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDcEIsT0FBTyxHQUFHLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQztTQUNuQztRQUVELE1BQU0sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDO1FBQzFDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksSUFBQSxpQkFBUyxFQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdDLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBQSxpQkFBUyxFQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFFbkQsSUFBSSxDQUFDLGNBQWMsR0FBRztZQUNwQixHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUM7WUFDOUIsR0FBRyxJQUFBLDJCQUFtQixFQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUM7U0FDbEUsQ0FBQztRQUVGLFNBQVMsR0FBRyxHQUFHO1lBQ2IsQ0FBQyxDQUFDLElBQUkscUJBQVMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFHLElBQUksRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUM7WUFDbEQsQ0FBQyxDQUFDLElBQUkscUJBQVMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBRWhELG9FQUFvRTtRQUNwRSxTQUFTLENBQUMsS0FBSyxHQUFHLEtBQUssVUFBVSxLQUFLO1lBQ3BDLElBQUk7Z0JBQ0YsTUFBTSxxQkFBUyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQzVDO29CQUFTO2dCQUNSLE1BQU0sS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDO2FBQ3JCO1FBQ0gsQ0FBQyxDQUFDO1FBRUYsTUFBTSxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxrQkFBa0I7UUFFbEQsT0FBTyxTQUFTLENBQUM7S0FDbEI7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLE1BQU0sU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ3pCLG9GQUFvRjtRQUNwRixJQUFBLHVCQUFZLEVBQUMsS0FBSyxFQUFFLEtBQUssSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0tBQ2pEO0FBQ0gsQ0FBQztBQXRERCwwQkFzREMifQ==
@@ -2,8 +2,8 @@ import { ConnectionOptionsObj } from '../types';
2
2
  export default class ReverseProxy {
3
3
  private readonly errors;
4
4
  private readonly server;
5
- private readonly destination;
6
5
  private readonly connectedClients;
6
+ readonly destination: ConnectionOptionsObj;
7
7
  constructor(destination: ConnectionOptionsObj);
8
8
  start(): Promise<void>;
9
9
  stop(): Promise<void>;
@@ -106,4 +106,4 @@ class ReverseProxy {
106
106
  }
107
107
  }
108
108
  exports.default = ReverseProxy;
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV2ZXJzZS1wcm94eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25uZWN0aW9uL3JldmVyc2UtcHJveHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw4Q0FBc0I7QUFDdEIsaUNBQW9DO0FBS3BDLE1BQXFCLFlBQVk7SUFNL0IsWUFBWSxXQUFpQztRQUw1QixXQUFNLEdBQVksRUFBRSxDQUFDO1FBR3JCLHFCQUFnQixHQUFvQixJQUFJLEdBQUcsRUFBRSxDQUFDO1FBRzdELElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQy9CLElBQUksQ0FBQyxNQUFNLEdBQUcsYUFBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRTdELElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUMvRCxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWU7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELEtBQUs7UUFDSCxPQUFPLElBQUksT0FBTyxDQUFPLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQzNDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNoQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzlDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUk7UUFDRixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNwQixJ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
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV2ZXJzZS1wcm94eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25uZWN0aW9uL3JldmVyc2UtcHJveHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw4Q0FBc0I7QUFDdEIsaUNBQW9DO0FBS3BDLE1BQXFCLFlBQVk7SUFNL0IsWUFBWSxXQUFpQztRQUw1QixXQUFNLEdBQVksRUFBRSxDQUFDO1FBRXJCLHFCQUFnQixHQUFvQixJQUFJLEdBQUcsRUFBRSxDQUFDO1FBSTdELElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQy9CLElBQUksQ0FBQyxNQUFNLEdBQUcsYUFBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRTdELElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUMvRCxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWU7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELEtBQUs7UUFDSCxPQUFPLElBQUksT0FBTyxDQUFPLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQzNDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNoQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzlDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUk7UUFDRixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNwQixJ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
@@ -1,9 +1,10 @@
1
1
  import type { ConnectionOptions } from '../types';
2
2
  import type { Logger } from '@forestadmin/datasource-toolkit';
3
3
  import { Dialect } from 'sequelize';
4
+ import { SslMode } from '../types';
4
5
  export declare function getUri(uriOrOptions: ConnectionOptions, dialect: Dialect): string | null;
5
6
  export declare function getDialect(uriOrOptions: ConnectionOptions): Dialect;
6
7
  export declare function getSchema(uri: string): string;
7
8
  export declare function getLogger(logger: Logger): (sql: string) => void;
8
- export declare function handleSequelizeError(error: Error): void;
9
+ export declare function getSslConfiguration(dialect: Dialect, sslMode: SslMode, servername?: string, logger?: Logger): Record<string, unknown>;
9
10
  //# sourceMappingURL=utils.d.ts.map
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.handleSequelizeError = exports.getLogger = exports.getSchema = exports.getDialect = exports.getUri = void 0;
4
- const sequelize_1 = require("sequelize");
3
+ exports.getSslConfiguration = exports.getLogger = exports.getSchema = exports.getDialect = exports.getUri = void 0;
4
+ const errors_1 = require("./errors");
5
5
  function checkUri(uri) {
6
6
  if (!/.*:\/\//g.test(uri) && uri !== 'sqlite::memory:') {
7
- throw new Error(`Connection Uri "${uri}" provided to SQL data source is not valid.` +
7
+ throw new errors_1.DatabaseConnectError(`Connection Uri "${uri}" provided to SQL data source is not valid.` +
8
8
  ' Should be <dialect>://<connection>.');
9
9
  }
10
10
  }
@@ -30,7 +30,7 @@ function getDialect(uriOrOptions) {
30
30
  dialect = new URL(uri).protocol.slice(0, -1);
31
31
  }
32
32
  else {
33
- throw new Error('Expected dialect to be provided in options or uri.');
33
+ throw new errors_1.DatabaseConnectError('Expected dialect to be provided in options or uri.');
34
34
  }
35
35
  if (dialect === 'mysql2')
36
36
  return 'mysql';
@@ -49,15 +49,58 @@ function getLogger(logger) {
49
49
  return (sql) => logger?.('Debug', sql.substring(sql.indexOf(':') + 2));
50
50
  }
51
51
  exports.getLogger = getLogger;
52
- function handleSequelizeError(error) {
53
- if (error instanceof sequelize_1.BaseError) {
54
- const nameWithoutSequelize = error.name.replace('Sequelize', '');
55
- const nameWithSpaces = nameWithoutSequelize.replace(/([a-z])([A-Z])/g, (_, m1, m2) => `${m1} ${m2.toLowerCase()}`);
56
- const newError = new Error(`${nameWithSpaces}: ${error.message}`);
57
- newError.name = nameWithoutSequelize;
58
- throw newError;
52
+ function getSslConfiguration(dialect, sslMode, servername, logger) {
53
+ switch (dialect) {
54
+ case 'mariadb':
55
+ if (sslMode === 'disabled')
56
+ return { ssl: false };
57
+ if (sslMode === 'required')
58
+ return { ssl: { rejectUnauthorized: false } };
59
+ if (sslMode === 'verify')
60
+ return { ssl: true };
61
+ break;
62
+ case 'mssql':
63
+ if (sslMode === 'disabled')
64
+ return { options: { encrypt: false } };
65
+ if (sslMode === 'required')
66
+ return { options: { encrypt: true, trustServerCertificate: true } };
67
+ if (sslMode === 'verify')
68
+ return { options: { encrypt: true, trustServerCertificate: false } };
69
+ break;
70
+ case 'mysql':
71
+ if (sslMode === 'disabled')
72
+ return { ssl: false };
73
+ if (sslMode === 'required')
74
+ return { ssl: { rejectUnauthorized: false } };
75
+ if (sslMode === 'verify')
76
+ return { ssl: { rejectUnauthorized: true } };
77
+ break;
78
+ case 'postgres':
79
+ if (sslMode === 'disabled')
80
+ return { ssl: false };
81
+ // Pass servername to the net.tlsSocket constructor.
82
+ // This is done so that
83
+ // - Certificate verification still work when using a proxy server to reach the db (we are
84
+ // forced to use a tcp reverse proxy because some drivers do not support them)
85
+ // - Providers which use SNI to route requests to the correct database still work (most
86
+ // notably neon.tech).
87
+ // Note that we should either do that for the other vendors (if possible), or
88
+ // replace the reverse proxy by a forward proxy (when supported).
89
+ if (sslMode === 'required')
90
+ return { ssl: { require: true, rejectUnauthorized: false, servername } };
91
+ if (sslMode === 'verify')
92
+ return { ssl: { require: true, rejectUnauthorized: true, servername } };
93
+ break;
94
+ case 'db2':
95
+ case 'oracle':
96
+ case 'snowflake':
97
+ case 'sqlite':
98
+ default:
99
+ if (sslMode && sslMode !== 'manual') {
100
+ logger?.('Warn', `ignoring sslMode=${sslMode} (not supported for ${dialect})`);
101
+ }
102
+ return {};
59
103
  }
60
- throw error;
61
104
  }
62
- exports.handleSequelizeError = handleSequelizeError;
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29ubmVjdGlvbi91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQSx5Q0FBK0M7QUFFL0MsU0FBUyxRQUFRLENBQUMsR0FBVztJQUMzQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLEtBQUssaUJBQWlCLEVBQUU7UUFDdEQsTUFBTSxJQUFJLEtBQUssQ0FDYixtQkFBbUIsR0FBRyw2Q0FBNkM7WUFDakUsc0NBQXNDLENBQ3pDLENBQUM7S0FDSDtBQUNILENBQUM7QUFFRCxTQUFnQixNQUFNLENBQUMsWUFBK0IsRUFBRSxPQUFnQjtJQUN0RSxNQUFNLEdBQUcsR0FBRyxPQUFPLFlBQVksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQztJQUUvRSxJQUFJLEdBQUcsRUFBRTtRQUNQLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVkLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLEdBQUcsQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBRXZCLE9BQU8sR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO0tBQ3ZCO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBYkQsd0JBYUM7QUFFRCxTQUFnQixVQUFVLENBQUMsWUFBK0I7SUFDeEQsSUFBSSxPQUFlLENBQUM7SUFFcEIsSUFBSSxPQUFPLFlBQVksS0FBSyxRQUFRLElBQUksWUFBWSxDQUFDLE9BQU8sRUFBRTtRQUM1RCxPQUFPLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQztLQUNoQztTQUFNLElBQUksT0FBTyxZQUFZLEtBQUssUUFBUSxJQUFJLFlBQVksQ0FBQyxHQUFHLEVBQUU7UUFDL0QsTUFBTSxHQUFHLEdBQUcsT0FBTyxZQUFZLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUM7UUFDL0UsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRWQsT0FBTyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDOUM7U0FBTTtRQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMsb0RBQW9ELENBQUMsQ0FBQztLQUN2RTtJQUVELElBQUksT0FBTyxLQUFLLFFBQVE7UUFBRSxPQUFPLE9BQU8sQ0FBQztJQUN6QyxJQUFJLE9BQU8sS0FBSyxTQUFTO1FBQUUsT0FBTyxPQUFPLENBQUM7SUFDMUMsSUFBSSxPQUFPLEtBQUssSUFBSSxJQUFJLE9BQU8sS0FBSyxZQUFZO1FBQUUsT0FBTyxVQUFVLENBQUM7SUFFcEUsT0FBTyxPQUFrQixDQUFDO0FBQzVCLENBQUM7QUFuQkQsZ0NBbUJDO0FBRUQsU0FBZ0IsU0FBUyxDQUFDLEdBQVc7SUFDbkMsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUM5RCxDQUFDO0FBRkQsOEJBRUM7QUFFRCxTQUFnQixTQUFTLENBQUMsTUFBYztJQUN0QyxPQUFPLENBQUMsR0FBVyxFQUFFLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDakYsQ0FBQztBQUZELDhCQUVDO0FBRUQsU0FBZ0Isb0JBQW9CLENBQUMsS0FBWTtJQUMvQyxJQUFJLEtBQUssWUFBWSxxQkFBUyxFQUFFO1FBQzlCLE1BQU0sb0JBQW9CLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sY0FBYyxHQUFHLG9CQUFvQixDQUFDLE9BQU8sQ0FDakQsaUJBQWlCLEVBQ2pCLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUMzQyxDQUFDO1FBRUYsTUFBTSxRQUFRLEdBQUcsSUFBSSxLQUFLLENBQUMsR0FBRyxjQUFjLEtBQUssS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDbEUsUUFBUSxDQUFDLElBQUksR0FBRyxvQkFBb0IsQ0FBQztRQUVyQyxNQUFNLFFBQVEsQ0FBQztLQUNoQjtJQUVELE1BQU0sS0FBSyxDQUFDO0FBQ2QsQ0FBQztBQWZELG9EQWVDIn0=
105
+ exports.getSslConfiguration = getSslConfiguration;
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29ubmVjdGlvbi91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFLQSxxQ0FBZ0Q7QUFHaEQsU0FBUyxRQUFRLENBQUMsR0FBVztJQUMzQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLEtBQUssaUJBQWlCLEVBQUU7UUFDdEQsTUFBTSxJQUFJLDZCQUFvQixDQUM1QixtQkFBbUIsR0FBRyw2Q0FBNkM7WUFDakUsc0NBQXNDLENBQ3pDLENBQUM7S0FDSDtBQUNILENBQUM7QUFFRCxTQUFnQixNQUFNLENBQUMsWUFBK0IsRUFBRSxPQUFnQjtJQUN0RSxNQUFNLEdBQUcsR0FBRyxPQUFPLFlBQVksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQztJQUUvRSxJQUFJLEdBQUcsRUFBRTtRQUNQLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVkLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLEdBQUcsQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBRXZCLE9BQU8sR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO0tBQ3ZCO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBYkQsd0JBYUM7QUFFRCxTQUFnQixVQUFVLENBQUMsWUFBK0I7SUFDeEQsSUFBSSxPQUFlLENBQUM7SUFFcEIsSUFBSSxPQUFPLFlBQVksS0FBSyxRQUFRLElBQUksWUFBWSxDQUFDLE9BQU8sRUFBRTtRQUM1RCxPQUFPLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQztLQUNoQztTQUFNLElBQUksT0FBTyxZQUFZLEtBQUssUUFBUSxJQUFJLFlBQVksQ0FBQyxHQUFHLEVBQUU7UUFDL0QsTUFBTSxHQUFHLEdBQUcsT0FBTyxZQUFZ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
package/dist/index.d.ts CHANGED
@@ -9,4 +9,5 @@ export declare function createSqlDataSource(uriOrOptions: ConnectionOptions, opt
9
9
  }): DataSourceFactory;
10
10
  export type { ConnectionOptions, Table, SslMode };
11
11
  export { default as preprocessOptions } from './connection/preprocess';
12
+ export * from './connection/errors';
12
13
  //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -1,4 +1,18 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
2
16
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
17
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
18
  };
@@ -44,4 +58,5 @@ function createSqlDataSource(uriOrOptions, options) {
44
58
  exports.createSqlDataSource = createSqlDataSource;
45
59
  var preprocess_1 = require("./connection/preprocess");
46
60
  Object.defineProperty(exports, "preprocessOptions", { enumerable: true, get: function () { return __importDefault(preprocess_1).default; } });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBSUEsNEVBQXdFO0FBR3hFLDhEQUFtQztBQUNuQyxnRkFBd0Q7QUFDeEQsZ0VBQStDO0FBQy9DLHdFQUFzRDtBQUUvQyxLQUFLLFVBQVUsVUFBVSxDQUM5QixZQUErQixFQUMvQixNQUFlO0lBRWYsSUFBSSxTQUFvQixDQUFDO0lBRXpCLElBQUk7UUFDRixTQUFTLEdBQUcsTUFBTSxJQUFBLG9CQUFPLEVBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRWhELE9BQU8sTUFBTSxzQkFBWSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7S0FDekQ7WUFBUztRQUNSLE1BQU0sU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDO0tBQzFCO0FBQ0gsQ0FBQztBQWJELGdDQWFDO0FBRU0sS0FBSyxVQUFVLHNCQUFzQixDQUMxQyxZQUErQixFQUMvQixNQUFjLEVBQ2QsYUFBdUI7SUFFdkIsSUFBSSxTQUFvQixDQUFDO0lBRXpCLElBQUk7UUFDRixTQUFTLEdBQUcsTUFBTSxJQUFBLG9CQUFPLEVBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2hELE1BQU0sTUFBTSxHQUFHLGFBQWEsSUFBSSxDQUFDLE1BQU0sc0JBQVksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDbkYsZUFBWSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3JELG1CQUFlLENBQUMsZUFBZSxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7S0FDNUQ7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNkLE1BQU0sU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ3pCLE1BQU0sS0FBSyxDQUFDO0tBQ2I7SUFFRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDO0FBbEJELHdEQWtCQztBQUVELFNBQWdCLG1CQUFtQixDQUNqQyxZQUErQixFQUMvQixPQUFvQztJQUVwQyxPQUFPLEtBQUssRUFBRSxNQUFjLEVBQUUsRUFBRTtRQUM5QixNQUFNLFNBQVMsR0FBRyxNQUFNLHNCQUFzQixDQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBRTdGLE9BQU8sSUFBSSwwQ0FBbUIsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDcEQsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQVRELGtEQVNDO0FBR0Qsc0RBQXVFO0FBQTlELGdJQUFBLE9BQU8sT0FBcUIifQ==
61
+ __exportStar(require("./connection/errors"), exports);
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJQSw0RUFBd0U7QUFHeEUsOERBQW1DO0FBQ25DLGdGQUF3RDtBQUN4RCxnRUFBK0M7QUFDL0Msd0VBQXNEO0FBRS9DLEtBQUssVUFBVSxVQUFVLENBQzlCLFlBQStCLEVBQy9CLE1BQWU7SUFFZixJQUFJLFNBQW9CLENBQUM7SUFFekIsSUFBSTtRQUNGLFNBQVMsR0FBRyxNQUFNLElBQUEsb0JBQU8sRUFBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFaEQsT0FBTyxNQUFNLHNCQUFZLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztLQUN6RDtZQUFTO1FBQ1IsTUFBTSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUM7S0FDMUI7QUFDSCxDQUFDO0FBYkQsZ0NBYUM7QUFFTSxLQUFLLFVBQVUsc0JBQXNCLENBQzFDLFlBQStCLEVBQy9CLE1BQWMsRUFDZCxhQUF1QjtJQUV2QixJQUFJLFNBQW9CLENBQUM7SUFFekIsSUFBSTtRQUNGLFNBQVMsR0FBRyxNQUFNLElBQUEsb0JBQU8sRUFBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDaEQsTUFBTSxNQUFNLEdBQUcsYUFBYSxJQUFJLENBQUMsTUFBTSxzQkFBWSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNuRixlQUFZLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDckQsbUJBQWUsQ0FBQyxlQUFlLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztLQUM1RDtJQUFDLE9BQU8sS0FBSyxFQUFFO1FBQ2QsTUFBTSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDekIsTUFBTSxLQUFLLENBQUM7S0FDYjtJQUVELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFsQkQsd0RBa0JDO0FBRUQsU0FBZ0IsbUJBQW1CLENBQ2pDLFlBQStCLEVBQy9CLE9BQW9DO0lBRXBDLE9BQU8sS0FBSyxFQUFFLE1BQWMsRUFBRSxFQUFFO1FBQzlCLE1BQU0sU0FBUyxHQUFHLE1BQU0sc0JBQXNCLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFFN0YsT0FBTyxJQUFJLDBDQUFtQixDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNwRCxDQUFDLENBQUM7QUFDSixDQUFDO0FBVEQsa0RBU0M7QUFHRCxzREFBdUU7QUFBOUQsZ0lBQUEsT0FBTyxPQUFxQjtBQUNyQyxzREFBb0MifQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forestadmin/datasource-sql",
3
- "version": "1.6.3",
3
+ "version": "1.6.4",
4
4
  "main": "dist/index.js",
5
5
  "license": "GPL-3.0",
6
6
  "publishConfig": {