pathchain 1.0.4 → 1.0.6
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 +59 -1
- package/getter.js +33 -1
- package/index.js +27 -0
- package/maker.js +57 -6
- package/package.json +1 -1
package/checker.js
CHANGED
|
@@ -17,4 +17,62 @@ function checkDir(dir){
|
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
/** checkFiles
|
|
21
|
+
* [Function that returns files in directory]
|
|
22
|
+
*
|
|
23
|
+
* @param {string} dir (required)
|
|
24
|
+
*
|
|
25
|
+
* @return void
|
|
26
|
+
*/
|
|
27
|
+
function checkFiles(dir){
|
|
28
|
+
var files = fs.readdirSync(dir);
|
|
29
|
+
return files;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/** checkEmptyDir
|
|
33
|
+
* [Function that returns TRUE if dir is empty, FALSE if not]
|
|
34
|
+
*
|
|
35
|
+
* @param {string} dir (required)
|
|
36
|
+
*
|
|
37
|
+
* @return {bool} empty_dir
|
|
38
|
+
*/
|
|
39
|
+
function checkEmptyDir(dir) {
|
|
40
|
+
var empty_dir = emptyDir.sync(dir);
|
|
41
|
+
return empty_dir
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/** isSecretUsed
|
|
45
|
+
* [Function that returns TRUE if secret has been used, FALSE if not]
|
|
46
|
+
*
|
|
47
|
+
* @param {string} xsecret (required)
|
|
48
|
+
*
|
|
49
|
+
* @return {bool} used_secret
|
|
50
|
+
*/
|
|
51
|
+
function isSecretUsed(xsecret) {
|
|
52
|
+
// DECODING SECRET
|
|
53
|
+
var secret_pb = pb(fs.readFileSync('node_modules/pathos-proto-infra/proto/secret.proto'))
|
|
54
|
+
|
|
55
|
+
// NOT FOUND EXCEPTION
|
|
56
|
+
var secret_enc;
|
|
57
|
+
try {
|
|
58
|
+
secret_enc = fs.readFileSync("files/"+xsecret)
|
|
59
|
+
} catch (err) {
|
|
60
|
+
if (err.code === 'ENOENT') {
|
|
61
|
+
return "Secret not found :(";
|
|
62
|
+
} else {
|
|
63
|
+
throw err;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
var secret_obj = secret_pb.secret.decode(secret_enc)
|
|
68
|
+
|
|
69
|
+
if(secret_obj.used == false){
|
|
70
|
+
return false
|
|
71
|
+
}
|
|
72
|
+
return true;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// CHECKING THE SECRET CHECKS THE SECRET
|
|
76
|
+
|
|
77
|
+
module.exports = { checkDir, checkFiles, checkEmptyDir, isSecretUsed };
|
|
78
|
+
|
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
|
@@ -19,8 +19,7 @@ const checker = require("./checker");
|
|
|
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