@bee.js/node 0.0.37 → 0.0.41

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/index.js CHANGED
@@ -1,15 +1,15 @@
1
- module.exports = {
2
- load: require('./lib/beeHive/load'),
3
- create: require('./lib/beeHive/create'),
4
- start: require('./lib/beeHive/start'),
5
- routes: require('./lib/beeHive/routes'),
6
- route: require('./lib/WEB/route'),
7
- freeRoute: require('./lib/WEB/freeRoute'),
8
- request: require('./beeRequest'),
9
- hive: require('./beehive'),
10
- tools: require('./tools/beeTools'),
11
- security: require('./security'),
12
- services: require('./services'),
13
- //scheduler: require('./security'), //TODO
14
- status: (req, res)=>res.status(200).send(`${global.configs.name || 'Bee.js'} running version: ${global.configs.version}`)
1
+ module.exports = {
2
+ load: require('./lib/beeHive/load'),
3
+ create: require('./lib/beeHive/create'),
4
+ start: require('./lib/beeHive/start'),
5
+ routes: require('./lib/beeHive/routes'),
6
+ route: require('./lib/WEB/route'),
7
+ freeRoute: require('./lib/WEB/freeRoute'),
8
+ request: require('./beeRequest'),
9
+ hive: require('./beehive'),
10
+ tools: require('./tools/beeTools'),
11
+ security: require('./security'),
12
+ services: require('./services'),
13
+ //scheduler: require('./security'), //TODO
14
+ status: (req, res)=>res.status(200).send(`${global.configs.name || 'Bee.js'} running version: ${global.configs.version}`)
15
15
  }
package/lib/DBA/beeDBA.js CHANGED
@@ -1,119 +1,122 @@
1
- const beeORM = require('../ORM/beeORM')
2
- const beeHive = require('../../beehive')
3
-
4
- const fieldType = {
5
- mysql : function(field) {
6
- let type = field.type.split(' ')[0].trim()
7
-
8
- switch (type) {
9
- case 'integer':
10
- case 'int':
11
- type = 'int'
12
- break
13
- case 'decimal':
14
- type = `decimal(${(field.length || 10.1).toString().replace('.',',')})`
15
- break
16
-
17
- case 'string':
18
- case 'varchar':
19
- type = `varchar(${field.length || 45})`
20
- break
21
- case 'guid':
22
- type = `binary(16)`
23
- field.ai = false
24
- break
25
- case 'char':
26
- type = `char(${field.length || 5})`
27
- break
28
- }
29
- return type
30
- + (!field.null ? ' NOT NULL' : '')
31
- + (field.ai ? ' AUTO_INCREMENT' : '')
32
- + (field.default !== undefined ? ` DEFAULT ${field.default}` : '')
33
- + (field.default !== undefined && field.onUpdate ? ` ON UPDATE ${field.default}` : '')
34
- }
35
- }
36
-
37
- module.exports.actions = {
38
- mysql : {
39
- MODEL_STATEMENT_EXECUTE : async function(req, res) {
40
- let hive = beeHive()
41
- let data = await hive.dbExec(req.body.statement_execute)
42
-
43
- res.status(200).send({data: data})
44
- },
45
-
46
- MODEL_CREATE_DB : function(req, res) {
47
- let configsDB = global.configs.databases.default
48
- let models = global.models
49
- let SQL = ['','']
50
-
51
- //TODO create db with user permissions
52
-
53
- Object
54
- .keys(models)
55
- .map((model)=> {
56
- if(!req.body.models[model]._checked) return
57
-
58
- SQL[0] += this.MODEL_CREATE_TABLE(models[model], configsDB)
59
- SQL[1] += models[model].relations
60
- ? this.MODEL_CREATE_CONSTRAINT(models[model], configsDB)
61
- : ''
62
- })
63
-
64
- res.status(200).send({data: SQL.join("")})
65
- },
66
-
67
- MODEL_CREATE_TABLE : function(model, configsDB) {
68
- let q = beeORM.quote
69
- let SQL = ''
70
-
71
-
72
- SQL = `CREATE TABLE IF NOT EXISTS ${q(model.table)} (`
73
-
74
- for(let field in model.schema)
75
- SQL += `\n ${q(field)} ${fieldType[configsDB.drive](model.schema[field])},` // TODO criar funcao para relacionamentos.
76
-
77
- SQL = SQL.slice(0, SQL.length - 1)
78
-
79
- if(model.indexes) {
80
- if(model.indexes.keys)
81
- SQL += `,\n PRIMARY KEY (${q(model.indexes.keys)})`
82
-
83
- //TODO fazer uniques e cia. colocar em funcao.
84
- }
85
-
86
- SQL += `\n) ENGINE=${configsDB.engine} DEFAULT CHARSET=${configsDB.charset};\n\n`
87
-
88
- return SQL
89
- },
90
-
91
- MODEL_CREATE_CONSTRAINT : function(model, configsDB) {
92
- let q = beeORM.quote
93
- let SQL = '\n\n\n\n'
94
-
95
- SQL += `----- Constraints for table ${q(model.table)} -----\n\n`
96
- SQL += `ALTER TABLE ${q(model.table)}\n`
97
-
98
- for(let field in model.relations)
99
- SQL += ` ADD CONSTRAINT ${q('FK_'+model.relations[field].split('.')[0])}
100
- FOREIGN KEY ${q(field)}
101
- REFERENCES ${model.relations[field].split('.')[0]}(${q('FK_'+model.relations[field].split('.')[0])})
102
- ON DELETE CASCATE ON UPDATE CASCATE;
103
- \n\n`
104
-
105
- //SQL += `-- COMMIT; \n\n`
106
-
107
- return SQL
108
- }
109
- },
110
-
111
- mssql : {
112
- // TODO next version
113
- },
114
-
115
- mongoDB : {
116
- // TODO next version
117
- }
118
-
119
- }
1
+ const beeORM = require('../ORM/beeORM')
2
+ const beeHive = require('../../beehive')
3
+
4
+ const fieldType = {
5
+ mysql : function(field) {
6
+ let type = field.type.split(' ')[0].trim()
7
+
8
+ switch (type) {
9
+ case 'integer':
10
+ case 'int':
11
+ type = 'int'
12
+ break
13
+ case 'decimal':
14
+ type = `decimal(${(field.length || 10.1).toString().replace('.',',')})`
15
+ break
16
+
17
+ case 'string':
18
+ case 'varchar':
19
+ type = `varchar(${field.length || 45})`
20
+ break
21
+ case 'guid':
22
+ type = `binary(16)`
23
+ field.ai = false
24
+ break
25
+ case 'char':
26
+ type = `char(${field.length || 5})`
27
+ break
28
+ case 'file':
29
+ type = 'blob'
30
+ break
31
+ }
32
+ return type
33
+ + (!field.null ? ' NOT NULL' : '')
34
+ + (field.ai ? ' AUTO_INCREMENT' : '')
35
+ + (field.default !== undefined ? ` DEFAULT ${field.default}` : '')
36
+ + (field.default !== undefined && field.onUpdate ? ` ON UPDATE ${field.default}` : '')
37
+ }
38
+ }
39
+
40
+ module.exports.actions = {
41
+ mysql : {
42
+ MODEL_STATEMENT_EXECUTE : async function(req, res) {
43
+ let hive = beeHive()
44
+ let data = await hive.dbExec(req.body.statement_execute)
45
+
46
+ res.status(200).send({data: data})
47
+ },
48
+
49
+ MODEL_CREATE_DB : function(req, res) {
50
+ let configsDB = global.configs.databases.default
51
+ let models = global.models
52
+ let SQL = ['','']
53
+
54
+ //TODO create db with user permissions
55
+
56
+ Object
57
+ .keys(models)
58
+ .map((model)=> {
59
+ if(!req.body.models[model]._checked) return
60
+
61
+ SQL[0] += this.MODEL_CREATE_TABLE(models[model], configsDB)
62
+ SQL[1] += models[model].relations
63
+ ? this.MODEL_CREATE_CONSTRAINT(models[model], configsDB)
64
+ : ''
65
+ })
66
+
67
+ res.status(200).send({data: SQL.join("")})
68
+ },
69
+
70
+ MODEL_CREATE_TABLE : function(model, configsDB) {
71
+ let q = beeORM.quote
72
+ let SQL = ''
73
+
74
+
75
+ SQL = `CREATE TABLE IF NOT EXISTS ${q(model.table)} (`
76
+
77
+ for(let field in model.schema)
78
+ SQL += `\n ${q(field)} ${fieldType[configsDB.drive](model.schema[field])},` // TODO criar funcao para relacionamentos.
79
+
80
+ SQL = SQL.slice(0, SQL.length - 1)
81
+
82
+ if(model.indexes) {
83
+ if(model.indexes.keys)
84
+ SQL += `,\n PRIMARY KEY (${q(model.indexes.keys)})`
85
+
86
+ //TODO fazer uniques e cia. colocar em funcao.
87
+ }
88
+
89
+ SQL += `\n) ENGINE=${configsDB.engine} DEFAULT CHARSET=${configsDB.charset};\n\n`
90
+
91
+ return SQL
92
+ },
93
+
94
+ MODEL_CREATE_CONSTRAINT : function(model, configsDB) {
95
+ let q = beeORM.quote
96
+ let SQL = '\n\n\n\n'
97
+
98
+ SQL += `----- Constraints for table ${q(model.table)} -----\n\n`
99
+ SQL += `ALTER TABLE ${q(model.table)}\n`
100
+
101
+ for(let field in model.relations)
102
+ SQL += ` ADD CONSTRAINT ${q('FK_'+model.relations[field].split('.')[0])}
103
+ FOREIGN KEY ${q(field)}
104
+ REFERENCES ${model.relations[field].split('.')[0]}(${q('FK_'+model.relations[field].split('.')[0])})
105
+ ON DELETE CASCATE ON UPDATE CASCATE;
106
+ \n\n`
107
+
108
+ //SQL += `-- COMMIT; \n\n`
109
+
110
+ return SQL
111
+ }
112
+ },
113
+
114
+ mssql : {
115
+ // TODO next version
116
+ },
117
+
118
+ mongoDB : {
119
+ // TODO next version
120
+ }
121
+
122
+ }
package/lib/DEV/beeDEV.js CHANGED
@@ -1,42 +1,42 @@
1
- const log = require('../beeHive/log')
2
- const beeDBA = require('../DBA/beeDBA')
3
- const glob = require('glob')
4
- const fs = require('fs')
5
-
6
- module.exports = async function(req, res, next) {
7
- if(!global.configs.dev) return res.send(null)
8
-
9
- res.header("Access-Control-Allow-Origin", "*")
10
- res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept")
11
-
12
- var result = {}
13
-
14
- switch(req.params.action) {
15
- case 'MODEL_STATEMENT_EXECUTE':
16
- result = await beeDBA.actions[global.configs.databases.default.type || 'mysql'][req.params.action](req, res, next)
17
- break
18
-
19
- case 'MODEL_CREATE_DB':
20
- result = beeDBA.actions[global.configs.databases.default.type || 'mysql'][req.params.action](req, res, next)
21
- break
22
-
23
- case 'PATHS':
24
- return glob("**/*", {},
25
- function (err, files) {
26
- res.send({ data: files })
27
- })
28
-
29
- case 'PATH_DATA':
30
- return fs.readFile(`${require.main.path}/${req.body.path}`,
31
- function (err, data) {
32
- res.send({ data: { path_data: Buffer.from(data).toString(), path: req.body.path } })
33
- })
34
-
35
- default:
36
- result = {...global.configs, env : process.env}
37
- log('# Started a remote connection.')
38
- break
39
- }
40
-
41
- res.send(result)
1
+ const log = require('../beeHive/log')
2
+ const beeDBA = require('../DBA/beeDBA')
3
+ const glob = require('glob')
4
+ const fs = require('fs')
5
+
6
+ module.exports = async function(req, res, next) {
7
+ if(!global.configs.dev) return res.send(null)
8
+
9
+ res.header("Access-Control-Allow-Origin", "*")
10
+ res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept")
11
+
12
+ var result = {}
13
+
14
+ switch(req.params.action) {
15
+ case 'MODEL_STATEMENT_EXECUTE':
16
+ result = await beeDBA.actions[global.configs.databases.default.type || 'mysql'][req.params.action](req, res, next)
17
+ break
18
+
19
+ case 'MODEL_CREATE_DB':
20
+ result = beeDBA.actions[global.configs.databases.default.type || 'mysql'][req.params.action](req, res, next)
21
+ break
22
+
23
+ case 'PATHS':
24
+ return glob("**/*", {},
25
+ function (err, files) {
26
+ res.send({ data: files })
27
+ })
28
+
29
+ case 'PATH_DATA':
30
+ return fs.readFile(`${require.main.path}/${req.body.path}`,
31
+ function (err, data) {
32
+ res.send({ data: { path_data: Buffer.from(data).toString(), path: req.body.path } })
33
+ })
34
+
35
+ default:
36
+ result = {...global.configs, env : process.env}
37
+ log('# Started a remote connection.')
38
+ break
39
+ }
40
+
41
+ res.send(result)
42
42
  }
package/lib/JWT/beeJWT.js CHANGED
@@ -1,73 +1,73 @@
1
- const crypto = require('crypto')
2
- const log = require('../beeHive/log')
3
-
4
- module.exports = function token(_payload = null, header = {}) {
5
-
6
- if(_payload) {
7
-
8
- let { jwt, ...payload } = _payload
9
-
10
- if(!global.configs.jwt && !global.configs.jwt.secret) return log("ERROR: no jwt.secret defined in configs.")
11
-
12
- let secret = global.configs.jwt.secret
13
- let iat = new Date().getTime()
14
- let exp = new Date().getTime() + 60 * 1000
15
-
16
- header = {...header,
17
- typ: header.typ || "JWT",
18
- alg: header.alg || "HS256"
19
- }
20
-
21
- payload = {...payload,
22
- iat: iat,
23
- exp: exp,
24
- }
25
-
26
- header = JSON.stringify(header)
27
- header = (new Buffer.from(header)).toString('base64')
28
-
29
- payload = JSON.stringify(payload)
30
- payload = (new Buffer.from(payload)).toString('base64')
31
-
32
- let signature = crypto
33
- .createHmac("sha256", secret)
34
- .update(`${header}.${payload}`)
35
- .digest("base64")
36
-
37
- let token = `${header}.${payload}.${signature}`
38
-
39
- this.data.jwt = this.data.jwt && typeof this.data.jwt !== "object"
40
- ? [this.data.jwt]
41
- : this.data.jwt
42
-
43
- this.data.jwt = !this.data.jwt
44
- ? token
45
- : this.data.jwt.concat(token)
46
-
47
- this.counters.jwt = (this.counters.jwt||0) + 1
48
-
49
- log("JWT created: " + this.data.jwt)
50
-
51
- return this
52
- }
53
-
54
- return {...this,
55
- verify: function(token) {
56
-
57
- let secret = global.configs.jwt.secret
58
- let array = token.split(".")
59
- let header = array[0]
60
- let payload = array[1]
61
-
62
- let signature = crypto
63
- .createHmac("sha256", secret)
64
- .update(`${header}.${payload}`)
65
- .digest("base64")
66
-
67
- return token === `${header}.${payload}.${signature}`
68
- ? (new Buffer.from(payload, 'base64')).toString("ascii")
69
- : false
70
- }
71
-
72
- }
1
+ const crypto = require('crypto')
2
+ const log = require('../beeHive/log')
3
+
4
+ module.exports = function token(_payload = null, header = {}) {
5
+
6
+ if(_payload) {
7
+
8
+ let { jwt, ...payload } = _payload
9
+
10
+ if(!global.configs.jwt && !global.configs.jwt.secret) return log("ERROR: no jwt.secret defined in configs.")
11
+
12
+ let secret = global.configs.jwt.secret
13
+ let iat = new Date().getTime()
14
+ let exp = new Date().getTime() + 60 * 1000
15
+
16
+ header = {...header,
17
+ typ: header.typ || "JWT",
18
+ alg: header.alg || "HS256"
19
+ }
20
+
21
+ payload = {...payload,
22
+ iat: iat,
23
+ exp: exp,
24
+ }
25
+
26
+ header = JSON.stringify(header)
27
+ header = (new Buffer.from(header)).toString('base64')
28
+
29
+ payload = JSON.stringify(payload)
30
+ payload = (new Buffer.from(payload)).toString('base64')
31
+
32
+ let signature = crypto
33
+ .createHmac("sha256", secret)
34
+ .update(`${header}.${payload}`)
35
+ .digest("base64")
36
+
37
+ let token = `${header}.${payload}.${signature}`
38
+
39
+ this.data.jwt = this.data.jwt && typeof this.data.jwt !== "object"
40
+ ? [this.data.jwt]
41
+ : this.data.jwt
42
+
43
+ this.data.jwt = !this.data.jwt
44
+ ? token
45
+ : this.data.jwt.concat(token)
46
+
47
+ this.counters.jwt = (this.counters.jwt||0) + 1
48
+
49
+ log("JWT created: " + this.data.jwt)
50
+
51
+ return this
52
+ }
53
+
54
+ return {...this,
55
+ verify: function(token) {
56
+
57
+ let secret = global.configs.jwt.secret
58
+ let array = token.split(".")
59
+ let header = array[0]
60
+ let payload = array[1]
61
+
62
+ let signature = crypto
63
+ .createHmac("sha256", secret)
64
+ .update(`${header}.${payload}`)
65
+ .digest("base64")
66
+
67
+ return token === `${header}.${payload}.${signature}`
68
+ ? (new Buffer.from(payload, 'base64')).toString("ascii")
69
+ : false
70
+ }
71
+
72
+ }
73
73
  }