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 +59 -1
- package/getter.js +41 -1
- package/index.js +37 -0
- package/maker.js +48 -1
- 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
|
@@ -81,4 +81,44 @@ function getPioneerObj(xpioneer) {
|
|
|
81
81
|
return pioneer_obj;
|
|
82
82
|
}
|
|
83
83
|
|
|
84
|
-
|
|
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
|
-
|
|
158
|
+
|
|
159
|
+
module.exports = { moment, pioneer, secret }
|
package/package.json
CHANGED