wao 0.13.0 → 0.13.2

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.
@@ -8,7 +8,8 @@ exports["default"] = void 0;
8
8
  var WarpArBundles = _interopRequireWildcard(require("warp-arbundles"));
9
9
  var _crypto = _interopRequireDefault(require("crypto"));
10
10
  var _base64url = _interopRequireDefault(require("base64url"));
11
- var _utils = require("./utils.js");
11
+ var _utils = require("../src/utils.js");
12
+ var _utils2 = require("./utils.js");
12
13
  var _weavedrive = _interopRequireDefault(require("./weavedrive.js"));
13
14
  var _ramda = require("ramda");
14
15
  var _WarpArBundles$defaul;
@@ -32,7 +33,7 @@ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" !=
32
33
  function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
33
34
  var pkg = (_WarpArBundles$defaul = WarpArBundles["default"]) !== null && _WarpArBundles$defaul !== void 0 ? _WarpArBundles$defaul : WarpArBundles;
34
35
  var DataItem = pkg.DataItem;
35
- var count = 0;
36
+ var onRecovery = {};
36
37
  var _default = exports["default"] = function _default() {
37
38
  var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
38
39
  AR = _ref.AR,
@@ -50,7 +51,8 @@ var _default = exports["default"] = function _default() {
50
51
  _ref2$log = _ref2.log,
51
52
  log = _ref2$log === void 0 ? false : _ref2$log,
52
53
  _ref2$extensions = _ref2.extensions,
53
- extensions = _ref2$extensions === void 0 ? {} : _ref2$extensions;
54
+ extensions = _ref2$extensions === void 0 ? {} : _ref2$extensions,
55
+ hb = _ref2.hb;
54
56
  var isMem = ((_mem = mem) === null || _mem === void 0 ? void 0 : _mem.__type__) === "mem";
55
57
  if (!isMem) {
56
58
  var _mem2;
@@ -362,13 +364,13 @@ var _default = exports["default"] = function _default() {
362
364
  item = _yield$ar$httpmsg.item;
363
365
  __tags = _yield$ar$httpmsg.tags;
364
366
  id = opt.http_msg.target;
365
- opt.tags = (0, _utils.buildTags)(null, __tags);
367
+ opt.tags = (0, _utils2.buildTags)(null, __tags);
366
368
  opt.data = opt.http_msg.data;
367
369
  msg_owner = owner;
368
370
  _context3.next = 43;
369
371
  break;
370
372
  case 26:
371
- opt.tags = (0, _utils.buildTags)(null, (0, _ramda.mergeLeft)((0, _utils.tags)((_opt$tags = opt.tags) !== null && _opt$tags !== void 0 ? _opt$tags : []), {
373
+ opt.tags = (0, _utils2.buildTags)(null, (0, _ramda.mergeLeft)((0, _utils2.tags)((_opt$tags = opt.tags) !== null && _opt$tags !== void 0 ? _opt$tags : []), {
372
374
  "Data-Protocol": "ao",
373
375
  Variant: "ao.TN.1",
374
376
  Type: "Process",
@@ -403,7 +405,7 @@ var _default = exports["default"] = function _default() {
403
405
  item: opt.item,
404
406
  data: opt.data,
405
407
  signer: opt.signer,
406
- tags: (0, _utils.tags)(opt.tags)
408
+ tags: (0, _utils2.tags)(opt.tags)
407
409
  });
408
410
  case 34:
409
411
  _yield$ar$dataitem = _context3.sent;
@@ -411,13 +413,13 @@ var _default = exports["default"] = function _default() {
411
413
  owner = _yield$ar$dataitem.owner;
412
414
  item = _yield$ar$dataitem.item;
413
415
  __tags = _yield$ar$dataitem.tags;
414
- opt.tags = (0, _utils.buildTags)(null, __tags);
416
+ opt.tags = (0, _utils2.buildTags)(null, __tags);
415
417
  if (opt.item) opt.data = _base64url["default"].decode(item.data);
416
418
  _context3.next = 43;
417
419
  return ar.postItems(item, su.jwk);
418
420
  case 43:
419
421
  now = Date.now;
420
- t = (0, _utils.tags)(opt.tags);
422
+ t = (0, _utils2.tags)(opt.tags);
421
423
  ext = t.Extension || "WeaveDrive";
422
424
  wdrive = extensions[ext];
423
425
  handle = null;
@@ -460,7 +462,7 @@ var _default = exports["default"] = function _default() {
460
462
  id: mod
461
463
  };
462
464
  Date.now = now;
463
- _tags = (0, _utils.tags)(opt.tags);
465
+ _tags = (0, _utils2.tags)(opt.tags);
464
466
  res = null;
465
467
  memory = (_opt$memory = opt.memory) !== null && _opt$memory !== void 0 ? _opt$memory : null;
466
468
  p = {
@@ -655,9 +657,9 @@ var _default = exports["default"] = function _default() {
655
657
  _opt = _context4.sent;
656
658
  hash = genHashChain(p.hash, opt.message);
657
659
  p.hash = hash;
658
- _context4.t0 = _utils.buildTags;
660
+ _context4.t0 = _utils2.buildTags;
659
661
  _context4.t1 = _ramda.mergeLeft;
660
- _context4.t2 = (0, _utils.tags)((_opt$tags2 = opt.tags) !== null && _opt$tags2 !== void 0 ? _opt$tags2 : []);
662
+ _context4.t2 = (0, _utils2.tags)((_opt$tags2 = opt.tags) !== null && _opt$tags2 !== void 0 ? _opt$tags2 : []);
661
663
  _context4.t3 = Date.now();
662
664
  _context4.t4 = p.epochs.length;
663
665
  _context4.next = 17;
@@ -687,7 +689,7 @@ var _default = exports["default"] = function _default() {
687
689
  return ar.dataitem({
688
690
  data: opt.data,
689
691
  signer: opt.signer,
690
- tags: (0, _utils.tags)(opt.tags),
692
+ tags: (0, _utils2.tags)(opt.tags),
691
693
  target: opt.process
692
694
  });
693
695
  case 27:
@@ -852,7 +854,7 @@ var _default = exports["default"] = function _default() {
852
854
  break;
853
855
  }
854
856
  _v = _step4.value;
855
- __tags = (0, _utils.tags)(_v.Tags);
857
+ __tags = (0, _utils2.tags)(_v.Tags);
856
858
  _context4.next = 127;
857
859
  return spawn({
858
860
  "for": opt.message,
@@ -951,54 +953,74 @@ var _default = exports["default"] = function _default() {
951
953
  }();
952
954
  var message = /*#__PURE__*/function () {
953
955
  var _ref11 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee5(opt) {
954
- var p, id, owner, item, _yield$ar$httpmsg2, _opt$item$id, _opt$item, _opt$owner, _id, _owner, _item, _opt$tags3, _yield$mem$getTx$tags3, _yield$mem$getTx3, pr, module, _yield$ar$dataitem3, _msg, _opt, _ref12, _opt$from2, _opt$http_msg$data, from, data, _tags, msg, _env, _yield$mem$getWasm3, format, mod, wasm, wdrive, res, _msg2;
956
+ var id, owner, item, _yield$ar$httpmsg2, _p, new_slot, last_slot, _opt$item$id, _opt$item, _opt$owner, _id, _owner, _item, p, _opt$tags3, _yield$mem$getTx$tags3, _yield$mem$getTx3, pr, module, _yield$ar$dataitem3, _msg, _opt, _ref12, _opt$from2, _opt$http_msg$data, from, data, _tags, msg, _env, _yield$mem$getWasm3, format, mod, wasm, wdrive, res, _msg2;
955
957
  return _regeneratorRuntime().wrap(function _callee5$(_context5) {
956
958
  while (1) switch (_context5.prev = _context5.next) {
957
959
  case 0:
958
- _context5.next = 2;
959
- return mem.get("env", opt.process);
960
- case 2:
961
- p = _context5.sent;
962
- if (p) {
963
- _context5.next = 5;
964
- break;
965
- }
966
- return _context5.abrupt("return", null);
967
- case 5:
968
960
  id = "";
969
961
  owner = "";
970
962
  item = null;
971
963
  if (!ar.isHttpMsg(opt.http_msg)) {
972
- _context5.next = 18;
964
+ _context5.next = 24;
973
965
  break;
974
966
  }
975
967
  ;
976
- _context5.next = 12;
968
+ _context5.next = 7;
977
969
  return ar.httpmsg(opt.http_msg);
978
- case 12:
970
+ case 7:
979
971
  _yield$ar$httpmsg2 = _context5.sent;
972
+ id = _yield$ar$httpmsg2.id;
980
973
  owner = _yield$ar$httpmsg2.owner;
981
974
  item = _yield$ar$httpmsg2.item;
982
- id = opt.http_msg.target;
983
- _context5.next = 21;
975
+ _context5.next = 13;
976
+ return mem.get("env", opt.process);
977
+ case 13:
978
+ _p = _context5.sent;
979
+ new_slot = opt.slot * 1;
980
+ last_slot = !_p ? -1 : _p.results.length - 1;
981
+ if (!(last_slot + 1 !== new_slot)) {
982
+ _context5.next = 22;
983
+ break;
984
+ }
985
+ console.log("need process recovery from HB:", opt.process);
986
+ if (!(!hb || opt.recovery)) {
987
+ _context5.next = 20;
988
+ break;
989
+ }
990
+ return _context5.abrupt("return", null);
991
+ case 20:
992
+ _context5.next = 22;
993
+ return _recover(opt.process);
994
+ case 22:
995
+ _context5.next = 27;
984
996
  break;
985
- case 18:
997
+ case 24:
986
998
  _id = (_opt$item$id = opt === null || opt === void 0 || (_opt$item = opt.item) === null || _opt$item === void 0 ? void 0 : _opt$item.id) !== null && _opt$item$id !== void 0 ? _opt$item$id : "";
987
999
  _owner = (_opt$owner = opt.owner) !== null && _opt$owner !== void 0 ? _opt$owner : "";
988
1000
  _item = opt.item;
989
- case 21:
1001
+ case 27:
1002
+ _context5.next = 29;
1003
+ return mem.get("env", opt.process);
1004
+ case 29:
1005
+ p = _context5.sent;
1006
+ if (p) {
1007
+ _context5.next = 32;
1008
+ break;
1009
+ }
1010
+ return _context5.abrupt("return", null);
1011
+ case 32:
990
1012
  if (!(!opt.item && opt.signer)) {
991
- _context5.next = 56;
1013
+ _context5.next = 67;
992
1014
  break;
993
1015
  }
994
- opt.tags = (0, _utils.buildTags)(null, (0, _ramda.mergeLeft)((0, _utils.tags)((_opt$tags3 = opt.tags) !== null && _opt$tags3 !== void 0 ? _opt$tags3 : []), {
1016
+ opt.tags = (0, _utils2.buildTags)(null, (0, _ramda.mergeLeft)((0, _utils2.tags)((_opt$tags3 = opt.tags) !== null && _opt$tags3 !== void 0 ? _opt$tags3 : []), {
995
1017
  "Data-Protocol": "ao",
996
1018
  Variant: "ao.TN.1",
997
1019
  Type: "Message",
998
1020
  SDK: "aoconnect"
999
1021
  }));
1000
1022
  if (!opt["for"]) {
1001
- _context5.next = 49;
1023
+ _context5.next = 60;
1002
1024
  break;
1003
1025
  }
1004
1026
  opt.tags.push({
@@ -1009,100 +1031,100 @@ var _default = exports["default"] = function _default() {
1009
1031
  name: "From-Process",
1010
1032
  value: opt.from
1011
1033
  });
1012
- _context5.next = 28;
1034
+ _context5.next = 39;
1013
1035
  return mem.getTx(opt.from);
1014
- case 28:
1036
+ case 39:
1015
1037
  _context5.t2 = _yield$mem$getTx3 = _context5.sent;
1016
1038
  _context5.t1 = _context5.t2 === null;
1017
1039
  if (_context5.t1) {
1018
- _context5.next = 32;
1040
+ _context5.next = 43;
1019
1041
  break;
1020
1042
  }
1021
1043
  _context5.t1 = _yield$mem$getTx3 === void 0;
1022
- case 32:
1044
+ case 43:
1023
1045
  if (!_context5.t1) {
1024
- _context5.next = 36;
1046
+ _context5.next = 47;
1025
1047
  break;
1026
1048
  }
1027
1049
  _context5.t3 = void 0;
1028
- _context5.next = 37;
1050
+ _context5.next = 48;
1029
1051
  break;
1030
- case 36:
1052
+ case 47:
1031
1053
  _context5.t3 = _yield$mem$getTx3.tags;
1032
- case 37:
1054
+ case 48:
1033
1055
  _context5.t4 = _yield$mem$getTx$tags3 = _context5.t3;
1034
1056
  _context5.t0 = _context5.t4 !== null;
1035
1057
  if (!_context5.t0) {
1036
- _context5.next = 41;
1058
+ _context5.next = 52;
1037
1059
  break;
1038
1060
  }
1039
1061
  _context5.t0 = _yield$mem$getTx$tags3 !== void 0;
1040
- case 41:
1062
+ case 52:
1041
1063
  if (!_context5.t0) {
1042
- _context5.next = 45;
1064
+ _context5.next = 56;
1043
1065
  break;
1044
1066
  }
1045
1067
  _context5.t5 = _yield$mem$getTx$tags3;
1046
- _context5.next = 46;
1068
+ _context5.next = 57;
1047
1069
  break;
1048
- case 45:
1070
+ case 56:
1049
1071
  _context5.t5 = [];
1050
- case 46:
1072
+ case 57:
1051
1073
  pr = _context5.t5;
1052
- module = (0, _utils.tags)(pr).Module;
1074
+ module = (0, _utils2.tags)(pr).Module;
1053
1075
  if (module) opt.tags.push({
1054
1076
  name: "From-Module",
1055
1077
  value: module
1056
1078
  });
1057
- case 49:
1079
+ case 60:
1058
1080
  ;
1059
- _context5.next = 52;
1081
+ _context5.next = 63;
1060
1082
  return ar.dataitem({
1061
1083
  data: opt.data,
1062
1084
  signer: opt.signer,
1063
- tags: (0, _utils.tags)(opt.tags),
1085
+ tags: (0, _utils2.tags)(opt.tags),
1064
1086
  target: opt.process
1065
1087
  });
1066
- case 52:
1088
+ case 63:
1067
1089
  _yield$ar$dataitem3 = _context5.sent;
1068
1090
  item = _yield$ar$dataitem3.item;
1069
1091
  id = _yield$ar$dataitem3.id;
1070
1092
  owner = _yield$ar$dataitem3.owner;
1071
- case 56:
1093
+ case 67:
1072
1094
  _msg = (0, _ramda.dissoc)("signer", opt);
1073
- _context5.next = 59;
1095
+ _context5.next = 70;
1074
1096
  return mem.set(_msg, "msgs", id);
1075
- case 59:
1097
+ case 70:
1076
1098
  if (!ar.isHttpMsg(opt.http_msg)) {
1077
- _context5.next = 114;
1099
+ _context5.next = 125;
1078
1100
  break;
1079
1101
  }
1080
1102
  p.epochs.push([id]);
1081
1103
  _opt = opt;
1082
- _context5.prev = 62;
1104
+ _context5.prev = 73;
1083
1105
  // todo: not sure if this is correct
1084
1106
  from = (_ref12 = (_opt$from2 = _opt.from) !== null && _opt$from2 !== void 0 ? _opt$from2 : opt.from) !== null && _ref12 !== void 0 ? _ref12 : owner;
1085
1107
  data = (_opt$http_msg$data = opt.http_msg.data) !== null && _opt$http_msg$data !== void 0 ? _opt$http_msg$data : "";
1086
1108
  _tags = _opt.http_msg.tags; // todo: check if owner=mu.addr right?
1087
- _context5.next = 68;
1109
+ _context5.next = 79;
1088
1110
  return genMsg(opt.http_msg, p, data, _tags, from, owner);
1089
- case 68:
1111
+ case 79:
1090
1112
  msg = _context5.sent;
1091
- _context5.next = 71;
1113
+ _context5.next = 82;
1092
1114
  return genEnv({
1093
1115
  pid: p.id,
1094
1116
  owner: p.owner,
1095
1117
  module: p.module
1096
1118
  });
1097
- case 71:
1119
+ case 82:
1098
1120
  _env = _context5.sent;
1099
1121
  if (p.handle) {
1100
- _context5.next = 95;
1122
+ _context5.next = 106;
1101
1123
  break;
1102
1124
  }
1103
- _context5.next = 75;
1125
+ _context5.next = 86;
1104
1126
  return mem.getWasm(p.modulea);
1105
- case 75:
1127
+ case 86:
1106
1128
  _yield$mem$getWasm3 = _context5.sent;
1107
1129
  format = _yield$mem$getWasm3.format;
1108
1130
  mod = _yield$mem$getWasm3.mod;
@@ -1112,13 +1134,13 @@ var _default = exports["default"] = function _default() {
1112
1134
  _context5.t7 = wasm;
1113
1135
  _context5.t8 = format;
1114
1136
  _context5.t9 = wdrive;
1115
- _context5.next = 86;
1137
+ _context5.next = 97;
1116
1138
  return mem.getTx(p.id);
1117
- case 86:
1139
+ case 97:
1118
1140
  _context5.t10 = _context5.sent.item;
1119
- _context5.next = 89;
1141
+ _context5.next = 100;
1120
1142
  return mem.getTx(mod);
1121
- case 89:
1143
+ case 100:
1122
1144
  _context5.t11 = _context5.sent;
1123
1145
  _context5.t12 = {
1124
1146
  format: _context5.t8,
@@ -1126,38 +1148,38 @@ var _default = exports["default"] = function _default() {
1126
1148
  spawn: _context5.t10,
1127
1149
  module: _context5.t11
1128
1150
  };
1129
- _context5.next = 93;
1151
+ _context5.next = 104;
1130
1152
  return (0, _context5.t6)(_context5.t7, _context5.t12);
1131
- case 93:
1153
+ case 104:
1132
1154
  p.handle = _context5.sent;
1133
1155
  mem.env[opt.process].handle = p.handle;
1134
- case 95:
1135
- _context5.next = 97;
1156
+ case 106:
1157
+ _context5.next = 108;
1136
1158
  return p.handle(p.memory, msg, _env);
1137
- case 97:
1159
+ case 108:
1138
1160
  res = _context5.sent;
1139
1161
  p.memory = res.Memory;
1140
1162
  delete res.Memory;
1141
1163
  p.results.push(id);
1142
- _context5.next = 103;
1164
+ _context5.next = 114;
1143
1165
  return mem.set(p, "env", opt.process);
1144
- case 103:
1166
+ case 114:
1145
1167
  _msg2 = _objectSpread(_objectSpread({}, (0, _ramda.dissoc)("signer", _opt)), {}, {
1146
1168
  res: res
1147
1169
  });
1148
- _context5.next = 106;
1170
+ _context5.next = 117;
1149
1171
  return mem.set(_msg2, "msgs", id);
1150
- case 106:
1172
+ case 117:
1151
1173
  return _context5.abrupt("return", id);
1152
- case 109:
1153
- _context5.prev = 109;
1154
- _context5.t13 = _context5["catch"](62);
1174
+ case 120:
1175
+ _context5.prev = 120;
1176
+ _context5.t13 = _context5["catch"](73);
1155
1177
  console.log(_context5.t13);
1156
- case 112:
1157
- _context5.next = 116;
1178
+ case 123:
1179
+ _context5.next = 127;
1158
1180
  break;
1159
- case 114:
1160
- _context5.next = 116;
1181
+ case 125:
1182
+ _context5.next = 127;
1161
1183
  return _assign({
1162
1184
  message_item: item,
1163
1185
  message: id,
@@ -1165,99 +1187,278 @@ var _default = exports["default"] = function _default() {
1165
1187
  from: owner,
1166
1188
  signer: mu.signer
1167
1189
  });
1168
- case 116:
1190
+ case 127:
1169
1191
  return _context5.abrupt("return", id);
1170
- case 117:
1192
+ case 128:
1171
1193
  case "end":
1172
1194
  return _context5.stop();
1173
1195
  }
1174
- }, _callee5, null, [[62, 109]]);
1196
+ }, _callee5, null, [[73, 120]]);
1175
1197
  }));
1176
1198
  return function message(_x9) {
1177
1199
  return _ref11.apply(this, arguments);
1178
1200
  };
1179
1201
  }();
1180
- var result = /*#__PURE__*/function () {
1181
- var _ref13 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee6(opt) {
1182
- var _yield$mem$get2;
1202
+ var _recover = /*#__PURE__*/function () {
1203
+ var _ref13 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee6(pid, next) {
1204
+ var count, success, _success, i, p, from, msgs, _iterator7, _step7, v, item, _k2, _tags;
1183
1205
  return _regeneratorRuntime().wrap(function _callee6$(_context6) {
1184
1206
  while (1) switch (_context6.prev = _context6.next) {
1185
1207
  case 0:
1186
- _context6.next = 2;
1208
+ count = 0;
1209
+ success = false;
1210
+ if (!hb) {
1211
+ _context6.next = 77;
1212
+ break;
1213
+ }
1214
+ if (!onRecovery[pid]) {
1215
+ _context6.next = 20;
1216
+ break;
1217
+ }
1218
+ _success = false;
1219
+ i = 0;
1220
+ case 6:
1221
+ if (!true) {
1222
+ _context6.next = 17;
1223
+ break;
1224
+ }
1225
+ _context6.next = 9;
1226
+ return (0, _utils.wait)(1000);
1227
+ case 9:
1228
+ if (onRecovery[pid]) {
1229
+ _context6.next = 12;
1230
+ break;
1231
+ }
1232
+ _success = true;
1233
+ return _context6.abrupt("break", 17);
1234
+ case 12:
1235
+ if (!(i > 10)) {
1236
+ _context6.next = 14;
1237
+ break;
1238
+ }
1239
+ return _context6.abrupt("break", 17);
1240
+ case 14:
1241
+ i++;
1242
+ _context6.next = 6;
1243
+ break;
1244
+ case 17:
1245
+ return _context6.abrupt("return", {
1246
+ success: _success
1247
+ });
1248
+ case 20:
1249
+ onRecovery[pid] = true;
1250
+ _context6.prev = 21;
1251
+ _context6.next = 24;
1252
+ return mem.get("env", pid);
1253
+ case 24:
1254
+ p = _context6.sent;
1255
+ from = p ? p.results.length : 0;
1256
+ if (!next) {
1257
+ _context6.next = 32;
1258
+ break;
1259
+ }
1260
+ _context6.next = 29;
1261
+ return next();
1262
+ case 29:
1263
+ _context6.t0 = _context6.sent;
1264
+ _context6.next = 35;
1265
+ break;
1266
+ case 32:
1267
+ _context6.next = 34;
1268
+ return hb.messages({
1269
+ target: pid,
1270
+ from: from
1271
+ });
1272
+ case 34:
1273
+ _context6.t0 = _context6.sent;
1274
+ case 35:
1275
+ msgs = _context6.t0;
1276
+ _iterator7 = _createForOfIteratorHelper(msgs.edges);
1277
+ _context6.prev = 37;
1278
+ _iterator7.s();
1279
+ case 39:
1280
+ if ((_step7 = _iterator7.n()).done) {
1281
+ _context6.next = 59;
1282
+ break;
1283
+ }
1284
+ v = _step7.value;
1285
+ item = {};
1286
+ for (_k2 in v.node.message) {
1287
+ item[_k2.toLowerCase()] = v.node.message[_k2];
1288
+ }
1289
+ item.tags.push({
1290
+ name: "signature-input",
1291
+ value: "http-sig-"
1292
+ });
1293
+ item.tags.push({
1294
+ name: "siot",
1295
+ value: Number(v.cursor).toString()
1296
+ });
1297
+ item.tags.push({
1298
+ name: "Owner",
1299
+ value: v.node.message.Owner
1300
+ });
1301
+ // todo: why all the ids from Hyperbeam are the same?
1302
+ item.tags.push({
1303
+ name: "id",
1304
+ value: v.node.message.Id
1305
+ });
1306
+ item.target = pid;
1307
+ _tags = (0, _utils2.tags)(item.tags);
1308
+ if (!(_tags.Type === "Process")) {
1309
+ _context6.next = 54;
1310
+ break;
1311
+ }
1312
+ _context6.next = 52;
1313
+ return spawn({
1314
+ http_msg: item,
1315
+ scheduler: _tags.Scheduler,
1316
+ module: _tags.Module,
1317
+ slot: v.cursor,
1318
+ recovery: true
1319
+ });
1320
+ case 52:
1321
+ _context6.next = 56;
1322
+ break;
1323
+ case 54:
1324
+ _context6.next = 56;
1325
+ return message({
1326
+ process: pid,
1327
+ http_msg: item,
1328
+ slot: v.cursor,
1329
+ recovery: true
1330
+ });
1331
+ case 56:
1332
+ count++;
1333
+ case 57:
1334
+ _context6.next = 39;
1335
+ break;
1336
+ case 59:
1337
+ _context6.next = 64;
1338
+ break;
1339
+ case 61:
1340
+ _context6.prev = 61;
1341
+ _context6.t1 = _context6["catch"](37);
1342
+ _iterator7.e(_context6.t1);
1343
+ case 64:
1344
+ _context6.prev = 64;
1345
+ _iterator7.f();
1346
+ return _context6.finish(64);
1347
+ case 67:
1348
+ if (!msgs.next) {
1349
+ _context6.next = 70;
1350
+ break;
1351
+ }
1352
+ _context6.next = 70;
1353
+ return _recover(pid, msgs.next);
1354
+ case 70:
1355
+ _context6.next = 75;
1356
+ break;
1357
+ case 72:
1358
+ _context6.prev = 72;
1359
+ _context6.t2 = _context6["catch"](21);
1360
+ console.log(_context6.t2);
1361
+ case 75:
1362
+ delete onRecovery[pid];
1363
+ case 76:
1364
+ success = true;
1365
+ case 77:
1366
+ return _context6.abrupt("return", {
1367
+ recovered: count,
1368
+ pid: pid,
1369
+ success: success
1370
+ });
1371
+ case 78:
1372
+ case "end":
1373
+ return _context6.stop();
1374
+ }
1375
+ }, _callee6, null, [[21, 72], [37, 61, 64, 67]]);
1376
+ }));
1377
+ return function recover(_x10, _x11) {
1378
+ return _ref13.apply(this, arguments);
1379
+ };
1380
+ }();
1381
+ var result = /*#__PURE__*/function () {
1382
+ var _ref14 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee7(opt) {
1383
+ var _yield$mem$get2;
1384
+ return _regeneratorRuntime().wrap(function _callee7$(_context7) {
1385
+ while (1) switch (_context7.prev = _context7.next) {
1386
+ case 0:
1387
+ _context7.next = 2;
1187
1388
  return mem.get("msgs", opt.message);
1188
1389
  case 2:
1189
- _context6.t1 = _yield$mem$get2 = _context6.sent;
1190
- _context6.t0 = _context6.t1 === null;
1191
- if (_context6.t0) {
1192
- _context6.next = 6;
1390
+ _context7.t1 = _yield$mem$get2 = _context7.sent;
1391
+ _context7.t0 = _context7.t1 === null;
1392
+ if (_context7.t0) {
1393
+ _context7.next = 6;
1193
1394
  break;
1194
1395
  }
1195
- _context6.t0 = _yield$mem$get2 === void 0;
1396
+ _context7.t0 = _yield$mem$get2 === void 0;
1196
1397
  case 6:
1197
- if (!_context6.t0) {
1198
- _context6.next = 10;
1398
+ if (!_context7.t0) {
1399
+ _context7.next = 10;
1199
1400
  break;
1200
1401
  }
1201
- _context6.t2 = void 0;
1202
- _context6.next = 11;
1402
+ _context7.t2 = void 0;
1403
+ _context7.next = 11;
1203
1404
  break;
1204
1405
  case 10:
1205
- _context6.t2 = _yield$mem$get2.res;
1406
+ _context7.t2 = _yield$mem$get2.res;
1206
1407
  case 11:
1207
- return _context6.abrupt("return", _context6.t2);
1408
+ return _context7.abrupt("return", _context7.t2);
1208
1409
  case 12:
1209
1410
  case "end":
1210
- return _context6.stop();
1411
+ return _context7.stop();
1211
1412
  }
1212
- }, _callee6);
1413
+ }, _callee7);
1213
1414
  }));
1214
- return function result(_x10) {
1215
- return _ref13.apply(this, arguments);
1415
+ return function result(_x12) {
1416
+ return _ref14.apply(this, arguments);
1216
1417
  };
1217
1418
  }();
1218
1419
  return {
1219
1420
  message: message,
1220
1421
  unmonitor: function () {
1221
- var _unmonitor = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee7(opt) {
1422
+ var _unmonitor = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee8(opt) {
1222
1423
  var p;
1223
- return _regeneratorRuntime().wrap(function _callee7$(_context7) {
1224
- while (1) switch (_context7.prev = _context7.next) {
1424
+ return _regeneratorRuntime().wrap(function _callee8$(_context8) {
1425
+ while (1) switch (_context8.prev = _context8.next) {
1225
1426
  case 0:
1226
- _context7.next = 2;
1427
+ _context8.next = 2;
1227
1428
  return mem.get("env", opt.process);
1228
1429
  case 2:
1229
- p = _context7.sent;
1430
+ p = _context8.sent;
1230
1431
  try {
1231
1432
  clearInterval(p.cron);
1232
1433
  p.cron = null;
1233
1434
  } catch (e) {}
1234
1435
  case 4:
1235
1436
  case "end":
1236
- return _context7.stop();
1437
+ return _context8.stop();
1237
1438
  }
1238
- }, _callee7);
1439
+ }, _callee8);
1239
1440
  }));
1240
- function unmonitor(_x11) {
1441
+ function unmonitor(_x13) {
1241
1442
  return _unmonitor.apply(this, arguments);
1242
1443
  }
1243
1444
  return unmonitor;
1244
1445
  }(),
1245
1446
  monitor: function () {
1246
- var _monitor = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee9(opt) {
1447
+ var _monitor = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee10(opt) {
1247
1448
  var p;
1248
- return _regeneratorRuntime().wrap(function _callee9$(_context9) {
1249
- while (1) switch (_context9.prev = _context9.next) {
1449
+ return _regeneratorRuntime().wrap(function _callee10$(_context10) {
1450
+ while (1) switch (_context10.prev = _context10.next) {
1250
1451
  case 0:
1251
- _context9.next = 2;
1452
+ _context10.next = 2;
1252
1453
  return mem.get("env", opt.process);
1253
1454
  case 2:
1254
- p = _context9.sent;
1455
+ p = _context10.sent;
1255
1456
  if ((0, _ramda.isNil)(p.cron)) {
1256
- p.cron = setInterval(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {
1257
- return _regeneratorRuntime().wrap(function _callee8$(_context8) {
1258
- while (1) switch (_context8.prev = _context8.next) {
1457
+ p.cron = setInterval(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee9() {
1458
+ return _regeneratorRuntime().wrap(function _callee9$(_context9) {
1459
+ while (1) switch (_context9.prev = _context9.next) {
1259
1460
  case 0:
1260
- _context8.next = 2;
1461
+ _context9.next = 2;
1261
1462
  return message({
1262
1463
  tags: p.cronTags,
1263
1464
  process: opt.process,
@@ -1266,18 +1467,18 @@ var _default = exports["default"] = function _default() {
1266
1467
  });
1267
1468
  case 2:
1268
1469
  case "end":
1269
- return _context8.stop();
1470
+ return _context9.stop();
1270
1471
  }
1271
- }, _callee8);
1472
+ }, _callee9);
1272
1473
  })), p.span);
1273
1474
  }
1274
1475
  case 4:
1275
1476
  case "end":
1276
- return _context9.stop();
1477
+ return _context10.stop();
1277
1478
  }
1278
- }, _callee9);
1479
+ }, _callee10);
1279
1480
  }));
1280
- function monitor(_x12) {
1481
+ function monitor(_x14) {
1281
1482
  return _monitor.apply(this, arguments);
1282
1483
  }
1283
1484
  return monitor;
@@ -1287,135 +1488,135 @@ var _default = exports["default"] = function _default() {
1287
1488
  ar: ar,
1288
1489
  result: result,
1289
1490
  results: function () {
1290
- var _results = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee10(opt) {
1291
- var p, results, _ref15, _ref15$from, from, _ref15$to, to, _ref15$sort, sort, _ref15$limit, limit, _res, count, started, _iterator7, _step7, v;
1292
- return _regeneratorRuntime().wrap(function _callee10$(_context10) {
1293
- while (1) switch (_context10.prev = _context10.next) {
1491
+ var _results = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee11(opt) {
1492
+ var p, results, _ref16, _ref16$from, from, _ref16$to, to, _ref16$sort, sort, _ref16$limit, limit, _res, count, started, _iterator8, _step8, v;
1493
+ return _regeneratorRuntime().wrap(function _callee11$(_context11) {
1494
+ while (1) switch (_context11.prev = _context11.next) {
1294
1495
  case 0:
1295
- _context10.next = 2;
1496
+ _context11.next = 2;
1296
1497
  return mem.get("env", opt.process);
1297
1498
  case 2:
1298
- p = _context10.sent;
1499
+ p = _context11.sent;
1299
1500
  if (p) {
1300
- _context10.next = 5;
1501
+ _context11.next = 5;
1301
1502
  break;
1302
1503
  }
1303
- return _context10.abrupt("return", {
1504
+ return _context11.abrupt("return", {
1304
1505
  edges: []
1305
1506
  });
1306
1507
  case 5:
1307
1508
  results = (p === null || p === void 0 ? void 0 : p.results) || [];
1308
- _ref15 = opt || {}, _ref15$from = _ref15.from, from = _ref15$from === void 0 ? null : _ref15$from, _ref15$to = _ref15.to, to = _ref15$to === void 0 ? null : _ref15$to, _ref15$sort = _ref15.sort, sort = _ref15$sort === void 0 ? "ASC" : _ref15$sort, _ref15$limit = _ref15.limit, limit = _ref15$limit === void 0 ? 25 : _ref15$limit;
1509
+ _ref16 = opt || {}, _ref16$from = _ref16.from, from = _ref16$from === void 0 ? null : _ref16$from, _ref16$to = _ref16.to, to = _ref16$to === void 0 ? null : _ref16$to, _ref16$sort = _ref16.sort, sort = _ref16$sort === void 0 ? "ASC" : _ref16$sort, _ref16$limit = _ref16.limit, limit = _ref16$limit === void 0 ? 25 : _ref16$limit;
1309
1510
  if (sort === "DESC") results = (0, _ramda.reverse)(results);
1310
1511
  _res = [];
1311
1512
  count = 0;
1312
1513
  started = (0, _ramda.isNil)(from);
1313
- _iterator7 = _createForOfIteratorHelper(results);
1314
- _context10.prev = 12;
1315
- _iterator7.s();
1514
+ _iterator8 = _createForOfIteratorHelper(results);
1515
+ _context11.prev = 12;
1516
+ _iterator8.s();
1316
1517
  case 14:
1317
- if ((_step7 = _iterator7.n()).done) {
1318
- _context10.next = 34;
1518
+ if ((_step8 = _iterator8.n()).done) {
1519
+ _context11.next = 34;
1319
1520
  break;
1320
1521
  }
1321
- v = _step7.value;
1522
+ v = _step8.value;
1322
1523
  if (!started) {
1323
- _context10.next = 31;
1524
+ _context11.next = 31;
1324
1525
  break;
1325
1526
  }
1326
- _context10.t0 = _res;
1327
- _context10.t1 = v;
1328
- _context10.next = 21;
1527
+ _context11.t0 = _res;
1528
+ _context11.t1 = v;
1529
+ _context11.next = 21;
1329
1530
  return result({
1330
1531
  message: v
1331
1532
  });
1332
1533
  case 21:
1333
- _context10.t2 = _context10.sent;
1334
- _context10.t3 = {
1335
- cursor: _context10.t1,
1336
- node: _context10.t2
1534
+ _context11.t2 = _context11.sent;
1535
+ _context11.t3 = {
1536
+ cursor: _context11.t1,
1537
+ node: _context11.t2
1337
1538
  };
1338
- _context10.t0.push.call(_context10.t0, _context10.t3);
1539
+ _context11.t0.push.call(_context11.t0, _context11.t3);
1339
1540
  count++;
1340
1541
  if (!(!(0, _ramda.isNil)(to) && v === to)) {
1341
- _context10.next = 27;
1542
+ _context11.next = 27;
1342
1543
  break;
1343
1544
  }
1344
- return _context10.abrupt("break", 34);
1545
+ return _context11.abrupt("break", 34);
1345
1546
  case 27:
1346
1547
  if (!(limit <= count)) {
1347
- _context10.next = 29;
1548
+ _context11.next = 29;
1348
1549
  break;
1349
1550
  }
1350
- return _context10.abrupt("break", 34);
1551
+ return _context11.abrupt("break", 34);
1351
1552
  case 29:
1352
- _context10.next = 32;
1553
+ _context11.next = 32;
1353
1554
  break;
1354
1555
  case 31:
1355
1556
  if (from === v) started = true;
1356
1557
  case 32:
1357
- _context10.next = 14;
1558
+ _context11.next = 14;
1358
1559
  break;
1359
1560
  case 34:
1360
- _context10.next = 39;
1561
+ _context11.next = 39;
1361
1562
  break;
1362
1563
  case 36:
1363
- _context10.prev = 36;
1364
- _context10.t4 = _context10["catch"](12);
1365
- _iterator7.e(_context10.t4);
1564
+ _context11.prev = 36;
1565
+ _context11.t4 = _context11["catch"](12);
1566
+ _iterator8.e(_context11.t4);
1366
1567
  case 39:
1367
- _context10.prev = 39;
1368
- _iterator7.f();
1369
- return _context10.finish(39);
1568
+ _context11.prev = 39;
1569
+ _iterator8.f();
1570
+ return _context11.finish(39);
1370
1571
  case 42:
1371
- return _context10.abrupt("return", {
1572
+ return _context11.abrupt("return", {
1372
1573
  edges: _res
1373
1574
  });
1374
1575
  case 43:
1375
1576
  case "end":
1376
- return _context10.stop();
1577
+ return _context11.stop();
1377
1578
  }
1378
- }, _callee10, null, [[12, 36, 39, 42]]);
1579
+ }, _callee11, null, [[12, 36, 39, 42]]);
1379
1580
  }));
1380
- function results(_x13) {
1581
+ function results(_x15) {
1381
1582
  return _results.apply(this, arguments);
1382
1583
  }
1383
1584
  return results;
1384
1585
  }(),
1385
1586
  dryrun: function () {
1386
- var _dryrun = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee11(opt) {
1587
+ var _dryrun = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee12(opt) {
1387
1588
  var _opt$id, _opt$owner2;
1388
1589
  var p, id, owner, _yield$ar$dataitem4, _opt$data3, cloneMemory, msg, _env, _yield$mem$getWasm4, format, mod, wasm, wdrive, res;
1389
- return _regeneratorRuntime().wrap(function _callee11$(_context11) {
1390
- while (1) switch (_context11.prev = _context11.next) {
1590
+ return _regeneratorRuntime().wrap(function _callee12$(_context12) {
1591
+ while (1) switch (_context12.prev = _context12.next) {
1391
1592
  case 0:
1392
- _context11.next = 2;
1593
+ _context12.next = 2;
1393
1594
  return mem.get("env", opt.process);
1394
1595
  case 2:
1395
- p = _context11.sent;
1596
+ p = _context12.sent;
1396
1597
  if (p) {
1397
- _context11.next = 5;
1598
+ _context12.next = 5;
1398
1599
  break;
1399
1600
  }
1400
- return _context11.abrupt("return", null);
1601
+ return _context12.abrupt("return", null);
1401
1602
  case 5:
1402
1603
  id = (_opt$id = opt.id) !== null && _opt$id !== void 0 ? _opt$id : "";
1403
1604
  owner = (_opt$owner2 = opt.owner) !== null && _opt$owner2 !== void 0 ? _opt$owner2 : mu.addr;
1404
1605
  if (!(!opt.id && opt.signer)) {
1405
- _context11.next = 14;
1606
+ _context12.next = 14;
1406
1607
  break;
1407
1608
  }
1408
1609
  ;
1409
- _context11.next = 11;
1610
+ _context12.next = 11;
1410
1611
  return ar.dataitem(_objectSpread(_objectSpread({}, opt), {}, {
1411
1612
  target: opt.process
1412
1613
  }));
1413
1614
  case 11:
1414
- _yield$ar$dataitem4 = _context11.sent;
1615
+ _yield$ar$dataitem4 = _context12.sent;
1415
1616
  id = _yield$ar$dataitem4.id;
1416
1617
  owner = _yield$ar$dataitem4.owner;
1417
1618
  case 14:
1418
- _context11.prev = 14;
1619
+ _context12.prev = 14;
1419
1620
  cloneMemory = function cloneMemory(memory) {
1420
1621
  var buffer = memory.buffer.slice(0);
1421
1622
  return new WebAssembly.Memory({
@@ -1424,76 +1625,77 @@ var _default = exports["default"] = function _default() {
1424
1625
  shared: memory.shared || false
1425
1626
  });
1426
1627
  };
1427
- _context11.next = 18;
1628
+ _context12.next = 18;
1428
1629
  return genMsg(id, p, (_opt$data3 = opt.data) !== null && _opt$data3 !== void 0 ? _opt$data3 : "", opt.tags, owner, owner, true);
1429
1630
  case 18:
1430
- msg = _context11.sent;
1431
- _context11.next = 21;
1631
+ msg = _context12.sent;
1632
+ _context12.next = 21;
1432
1633
  return genEnv({
1433
1634
  pid: p.id,
1434
1635
  owner: p.owner,
1435
1636
  module: p.module
1436
1637
  });
1437
1638
  case 21:
1438
- _env = _context11.sent;
1639
+ _env = _context12.sent;
1439
1640
  if (p.handle) {
1440
- _context11.next = 45;
1641
+ _context12.next = 45;
1441
1642
  break;
1442
1643
  }
1443
- _context11.next = 25;
1644
+ _context12.next = 25;
1444
1645
  return mem.getWasm(p.module);
1445
1646
  case 25:
1446
- _yield$mem$getWasm4 = _context11.sent;
1647
+ _yield$mem$getWasm4 = _context12.sent;
1447
1648
  format = _yield$mem$getWasm4.format;
1448
1649
  mod = _yield$mem$getWasm4.mod;
1449
1650
  wasm = _yield$mem$getWasm4.wasm;
1450
1651
  wdrive = extensions[p.extention];
1451
- _context11.t0 = AoLoader;
1452
- _context11.t1 = wasm;
1453
- _context11.t2 = format;
1454
- _context11.t3 = wdrive;
1455
- _context11.next = 36;
1652
+ _context12.t0 = AoLoader;
1653
+ _context12.t1 = wasm;
1654
+ _context12.t2 = format;
1655
+ _context12.t3 = wdrive;
1656
+ _context12.next = 36;
1456
1657
  return mem.getTx(p.id);
1457
1658
  case 36:
1458
- _context11.t4 = _context11.sent.item;
1459
- _context11.next = 39;
1659
+ _context12.t4 = _context12.sent.item;
1660
+ _context12.next = 39;
1460
1661
  return mem.getTx(mod);
1461
1662
  case 39:
1462
- _context11.t5 = _context11.sent;
1463
- _context11.t6 = {
1464
- format: _context11.t2,
1465
- WeaveDrive: _context11.t3,
1466
- spawn: _context11.t4,
1467
- module: _context11.t5
1663
+ _context12.t5 = _context12.sent;
1664
+ _context12.t6 = {
1665
+ format: _context12.t2,
1666
+ WeaveDrive: _context12.t3,
1667
+ spawn: _context12.t4,
1668
+ module: _context12.t5
1468
1669
  };
1469
- _context11.next = 43;
1470
- return (0, _context11.t0)(_context11.t1, _context11.t6);
1670
+ _context12.next = 43;
1671
+ return (0, _context12.t0)(_context12.t1, _context12.t6);
1471
1672
  case 43:
1472
- p.handle = _context11.sent;
1673
+ p.handle = _context12.sent;
1473
1674
  mem.env[opt.process].handle = p.handle;
1474
1675
  case 45:
1475
- _context11.next = 47;
1676
+ _context12.next = 47;
1476
1677
  return p.handle(p.memory, msg, _env);
1477
1678
  case 47:
1478
- res = _context11.sent;
1479
- return _context11.abrupt("return", res);
1679
+ res = _context12.sent;
1680
+ return _context12.abrupt("return", res);
1480
1681
  case 51:
1481
- _context11.prev = 51;
1482
- _context11.t7 = _context11["catch"](14);
1483
- console.log(_context11.t7);
1682
+ _context12.prev = 51;
1683
+ _context12.t7 = _context12["catch"](14);
1684
+ console.log(_context12.t7);
1484
1685
  case 54:
1485
- return _context11.abrupt("return", null);
1686
+ return _context12.abrupt("return", null);
1486
1687
  case 55:
1487
1688
  case "end":
1488
- return _context11.stop();
1689
+ return _context12.stop();
1489
1690
  }
1490
- }, _callee11, null, [[14, 51]]);
1691
+ }, _callee12, null, [[14, 51]]);
1491
1692
  }));
1492
- function dryrun(_x14) {
1693
+ function dryrun(_x16) {
1493
1694
  return _dryrun.apply(this, arguments);
1494
1695
  }
1495
1696
  return dryrun;
1496
1697
  }(),
1698
+ recover: _recover,
1497
1699
  mem: mem
1498
1700
  };
1499
1701
  };