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 CHANGED
@@ -17,4 +17,62 @@ function checkDir(dir){
17
17
  }
18
18
  }
19
19
 
20
- module.exports = { checkDir }
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
- module.exports = { getCurrentDate, getMomentObj }
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
- // let moment_pb = require('node_modules/proto/moment.proto')
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
- module.exports = { moment }
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
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "name": "pathchain",
3
- "version": "1.0.4"
3
+ "version": "1.0.6"
4
4
  }