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 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
- 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
@@ -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
- // const getter = require("./getter");
6
- // const checker = require("./checker");
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
- // 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.3"
3
+ "version": "1.0.5"
4
4
  }