@hedhog/admin 0.0.6 → 0.0.8
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/admin.module.d.ts.map +1 -1
- package/dist/admin.module.js +1 -0
- package/dist/admin.module.js.map +1 -1
- package/dist/permission/guards/permission.guard.d.ts +1 -1
- package/dist/permission/guards/permission.guard.d.ts.map +1 -1
- package/dist/permission/guards/permission.guard.js +4 -0
- package/dist/permission/guards/permission.guard.js.map +1 -1
- package/package.json +1 -1
- package/src/migrations/migrate-04.ts +1 -536
- package/src/migrations/migrate-05.ts +48 -0
- package/src/migrations/migrate-06.ts +71 -0
- package/src/migrations/migrate-07.ts +54 -0
- package/src/migrations/migrate-08.ts +121 -0
- package/src/migrations/migrate-09.ts +55 -0
- package/src/migrations/migrate-10.ts +69 -0
- package/src/migrations/migrate-11.ts +91 -0
- package/src/migrations/migrate-12.ts +129 -0
- package/dist/auth/migrations/index.d.ts +0 -6
- package/dist/auth/migrations/index.d.ts.map +0 -1
- package/dist/auth/migrations/index.js +0 -121
- package/dist/auth/migrations/index.js.map +0 -1
- package/dist/menu/migrations/index.d.ts +0 -7
- package/dist/menu/migrations/index.d.ts.map +0 -1
- package/dist/menu/migrations/index.js +0 -101
- package/dist/menu/migrations/index.js.map +0 -1
- package/dist/permission/migrations/index.d.ts +0 -6
- package/dist/permission/migrations/index.d.ts.map +0 -1
- package/dist/permission/migrations/index.js +0 -520
- package/dist/permission/migrations/index.js.map +0 -1
- package/dist/screen/migrations/index.d.ts +0 -6
- package/dist/screen/migrations/index.d.ts.map +0 -1
- package/dist/screen/migrations/index.js +0 -40
- package/dist/screen/migrations/index.js.map +0 -1
- package/dist/user/user.service.spec.d.ts +0 -2
- package/dist/user/user.service.spec.d.ts.map +0 -1
- package/dist/user/user.service.spec.js +0 -17
- package/dist/user/user.service.spec.js.map +0 -1
@@ -1,121 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
-
if (k2 === undefined) k2 = k;
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
-
}
|
8
|
-
Object.defineProperty(o, k2, desc);
|
9
|
-
}) : (function(o, m, k, k2) {
|
10
|
-
if (k2 === undefined) k2 = k;
|
11
|
-
o[k2] = m[k];
|
12
|
-
}));
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
15
|
-
}) : function(o, v) {
|
16
|
-
o["default"] = v;
|
17
|
-
});
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
19
|
-
if (mod && mod.__esModule) return mod;
|
20
|
-
var result = {};
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
22
|
-
__setModuleDefault(result, mod);
|
23
|
-
return result;
|
24
|
-
};
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
26
|
-
exports.Migrate = void 0;
|
27
|
-
const typeorm_1 = require("typeorm");
|
28
|
-
const utils_1 = require("@hedhog/utils");
|
29
|
-
const bcrypt = __importStar(require("bcrypt"));
|
30
|
-
class Migrate {
|
31
|
-
async up(queryRunner) {
|
32
|
-
await queryRunner.createTable(new typeorm_1.Table({
|
33
|
-
name: 'multifactors',
|
34
|
-
columns: [
|
35
|
-
(0, utils_1.idColumn)(),
|
36
|
-
{
|
37
|
-
name: 'name',
|
38
|
-
type: 'varchar',
|
39
|
-
},
|
40
|
-
(0, utils_1.timestampColumn)(),
|
41
|
-
(0, utils_1.timestampColumn)('updated_at'),
|
42
|
-
],
|
43
|
-
}));
|
44
|
-
await queryRunner.manager
|
45
|
-
.createQueryBuilder()
|
46
|
-
.insert()
|
47
|
-
.into('multifactors', ['name'])
|
48
|
-
.values([
|
49
|
-
{
|
50
|
-
name: 'Email',
|
51
|
-
},
|
52
|
-
{
|
53
|
-
name: 'Applicativo',
|
54
|
-
},
|
55
|
-
])
|
56
|
-
.execute();
|
57
|
-
await queryRunner.createTable(new typeorm_1.Table({
|
58
|
-
name: 'users',
|
59
|
-
columns: [
|
60
|
-
(0, utils_1.idColumn)(),
|
61
|
-
{
|
62
|
-
name: 'name',
|
63
|
-
type: 'varchar',
|
64
|
-
},
|
65
|
-
{
|
66
|
-
name: 'email',
|
67
|
-
type: 'varchar',
|
68
|
-
},
|
69
|
-
{
|
70
|
-
name: 'password',
|
71
|
-
type: 'varchar',
|
72
|
-
},
|
73
|
-
{
|
74
|
-
name: 'multifactor_id',
|
75
|
-
type: 'int',
|
76
|
-
isNullable: true,
|
77
|
-
unsigned: true,
|
78
|
-
},
|
79
|
-
{
|
80
|
-
name: 'code',
|
81
|
-
type: 'varchar',
|
82
|
-
isNullable: true,
|
83
|
-
},
|
84
|
-
(0, utils_1.timestampColumn)(),
|
85
|
-
(0, utils_1.timestampColumn)('updated_at'),
|
86
|
-
],
|
87
|
-
}));
|
88
|
-
await queryRunner.createForeignKeys('users', [
|
89
|
-
new typeorm_1.TableForeignKey({
|
90
|
-
columnNames: ['multifactor_id'],
|
91
|
-
referencedColumnNames: ['id'],
|
92
|
-
referencedTableName: 'multifactors',
|
93
|
-
name: 'fk_users_to_multifactors_on_multifactor_id',
|
94
|
-
onDelete: 'Cascade',
|
95
|
-
}),
|
96
|
-
]);
|
97
|
-
await queryRunner.manager
|
98
|
-
.createQueryBuilder()
|
99
|
-
.insert()
|
100
|
-
.into('users', ['name', 'email', 'password'])
|
101
|
-
.values([
|
102
|
-
{
|
103
|
-
name: 'Superuser',
|
104
|
-
email: 'root@hedhog.com',
|
105
|
-
password: await bcrypt.hash(`hedhog`, 12),
|
106
|
-
},
|
107
|
-
{
|
108
|
-
name: 'User',
|
109
|
-
email: 'user@hedhog.com',
|
110
|
-
password: await bcrypt.hash(`hedhog`, 12),
|
111
|
-
},
|
112
|
-
])
|
113
|
-
.execute();
|
114
|
-
}
|
115
|
-
async down(queryRunner) {
|
116
|
-
await queryRunner.dropTable('multifactors');
|
117
|
-
await queryRunner.dropTable('users');
|
118
|
-
}
|
119
|
-
}
|
120
|
-
exports.Migrate = Migrate;
|
121
|
-
//# sourceMappingURL=index.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/auth/migrations/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAKiB;AACjB,yCAA0D;AAC1D,+CAAiC;AAEjC,MAAa,OAAO;IAClB,KAAK,CAAC,EAAE,CAAC,WAAwB;QAC/B,MAAM,WAAW,CAAC,WAAW,CAC3B,IAAI,eAAK,CAAC;YACR,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE;gBACP,IAAA,gBAAQ,GAAE;gBACV;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,SAAS;iBAChB;gBACD,IAAA,uBAAe,GAAE;gBACjB,IAAA,uBAAe,EAAC,YAAY,CAAC;aAC9B;SACF,CAAC,CACH,CAAC;QAEF,MAAM,WAAW,CAAC,OAAO;aACtB,kBAAkB,EAAE;aACpB,MAAM,EAAE;aACR,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,CAAC;aAC9B,MAAM,CAAC;YACN;gBACE,IAAI,EAAE,OAAO;aACd;YACD;gBACE,IAAI,EAAE,aAAa;aACpB;SACF,CAAC;aACD,OAAO,EAAE,CAAC;QAEb,MAAM,WAAW,CAAC,WAAW,CAC3B,IAAI,eAAK,CAAC;YACR,IAAI,EAAE,OAAO;YACb,OAAO,EAAE;gBACP,IAAA,gBAAQ,GAAE;gBACV;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,SAAS;iBAChB;gBACD;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,SAAS;iBAChB;gBACD;oBACE,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,SAAS;iBAChB;gBACD;oBACE,IAAI,EAAE,gBAAgB;oBACtB,IAAI,EAAE,KAAK;oBACX,UAAU,EAAE,IAAI;oBAChB,QAAQ,EAAE,IAAI;iBACf;gBACD;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,SAAS;oBACf,UAAU,EAAE,IAAI;iBACjB;gBACD,IAAA,uBAAe,GAAE;gBACjB,IAAA,uBAAe,EAAC,YAAY,CAAC;aAC9B;SACF,CAAC,CACH,CAAC;QAEF,MAAM,WAAW,CAAC,iBAAiB,CAAC,OAAO,EAAE;YAC3C,IAAI,yBAAe,CAAC;gBAClB,WAAW,EAAE,CAAC,gBAAgB,CAAC;gBAC/B,qBAAqB,EAAE,CAAC,IAAI,CAAC;gBAC7B,mBAAmB,EAAE,cAAc;gBACnC,IAAI,EAAE,4CAA4C;gBAClD,QAAQ,EAAE,SAAS;aACpB,CAAC;SACH,CAAC,CAAC;QAEH,MAAM,WAAW,CAAC,OAAO;aACtB,kBAAkB,EAAE;aACpB,MAAM,EAAE;aACR,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;aAC5C,MAAM,CAAC;YACN;gBACE,IAAI,EAAE,WAAW;gBACjB,KAAK,EAAE,iBAAiB;gBACxB,QAAQ,EAAE,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;aAC1C;YACD;gBACE,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,iBAAiB;gBACxB,QAAQ,EAAE,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;aAC1C;SACF,CAAC;aACD,OAAO,EAAE,CAAC;IACf,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,WAAwB;QACjC,MAAM,WAAW,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAC5C,MAAM,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;CACF;AAjGD,0BAiGC"}
|
@@ -1,7 +0,0 @@
|
|
1
|
-
import { MigrationInterface, QueryRunner } from 'typeorm';
|
2
|
-
export declare class Migrate implements MigrationInterface {
|
3
|
-
up(queryRunner: QueryRunner): Promise<void>;
|
4
|
-
private insertMenu;
|
5
|
-
down(queryRunner: QueryRunner): Promise<void>;
|
6
|
-
}
|
7
|
-
//# sourceMappingURL=index.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/menu/migrations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,WAAW,EAGZ,MAAM,SAAS,CAAC;AAGjB,qBAAa,OAAQ,YAAW,kBAAkB;IACnC,EAAE,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;YA0H1C,UAAU;IAyBX,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAI3D"}
|
@@ -1,101 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.Migrate = void 0;
|
4
|
-
const typeorm_1 = require("typeorm");
|
5
|
-
const utils_1 = require("@hedhog/utils");
|
6
|
-
class Migrate {
|
7
|
-
async up(queryRunner) {
|
8
|
-
await queryRunner.createTable(new typeorm_1.Table({
|
9
|
-
name: 'menus',
|
10
|
-
columns: [
|
11
|
-
(0, utils_1.idColumn)(),
|
12
|
-
{
|
13
|
-
name: 'name',
|
14
|
-
type: 'varchar',
|
15
|
-
},
|
16
|
-
{
|
17
|
-
name: 'url',
|
18
|
-
type: 'varchar',
|
19
|
-
isNullable: true,
|
20
|
-
},
|
21
|
-
{
|
22
|
-
name: 'order',
|
23
|
-
type: 'int',
|
24
|
-
default: 0,
|
25
|
-
unsigned: true,
|
26
|
-
},
|
27
|
-
{
|
28
|
-
name: 'menu_id',
|
29
|
-
type: 'int',
|
30
|
-
isNullable: true,
|
31
|
-
unsigned: true,
|
32
|
-
},
|
33
|
-
{
|
34
|
-
name: 'icon',
|
35
|
-
type: 'varchar',
|
36
|
-
isNullable: true,
|
37
|
-
},
|
38
|
-
(0, utils_1.timestampColumn)(),
|
39
|
-
(0, utils_1.timestampColumn)('updated_at'),
|
40
|
-
],
|
41
|
-
}));
|
42
|
-
await queryRunner.createTable(new typeorm_1.Table({
|
43
|
-
name: 'menu_screens',
|
44
|
-
columns: [
|
45
|
-
{
|
46
|
-
name: 'menu_id',
|
47
|
-
type: 'int',
|
48
|
-
isPrimary: true,
|
49
|
-
unsigned: true,
|
50
|
-
},
|
51
|
-
{
|
52
|
-
name: 'screen_id',
|
53
|
-
type: 'int',
|
54
|
-
isPrimary: true,
|
55
|
-
unsigned: true,
|
56
|
-
},
|
57
|
-
],
|
58
|
-
}));
|
59
|
-
await queryRunner.createForeignKey('menu_screens', new typeorm_1.TableForeignKey({
|
60
|
-
columnNames: ['menu_id'],
|
61
|
-
referencedColumnNames: ['id'],
|
62
|
-
referencedTableName: 'menus',
|
63
|
-
onDelete: 'CASCADE',
|
64
|
-
}));
|
65
|
-
await queryRunner.createForeignKey('menu_screens', new typeorm_1.TableForeignKey({
|
66
|
-
columnNames: ['screen_id'],
|
67
|
-
referencedColumnNames: ['id'],
|
68
|
-
referencedTableName: 'screens',
|
69
|
-
onDelete: 'CASCADE',
|
70
|
-
}));
|
71
|
-
//System Populating
|
72
|
-
await this.insertMenu(queryRunner, 'Dashboard', '/', 0, null, 'dashboard');
|
73
|
-
const managementId = await this.insertMenu(queryRunner, 'Management', null, 1, null, 'settings');
|
74
|
-
await this.insertMenu(queryRunner, 'Users', '/management/users', 0, managementId, 'users');
|
75
|
-
await this.insertMenu(queryRunner, 'Roles', '/management/roles', 1, managementId, 'circles');
|
76
|
-
await this.insertMenu(queryRunner, 'Screens', '/management/screens', 2, managementId, 'monitor');
|
77
|
-
await this.insertMenu(queryRunner, 'Menus', '/management/menus', 3, managementId, 'menu');
|
78
|
-
}
|
79
|
-
async insertMenu(queryRunner, name, url, order, menuId, icon) {
|
80
|
-
const result = await queryRunner.manager
|
81
|
-
.createQueryBuilder()
|
82
|
-
.insert()
|
83
|
-
.into('menus')
|
84
|
-
.values({
|
85
|
-
name,
|
86
|
-
url,
|
87
|
-
order,
|
88
|
-
menu_id: menuId,
|
89
|
-
icon,
|
90
|
-
})
|
91
|
-
.returning('id')
|
92
|
-
.execute();
|
93
|
-
return result.raw[0].id;
|
94
|
-
}
|
95
|
-
async down(queryRunner) {
|
96
|
-
await queryRunner.dropTable('menu_screens');
|
97
|
-
await queryRunner.dropTable('menus');
|
98
|
-
}
|
99
|
-
}
|
100
|
-
exports.Migrate = Migrate;
|
101
|
-
//# sourceMappingURL=index.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/menu/migrations/index.ts"],"names":[],"mappings":"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"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/permission/migrations/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,kBAAkB,EAClB,WAAW,EAIZ,MAAM,SAAS,CAAC;AAEjB,qBAAa,OAAQ,YAAW,kBAAkB;IAC1C,EAAE,CAAC,WAAW,EAAE,WAAW;IAqhB3B,IAAI,CAAC,WAAW,EAAE,WAAW;CAsBpC"}
|