pathchain 1.0.5 → 1.0.7

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
@@ -81,4 +81,44 @@ function getPioneerObj(xpioneer) {
81
81
  return pioneer_obj;
82
82
  }
83
83
 
84
- module.exports = { getCurrentDate, getMomentObj, getPioneerObj }
84
+
85
+ /** getSecretObj
86
+ * [Function that recieves a secret hash and returns the secret object]
87
+ *
88
+ * @param {string} xsecret (required)
89
+ *
90
+ * @return void
91
+ */
92
+ function getSecretObj(xsecret) {
93
+ // "secret/hash" FORMAT EXCEPTION
94
+ /*if(xsecret.split("/").length > 1){
95
+ xsecret = xsecret.split("/")[xsecret.length -1]
96
+ }*/
97
+
98
+ if(author_folder != ""){
99
+ author_folder = author_folder + '/';
100
+ }
101
+
102
+ // LOADING PB
103
+ var secret_pb = pb(fs.readFileSync('node_modules/pathos-proto-infra/proto/secret.proto'))
104
+
105
+ // NOT FOUND EXCEPTION
106
+ var fileContents;
107
+ try {
108
+ fileContents = fs.readFileSync("files/" + author_folder + "secrets/" + xsecret);
109
+ } catch (err) {
110
+ if (err.code === 'ENOENT') {
111
+ return "Secret not found";
112
+ } else {
113
+ throw err;
114
+ }
115
+ }
116
+
117
+ // DECODING SECRET
118
+ var secret_enc = fileContents
119
+ var secret_obj = secret_pb.secret.decode(secret_enc)
120
+
121
+ return secret_obj;
122
+ }
123
+
124
+ module.exports = { getCurrentDate, getMomentObj, getPioneerObj, getSecretObj }
package/index.js CHANGED
@@ -77,4 +77,41 @@ exports.makePioneer = (datetime = getter.getCurrentDate(), format = 'MM DD YYYY
77
77
  exports.getPioneerObj = (xpioneer = this.makePioneer()) => {
78
78
  const pioneer_object = getter.getPioneerObj(xpioneer);
79
79
  return pioneer_object;
80
+ }
81
+
82
+ ////////////////
83
+ /// SECRET ///
84
+ ////////////////
85
+
86
+ /** makeSecret
87
+ * [Secret maker]
88
+ *
89
+ * @return {string} secret_buffer
90
+ */
91
+ exports.makeSecret = (author = maker.pioneer(), format = 'MM DD YYYY HH:mm:SSS [GMT]Z') => {
92
+ const secret_buffer = maker.secret(author, format)
93
+ return secret_buffer
94
+ }
95
+
96
+ /** useSecret
97
+ * [Secret using]
98
+ *
99
+ * @return {string} secret_buffer
100
+ */
101
+ exports.useSecret = (xsecret) => {
102
+ const secret_buffer = updater.useSecret(xsecret)
103
+ return secret_buffer
104
+ }
105
+
106
+ /** getSecretObj
107
+ * [Function that recieves a moment hash and returns the moment object]
108
+ *
109
+ * @param {string} xsecret (required)
110
+ * @param {string} xauthor (optional)
111
+ *
112
+ * @return {obj} secret_object (entity object)
113
+ */
114
+ exports.getSecretObj = (xsecret, xauthor = "") => {
115
+ const secret_object = getter.getSecretObj(xsecret, xauthor);
116
+ return secret_object;
80
117
  }
package/maker.js CHANGED
@@ -55,6 +55,49 @@ function moment(datetime, lat, lon, x, y, z, format) {
55
55
  return moment_hash;
56
56
  }
57
57
 
58
+ /** secret
59
+ * [Pioneer Protocol Buffer Creation]
60
+ *
61
+ * @param {string} author (optional, default=pioneer_hash)
62
+ * @param {string} format (required)
63
+ *
64
+ * @return {string} secret_hash
65
+ */
66
+ function secret(author, format) {
67
+ checker.checkDir("files/entities/")
68
+
69
+ // There is no pioneer
70
+ if(checker.checkEmptyDir("files/entities/")){
71
+ var secret_pb = pb(fs.readFileSync('node_modules/pathos-proto-infra/proto/secret.proto'))
72
+
73
+ var register = new Date()
74
+ register = dt.format(register, dt.compile(format, true));
75
+
76
+ var register_moment_hash = moment(register, format, 0, 0, 0, 0, 0)
77
+
78
+ var secret_hash = sha256(register_moment_hash + "_" + author);
79
+
80
+ var buffer = secret_pb.secret.encode({
81
+ register: "moments/"+register_moment_hash,
82
+ author: author,
83
+ used: false,
84
+ tag: "secrets/"+secret_hash,
85
+ })
86
+
87
+ checker.checkDir("files/secrets/") // checking
88
+ checker.checkDir("files/"+ author +"/secrets/") // checking
89
+
90
+ fs.writeFileSync("files/secrets/" + secret_hash, buffer);
91
+ fs.writeFileSync("files/"+ author +"/secrets/" + secret_hash, buffer);
92
+
93
+ return "secrets/"+secret_hash;
94
+ }
95
+ // The pioneer already exists
96
+ else{
97
+ return "The pioneer has only one secret";
98
+ }
99
+ }
100
+
58
101
  /** pioneer
59
102
  * [Pioneer Protocol Buffer Creation]
60
103
  *
@@ -93,6 +136,9 @@ function pioneer(xbigbang, format) {
93
136
  tag: "entities/"+pioneer_hash,
94
137
  })
95
138
 
139
+ const the_secret = secret(pioneer_hash);
140
+ console.log("The pioneer secret buffer is: ", the_secret)
141
+
96
142
  // Save as active entity
97
143
  checker.checkDir("files/entities/")
98
144
  fs.writeFileSync("files/entities/" + pioneer_hash, buffer);
@@ -109,4 +155,5 @@ function pioneer(xbigbang, format) {
109
155
  }
110
156
  }
111
157
 
112
- module.exports = { moment, pioneer }
158
+
159
+ module.exports = { moment, pioneer, secret }
package/package.json CHANGED
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "name": "pathchain",
3
- "version": "1.0.5"
3
+ "version": "1.0.7"
4
4
  }