pathchain 1.0.3 → 1.0.5
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/checker.js +20 -0
- package/getter.js +33 -1
- package/index.js +27 -0
- package/maker.js +59 -8
- package/package.json +1 -1
package/checker.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
var fs = require("fs");
|
|
2
|
+
var emptyDir = require('empty-dir');
|
|
3
|
+
var pb = require('protocol-buffers');
|
|
4
|
+
|
|
5
|
+
// "./files/users"
|
|
6
|
+
|
|
7
|
+
/** checkDir
|
|
8
|
+
* [Function that creates directory if it does not exist]
|
|
9
|
+
*
|
|
10
|
+
* @param {string} dir (required)
|
|
11
|
+
*
|
|
12
|
+
* @return void
|
|
13
|
+
*/
|
|
14
|
+
function checkDir(dir){
|
|
15
|
+
if (!fs.existsSync(dir)){
|
|
16
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
module.exports = { checkDir }
|
package/getter.js
CHANGED
|
@@ -49,4 +49,36 @@ function getMomentObj(xmoment) {
|
|
|
49
49
|
return moment_obj;
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
-
|
|
52
|
+
/** getPioneerObj
|
|
53
|
+
* [Function that recieves a pioneer hash and returns the pioneer object]
|
|
54
|
+
*
|
|
55
|
+
* @param {string} xpioneer (required)
|
|
56
|
+
*
|
|
57
|
+
* @return void
|
|
58
|
+
*/
|
|
59
|
+
function getPioneerObj(xpioneer) {
|
|
60
|
+
|
|
61
|
+
// LOADING PB
|
|
62
|
+
var pioneer_pb = pb(fs.readFileSync('node_modules/pathos-proto-infra/proto/entity.proto'))
|
|
63
|
+
|
|
64
|
+
// NOT FOUND EXCEPTION
|
|
65
|
+
var fileContents;
|
|
66
|
+
try {
|
|
67
|
+
fileContents = fs.readFileSync("files/pioneer/"+xpioneer);
|
|
68
|
+
} catch (err) {
|
|
69
|
+
if (err.code === 'ENOENT') {
|
|
70
|
+
return "Pioneer not found";
|
|
71
|
+
} else {
|
|
72
|
+
throw err;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
// DECODING PIONEER
|
|
78
|
+
var pioneer_enc = fileContents
|
|
79
|
+
var pioneer_obj = pioneer_pb.entity.decode(pioneer_enc)
|
|
80
|
+
|
|
81
|
+
return pioneer_obj;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
module.exports = { getCurrentDate, getMomentObj, getPioneerObj }
|
package/index.js
CHANGED
|
@@ -50,4 +50,31 @@ exports.makeMoment = (datetime = getter.getCurrentDate(), lat = 0, lon = 0, x =
|
|
|
50
50
|
exports.getMomentObj = (xmoment) => {
|
|
51
51
|
const moment_object = getter.getMomentObj(xmoment);
|
|
52
52
|
return moment_object;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
/////////////////
|
|
57
|
+
/// PIONEER ///
|
|
58
|
+
/////////////////
|
|
59
|
+
|
|
60
|
+
/** makePioneer
|
|
61
|
+
* [Pioneer maker]
|
|
62
|
+
*
|
|
63
|
+
* @return {string} entity_buffer
|
|
64
|
+
*/
|
|
65
|
+
exports.makePioneer = (datetime = getter.getCurrentDate(), format = 'MM DD YYYY HH:mm:SSS [GMT]Z') => {
|
|
66
|
+
const pioneer_buffer = maker.pioneer(datetime, format);
|
|
67
|
+
return pioneer_buffer;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/** getPioneerObj
|
|
71
|
+
* [Function that recieves a pioneer hash and returns the pioneer object]
|
|
72
|
+
*
|
|
73
|
+
* @param {string} xpioneer (required)
|
|
74
|
+
*
|
|
75
|
+
* @return {obj} pioneer_object (entity object)
|
|
76
|
+
*/
|
|
77
|
+
exports.getPioneerObj = (xpioneer = this.makePioneer()) => {
|
|
78
|
+
const pioneer_object = getter.getPioneerObj(xpioneer);
|
|
79
|
+
return pioneer_object;
|
|
53
80
|
}
|
package/maker.js
CHANGED
|
@@ -2,8 +2,8 @@ var fs = require("fs");
|
|
|
2
2
|
var pb = require('protocol-buffers');
|
|
3
3
|
var dt = require('date-and-time');
|
|
4
4
|
var sha256 = require("js-sha256");
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
const getter = require("./getter");
|
|
6
|
+
const checker = require("./checker");
|
|
7
7
|
|
|
8
8
|
/** moment
|
|
9
9
|
* [Moment Protocol Buffer Creation]
|
|
@@ -19,8 +19,7 @@ var sha256 = require("js-sha256");
|
|
|
19
19
|
* @return {string} moment_buffer
|
|
20
20
|
*/
|
|
21
21
|
function moment(datetime, lat, lon, x, y, z, format) {
|
|
22
|
-
|
|
23
|
-
var moment_pb = pb(fs.readFileSync('node_modules/pathos-proto-infra/proto/moment.proto'))
|
|
22
|
+
var moment_pb = pb(fs.readFileSync('node_modules/pathos-proto-infra/proto/moment.proto'));
|
|
24
23
|
|
|
25
24
|
var date_obj = dt.preparse(datetime, format);
|
|
26
25
|
var moment_obj = {
|
|
@@ -45,17 +44,69 @@ function moment(datetime, lat, lon, x, y, z, format) {
|
|
|
45
44
|
_match: date_obj._match
|
|
46
45
|
}
|
|
47
46
|
}
|
|
48
|
-
// console.log(".:MOMENT OBJECT:. :", moment_obj)
|
|
49
47
|
|
|
50
48
|
var buffer = moment_pb.moment.encode(moment_obj);
|
|
51
49
|
|
|
52
50
|
var moment_hash = sha256(JSON.stringify(moment_pb.moment.decode(buffer)));
|
|
53
|
-
// console.log(" -> Moment hash: ", moment_hash)
|
|
54
51
|
|
|
55
|
-
checker.checkDir("files/moments/")
|
|
52
|
+
checker.checkDir("files/moments/");
|
|
56
53
|
fs.writeFileSync("files/moments/" + moment_hash, buffer);
|
|
57
54
|
|
|
58
55
|
return moment_hash;
|
|
59
56
|
}
|
|
60
57
|
|
|
61
|
-
|
|
58
|
+
/** pioneer
|
|
59
|
+
* [Pioneer Protocol Buffer Creation]
|
|
60
|
+
*
|
|
61
|
+
* @param {string} datetime (required)
|
|
62
|
+
* @param {string} format (required)
|
|
63
|
+
*
|
|
64
|
+
* @return {string} pioneer_buffer
|
|
65
|
+
*/
|
|
66
|
+
function pioneer(xbigbang, format) {
|
|
67
|
+
checker.checkDir("files/entities/")
|
|
68
|
+
|
|
69
|
+
// There is no pioneer
|
|
70
|
+
if(checker.checkEmptyDir("files/entities/")){
|
|
71
|
+
// CREATING PIONEER
|
|
72
|
+
var entity = pb(fs.readFileSync('node_modules/pathos-proto-infra/proto/entity.proto'))
|
|
73
|
+
|
|
74
|
+
var register = new Date()
|
|
75
|
+
register = dt.format(register, dt.compile(format, true));
|
|
76
|
+
|
|
77
|
+
var register_moment_hash = moment(register, format, 0, 0, 0, 0, 0)
|
|
78
|
+
|
|
79
|
+
var birthday = dt.parse(xbigbang, format, true);
|
|
80
|
+
birthday = dt.format(birthday, format, true);
|
|
81
|
+
|
|
82
|
+
var birthday_moment = moment(birthday, format, 0, 0, 0, 0, 0)
|
|
83
|
+
|
|
84
|
+
// console.log("PIONEER REGISTER MOMENT: ", register_moment_hash)
|
|
85
|
+
// console.log("PIONEER BIRTHDAY MOMENT: ", birthday_moment)
|
|
86
|
+
|
|
87
|
+
var pioneer_hash = sha256(register_moment_hash + "_" + birthday_moment);
|
|
88
|
+
|
|
89
|
+
var buffer = entity.entity.encode({
|
|
90
|
+
birthday: "moments/"+birthday_moment,
|
|
91
|
+
register: "moments/"+register_moment_hash,
|
|
92
|
+
invite: "entities/"+pioneer_hash, // points to itself as inviting entity in the chain
|
|
93
|
+
tag: "entities/"+pioneer_hash,
|
|
94
|
+
})
|
|
95
|
+
|
|
96
|
+
// Save as active entity
|
|
97
|
+
checker.checkDir("files/entities/")
|
|
98
|
+
fs.writeFileSync("files/entities/" + pioneer_hash, buffer);
|
|
99
|
+
|
|
100
|
+
// Save pioneer to look for it later
|
|
101
|
+
checker.checkDir("files/pioneer/")
|
|
102
|
+
fs.writeFileSync("files/pioneer/" + pioneer_hash, buffer);
|
|
103
|
+
|
|
104
|
+
return pioneer_hash;
|
|
105
|
+
}
|
|
106
|
+
// There is a pioneer
|
|
107
|
+
else{
|
|
108
|
+
return checker.checkFiles('files/pioneer/')[0];
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
module.exports = { moment, pioneer }
|
package/package.json
CHANGED