adminforth 1.3.54-next.21 → 1.3.54-next.23
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/dataConnectors/baseConnector.ts +0 -1
- package/dist/auth.js +42 -57
- package/dist/auth.js.map +1 -0
- package/dist/basePlugin.js +1 -1
- package/dist/basePlugin.js.map +1 -0
- package/dist/dataConnectors/baseConnector.js +108 -129
- package/dist/dataConnectors/baseConnector.js.map +1 -0
- package/dist/dataConnectors/clickhouse.js +126 -149
- package/dist/dataConnectors/clickhouse.js.map +1 -0
- package/dist/dataConnectors/mongo.js +75 -102
- package/dist/dataConnectors/mongo.js.map +1 -0
- package/dist/dataConnectors/postgres.js +118 -143
- package/dist/dataConnectors/postgres.js.map +1 -0
- package/dist/dataConnectors/sqlite.js +107 -130
- package/dist/dataConnectors/sqlite.js.map +1 -0
- package/dist/index.js +197 -218
- package/dist/index.js.map +1 -0
- package/dist/modules/codeInjector.js +471 -496
- package/dist/modules/codeInjector.js.map +1 -0
- package/dist/modules/configValidator.js +14 -23
- package/dist/modules/configValidator.js.map +1 -0
- package/dist/modules/operationalResource.js +50 -71
- package/dist/modules/operationalResource.js.map +1 -0
- package/dist/modules/restApi.js +104 -117
- package/dist/modules/restApi.js.map +1 -0
- package/dist/modules/styleGenerator.js +1 -1
- package/dist/modules/styleGenerator.js.map +1 -0
- package/dist/modules/styles.js +1 -1
- package/dist/modules/styles.js.map +1 -0
- package/dist/modules/utils.js +1 -1
- package/dist/modules/utils.js.map +1 -0
- package/dist/servers/express.js +30 -43
- package/dist/servers/express.js.map +1 -0
- package/dist/types/AdminForthConfig.js +1 -1
- package/dist/types/AdminForthConfig.js.map +1 -0
- package/dist/types/FrontendAPI.js +1 -1
- package/dist/types/FrontendAPI.js.map +1 -0
- package/package.json +1 -1
- package/tsconfig.json +4 -4
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { get } from "http";
|
|
2
1
|
import { AdminForthResource, IAdminForthDataSourceConnectorBase, AdminForthSortDirections, AdminForthFilterOperators, AdminForthResourceColumn, IAdminForthSort, IAdminForthFilter } from "../types/AdminForthConfig.js";
|
|
3
2
|
import { suggestIfTypo } from "../modules/utils.js";
|
|
4
3
|
|
package/dist/auth.js
CHANGED
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import jwt from 'jsonwebtoken';
|
|
11
2
|
import crypto from 'crypto';
|
|
12
3
|
// Function to generate a password hash using PBKDF2
|
|
@@ -70,61 +61,55 @@ class AdminForthAuth {
|
|
|
70
61
|
// issue JWT token
|
|
71
62
|
return jwt.sign(Object.assign(Object.assign({}, payload), { t: type }), secret, { expiresIn });
|
|
72
63
|
}
|
|
73
|
-
verify(
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
64
|
+
async verify(jwtToken, mustHaveType, decodeUser = true) {
|
|
65
|
+
// read ADMINFORH_SECRET from environment if not drop error
|
|
66
|
+
const secret = process.env.ADMINFORTH_SECRET;
|
|
67
|
+
if (!secret) {
|
|
68
|
+
throw new Error('ADMINFORTH_SECRET environment not set');
|
|
69
|
+
}
|
|
70
|
+
let decoded;
|
|
71
|
+
try {
|
|
72
|
+
// verify JWT token
|
|
73
|
+
decoded = jwt.verify(jwtToken, secret);
|
|
74
|
+
}
|
|
75
|
+
catch (err) {
|
|
76
|
+
if (err.name === 'TokenExpiredError') {
|
|
77
|
+
console.error('Token expired:', err.message);
|
|
79
78
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
// verify JWT token
|
|
83
|
-
decoded = jwt.verify(jwtToken, secret);
|
|
79
|
+
else if (err.name === 'JsonWebTokenError') {
|
|
80
|
+
console.error('Token error:', err.message);
|
|
84
81
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
console.error('Token expired:', err.message);
|
|
88
|
-
}
|
|
89
|
-
else if (err.name === 'JsonWebTokenError') {
|
|
90
|
-
console.error('Token error:', err.message);
|
|
91
|
-
}
|
|
92
|
-
else {
|
|
93
|
-
console.error('Failed to verify JWT token', err);
|
|
94
|
-
}
|
|
95
|
-
return null;
|
|
82
|
+
else {
|
|
83
|
+
console.error('Failed to verify JWT token', err);
|
|
96
84
|
}
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
const { pk, t } = decoded;
|
|
88
|
+
if (t !== mustHaveType) {
|
|
89
|
+
console.error(`Invalid token type during verification: ${t}, must be ${mustHaveType}`);
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
if (decodeUser !== false) {
|
|
93
|
+
const dbUser = await this.adminforth.getUserByPk(pk);
|
|
94
|
+
if (!dbUser) {
|
|
95
|
+
console.error(`User with pk ${pk} not found in database`);
|
|
96
|
+
// will logout user which was deleted
|
|
100
97
|
return null;
|
|
101
98
|
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
console.error(`User with pk ${pk} not found in database`);
|
|
106
|
-
// will logout user which was deleted
|
|
107
|
-
return null;
|
|
108
|
-
}
|
|
109
|
-
decoded.dbUser = dbUser;
|
|
110
|
-
}
|
|
111
|
-
return decoded;
|
|
112
|
-
});
|
|
99
|
+
decoded.dbUser = dbUser;
|
|
100
|
+
}
|
|
101
|
+
return decoded;
|
|
113
102
|
}
|
|
114
|
-
static generatePasswordHash(password) {
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
return `${salt}:${hashedPassword}`;
|
|
119
|
-
});
|
|
103
|
+
static async generatePasswordHash(password) {
|
|
104
|
+
const salt = generateSalt();
|
|
105
|
+
const hashedPassword = await calcPasswordHash(password, salt);
|
|
106
|
+
return `${salt}:${hashedPassword}`;
|
|
120
107
|
}
|
|
121
|
-
static verifyPassword(password, hashedPassword) {
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
return newHash === hash;
|
|
126
|
-
});
|
|
108
|
+
static async verifyPassword(password, hashedPassword) {
|
|
109
|
+
const [salt, hash] = hashedPassword.split(':');
|
|
110
|
+
const newHash = await calcPasswordHash(password, salt);
|
|
111
|
+
return newHash === hash;
|
|
127
112
|
}
|
|
128
113
|
}
|
|
129
114
|
export default AdminForthAuth;
|
|
130
|
-
//# sourceMappingURL=
|
|
115
|
+
//# sourceMappingURL=auth.js.map
|
package/dist/auth.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../auth.ts"],"names":[],"mappings":"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"}
|
package/dist/basePlugin.js
CHANGED
|
@@ -43,4 +43,4 @@ export default class AdminForthPlugin {
|
|
|
43
43
|
return key;
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
|
-
//# sourceMappingURL=
|
|
46
|
+
//# sourceMappingURL=basePlugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"basePlugin.js","sourceRoot":"","sources":["../basePlugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import { AdminForthFilterOperators } from "../types/AdminForthConfig.js";
|
|
11
2
|
import { suggestIfTypo } from "../modules/utils.js";
|
|
12
3
|
export default class AdminForthBaseConnector {
|
|
@@ -17,17 +8,15 @@ export default class AdminForthBaseConnector {
|
|
|
17
8
|
}
|
|
18
9
|
}
|
|
19
10
|
}
|
|
20
|
-
getRecordByPrimaryKeyWithOriginalTypes(resource, id) {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
filters: [{ field: this.getPrimaryKey(resource), operator: AdminForthFilterOperators.EQ, value: id }],
|
|
28
|
-
});
|
|
29
|
-
return data.length > 0 ? data[0] : null;
|
|
11
|
+
async getRecordByPrimaryKeyWithOriginalTypes(resource, id) {
|
|
12
|
+
const data = await this.getDataWithOriginalTypes({
|
|
13
|
+
resource,
|
|
14
|
+
limit: 1,
|
|
15
|
+
offset: 0,
|
|
16
|
+
sort: [],
|
|
17
|
+
filters: [{ field: this.getPrimaryKey(resource), operator: AdminForthFilterOperators.EQ, value: id }],
|
|
30
18
|
});
|
|
19
|
+
return data.length > 0 ? data[0] : null;
|
|
31
20
|
}
|
|
32
21
|
getDataWithOriginalTypes({ resource, limit, offset, sort, filters }) {
|
|
33
22
|
throw new Error('Method not implemented.');
|
|
@@ -50,136 +39,126 @@ export default class AdminForthBaseConnector {
|
|
|
50
39
|
createRecordOriginalValues({ resource, record }) {
|
|
51
40
|
throw new Error('Method not implemented.');
|
|
52
41
|
}
|
|
53
|
-
checkUnique(resource, column, value) {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
getTotals: false
|
|
63
|
-
});
|
|
64
|
-
return existingRecord.data.length > 0;
|
|
42
|
+
async checkUnique(resource, column, value) {
|
|
43
|
+
process.env.HEAVY_DEBUG && console.log('☝️🪲🪲🪲🪲 checkUnique|||', column, value);
|
|
44
|
+
const existingRecord = await this.getData({
|
|
45
|
+
resource,
|
|
46
|
+
filters: [{ field: column.name, operator: AdminForthFilterOperators.EQ, value }],
|
|
47
|
+
limit: 1,
|
|
48
|
+
sort: [],
|
|
49
|
+
offset: 0,
|
|
50
|
+
getTotals: false
|
|
65
51
|
});
|
|
52
|
+
return existingRecord.data.length > 0;
|
|
66
53
|
}
|
|
67
|
-
createRecord(
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
if (col.
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
});
|
|
79
|
-
}
|
|
54
|
+
async createRecord({ resource, record, adminUser }) {
|
|
55
|
+
// transform value using setFieldValue and call createRecordOriginalValues
|
|
56
|
+
const filledRecord = Object.assign({}, record);
|
|
57
|
+
const recordWithOriginalValues = Object.assign({}, record);
|
|
58
|
+
for (const col of resource.dataSourceColumns) {
|
|
59
|
+
if (col.fillOnCreate) {
|
|
60
|
+
if (filledRecord[col.name] === undefined) {
|
|
61
|
+
filledRecord[col.name] = col.fillOnCreate({
|
|
62
|
+
initialRecord: record,
|
|
63
|
+
adminUser
|
|
64
|
+
});
|
|
80
65
|
}
|
|
81
|
-
recordWithOriginalValues[col.name] = this.setFieldValue(col, filledRecord[col.name]);
|
|
82
66
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
67
|
+
recordWithOriginalValues[col.name] = this.setFieldValue(col, filledRecord[col.name]);
|
|
68
|
+
}
|
|
69
|
+
let error = null;
|
|
70
|
+
await Promise.all(resource.dataSourceColumns.map(async (col) => {
|
|
71
|
+
if (col.isUnique && !col.virtual && !error) {
|
|
72
|
+
const exists = await this.checkUnique(resource, col, recordWithOriginalValues[col.name]);
|
|
73
|
+
if (exists) {
|
|
74
|
+
error = `Record with ${col.name} ${recordWithOriginalValues[col.name]} already exists`;
|
|
90
75
|
}
|
|
91
|
-
})));
|
|
92
|
-
if (error) {
|
|
93
|
-
process.env.HEAVY_DEBUG && console.log('🪲🆕 check unique error', error);
|
|
94
|
-
return { error, ok: false };
|
|
95
76
|
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
});
|
|
77
|
+
}));
|
|
78
|
+
if (error) {
|
|
79
|
+
process.env.HEAVY_DEBUG && console.log('🪲🆕 check unique error', error);
|
|
80
|
+
return { error, ok: false };
|
|
81
|
+
}
|
|
82
|
+
process.env.HEAVY_DEBUG && console.log('🪲🆕 creating record', recordWithOriginalValues);
|
|
83
|
+
await this.createRecordOriginalValues({ resource, record: recordWithOriginalValues });
|
|
84
|
+
return {
|
|
85
|
+
ok: true,
|
|
86
|
+
createdRecord: recordWithOriginalValues,
|
|
87
|
+
};
|
|
103
88
|
}
|
|
104
89
|
updateRecordOriginalValues({ resource, recordId, newValues }) {
|
|
105
90
|
throw new Error('Method not implemented.');
|
|
106
91
|
}
|
|
107
|
-
updateRecord(
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
throw new Error(`
|
|
92
|
+
async updateRecord({ resource, recordId, newValues }) {
|
|
93
|
+
// transform value using setFieldValue and call updateRecordOriginalValues
|
|
94
|
+
const recordWithOriginalValues = Object.assign({}, newValues);
|
|
95
|
+
for (const field of Object.keys(newValues)) {
|
|
96
|
+
const col = resource.dataSourceColumns.find((col) => col.name == field);
|
|
97
|
+
// todo instead of throwing error, we can just not use setFieldValue here, and pass original value to updateRecordOriginalValues
|
|
98
|
+
// we might consider this because some users might not want to define all columns in resource with showIn:[], but still want to use them in hooks
|
|
99
|
+
if (!col) {
|
|
100
|
+
const similar = suggestIfTypo(resource.dataSourceColumns.map((col) => col.name), field);
|
|
101
|
+
throw new Error(`
|
|
118
102
|
Update record received field '${field}' (with value ${newValues[field]}), but such column not found in resource '${resource.resourceId}'. ${similar ? `Did you mean '${similar}'?` : ''}
|
|
119
103
|
`);
|
|
120
|
-
}
|
|
121
|
-
recordWithOriginalValues[col.name] = this.setFieldValue(col, newValues[col.name]);
|
|
122
104
|
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
});
|
|
105
|
+
recordWithOriginalValues[col.name] = this.setFieldValue(col, newValues[col.name]);
|
|
106
|
+
}
|
|
107
|
+
process.env.HEAVY_DEBUG && console.log(`🪲✏️ updating record id:${recordId}, values: ${JSON.stringify(recordWithOriginalValues)}`);
|
|
108
|
+
await this.updateRecordOriginalValues({ resource, recordId, newValues: recordWithOriginalValues });
|
|
109
|
+
return { ok: true };
|
|
127
110
|
}
|
|
128
111
|
deleteRecord({ resource, recordId }) {
|
|
129
112
|
throw new Error('Method not implemented.');
|
|
130
113
|
}
|
|
131
|
-
getData(
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
f.value = this.setFieldValue(fieldObj, f.value);
|
|
151
|
-
}
|
|
152
|
-
});
|
|
153
|
-
}
|
|
154
|
-
const promises = [this.getDataWithOriginalTypes({ resource, limit, offset, sort, filters })];
|
|
155
|
-
if (getTotals) {
|
|
156
|
-
promises.push(this.getCount({ resource, filters }));
|
|
157
|
-
}
|
|
158
|
-
else {
|
|
159
|
-
promises.push(Promise.resolve(undefined));
|
|
160
|
-
}
|
|
161
|
-
const [data, total] = yield Promise.all(promises);
|
|
162
|
-
// call getFieldValue for each field
|
|
163
|
-
data.map((record) => {
|
|
164
|
-
for (const col of resource.dataSourceColumns) {
|
|
165
|
-
record[col.name] = this.getFieldValue(col, record[col.name]);
|
|
114
|
+
async getData({ resource, limit, offset, sort, filters, getTotals }) {
|
|
115
|
+
if (filters) {
|
|
116
|
+
filters.map((f) => {
|
|
117
|
+
if (!f.field) {
|
|
118
|
+
throw new Error(`Field "field" not specified in filter object: ${JSON.stringify(f)}`);
|
|
119
|
+
}
|
|
120
|
+
if (!f.operator) {
|
|
121
|
+
throw new Error(`Field "operator" not specified in filter object: ${JSON.stringify(f)}`);
|
|
122
|
+
}
|
|
123
|
+
const fieldObj = resource.dataSourceColumns.find((col) => col.name == f.field);
|
|
124
|
+
if (!fieldObj) {
|
|
125
|
+
const similar = suggestIfTypo(resource.dataSourceColumns.map((col) => col.name), f.field);
|
|
126
|
+
throw new Error(`Field '${f.field}' not found in resource '${resource.resourceId}'. ${similar ? `Did you mean '${similar}'?` : ''}`);
|
|
127
|
+
}
|
|
128
|
+
if (f.operator == AdminForthFilterOperators.IN || f.operator == AdminForthFilterOperators.NIN) {
|
|
129
|
+
f.value = f.value.map((val) => this.setFieldValue(fieldObj, val));
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
f.value = this.setFieldValue(fieldObj, f.value);
|
|
166
133
|
}
|
|
167
134
|
});
|
|
168
|
-
|
|
169
|
-
});
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
135
|
+
}
|
|
136
|
+
const promises = [this.getDataWithOriginalTypes({ resource, limit, offset, sort, filters })];
|
|
137
|
+
if (getTotals) {
|
|
138
|
+
promises.push(this.getCount({ resource, filters }));
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
promises.push(Promise.resolve(undefined));
|
|
142
|
+
}
|
|
143
|
+
const [data, total] = await Promise.all(promises);
|
|
144
|
+
// call getFieldValue for each field
|
|
145
|
+
data.map((record) => {
|
|
146
|
+
for (const col of resource.dataSourceColumns) {
|
|
147
|
+
record[col.name] = this.getFieldValue(col, record[col.name]);
|
|
180
148
|
}
|
|
181
|
-
return result;
|
|
182
149
|
});
|
|
150
|
+
return { data, total };
|
|
151
|
+
}
|
|
152
|
+
async getMinMaxForColumns({ resource, columns }) {
|
|
153
|
+
const mm = await this.getMinMaxForColumnsWithOriginalTypes({ resource, columns });
|
|
154
|
+
const result = {};
|
|
155
|
+
for (const col of columns) {
|
|
156
|
+
result[col.name] = {
|
|
157
|
+
min: this.getFieldValue(col, mm[col.name].min),
|
|
158
|
+
max: this.getFieldValue(col, mm[col.name].max),
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
return result;
|
|
183
162
|
}
|
|
184
163
|
getRecordByPrimaryKey(resource, recordId) {
|
|
185
164
|
return this.getRecordByPrimaryKeyWithOriginalTypes(resource, recordId).then((record) => {
|
|
@@ -191,4 +170,4 @@ export default class AdminForthBaseConnector {
|
|
|
191
170
|
});
|
|
192
171
|
}
|
|
193
172
|
}
|
|
194
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZUNvbm5lY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2RhdGFDb25uZWN0b3JzL2Jhc2VDb25uZWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQ0EsT0FBTyxFQUFvRix5QkFBeUIsRUFBZ0UsTUFBTSw4QkFBOEIsQ0FBQztBQUN6TixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHcEQsTUFBTSxDQUFDLE9BQU8sT0FBTyx1QkFBdUI7SUFDMUMsYUFBYSxDQUFDLFFBQTRCO1FBQ3hDLEtBQUssTUFBTSxHQUFHLElBQUksUUFBUSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDM0MsSUFBSSxHQUFHLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ2pCLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQztZQUNwQixDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFSyxzQ0FBc0MsQ0FBQyxRQUE0QixFQUFFLEVBQVU7O1lBQ25GLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLHdCQUF3QixDQUFDO2dCQUMvQyxRQUFRO2dCQUNSLEtBQUssRUFBRSxDQUFDO2dCQUNSLE1BQU0sRUFBRSxDQUFDO2dCQUNULElBQUksRUFBRSxFQUFFO2dCQUNSLE9BQU8sRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEVBQUUsUUFBUSxFQUFFLHlCQUF5QixDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUM7YUFDdEcsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDMUMsQ0FBQztLQUFBO0lBRUQsd0JBQXdCLENBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxJ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
|
|
173
|
+
//# sourceMappingURL=baseConnector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseConnector.js","sourceRoot":"","sources":["../../dataConnectors/baseConnector.ts"],"names":[],"mappings":"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"}
|