@galadrim/galadmin 0.1.54 → 0.1.55
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/api.js +4 -3
- package/dist/api.js.map +1 -1
- package/dist/index.js +13 -1
- package/dist/index.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/config.d.ts +8 -1
- package/dist/utils/dbManager.d.ts +1 -0
- package/dist/utils/dbManager.js +61 -12
- package/dist/utils/dbManager.js.map +1 -1
- package/package.json +3 -1
- package/src/api.ts +3 -3
- package/src/front/ckeditor5-build/node_modules/semver/bin/semver.js +0 -0
- package/src/front/node_modules/.cache/.eslintcache +1 -1
- package/src/index.ts +13 -1
- package/src/types/config.ts +10 -2
- package/src/utils/dbManager.ts +64 -12
- package/src/front/ckeditor5-build/node_modules/.bin/semver +0 -12
- package/src/front/ckeditor5-build/node_modules/.bin/semver.cmd +0 -17
- package/src/front/ckeditor5-build/node_modules/.bin/semver.ps1 +0 -28
- package/src/front/node_modules/.cache/babel-loader/8a43a311e9031dfe234b8d67ae726a8fcec55a23838c5996ddb72a93ca071631.json +0 -1
package/dist/types/config.d.ts
CHANGED
|
@@ -280,7 +280,14 @@ export type Config = {
|
|
|
280
280
|
password: string;
|
|
281
281
|
};
|
|
282
282
|
authRoles?: AuthRole[];
|
|
283
|
-
mysql
|
|
283
|
+
mysql?: {
|
|
284
|
+
host: string;
|
|
285
|
+
user: string;
|
|
286
|
+
password: string;
|
|
287
|
+
database: string;
|
|
288
|
+
port?: number;
|
|
289
|
+
};
|
|
290
|
+
postgresql?: {
|
|
284
291
|
host: string;
|
|
285
292
|
user: string;
|
|
286
293
|
password: string;
|
package/dist/utils/dbManager.js
CHANGED
|
@@ -2,23 +2,72 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const mysql = require("mysql");
|
|
4
4
|
const mysql2 = require("mysql2");
|
|
5
|
+
const pg = require("pg");
|
|
6
|
+
function convertQuery(mysqlQuery, params) {
|
|
7
|
+
let pgQuery = '';
|
|
8
|
+
let pgParams = [];
|
|
9
|
+
let paramIndex = 1;
|
|
10
|
+
let charIndex = 0;
|
|
11
|
+
while (charIndex < mysqlQuery.length) {
|
|
12
|
+
if (mysqlQuery.charAt(charIndex) === '?' && mysqlQuery.charAt(charIndex + 1) === '?') {
|
|
13
|
+
pgQuery += params.shift();
|
|
14
|
+
charIndex += 2;
|
|
15
|
+
}
|
|
16
|
+
else if (mysqlQuery.charAt(charIndex) === '?') {
|
|
17
|
+
pgQuery += `$${paramIndex++}`;
|
|
18
|
+
pgParams.push(params.shift());
|
|
19
|
+
charIndex++;
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
pgQuery += mysqlQuery.charAt(charIndex);
|
|
23
|
+
charIndex++;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return {
|
|
27
|
+
pgQuery,
|
|
28
|
+
pgParams,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
5
31
|
class dbManager {
|
|
6
32
|
init(config) {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
33
|
+
if (config.mysql) {
|
|
34
|
+
this._db = (config.useMysql2 ? mysql2 : mysql).createPool({
|
|
35
|
+
connectionLimit: 10,
|
|
36
|
+
host: config.mysql.host,
|
|
37
|
+
user: config.mysql.user,
|
|
38
|
+
password: config.mysql.password,
|
|
39
|
+
database: config.mysql.database,
|
|
40
|
+
port: config.mysql.port || 3306,
|
|
41
|
+
dateStrings: true,
|
|
42
|
+
multipleStatements: true
|
|
43
|
+
});
|
|
44
|
+
this.dbType = "MYSQL";
|
|
45
|
+
}
|
|
46
|
+
else if (config.postgresql) {
|
|
47
|
+
this._db = new pg.Pool({
|
|
48
|
+
host: config.postgresql.host,
|
|
49
|
+
user: config.postgresql.user,
|
|
50
|
+
password: config.postgresql.password,
|
|
51
|
+
database: config.postgresql.database,
|
|
52
|
+
port: config.postgresql.port || 5432,
|
|
53
|
+
});
|
|
54
|
+
this.dbType = "POSTGRESQL";
|
|
55
|
+
}
|
|
17
56
|
}
|
|
18
57
|
async query(queryString, args = []) {
|
|
19
58
|
return new Promise((resolve, reject) => {
|
|
20
|
-
this.
|
|
21
|
-
|
|
59
|
+
if (this.dbType === "POSTGRESQL") {
|
|
60
|
+
const result = convertQuery(queryString, args);
|
|
61
|
+
queryString = result.pgQuery;
|
|
62
|
+
args = result.pgParams;
|
|
63
|
+
}
|
|
64
|
+
this._db.query(queryString, args, (a, b, c) => {
|
|
65
|
+
if (this.dbType === "MYSQL") {
|
|
66
|
+
resolve({ err: a, rows: b, fields: c });
|
|
67
|
+
}
|
|
68
|
+
else if (this.dbType === "POSTGRESQL") {
|
|
69
|
+
resolve({ err: a, rows: b === null || b === void 0 ? void 0 : b.rows, fields: b === null || b === void 0 ? void 0 : b.fields });
|
|
70
|
+
}
|
|
22
71
|
});
|
|
23
72
|
});
|
|
24
73
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dbManager.js","sourceRoot":"","sources":["../../src/utils/dbManager.ts"],"names":[],"mappings":";;AAAA,+BAA+B;AAC/B,iCAAiC;
|
|
1
|
+
{"version":3,"file":"dbManager.js","sourceRoot":"","sources":["../../src/utils/dbManager.ts"],"names":[],"mappings":";;AAAA,+BAA+B;AAC/B,iCAAiC;AACjC,yBAAyB;AAEzB,SAAS,YAAY,CAAC,UAAU,EAAE,MAAM;IACpC,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,QAAQ,GAAG,EAAE,CAAC;IAElB,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,OAAO,SAAS,GAAG,UAAU,CAAC,MAAM,EAAE;QAClC,IAAI,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;YAElF,OAAO,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAC1B,SAAS,IAAI,CAAC,CAAC;SAClB;aAAM,IAAI,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,GAAG,EAAE;YAE7C,OAAO,IAAI,IAAI,UAAU,EAAE,EAAE,CAAC;YAC9B,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YAC9B,SAAS,EAAE,CAAC;SACf;aAAM;YACH,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACxC,SAAS,EAAE,CAAC;SACf;KACJ;IAED,OAAO;QACH,OAAO;QACP,QAAQ;KACX,CAAC;AACN,CAAC;AAED,MAAqB,SAAS;IAI1B,IAAI,CAAC,MAAM;QACP,IAAI,MAAM,CAAC,KAAK,EAAE;YACd,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC;gBACtD,eAAe,EAAE,EAAE;gBACnB,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI;gBACvB,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI;gBACvB,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ;gBAC/B,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ;gBAC/B,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI;gBAC/B,WAAW,EAAE,IAAI;gBACjB,kBAAkB,EAAE,IAAI;aAC3B,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;SACzB;aAAM,IAAI,MAAM,CAAC,UAAU,EAAE;YAC1B,IAAI,CAAC,GAAG,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC;gBACnB,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI;gBAC5B,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI;gBAC5B,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ;gBACpC,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ;gBACpC,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,IAAI,IAAI;aACvC,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC;SAC9B;IACL,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,GAAG,EAAE;QAC9B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,IAAI,IAAI,CAAC,MAAM,KAAK,YAAY,EAAE;gBAC9B,MAAM,MAAM,GAAG,YAAY,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;gBAC/C,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC;gBAC7B,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC;aAC1B;YACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC1C,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE;oBACzB,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAA;iBAC1C;qBAAM,IAAI,IAAI,CAAC,MAAM,KAAK,YAAY,EAAE;oBACrC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,IAAI,EAAE,MAAM,EAAE,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,MAAM,EAAE,CAAC,CAAA;iBACxD;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AA7CD,4BA6CC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@galadrim/galadmin",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.55",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"test": "echo \"Error: no test specified\" && exit 1",
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
"aws-sdk": "^2.958.0",
|
|
19
19
|
"axios": "^0.21.1",
|
|
20
20
|
"bcryptjs": "^2.4.3",
|
|
21
|
+
"connect-pg-simple": "^9.0.0",
|
|
21
22
|
"express": "^4.17.1",
|
|
22
23
|
"express-mysql-session": "^2.1.6",
|
|
23
24
|
"express-session": "^1.17.2",
|
|
@@ -27,6 +28,7 @@
|
|
|
27
28
|
"multiparty": "^4.2.2",
|
|
28
29
|
"mysql": "^2.18.1",
|
|
29
30
|
"mysql2": "^2.3.3",
|
|
31
|
+
"pg": "^8.11.3",
|
|
30
32
|
"rollup": "^2.56.2",
|
|
31
33
|
"serialize-javascript": "^6.0.0",
|
|
32
34
|
"ssh2-sftp-client": "^9.0.4"
|
package/src/api.ts
CHANGED
|
@@ -61,8 +61,8 @@ export default (db, config, user) => {
|
|
|
61
61
|
queryString += ")"
|
|
62
62
|
}
|
|
63
63
|
const limit = params.allRecords ? 999999 : parseInt(params.limit)
|
|
64
|
-
const query = params.customQuery || ("SELECT " + (params.selectExpression || "*") + " FROM ?? " + (params.join || "") + queryString + " " + (params.groupBy ? "GROUP BY " + params.groupBy : "") + (params.orderBy || params.primaryId ? " ORDER BY " + (params.orderBy || `${params.table}.${params.primaryId}`) : "") + (params.isDesc ? " DESC" : "") + " LIMIT
|
|
65
|
-
const queryParams = [params.table, Math.max((params.page - 1) * limit, 0)
|
|
64
|
+
const query = params.customQuery || ("SELECT " + (params.selectExpression || "*") + " FROM ?? " + (params.join || "") + queryString + " " + (params.groupBy ? "GROUP BY " + params.groupBy : "") + (params.orderBy || params.primaryId ? " ORDER BY " + (params.orderBy || `${params.table}.${params.primaryId}`) : "") + (params.isDesc ? " DESC" : "") + " LIMIT ? OFFSET ?")
|
|
65
|
+
const queryParams = [params.table, limit, Math.max((params.page - 1) * limit, 0)]
|
|
66
66
|
const { err, rows } = await db.query(query, queryParams)
|
|
67
67
|
if (err) {
|
|
68
68
|
console.error(err)
|
|
@@ -695,7 +695,7 @@ export default (db, config, user) => {
|
|
|
695
695
|
|
|
696
696
|
|
|
697
697
|
async function enrichConfig(config, db) {
|
|
698
|
-
const { rows: info } = await db.query("SELECT * FROM information_schema.columns WHERE table_schema = ?", [config.mysql.database])
|
|
698
|
+
const { rows: info } = await db.query("SELECT * FROM information_schema.columns WHERE table_schema = ?", [config.mysql?.database || config.postgresql?.database])
|
|
699
699
|
for (const view of config.views) {
|
|
700
700
|
if (view.type == "table") {
|
|
701
701
|
const tableName = view.tableName;
|
|
File without changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"/home/runner/work/galadmin/galadmin/src/front/src/index.js":"1","/home/runner/work/galadmin/galadmin/src/front/src/App.js":"2","/home/runner/work/galadmin/galadmin/src/front/src/components/Sidebar.js":"3","/home/runner/work/galadmin/galadmin/src/front/src/components/RedirectToFirstView.js":"4","/home/runner/work/galadmin/galadmin/src/front/src/pages/CreateRecord.js":"5","/home/runner/work/galadmin/galadmin/src/front/src/pages/EditRecord.js":"6","/home/runner/work/galadmin/galadmin/src/front/src/pages/Records.js":"7","/home/runner/work/galadmin/galadmin/src/front/src/pages/Record.js":"8","/home/runner/work/galadmin/galadmin/src/front/src/pages/Login.js":"9","/home/runner/work/galadmin/galadmin/src/front/src/pages/Iframe.js":"10","/home/runner/work/galadmin/galadmin/src/front/src/pages/CustomView.js":"11","/home/runner/work/galadmin/galadmin/src/front/src/contexts/ConfigContext.js":"12","/home/runner/work/galadmin/galadmin/src/front/src/components/Input.js":"13","/home/runner/work/galadmin/galadmin/src/front/src/components/LabelTooltip.js":"14","/home/runner/work/galadmin/galadmin/src/front/src/components/DownloadButton.js":"15","/home/runner/work/galadmin/galadmin/src/front/src/components/AddFilterButton.js":"16","/home/runner/work/galadmin/galadmin/src/front/src/components/BulkActionsButton.js":"17","/home/runner/work/galadmin/galadmin/src/front/src/components/ActionsButton.js":"18","/home/runner/work/galadmin/galadmin/src/front/src/components/BackButton.js":"19","/home/runner/work/galadmin/galadmin/src/front/src/components/DownloadTablePanelButton.js":"20","/home/runner/work/galadmin/galadmin/src/front/src/utils/checkRequiredColumns.js":"21","/home/runner/work/galadmin/galadmin/src/front/src/utils/getFormattedValue.js":"22","/home/runner/work/galadmin/galadmin/src/front/src/components/panels/TablePanel.js":"23","/home/runner/work/galadmin/galadmin/src/front/src/components/panels/GalleryPanel.js":"24","/home/runner/work/galadmin/galadmin/src/front/src/components/panels/MapPanel.js":"25","/home/runner/work/galadmin/galadmin/src/front/src/components/CustomComponent.js":"26","/home/runner/work/galadmin/galadmin/src/front/src/components/OutsideClickHandler.js":"27","/home/runner/work/galadmin/galadmin/src/front/src/components/inputs/ColorInput.js":"28","/home/runner/work/galadmin/galadmin/src/front/src/components/inputs/RichTextInput.js":"29","/home/runner/work/galadmin/galadmin/src/front/src/components/inputs/BetterRichTextInput.js":"30","/home/runner/work/galadmin/galadmin/src/front/src/components/inputs/DatetimeInput.js":"31","/home/runner/work/galadmin/galadmin/src/front/src/components/inputs/AddressInput.js":"32","/home/runner/work/galadmin/galadmin/src/front/src/components/inputs/FileInput.js":"33","/home/runner/work/galadmin/galadmin/src/front/src/components/inputs/ForeignSelectInput.js":"34","/home/runner/work/galadmin/galadmin/src/front/src/components/inputs/ForeignDatalistInput.js":"35","/home/runner/work/galadmin/galadmin/src/front/src/utils/evalExpression.js":"36"},{"size":219,"mtime":1696791732659,"results":"37","hashOfConfig":"38"},{"size":2340,"mtime":1696791732659,"results":"39","hashOfConfig":"38"},{"size":4725,"mtime":1696791732659,"results":"40","hashOfConfig":"38"},{"size":524,"mtime":1696791732659,"results":"41","hashOfConfig":"38"},{"size":4255,"mtime":1696791732659,"results":"42","hashOfConfig":"38"},{"size":3733,"mtime":1696791732659,"results":"43","hashOfConfig":"38"},{"size":10243,"mtime":1696791732659,"results":"44","hashOfConfig":"38"},{"size":4225,"mtime":1696791732659,"results":"45","hashOfConfig":"38"},{"size":1135,"mtime":1696791732659,"results":"46","hashOfConfig":"38"},{"size":404,"mtime":1696791732659,"results":"47","hashOfConfig":"38"},{"size":454,"mtime":1696791732659,"results":"48","hashOfConfig":"38"},{"size":1022,"mtime":1696791732659,"results":"49","hashOfConfig":"38"},{"size":5021,"mtime":1696791732659,"results":"50","hashOfConfig":"38"},{"size":522,"mtime":1696791732659,"results":"51","hashOfConfig":"38"},{"size":895,"mtime":1696791732659,"results":"52","hashOfConfig":"38"},{"size":9821,"mtime":1696791732659,"results":"53","hashOfConfig":"38"},{"size":2656,"mtime":1696791732659,"results":"54","hashOfConfig":"38"},{"size":3169,"mtime":1696791732659,"results":"55","hashOfConfig":"38"},{"size":217,"mtime":1696791732659,"results":"56","hashOfConfig":"38"},{"size":1128,"mtime":1696791732659,"results":"57","hashOfConfig":"38"},{"size":778,"mtime":1696791732659,"results":"58","hashOfConfig":"38"},{"size":2698,"mtime":1696791732659,"results":"59","hashOfConfig":"38"},{"size":4606,"mtime":1696791732659,"results":"60","hashOfConfig":"38"},{"size":2656,"mtime":1696791732659,"results":"61","hashOfConfig":"38"},{"size":1192,"mtime":1696791732659,"results":"62","hashOfConfig":"38"},{"size":1662,"mtime":1696791732659,"results":"63","hashOfConfig":"38"},{"size":826,"mtime":1696791732659,"results":"64","hashOfConfig":"38"},{"size":894,"mtime":1696791732659,"results":"65","hashOfConfig":"38"},{"size":2091,"mtime":1696791732659,"results":"66","hashOfConfig":"38"},{"size":1458,"mtime":1696791732659,"results":"67","hashOfConfig":"38"},{"size":886,"mtime":1696791732659,"results":"68","hashOfConfig":"38"},{"size":3092,"mtime":1696791732659,"results":"69","hashOfConfig":"38"},{"size":3297,"mtime":1696791732659,"results":"70","hashOfConfig":"38"},{"size":1461,"mtime":1696791732659,"results":"71","hashOfConfig":"38"},{"size":2088,"mtime":1696791732659,"results":"72","hashOfConfig":"38"},{"size":530,"mtime":1696791732659,"results":"73","hashOfConfig":"38"},{"filePath":"74","messages":"75","suppressedMessages":"76","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"1jd2669",{"filePath":"77","messages":"78","suppressedMessages":"79","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"80","messages":"81","suppressedMessages":"82","errorCount":0,"fatalErrorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"83","messages":"84","suppressedMessages":"85","errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"86","messages":"87","suppressedMessages":"88","errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"89","messages":"90","suppressedMessages":"91","errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"92","messages":"93","suppressedMessages":"94","errorCount":0,"fatalErrorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"95","messages":"96","suppressedMessages":"97","errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"98","messages":"99","suppressedMessages":"100","errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"101","messages":"102","suppressedMessages":"103","errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"104","messages":"105","suppressedMessages":"106","errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"107","messages":"108","suppressedMessages":"109","errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"110","messages":"111","suppressedMessages":"112","errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"113","messages":"114","suppressedMessages":"115","errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"116","messages":"117","suppressedMessages":"118","errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"119","messages":"120","suppressedMessages":"121","errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"122","messages":"123","suppressedMessages":"124","errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"125","messages":"126","suppressedMessages":"127","errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"128","messages":"129","suppressedMessages":"130","errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"131","messages":"132","suppressedMessages":"133","errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"134","messages":"135","suppressedMessages":"136","errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"137","messages":"138","suppressedMessages":"139","errorCount":0,"fatalErrorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":1,"source":null},{"filePath":"140","messages":"141","suppressedMessages":"142","errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"143","messages":"144","suppressedMessages":"145","errorCount":0,"fatalErrorCount":0,"warningCount":5,"fixableErrorCount":0,"fixableWarningCount":1,"source":null},{"filePath":"146","messages":"147","suppressedMessages":"148","errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"149","messages":"150","suppressedMessages":"151","errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"152","messages":"153","suppressedMessages":"154","errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"155","messages":"156","suppressedMessages":"157","errorCount":0,"fatalErrorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"158","messages":"159","suppressedMessages":"160","errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"161","messages":"162","suppressedMessages":"163","errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"164","messages":"165","suppressedMessages":"166","errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"167","messages":"168","suppressedMessages":"169","errorCount":0,"fatalErrorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"170","messages":"171","suppressedMessages":"172","errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"173","messages":"174","suppressedMessages":"175","errorCount":0,"fatalErrorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"176","messages":"177","suppressedMessages":"178","errorCount":0,"fatalErrorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"179","messages":"180","suppressedMessages":"181","errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},"/home/runner/work/galadmin/galadmin/src/front/src/index.js",[],[],"/home/runner/work/galadmin/galadmin/src/front/src/App.js",[],[],"/home/runner/work/galadmin/galadmin/src/front/src/components/Sidebar.js",["182","183","184","185"],[],"/home/runner/work/galadmin/galadmin/src/front/src/components/RedirectToFirstView.js",["186"],[],"/home/runner/work/galadmin/galadmin/src/front/src/pages/CreateRecord.js",["187"],[],"/home/runner/work/galadmin/galadmin/src/front/src/pages/EditRecord.js",["188"],[],"/home/runner/work/galadmin/galadmin/src/front/src/pages/Records.js",["189","190","191","192"],[],"/home/runner/work/galadmin/galadmin/src/front/src/pages/Record.js",["193","194"],[],"/home/runner/work/galadmin/galadmin/src/front/src/pages/Login.js",["195","196"],[],"/home/runner/work/galadmin/galadmin/src/front/src/pages/Iframe.js",["197","198"],[],"/home/runner/work/galadmin/galadmin/src/front/src/pages/CustomView.js",["199"],[],"/home/runner/work/galadmin/galadmin/src/front/src/contexts/ConfigContext.js",["200"],[],"/home/runner/work/galadmin/galadmin/src/front/src/components/Input.js",["201"],[],"/home/runner/work/galadmin/galadmin/src/front/src/components/LabelTooltip.js",["202"],[],"/home/runner/work/galadmin/galadmin/src/front/src/components/DownloadButton.js",["203"],[],"/home/runner/work/galadmin/galadmin/src/front/src/components/AddFilterButton.js",["204","205"],[],"/home/runner/work/galadmin/galadmin/src/front/src/components/BulkActionsButton.js",["206"],[],"/home/runner/work/galadmin/galadmin/src/front/src/components/ActionsButton.js",["207"],[],"/home/runner/work/galadmin/galadmin/src/front/src/components/BackButton.js",["208"],[],"/home/runner/work/galadmin/galadmin/src/front/src/components/DownloadTablePanelButton.js",["209"],[],"/home/runner/work/galadmin/galadmin/src/front/src/utils/checkRequiredColumns.js",["210","211"],[],"/home/runner/work/galadmin/galadmin/src/front/src/utils/getFormattedValue.js",["212","213","214","215"],[],"/home/runner/work/galadmin/galadmin/src/front/src/components/panels/TablePanel.js",["216","217"],[],"/home/runner/work/galadmin/galadmin/src/front/src/components/panels/GalleryPanel.js",["218","219","220","221","222"],[],"/home/runner/work/galadmin/galadmin/src/front/src/components/panels/MapPanel.js",["223","224"],[],"/home/runner/work/galadmin/galadmin/src/front/src/components/CustomComponent.js",["225","226"],[],"/home/runner/work/galadmin/galadmin/src/front/src/components/OutsideClickHandler.js",["227"],[],"/home/runner/work/galadmin/galadmin/src/front/src/components/inputs/ColorInput.js",["228","229","230"],[],"/home/runner/work/galadmin/galadmin/src/front/src/components/inputs/RichTextInput.js",["231","232"],[],"/home/runner/work/galadmin/galadmin/src/front/src/components/inputs/BetterRichTextInput.js",["233"],[],"/home/runner/work/galadmin/galadmin/src/front/src/components/inputs/DatetimeInput.js",["234","235"],[],"/home/runner/work/galadmin/galadmin/src/front/src/components/inputs/AddressInput.js",["236","237","238","239"],[],"/home/runner/work/galadmin/galadmin/src/front/src/components/inputs/FileInput.js",["240"],[],"/home/runner/work/galadmin/galadmin/src/front/src/components/inputs/ForeignSelectInput.js",["241","242","243"],[],"/home/runner/work/galadmin/galadmin/src/front/src/components/inputs/ForeignDatalistInput.js",["244","245","246","247"],[],"/home/runner/work/galadmin/galadmin/src/front/src/utils/evalExpression.js",["248","249"],[],{"ruleId":"250","severity":1,"message":"251","line":19,"column":1,"nodeType":"252","endLine":104,"endColumn":2},{"ruleId":"253","severity":1,"message":"254","line":26,"column":28,"nodeType":"255","endLine":26,"endColumn":66},{"ruleId":"256","severity":1,"message":"257","line":29,"column":70,"nodeType":"258","messageId":"259","endLine":29,"endColumn":72},{"ruleId":"260","severity":1,"message":"261","line":79,"column":80,"nodeType":"262","messageId":"263","endLine":79,"endColumn":82},{"ruleId":"250","severity":1,"message":"251","line":7,"column":1,"nodeType":"252","endLine":24,"endColumn":2},{"ruleId":"250","severity":1,"message":"251","line":12,"column":1,"nodeType":"252","endLine":102,"endColumn":2},{"ruleId":"250","severity":1,"message":"251","line":12,"column":1,"nodeType":"252","endLine":97,"endColumn":2},{"ruleId":"250","severity":1,"message":"251","line":21,"column":1,"nodeType":"252","endLine":220,"endColumn":2},{"ruleId":"264","severity":1,"message":"265","line":50,"column":8,"nodeType":"266","endLine":50,"endColumn":19,"suggestions":"267"},{"ruleId":"264","severity":1,"message":"268","line":61,"column":8,"nodeType":"266","endLine":61,"endColumn":79,"suggestions":"269"},{"ruleId":"260","severity":1,"message":"261","line":181,"column":66,"nodeType":"262","messageId":"263","endLine":181,"endColumn":68},{"ruleId":"250","severity":1,"message":"251","line":16,"column":1,"nodeType":"252","endLine":89,"endColumn":2},{"ruleId":"264","severity":1,"message":"268","line":26,"column":8,"nodeType":"266","endLine":26,"endColumn":29,"suggestions":"270"},{"ruleId":"250","severity":1,"message":"251","line":5,"column":1,"nodeType":"252","endLine":33,"endColumn":2},{"ruleId":"253","severity":1,"message":"254","line":23,"column":21,"nodeType":"255","endLine":23,"endColumn":57},{"ruleId":"250","severity":1,"message":"251","line":9,"column":1,"nodeType":"252","endLine":19,"endColumn":2},{"ruleId":"271","severity":1,"message":"272","line":16,"column":13,"nodeType":"255","endLine":16,"endColumn":36},{"ruleId":"250","severity":1,"message":"251","line":6,"column":1,"nodeType":"252","endLine":15,"endColumn":2},{"ruleId":"273","severity":1,"message":"274","line":11,"column":29,"nodeType":"275","messageId":"263","endLine":11,"endColumn":33},{"ruleId":"250","severity":1,"message":"251","line":10,"column":1,"nodeType":"252","endLine":149,"endColumn":3},{"ruleId":"250","severity":1,"message":"251","line":3,"column":1,"nodeType":"252","endLine":17,"endColumn":2},{"ruleId":"250","severity":1,"message":"251","line":5,"column":1,"nodeType":"252","endLine":30,"endColumn":2},{"ruleId":"250","severity":1,"message":"251","line":6,"column":1,"nodeType":"252","endLine":196,"endColumn":2},{"ruleId":"264","severity":1,"message":"276","line":20,"column":8,"nodeType":"266","endLine":20,"endColumn":15,"suggestions":"277"},{"ruleId":"250","severity":1,"message":"251","line":6,"column":1,"nodeType":"252","endLine":68,"endColumn":2},{"ruleId":"250","severity":1,"message":"251","line":10,"column":1,"nodeType":"252","endLine":85,"endColumn":2},{"ruleId":"250","severity":1,"message":"251","line":6,"column":1,"nodeType":"252","endLine":12,"endColumn":2},{"ruleId":"250","severity":1,"message":"251","line":4,"column":1,"nodeType":"252","endLine":28,"endColumn":2},{"ruleId":"250","severity":1,"message":"251","line":5,"column":1,"nodeType":"252","endLine":22,"endColumn":2},{"ruleId":"260","severity":1,"message":"261","line":9,"column":44,"nodeType":"262","messageId":"263","endLine":9,"endColumn":46},{"ruleId":"250","severity":1,"message":"251","line":6,"column":1,"nodeType":"252","endLine":51,"endColumn":2},{"ruleId":"278","severity":1,"message":"279","line":19,"column":13,"nodeType":"255","messageId":"280","endLine":19,"endColumn":48,"fix":"281"},{"ruleId":"253","severity":1,"message":"254","line":20,"column":17,"nodeType":"255","endLine":20,"endColumn":127},{"ruleId":"260","severity":1,"message":"261","line":46,"column":93,"nodeType":"262","messageId":"263","endLine":46,"endColumn":95},{"ruleId":"250","severity":1,"message":"251","line":10,"column":1,"nodeType":"252","endLine":112,"endColumn":2},{"ruleId":"264","severity":1,"message":"268","line":18,"column":8,"nodeType":"266","endLine":18,"endColumn":16,"suggestions":"282"},{"ruleId":"250","severity":1,"message":"251","line":8,"column":1,"nodeType":"252","endLine":76,"endColumn":2},{"ruleId":"283","severity":1,"message":"284","line":10,"column":11,"nodeType":"285","messageId":"286","endLine":10,"endColumn":18},{"ruleId":"264","severity":1,"message":"268","line":15,"column":8,"nodeType":"266","endLine":15,"endColumn":29,"suggestions":"287"},{"ruleId":"278","severity":1,"message":"279","line":61,"column":29,"nodeType":"255","messageId":"280","endLine":61,"endColumn":89,"fix":"288"},{"ruleId":"253","severity":1,"message":"254","line":62,"column":33,"nodeType":"255","endLine":66,"endColumn":35},{"ruleId":"250","severity":1,"message":"251","line":4,"column":1,"nodeType":"252","endLine":42,"endColumn":2},{"ruleId":"264","severity":1,"message":"289","line":23,"column":8,"nodeType":"266","endLine":23,"endColumn":31,"suggestions":"290"},{"ruleId":"291","severity":1,"message":"292","line":17,"column":27,"nodeType":"275","messageId":"293","endLine":17,"endColumn":69},{"ruleId":"294","severity":1,"message":"295","line":20,"column":13,"nodeType":"296","messageId":"297","endLine":20,"endColumn":47},{"ruleId":"264","severity":1,"message":"298","line":19,"column":8,"nodeType":"266","endLine":19,"endColumn":13,"suggestions":"299"},{"ruleId":"250","severity":1,"message":"251","line":3,"column":1,"nodeType":"252","endLine":29,"endColumn":2},{"ruleId":"264","severity":1,"message":"300","line":19,"column":43,"nodeType":"285","endLine":19,"endColumn":50},{"ruleId":"264","severity":1,"message":"301","line":20,"column":8,"nodeType":"266","endLine":20,"endColumn":29,"suggestions":"302"},{"ruleId":"250","severity":1,"message":"251","line":7,"column":1,"nodeType":"252","endLine":58,"endColumn":3},{"ruleId":"264","severity":1,"message":"303","line":51,"column":8,"nodeType":"266","endLine":51,"endColumn":32,"suggestions":"304"},{"ruleId":"250","severity":1,"message":"251","line":7,"column":1,"nodeType":"252","endLine":41,"endColumn":3},{"ruleId":"250","severity":1,"message":"251","line":3,"column":1,"nodeType":"252","endLine":26,"endColumn":2},{"ruleId":"264","severity":1,"message":"305","line":19,"column":8,"nodeType":"266","endLine":19,"endColumn":28,"suggestions":"306"},{"ruleId":"250","severity":1,"message":"251","line":3,"column":1,"nodeType":"252","endLine":67,"endColumn":2},{"ruleId":"264","severity":1,"message":"307","line":45,"column":8,"nodeType":"266","endLine":45,"endColumn":33,"suggestions":"308"},{"ruleId":"264","severity":1,"message":"309","line":54,"column":39,"nodeType":"285","endLine":54,"endColumn":46},{"ruleId":"264","severity":1,"message":"310","line":55,"column":8,"nodeType":"266","endLine":55,"endColumn":33,"suggestions":"311"},{"ruleId":"250","severity":1,"message":"251","line":8,"column":1,"nodeType":"252","endLine":85,"endColumn":2},{"ruleId":"250","severity":1,"message":"251","line":7,"column":1,"nodeType":"252","endLine":46,"endColumn":2},{"ruleId":"264","severity":1,"message":"312","line":23,"column":8,"nodeType":"266","endLine":23,"endColumn":10,"suggestions":"313"},{"ruleId":"260","severity":1,"message":"261","line":32,"column":50,"nodeType":"262","messageId":"263","endLine":32,"endColumn":52},{"ruleId":"250","severity":1,"message":"251","line":7,"column":1,"nodeType":"252","endLine":64,"endColumn":2},{"ruleId":"264","severity":1,"message":"314","line":22,"column":8,"nodeType":"266","endLine":22,"endColumn":15,"suggestions":"315"},{"ruleId":"264","severity":1,"message":"316","line":31,"column":29,"nodeType":"285","endLine":31,"endColumn":36},{"ruleId":"264","severity":1,"message":"317","line":32,"column":8,"nodeType":"266","endLine":32,"endColumn":23,"suggestions":"318"},{"ruleId":"250","severity":1,"message":"251","line":2,"column":1,"nodeType":"252","endLine":14,"endColumn":2},{"ruleId":"273","severity":1,"message":"274","line":8,"column":16,"nodeType":"275","messageId":"263","endLine":8,"endColumn":20},"import/no-anonymous-default-export","Assign arrow function to a variable before exporting as module default","ExportDefaultDeclaration","jsx-a11y/alt-text","img elements must have an alt prop, either with meaningful text, or an empty string for decorative images.","JSXOpeningElement","array-callback-return","Array.prototype.map() expects a value to be returned at the end of arrow function.","ArrowFunctionExpression","expectedAtEnd","eqeqeq","Expected '===' and instead saw '=='.","BinaryExpression","unexpected","react-hooks/exhaustive-deps","React Hook useEffect has missing dependencies: 'currentFilters.length' and 'selectedRecordIds.length'. Either include them or remove the dependency array.","ArrayExpression",["319"],"React Hook useEffect has a missing dependency: 'refreshData'. Either include it or remove the dependency array.",["320"],["321"],"jsx-a11y/iframe-has-title","<iframe> elements must have a unique title property.","no-eval","eval can be harmful.","CallExpression","React Hook useEffect has missing dependencies: 'column?.dataType' and 'column.options'. Either include them or remove the dependency array.",["322"],"react/jsx-no-target-blank","Using target=\"_blank\" without rel=\"noreferrer\" (which implies rel=\"noopener\") is a security risk in older browsers: see https://mathiasbynens.github.io/rel-noopener/#recommendations","noTargetBlankWithoutNoreferrer",{"range":"323","text":"324"},["325"],"no-unused-vars","'history' is assigned a value but never used.","Identifier","unusedVar",["326"],{"range":"327","text":"324"},"React Hook useEffect has missing dependencies: 'panel.latitudeField', 'panel.longitudeField', 'panel.query', 'panel.zoom', and 'view.primaryId'. Either include them or remove the dependency array. Outer scope values like 'window.google' aren't valid dependencies because mutating them doesn't re-render the component.",["328"],"no-new-func","The Function constructor is eval.","noFunctionConstructor","no-throw-literal","Expected an error object to be thrown.","ThrowStatement","object","React Hook useEffect has a missing dependency: 'handler'. Either include it or remove the dependency array. If 'handler' changes too often, find the parent component that defines it and wrap that definition in useCallback.",["329"],"The ref value 'colorPicker.current' will likely have changed by the time this effect cleanup function runs. If this ref points to a node rendered by React, copy 'colorPicker.current' to a variable inside the effect, and use that variable in the cleanup function.","React Hook useEffect has missing dependencies: 'column.name', 'initialData', and 'onChange'. Either include them or remove the dependency array. Mutable values like 'colorPicker.current' aren't valid dependencies because mutating them doesn't re-render the component.",["330"],"React Hook useEffect has missing dependencies: 'column.contentField', 'column.htmlField', 'initialData', and 'onChange'. Either include them or remove the dependency array. Mutable values like 'quillContainer.current' aren't valid dependencies because mutating them doesn't re-render the component.",["331"],"React Hook useEffect has missing dependencies: 'column.name', 'initialData', 'onChange', and 'withTime'. Either include them or remove the dependency array. Mutable values like 'datepicker.current' aren't valid dependencies because mutating them doesn't re-render the component.",["332"],"React Hook useEffect has missing dependencies: 'column' and 'onChange'. Either include them or remove the dependency array. Mutable values like 'googleMapsInput.current' aren't valid dependencies because mutating them doesn't re-render the component.",["333"],"The ref value 'googleMapsInput.current' will likely have changed by the time this effect cleanup function runs. If this ref points to a node rendered by React, copy 'googleMapsInput.current' to a variable inside the effect, and use that variable in the cleanup function.","React Hook useEffect has an unnecessary dependency: 'googleMapsInput.current'. Either exclude it or remove the dependency array. Mutable values like 'googleMapsInput.current' aren't valid dependencies because mutating them doesn't re-render the component.",["334"],"React Hook useEffect has missing dependencies: 'column.__id__', 'column.name', 'column.optional', 'initialData', 'onChange', and 'viewIndex'. Either include them or remove the dependency array. If 'onChange' changes too often, find the parent component that defines it and wrap that definition in useCallback.",["335"],"React Hook useEffect has missing dependencies: 'column.__id__' and 'viewIndex'. Either include them or remove the dependency array.",["336"],"The ref value 'input.current' will likely have changed by the time this effect cleanup function runs. If this ref points to a node rendered by React, copy 'input.current' to a variable inside the effect, and use that variable in the cleanup function.","React Hook useEffect has an unnecessary dependency: 'input.current'. Either exclude it or remove the dependency array. Mutable values like 'input.current' aren't valid dependencies because mutating them doesn't re-render the component.",["337"],{"desc":"338","fix":"339"},{"desc":"340","fix":"341"},{"desc":"342","fix":"343"},{"desc":"344","fix":"345"},[1055,1055]," rel=\"noreferrer\"",{"desc":"346","fix":"347"},{"desc":"348","fix":"349"},[2020,2020],{"desc":"350","fix":"351"},{"desc":"352","fix":"353"},{"desc":"354","fix":"355"},{"desc":"356","fix":"357"},{"desc":"358","fix":"359"},{"desc":"360","fix":"361"},{"desc":"362","fix":"363"},{"desc":"364","fix":"365"},{"desc":"366","fix":"367"},{"desc":"362","fix":"368"},"Update the dependencies array to be: [currentFilters.length, selectedRecordIds.length, viewIndex]",{"range":"369","text":"370"},"Update the dependencies array to be: [viewIndex, subviewIndex, page, query, currentFilters, orderBy, isDesc, refreshData]",{"range":"371","text":"372"},"Update the dependencies array to be: [viewIndex, recordId, refreshData]",{"range":"373","text":"374"},"Update the dependencies array to be: [column?.dataType, column.options, field]",{"range":"375","text":"376"},"Update the dependencies array to be: [record, refreshData]",{"range":"377","text":"378"},"Update the dependencies array to be: [panel.query, record, refreshData]",{"range":"379","text":"380"},"Update the dependencies array to be: [panel.latitudeField, panel.longitudeField, panel.query, panel.zoom, record, view.primaryId]",{"range":"381","text":"382"},"Update the dependencies array to be: [handler, ref]",{"range":"383","text":"384"},"Update the dependencies array to be: [column.name, initialData, onChange]",{"range":"385","text":"386"},"Update the dependencies array to be: [column.contentField, column.htmlField, initialData, onChange]",{"range":"387","text":"388"},"Update the dependencies array to be: [column.name, initialData, onChange, withTime]",{"range":"389","text":"390"},"Update the dependencies array to be: [column, onChange]",{"range":"391","text":"392"},"Update the dependencies array to be: []",{"range":"393","text":"394"},"Update the dependencies array to be: [column.__id__, column.name, column.optional, initialData, onChange, viewIndex]",{"range":"395","text":"396"},"Update the dependencies array to be: [column.__id__, query, viewIndex]",{"range":"397","text":"398"},{"range":"399","text":"394"},[1656,1667],"[currentFilters.length, selectedRecordIds.length, viewIndex]",[1896,1967],"[viewIndex, subviewIndex, page, query, currentFilters, orderBy, isDesc, refreshData]",[941,962],"[viewIndex, recordId, refreshData]",[808,815],"[column?.dataType, column.options, field]",[542,550],"[record, refreshData]",[359,380],"[panel.query, record, refreshData]",[776,799],"[panel.latitudeField, panel.longitudeField, panel.query, panel.zoom, record, view.primaryId]",[604,609],"[handler, ref]",[695,716],"[column.name, initialData, onChange]",[1877,1901],"[column.contentField, column.htmlField, initialData, onChange]",[717,737],"[column.name, initialData, onChange, withTime]",[2440,2465],"[column, onChange]",[2826,2851],"[]",[724,726],"[column.__id__, column.name, column.optional, initialData, onChange, viewIndex]",[620,627],"[column.__id__, query, viewIndex]",[972,987]]
|
|
1
|
+
[{"/home/runner/work/galadmin/galadmin/src/front/src/index.js":"1","/home/runner/work/galadmin/galadmin/src/front/src/App.js":"2","/home/runner/work/galadmin/galadmin/src/front/src/components/Sidebar.js":"3","/home/runner/work/galadmin/galadmin/src/front/src/components/RedirectToFirstView.js":"4","/home/runner/work/galadmin/galadmin/src/front/src/pages/CreateRecord.js":"5","/home/runner/work/galadmin/galadmin/src/front/src/pages/EditRecord.js":"6","/home/runner/work/galadmin/galadmin/src/front/src/pages/Records.js":"7","/home/runner/work/galadmin/galadmin/src/front/src/pages/Record.js":"8","/home/runner/work/galadmin/galadmin/src/front/src/pages/Login.js":"9","/home/runner/work/galadmin/galadmin/src/front/src/pages/Iframe.js":"10","/home/runner/work/galadmin/galadmin/src/front/src/contexts/ConfigContext.js":"11","/home/runner/work/galadmin/galadmin/src/front/src/pages/CustomView.js":"12","/home/runner/work/galadmin/galadmin/src/front/src/components/Input.js":"13","/home/runner/work/galadmin/galadmin/src/front/src/components/LabelTooltip.js":"14","/home/runner/work/galadmin/galadmin/src/front/src/components/DownloadButton.js":"15","/home/runner/work/galadmin/galadmin/src/front/src/components/AddFilterButton.js":"16","/home/runner/work/galadmin/galadmin/src/front/src/components/BulkActionsButton.js":"17","/home/runner/work/galadmin/galadmin/src/front/src/components/ActionsButton.js":"18","/home/runner/work/galadmin/galadmin/src/front/src/components/BackButton.js":"19","/home/runner/work/galadmin/galadmin/src/front/src/components/DownloadTablePanelButton.js":"20","/home/runner/work/galadmin/galadmin/src/front/src/utils/checkRequiredColumns.js":"21","/home/runner/work/galadmin/galadmin/src/front/src/utils/getFormattedValue.js":"22","/home/runner/work/galadmin/galadmin/src/front/src/components/panels/TablePanel.js":"23","/home/runner/work/galadmin/galadmin/src/front/src/components/panels/GalleryPanel.js":"24","/home/runner/work/galadmin/galadmin/src/front/src/components/panels/MapPanel.js":"25","/home/runner/work/galadmin/galadmin/src/front/src/components/CustomComponent.js":"26","/home/runner/work/galadmin/galadmin/src/front/src/components/OutsideClickHandler.js":"27","/home/runner/work/galadmin/galadmin/src/front/src/utils/evalExpression.js":"28","/home/runner/work/galadmin/galadmin/src/front/src/components/inputs/ColorInput.js":"29","/home/runner/work/galadmin/galadmin/src/front/src/components/inputs/RichTextInput.js":"30","/home/runner/work/galadmin/galadmin/src/front/src/components/inputs/BetterRichTextInput.js":"31","/home/runner/work/galadmin/galadmin/src/front/src/components/inputs/DatetimeInput.js":"32","/home/runner/work/galadmin/galadmin/src/front/src/components/inputs/AddressInput.js":"33","/home/runner/work/galadmin/galadmin/src/front/src/components/inputs/FileInput.js":"34","/home/runner/work/galadmin/galadmin/src/front/src/components/inputs/ForeignSelectInput.js":"35","/home/runner/work/galadmin/galadmin/src/front/src/components/inputs/ForeignDatalistInput.js":"36"},{"size":219,"mtime":1698761845829,"results":"37","hashOfConfig":"38"},{"size":2340,"mtime":1698761845829,"results":"39","hashOfConfig":"38"},{"size":4725,"mtime":1698761845829,"results":"40","hashOfConfig":"38"},{"size":524,"mtime":1698761845829,"results":"41","hashOfConfig":"38"},{"size":4255,"mtime":1698761845829,"results":"42","hashOfConfig":"38"},{"size":3733,"mtime":1698761845829,"results":"43","hashOfConfig":"38"},{"size":10243,"mtime":1698761845829,"results":"44","hashOfConfig":"38"},{"size":4225,"mtime":1698761845829,"results":"45","hashOfConfig":"38"},{"size":1135,"mtime":1698761845829,"results":"46","hashOfConfig":"38"},{"size":404,"mtime":1698761845829,"results":"47","hashOfConfig":"38"},{"size":1022,"mtime":1698761845829,"results":"48","hashOfConfig":"38"},{"size":454,"mtime":1698761845829,"results":"49","hashOfConfig":"38"},{"size":5021,"mtime":1698761845829,"results":"50","hashOfConfig":"38"},{"size":522,"mtime":1698761845829,"results":"51","hashOfConfig":"38"},{"size":895,"mtime":1698761845829,"results":"52","hashOfConfig":"38"},{"size":9821,"mtime":1698761845829,"results":"53","hashOfConfig":"38"},{"size":2656,"mtime":1698761845829,"results":"54","hashOfConfig":"38"},{"size":3169,"mtime":1698761845829,"results":"55","hashOfConfig":"38"},{"size":217,"mtime":1698761845829,"results":"56","hashOfConfig":"38"},{"size":1128,"mtime":1698761845829,"results":"57","hashOfConfig":"38"},{"size":778,"mtime":1698761845833,"results":"58","hashOfConfig":"38"},{"size":2698,"mtime":1698761845833,"results":"59","hashOfConfig":"38"},{"size":4606,"mtime":1698761845829,"results":"60","hashOfConfig":"38"},{"size":2656,"mtime":1698761845829,"results":"61","hashOfConfig":"38"},{"size":1192,"mtime":1698761845829,"results":"62","hashOfConfig":"38"},{"size":1662,"mtime":1698761845829,"results":"63","hashOfConfig":"38"},{"size":826,"mtime":1698761845829,"results":"64","hashOfConfig":"38"},{"size":530,"mtime":1698761845833,"results":"65","hashOfConfig":"38"},{"size":894,"mtime":1698761845829,"results":"66","hashOfConfig":"38"},{"size":2091,"mtime":1698761845829,"results":"67","hashOfConfig":"38"},{"size":1458,"mtime":1698761845829,"results":"68","hashOfConfig":"38"},{"size":886,"mtime":1698761845829,"results":"69","hashOfConfig":"38"},{"size":3092,"mtime":1698761845829,"results":"70","hashOfConfig":"38"},{"size":3297,"mtime":1698761845829,"results":"71","hashOfConfig":"38"},{"size":1461,"mtime":1698761845829,"results":"72","hashOfConfig":"38"},{"size":2088,"mtime":1698761845829,"results":"73","hashOfConfig":"38"},{"filePath":"74","messages":"75","suppressedMessages":"76","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"8zhr7a",{"filePath":"77","messages":"78","suppressedMessages":"79","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"80","messages":"81","suppressedMessages":"82","errorCount":0,"fatalErrorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"83","messages":"84","suppressedMessages":"85","errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"86","messages":"87","suppressedMessages":"88","errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"89","messages":"90","suppressedMessages":"91","errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"92","messages":"93","suppressedMessages":"94","errorCount":0,"fatalErrorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"95","messages":"96","suppressedMessages":"97","errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"98","messages":"99","suppressedMessages":"100","errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"101","messages":"102","suppressedMessages":"103","errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"104","messages":"105","suppressedMessages":"106","errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"107","messages":"108","suppressedMessages":"109","errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"110","messages":"111","suppressedMessages":"112","errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"113","messages":"114","suppressedMessages":"115","errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"116","messages":"117","suppressedMessages":"118","errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"119","messages":"120","suppressedMessages":"121","errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"122","messages":"123","suppressedMessages":"124","errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"125","messages":"126","suppressedMessages":"127","errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"128","messages":"129","suppressedMessages":"130","errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"131","messages":"132","suppressedMessages":"133","errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"134","messages":"135","suppressedMessages":"136","errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"137","messages":"138","suppressedMessages":"139","errorCount":0,"fatalErrorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":1,"source":null},{"filePath":"140","messages":"141","suppressedMessages":"142","errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"143","messages":"144","suppressedMessages":"145","errorCount":0,"fatalErrorCount":0,"warningCount":5,"fixableErrorCount":0,"fixableWarningCount":1,"source":null},{"filePath":"146","messages":"147","suppressedMessages":"148","errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"149","messages":"150","suppressedMessages":"151","errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"152","messages":"153","suppressedMessages":"154","errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"155","messages":"156","suppressedMessages":"157","errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"158","messages":"159","suppressedMessages":"160","errorCount":0,"fatalErrorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"161","messages":"162","suppressedMessages":"163","errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"164","messages":"165","suppressedMessages":"166","errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"167","messages":"168","suppressedMessages":"169","errorCount":0,"fatalErrorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"170","messages":"171","suppressedMessages":"172","errorCount":0,"fatalErrorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"173","messages":"174","suppressedMessages":"175","errorCount":0,"fatalErrorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"176","messages":"177","suppressedMessages":"178","errorCount":0,"fatalErrorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"179","messages":"180","suppressedMessages":"181","errorCount":0,"fatalErrorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},"/home/runner/work/galadmin/galadmin/src/front/src/index.js",[],[],"/home/runner/work/galadmin/galadmin/src/front/src/App.js",[],[],"/home/runner/work/galadmin/galadmin/src/front/src/components/Sidebar.js",["182","183","184","185"],[],"/home/runner/work/galadmin/galadmin/src/front/src/components/RedirectToFirstView.js",["186"],[],"/home/runner/work/galadmin/galadmin/src/front/src/pages/CreateRecord.js",["187"],[],"/home/runner/work/galadmin/galadmin/src/front/src/pages/EditRecord.js",["188"],[],"/home/runner/work/galadmin/galadmin/src/front/src/pages/Records.js",["189","190","191","192"],[],"/home/runner/work/galadmin/galadmin/src/front/src/pages/Record.js",["193","194"],[],"/home/runner/work/galadmin/galadmin/src/front/src/pages/Login.js",["195","196"],[],"/home/runner/work/galadmin/galadmin/src/front/src/pages/Iframe.js",["197","198"],[],"/home/runner/work/galadmin/galadmin/src/front/src/contexts/ConfigContext.js",["199"],[],"/home/runner/work/galadmin/galadmin/src/front/src/pages/CustomView.js",["200"],[],"/home/runner/work/galadmin/galadmin/src/front/src/components/Input.js",["201"],[],"/home/runner/work/galadmin/galadmin/src/front/src/components/LabelTooltip.js",["202"],[],"/home/runner/work/galadmin/galadmin/src/front/src/components/DownloadButton.js",["203"],[],"/home/runner/work/galadmin/galadmin/src/front/src/components/AddFilterButton.js",["204","205"],[],"/home/runner/work/galadmin/galadmin/src/front/src/components/BulkActionsButton.js",["206"],[],"/home/runner/work/galadmin/galadmin/src/front/src/components/ActionsButton.js",["207"],[],"/home/runner/work/galadmin/galadmin/src/front/src/components/BackButton.js",["208"],[],"/home/runner/work/galadmin/galadmin/src/front/src/components/DownloadTablePanelButton.js",["209"],[],"/home/runner/work/galadmin/galadmin/src/front/src/utils/checkRequiredColumns.js",["210","211"],[],"/home/runner/work/galadmin/galadmin/src/front/src/utils/getFormattedValue.js",["212","213","214","215"],[],"/home/runner/work/galadmin/galadmin/src/front/src/components/panels/TablePanel.js",["216","217"],[],"/home/runner/work/galadmin/galadmin/src/front/src/components/panels/GalleryPanel.js",["218","219","220","221","222"],[],"/home/runner/work/galadmin/galadmin/src/front/src/components/panels/MapPanel.js",["223","224"],[],"/home/runner/work/galadmin/galadmin/src/front/src/components/CustomComponent.js",["225","226"],[],"/home/runner/work/galadmin/galadmin/src/front/src/components/OutsideClickHandler.js",["227"],[],"/home/runner/work/galadmin/galadmin/src/front/src/utils/evalExpression.js",["228","229"],[],"/home/runner/work/galadmin/galadmin/src/front/src/components/inputs/ColorInput.js",["230","231","232"],[],"/home/runner/work/galadmin/galadmin/src/front/src/components/inputs/RichTextInput.js",["233","234"],[],"/home/runner/work/galadmin/galadmin/src/front/src/components/inputs/BetterRichTextInput.js",["235"],[],"/home/runner/work/galadmin/galadmin/src/front/src/components/inputs/DatetimeInput.js",["236","237"],[],"/home/runner/work/galadmin/galadmin/src/front/src/components/inputs/AddressInput.js",["238","239","240","241"],[],"/home/runner/work/galadmin/galadmin/src/front/src/components/inputs/FileInput.js",["242"],[],"/home/runner/work/galadmin/galadmin/src/front/src/components/inputs/ForeignSelectInput.js",["243","244","245"],[],"/home/runner/work/galadmin/galadmin/src/front/src/components/inputs/ForeignDatalistInput.js",["246","247","248","249"],[],{"ruleId":"250","severity":1,"message":"251","line":19,"column":1,"nodeType":"252","endLine":104,"endColumn":2},{"ruleId":"253","severity":1,"message":"254","line":26,"column":28,"nodeType":"255","endLine":26,"endColumn":66},{"ruleId":"256","severity":1,"message":"257","line":29,"column":70,"nodeType":"258","messageId":"259","endLine":29,"endColumn":72},{"ruleId":"260","severity":1,"message":"261","line":79,"column":80,"nodeType":"262","messageId":"263","endLine":79,"endColumn":82},{"ruleId":"250","severity":1,"message":"251","line":7,"column":1,"nodeType":"252","endLine":24,"endColumn":2},{"ruleId":"250","severity":1,"message":"251","line":12,"column":1,"nodeType":"252","endLine":102,"endColumn":2},{"ruleId":"250","severity":1,"message":"251","line":12,"column":1,"nodeType":"252","endLine":97,"endColumn":2},{"ruleId":"250","severity":1,"message":"251","line":21,"column":1,"nodeType":"252","endLine":220,"endColumn":2},{"ruleId":"264","severity":1,"message":"265","line":50,"column":8,"nodeType":"266","endLine":50,"endColumn":19,"suggestions":"267"},{"ruleId":"264","severity":1,"message":"268","line":61,"column":8,"nodeType":"266","endLine":61,"endColumn":79,"suggestions":"269"},{"ruleId":"260","severity":1,"message":"261","line":181,"column":66,"nodeType":"262","messageId":"263","endLine":181,"endColumn":68},{"ruleId":"250","severity":1,"message":"251","line":16,"column":1,"nodeType":"252","endLine":89,"endColumn":2},{"ruleId":"264","severity":1,"message":"268","line":26,"column":8,"nodeType":"266","endLine":26,"endColumn":29,"suggestions":"270"},{"ruleId":"250","severity":1,"message":"251","line":5,"column":1,"nodeType":"252","endLine":33,"endColumn":2},{"ruleId":"253","severity":1,"message":"254","line":23,"column":21,"nodeType":"255","endLine":23,"endColumn":57},{"ruleId":"250","severity":1,"message":"251","line":9,"column":1,"nodeType":"252","endLine":19,"endColumn":2},{"ruleId":"271","severity":1,"message":"272","line":16,"column":13,"nodeType":"255","endLine":16,"endColumn":36},{"ruleId":"273","severity":1,"message":"274","line":11,"column":29,"nodeType":"275","messageId":"263","endLine":11,"endColumn":33},{"ruleId":"250","severity":1,"message":"251","line":6,"column":1,"nodeType":"252","endLine":15,"endColumn":2},{"ruleId":"250","severity":1,"message":"251","line":10,"column":1,"nodeType":"252","endLine":149,"endColumn":3},{"ruleId":"250","severity":1,"message":"251","line":3,"column":1,"nodeType":"252","endLine":17,"endColumn":2},{"ruleId":"250","severity":1,"message":"251","line":5,"column":1,"nodeType":"252","endLine":30,"endColumn":2},{"ruleId":"250","severity":1,"message":"251","line":6,"column":1,"nodeType":"252","endLine":196,"endColumn":2},{"ruleId":"264","severity":1,"message":"276","line":20,"column":8,"nodeType":"266","endLine":20,"endColumn":15,"suggestions":"277"},{"ruleId":"250","severity":1,"message":"251","line":6,"column":1,"nodeType":"252","endLine":68,"endColumn":2},{"ruleId":"250","severity":1,"message":"251","line":10,"column":1,"nodeType":"252","endLine":85,"endColumn":2},{"ruleId":"250","severity":1,"message":"251","line":6,"column":1,"nodeType":"252","endLine":12,"endColumn":2},{"ruleId":"250","severity":1,"message":"251","line":4,"column":1,"nodeType":"252","endLine":28,"endColumn":2},{"ruleId":"250","severity":1,"message":"251","line":5,"column":1,"nodeType":"252","endLine":22,"endColumn":2},{"ruleId":"260","severity":1,"message":"261","line":9,"column":44,"nodeType":"262","messageId":"263","endLine":9,"endColumn":46},{"ruleId":"250","severity":1,"message":"251","line":6,"column":1,"nodeType":"252","endLine":51,"endColumn":2},{"ruleId":"278","severity":1,"message":"279","line":19,"column":13,"nodeType":"255","messageId":"280","endLine":19,"endColumn":48,"fix":"281"},{"ruleId":"253","severity":1,"message":"254","line":20,"column":17,"nodeType":"255","endLine":20,"endColumn":127},{"ruleId":"260","severity":1,"message":"261","line":46,"column":93,"nodeType":"262","messageId":"263","endLine":46,"endColumn":95},{"ruleId":"250","severity":1,"message":"251","line":10,"column":1,"nodeType":"252","endLine":112,"endColumn":2},{"ruleId":"264","severity":1,"message":"268","line":18,"column":8,"nodeType":"266","endLine":18,"endColumn":16,"suggestions":"282"},{"ruleId":"250","severity":1,"message":"251","line":8,"column":1,"nodeType":"252","endLine":76,"endColumn":2},{"ruleId":"283","severity":1,"message":"284","line":10,"column":11,"nodeType":"285","messageId":"286","endLine":10,"endColumn":18},{"ruleId":"264","severity":1,"message":"268","line":15,"column":8,"nodeType":"266","endLine":15,"endColumn":29,"suggestions":"287"},{"ruleId":"278","severity":1,"message":"279","line":61,"column":29,"nodeType":"255","messageId":"280","endLine":61,"endColumn":89,"fix":"288"},{"ruleId":"253","severity":1,"message":"254","line":62,"column":33,"nodeType":"255","endLine":66,"endColumn":35},{"ruleId":"250","severity":1,"message":"251","line":4,"column":1,"nodeType":"252","endLine":42,"endColumn":2},{"ruleId":"264","severity":1,"message":"289","line":23,"column":8,"nodeType":"266","endLine":23,"endColumn":31,"suggestions":"290"},{"ruleId":"291","severity":1,"message":"292","line":17,"column":27,"nodeType":"275","messageId":"293","endLine":17,"endColumn":69},{"ruleId":"294","severity":1,"message":"295","line":20,"column":13,"nodeType":"296","messageId":"297","endLine":20,"endColumn":47},{"ruleId":"264","severity":1,"message":"298","line":19,"column":8,"nodeType":"266","endLine":19,"endColumn":13,"suggestions":"299"},{"ruleId":"250","severity":1,"message":"251","line":2,"column":1,"nodeType":"252","endLine":14,"endColumn":2},{"ruleId":"273","severity":1,"message":"274","line":8,"column":16,"nodeType":"275","messageId":"263","endLine":8,"endColumn":20},{"ruleId":"250","severity":1,"message":"251","line":3,"column":1,"nodeType":"252","endLine":29,"endColumn":2},{"ruleId":"264","severity":1,"message":"300","line":19,"column":43,"nodeType":"285","endLine":19,"endColumn":50},{"ruleId":"264","severity":1,"message":"301","line":20,"column":8,"nodeType":"266","endLine":20,"endColumn":29,"suggestions":"302"},{"ruleId":"250","severity":1,"message":"251","line":7,"column":1,"nodeType":"252","endLine":58,"endColumn":3},{"ruleId":"264","severity":1,"message":"303","line":51,"column":8,"nodeType":"266","endLine":51,"endColumn":32,"suggestions":"304"},{"ruleId":"250","severity":1,"message":"251","line":7,"column":1,"nodeType":"252","endLine":41,"endColumn":3},{"ruleId":"250","severity":1,"message":"251","line":3,"column":1,"nodeType":"252","endLine":26,"endColumn":2},{"ruleId":"264","severity":1,"message":"305","line":19,"column":8,"nodeType":"266","endLine":19,"endColumn":28,"suggestions":"306"},{"ruleId":"250","severity":1,"message":"251","line":3,"column":1,"nodeType":"252","endLine":67,"endColumn":2},{"ruleId":"264","severity":1,"message":"307","line":45,"column":8,"nodeType":"266","endLine":45,"endColumn":33,"suggestions":"308"},{"ruleId":"264","severity":1,"message":"309","line":54,"column":39,"nodeType":"285","endLine":54,"endColumn":46},{"ruleId":"264","severity":1,"message":"310","line":55,"column":8,"nodeType":"266","endLine":55,"endColumn":33,"suggestions":"311"},{"ruleId":"250","severity":1,"message":"251","line":8,"column":1,"nodeType":"252","endLine":85,"endColumn":2},{"ruleId":"250","severity":1,"message":"251","line":7,"column":1,"nodeType":"252","endLine":46,"endColumn":2},{"ruleId":"264","severity":1,"message":"312","line":23,"column":8,"nodeType":"266","endLine":23,"endColumn":10,"suggestions":"313"},{"ruleId":"260","severity":1,"message":"261","line":32,"column":50,"nodeType":"262","messageId":"263","endLine":32,"endColumn":52},{"ruleId":"250","severity":1,"message":"251","line":7,"column":1,"nodeType":"252","endLine":64,"endColumn":2},{"ruleId":"264","severity":1,"message":"314","line":22,"column":8,"nodeType":"266","endLine":22,"endColumn":15,"suggestions":"315"},{"ruleId":"264","severity":1,"message":"316","line":31,"column":29,"nodeType":"285","endLine":31,"endColumn":36},{"ruleId":"264","severity":1,"message":"317","line":32,"column":8,"nodeType":"266","endLine":32,"endColumn":23,"suggestions":"318"},"import/no-anonymous-default-export","Assign arrow function to a variable before exporting as module default","ExportDefaultDeclaration","jsx-a11y/alt-text","img elements must have an alt prop, either with meaningful text, or an empty string for decorative images.","JSXOpeningElement","array-callback-return","Array.prototype.map() expects a value to be returned at the end of arrow function.","ArrowFunctionExpression","expectedAtEnd","eqeqeq","Expected '===' and instead saw '=='.","BinaryExpression","unexpected","react-hooks/exhaustive-deps","React Hook useEffect has missing dependencies: 'currentFilters.length' and 'selectedRecordIds.length'. Either include them or remove the dependency array.","ArrayExpression",["319"],"React Hook useEffect has a missing dependency: 'refreshData'. Either include it or remove the dependency array.",["320"],["321"],"jsx-a11y/iframe-has-title","<iframe> elements must have a unique title property.","no-eval","eval can be harmful.","CallExpression","React Hook useEffect has missing dependencies: 'column?.dataType' and 'column.options'. Either include them or remove the dependency array.",["322"],"react/jsx-no-target-blank","Using target=\"_blank\" without rel=\"noreferrer\" (which implies rel=\"noopener\") is a security risk in older browsers: see https://mathiasbynens.github.io/rel-noopener/#recommendations","noTargetBlankWithoutNoreferrer",{"range":"323","text":"324"},["325"],"no-unused-vars","'history' is assigned a value but never used.","Identifier","unusedVar",["326"],{"range":"327","text":"324"},"React Hook useEffect has missing dependencies: 'panel.latitudeField', 'panel.longitudeField', 'panel.query', 'panel.zoom', and 'view.primaryId'. Either include them or remove the dependency array. Outer scope values like 'window.google' aren't valid dependencies because mutating them doesn't re-render the component.",["328"],"no-new-func","The Function constructor is eval.","noFunctionConstructor","no-throw-literal","Expected an error object to be thrown.","ThrowStatement","object","React Hook useEffect has a missing dependency: 'handler'. Either include it or remove the dependency array. If 'handler' changes too often, find the parent component that defines it and wrap that definition in useCallback.",["329"],"The ref value 'colorPicker.current' will likely have changed by the time this effect cleanup function runs. If this ref points to a node rendered by React, copy 'colorPicker.current' to a variable inside the effect, and use that variable in the cleanup function.","React Hook useEffect has missing dependencies: 'column.name', 'initialData', and 'onChange'. Either include them or remove the dependency array. Mutable values like 'colorPicker.current' aren't valid dependencies because mutating them doesn't re-render the component.",["330"],"React Hook useEffect has missing dependencies: 'column.contentField', 'column.htmlField', 'initialData', and 'onChange'. Either include them or remove the dependency array. Mutable values like 'quillContainer.current' aren't valid dependencies because mutating them doesn't re-render the component.",["331"],"React Hook useEffect has missing dependencies: 'column.name', 'initialData', 'onChange', and 'withTime'. Either include them or remove the dependency array. Mutable values like 'datepicker.current' aren't valid dependencies because mutating them doesn't re-render the component.",["332"],"React Hook useEffect has missing dependencies: 'column' and 'onChange'. Either include them or remove the dependency array. Mutable values like 'googleMapsInput.current' aren't valid dependencies because mutating them doesn't re-render the component.",["333"],"The ref value 'googleMapsInput.current' will likely have changed by the time this effect cleanup function runs. If this ref points to a node rendered by React, copy 'googleMapsInput.current' to a variable inside the effect, and use that variable in the cleanup function.","React Hook useEffect has an unnecessary dependency: 'googleMapsInput.current'. Either exclude it or remove the dependency array. Mutable values like 'googleMapsInput.current' aren't valid dependencies because mutating them doesn't re-render the component.",["334"],"React Hook useEffect has missing dependencies: 'column.__id__', 'column.name', 'column.optional', 'initialData', 'onChange', and 'viewIndex'. Either include them or remove the dependency array. If 'onChange' changes too often, find the parent component that defines it and wrap that definition in useCallback.",["335"],"React Hook useEffect has missing dependencies: 'column.__id__' and 'viewIndex'. Either include them or remove the dependency array.",["336"],"The ref value 'input.current' will likely have changed by the time this effect cleanup function runs. If this ref points to a node rendered by React, copy 'input.current' to a variable inside the effect, and use that variable in the cleanup function.","React Hook useEffect has an unnecessary dependency: 'input.current'. Either exclude it or remove the dependency array. Mutable values like 'input.current' aren't valid dependencies because mutating them doesn't re-render the component.",["337"],{"desc":"338","fix":"339"},{"desc":"340","fix":"341"},{"desc":"342","fix":"343"},{"desc":"344","fix":"345"},[1055,1055]," rel=\"noreferrer\"",{"desc":"346","fix":"347"},{"desc":"348","fix":"349"},[2020,2020],{"desc":"350","fix":"351"},{"desc":"352","fix":"353"},{"desc":"354","fix":"355"},{"desc":"356","fix":"357"},{"desc":"358","fix":"359"},{"desc":"360","fix":"361"},{"desc":"362","fix":"363"},{"desc":"364","fix":"365"},{"desc":"366","fix":"367"},{"desc":"362","fix":"368"},"Update the dependencies array to be: [currentFilters.length, selectedRecordIds.length, viewIndex]",{"range":"369","text":"370"},"Update the dependencies array to be: [viewIndex, subviewIndex, page, query, currentFilters, orderBy, isDesc, refreshData]",{"range":"371","text":"372"},"Update the dependencies array to be: [viewIndex, recordId, refreshData]",{"range":"373","text":"374"},"Update the dependencies array to be: [column?.dataType, column.options, field]",{"range":"375","text":"376"},"Update the dependencies array to be: [record, refreshData]",{"range":"377","text":"378"},"Update the dependencies array to be: [panel.query, record, refreshData]",{"range":"379","text":"380"},"Update the dependencies array to be: [panel.latitudeField, panel.longitudeField, panel.query, panel.zoom, record, view.primaryId]",{"range":"381","text":"382"},"Update the dependencies array to be: [handler, ref]",{"range":"383","text":"384"},"Update the dependencies array to be: [column.name, initialData, onChange]",{"range":"385","text":"386"},"Update the dependencies array to be: [column.contentField, column.htmlField, initialData, onChange]",{"range":"387","text":"388"},"Update the dependencies array to be: [column.name, initialData, onChange, withTime]",{"range":"389","text":"390"},"Update the dependencies array to be: [column, onChange]",{"range":"391","text":"392"},"Update the dependencies array to be: []",{"range":"393","text":"394"},"Update the dependencies array to be: [column.__id__, column.name, column.optional, initialData, onChange, viewIndex]",{"range":"395","text":"396"},"Update the dependencies array to be: [column.__id__, query, viewIndex]",{"range":"397","text":"398"},{"range":"399","text":"394"},[1656,1667],"[currentFilters.length, selectedRecordIds.length, viewIndex]",[1896,1967],"[viewIndex, subviewIndex, page, query, currentFilters, orderBy, isDesc, refreshData]",[941,962],"[viewIndex, recordId, refreshData]",[808,815],"[column?.dataType, column.options, field]",[542,550],"[record, refreshData]",[359,380],"[panel.query, record, refreshData]",[776,799],"[panel.latitudeField, panel.longitudeField, panel.query, panel.zoom, record, view.primaryId]",[604,609],"[handler, ref]",[695,716],"[column.name, initialData, onChange]",[1877,1901],"[column.contentField, column.htmlField, initialData, onChange]",[717,737],"[column.name, initialData, onChange, withTime]",[2440,2465],"[column, onChange]",[2826,2851],"[]",[724,726],"[column.__id__, column.name, column.optional, initialData, onChange, viewIndex]",[620,627],"[column.__id__, query, viewIndex]",[972,987]]
|
package/src/index.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import * as express from "express";
|
|
2
2
|
import * as session from "express-session";
|
|
3
3
|
import * as SessionStore from "express-mysql-session";
|
|
4
|
+
import * as pgSessionStore from 'connect-pg-simple';
|
|
4
5
|
import * as mysql2 from 'mysql2/promise';
|
|
6
|
+
import * as pg from 'pg';
|
|
5
7
|
import dbManager from "./utils/dbManager";
|
|
6
8
|
import * as bcrypt from "bcryptjs";
|
|
7
9
|
|
|
@@ -38,7 +40,17 @@ export default (config: Config): any => {
|
|
|
38
40
|
|
|
39
41
|
app.use(session({
|
|
40
42
|
secret: config.sessionSecret,
|
|
41
|
-
store: new
|
|
43
|
+
store: config.postgresql ? new (pgSessionStore(session))({
|
|
44
|
+
pool: new pg.Pool({
|
|
45
|
+
host: config.postgresql.host,
|
|
46
|
+
user: config.postgresql.user,
|
|
47
|
+
password: config.postgresql.password,
|
|
48
|
+
database: config.postgresql.database,
|
|
49
|
+
port: config.postgresql.port || 5432,
|
|
50
|
+
}),
|
|
51
|
+
createTableIfMissing: true,
|
|
52
|
+
tableName: 'galadmin_sessions'
|
|
53
|
+
}) : new SessionStore({
|
|
42
54
|
schema: { tableName: 'galadmin_sessions' }
|
|
43
55
|
}, mysql2.createPool({
|
|
44
56
|
host: config.mysql.host,
|
package/src/types/config.ts
CHANGED
|
@@ -317,13 +317,21 @@ export type Config = {
|
|
|
317
317
|
authRoles?: AuthRole[],
|
|
318
318
|
|
|
319
319
|
/** Identifiants de connexion à la base de données */
|
|
320
|
-
mysql
|
|
320
|
+
mysql?: {
|
|
321
321
|
host: string,
|
|
322
322
|
user: string,
|
|
323
323
|
password: string,
|
|
324
324
|
database: string,
|
|
325
325
|
port?: number
|
|
326
|
-
}
|
|
326
|
+
},
|
|
327
|
+
|
|
328
|
+
postgresql?: {
|
|
329
|
+
host: string,
|
|
330
|
+
user: string,
|
|
331
|
+
password: string,
|
|
332
|
+
database: string,
|
|
333
|
+
port?: number
|
|
334
|
+
},
|
|
327
335
|
|
|
328
336
|
/** Clé API Google Maps pour les champs adresses et l'affichage de cartes */
|
|
329
337
|
googleMapsKey?: string,
|
package/src/utils/dbManager.ts
CHANGED
|
@@ -1,26 +1,78 @@
|
|
|
1
1
|
import * as mysql from "mysql";
|
|
2
2
|
import * as mysql2 from "mysql2";
|
|
3
|
+
import * as pg from 'pg';
|
|
4
|
+
|
|
5
|
+
function convertQuery(mysqlQuery, params) {
|
|
6
|
+
let pgQuery = '';
|
|
7
|
+
let pgParams = [];
|
|
8
|
+
|
|
9
|
+
let paramIndex = 1;
|
|
10
|
+
let charIndex = 0;
|
|
11
|
+
|
|
12
|
+
while (charIndex < mysqlQuery.length) {
|
|
13
|
+
if (mysqlQuery.charAt(charIndex) === '?' && mysqlQuery.charAt(charIndex + 1) === '?') {
|
|
14
|
+
// Replace "??"
|
|
15
|
+
pgQuery += params.shift();
|
|
16
|
+
charIndex += 2; // Skip two characters
|
|
17
|
+
} else if (mysqlQuery.charAt(charIndex) === '?') {
|
|
18
|
+
// Replace "?"
|
|
19
|
+
pgQuery += `$${paramIndex++}`;
|
|
20
|
+
pgParams.push(params.shift());
|
|
21
|
+
charIndex++; // Skip one character
|
|
22
|
+
} else {
|
|
23
|
+
pgQuery += mysqlQuery.charAt(charIndex);
|
|
24
|
+
charIndex++; // Go to next character
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
return {
|
|
29
|
+
pgQuery,
|
|
30
|
+
pgParams,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
3
33
|
|
|
4
34
|
export default class dbManager {
|
|
5
35
|
_db;
|
|
36
|
+
dbType;
|
|
6
37
|
|
|
7
38
|
init(config) {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
39
|
+
if (config.mysql) {
|
|
40
|
+
this._db = (config.useMysql2 ? mysql2 : mysql).createPool({
|
|
41
|
+
connectionLimit: 10,
|
|
42
|
+
host: config.mysql.host,
|
|
43
|
+
user: config.mysql.user,
|
|
44
|
+
password: config.mysql.password,
|
|
45
|
+
database: config.mysql.database,
|
|
46
|
+
port: config.mysql.port || 3306,
|
|
47
|
+
dateStrings: true,
|
|
48
|
+
multipleStatements: true
|
|
49
|
+
});
|
|
50
|
+
this.dbType = "MYSQL";
|
|
51
|
+
} else if (config.postgresql) {
|
|
52
|
+
this._db = new pg.Pool({
|
|
53
|
+
host: config.postgresql.host,
|
|
54
|
+
user: config.postgresql.user,
|
|
55
|
+
password: config.postgresql.password,
|
|
56
|
+
database: config.postgresql.database,
|
|
57
|
+
port: config.postgresql.port || 5432,
|
|
58
|
+
});
|
|
59
|
+
this.dbType = "POSTGRESQL";
|
|
60
|
+
}
|
|
18
61
|
}
|
|
19
62
|
|
|
20
63
|
async query(queryString, args = []): Promise<any> {
|
|
21
64
|
return new Promise((resolve, reject) => {
|
|
22
|
-
this.
|
|
23
|
-
|
|
65
|
+
if (this.dbType === "POSTGRESQL") {
|
|
66
|
+
const result = convertQuery(queryString, args);
|
|
67
|
+
queryString = result.pgQuery;
|
|
68
|
+
args = result.pgParams;
|
|
69
|
+
}
|
|
70
|
+
this._db.query(queryString, args, (a, b, c) => {
|
|
71
|
+
if (this.dbType === "MYSQL") {
|
|
72
|
+
resolve({ err: a, rows: b, fields: c })
|
|
73
|
+
} else if (this.dbType === "POSTGRESQL") {
|
|
74
|
+
resolve({ err: a, rows: b?.rows, fields: b?.fields })
|
|
75
|
+
}
|
|
24
76
|
});
|
|
25
77
|
});
|
|
26
78
|
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
#!/bin/sh
|
|
2
|
-
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
|
3
|
-
|
|
4
|
-
case `uname` in
|
|
5
|
-
*CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
|
|
6
|
-
esac
|
|
7
|
-
|
|
8
|
-
if [ -x "$basedir/node" ]; then
|
|
9
|
-
exec "$basedir/node" "$basedir/../semver/bin/semver.js" "$@"
|
|
10
|
-
else
|
|
11
|
-
exec node "$basedir/../semver/bin/semver.js" "$@"
|
|
12
|
-
fi
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
@ECHO off
|
|
2
|
-
GOTO start
|
|
3
|
-
:find_dp0
|
|
4
|
-
SET dp0=%~dp0
|
|
5
|
-
EXIT /b
|
|
6
|
-
:start
|
|
7
|
-
SETLOCAL
|
|
8
|
-
CALL :find_dp0
|
|
9
|
-
|
|
10
|
-
IF EXIST "%dp0%\node.exe" (
|
|
11
|
-
SET "_prog=%dp0%\node.exe"
|
|
12
|
-
) ELSE (
|
|
13
|
-
SET "_prog=node"
|
|
14
|
-
SET PATHEXT=%PATHEXT:;.JS;=;%
|
|
15
|
-
)
|
|
16
|
-
|
|
17
|
-
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\semver\bin\semver.js" %*
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env pwsh
|
|
2
|
-
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
|
3
|
-
|
|
4
|
-
$exe=""
|
|
5
|
-
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
|
6
|
-
# Fix case when both the Windows and Linux builds of Node
|
|
7
|
-
# are installed in the same directory
|
|
8
|
-
$exe=".exe"
|
|
9
|
-
}
|
|
10
|
-
$ret=0
|
|
11
|
-
if (Test-Path "$basedir/node$exe") {
|
|
12
|
-
# Support pipeline input
|
|
13
|
-
if ($MyInvocation.ExpectingInput) {
|
|
14
|
-
$input | & "$basedir/node$exe" "$basedir/../semver/bin/semver.js" $args
|
|
15
|
-
} else {
|
|
16
|
-
& "$basedir/node$exe" "$basedir/../semver/bin/semver.js" $args
|
|
17
|
-
}
|
|
18
|
-
$ret=$LASTEXITCODE
|
|
19
|
-
} else {
|
|
20
|
-
# Support pipeline input
|
|
21
|
-
if ($MyInvocation.ExpectingInput) {
|
|
22
|
-
$input | & "node$exe" "$basedir/../semver/bin/semver.js" $args
|
|
23
|
-
} else {
|
|
24
|
-
& "node$exe" "$basedir/../semver/bin/semver.js" $args
|
|
25
|
-
}
|
|
26
|
-
$ret=$LASTEXITCODE
|
|
27
|
-
}
|
|
28
|
-
exit $ret
|