nextjs-cms 0.5.9 → 0.5.10
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/axios/axiosInstance.d.ts +1 -1
- package/dist/api/axios/axiosInstance.js +8 -8
- package/dist/api/index.d.ts +855 -855
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +12 -12
- package/dist/api/lib/serverActions.d.ts +239 -239
- package/dist/api/lib/serverActions.d.ts.map +1 -1
- package/dist/api/lib/serverActions.js +834 -834
- package/dist/api/root.d.ts +828 -828
- package/dist/api/root.js +30 -30
- package/dist/api/routers/accountSettings.d.ts +60 -60
- package/dist/api/routers/accountSettings.js +108 -108
- package/dist/api/routers/admins.d.ts +105 -105
- package/dist/api/routers/admins.js +219 -219
- package/dist/api/routers/auth.d.ts +47 -47
- package/dist/api/routers/auth.js +25 -25
- package/dist/api/routers/categorySection.d.ts +103 -103
- package/dist/api/routers/categorySection.js +38 -38
- package/dist/api/routers/cmsSettings.d.ts +48 -48
- package/dist/api/routers/cmsSettings.js +51 -51
- package/dist/api/routers/cpanel.d.ts +83 -83
- package/dist/api/routers/cpanel.js +216 -216
- package/dist/api/routers/files.d.ts +47 -47
- package/dist/api/routers/files.js +23 -23
- package/dist/api/routers/gallery.d.ts +35 -35
- package/dist/api/routers/gallery.js +62 -62
- package/dist/api/routers/googleAnalytics.d.ts +30 -30
- package/dist/api/routers/googleAnalytics.js +7 -7
- package/dist/api/routers/hasItemsSection.d.ts +139 -139
- package/dist/api/routers/hasItemsSection.js +34 -34
- package/dist/api/routers/navigation.d.ts +51 -51
- package/dist/api/routers/navigation.js +11 -11
- package/dist/api/routers/simpleSection.d.ts +57 -57
- package/dist/api/routers/simpleSection.js +12 -12
- package/dist/api/trpc.d.ts +106 -106
- package/dist/api/trpc.js +72 -72
- package/dist/auth/axios/axiosInstance.d.ts +1 -1
- package/dist/auth/axios/axiosInstance.js +8 -8
- package/dist/auth/csrf.d.ts +29 -29
- package/dist/auth/csrf.js +76 -76
- package/dist/auth/hooks/index.d.ts +3 -3
- package/dist/auth/hooks/index.d.ts.map +1 -1
- package/dist/auth/hooks/index.js +3 -3
- package/dist/auth/hooks/useAxiosPrivate.d.ts +4 -4
- package/dist/auth/hooks/useAxiosPrivate.js +74 -74
- package/dist/auth/hooks/useRefreshToken.d.ts +6 -6
- package/dist/auth/hooks/useRefreshToken.js +79 -79
- package/dist/auth/index.d.ts +22 -22
- package/dist/auth/index.js +44 -44
- package/dist/auth/jwt.d.ts +5 -5
- package/dist/auth/jwt.js +25 -25
- package/dist/auth/lib/actions.d.ts +32 -32
- package/dist/auth/lib/actions.d.ts.map +1 -1
- package/dist/auth/lib/actions.js +209 -209
- package/dist/auth/lib/client.d.ts +3 -3
- package/dist/auth/lib/client.js +46 -46
- package/dist/auth/lib/index.d.ts +2 -2
- package/dist/auth/lib/index.d.ts.map +1 -1
- package/dist/auth/lib/index.js +2 -2
- package/dist/auth/react.d.ts +105 -105
- package/dist/auth/react.d.ts.map +1 -1
- package/dist/auth/react.js +347 -347
- package/dist/auth/trpc.d.ts +5 -5
- package/dist/auth/trpc.d.ts.map +1 -1
- package/dist/auth/trpc.js +81 -81
- package/dist/core/config/config-loader.d.ts +91 -91
- package/dist/core/config/config-loader.js +230 -230
- package/dist/core/config/index.d.ts +2 -2
- package/dist/core/config/index.d.ts.map +1 -1
- package/dist/core/config/index.js +1 -1
- package/dist/core/config/loader.d.ts +1 -1
- package/dist/core/config/loader.js +42 -42
- package/dist/core/db/index.d.ts +1 -1
- package/dist/core/db/index.d.ts.map +1 -1
- package/dist/core/db/index.js +1 -1
- package/dist/core/db/table-checker/DbTable.d.ts +5 -5
- package/dist/core/db/table-checker/DbTable.js +5 -5
- package/dist/core/db/table-checker/MysqlTable.d.ts +33 -33
- package/dist/core/db/table-checker/MysqlTable.d.ts.map +1 -1
- package/dist/core/db/table-checker/MysqlTable.js +94 -94
- package/dist/core/db/table-checker/index.d.ts +1 -1
- package/dist/core/db/table-checker/index.d.ts.map +1 -1
- package/dist/core/db/table-checker/index.js +1 -1
- package/dist/core/factories/FieldFactory.d.ts +123 -123
- package/dist/core/factories/FieldFactory.d.ts.map +1 -1
- package/dist/core/factories/FieldFactory.js +411 -411
- package/dist/core/factories/SectionFactory.d.ts +109 -109
- package/dist/core/factories/SectionFactory.d.ts.map +1 -1
- package/dist/core/factories/SectionFactory.js +415 -415
- package/dist/core/factories/index.d.ts +2 -2
- package/dist/core/factories/index.d.ts.map +1 -1
- package/dist/core/factories/index.js +2 -2
- package/dist/core/fields/checkbox.d.ts +62 -62
- package/dist/core/fields/checkbox.d.ts.map +1 -1
- package/dist/core/fields/checkbox.js +62 -62
- package/dist/core/fields/color.d.ts +83 -83
- package/dist/core/fields/color.d.ts.map +1 -1
- package/dist/core/fields/color.js +91 -91
- package/dist/core/fields/date.d.ts +99 -99
- package/dist/core/fields/date.d.ts.map +1 -1
- package/dist/core/fields/date.js +108 -108
- package/dist/core/fields/document.d.ts +179 -179
- package/dist/core/fields/document.d.ts.map +1 -1
- package/dist/core/fields/document.js +277 -277
- package/dist/core/fields/field-group.d.ts +17 -17
- package/dist/core/fields/field-group.d.ts.map +1 -1
- package/dist/core/fields/field-group.js +6 -6
- package/dist/core/fields/field.d.ts +125 -125
- package/dist/core/fields/field.d.ts.map +1 -1
- package/dist/core/fields/field.js +148 -148
- package/dist/core/fields/fileField.d.ts +14 -14
- package/dist/core/fields/fileField.d.ts.map +1 -1
- package/dist/core/fields/fileField.js +5 -5
- package/dist/core/fields/index.d.ts +64 -64
- package/dist/core/fields/index.d.ts.map +1 -1
- package/dist/core/fields/index.js +18 -18
- package/dist/core/fields/map.d.ts +166 -166
- package/dist/core/fields/map.d.ts.map +1 -1
- package/dist/core/fields/map.js +152 -152
- package/dist/core/fields/number.d.ts +185 -185
- package/dist/core/fields/number.d.ts.map +1 -1
- package/dist/core/fields/number.js +241 -241
- package/dist/core/fields/password.d.ts +108 -108
- package/dist/core/fields/password.d.ts.map +1 -1
- package/dist/core/fields/password.js +133 -133
- package/dist/core/fields/photo.d.ts +288 -288
- package/dist/core/fields/photo.d.ts.map +1 -1
- package/dist/core/fields/photo.js +410 -410
- package/dist/core/fields/richText.d.ts +294 -294
- package/dist/core/fields/richText.d.ts.map +1 -1
- package/dist/core/fields/richText.js +338 -338
- package/dist/core/fields/select.d.ts +365 -365
- package/dist/core/fields/select.d.ts.map +1 -1
- package/dist/core/fields/select.js +499 -499
- package/dist/core/fields/selectMultiple.d.ts +235 -235
- package/dist/core/fields/selectMultiple.d.ts.map +1 -1
- package/dist/core/fields/selectMultiple.js +417 -417
- package/dist/core/fields/tags.d.ts +130 -130
- package/dist/core/fields/tags.d.ts.map +1 -1
- package/dist/core/fields/tags.js +105 -105
- package/dist/core/fields/text.d.ts +135 -135
- package/dist/core/fields/text.d.ts.map +1 -1
- package/dist/core/fields/text.js +157 -157
- package/dist/core/fields/textArea.d.ts +106 -106
- package/dist/core/fields/textArea.d.ts.map +1 -1
- package/dist/core/fields/textArea.js +126 -126
- package/dist/core/fields/video.d.ts +147 -147
- package/dist/core/fields/video.d.ts.map +1 -1
- package/dist/core/fields/video.js +248 -248
- package/dist/core/helpers/entity.d.ts +7 -7
- package/dist/core/helpers/entity.js +27 -27
- package/dist/core/helpers/index.d.ts +4 -4
- package/dist/core/helpers/index.d.ts.map +1 -1
- package/dist/core/helpers/index.js +3 -3
- package/dist/core/index.d.ts +7 -7
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +7 -7
- package/dist/core/sections/category.d.ts +282 -282
- package/dist/core/sections/category.d.ts.map +1 -1
- package/dist/core/sections/category.js +147 -147
- package/dist/core/sections/hasItems.d.ts +631 -631
- package/dist/core/sections/hasItems.d.ts.map +1 -1
- package/dist/core/sections/hasItems.js +144 -144
- package/dist/core/sections/index.d.ts +4 -4
- package/dist/core/sections/index.d.ts.map +1 -1
- package/dist/core/sections/index.js +4 -4
- package/dist/core/sections/section.d.ts +225 -225
- package/dist/core/sections/section.d.ts.map +1 -1
- package/dist/core/sections/section.js +341 -341
- package/dist/core/sections/simple.d.ts +98 -98
- package/dist/core/sections/simple.d.ts.map +1 -1
- package/dist/core/sections/simple.js +95 -95
- package/dist/core/security/dom.d.ts +10 -10
- package/dist/core/security/dom.js +92 -92
- package/dist/core/submit/ItemEditSubmit.d.ts +75 -75
- package/dist/core/submit/ItemEditSubmit.js +186 -186
- package/dist/core/submit/NewItemSubmit.d.ts +13 -13
- package/dist/core/submit/NewItemSubmit.js +93 -93
- package/dist/core/submit/SimpleSectionSubmit.d.ts +12 -12
- package/dist/core/submit/SimpleSectionSubmit.js +93 -93
- package/dist/core/submit/index.d.ts +4 -4
- package/dist/core/submit/index.js +4 -4
- package/dist/core/submit/submit.d.ts +115 -115
- package/dist/core/submit/submit.js +479 -479
- package/dist/core/types/index.d.ts +279 -279
- package/dist/core/types/index.d.ts.map +1 -1
- package/dist/core/types/index.js +1 -1
- package/dist/db/client.d.ts +8 -8
- package/dist/db/client.d.ts.map +1 -1
- package/dist/db/client.js +19 -19
- package/dist/db/config.d.ts +5 -5
- package/dist/db/config.js +22 -22
- package/dist/db/drizzle.config.d.ts +5 -5
- package/dist/db/drizzle.config.js +18 -18
- package/dist/db/index.d.ts +2 -2
- package/dist/db/index.js +3 -3
- package/dist/db/schema.d.ts +638 -638
- package/dist/db/schema.js +73 -73
- package/dist/index.d.ts +7 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -7
- package/dist/translations/index.d.ts +2 -2
- package/dist/translations/index.js +15 -15
- package/dist/utils/CpanelApi.d.ts +24 -24
- package/dist/utils/CpanelApi.js +64 -64
- package/dist/utils/constants.d.ts +13 -13
- package/dist/utils/constants.js +61 -61
- package/dist/utils/index.d.ts +4 -4
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +4 -4
- package/dist/utils/utils.d.ts +59 -59
- package/dist/utils/utils.js +132 -132
- package/dist/validators/checkbox.d.ts +3 -3
- package/dist/validators/checkbox.d.ts.map +1 -1
- package/dist/validators/checkbox.js +12 -12
- package/dist/validators/color.d.ts +3 -3
- package/dist/validators/color.d.ts.map +1 -1
- package/dist/validators/color.js +7 -7
- package/dist/validators/date.d.ts +3 -3
- package/dist/validators/date.d.ts.map +1 -1
- package/dist/validators/date.js +5 -5
- package/dist/validators/document.d.ts +3 -3
- package/dist/validators/document.d.ts.map +1 -1
- package/dist/validators/document.js +57 -57
- package/dist/validators/index.d.ts +14 -14
- package/dist/validators/index.d.ts.map +1 -1
- package/dist/validators/index.js +14 -14
- package/dist/validators/map.d.ts +3 -3
- package/dist/validators/map.d.ts.map +1 -1
- package/dist/validators/map.js +5 -5
- package/dist/validators/number.d.ts +3 -3
- package/dist/validators/number.d.ts.map +1 -1
- package/dist/validators/number.js +20 -20
- package/dist/validators/password.d.ts +3 -3
- package/dist/validators/password.d.ts.map +1 -1
- package/dist/validators/password.js +11 -11
- package/dist/validators/photo.d.ts +3 -3
- package/dist/validators/photo.d.ts.map +1 -1
- package/dist/validators/photo.js +100 -100
- package/dist/validators/richText.d.ts +3 -3
- package/dist/validators/richText.d.ts.map +1 -1
- package/dist/validators/richText.js +8 -8
- package/dist/validators/select-multiple.d.ts +9 -9
- package/dist/validators/select-multiple.d.ts.map +1 -1
- package/dist/validators/select-multiple.js +20 -20
- package/dist/validators/select.d.ts +3 -3
- package/dist/validators/select.d.ts.map +1 -1
- package/dist/validators/select.js +5 -5
- package/dist/validators/text.d.ts +3 -3
- package/dist/validators/text.d.ts.map +1 -1
- package/dist/validators/text.js +7 -7
- package/dist/validators/textarea.d.ts +3 -3
- package/dist/validators/textarea.d.ts.map +1 -1
- package/dist/validators/textarea.js +7 -7
- package/dist/validators/video.d.ts +3 -3
- package/dist/validators/video.d.ts.map +1 -1
- package/dist/validators/video.js +57 -57
- package/package.json +2 -3
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
import { DbTableChecker } from
|
|
2
|
-
/**
|
|
3
|
-
* MySQL Table class
|
|
4
|
-
*/
|
|
5
|
-
export declare class MysqlTableChecker extends DbTableChecker {
|
|
6
|
-
static getColumns(tableName: string): Promise<string[]>;
|
|
7
|
-
static getExistingKeys(table: string): Promise<{
|
|
8
|
-
primaryKeys: string[];
|
|
9
|
-
uniqueKeys: {
|
|
10
|
-
name: string;
|
|
11
|
-
columns: string[];
|
|
12
|
-
}[];
|
|
13
|
-
indexKeys: {
|
|
14
|
-
name: string;
|
|
15
|
-
columns: string[];
|
|
16
|
-
}[];
|
|
17
|
-
foreignKeys: any;
|
|
18
|
-
fullTextKeys: {
|
|
19
|
-
name: string;
|
|
20
|
-
columns: string[];
|
|
21
|
-
}[];
|
|
22
|
-
} | undefined>;
|
|
23
|
-
static getExistingTableStructure(table: string): Promise<{
|
|
24
|
-
[key: string]: {
|
|
25
|
-
Field: string;
|
|
26
|
-
Type: string;
|
|
27
|
-
Null: string;
|
|
28
|
-
Key: string;
|
|
29
|
-
Default: string;
|
|
30
|
-
Extra: string;
|
|
31
|
-
};
|
|
32
|
-
} | null>;
|
|
33
|
-
}
|
|
1
|
+
import { DbTableChecker } from './DbTable.js';
|
|
2
|
+
/**
|
|
3
|
+
* MySQL Table class
|
|
4
|
+
*/
|
|
5
|
+
export declare class MysqlTableChecker extends DbTableChecker {
|
|
6
|
+
static getColumns(tableName: string): Promise<string[]>;
|
|
7
|
+
static getExistingKeys(table: string): Promise<{
|
|
8
|
+
primaryKeys: string[];
|
|
9
|
+
uniqueKeys: {
|
|
10
|
+
name: string;
|
|
11
|
+
columns: string[];
|
|
12
|
+
}[];
|
|
13
|
+
indexKeys: {
|
|
14
|
+
name: string;
|
|
15
|
+
columns: string[];
|
|
16
|
+
}[];
|
|
17
|
+
foreignKeys: any;
|
|
18
|
+
fullTextKeys: {
|
|
19
|
+
name: string;
|
|
20
|
+
columns: string[];
|
|
21
|
+
}[];
|
|
22
|
+
} | undefined>;
|
|
23
|
+
static getExistingTableStructure(table: string): Promise<{
|
|
24
|
+
[key: string]: {
|
|
25
|
+
Field: string;
|
|
26
|
+
Type: string;
|
|
27
|
+
Null: string;
|
|
28
|
+
Key: string;
|
|
29
|
+
Default: string;
|
|
30
|
+
Extra: string;
|
|
31
|
+
};
|
|
32
|
+
} | null>;
|
|
33
|
+
}
|
|
34
34
|
//# sourceMappingURL=MysqlTable.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MysqlTable.d.ts","sourceRoot":"","sources":["../../../../src/core/db/table-checker/MysqlTable.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"MysqlTable.d.ts","sourceRoot":"","sources":["../../../../src/core/db/table-checker/MysqlTable.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAG7C;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,cAAc;WACpC,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;WAkBhD,eAAe,CAAC,KAAK,EAAE,MAAM;;;kBAIR,MAAM;qBAAW,MAAM,EAAE;;;kBAC1B,MAAM;qBAAW,MAAM,EAAE;;;;kBACtB,MAAM;qBAAW,MAAM,EAAE;;;WA2DhD,yBAAyB,CAAC,KAAK,EAAE,MAAM;;mBAU7B,MAAM;kBACP,MAAM;kBACN,MAAM;iBACP,MAAM;qBACF,MAAM;mBACR,MAAM;;;CAahC"}
|
|
@@ -1,102 +1,102 @@
|
|
|
1
|
-
import { db } from
|
|
2
|
-
import { sql } from 'drizzle-orm';
|
|
3
|
-
import { DbTableChecker } from
|
|
4
|
-
import chalk from 'chalk';
|
|
5
|
-
/**
|
|
6
|
-
* MySQL Table class
|
|
7
|
-
*/
|
|
8
|
-
export class MysqlTableChecker extends DbTableChecker {
|
|
9
|
-
static async getColumns(tableName) {
|
|
1
|
+
import { db } from '../../../db/client.js';
|
|
2
|
+
import { sql } from 'drizzle-orm';
|
|
3
|
+
import { DbTableChecker } from './DbTable.js';
|
|
4
|
+
import chalk from 'chalk';
|
|
5
|
+
/**
|
|
6
|
+
* MySQL Table class
|
|
7
|
+
*/
|
|
8
|
+
export class MysqlTableChecker extends DbTableChecker {
|
|
9
|
+
static async getColumns(tableName) {
|
|
10
10
|
const statement = sql `
|
|
11
11
|
SELECT COLUMN_NAME
|
|
12
12
|
FROM information_schema.COLUMNS c
|
|
13
13
|
inner join information_schema.TABLES t ON t.TABLE_NAME = c.TABLE_NAME
|
|
14
|
-
WHERE t.TABLE_NAME = ${tableName}`;
|
|
15
|
-
const _cols = [];
|
|
16
|
-
const _res = await db.execute(statement);
|
|
17
|
-
// @ts-ignore
|
|
18
|
-
const _rows = _res[0];
|
|
19
|
-
_rows.map((row) => {
|
|
20
|
-
_cols.push(row.COLUMN_NAME);
|
|
21
|
-
});
|
|
22
|
-
return _cols;
|
|
23
|
-
}
|
|
24
|
-
static async getExistingKeys(table) {
|
|
25
|
-
try {
|
|
26
|
-
const [keys] = await db.execute(sql `SHOW KEYS FROM \`${sql.raw(table)}\``);
|
|
27
|
-
const primaryKeys = [];
|
|
28
|
-
const uniqueKeys = [];
|
|
29
|
-
const indexKeys = [];
|
|
30
|
-
const fullTextKeys = [];
|
|
31
|
-
const _uniqueKeyMap = {};
|
|
32
|
-
const _indexKeyMap = {};
|
|
33
|
-
const _fullTextKeyMap = {};
|
|
34
|
-
for (const key of keys) {
|
|
35
|
-
if (key.Key_name === 'PRIMARY') {
|
|
36
|
-
primaryKeys.push(key.Column_name);
|
|
37
|
-
}
|
|
38
|
-
else if (key.Non_unique === 0) {
|
|
39
|
-
if (!_uniqueKeyMap[key.Key_name]) {
|
|
40
|
-
_uniqueKeyMap[key.Key_name] = [];
|
|
41
|
-
}
|
|
42
|
-
_uniqueKeyMap[key.Key_name].push(key.Column_name);
|
|
43
|
-
}
|
|
44
|
-
else if (key.Index_type === 'FULLTEXT') {
|
|
45
|
-
if (!_fullTextKeyMap[key.Key_name]) {
|
|
46
|
-
_fullTextKeyMap[key.Key_name] = [];
|
|
47
|
-
}
|
|
48
|
-
_fullTextKeyMap[key.Key_name].push(key.Column_name);
|
|
49
|
-
}
|
|
50
|
-
else if (key.Non_unique === 1) {
|
|
51
|
-
if (!_indexKeyMap[key.Key_name]) {
|
|
52
|
-
_indexKeyMap[key.Key_name] = [];
|
|
53
|
-
}
|
|
54
|
-
_indexKeyMap[key.Key_name].push(key.Column_name);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
for (const key in _uniqueKeyMap) {
|
|
58
|
-
if (_uniqueKeyMap[key])
|
|
59
|
-
uniqueKeys.push({ name: key, columns: _uniqueKeyMap[key] });
|
|
60
|
-
}
|
|
61
|
-
for (const key in _indexKeyMap) {
|
|
62
|
-
if (_indexKeyMap[key])
|
|
63
|
-
indexKeys.push({ name: key, columns: _indexKeyMap[key] });
|
|
64
|
-
}
|
|
65
|
-
for (const key in _fullTextKeyMap) {
|
|
66
|
-
if (_fullTextKeyMap[key])
|
|
67
|
-
fullTextKeys.push({ name: key, columns: _fullTextKeyMap[key] });
|
|
68
|
-
}
|
|
69
|
-
// Foreign keys should be retrieved from information_schema
|
|
14
|
+
WHERE t.TABLE_NAME = ${tableName}`;
|
|
15
|
+
const _cols = [];
|
|
16
|
+
const _res = await db.execute(statement);
|
|
17
|
+
// @ts-ignore
|
|
18
|
+
const _rows = _res[0];
|
|
19
|
+
_rows.map((row) => {
|
|
20
|
+
_cols.push(row.COLUMN_NAME);
|
|
21
|
+
});
|
|
22
|
+
return _cols;
|
|
23
|
+
}
|
|
24
|
+
static async getExistingKeys(table) {
|
|
25
|
+
try {
|
|
26
|
+
const [keys] = await db.execute(sql `SHOW KEYS FROM \`${sql.raw(table)}\``);
|
|
27
|
+
const primaryKeys = [];
|
|
28
|
+
const uniqueKeys = [];
|
|
29
|
+
const indexKeys = [];
|
|
30
|
+
const fullTextKeys = [];
|
|
31
|
+
const _uniqueKeyMap = {};
|
|
32
|
+
const _indexKeyMap = {};
|
|
33
|
+
const _fullTextKeyMap = {};
|
|
34
|
+
for (const key of keys) {
|
|
35
|
+
if (key.Key_name === 'PRIMARY') {
|
|
36
|
+
primaryKeys.push(key.Column_name);
|
|
37
|
+
}
|
|
38
|
+
else if (key.Non_unique === 0) {
|
|
39
|
+
if (!_uniqueKeyMap[key.Key_name]) {
|
|
40
|
+
_uniqueKeyMap[key.Key_name] = [];
|
|
41
|
+
}
|
|
42
|
+
_uniqueKeyMap[key.Key_name].push(key.Column_name);
|
|
43
|
+
}
|
|
44
|
+
else if (key.Index_type === 'FULLTEXT') {
|
|
45
|
+
if (!_fullTextKeyMap[key.Key_name]) {
|
|
46
|
+
_fullTextKeyMap[key.Key_name] = [];
|
|
47
|
+
}
|
|
48
|
+
_fullTextKeyMap[key.Key_name].push(key.Column_name);
|
|
49
|
+
}
|
|
50
|
+
else if (key.Non_unique === 1) {
|
|
51
|
+
if (!_indexKeyMap[key.Key_name]) {
|
|
52
|
+
_indexKeyMap[key.Key_name] = [];
|
|
53
|
+
}
|
|
54
|
+
_indexKeyMap[key.Key_name].push(key.Column_name);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
for (const key in _uniqueKeyMap) {
|
|
58
|
+
if (_uniqueKeyMap[key])
|
|
59
|
+
uniqueKeys.push({ name: key, columns: _uniqueKeyMap[key] });
|
|
60
|
+
}
|
|
61
|
+
for (const key in _indexKeyMap) {
|
|
62
|
+
if (_indexKeyMap[key])
|
|
63
|
+
indexKeys.push({ name: key, columns: _indexKeyMap[key] });
|
|
64
|
+
}
|
|
65
|
+
for (const key in _fullTextKeyMap) {
|
|
66
|
+
if (_fullTextKeyMap[key])
|
|
67
|
+
fullTextKeys.push({ name: key, columns: _fullTextKeyMap[key] });
|
|
68
|
+
}
|
|
69
|
+
// Foreign keys should be retrieved from information_schema
|
|
70
70
|
const [foreignKeys] = await db.execute(sql `
|
|
71
71
|
SELECT COLUMN_NAME, REFERENCED_TABLE_NAME, REFERENCED_COLUMN_NAME
|
|
72
72
|
FROM information_schema.KEY_COLUMN_USAGE
|
|
73
73
|
WHERE TABLE_NAME = ${table} AND CONSTRAINT_NAME != 'PRIMARY' AND REFERENCED_TABLE_NAME IS NOT NULL;
|
|
74
|
-
`);
|
|
75
|
-
return { primaryKeys, uniqueKeys, indexKeys, foreignKeys, fullTextKeys };
|
|
76
|
-
}
|
|
77
|
-
catch (error) {
|
|
78
|
-
if (error.code === 'ER_NO_SUCH_TABLE') {
|
|
79
|
-
return undefined;
|
|
80
|
-
}
|
|
81
|
-
else {
|
|
82
|
-
console.error(chalk.red(` - Error retrieving keys for table ${table}:`, error));
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
static async getExistingTableStructure(table) {
|
|
87
|
-
try {
|
|
88
|
-
/**
|
|
89
|
-
* Get the columns from the table except the auto-generated `created_at`, `updated_at`, `created_by`, and `updated_by` fields
|
|
90
|
-
*/
|
|
91
|
-
const [rows] = await db.execute(sql `SHOW COLUMNS FROM \`${sql.raw(table)}\` WHERE Field NOT IN ('created_at', 'updated_at', 'created_by', 'updated_by')`);
|
|
92
|
-
const tableStructure = {};
|
|
93
|
-
for (const row of rows) {
|
|
94
|
-
tableStructure[row.Field] = row;
|
|
95
|
-
}
|
|
96
|
-
return tableStructure;
|
|
97
|
-
}
|
|
98
|
-
catch (error) {
|
|
99
|
-
return null;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
}
|
|
74
|
+
`);
|
|
75
|
+
return { primaryKeys, uniqueKeys, indexKeys, foreignKeys, fullTextKeys };
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
if (error.code === 'ER_NO_SUCH_TABLE') {
|
|
79
|
+
return undefined;
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
console.error(chalk.red(` - Error retrieving keys for table ${table}:`, error));
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
static async getExistingTableStructure(table) {
|
|
87
|
+
try {
|
|
88
|
+
/**
|
|
89
|
+
* Get the columns from the table except the auto-generated `created_at`, `updated_at`, `created_by`, and `updated_by` fields
|
|
90
|
+
*/
|
|
91
|
+
const [rows] = await db.execute(sql `SHOW COLUMNS FROM \`${sql.raw(table)}\` WHERE Field NOT IN ('created_at', 'updated_at', 'created_by', 'updated_by')`);
|
|
92
|
+
const tableStructure = {};
|
|
93
|
+
for (const row of rows) {
|
|
94
|
+
tableStructure[row.Field] = row;
|
|
95
|
+
}
|
|
96
|
+
return tableStructure;
|
|
97
|
+
}
|
|
98
|
+
catch (error) {
|
|
99
|
+
return null;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from
|
|
1
|
+
export * from './MysqlTable.js';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/db/table-checker/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/db/table-checker/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from
|
|
1
|
+
export * from './MysqlTable.js';
|
|
@@ -1,124 +1,124 @@
|
|
|
1
|
-
import type { Section } from
|
|
2
|
-
import type { Session } from
|
|
3
|
-
type ConstructorType = {
|
|
4
|
-
type: 'new';
|
|
5
|
-
sectionName: string;
|
|
6
|
-
session: Session;
|
|
7
|
-
itemId?: never;
|
|
8
|
-
} | {
|
|
9
|
-
type: 'edit';
|
|
10
|
-
sectionName: string;
|
|
11
|
-
session: Session;
|
|
12
|
-
itemId: number | string;
|
|
13
|
-
};
|
|
14
|
-
export declare class FieldFactory {
|
|
15
|
-
private readonly session;
|
|
16
|
-
private _values;
|
|
17
|
-
private itemId;
|
|
18
|
-
private _error;
|
|
19
|
-
private _errorMessage;
|
|
20
|
-
protected type: 'new' | 'edit';
|
|
21
|
-
protected sectionName: string;
|
|
22
|
-
private _sectionInfo;
|
|
23
|
-
/**
|
|
24
|
-
* Default order value for items without explicit order.
|
|
25
|
-
* Ensures items without order come after explicitly ordered items.
|
|
26
|
-
* Typical order values: 0-15, with occasional values up to 1000.
|
|
27
|
-
*/
|
|
28
|
-
private static readonly DEFAULT_ORDER;
|
|
29
|
-
/**
|
|
30
|
-
* Constructor
|
|
31
|
-
*/
|
|
32
|
-
constructor({ type, sectionName, session, itemId }: ConstructorType);
|
|
33
|
-
/**
|
|
34
|
-
* Must be called after the constructor
|
|
35
|
-
*/
|
|
36
|
-
initialize(): Promise<void>;
|
|
37
|
-
private getFieldValue;
|
|
38
|
-
private initializeFieldValues;
|
|
39
|
-
/**
|
|
40
|
-
* Gets the section info and assigns it to the `sectionInfo` property
|
|
41
|
-
* @param session
|
|
42
|
-
* @private
|
|
43
|
-
*/
|
|
44
|
-
private initializeSectionInfo;
|
|
45
|
-
/**
|
|
46
|
-
* Get the section info from the `sectionsTable` table
|
|
47
|
-
* @param session
|
|
48
|
-
* @private
|
|
49
|
-
*/
|
|
50
|
-
private getSectionInfo;
|
|
51
|
-
/**
|
|
52
|
-
* Prepare a field for use
|
|
53
|
-
* Fields are already instances (resolved in Section constructor), so we just need to set values
|
|
54
|
-
* @param field
|
|
55
|
-
*/
|
|
56
|
-
private prepareField;
|
|
57
|
-
private addPermissionField;
|
|
58
|
-
/**
|
|
59
|
-
* Generate the fields
|
|
60
|
-
*/
|
|
61
|
-
generateFields(): Promise<void>;
|
|
62
|
-
/**
|
|
63
|
-
* Sort the fields.
|
|
64
|
-
* This function sorts the conditional fields into their respective fields.
|
|
65
|
-
*/
|
|
66
|
-
private sortFields;
|
|
67
|
-
/**
|
|
68
|
-
* Sort fields by their order property, preserving original position for fields without order.
|
|
69
|
-
*
|
|
70
|
-
* Sorting behavior:
|
|
71
|
-
* 1. Fields with explicit `order` values are sorted by that value (ascending)
|
|
72
|
-
* 2. Fields without `order` maintain their original array position (stable sort)
|
|
73
|
-
* 3. Fields with the same `order` value maintain their relative positions (stable sort)
|
|
74
|
-
*
|
|
75
|
-
* This leverages JavaScript's stable Array.sort() (ES2019+) for optimal performance.
|
|
76
|
-
* Note: This mutates the input array for performance.
|
|
77
|
-
*
|
|
78
|
-
* @param fields - Array of fields to sort (will be mutated)
|
|
79
|
-
* @returns The sorted array (same reference as input)
|
|
80
|
-
* @private
|
|
81
|
-
*/
|
|
82
|
-
private sortFieldsByOrder;
|
|
83
|
-
/**
|
|
84
|
-
* Sort groups by their groupOrder property, preserving original position for groups without order.
|
|
85
|
-
*
|
|
86
|
-
* Sorting behavior:
|
|
87
|
-
* 1. Groups with explicit `groupOrder` values are sorted by that value (ascending)
|
|
88
|
-
* 2. Groups without `groupOrder` maintain their original array position (stable sort)
|
|
89
|
-
* 3. Groups with the same `groupOrder` value maintain their relative positions (stable sort)
|
|
90
|
-
*
|
|
91
|
-
* This leverages JavaScript's stable Array.sort() (ES2019+) for optimal performance.
|
|
92
|
-
* Note: This mutates the input array for performance.
|
|
93
|
-
* Note: groupOrder is normalized at creation time, so no nullish coalescing needed here.
|
|
94
|
-
*
|
|
95
|
-
* @param groups - Array of groups to sort (will be mutated)
|
|
96
|
-
* @returns The sorted array (same reference as input)
|
|
97
|
-
* @private
|
|
98
|
-
*/
|
|
99
|
-
private sortGroupsByOrder;
|
|
100
|
-
/**
|
|
101
|
-
* Get field groups with filtered and sorted fields.
|
|
102
|
-
* Leverages the pre-built fieldGroups from the Section class for better performance.
|
|
103
|
-
*/
|
|
104
|
-
getGroupedFields(): {
|
|
105
|
-
groupId: number;
|
|
106
|
-
groupTitle: string;
|
|
107
|
-
groupOrder: number;
|
|
108
|
-
inputs: {
|
|
109
|
-
type: import("../types.js").FieldType;
|
|
110
|
-
name: string;
|
|
111
|
-
label: string;
|
|
112
|
-
required: boolean;
|
|
113
|
-
conditionalFields: import("../types.js").ConditionalField[];
|
|
114
|
-
readonly: boolean;
|
|
115
|
-
defaultValue: any;
|
|
116
|
-
value: any;
|
|
117
|
-
}[];
|
|
118
|
-
}[] | undefined;
|
|
119
|
-
get sectionInfo(): Section | undefined;
|
|
120
|
-
get errorMessage(): string;
|
|
121
|
-
get error(): boolean;
|
|
122
|
-
}
|
|
123
|
-
export {};
|
|
1
|
+
import type { Section } from '../sections/index.js';
|
|
2
|
+
import type { Session } from '../../auth/index.js';
|
|
3
|
+
type ConstructorType = {
|
|
4
|
+
type: 'new';
|
|
5
|
+
sectionName: string;
|
|
6
|
+
session: Session;
|
|
7
|
+
itemId?: never;
|
|
8
|
+
} | {
|
|
9
|
+
type: 'edit';
|
|
10
|
+
sectionName: string;
|
|
11
|
+
session: Session;
|
|
12
|
+
itemId: number | string;
|
|
13
|
+
};
|
|
14
|
+
export declare class FieldFactory {
|
|
15
|
+
private readonly session;
|
|
16
|
+
private _values;
|
|
17
|
+
private itemId;
|
|
18
|
+
private _error;
|
|
19
|
+
private _errorMessage;
|
|
20
|
+
protected type: 'new' | 'edit';
|
|
21
|
+
protected sectionName: string;
|
|
22
|
+
private _sectionInfo;
|
|
23
|
+
/**
|
|
24
|
+
* Default order value for items without explicit order.
|
|
25
|
+
* Ensures items without order come after explicitly ordered items.
|
|
26
|
+
* Typical order values: 0-15, with occasional values up to 1000.
|
|
27
|
+
*/
|
|
28
|
+
private static readonly DEFAULT_ORDER;
|
|
29
|
+
/**
|
|
30
|
+
* Constructor
|
|
31
|
+
*/
|
|
32
|
+
constructor({ type, sectionName, session, itemId }: ConstructorType);
|
|
33
|
+
/**
|
|
34
|
+
* Must be called after the constructor
|
|
35
|
+
*/
|
|
36
|
+
initialize(): Promise<void>;
|
|
37
|
+
private getFieldValue;
|
|
38
|
+
private initializeFieldValues;
|
|
39
|
+
/**
|
|
40
|
+
* Gets the section info and assigns it to the `sectionInfo` property
|
|
41
|
+
* @param session
|
|
42
|
+
* @private
|
|
43
|
+
*/
|
|
44
|
+
private initializeSectionInfo;
|
|
45
|
+
/**
|
|
46
|
+
* Get the section info from the `sectionsTable` table
|
|
47
|
+
* @param session
|
|
48
|
+
* @private
|
|
49
|
+
*/
|
|
50
|
+
private getSectionInfo;
|
|
51
|
+
/**
|
|
52
|
+
* Prepare a field for use
|
|
53
|
+
* Fields are already instances (resolved in Section constructor), so we just need to set values
|
|
54
|
+
* @param field
|
|
55
|
+
*/
|
|
56
|
+
private prepareField;
|
|
57
|
+
private addPermissionField;
|
|
58
|
+
/**
|
|
59
|
+
* Generate the fields
|
|
60
|
+
*/
|
|
61
|
+
generateFields(): Promise<void>;
|
|
62
|
+
/**
|
|
63
|
+
* Sort the fields.
|
|
64
|
+
* This function sorts the conditional fields into their respective fields.
|
|
65
|
+
*/
|
|
66
|
+
private sortFields;
|
|
67
|
+
/**
|
|
68
|
+
* Sort fields by their order property, preserving original position for fields without order.
|
|
69
|
+
*
|
|
70
|
+
* Sorting behavior:
|
|
71
|
+
* 1. Fields with explicit `order` values are sorted by that value (ascending)
|
|
72
|
+
* 2. Fields without `order` maintain their original array position (stable sort)
|
|
73
|
+
* 3. Fields with the same `order` value maintain their relative positions (stable sort)
|
|
74
|
+
*
|
|
75
|
+
* This leverages JavaScript's stable Array.sort() (ES2019+) for optimal performance.
|
|
76
|
+
* Note: This mutates the input array for performance.
|
|
77
|
+
*
|
|
78
|
+
* @param fields - Array of fields to sort (will be mutated)
|
|
79
|
+
* @returns The sorted array (same reference as input)
|
|
80
|
+
* @private
|
|
81
|
+
*/
|
|
82
|
+
private sortFieldsByOrder;
|
|
83
|
+
/**
|
|
84
|
+
* Sort groups by their groupOrder property, preserving original position for groups without order.
|
|
85
|
+
*
|
|
86
|
+
* Sorting behavior:
|
|
87
|
+
* 1. Groups with explicit `groupOrder` values are sorted by that value (ascending)
|
|
88
|
+
* 2. Groups without `groupOrder` maintain their original array position (stable sort)
|
|
89
|
+
* 3. Groups with the same `groupOrder` value maintain their relative positions (stable sort)
|
|
90
|
+
*
|
|
91
|
+
* This leverages JavaScript's stable Array.sort() (ES2019+) for optimal performance.
|
|
92
|
+
* Note: This mutates the input array for performance.
|
|
93
|
+
* Note: groupOrder is normalized at creation time, so no nullish coalescing needed here.
|
|
94
|
+
*
|
|
95
|
+
* @param groups - Array of groups to sort (will be mutated)
|
|
96
|
+
* @returns The sorted array (same reference as input)
|
|
97
|
+
* @private
|
|
98
|
+
*/
|
|
99
|
+
private sortGroupsByOrder;
|
|
100
|
+
/**
|
|
101
|
+
* Get field groups with filtered and sorted fields.
|
|
102
|
+
* Leverages the pre-built fieldGroups from the Section class for better performance.
|
|
103
|
+
*/
|
|
104
|
+
getGroupedFields(): {
|
|
105
|
+
groupId: number;
|
|
106
|
+
groupTitle: string;
|
|
107
|
+
groupOrder: number;
|
|
108
|
+
inputs: {
|
|
109
|
+
type: import("../types/index.js").FieldType;
|
|
110
|
+
name: string;
|
|
111
|
+
label: string;
|
|
112
|
+
required: boolean;
|
|
113
|
+
conditionalFields: import("../types/index.js").ConditionalField[];
|
|
114
|
+
readonly: boolean;
|
|
115
|
+
defaultValue: any;
|
|
116
|
+
value: any;
|
|
117
|
+
}[];
|
|
118
|
+
}[] | undefined;
|
|
119
|
+
get sectionInfo(): Section | undefined;
|
|
120
|
+
get errorMessage(): string;
|
|
121
|
+
get error(): boolean;
|
|
122
|
+
}
|
|
123
|
+
export {};
|
|
124
124
|
//# sourceMappingURL=FieldFactory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FieldFactory.d.ts","sourceRoot":"","sources":["../../../src/core/factories/FieldFactory.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"FieldFactory.d.ts","sourceRoot":"","sources":["../../../src/core/factories/FieldFactory.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAGnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAIlD,KAAK,eAAe,GACd;IACI,IAAI,EAAE,KAAK,CAAA;IACX,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,CAAC,EAAE,KAAK,CAAA;CACjB,GACD;IACI,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;CAC1B,CAAA;AAEP,qBAAa,YAAY;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,MAAM,CAAyC;IACvD,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,aAAa,CAAa;IAClC,SAAS,CAAC,IAAI,EAAE,KAAK,GAAG,MAAM,CAAA;IAC9B,SAAS,CAAC,WAAW,EAAE,MAAM,CAAA;IAC7B,OAAO,CAAC,YAAY,CAA4B;IAGhD;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAY;IAEjD;;OAEG;gBACS,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,eAAe;IASnE;;OAEG;IACU,UAAU;YAUT,aAAa;YASb,qBAAqB;IAkEnC;;;;OAIG;YACW,qBAAqB;IAuCnC;;;;OAIG;YACW,cAAc;IAuB5B;;;;OAIG;YACW,YAAY;IAgB1B,OAAO,CAAC,kBAAkB;IAa1B;;OAEG;IACU,cAAc;IAqB3B;;;OAGG;IACH,OAAO,CAAC,UAAU;IA4ElB;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,iBAAiB;IAMzB;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,iBAAiB;IAOzB;;;OAGG;IACI,gBAAgB;;;;;;;;;;;;;;;IAmEvB,IAAI,WAAW,IAAI,OAAO,GAAG,SAAS,CAErC;IACD,IAAI,YAAY,IAAI,MAAM,CAEzB;IACD,IAAI,KAAK,IAAI,OAAO,CAEnB;CACJ"}
|