mapexplorer-rails 1.0.0.pre.alpha.1 → 1.0.0
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.
- checksums.yaml +4 -4
- data/LICENSE +202 -0
- data/README.md +1 -1
- data/app/assets/javascripts/mapexplorer-rails.js +16 -0
- data/app/assets/stylesheets/mapexplorer-rails.scss +16 -0
- data/app/helpers/mapexplorer_helper.rb +14 -0
- data/config/routes.rb +14 -0
- data/lib/mapexplorer/rails.rb +14 -0
- data/lib/mapexplorer/rails/engine.rb +14 -0
- data/lib/mapexplorer/rails/version.rb +15 -1
- data/lib/tasks/mapexplorer/rails_tasks.rake +14 -0
- data/vendor/assets/mapexplorer-core/LICENSE +202 -21
- data/vendor/assets/mapexplorer-core/LICENSE_HEADER +15 -0
- data/vendor/assets/mapexplorer-core/bower.json +1 -1
- data/vendor/assets/mapexplorer-core/dist/mapexplorer-core.js +1552 -330
- data/vendor/assets/mapexplorer-core/dist/mapexplorer-core.js.map +1 -1
- data/vendor/assets/mapexplorer-core/karma.conf.js +4 -2
- data/vendor/assets/mapexplorer-core/package-lock.json +3486 -0
- data/vendor/assets/mapexplorer-core/package.json +8 -8
- data/vendor/assets/mapexplorer-core/update-license-headers.sh +20 -0
- data/vendor/assets/stratumn-agent-client/LICENSE +202 -0
- data/vendor/assets/stratumn-agent-client/LICENSE_HEADER +15 -0
- data/vendor/assets/stratumn-agent-client/README.md +268 -0
- data/vendor/assets/stratumn-agent-client/bower.json +27 -0
- data/vendor/assets/stratumn-agent-client/dist/stratumn-agent-client.js +1449 -0
- data/vendor/assets/stratumn-agent-client/dist/stratumn-agent-client.js.map +1 -0
- data/vendor/assets/stratumn-agent-client/dist/stratumn-agent-client.min.js +2 -0
- data/vendor/assets/stratumn-agent-client/dist/stratumn-agent-client.min.js.map +1 -0
- data/vendor/assets/stratumn-agent-client/examples/browser/index.html +34 -0
- data/vendor/assets/stratumn-agent-client/package.json +69 -0
- data/vendor/assets/stratumn-agent-client/rollup.base.config.js +13 -0
- data/vendor/assets/stratumn-agent-client/rollup.bower.config.js +18 -0
- data/vendor/assets/stratumn-agent-client/rollup.bower.min.config.js +7 -0
- data/vendor/assets/stratumn-agent-client/rollup.es.config.js +9 -0
- data/vendor/assets/stratumn-agent-client/rollup.umd.config.js +10 -0
- data/vendor/assets/stratumn-agent-client/update-license-headers.sh +20 -0
- metadata +25 -7
- data/MIT-LICENSE +0 -20
- data/vendor/assets/mapexplorer-core/dist/mapexplorer-core.min.js +0 -35
@@ -0,0 +1,15 @@
|
|
1
|
+
/*
|
2
|
+
Copyright 2017 Stratumn SAS. All rights reserved.
|
3
|
+
|
4
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
you may not use this file except in compliance with the License.
|
6
|
+
You may obtain a copy of the License at
|
7
|
+
|
8
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
|
10
|
+
Unless required by applicable law or agreed to in writing, software
|
11
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
See the License for the specific language governing permissions and
|
14
|
+
limitations under the License.
|
15
|
+
*/
|
@@ -4,8 +4,24 @@
|
|
4
4
|
(factory((global.mapexplorerCore = global.mapexplorerCore || {}),global.d3,global.d3,global.d3,global.d3,global.d3,global.d3));
|
5
5
|
}(this, (function (exports,d3Hierarchy,d3Transition,d3Ease,d3Selection,d3Zoom,d3Array) { 'use strict';
|
6
6
|
|
7
|
+
/*
|
8
|
+
Copyright 2017 Stratumn SAS. All rights reserved.
|
9
|
+
|
10
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
11
|
+
you may not use this file except in compliance with the License.
|
12
|
+
You may obtain a copy of the License at
|
13
|
+
|
14
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
15
|
+
|
16
|
+
Unless required by applicable law or agreed to in writing, software
|
17
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
18
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
19
|
+
See the License for the specific language governing permissions and
|
20
|
+
limitations under the License.
|
21
|
+
*/
|
22
|
+
|
7
23
|
function makeLink(source, target) {
|
8
|
-
var margin = arguments.length
|
24
|
+
var margin = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
|
9
25
|
|
10
26
|
var finalTarget = target || source;
|
11
27
|
var targetX = finalTarget.x;
|
@@ -21,20 +37,149 @@ function translate(x, y) {
|
|
21
37
|
return "translate(" + y + ", " + x + ")";
|
22
38
|
}
|
23
39
|
|
40
|
+
/*
|
41
|
+
Copyright 2017 Stratumn SAS. All rights reserved.
|
42
|
+
|
43
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
44
|
+
you may not use this file except in compliance with the License.
|
45
|
+
You may obtain a copy of the License at
|
46
|
+
|
47
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
48
|
+
|
49
|
+
Unless required by applicable law or agreed to in writing, software
|
50
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
51
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
52
|
+
See the License for the specific language governing permissions and
|
53
|
+
limitations under the License.
|
54
|
+
*/
|
55
|
+
|
24
56
|
function parseChainscript(chainscript) {
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
57
|
+
return d3Hierarchy.stratify().id(function (d) {
|
58
|
+
return d.meta.linkHash;
|
59
|
+
}).parentId(function (d) {
|
60
|
+
return d.link.meta.prevLinkHash;
|
61
|
+
})(chainscript);
|
30
62
|
}
|
31
63
|
|
32
64
|
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) {
|
33
65
|
return typeof obj;
|
34
66
|
} : function (obj) {
|
35
|
-
return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
67
|
+
return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
|
36
68
|
};
|
37
69
|
|
70
|
+
var asyncGenerator = function () {
|
71
|
+
function AwaitValue(value) {
|
72
|
+
this.value = value;
|
73
|
+
}
|
74
|
+
|
75
|
+
function AsyncGenerator(gen) {
|
76
|
+
var front, back;
|
77
|
+
|
78
|
+
function send(key, arg) {
|
79
|
+
return new Promise(function (resolve, reject) {
|
80
|
+
var request = {
|
81
|
+
key: key,
|
82
|
+
arg: arg,
|
83
|
+
resolve: resolve,
|
84
|
+
reject: reject,
|
85
|
+
next: null
|
86
|
+
};
|
87
|
+
|
88
|
+
if (back) {
|
89
|
+
back = back.next = request;
|
90
|
+
} else {
|
91
|
+
front = back = request;
|
92
|
+
resume(key, arg);
|
93
|
+
}
|
94
|
+
});
|
95
|
+
}
|
96
|
+
|
97
|
+
function resume(key, arg) {
|
98
|
+
try {
|
99
|
+
var result = gen[key](arg);
|
100
|
+
var value = result.value;
|
101
|
+
|
102
|
+
if (value instanceof AwaitValue) {
|
103
|
+
Promise.resolve(value.value).then(function (arg) {
|
104
|
+
resume("next", arg);
|
105
|
+
}, function (arg) {
|
106
|
+
resume("throw", arg);
|
107
|
+
});
|
108
|
+
} else {
|
109
|
+
settle(result.done ? "return" : "normal", result.value);
|
110
|
+
}
|
111
|
+
} catch (err) {
|
112
|
+
settle("throw", err);
|
113
|
+
}
|
114
|
+
}
|
115
|
+
|
116
|
+
function settle(type, value) {
|
117
|
+
switch (type) {
|
118
|
+
case "return":
|
119
|
+
front.resolve({
|
120
|
+
value: value,
|
121
|
+
done: true
|
122
|
+
});
|
123
|
+
break;
|
124
|
+
|
125
|
+
case "throw":
|
126
|
+
front.reject(value);
|
127
|
+
break;
|
128
|
+
|
129
|
+
default:
|
130
|
+
front.resolve({
|
131
|
+
value: value,
|
132
|
+
done: false
|
133
|
+
});
|
134
|
+
break;
|
135
|
+
}
|
136
|
+
|
137
|
+
front = front.next;
|
138
|
+
|
139
|
+
if (front) {
|
140
|
+
resume(front.key, front.arg);
|
141
|
+
} else {
|
142
|
+
back = null;
|
143
|
+
}
|
144
|
+
}
|
145
|
+
|
146
|
+
this._invoke = send;
|
147
|
+
|
148
|
+
if (typeof gen.return !== "function") {
|
149
|
+
this.return = undefined;
|
150
|
+
}
|
151
|
+
}
|
152
|
+
|
153
|
+
if (typeof Symbol === "function" && Symbol.asyncIterator) {
|
154
|
+
AsyncGenerator.prototype[Symbol.asyncIterator] = function () {
|
155
|
+
return this;
|
156
|
+
};
|
157
|
+
}
|
158
|
+
|
159
|
+
AsyncGenerator.prototype.next = function (arg) {
|
160
|
+
return this._invoke("next", arg);
|
161
|
+
};
|
162
|
+
|
163
|
+
AsyncGenerator.prototype.throw = function (arg) {
|
164
|
+
return this._invoke("throw", arg);
|
165
|
+
};
|
166
|
+
|
167
|
+
AsyncGenerator.prototype.return = function (arg) {
|
168
|
+
return this._invoke("return", arg);
|
169
|
+
};
|
170
|
+
|
171
|
+
return {
|
172
|
+
wrap: function (fn) {
|
173
|
+
return function () {
|
174
|
+
return new AsyncGenerator(fn.apply(this, arguments));
|
175
|
+
};
|
176
|
+
},
|
177
|
+
await: function (value) {
|
178
|
+
return new AwaitValue(value);
|
179
|
+
}
|
180
|
+
};
|
181
|
+
}();
|
182
|
+
|
38
183
|
var classCallCheck = function (instance, Constructor) {
|
39
184
|
if (!(instance instanceof Constructor)) {
|
40
185
|
throw new TypeError("Cannot call a class as a function");
|
@@ -83,6 +228,22 @@ var toConsumableArray = function (arr) {
|
|
83
228
|
}
|
84
229
|
};
|
85
230
|
|
231
|
+
/*
|
232
|
+
Copyright 2017 Stratumn SAS. All rights reserved.
|
233
|
+
|
234
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
235
|
+
you may not use this file except in compliance with the License.
|
236
|
+
You may obtain a copy of the License at
|
237
|
+
|
238
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
239
|
+
|
240
|
+
Unless required by applicable law or agreed to in writing, software
|
241
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
242
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
243
|
+
See the License for the specific language governing permissions and
|
244
|
+
limitations under the License.
|
245
|
+
*/
|
246
|
+
|
86
247
|
var margin = { top: 20, right: 120, bottom: 20, left: 120 };
|
87
248
|
var height = 800 - margin.top - margin.bottom;
|
88
249
|
|
@@ -231,6 +392,22 @@ var ChainTree = function () {
|
|
231
392
|
return ChainTree;
|
232
393
|
}();
|
233
394
|
|
395
|
+
/*
|
396
|
+
Copyright 2017 Stratumn SAS. All rights reserved.
|
397
|
+
|
398
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
399
|
+
you may not use this file except in compliance with the License.
|
400
|
+
You may obtain a copy of the License at
|
401
|
+
|
402
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
403
|
+
|
404
|
+
Unless required by applicable law or agreed to in writing, software
|
405
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
406
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
407
|
+
See the License for the specific language governing permissions and
|
408
|
+
limitations under the License.
|
409
|
+
*/
|
410
|
+
|
234
411
|
function compactHash (hash) {
|
235
412
|
return "" + hash.slice(0, 3) + hash.slice(hash.length - 3);
|
236
413
|
}
|
@@ -302,6 +479,424 @@ return function deepmerge(target, src) {
|
|
302
479
|
|
303
480
|
var merge = interopDefault(index);
|
304
481
|
|
482
|
+
var global$1 = typeof global !== "undefined" ? global :
|
483
|
+
typeof self !== "undefined" ? self :
|
484
|
+
typeof window !== "undefined" ? window : {}
|
485
|
+
|
486
|
+
// shim for using process in browser
|
487
|
+
// based off https://github.com/defunctzombie/node-process/blob/master/browser.js
|
488
|
+
|
489
|
+
function defaultSetTimout() {
|
490
|
+
throw new Error('setTimeout has not been defined');
|
491
|
+
}
|
492
|
+
function defaultClearTimeout () {
|
493
|
+
throw new Error('clearTimeout has not been defined');
|
494
|
+
}
|
495
|
+
var cachedSetTimeout = defaultSetTimout;
|
496
|
+
var cachedClearTimeout = defaultClearTimeout;
|
497
|
+
if (typeof global$1.setTimeout === 'function') {
|
498
|
+
cachedSetTimeout = setTimeout;
|
499
|
+
}
|
500
|
+
if (typeof global$1.clearTimeout === 'function') {
|
501
|
+
cachedClearTimeout = clearTimeout;
|
502
|
+
}
|
503
|
+
|
504
|
+
function runTimeout(fun) {
|
505
|
+
if (cachedSetTimeout === setTimeout) {
|
506
|
+
//normal enviroments in sane situations
|
507
|
+
return setTimeout(fun, 0);
|
508
|
+
}
|
509
|
+
// if setTimeout wasn't available but was latter defined
|
510
|
+
if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
|
511
|
+
cachedSetTimeout = setTimeout;
|
512
|
+
return setTimeout(fun, 0);
|
513
|
+
}
|
514
|
+
try {
|
515
|
+
// when when somebody has screwed with setTimeout but no I.E. maddness
|
516
|
+
return cachedSetTimeout(fun, 0);
|
517
|
+
} catch(e){
|
518
|
+
try {
|
519
|
+
// When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
|
520
|
+
return cachedSetTimeout.call(null, fun, 0);
|
521
|
+
} catch(e){
|
522
|
+
// same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
|
523
|
+
return cachedSetTimeout.call(this, fun, 0);
|
524
|
+
}
|
525
|
+
}
|
526
|
+
|
527
|
+
|
528
|
+
}
|
529
|
+
function runClearTimeout(marker) {
|
530
|
+
if (cachedClearTimeout === clearTimeout) {
|
531
|
+
//normal enviroments in sane situations
|
532
|
+
return clearTimeout(marker);
|
533
|
+
}
|
534
|
+
// if clearTimeout wasn't available but was latter defined
|
535
|
+
if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
|
536
|
+
cachedClearTimeout = clearTimeout;
|
537
|
+
return clearTimeout(marker);
|
538
|
+
}
|
539
|
+
try {
|
540
|
+
// when when somebody has screwed with setTimeout but no I.E. maddness
|
541
|
+
return cachedClearTimeout(marker);
|
542
|
+
} catch (e){
|
543
|
+
try {
|
544
|
+
// When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
|
545
|
+
return cachedClearTimeout.call(null, marker);
|
546
|
+
} catch (e){
|
547
|
+
// same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
|
548
|
+
// Some versions of I.E. have different rules for clearTimeout vs setTimeout
|
549
|
+
return cachedClearTimeout.call(this, marker);
|
550
|
+
}
|
551
|
+
}
|
552
|
+
|
553
|
+
|
554
|
+
|
555
|
+
}
|
556
|
+
var queue = [];
|
557
|
+
var draining = false;
|
558
|
+
var currentQueue;
|
559
|
+
var queueIndex = -1;
|
560
|
+
|
561
|
+
function cleanUpNextTick() {
|
562
|
+
if (!draining || !currentQueue) {
|
563
|
+
return;
|
564
|
+
}
|
565
|
+
draining = false;
|
566
|
+
if (currentQueue.length) {
|
567
|
+
queue = currentQueue.concat(queue);
|
568
|
+
} else {
|
569
|
+
queueIndex = -1;
|
570
|
+
}
|
571
|
+
if (queue.length) {
|
572
|
+
drainQueue();
|
573
|
+
}
|
574
|
+
}
|
575
|
+
|
576
|
+
function drainQueue() {
|
577
|
+
if (draining) {
|
578
|
+
return;
|
579
|
+
}
|
580
|
+
var timeout = runTimeout(cleanUpNextTick);
|
581
|
+
draining = true;
|
582
|
+
|
583
|
+
var len = queue.length;
|
584
|
+
while(len) {
|
585
|
+
currentQueue = queue;
|
586
|
+
queue = [];
|
587
|
+
while (++queueIndex < len) {
|
588
|
+
if (currentQueue) {
|
589
|
+
currentQueue[queueIndex].run();
|
590
|
+
}
|
591
|
+
}
|
592
|
+
queueIndex = -1;
|
593
|
+
len = queue.length;
|
594
|
+
}
|
595
|
+
currentQueue = null;
|
596
|
+
draining = false;
|
597
|
+
runClearTimeout(timeout);
|
598
|
+
}
|
599
|
+
function nextTick(fun) {
|
600
|
+
var args = new Array(arguments.length - 1);
|
601
|
+
if (arguments.length > 1) {
|
602
|
+
for (var i = 1; i < arguments.length; i++) {
|
603
|
+
args[i - 1] = arguments[i];
|
604
|
+
}
|
605
|
+
}
|
606
|
+
queue.push(new Item(fun, args));
|
607
|
+
if (queue.length === 1 && !draining) {
|
608
|
+
runTimeout(drainQueue);
|
609
|
+
}
|
610
|
+
}
|
611
|
+
// v8 likes predictible objects
|
612
|
+
function Item(fun, array) {
|
613
|
+
this.fun = fun;
|
614
|
+
this.array = array;
|
615
|
+
}
|
616
|
+
Item.prototype.run = function () {
|
617
|
+
this.fun.apply(null, this.array);
|
618
|
+
};
|
619
|
+
var title = 'browser';
|
620
|
+
var platform = 'browser';
|
621
|
+
var browser = true;
|
622
|
+
var env = {};
|
623
|
+
var argv = [];
|
624
|
+
var version = ''; // empty string to avoid regexp issues
|
625
|
+
var versions = {};
|
626
|
+
var release = {};
|
627
|
+
var config$1 = {};
|
628
|
+
|
629
|
+
function noop() {}
|
630
|
+
|
631
|
+
var on = noop;
|
632
|
+
var addListener = noop;
|
633
|
+
var once = noop;
|
634
|
+
var off = noop;
|
635
|
+
var removeListener = noop;
|
636
|
+
var removeAllListeners = noop;
|
637
|
+
var emit = noop;
|
638
|
+
|
639
|
+
function binding(name) {
|
640
|
+
throw new Error('process.binding is not supported');
|
641
|
+
}
|
642
|
+
|
643
|
+
function cwd () { return '/' }
|
644
|
+
function chdir (dir) {
|
645
|
+
throw new Error('process.chdir is not supported');
|
646
|
+
};
|
647
|
+
function umask() { return 0; }
|
648
|
+
|
649
|
+
// from https://github.com/kumavis/browser-process-hrtime/blob/master/index.js
|
650
|
+
var performance = global$1.performance || {}
|
651
|
+
var performanceNow =
|
652
|
+
performance.now ||
|
653
|
+
performance.mozNow ||
|
654
|
+
performance.msNow ||
|
655
|
+
performance.oNow ||
|
656
|
+
performance.webkitNow ||
|
657
|
+
function(){ return (new Date()).getTime() }
|
658
|
+
|
659
|
+
// generate timestamp or delta
|
660
|
+
// see http://nodejs.org/api/process.html#process_process_hrtime
|
661
|
+
function hrtime(previousTimestamp){
|
662
|
+
var clocktime = performanceNow.call(performance)*1e-3
|
663
|
+
var seconds = Math.floor(clocktime)
|
664
|
+
var nanoseconds = Math.floor((clocktime%1)*1e9)
|
665
|
+
if (previousTimestamp) {
|
666
|
+
seconds = seconds - previousTimestamp[0]
|
667
|
+
nanoseconds = nanoseconds - previousTimestamp[1]
|
668
|
+
if (nanoseconds<0) {
|
669
|
+
seconds--
|
670
|
+
nanoseconds += 1e9
|
671
|
+
}
|
672
|
+
}
|
673
|
+
return [seconds,nanoseconds]
|
674
|
+
}
|
675
|
+
|
676
|
+
var startTime = new Date();
|
677
|
+
function uptime() {
|
678
|
+
var currentTime = new Date();
|
679
|
+
var dif = currentTime - startTime;
|
680
|
+
return dif / 1000;
|
681
|
+
}
|
682
|
+
|
683
|
+
var process = {
|
684
|
+
nextTick: nextTick,
|
685
|
+
title: title,
|
686
|
+
browser: browser,
|
687
|
+
env: env,
|
688
|
+
argv: argv,
|
689
|
+
version: version,
|
690
|
+
versions: versions,
|
691
|
+
on: on,
|
692
|
+
addListener: addListener,
|
693
|
+
once: once,
|
694
|
+
off: off,
|
695
|
+
removeListener: removeListener,
|
696
|
+
removeAllListeners: removeAllListeners,
|
697
|
+
emit: emit,
|
698
|
+
binding: binding,
|
699
|
+
cwd: cwd,
|
700
|
+
chdir: chdir,
|
701
|
+
umask: umask,
|
702
|
+
hrtime: hrtime,
|
703
|
+
platform: platform,
|
704
|
+
release: release,
|
705
|
+
config: config$1,
|
706
|
+
uptime: uptime
|
707
|
+
};
|
708
|
+
|
709
|
+
var setImmediate$1 = createCommonjsModule(function (module) {
|
710
|
+
(function (global, undefined) {
|
711
|
+
"use strict";
|
712
|
+
|
713
|
+
if (global.setImmediate) {
|
714
|
+
return;
|
715
|
+
}
|
716
|
+
|
717
|
+
var nextHandle = 1; // Spec says greater than zero
|
718
|
+
var tasksByHandle = {};
|
719
|
+
var currentlyRunningATask = false;
|
720
|
+
var doc = global.document;
|
721
|
+
var registerImmediate;
|
722
|
+
|
723
|
+
function setImmediate(callback) {
|
724
|
+
// Callback can either be a function or a string
|
725
|
+
if (typeof callback !== "function") {
|
726
|
+
callback = new Function("" + callback);
|
727
|
+
}
|
728
|
+
// Copy function arguments
|
729
|
+
var args = new Array(arguments.length - 1);
|
730
|
+
for (var i = 0; i < args.length; i++) {
|
731
|
+
args[i] = arguments[i + 1];
|
732
|
+
}
|
733
|
+
// Store and register the task
|
734
|
+
var task = { callback: callback, args: args };
|
735
|
+
tasksByHandle[nextHandle] = task;
|
736
|
+
registerImmediate(nextHandle);
|
737
|
+
return nextHandle++;
|
738
|
+
}
|
739
|
+
|
740
|
+
function clearImmediate(handle) {
|
741
|
+
delete tasksByHandle[handle];
|
742
|
+
}
|
743
|
+
|
744
|
+
function run(task) {
|
745
|
+
var callback = task.callback;
|
746
|
+
var args = task.args;
|
747
|
+
switch (args.length) {
|
748
|
+
case 0:
|
749
|
+
callback();
|
750
|
+
break;
|
751
|
+
case 1:
|
752
|
+
callback(args[0]);
|
753
|
+
break;
|
754
|
+
case 2:
|
755
|
+
callback(args[0], args[1]);
|
756
|
+
break;
|
757
|
+
case 3:
|
758
|
+
callback(args[0], args[1], args[2]);
|
759
|
+
break;
|
760
|
+
default:
|
761
|
+
callback.apply(undefined, args);
|
762
|
+
break;
|
763
|
+
}
|
764
|
+
}
|
765
|
+
|
766
|
+
function runIfPresent(handle) {
|
767
|
+
// From the spec: "Wait until any invocations of this algorithm started before this one have completed."
|
768
|
+
// So if we're currently running a task, we'll need to delay this invocation.
|
769
|
+
if (currentlyRunningATask) {
|
770
|
+
// Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a
|
771
|
+
// "too much recursion" error.
|
772
|
+
setTimeout(runIfPresent, 0, handle);
|
773
|
+
} else {
|
774
|
+
var task = tasksByHandle[handle];
|
775
|
+
if (task) {
|
776
|
+
currentlyRunningATask = true;
|
777
|
+
try {
|
778
|
+
run(task);
|
779
|
+
} finally {
|
780
|
+
clearImmediate(handle);
|
781
|
+
currentlyRunningATask = false;
|
782
|
+
}
|
783
|
+
}
|
784
|
+
}
|
785
|
+
}
|
786
|
+
|
787
|
+
function installNextTickImplementation() {
|
788
|
+
registerImmediate = function(handle) {
|
789
|
+
nextTick(function () { runIfPresent(handle); });
|
790
|
+
};
|
791
|
+
}
|
792
|
+
|
793
|
+
function canUsePostMessage() {
|
794
|
+
// The test against `importScripts` prevents this implementation from being installed inside a web worker,
|
795
|
+
// where `global.postMessage` means something completely different and can't be used for this purpose.
|
796
|
+
if (global.postMessage && !global.importScripts) {
|
797
|
+
var postMessageIsAsynchronous = true;
|
798
|
+
var oldOnMessage = global.onmessage;
|
799
|
+
global.onmessage = function() {
|
800
|
+
postMessageIsAsynchronous = false;
|
801
|
+
};
|
802
|
+
global.postMessage("", "*");
|
803
|
+
global.onmessage = oldOnMessage;
|
804
|
+
return postMessageIsAsynchronous;
|
805
|
+
}
|
806
|
+
}
|
807
|
+
|
808
|
+
function installPostMessageImplementation() {
|
809
|
+
// Installs an event handler on `global` for the `message` event: see
|
810
|
+
// * https://developer.mozilla.org/en/DOM/window.postMessage
|
811
|
+
// * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages
|
812
|
+
|
813
|
+
var messagePrefix = "setImmediate$" + Math.random() + "$";
|
814
|
+
var onGlobalMessage = function(event) {
|
815
|
+
if (event.source === global &&
|
816
|
+
typeof event.data === "string" &&
|
817
|
+
event.data.indexOf(messagePrefix) === 0) {
|
818
|
+
runIfPresent(+event.data.slice(messagePrefix.length));
|
819
|
+
}
|
820
|
+
};
|
821
|
+
|
822
|
+
if (global.addEventListener) {
|
823
|
+
global.addEventListener("message", onGlobalMessage, false);
|
824
|
+
} else {
|
825
|
+
global.attachEvent("onmessage", onGlobalMessage);
|
826
|
+
}
|
827
|
+
|
828
|
+
registerImmediate = function(handle) {
|
829
|
+
global.postMessage(messagePrefix + handle, "*");
|
830
|
+
};
|
831
|
+
}
|
832
|
+
|
833
|
+
function installMessageChannelImplementation() {
|
834
|
+
var channel = new MessageChannel();
|
835
|
+
channel.port1.onmessage = function(event) {
|
836
|
+
var handle = event.data;
|
837
|
+
runIfPresent(handle);
|
838
|
+
};
|
839
|
+
|
840
|
+
registerImmediate = function(handle) {
|
841
|
+
channel.port2.postMessage(handle);
|
842
|
+
};
|
843
|
+
}
|
844
|
+
|
845
|
+
function installReadyStateChangeImplementation() {
|
846
|
+
var html = doc.documentElement;
|
847
|
+
registerImmediate = function(handle) {
|
848
|
+
// Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted
|
849
|
+
// into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.
|
850
|
+
var script = doc.createElement("script");
|
851
|
+
script.onreadystatechange = function () {
|
852
|
+
runIfPresent(handle);
|
853
|
+
script.onreadystatechange = null;
|
854
|
+
html.removeChild(script);
|
855
|
+
script = null;
|
856
|
+
};
|
857
|
+
html.appendChild(script);
|
858
|
+
};
|
859
|
+
}
|
860
|
+
|
861
|
+
function installSetTimeoutImplementation() {
|
862
|
+
registerImmediate = function(handle) {
|
863
|
+
setTimeout(runIfPresent, 0, handle);
|
864
|
+
};
|
865
|
+
}
|
866
|
+
|
867
|
+
// If supported, we should attach to the prototype of global, since that is where setTimeout et al. live.
|
868
|
+
var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);
|
869
|
+
attachTo = attachTo && attachTo.setTimeout ? attachTo : global;
|
870
|
+
|
871
|
+
// Don't get fooled by e.g. browserify environments.
|
872
|
+
if ({}.toString.call(global.process) === "[object process]") {
|
873
|
+
// For Node.js before 0.9
|
874
|
+
installNextTickImplementation();
|
875
|
+
|
876
|
+
} else if (canUsePostMessage()) {
|
877
|
+
// For non-IE10 modern browsers
|
878
|
+
installPostMessageImplementation();
|
879
|
+
|
880
|
+
} else if (global.MessageChannel) {
|
881
|
+
// For web workers, where supported
|
882
|
+
installMessageChannelImplementation();
|
883
|
+
|
884
|
+
} else if (doc && "onreadystatechange" in doc.createElement("script")) {
|
885
|
+
// For IE 6–8
|
886
|
+
installReadyStateChangeImplementation();
|
887
|
+
|
888
|
+
} else {
|
889
|
+
// For older browsers
|
890
|
+
installSetTimeoutImplementation();
|
891
|
+
}
|
892
|
+
|
893
|
+
attachTo.setImmediate = setImmediate;
|
894
|
+
attachTo.clearImmediate = clearImmediate;
|
895
|
+
}(typeof self === "undefined" ? typeof commonjsGlobal === "undefined" ? commonjsGlobal : commonjsGlobal : self));
|
896
|
+
});
|
897
|
+
|
898
|
+
interopDefault(setImmediate$1);
|
899
|
+
|
305
900
|
var jsonrequest = createCommonjsModule(function (module) {
|
306
901
|
'use strict';
|
307
902
|
|
@@ -646,7 +1241,7 @@ var require$$4 = Object.freeze({
|
|
646
1241
|
default: error$1
|
647
1242
|
});
|
648
1243
|
|
649
|
-
var once = createCommonjsModule(function (module) {
|
1244
|
+
var once$1 = createCommonjsModule(function (module) {
|
650
1245
|
'use strict';
|
651
1246
|
|
652
1247
|
// A "once" utility.
|
@@ -662,11 +1257,11 @@ module.exports = function(fn) {
|
|
662
1257
|
};
|
663
1258
|
});
|
664
1259
|
|
665
|
-
var once$
|
1260
|
+
var once$2 = interopDefault(once$1);
|
666
1261
|
|
667
1262
|
|
668
1263
|
var require$$0$3 = Object.freeze({
|
669
|
-
default: once$
|
1264
|
+
default: once$2
|
670
1265
|
});
|
671
1266
|
|
672
1267
|
var index$1 = createCommonjsModule(function (module) {
|
@@ -886,6 +1481,22 @@ function getError(req, err) {
|
|
886
1481
|
|
887
1482
|
var httpplease = interopDefault(index$1);
|
888
1483
|
|
1484
|
+
/*
|
1485
|
+
Copyright 2017 Stratumn SAS. All rights reserved.
|
1486
|
+
|
1487
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
1488
|
+
you may not use this file except in compliance with the License.
|
1489
|
+
You may obtain a copy of the License at
|
1490
|
+
|
1491
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
1492
|
+
|
1493
|
+
Unless required by applicable law or agreed to in writing, software
|
1494
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
1495
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
1496
|
+
See the License for the specific language governing permissions and
|
1497
|
+
limitations under the License.
|
1498
|
+
*/
|
1499
|
+
|
889
1500
|
function deprecated(oldFunc, newFunc) {
|
890
1501
|
if (!newFunc) {
|
891
1502
|
console.warn("WARNING: " + oldFunc + " is deprecated.");
|
@@ -894,6 +1505,22 @@ function deprecated(oldFunc, newFunc) {
|
|
894
1505
|
}
|
895
1506
|
}
|
896
1507
|
|
1508
|
+
/*
|
1509
|
+
Copyright 2017 Stratumn SAS. All rights reserved.
|
1510
|
+
|
1511
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
1512
|
+
you may not use this file except in compliance with the License.
|
1513
|
+
You may obtain a copy of the License at
|
1514
|
+
|
1515
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
1516
|
+
|
1517
|
+
Unless required by applicable law or agreed to in writing, software
|
1518
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
1519
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
1520
|
+
See the License for the specific language governing permissions and
|
1521
|
+
limitations under the License.
|
1522
|
+
*/
|
1523
|
+
|
897
1524
|
/**
|
898
1525
|
* Makes a query string.
|
899
1526
|
* @param {object} obj - an object of keys
|
@@ -913,6 +1540,65 @@ function makeQueryString(obj) {
|
|
913
1540
|
return '';
|
914
1541
|
}
|
915
1542
|
|
1543
|
+
/*
|
1544
|
+
Copyright 2017 Stratumn SAS. All rights reserved.
|
1545
|
+
|
1546
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
1547
|
+
you may not use this file except in compliance with the License.
|
1548
|
+
You may obtain a copy of the License at
|
1549
|
+
|
1550
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
1551
|
+
|
1552
|
+
Unless required by applicable law or agreed to in writing, software
|
1553
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
1554
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
1555
|
+
See the License for the specific language governing permissions and
|
1556
|
+
limitations under the License.
|
1557
|
+
*/
|
1558
|
+
|
1559
|
+
/**
|
1560
|
+
* Calls a function that returns a Promise until a condition is reached
|
1561
|
+
* @param {function} condition - while condition is true body will keep being called
|
1562
|
+
* @param {function} body - a function that is repeatedly called while condition is true
|
1563
|
+
* @returns {Promise} a Promise that resolves when the condition is no longer true
|
1564
|
+
*/
|
1565
|
+
function promiseWhile(condition, body) {
|
1566
|
+
return new Promise(function (resolve, reject) {
|
1567
|
+
function loop() {
|
1568
|
+
body().then(function () {
|
1569
|
+
// When the result of calling `condition` is no longer true, we are
|
1570
|
+
// done.
|
1571
|
+
if (!condition()) {
|
1572
|
+
resolve();
|
1573
|
+
} else {
|
1574
|
+
loop();
|
1575
|
+
}
|
1576
|
+
}).catch(reject);
|
1577
|
+
}
|
1578
|
+
|
1579
|
+
// Start running the loop in the next tick so that this function is
|
1580
|
+
// completely async. It would be unexpected if `body` was called
|
1581
|
+
// synchronously the first time.
|
1582
|
+
setImmediate(loop);
|
1583
|
+
});
|
1584
|
+
}
|
1585
|
+
|
1586
|
+
/*
|
1587
|
+
Copyright 2017 Stratumn SAS. All rights reserved.
|
1588
|
+
|
1589
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
1590
|
+
you may not use this file except in compliance with the License.
|
1591
|
+
You may obtain a copy of the License at
|
1592
|
+
|
1593
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
1594
|
+
|
1595
|
+
Unless required by applicable law or agreed to in writing, software
|
1596
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
1597
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
1598
|
+
See the License for the specific language governing permissions and
|
1599
|
+
limitations under the License.
|
1600
|
+
*/
|
1601
|
+
|
916
1602
|
var request = httpplease.use(json$1);
|
917
1603
|
|
918
1604
|
function send(method, url, args) {
|
@@ -937,8 +1623,168 @@ function post(url, args) {
|
|
937
1623
|
return send('POST', url, args);
|
938
1624
|
}
|
939
1625
|
|
1626
|
+
var asyncGenerator$1 = function () {
|
1627
|
+
function AwaitValue(value) {
|
1628
|
+
this.value = value;
|
1629
|
+
}
|
1630
|
+
|
1631
|
+
function AsyncGenerator(gen) {
|
1632
|
+
var front, back;
|
1633
|
+
|
1634
|
+
function send(key, arg) {
|
1635
|
+
return new Promise(function (resolve, reject) {
|
1636
|
+
var request = {
|
1637
|
+
key: key,
|
1638
|
+
arg: arg,
|
1639
|
+
resolve: resolve,
|
1640
|
+
reject: reject,
|
1641
|
+
next: null
|
1642
|
+
};
|
1643
|
+
|
1644
|
+
if (back) {
|
1645
|
+
back = back.next = request;
|
1646
|
+
} else {
|
1647
|
+
front = back = request;
|
1648
|
+
resume(key, arg);
|
1649
|
+
}
|
1650
|
+
});
|
1651
|
+
}
|
1652
|
+
|
1653
|
+
function resume(key, arg) {
|
1654
|
+
try {
|
1655
|
+
var result = gen[key](arg);
|
1656
|
+
var value = result.value;
|
1657
|
+
|
1658
|
+
if (value instanceof AwaitValue) {
|
1659
|
+
Promise.resolve(value.value).then(function (arg) {
|
1660
|
+
resume("next", arg);
|
1661
|
+
}, function (arg) {
|
1662
|
+
resume("throw", arg);
|
1663
|
+
});
|
1664
|
+
} else {
|
1665
|
+
settle(result.done ? "return" : "normal", result.value);
|
1666
|
+
}
|
1667
|
+
} catch (err) {
|
1668
|
+
settle("throw", err);
|
1669
|
+
}
|
1670
|
+
}
|
1671
|
+
|
1672
|
+
function settle(type, value) {
|
1673
|
+
switch (type) {
|
1674
|
+
case "return":
|
1675
|
+
front.resolve({
|
1676
|
+
value: value,
|
1677
|
+
done: true
|
1678
|
+
});
|
1679
|
+
break;
|
1680
|
+
|
1681
|
+
case "throw":
|
1682
|
+
front.reject(value);
|
1683
|
+
break;
|
1684
|
+
|
1685
|
+
default:
|
1686
|
+
front.resolve({
|
1687
|
+
value: value,
|
1688
|
+
done: false
|
1689
|
+
});
|
1690
|
+
break;
|
1691
|
+
}
|
1692
|
+
|
1693
|
+
front = front.next;
|
1694
|
+
|
1695
|
+
if (front) {
|
1696
|
+
resume(front.key, front.arg);
|
1697
|
+
} else {
|
1698
|
+
back = null;
|
1699
|
+
}
|
1700
|
+
}
|
1701
|
+
|
1702
|
+
this._invoke = send;
|
1703
|
+
|
1704
|
+
if (typeof gen.return !== "function") {
|
1705
|
+
this.return = undefined;
|
1706
|
+
}
|
1707
|
+
}
|
1708
|
+
|
1709
|
+
if (typeof Symbol === "function" && Symbol.asyncIterator) {
|
1710
|
+
AsyncGenerator.prototype[Symbol.asyncIterator] = function () {
|
1711
|
+
return this;
|
1712
|
+
};
|
1713
|
+
}
|
1714
|
+
|
1715
|
+
AsyncGenerator.prototype.next = function (arg) {
|
1716
|
+
return this._invoke("next", arg);
|
1717
|
+
};
|
1718
|
+
|
1719
|
+
AsyncGenerator.prototype.throw = function (arg) {
|
1720
|
+
return this._invoke("throw", arg);
|
1721
|
+
};
|
1722
|
+
|
1723
|
+
AsyncGenerator.prototype.return = function (arg) {
|
1724
|
+
return this._invoke("return", arg);
|
1725
|
+
};
|
1726
|
+
|
1727
|
+
return {
|
1728
|
+
wrap: function (fn) {
|
1729
|
+
return function () {
|
1730
|
+
return new AsyncGenerator(fn.apply(this, arguments));
|
1731
|
+
};
|
1732
|
+
},
|
1733
|
+
await: function (value) {
|
1734
|
+
return new AwaitValue(value);
|
1735
|
+
}
|
1736
|
+
};
|
1737
|
+
}();
|
1738
|
+
|
1739
|
+
var toConsumableArray$1 = function (arr) {
|
1740
|
+
if (Array.isArray(arr)) {
|
1741
|
+
for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];
|
1742
|
+
|
1743
|
+
return arr2;
|
1744
|
+
} else {
|
1745
|
+
return Array.from(arr);
|
1746
|
+
}
|
1747
|
+
};
|
1748
|
+
|
1749
|
+
/*
|
1750
|
+
Copyright 2017 Stratumn SAS. All rights reserved.
|
1751
|
+
|
1752
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
1753
|
+
you may not use this file except in compliance with the License.
|
1754
|
+
You may obtain a copy of the License at
|
1755
|
+
|
1756
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
1757
|
+
|
1758
|
+
Unless required by applicable law or agreed to in writing, software
|
1759
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
1760
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
1761
|
+
See the License for the specific language governing permissions and
|
1762
|
+
limitations under the License.
|
1763
|
+
*/
|
1764
|
+
|
1765
|
+
var DEFAULT_BATCH_SIZE = 20;
|
1766
|
+
|
940
1767
|
function findSegments(agent) {
|
941
|
-
var opts = arguments.length
|
1768
|
+
var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
1769
|
+
|
1770
|
+
var options = Object.assign({}, opts);
|
1771
|
+
if (opts.limit === -1) {
|
1772
|
+
options.limit = options.batchSize || DEFAULT_BATCH_SIZE;
|
1773
|
+
delete options.batchSize;
|
1774
|
+
options.offset = 0;
|
1775
|
+
var segments = [];
|
1776
|
+
|
1777
|
+
return promiseWhile(function () {
|
1778
|
+
return segments.length === options.limit;
|
1779
|
+
}, function () {
|
1780
|
+
return findSegments(agent, options).then(function (newSegments) {
|
1781
|
+
segments.push.apply(segments, toConsumableArray$1(newSegments));
|
1782
|
+
options.offset += options.limit;
|
1783
|
+
});
|
1784
|
+
}).then(function () {
|
1785
|
+
return segments;
|
1786
|
+
});
|
1787
|
+
}
|
942
1788
|
|
943
1789
|
return get$1(agent.url + '/segments' + makeQueryString(opts)).then(function (res) {
|
944
1790
|
return res.body.map(function (obj) {
|
@@ -947,14 +1793,46 @@ function findSegments(agent) {
|
|
947
1793
|
});
|
948
1794
|
}
|
949
1795
|
|
1796
|
+
/*
|
1797
|
+
Copyright 2017 Stratumn SAS. All rights reserved.
|
1798
|
+
|
1799
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
1800
|
+
you may not use this file except in compliance with the License.
|
1801
|
+
You may obtain a copy of the License at
|
1802
|
+
|
1803
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
1804
|
+
|
1805
|
+
Unless required by applicable law or agreed to in writing, software
|
1806
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
1807
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
1808
|
+
See the License for the specific language governing permissions and
|
1809
|
+
limitations under the License.
|
1810
|
+
*/
|
1811
|
+
|
950
1812
|
function getBranches(agent, prevLinkHash) {
|
951
|
-
var tags = arguments.length
|
1813
|
+
var tags = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
|
952
1814
|
|
953
1815
|
deprecated('Agent#getBranches(agent, prevLinkHash, tags = [])', 'Agent#findSegments(agent, filter)');
|
954
1816
|
|
955
1817
|
return findSegments(agent, { prevLinkHash: prevLinkHash, tags: tags });
|
956
1818
|
}
|
957
1819
|
|
1820
|
+
/*
|
1821
|
+
Copyright 2017 Stratumn SAS. All rights reserved.
|
1822
|
+
|
1823
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
1824
|
+
you may not use this file except in compliance with the License.
|
1825
|
+
You may obtain a copy of the License at
|
1826
|
+
|
1827
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
1828
|
+
|
1829
|
+
Unless required by applicable law or agreed to in writing, software
|
1830
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
1831
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
1832
|
+
See the License for the specific language governing permissions and
|
1833
|
+
limitations under the License.
|
1834
|
+
*/
|
1835
|
+
|
958
1836
|
function segmentify(agent, obj) {
|
959
1837
|
Object.keys(agent.agentInfo.actions).filter(function (key) {
|
960
1838
|
return ['init'].indexOf(key) < 0;
|
@@ -1006,6 +1884,22 @@ function segmentify(agent, obj) {
|
|
1006
1884
|
return obj;
|
1007
1885
|
}
|
1008
1886
|
|
1887
|
+
/*
|
1888
|
+
Copyright 2017 Stratumn SAS. All rights reserved.
|
1889
|
+
|
1890
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
1891
|
+
you may not use this file except in compliance with the License.
|
1892
|
+
You may obtain a copy of the License at
|
1893
|
+
|
1894
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
1895
|
+
|
1896
|
+
Unless required by applicable law or agreed to in writing, software
|
1897
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
1898
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
1899
|
+
See the License for the specific language governing permissions and
|
1900
|
+
limitations under the License.
|
1901
|
+
*/
|
1902
|
+
|
1009
1903
|
function createMap(agent) {
|
1010
1904
|
for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
1011
1905
|
args[_key - 1] = arguments[_key];
|
@@ -1016,34 +1910,114 @@ function createMap(agent) {
|
|
1016
1910
|
});
|
1017
1911
|
}
|
1018
1912
|
|
1913
|
+
/*
|
1914
|
+
Copyright 2017 Stratumn SAS. All rights reserved.
|
1915
|
+
|
1916
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
1917
|
+
you may not use this file except in compliance with the License.
|
1918
|
+
You may obtain a copy of the License at
|
1919
|
+
|
1920
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
1921
|
+
|
1922
|
+
Unless required by applicable law or agreed to in writing, software
|
1923
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
1924
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
1925
|
+
See the License for the specific language governing permissions and
|
1926
|
+
limitations under the License.
|
1927
|
+
*/
|
1928
|
+
|
1019
1929
|
function getSegment(agent, linkHash) {
|
1020
1930
|
return get$1(agent.url + '/segments/' + linkHash).then(function (res) {
|
1021
1931
|
return segmentify(agent, res.body);
|
1022
1932
|
});
|
1023
1933
|
}
|
1024
1934
|
|
1935
|
+
/*
|
1936
|
+
Copyright 2017 Stratumn SAS. All rights reserved.
|
1937
|
+
|
1938
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
1939
|
+
you may not use this file except in compliance with the License.
|
1940
|
+
You may obtain a copy of the License at
|
1941
|
+
|
1942
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
1943
|
+
|
1944
|
+
Unless required by applicable law or agreed to in writing, software
|
1945
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
1946
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
1947
|
+
See the License for the specific language governing permissions and
|
1948
|
+
limitations under the License.
|
1949
|
+
*/
|
1950
|
+
|
1025
1951
|
function getMapIds(agent) {
|
1026
|
-
var opts = arguments.length
|
1952
|
+
var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
1027
1953
|
|
1028
1954
|
return get$1(agent.url + '/maps' + makeQueryString(opts)).then(function (res) {
|
1029
1955
|
return res.body;
|
1030
1956
|
});
|
1031
1957
|
}
|
1032
1958
|
|
1959
|
+
/*
|
1960
|
+
Copyright 2017 Stratumn SAS. All rights reserved.
|
1961
|
+
|
1962
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
1963
|
+
you may not use this file except in compliance with the License.
|
1964
|
+
You may obtain a copy of the License at
|
1965
|
+
|
1966
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
1967
|
+
|
1968
|
+
Unless required by applicable law or agreed to in writing, software
|
1969
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
1970
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
1971
|
+
See the License for the specific language governing permissions and
|
1972
|
+
limitations under the License.
|
1973
|
+
*/
|
1974
|
+
|
1033
1975
|
function getLink(agent, hash) {
|
1034
1976
|
deprecated('Agent#getLink(agent, hash)', 'Agent#getSegment(agent, hash)');
|
1035
1977
|
|
1036
1978
|
return getSegment(agent, hash);
|
1037
1979
|
}
|
1038
1980
|
|
1981
|
+
/*
|
1982
|
+
Copyright 2017 Stratumn SAS. All rights reserved.
|
1983
|
+
|
1984
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
1985
|
+
you may not use this file except in compliance with the License.
|
1986
|
+
You may obtain a copy of the License at
|
1987
|
+
|
1988
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
1989
|
+
|
1990
|
+
Unless required by applicable law or agreed to in writing, software
|
1991
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
1992
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
1993
|
+
See the License for the specific language governing permissions and
|
1994
|
+
limitations under the License.
|
1995
|
+
*/
|
1996
|
+
|
1039
1997
|
function getMap(agent, mapId) {
|
1040
|
-
var tags = arguments.length
|
1998
|
+
var tags = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
|
1041
1999
|
|
1042
2000
|
deprecated('getMap(agent, mapId, tags = [])', 'findSegments(agent, filter)');
|
1043
2001
|
|
1044
2002
|
return findSegments(agent, { mapId: mapId, tags: tags });
|
1045
2003
|
}
|
1046
2004
|
|
2005
|
+
/*
|
2006
|
+
Copyright 2017 Stratumn SAS. All rights reserved.
|
2007
|
+
|
2008
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
2009
|
+
you may not use this file except in compliance with the License.
|
2010
|
+
You may obtain a copy of the License at
|
2011
|
+
|
2012
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
2013
|
+
|
2014
|
+
Unless required by applicable law or agreed to in writing, software
|
2015
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
2016
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
2017
|
+
See the License for the specific language governing permissions and
|
2018
|
+
limitations under the License.
|
2019
|
+
*/
|
2020
|
+
|
1047
2021
|
// Deprecated.
|
1048
2022
|
function getAgent(url) {
|
1049
2023
|
return get$1(url).then(function (res) {
|
@@ -1064,6 +2038,22 @@ function getAgent(url) {
|
|
1064
2038
|
});
|
1065
2039
|
}
|
1066
2040
|
|
2041
|
+
/*
|
2042
|
+
Copyright 2017 Stratumn SAS. All rights reserved.
|
2043
|
+
|
2044
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
2045
|
+
you may not use this file except in compliance with the License.
|
2046
|
+
You may obtain a copy of the License at
|
2047
|
+
|
2048
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
2049
|
+
|
2050
|
+
Unless required by applicable law or agreed to in writing, software
|
2051
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
2052
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
2053
|
+
See the License for the specific language governing permissions and
|
2054
|
+
limitations under the License.
|
2055
|
+
*/
|
2056
|
+
|
1067
2057
|
function fromSegment(obj) {
|
1068
2058
|
return getAgent(obj.meta.agentUrl || obj.meta.applicationLocation).then(function (agent) {
|
1069
2059
|
var segment = segmentify(agent, obj);
|
@@ -1071,6 +2061,22 @@ function fromSegment(obj) {
|
|
1071
2061
|
});
|
1072
2062
|
}
|
1073
2063
|
|
2064
|
+
/*
|
2065
|
+
Copyright 2017 Stratumn SAS. All rights reserved.
|
2066
|
+
|
2067
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
2068
|
+
you may not use this file except in compliance with the License.
|
2069
|
+
You may obtain a copy of the License at
|
2070
|
+
|
2071
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
2072
|
+
|
2073
|
+
Unless required by applicable law or agreed to in writing, software
|
2074
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
2075
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
2076
|
+
See the License for the specific language governing permissions and
|
2077
|
+
limitations under the License.
|
2078
|
+
*/
|
2079
|
+
|
1074
2080
|
function loadLink(obj) {
|
1075
2081
|
deprecated('loadLink(obj)', 'fromSegment(obj)');
|
1076
2082
|
|
@@ -1080,6 +2086,22 @@ function loadLink(obj) {
|
|
1080
2086
|
});
|
1081
2087
|
}
|
1082
2088
|
|
2089
|
+
/*
|
2090
|
+
Copyright 2017 Stratumn SAS. All rights reserved.
|
2091
|
+
|
2092
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
2093
|
+
you may not use this file except in compliance with the License.
|
2094
|
+
You may obtain a copy of the License at
|
2095
|
+
|
2096
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
2097
|
+
|
2098
|
+
Unless required by applicable law or agreed to in writing, software
|
2099
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
2100
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
2101
|
+
See the License for the specific language governing permissions and
|
2102
|
+
limitations under the License.
|
2103
|
+
*/
|
2104
|
+
|
1083
2105
|
function resolveLinks(segments) {
|
1084
2106
|
return Promise.all(segments.map(function (segment) {
|
1085
2107
|
if (!segment.link.state) {
|
@@ -1091,6 +2113,22 @@ function resolveLinks(segments) {
|
|
1091
2113
|
}));
|
1092
2114
|
}
|
1093
2115
|
|
2116
|
+
/*
|
2117
|
+
Copyright 2017 Stratumn SAS. All rights reserved.
|
2118
|
+
|
2119
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
2120
|
+
you may not use this file except in compliance with the License.
|
2121
|
+
You may obtain a copy of the License at
|
2122
|
+
|
2123
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
2124
|
+
|
2125
|
+
Unless required by applicable law or agreed to in writing, software
|
2126
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
2127
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
2128
|
+
See the License for the specific language governing permissions and
|
2129
|
+
limitations under the License.
|
2130
|
+
*/
|
2131
|
+
|
1094
2132
|
function wrap(arrayOrObject) {
|
1095
2133
|
if (arrayOrObject instanceof Array) {
|
1096
2134
|
return arrayOrObject;
|
@@ -1098,6 +2136,22 @@ function wrap(arrayOrObject) {
|
|
1098
2136
|
return [arrayOrObject];
|
1099
2137
|
}
|
1100
2138
|
|
2139
|
+
/*
|
2140
|
+
Copyright 2017 Stratumn SAS. All rights reserved.
|
2141
|
+
|
2142
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
2143
|
+
you may not use this file except in compliance with the License.
|
2144
|
+
You may obtain a copy of the License at
|
2145
|
+
|
2146
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
2147
|
+
|
2148
|
+
Unless required by applicable law or agreed to in writing, software
|
2149
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
2150
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
2151
|
+
See the License for the specific language governing permissions and
|
2152
|
+
limitations under the License.
|
2153
|
+
*/
|
2154
|
+
|
1101
2155
|
function parseIfJson(object) {
|
1102
2156
|
if ((typeof object === 'undefined' ? 'undefined' : _typeof(object)) !== 'object') {
|
1103
2157
|
object = JSON.parse(object);
|
@@ -1105,6 +2159,22 @@ function parseIfJson(object) {
|
|
1105
2159
|
return object;
|
1106
2160
|
}
|
1107
2161
|
|
2162
|
+
/*
|
2163
|
+
Copyright 2017 Stratumn SAS. All rights reserved.
|
2164
|
+
|
2165
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
2166
|
+
you may not use this file except in compliance with the License.
|
2167
|
+
You may obtain a copy of the License at
|
2168
|
+
|
2169
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
2170
|
+
|
2171
|
+
Unless required by applicable law or agreed to in writing, software
|
2172
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
2173
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
2174
|
+
See the License for the specific language governing permissions and
|
2175
|
+
limitations under the License.
|
2176
|
+
*/
|
2177
|
+
|
1108
2178
|
function flatten(arr) {
|
1109
2179
|
var _ref;
|
1110
2180
|
|
@@ -1112,12 +2182,44 @@ function flatten(arr) {
|
|
1112
2182
|
return flat.some(Array.isArray) ? flatten(flat) : flat;
|
1113
2183
|
}
|
1114
2184
|
|
2185
|
+
/*
|
2186
|
+
Copyright 2017 Stratumn SAS. All rights reserved.
|
2187
|
+
|
2188
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
2189
|
+
you may not use this file except in compliance with the License.
|
2190
|
+
You may obtain a copy of the License at
|
2191
|
+
|
2192
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
2193
|
+
|
2194
|
+
Unless required by applicable law or agreed to in writing, software
|
2195
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
2196
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
2197
|
+
See the License for the specific language governing permissions and
|
2198
|
+
limitations under the License.
|
2199
|
+
*/
|
2200
|
+
|
1115
2201
|
function tagsSet(chainscript) {
|
1116
2202
|
return new Set(flatten(chainscript.map(function (segment) {
|
1117
2203
|
return segment.link.meta.tags;
|
1118
2204
|
})));
|
1119
2205
|
}
|
1120
2206
|
|
2207
|
+
/*
|
2208
|
+
Copyright 2017 Stratumn SAS. All rights reserved.
|
2209
|
+
|
2210
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
2211
|
+
you may not use this file except in compliance with the License.
|
2212
|
+
You may obtain a copy of the License at
|
2213
|
+
|
2214
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
2215
|
+
|
2216
|
+
Unless required by applicable law or agreed to in writing, software
|
2217
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
2218
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
2219
|
+
See the License for the specific language governing permissions and
|
2220
|
+
limitations under the License.
|
2221
|
+
*/
|
2222
|
+
|
1121
2223
|
var defaultOptions = {
|
1122
2224
|
withArgs: false,
|
1123
2225
|
duration: 750,
|
@@ -1184,7 +2286,7 @@ var ChainTreeBuilder = function () {
|
|
1184
2286
|
key: '_load',
|
1185
2287
|
value: function _load(map) {
|
1186
2288
|
return getAgent(map.applicationUrl).then(function (app) {
|
1187
|
-
return app.findSegments({ mapId: map.id });
|
2289
|
+
return app.findSegments({ mapId: map.id, limit: -1 });
|
1188
2290
|
}).catch(function (res) {
|
1189
2291
|
return console.log(res);
|
1190
2292
|
});
|
@@ -1417,23 +2519,22 @@ module.exports = stringify
|
|
1417
2519
|
var stringify = interopDefault(index$4);
|
1418
2520
|
|
1419
2521
|
var sha256 = createCommonjsModule(function (module) {
|
1420
|
-
|
1421
|
-
* js-sha256
|
1422
|
-
* https://github.com/emn178/js-sha256
|
1423
|
-
*
|
1424
|
-
* Copyright 2014-2015, emn178@gmail.com
|
2522
|
+
/**
|
2523
|
+
* [js-sha256]{@link https://github.com/emn178/js-sha256}
|
1425
2524
|
*
|
1426
|
-
*
|
1427
|
-
*
|
2525
|
+
* @version 0.3.2
|
2526
|
+
* @author Chen, Yi-Cyuan [emn178@gmail.com]
|
2527
|
+
* @copyright Chen, Yi-Cyuan 2014-2016
|
2528
|
+
* @license MIT
|
1428
2529
|
*/
|
1429
|
-
|
2530
|
+
(function (root) {
|
1430
2531
|
'use strict';
|
1431
2532
|
|
1432
|
-
var NODE_JS = typeof
|
1433
|
-
if(NODE_JS) {
|
2533
|
+
var NODE_JS = typeof process == 'object' && process.versions && process.versions.node;
|
2534
|
+
if (NODE_JS) {
|
1434
2535
|
root = commonjsGlobal;
|
1435
2536
|
}
|
1436
|
-
var
|
2537
|
+
var COMMON_JS = !root.JS_SHA256_TEST && typeof module == 'object' && module.exports;
|
1437
2538
|
var HEX_CHARS = '0123456789abcdef'.split('');
|
1438
2539
|
var EXTRA = [-2147483648, 8388608, 32768, 128];
|
1439
2540
|
var SHIFT = [24, 16, 8, 0];
|
@@ -1448,13 +2549,13 @@ var sha256 = createCommonjsModule(function (module) {
|
|
1448
2549
|
|
1449
2550
|
var blocks = [];
|
1450
2551
|
|
1451
|
-
var sha224 = function(message) {
|
2552
|
+
var sha224 = function (message) {
|
1452
2553
|
return sha256(message, true);
|
1453
2554
|
};
|
1454
2555
|
|
1455
|
-
var sha256 = function(message, is224) {
|
1456
|
-
var notString = typeof
|
1457
|
-
if(notString && message.constructor == root.ArrayBuffer) {
|
2556
|
+
var sha256 = function (message, is224) {
|
2557
|
+
var notString = typeof message != 'string';
|
2558
|
+
if (notString && message.constructor == root.ArrayBuffer) {
|
1458
2559
|
message = new Uint8Array(message);
|
1459
2560
|
}
|
1460
2561
|
|
@@ -1462,7 +2563,7 @@ var sha256 = createCommonjsModule(function (module) {
|
|
1462
2563
|
i, j, index = 0, start = 0, bytes = 0, length = message.length,
|
1463
2564
|
s0, s1, maj, t1, t2, ch, ab, da, cd, bc;
|
1464
2565
|
|
1465
|
-
if(is224) {
|
2566
|
+
if (is224) {
|
1466
2567
|
h0 = 0xc1059ed8;
|
1467
2568
|
h1 = 0x367cd507;
|
1468
2569
|
h2 = 0x3070dd17;
|
@@ -1488,12 +2589,12 @@ var sha256 = createCommonjsModule(function (module) {
|
|
1488
2589
|
blocks[4] = blocks[5] = blocks[6] = blocks[7] =
|
1489
2590
|
blocks[8] = blocks[9] = blocks[10] = blocks[11] =
|
1490
2591
|
blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;
|
1491
|
-
if(notString) {
|
1492
|
-
for (i = start;index < length && i < 64
|
2592
|
+
if (notString) {
|
2593
|
+
for (i = start;index < length && i < 64;++index) {
|
1493
2594
|
blocks[i >> 2] |= message[index] << SHIFT[i++ & 3];
|
1494
2595
|
}
|
1495
2596
|
} else {
|
1496
|
-
for (i = start;index < length && i < 64
|
2597
|
+
for (i = start;index < length && i < 64;++index) {
|
1497
2598
|
code = message.charCodeAt(index);
|
1498
2599
|
if (code < 0x80) {
|
1499
2600
|
blocks[i >> 2] |= code << SHIFT[i++ & 3];
|
@@ -1515,18 +2616,18 @@ var sha256 = createCommonjsModule(function (module) {
|
|
1515
2616
|
}
|
1516
2617
|
bytes += i - start;
|
1517
2618
|
start = i - 64;
|
1518
|
-
if(index == length) {
|
2619
|
+
if (index == length) {
|
1519
2620
|
blocks[i >> 2] |= EXTRA[i & 3];
|
1520
2621
|
++index;
|
1521
2622
|
}
|
1522
2623
|
block = blocks[16];
|
1523
|
-
if(index > length && i < 56) {
|
2624
|
+
if (index > length && i < 56) {
|
1524
2625
|
blocks[15] = bytes << 3;
|
1525
2626
|
end = true;
|
1526
2627
|
}
|
1527
2628
|
|
1528
2629
|
var a = h0, b = h1, c = h2, d = h3, e = h4, f = h5, g = h6, h = h7;
|
1529
|
-
for(j = 16;j < 64;++j) {
|
2630
|
+
for (j = 16;j < 64;++j) {
|
1530
2631
|
// rightrotate
|
1531
2632
|
t1 = blocks[j - 15];
|
1532
2633
|
s0 = ((t1 >>> 7) | (t1 << 25)) ^ ((t1 >>> 18) | (t1 << 14)) ^ (t1 >>> 3);
|
@@ -1536,9 +2637,9 @@ var sha256 = createCommonjsModule(function (module) {
|
|
1536
2637
|
}
|
1537
2638
|
|
1538
2639
|
bc = b & c;
|
1539
|
-
for(j = 0;j < 64;j += 4) {
|
1540
|
-
if(first) {
|
1541
|
-
if(is224) {
|
2640
|
+
for (j = 0;j < 64;j += 4) {
|
2641
|
+
if (first) {
|
2642
|
+
if (is224) {
|
1542
2643
|
ab = 300032;
|
1543
2644
|
t1 = blocks[0] - 1413257819;
|
1544
2645
|
h = t1 - 150054599 << 0;
|
@@ -1598,7 +2699,7 @@ var sha256 = createCommonjsModule(function (module) {
|
|
1598
2699
|
h5 = h5 + f << 0;
|
1599
2700
|
h6 = h6 + g << 0;
|
1600
2701
|
h7 = h7 + h << 0;
|
1601
|
-
} while(!end);
|
2702
|
+
} while (!end);
|
1602
2703
|
|
1603
2704
|
var hex = HEX_CHARS[(h0 >> 28) & 0x0F] + HEX_CHARS[(h0 >> 24) & 0x0F] +
|
1604
2705
|
HEX_CHARS[(h0 >> 20) & 0x0F] + HEX_CHARS[(h0 >> 16) & 0x0F] +
|
@@ -1628,7 +2729,7 @@ var sha256 = createCommonjsModule(function (module) {
|
|
1628
2729
|
HEX_CHARS[(h6 >> 20) & 0x0F] + HEX_CHARS[(h6 >> 16) & 0x0F] +
|
1629
2730
|
HEX_CHARS[(h6 >> 12) & 0x0F] + HEX_CHARS[(h6 >> 8) & 0x0F] +
|
1630
2731
|
HEX_CHARS[(h6 >> 4) & 0x0F] + HEX_CHARS[h6 & 0x0F];
|
1631
|
-
if(!is224) {
|
2732
|
+
if (!is224) {
|
1632
2733
|
hex += HEX_CHARS[(h7 >> 28) & 0x0F] + HEX_CHARS[(h7 >> 24) & 0x0F] +
|
1633
2734
|
HEX_CHARS[(h7 >> 20) & 0x0F] + HEX_CHARS[(h7 >> 16) & 0x0F] +
|
1634
2735
|
HEX_CHARS[(h7 >> 12) & 0x0F] + HEX_CHARS[(h7 >> 8) & 0x0F] +
|
@@ -1637,11 +2738,11 @@ var sha256 = createCommonjsModule(function (module) {
|
|
1637
2738
|
return hex;
|
1638
2739
|
};
|
1639
2740
|
|
1640
|
-
if(
|
2741
|
+
if (COMMON_JS) {
|
1641
2742
|
sha256.sha256 = sha256;
|
1642
2743
|
sha256.sha224 = sha224;
|
1643
2744
|
module.exports = sha256;
|
1644
|
-
} else if(root) {
|
2745
|
+
} else if (root) {
|
1645
2746
|
root.sha256 = sha256;
|
1646
2747
|
root.sha224 = sha224;
|
1647
2748
|
}
|
@@ -1650,6 +2751,22 @@ var sha256 = createCommonjsModule(function (module) {
|
|
1650
2751
|
|
1651
2752
|
var sha256$1 = interopDefault(sha256);
|
1652
2753
|
|
2754
|
+
/*
|
2755
|
+
Copyright 2017 Stratumn SAS. All rights reserved.
|
2756
|
+
|
2757
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
2758
|
+
you may not use this file except in compliance with the License.
|
2759
|
+
You may obtain a copy of the License at
|
2760
|
+
|
2761
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
2762
|
+
|
2763
|
+
Unless required by applicable law or agreed to in writing, software
|
2764
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
2765
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
2766
|
+
See the License for the specific language governing permissions and
|
2767
|
+
limitations under the License.
|
2768
|
+
*/
|
2769
|
+
|
1653
2770
|
/**
|
1654
2771
|
* Canonically hashes a json object.
|
1655
2772
|
* @param {Object} obj the json object
|
@@ -1658,20 +2775,12 @@ function hashJson(obj) {
|
|
1658
2775
|
return sha256$1(stringify(obj));
|
1659
2776
|
}
|
1660
2777
|
|
1661
|
-
var _buffer;
|
1662
|
-
var _slowbuffer;
|
1663
|
-
var _INSPECT_MAX_BYTES;
|
1664
|
-
(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,___mod,_expor_){
|
1665
|
-
'use strict'
|
1666
|
-
|
1667
|
-
_expor_.toByteArray = toByteArray
|
1668
|
-
_expor_.fromByteArray = fromByteArray
|
1669
|
-
|
1670
2778
|
var lookup = []
|
1671
2779
|
var revLookup = []
|
1672
2780
|
var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
|
1673
|
-
|
2781
|
+
var inited = false;
|
1674
2782
|
function init () {
|
2783
|
+
inited = true;
|
1675
2784
|
var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
|
1676
2785
|
for (var i = 0, len = code.length; i < len; ++i) {
|
1677
2786
|
lookup[i] = code[i]
|
@@ -1682,9 +2791,10 @@ function init () {
|
|
1682
2791
|
revLookup['_'.charCodeAt(0)] = 63
|
1683
2792
|
}
|
1684
2793
|
|
1685
|
-
init()
|
1686
|
-
|
1687
2794
|
function toByteArray (b64) {
|
2795
|
+
if (!inited) {
|
2796
|
+
init();
|
2797
|
+
}
|
1688
2798
|
var i, j, l, tmp, placeHolders, arr
|
1689
2799
|
var len = b64.length
|
1690
2800
|
|
@@ -1730,50 +2840,142 @@ function tripletToBase64 (num) {
|
|
1730
2840
|
return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F]
|
1731
2841
|
}
|
1732
2842
|
|
1733
|
-
function encodeChunk (uint8, start, end) {
|
1734
|
-
var tmp
|
1735
|
-
var output = []
|
1736
|
-
for (var i = start; i < end; i += 3) {
|
1737
|
-
tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2])
|
1738
|
-
output.push(tripletToBase64(tmp))
|
2843
|
+
function encodeChunk (uint8, start, end) {
|
2844
|
+
var tmp
|
2845
|
+
var output = []
|
2846
|
+
for (var i = start; i < end; i += 3) {
|
2847
|
+
tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2])
|
2848
|
+
output.push(tripletToBase64(tmp))
|
2849
|
+
}
|
2850
|
+
return output.join('')
|
2851
|
+
}
|
2852
|
+
|
2853
|
+
function fromByteArray (uint8) {
|
2854
|
+
if (!inited) {
|
2855
|
+
init();
|
2856
|
+
}
|
2857
|
+
var tmp
|
2858
|
+
var len = uint8.length
|
2859
|
+
var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes
|
2860
|
+
var output = ''
|
2861
|
+
var parts = []
|
2862
|
+
var maxChunkLength = 16383 // must be multiple of 3
|
2863
|
+
|
2864
|
+
// go through the array every three bytes, we'll deal with trailing stuff later
|
2865
|
+
for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
|
2866
|
+
parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))
|
2867
|
+
}
|
2868
|
+
|
2869
|
+
// pad the end with zeros, but make sure to not forget the extra bytes
|
2870
|
+
if (extraBytes === 1) {
|
2871
|
+
tmp = uint8[len - 1]
|
2872
|
+
output += lookup[tmp >> 2]
|
2873
|
+
output += lookup[(tmp << 4) & 0x3F]
|
2874
|
+
output += '=='
|
2875
|
+
} else if (extraBytes === 2) {
|
2876
|
+
tmp = (uint8[len - 2] << 8) + (uint8[len - 1])
|
2877
|
+
output += lookup[tmp >> 10]
|
2878
|
+
output += lookup[(tmp >> 4) & 0x3F]
|
2879
|
+
output += lookup[(tmp << 2) & 0x3F]
|
2880
|
+
output += '='
|
2881
|
+
}
|
2882
|
+
|
2883
|
+
parts.push(output)
|
2884
|
+
|
2885
|
+
return parts.join('')
|
2886
|
+
}
|
2887
|
+
|
2888
|
+
function read (buffer, offset, isLE, mLen, nBytes) {
|
2889
|
+
var e, m
|
2890
|
+
var eLen = nBytes * 8 - mLen - 1
|
2891
|
+
var eMax = (1 << eLen) - 1
|
2892
|
+
var eBias = eMax >> 1
|
2893
|
+
var nBits = -7
|
2894
|
+
var i = isLE ? (nBytes - 1) : 0
|
2895
|
+
var d = isLE ? -1 : 1
|
2896
|
+
var s = buffer[offset + i]
|
2897
|
+
|
2898
|
+
i += d
|
2899
|
+
|
2900
|
+
e = s & ((1 << (-nBits)) - 1)
|
2901
|
+
s >>= (-nBits)
|
2902
|
+
nBits += eLen
|
2903
|
+
for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}
|
2904
|
+
|
2905
|
+
m = e & ((1 << (-nBits)) - 1)
|
2906
|
+
e >>= (-nBits)
|
2907
|
+
nBits += mLen
|
2908
|
+
for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}
|
2909
|
+
|
2910
|
+
if (e === 0) {
|
2911
|
+
e = 1 - eBias
|
2912
|
+
} else if (e === eMax) {
|
2913
|
+
return m ? NaN : ((s ? -1 : 1) * Infinity)
|
2914
|
+
} else {
|
2915
|
+
m = m + Math.pow(2, mLen)
|
2916
|
+
e = e - eBias
|
2917
|
+
}
|
2918
|
+
return (s ? -1 : 1) * m * Math.pow(2, e - mLen)
|
2919
|
+
}
|
2920
|
+
|
2921
|
+
function write (buffer, value, offset, isLE, mLen, nBytes) {
|
2922
|
+
var e, m, c
|
2923
|
+
var eLen = nBytes * 8 - mLen - 1
|
2924
|
+
var eMax = (1 << eLen) - 1
|
2925
|
+
var eBias = eMax >> 1
|
2926
|
+
var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)
|
2927
|
+
var i = isLE ? 0 : (nBytes - 1)
|
2928
|
+
var d = isLE ? 1 : -1
|
2929
|
+
var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0
|
2930
|
+
|
2931
|
+
value = Math.abs(value)
|
2932
|
+
|
2933
|
+
if (isNaN(value) || value === Infinity) {
|
2934
|
+
m = isNaN(value) ? 1 : 0
|
2935
|
+
e = eMax
|
2936
|
+
} else {
|
2937
|
+
e = Math.floor(Math.log(value) / Math.LN2)
|
2938
|
+
if (value * (c = Math.pow(2, -e)) < 1) {
|
2939
|
+
e--
|
2940
|
+
c *= 2
|
2941
|
+
}
|
2942
|
+
if (e + eBias >= 1) {
|
2943
|
+
value += rt / c
|
2944
|
+
} else {
|
2945
|
+
value += rt * Math.pow(2, 1 - eBias)
|
2946
|
+
}
|
2947
|
+
if (value * c >= 2) {
|
2948
|
+
e++
|
2949
|
+
c /= 2
|
2950
|
+
}
|
2951
|
+
|
2952
|
+
if (e + eBias >= eMax) {
|
2953
|
+
m = 0
|
2954
|
+
e = eMax
|
2955
|
+
} else if (e + eBias >= 1) {
|
2956
|
+
m = (value * c - 1) * Math.pow(2, mLen)
|
2957
|
+
e = e + eBias
|
2958
|
+
} else {
|
2959
|
+
m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)
|
2960
|
+
e = 0
|
2961
|
+
}
|
1739
2962
|
}
|
1740
|
-
return output.join('')
|
1741
|
-
}
|
1742
2963
|
|
1743
|
-
|
1744
|
-
var tmp
|
1745
|
-
var len = uint8.length
|
1746
|
-
var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes
|
1747
|
-
var output = ''
|
1748
|
-
var parts = []
|
1749
|
-
var maxChunkLength = 16383 // must be multiple of 3
|
2964
|
+
for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}
|
1750
2965
|
|
1751
|
-
|
1752
|
-
|
1753
|
-
|
1754
|
-
}
|
2966
|
+
e = (e << mLen) | m
|
2967
|
+
eLen += mLen
|
2968
|
+
for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}
|
1755
2969
|
|
1756
|
-
|
1757
|
-
|
1758
|
-
tmp = uint8[len - 1]
|
1759
|
-
output += lookup[tmp >> 2]
|
1760
|
-
output += lookup[(tmp << 4) & 0x3F]
|
1761
|
-
output += '=='
|
1762
|
-
} else if (extraBytes === 2) {
|
1763
|
-
tmp = (uint8[len - 2] << 8) + (uint8[len - 1])
|
1764
|
-
output += lookup[tmp >> 10]
|
1765
|
-
output += lookup[(tmp >> 4) & 0x3F]
|
1766
|
-
output += lookup[(tmp << 2) & 0x3F]
|
1767
|
-
output += '='
|
1768
|
-
}
|
2970
|
+
buffer[offset + i - d] |= s * 128
|
2971
|
+
}
|
1769
2972
|
|
1770
|
-
|
2973
|
+
var toString = {}.toString;
|
1771
2974
|
|
1772
|
-
|
1773
|
-
|
2975
|
+
var isArray = Array.isArray || function (arr) {
|
2976
|
+
return toString.call(arr) == '[object Array]';
|
2977
|
+
};
|
1774
2978
|
|
1775
|
-
},{}],2:[function(_dereq_,___mod,_expor_){
|
1776
|
-
(function (global){
|
1777
2979
|
/*!
|
1778
2980
|
* The buffer module from node.js, for the browser.
|
1779
2981
|
*
|
@@ -1782,15 +2984,8 @@ function fromByteArray (uint8) {
|
|
1782
2984
|
*/
|
1783
2985
|
/* eslint-disable no-proto */
|
1784
2986
|
|
1785
|
-
'use strict'
|
1786
2987
|
|
1787
|
-
var
|
1788
|
-
var ieee754 = _dereq_('ieee754')
|
1789
|
-
var isArray = _dereq_('isarray')
|
1790
|
-
|
1791
|
-
_expor_.Buffer = Buffer
|
1792
|
-
_expor_.SlowBuffer = SlowBuffer
|
1793
|
-
_expor_.INSPECT_MAX_BYTES = 50
|
2988
|
+
var INSPECT_MAX_BYTES = 50
|
1794
2989
|
|
1795
2990
|
/**
|
1796
2991
|
* If `Buffer.TYPED_ARRAY_SUPPORT`:
|
@@ -1816,27 +3011,14 @@ _expor_.INSPECT_MAX_BYTES = 50
|
|
1816
3011
|
* We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they
|
1817
3012
|
* get the Object implementation, which is slower but behaves correctly.
|
1818
3013
|
*/
|
1819
|
-
Buffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined
|
1820
|
-
? global.TYPED_ARRAY_SUPPORT
|
1821
|
-
:
|
3014
|
+
Buffer.TYPED_ARRAY_SUPPORT = global$1.TYPED_ARRAY_SUPPORT !== undefined
|
3015
|
+
? global$1.TYPED_ARRAY_SUPPORT
|
3016
|
+
: true
|
1822
3017
|
|
1823
3018
|
/*
|
1824
3019
|
* Export kMaxLength after typed array support is determined.
|
1825
3020
|
*/
|
1826
|
-
|
1827
|
-
|
1828
|
-
function typedArraySupport () {
|
1829
|
-
try {
|
1830
|
-
var arr = new Uint8Array(1)
|
1831
|
-
arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}
|
1832
|
-
return arr.foo() === 42 && // typed array instances can be augmented
|
1833
|
-
typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`
|
1834
|
-
arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`
|
1835
|
-
} catch (e) {
|
1836
|
-
return false
|
1837
|
-
}
|
1838
|
-
}
|
1839
|
-
|
3021
|
+
var _kMaxLength = kMaxLength()
|
1840
3022
|
function kMaxLength () {
|
1841
3023
|
return Buffer.TYPED_ARRAY_SUPPORT
|
1842
3024
|
? 0x7fffffff
|
@@ -1931,16 +3113,18 @@ if (Buffer.TYPED_ARRAY_SUPPORT) {
|
|
1931
3113
|
if (typeof Symbol !== 'undefined' && Symbol.species &&
|
1932
3114
|
Buffer[Symbol.species] === Buffer) {
|
1933
3115
|
// Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97
|
1934
|
-
Object.defineProperty(Buffer, Symbol.species, {
|
1935
|
-
|
1936
|
-
|
1937
|
-
})
|
3116
|
+
// Object.defineProperty(Buffer, Symbol.species, {
|
3117
|
+
// value: null,
|
3118
|
+
// configurable: true
|
3119
|
+
// })
|
1938
3120
|
}
|
1939
3121
|
}
|
1940
3122
|
|
1941
3123
|
function assertSize (size) {
|
1942
3124
|
if (typeof size !== 'number') {
|
1943
3125
|
throw new TypeError('"size" argument must be a number')
|
3126
|
+
} else if (size < 0) {
|
3127
|
+
throw new RangeError('"size" argument must not be negative')
|
1944
3128
|
}
|
1945
3129
|
}
|
1946
3130
|
|
@@ -2004,12 +3188,20 @@ function fromString (that, string, encoding) {
|
|
2004
3188
|
var length = byteLength(string, encoding) | 0
|
2005
3189
|
that = createBuffer(that, length)
|
2006
3190
|
|
2007
|
-
that.write(string, encoding)
|
3191
|
+
var actual = that.write(string, encoding)
|
3192
|
+
|
3193
|
+
if (actual !== length) {
|
3194
|
+
// Writing a hex string, for example, that contains invalid characters will
|
3195
|
+
// cause everything after the first invalid character to be ignored. (e.g.
|
3196
|
+
// 'abxxcd' will be treated as 'ab')
|
3197
|
+
that = that.slice(0, actual)
|
3198
|
+
}
|
3199
|
+
|
2008
3200
|
return that
|
2009
3201
|
}
|
2010
3202
|
|
2011
3203
|
function fromArrayLike (that, array) {
|
2012
|
-
var length = checked(array.length) | 0
|
3204
|
+
var length = array.length < 0 ? 0 : checked(array.length) | 0
|
2013
3205
|
that = createBuffer(that, length)
|
2014
3206
|
for (var i = 0; i < length; i += 1) {
|
2015
3207
|
that[i] = array[i] & 255
|
@@ -2048,7 +3240,7 @@ function fromArrayBuffer (that, array, byteOffset, length) {
|
|
2048
3240
|
}
|
2049
3241
|
|
2050
3242
|
function fromObject (that, obj) {
|
2051
|
-
if (
|
3243
|
+
if (internalIsBuffer(obj)) {
|
2052
3244
|
var len = checked(obj.length) | 0
|
2053
3245
|
that = createBuffer(that, len)
|
2054
3246
|
|
@@ -2078,7 +3270,7 @@ function fromObject (that, obj) {
|
|
2078
3270
|
}
|
2079
3271
|
|
2080
3272
|
function checked (length) {
|
2081
|
-
// Note: cannot use `length < kMaxLength` here because that fails when
|
3273
|
+
// Note: cannot use `length < kMaxLength()` here because that fails when
|
2082
3274
|
// length is NaN (which is otherwise coerced to zero.)
|
2083
3275
|
if (length >= kMaxLength()) {
|
2084
3276
|
throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
|
@@ -2087,19 +3279,13 @@ function checked (length) {
|
|
2087
3279
|
return length | 0
|
2088
3280
|
}
|
2089
3281
|
|
2090
|
-
|
2091
|
-
|
2092
|
-
length = 0
|
2093
|
-
}
|
2094
|
-
return Buffer.alloc(+length)
|
2095
|
-
}
|
2096
|
-
|
2097
|
-
Buffer.isBuffer = function isBuffer (b) {
|
3282
|
+
Buffer.isBuffer = isBuffer;
|
3283
|
+
function internalIsBuffer (b) {
|
2098
3284
|
return !!(b != null && b._isBuffer)
|
2099
3285
|
}
|
2100
3286
|
|
2101
3287
|
Buffer.compare = function compare (a, b) {
|
2102
|
-
if (!
|
3288
|
+
if (!internalIsBuffer(a) || !internalIsBuffer(b)) {
|
2103
3289
|
throw new TypeError('Arguments must be Buffers')
|
2104
3290
|
}
|
2105
3291
|
|
@@ -2127,9 +3313,9 @@ Buffer.isEncoding = function isEncoding (encoding) {
|
|
2127
3313
|
case 'utf8':
|
2128
3314
|
case 'utf-8':
|
2129
3315
|
case 'ascii':
|
3316
|
+
case 'latin1':
|
2130
3317
|
case 'binary':
|
2131
3318
|
case 'base64':
|
2132
|
-
case 'raw':
|
2133
3319
|
case 'ucs2':
|
2134
3320
|
case 'ucs-2':
|
2135
3321
|
case 'utf16le':
|
@@ -2161,7 +3347,7 @@ Buffer.concat = function concat (list, length) {
|
|
2161
3347
|
var pos = 0
|
2162
3348
|
for (i = 0; i < list.length; ++i) {
|
2163
3349
|
var buf = list[i]
|
2164
|
-
if (!
|
3350
|
+
if (!internalIsBuffer(buf)) {
|
2165
3351
|
throw new TypeError('"list" argument must be an Array of Buffers')
|
2166
3352
|
}
|
2167
3353
|
buf.copy(buffer, pos)
|
@@ -2171,7 +3357,7 @@ Buffer.concat = function concat (list, length) {
|
|
2171
3357
|
}
|
2172
3358
|
|
2173
3359
|
function byteLength (string, encoding) {
|
2174
|
-
if (
|
3360
|
+
if (internalIsBuffer(string)) {
|
2175
3361
|
return string.length
|
2176
3362
|
}
|
2177
3363
|
if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&
|
@@ -2190,9 +3376,8 @@ function byteLength (string, encoding) {
|
|
2190
3376
|
for (;;) {
|
2191
3377
|
switch (encoding) {
|
2192
3378
|
case 'ascii':
|
3379
|
+
case 'latin1':
|
2193
3380
|
case 'binary':
|
2194
|
-
case 'raw':
|
2195
|
-
case 'raws':
|
2196
3381
|
return len
|
2197
3382
|
case 'utf8':
|
2198
3383
|
case 'utf-8':
|
@@ -2265,8 +3450,9 @@ function slowToString (encoding, start, end) {
|
|
2265
3450
|
case 'ascii':
|
2266
3451
|
return asciiSlice(this, start, end)
|
2267
3452
|
|
3453
|
+
case 'latin1':
|
2268
3454
|
case 'binary':
|
2269
|
-
return
|
3455
|
+
return latin1Slice(this, start, end)
|
2270
3456
|
|
2271
3457
|
case 'base64':
|
2272
3458
|
return base64Slice(this, start, end)
|
@@ -2318,6 +3504,20 @@ Buffer.prototype.swap32 = function swap32 () {
|
|
2318
3504
|
return this
|
2319
3505
|
}
|
2320
3506
|
|
3507
|
+
Buffer.prototype.swap64 = function swap64 () {
|
3508
|
+
var len = this.length
|
3509
|
+
if (len % 8 !== 0) {
|
3510
|
+
throw new RangeError('Buffer size must be a multiple of 64-bits')
|
3511
|
+
}
|
3512
|
+
for (var i = 0; i < len; i += 8) {
|
3513
|
+
swap(this, i, i + 7)
|
3514
|
+
swap(this, i + 1, i + 6)
|
3515
|
+
swap(this, i + 2, i + 5)
|
3516
|
+
swap(this, i + 3, i + 4)
|
3517
|
+
}
|
3518
|
+
return this
|
3519
|
+
}
|
3520
|
+
|
2321
3521
|
Buffer.prototype.toString = function toString () {
|
2322
3522
|
var length = this.length | 0
|
2323
3523
|
if (length === 0) return ''
|
@@ -2326,14 +3526,14 @@ Buffer.prototype.toString = function toString () {
|
|
2326
3526
|
}
|
2327
3527
|
|
2328
3528
|
Buffer.prototype.equals = function equals (b) {
|
2329
|
-
if (!
|
3529
|
+
if (!internalIsBuffer(b)) throw new TypeError('Argument must be a Buffer')
|
2330
3530
|
if (this === b) return true
|
2331
3531
|
return Buffer.compare(this, b) === 0
|
2332
3532
|
}
|
2333
3533
|
|
2334
3534
|
Buffer.prototype.inspect = function inspect () {
|
2335
3535
|
var str = ''
|
2336
|
-
var max =
|
3536
|
+
var max = INSPECT_MAX_BYTES
|
2337
3537
|
if (this.length > 0) {
|
2338
3538
|
str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')
|
2339
3539
|
if (this.length > max) str += ' ... '
|
@@ -2342,7 +3542,7 @@ Buffer.prototype.inspect = function inspect () {
|
|
2342
3542
|
}
|
2343
3543
|
|
2344
3544
|
Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
|
2345
|
-
if (!
|
3545
|
+
if (!internalIsBuffer(target)) {
|
2346
3546
|
throw new TypeError('Argument must be a Buffer')
|
2347
3547
|
}
|
2348
3548
|
|
@@ -2400,7 +3600,73 @@ Buffer.prototype.compare = function compare (target, start, end, thisStart, this
|
|
2400
3600
|
return 0
|
2401
3601
|
}
|
2402
3602
|
|
2403
|
-
|
3603
|
+
// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,
|
3604
|
+
// OR the last index of `val` in `buffer` at offset <= `byteOffset`.
|
3605
|
+
//
|
3606
|
+
// Arguments:
|
3607
|
+
// - buffer - a Buffer to search
|
3608
|
+
// - val - a string, Buffer, or number
|
3609
|
+
// - byteOffset - an index into `buffer`; will be clamped to an int32
|
3610
|
+
// - encoding - an optional encoding, relevant is val is a string
|
3611
|
+
// - dir - true for indexOf, false for lastIndexOf
|
3612
|
+
function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
|
3613
|
+
// Empty buffer means no match
|
3614
|
+
if (buffer.length === 0) return -1
|
3615
|
+
|
3616
|
+
// Normalize byteOffset
|
3617
|
+
if (typeof byteOffset === 'string') {
|
3618
|
+
encoding = byteOffset
|
3619
|
+
byteOffset = 0
|
3620
|
+
} else if (byteOffset > 0x7fffffff) {
|
3621
|
+
byteOffset = 0x7fffffff
|
3622
|
+
} else if (byteOffset < -0x80000000) {
|
3623
|
+
byteOffset = -0x80000000
|
3624
|
+
}
|
3625
|
+
byteOffset = +byteOffset // Coerce to Number.
|
3626
|
+
if (isNaN(byteOffset)) {
|
3627
|
+
// byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer
|
3628
|
+
byteOffset = dir ? 0 : (buffer.length - 1)
|
3629
|
+
}
|
3630
|
+
|
3631
|
+
// Normalize byteOffset: negative offsets start from the end of the buffer
|
3632
|
+
if (byteOffset < 0) byteOffset = buffer.length + byteOffset
|
3633
|
+
if (byteOffset >= buffer.length) {
|
3634
|
+
if (dir) return -1
|
3635
|
+
else byteOffset = buffer.length - 1
|
3636
|
+
} else if (byteOffset < 0) {
|
3637
|
+
if (dir) byteOffset = 0
|
3638
|
+
else return -1
|
3639
|
+
}
|
3640
|
+
|
3641
|
+
// Normalize val
|
3642
|
+
if (typeof val === 'string') {
|
3643
|
+
val = Buffer.from(val, encoding)
|
3644
|
+
}
|
3645
|
+
|
3646
|
+
// Finally, search either indexOf (if dir is true) or lastIndexOf
|
3647
|
+
if (internalIsBuffer(val)) {
|
3648
|
+
// Special case: looking for empty string/buffer always fails
|
3649
|
+
if (val.length === 0) {
|
3650
|
+
return -1
|
3651
|
+
}
|
3652
|
+
return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
|
3653
|
+
} else if (typeof val === 'number') {
|
3654
|
+
val = val & 0xFF // Search for a byte value [0-255]
|
3655
|
+
if (Buffer.TYPED_ARRAY_SUPPORT &&
|
3656
|
+
typeof Uint8Array.prototype.indexOf === 'function') {
|
3657
|
+
if (dir) {
|
3658
|
+
return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
|
3659
|
+
} else {
|
3660
|
+
return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
|
3661
|
+
}
|
3662
|
+
}
|
3663
|
+
return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
|
3664
|
+
}
|
3665
|
+
|
3666
|
+
throw new TypeError('val must be string, number or Buffer')
|
3667
|
+
}
|
3668
|
+
|
3669
|
+
function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
|
2404
3670
|
var indexSize = 1
|
2405
3671
|
var arrLength = arr.length
|
2406
3672
|
var valLength = val.length
|
@@ -2427,60 +3693,45 @@ function arrayIndexOf (arr, val, byteOffset, encoding) {
|
|
2427
3693
|
}
|
2428
3694
|
}
|
2429
3695
|
|
2430
|
-
var
|
2431
|
-
|
2432
|
-
|
2433
|
-
|
2434
|
-
if (i
|
2435
|
-
|
2436
|
-
|
2437
|
-
|
3696
|
+
var i
|
3697
|
+
if (dir) {
|
3698
|
+
var foundIndex = -1
|
3699
|
+
for (i = byteOffset; i < arrLength; i++) {
|
3700
|
+
if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {
|
3701
|
+
if (foundIndex === -1) foundIndex = i
|
3702
|
+
if (i - foundIndex + 1 === valLength) return foundIndex * indexSize
|
3703
|
+
} else {
|
3704
|
+
if (foundIndex !== -1) i -= i - foundIndex
|
3705
|
+
foundIndex = -1
|
3706
|
+
}
|
3707
|
+
}
|
3708
|
+
} else {
|
3709
|
+
if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength
|
3710
|
+
for (i = byteOffset; i >= 0; i--) {
|
3711
|
+
var found = true
|
3712
|
+
for (var j = 0; j < valLength; j++) {
|
3713
|
+
if (read(arr, i + j) !== read(val, j)) {
|
3714
|
+
found = false
|
3715
|
+
break
|
3716
|
+
}
|
3717
|
+
}
|
3718
|
+
if (found) return i
|
2438
3719
|
}
|
2439
3720
|
}
|
2440
3721
|
|
2441
3722
|
return -1
|
2442
3723
|
}
|
2443
3724
|
|
2444
|
-
Buffer.prototype.
|
2445
|
-
|
2446
|
-
|
2447
|
-
byteOffset = 0
|
2448
|
-
} else if (byteOffset > 0x7fffffff) {
|
2449
|
-
byteOffset = 0x7fffffff
|
2450
|
-
} else if (byteOffset < -0x80000000) {
|
2451
|
-
byteOffset = -0x80000000
|
2452
|
-
}
|
2453
|
-
byteOffset >>= 0
|
2454
|
-
|
2455
|
-
if (this.length === 0) return -1
|
2456
|
-
if (byteOffset >= this.length) return -1
|
2457
|
-
|
2458
|
-
// Negative offsets start from the end of the buffer
|
2459
|
-
if (byteOffset < 0) byteOffset = Math.max(this.length + byteOffset, 0)
|
2460
|
-
|
2461
|
-
if (typeof val === 'string') {
|
2462
|
-
val = Buffer.from(val, encoding)
|
2463
|
-
}
|
2464
|
-
|
2465
|
-
if (Buffer.isBuffer(val)) {
|
2466
|
-
// special case: looking for empty string/buffer always fails
|
2467
|
-
if (val.length === 0) {
|
2468
|
-
return -1
|
2469
|
-
}
|
2470
|
-
return arrayIndexOf(this, val, byteOffset, encoding)
|
2471
|
-
}
|
2472
|
-
if (typeof val === 'number') {
|
2473
|
-
if (Buffer.TYPED_ARRAY_SUPPORT && Uint8Array.prototype.indexOf === 'function') {
|
2474
|
-
return Uint8Array.prototype.indexOf.call(this, val, byteOffset)
|
2475
|
-
}
|
2476
|
-
return arrayIndexOf(this, [ val ], byteOffset, encoding)
|
2477
|
-
}
|
3725
|
+
Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
|
3726
|
+
return this.indexOf(val, byteOffset, encoding) !== -1
|
3727
|
+
}
|
2478
3728
|
|
2479
|
-
|
3729
|
+
Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
|
3730
|
+
return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
|
2480
3731
|
}
|
2481
3732
|
|
2482
|
-
Buffer.prototype.
|
2483
|
-
return this
|
3733
|
+
Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
|
3734
|
+
return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
|
2484
3735
|
}
|
2485
3736
|
|
2486
3737
|
function hexWrite (buf, string, offset, length) {
|
@@ -2497,7 +3748,7 @@ function hexWrite (buf, string, offset, length) {
|
|
2497
3748
|
|
2498
3749
|
// must be an even number of digits
|
2499
3750
|
var strLen = string.length
|
2500
|
-
if (strLen % 2 !== 0) throw new
|
3751
|
+
if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')
|
2501
3752
|
|
2502
3753
|
if (length > strLen / 2) {
|
2503
3754
|
length = strLen / 2
|
@@ -2518,7 +3769,7 @@ function asciiWrite (buf, string, offset, length) {
|
|
2518
3769
|
return blitBuffer(asciiToBytes(string), buf, offset, length)
|
2519
3770
|
}
|
2520
3771
|
|
2521
|
-
function
|
3772
|
+
function latin1Write (buf, string, offset, length) {
|
2522
3773
|
return asciiWrite(buf, string, offset, length)
|
2523
3774
|
}
|
2524
3775
|
|
@@ -2580,8 +3831,9 @@ Buffer.prototype.write = function write (string, offset, length, encoding) {
|
|
2580
3831
|
case 'ascii':
|
2581
3832
|
return asciiWrite(this, string, offset, length)
|
2582
3833
|
|
3834
|
+
case 'latin1':
|
2583
3835
|
case 'binary':
|
2584
|
-
return
|
3836
|
+
return latin1Write(this, string, offset, length)
|
2585
3837
|
|
2586
3838
|
case 'base64':
|
2587
3839
|
// Warning: maxLength not taken into account in base64Write
|
@@ -2610,9 +3862,9 @@ Buffer.prototype.toJSON = function toJSON () {
|
|
2610
3862
|
|
2611
3863
|
function base64Slice (buf, start, end) {
|
2612
3864
|
if (start === 0 && end === buf.length) {
|
2613
|
-
return
|
3865
|
+
return fromByteArray(buf)
|
2614
3866
|
} else {
|
2615
|
-
return
|
3867
|
+
return fromByteArray(buf.slice(start, end))
|
2616
3868
|
}
|
2617
3869
|
}
|
2618
3870
|
|
@@ -2722,7 +3974,7 @@ function asciiSlice (buf, start, end) {
|
|
2722
3974
|
return ret
|
2723
3975
|
}
|
2724
3976
|
|
2725
|
-
function
|
3977
|
+
function latin1Slice (buf, start, end) {
|
2726
3978
|
var ret = ''
|
2727
3979
|
end = Math.min(buf.length, end)
|
2728
3980
|
|
@@ -2936,26 +4188,26 @@ Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
|
|
2936
4188
|
|
2937
4189
|
Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
|
2938
4190
|
if (!noAssert) checkOffset(offset, 4, this.length)
|
2939
|
-
return
|
4191
|
+
return read(this, offset, true, 23, 4)
|
2940
4192
|
}
|
2941
4193
|
|
2942
4194
|
Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
|
2943
4195
|
if (!noAssert) checkOffset(offset, 4, this.length)
|
2944
|
-
return
|
4196
|
+
return read(this, offset, false, 23, 4)
|
2945
4197
|
}
|
2946
4198
|
|
2947
4199
|
Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
|
2948
4200
|
if (!noAssert) checkOffset(offset, 8, this.length)
|
2949
|
-
return
|
4201
|
+
return read(this, offset, true, 52, 8)
|
2950
4202
|
}
|
2951
4203
|
|
2952
4204
|
Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
|
2953
4205
|
if (!noAssert) checkOffset(offset, 8, this.length)
|
2954
|
-
return
|
4206
|
+
return read(this, offset, false, 52, 8)
|
2955
4207
|
}
|
2956
4208
|
|
2957
4209
|
function checkInt (buf, value, offset, ext, max, min) {
|
2958
|
-
if (!
|
4210
|
+
if (!internalIsBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance')
|
2959
4211
|
if (value > max || value < min) throw new RangeError('"value" argument is out of bounds')
|
2960
4212
|
if (offset + ext > buf.length) throw new RangeError('Index out of range')
|
2961
4213
|
}
|
@@ -3200,7 +4452,7 @@ function writeFloat (buf, value, offset, littleEndian, noAssert) {
|
|
3200
4452
|
if (!noAssert) {
|
3201
4453
|
checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)
|
3202
4454
|
}
|
3203
|
-
|
4455
|
+
write(buf, value, offset, littleEndian, 23, 4)
|
3204
4456
|
return offset + 4
|
3205
4457
|
}
|
3206
4458
|
|
@@ -3216,7 +4468,7 @@ function writeDouble (buf, value, offset, littleEndian, noAssert) {
|
|
3216
4468
|
if (!noAssert) {
|
3217
4469
|
checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)
|
3218
4470
|
}
|
3219
|
-
|
4471
|
+
write(buf, value, offset, littleEndian, 52, 8)
|
3220
4472
|
return offset + 8
|
3221
4473
|
}
|
3222
4474
|
|
@@ -3328,7 +4580,7 @@ Buffer.prototype.fill = function fill (val, start, end, encoding) {
|
|
3328
4580
|
this[i] = val
|
3329
4581
|
}
|
3330
4582
|
} else {
|
3331
|
-
var bytes =
|
4583
|
+
var bytes = internalIsBuffer(val)
|
3332
4584
|
? val
|
3333
4585
|
: utf8ToBytes(new Buffer(val, encoding).toString())
|
3334
4586
|
var len = bytes.length
|
@@ -3472,8 +4724,9 @@ function utf16leToBytes (str, units) {
|
|
3472
4724
|
return byteArray
|
3473
4725
|
}
|
3474
4726
|
|
4727
|
+
|
3475
4728
|
function base64ToBytes (str) {
|
3476
|
-
return
|
4729
|
+
return toByteArray(base64clean(str))
|
3477
4730
|
}
|
3478
4731
|
|
3479
4732
|
function blitBuffer (src, dst, offset, length) {
|
@@ -3488,115 +4741,62 @@ function isnan (val) {
|
|
3488
4741
|
return val !== val // eslint-disable-line no-self-compare
|
3489
4742
|
}
|
3490
4743
|
|
3491
|
-
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
|
3492
|
-
},{"base64-js":1,"ieee754":3,"isarray":4}],3:[function(_dereq_,___mod,_expor_){
|
3493
|
-
_expor_.read = function (buffer, offset, isLE, mLen, nBytes) {
|
3494
|
-
var e, m
|
3495
|
-
var eLen = nBytes * 8 - mLen - 1
|
3496
|
-
var eMax = (1 << eLen) - 1
|
3497
|
-
var eBias = eMax >> 1
|
3498
|
-
var nBits = -7
|
3499
|
-
var i = isLE ? (nBytes - 1) : 0
|
3500
|
-
var d = isLE ? -1 : 1
|
3501
|
-
var s = buffer[offset + i]
|
3502
|
-
|
3503
|
-
i += d
|
3504
|
-
|
3505
|
-
e = s & ((1 << (-nBits)) - 1)
|
3506
|
-
s >>= (-nBits)
|
3507
|
-
nBits += eLen
|
3508
|
-
for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}
|
3509
|
-
|
3510
|
-
m = e & ((1 << (-nBits)) - 1)
|
3511
|
-
e >>= (-nBits)
|
3512
|
-
nBits += mLen
|
3513
|
-
for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}
|
3514
4744
|
|
3515
|
-
|
3516
|
-
|
3517
|
-
|
3518
|
-
|
3519
|
-
|
3520
|
-
m = m + Math.pow(2, mLen)
|
3521
|
-
e = e - eBias
|
3522
|
-
}
|
3523
|
-
return (s ? -1 : 1) * m * Math.pow(2, e - mLen)
|
4745
|
+
// the following is from is-buffer, also by Feross Aboukhadijeh and with same lisence
|
4746
|
+
// The _isBuffer check is for Safari 5-7 support, because it's missing
|
4747
|
+
// Object.prototype.constructor. Remove this eventually
|
4748
|
+
function isBuffer(obj) {
|
4749
|
+
return obj != null && (!!obj._isBuffer || isFastBuffer(obj) || isSlowBuffer(obj))
|
3524
4750
|
}
|
3525
4751
|
|
3526
|
-
|
3527
|
-
|
3528
|
-
|
3529
|
-
var eMax = (1 << eLen) - 1
|
3530
|
-
var eBias = eMax >> 1
|
3531
|
-
var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)
|
3532
|
-
var i = isLE ? 0 : (nBytes - 1)
|
3533
|
-
var d = isLE ? 1 : -1
|
3534
|
-
var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0
|
3535
|
-
|
3536
|
-
value = Math.abs(value)
|
3537
|
-
|
3538
|
-
if (isNaN(value) || value === Infinity) {
|
3539
|
-
m = isNaN(value) ? 1 : 0
|
3540
|
-
e = eMax
|
3541
|
-
} else {
|
3542
|
-
e = Math.floor(Math.log(value) / Math.LN2)
|
3543
|
-
if (value * (c = Math.pow(2, -e)) < 1) {
|
3544
|
-
e--
|
3545
|
-
c *= 2
|
3546
|
-
}
|
3547
|
-
if (e + eBias >= 1) {
|
3548
|
-
value += rt / c
|
3549
|
-
} else {
|
3550
|
-
value += rt * Math.pow(2, 1 - eBias)
|
3551
|
-
}
|
3552
|
-
if (value * c >= 2) {
|
3553
|
-
e++
|
3554
|
-
c /= 2
|
3555
|
-
}
|
3556
|
-
|
3557
|
-
if (e + eBias >= eMax) {
|
3558
|
-
m = 0
|
3559
|
-
e = eMax
|
3560
|
-
} else if (e + eBias >= 1) {
|
3561
|
-
m = (value * c - 1) * Math.pow(2, mLen)
|
3562
|
-
e = e + eBias
|
3563
|
-
} else {
|
3564
|
-
m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)
|
3565
|
-
e = 0
|
3566
|
-
}
|
3567
|
-
}
|
3568
|
-
|
3569
|
-
for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}
|
3570
|
-
|
3571
|
-
e = (e << mLen) | m
|
3572
|
-
eLen += mLen
|
3573
|
-
for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}
|
4752
|
+
function isFastBuffer (obj) {
|
4753
|
+
return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)
|
4754
|
+
}
|
3574
4755
|
|
3575
|
-
|
4756
|
+
// For Node v0.10 support. Remove this eventually.
|
4757
|
+
function isSlowBuffer (obj) {
|
4758
|
+
return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isFastBuffer(obj.slice(0, 0))
|
3576
4759
|
}
|
3577
4760
|
|
3578
|
-
|
3579
|
-
|
4761
|
+
/*
|
4762
|
+
Copyright 2017 Stratumn SAS. All rights reserved.
|
3580
4763
|
|
3581
|
-
|
3582
|
-
|
3583
|
-
|
4764
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
4765
|
+
you may not use this file except in compliance with the License.
|
4766
|
+
You may obtain a copy of the License at
|
3584
4767
|
|
3585
|
-
|
3586
|
-
var buf = _dereq_('buffer');
|
3587
|
-
_buffer = buf.Buffer;
|
3588
|
-
_slowbuffer = buf.SlowBuffer;
|
3589
|
-
_INSPECT_MAX_BYTES = buf._INSPECT_MAX_BYTES;
|
4768
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
3590
4769
|
|
3591
|
-
|
4770
|
+
Unless required by applicable law or agreed to in writing, software
|
4771
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
4772
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
4773
|
+
See the License for the specific language governing permissions and
|
4774
|
+
limitations under the License.
|
4775
|
+
*/
|
3592
4776
|
|
3593
4777
|
function computeMerkleParent(left, right) {
|
3594
4778
|
if (right) {
|
3595
|
-
return sha256$1(
|
4779
|
+
return sha256$1(Buffer.concat([new Buffer(left, 'hex'), new Buffer(right, 'hex')]));
|
3596
4780
|
}
|
3597
4781
|
return left;
|
3598
4782
|
}
|
3599
4783
|
|
4784
|
+
/*
|
4785
|
+
Copyright 2017 Stratumn SAS. All rights reserved.
|
4786
|
+
|
4787
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
4788
|
+
you may not use this file except in compliance with the License.
|
4789
|
+
You may obtain a copy of the License at
|
4790
|
+
|
4791
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
4792
|
+
|
4793
|
+
Unless required by applicable law or agreed to in writing, software
|
4794
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
4795
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
4796
|
+
See the License for the specific language governing permissions and
|
4797
|
+
limitations under the License.
|
4798
|
+
*/
|
4799
|
+
|
3600
4800
|
var blockCypherCache = {};
|
3601
4801
|
|
3602
4802
|
var SegmentValidator = function () {
|
@@ -3639,45 +4839,35 @@ var SegmentValidator = function () {
|
|
3639
4839
|
}, {
|
3640
4840
|
key: '_validateMerklePath',
|
3641
4841
|
value: function _validateMerklePath() {
|
3642
|
-
var _this = this;
|
3643
|
-
|
3644
4842
|
var evidence = this.segment.meta.evidence;
|
3645
4843
|
if (evidence) {
|
3646
4844
|
if (evidence.state === 'COMPLETE') {
|
3647
|
-
var
|
3648
|
-
var previous = _this.segment.meta.linkHash;
|
4845
|
+
var previous = this.segment.meta.linkHash;
|
3649
4846
|
|
3650
|
-
|
3651
|
-
|
3652
|
-
|
3653
|
-
|
4847
|
+
var error = void 0;
|
4848
|
+
evidence.merklePath.every(function (merkleNode) {
|
4849
|
+
if (merkleNode.left === previous || merkleNode.right === previous) {
|
4850
|
+
var computedParent = computeMerkleParent(merkleNode.left, merkleNode.right);
|
3654
4851
|
|
3655
|
-
|
3656
|
-
|
3657
|
-
|
3658
|
-
}
|
3659
|
-
previous = merkleNode.parent;
|
3660
|
-
return true;
|
4852
|
+
if (computedParent !== merkleNode.parent) {
|
4853
|
+
error = 'Invalid Merkle Node ' + JSON.stringify(merkleNode) + ': ' + ('computed parent: ' + computedParent);
|
4854
|
+
return false;
|
3661
4855
|
}
|
3662
|
-
|
3663
|
-
return
|
3664
|
-
});
|
3665
|
-
|
3666
|
-
if (error) {
|
3667
|
-
return {
|
3668
|
-
v: error
|
3669
|
-
};
|
4856
|
+
previous = merkleNode.parent;
|
4857
|
+
return true;
|
3670
4858
|
}
|
4859
|
+
error = 'Invalid Merkle Node ' + JSON.stringify(merkleNode) + ': ' + ('previous hash (' + previous + ') not found');
|
4860
|
+
return false;
|
4861
|
+
});
|
3671
4862
|
|
3672
|
-
|
3673
|
-
|
3674
|
-
|
3675
|
-
v: 'Invalid Merkle Root ' + evidence.merkleRoot + ': not found in Merkle Path'
|
3676
|
-
};
|
3677
|
-
}
|
3678
|
-
}();
|
4863
|
+
if (error) {
|
4864
|
+
return error;
|
4865
|
+
}
|
3679
4866
|
|
3680
|
-
|
4867
|
+
var lastMerkleNode = evidence.merklePath[evidence.merklePath.length - 1];
|
4868
|
+
if (lastMerkleNode.parent !== evidence.merkleRoot) {
|
4869
|
+
return 'Invalid Merkle Root ' + evidence.merkleRoot + ': not found in Merkle Path';
|
4870
|
+
}
|
3681
4871
|
}
|
3682
4872
|
}
|
3683
4873
|
return null;
|
@@ -3685,13 +4875,13 @@ var SegmentValidator = function () {
|
|
3685
4875
|
}, {
|
3686
4876
|
key: '_validateFossil',
|
3687
4877
|
value: function _validateFossil() {
|
3688
|
-
var
|
4878
|
+
var _this = this;
|
3689
4879
|
|
3690
4880
|
var txId = this.segment.meta.evidence.transactions['bitcoin:main'];
|
3691
4881
|
return this._getFossil(txId).then(function (res) {
|
3692
4882
|
var body = JSON.parse(res.xhr.response);
|
3693
4883
|
if (!body.outputs.find(function (output) {
|
3694
|
-
return output.data_hex ===
|
4884
|
+
return output.data_hex === _this.segment.meta.evidence.merkleRoot;
|
3695
4885
|
})) {
|
3696
4886
|
return 'Merkle root not found in transaction data';
|
3697
4887
|
}
|
@@ -3717,6 +4907,22 @@ var SegmentValidator = function () {
|
|
3717
4907
|
return SegmentValidator;
|
3718
4908
|
}();
|
3719
4909
|
|
4910
|
+
/*
|
4911
|
+
Copyright 2017 Stratumn SAS. All rights reserved.
|
4912
|
+
|
4913
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
4914
|
+
you may not use this file except in compliance with the License.
|
4915
|
+
You may obtain a copy of the License at
|
4916
|
+
|
4917
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
4918
|
+
|
4919
|
+
Unless required by applicable law or agreed to in writing, software
|
4920
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
4921
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
4922
|
+
See the License for the specific language governing permissions and
|
4923
|
+
limitations under the License.
|
4924
|
+
*/
|
4925
|
+
|
3720
4926
|
var ChainValidator = function () {
|
3721
4927
|
function ChainValidator(chainscript) {
|
3722
4928
|
classCallCheck(this, ChainValidator);
|
@@ -3750,6 +4956,22 @@ var ChainValidator = function () {
|
|
3750
4956
|
return ChainValidator;
|
3751
4957
|
}();
|
3752
4958
|
|
4959
|
+
/*
|
4960
|
+
Copyright 2017 Stratumn SAS. All rights reserved.
|
4961
|
+
|
4962
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
4963
|
+
you may not use this file except in compliance with the License.
|
4964
|
+
You may obtain a copy of the License at
|
4965
|
+
|
4966
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
4967
|
+
|
4968
|
+
Unless required by applicable law or agreed to in writing, software
|
4969
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
4970
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
4971
|
+
See the License for the specific language governing permissions and
|
4972
|
+
limitations under the License.
|
4973
|
+
*/
|
4974
|
+
|
3753
4975
|
var margin$1 = { top: 10, right: 5, bottom: 20, left: 5 };
|
3754
4976
|
var height$1 = 350 - margin$1.top - margin$1.bottom;
|
3755
4977
|
var width = 400 - margin$1.left - margin$1.right;
|