occam-languages 2.1.15 → 2.1.17

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.
@@ -15,6 +15,9 @@ _export(exports, {
15
15
  get default () {
16
16
  return _default;
17
17
  },
18
+ get each () {
19
+ return each;
20
+ },
18
21
  get every () {
19
22
  return every;
20
23
  },
@@ -30,6 +33,9 @@ _export(exports, {
30
33
  get match () {
31
34
  return match;
32
35
  },
36
+ get one () {
37
+ return one;
38
+ },
33
39
  get reduce () {
34
40
  return reduce;
35
41
  },
@@ -42,6 +48,44 @@ _export(exports, {
42
48
  });
43
49
  const _necessary = require("necessary");
44
50
  const { first: arrayFirst, filter: arrayFilter } = _necessary.arrayUtilities, { forEach: asynchronousForEach, forwardsForEach: asynchronousForwardsForEach, backwardsForEach: asynchronousBackwardsForEach } = _necessary.asynchronousUtilities;
51
+ function one(array, callback, ...remainingArguments) {
52
+ let found = false;
53
+ const continuation = remainingArguments.pop();
54
+ asynchronousForEach(array, (element, next, done)=>{
55
+ callback(element, ...remainingArguments, (passed)=>{
56
+ if (passed) {
57
+ if (!found) {
58
+ found = true;
59
+ } else {
60
+ found = false;
61
+ done();
62
+ return;
63
+ }
64
+ }
65
+ next();
66
+ });
67
+ }, ()=>{
68
+ continuation(found);
69
+ });
70
+ }
71
+ function each(array, callback, ...remainingArguments) {
72
+ let found = false;
73
+ const continuation = remainingArguments.pop();
74
+ asynchronousForEach(array, (element, next, done)=>{
75
+ callback(element, ...remainingArguments, (passed)=>{
76
+ if (passed) {
77
+ found = true;
78
+ } else {
79
+ found = false;
80
+ done();
81
+ return;
82
+ }
83
+ next();
84
+ });
85
+ }, ()=>{
86
+ continuation(found);
87
+ });
88
+ }
45
89
  function some(array, callback, ...remainingArguments) {
46
90
  let success = false;
47
91
  const continuation = remainingArguments.pop();
@@ -207,6 +251,8 @@ function backwardsEvery(array, callback, ...remainingArguments) {
207
251
  });
208
252
  }
209
253
  const _default = {
254
+ one,
255
+ each,
210
256
  some,
211
257
  every,
212
258
  match,
@@ -218,4 +264,4 @@ const _default = {
218
264
  backwardsEvery
219
265
  };
220
266
 
221
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29udGludWF0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcywgYXN5bmNocm9ub3VzVXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5jb25zdCB7IGZpcnN0OiBhcnJheUZpcnN0LCBmaWx0ZXI6IGFycmF5RmlsdGVyIH0gPSBhcnJheVV0aWxpdGllcyxcbiAgICAgIHsgZm9yRWFjaDogYXN5bmNocm9ub3VzRm9yRWFjaCxcbiAgICAgICAgZm9yd2FyZHNGb3JFYWNoOiBhc3luY2hyb25vdXNGb3J3YXJkc0ZvckVhY2gsXG4gICAgICAgIGJhY2t3YXJkc0ZvckVhY2g6IGFzeW5jaHJvbm91c0JhY2t3YXJkc0ZvckVhY2ggfSA9IGFzeW5jaHJvbm91c1V0aWxpdGllcztcblxuZXhwb3J0IGZ1bmN0aW9uIHNvbWUoYXJyYXksIGNhbGxiYWNrLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgbGV0IHN1Y2Nlc3MgPSBmYWxzZTtcblxuICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgYXN5bmNocm9ub3VzRm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICBjYWxsYmFjayhlbGVtZW50LCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIChwYXNzZWQpID0+IHtcbiAgICAgIGlmIChwYXNzZWQpIHtcbiAgICAgICAgc3VjY2VzcyA9IHRydWU7XG5cbiAgICAgICAgZG9uZSgpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbmV4dCgpO1xuICAgIH0pO1xuICB9LCAoKSA9PiB7XG4gICAgY29udGludWF0aW9uKHN1Y2Nlc3MpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV2ZXJ5KGFycmF5LCBjYWxsYmFjaywgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gIGxldCBzdWNjZXNzID0gdHJ1ZTtcblxuICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgYXN5bmNocm9ub3VzRm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICBjYWxsYmFjayhlbGVtZW50LCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIChwYXNzZWQpID0+IHtcbiAgICAgIGlmICghcGFzc2VkKSB7XG4gICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTtcblxuICAgICAgICBkb25lKCk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBuZXh0KCk7XG4gICAgfSk7XG4gIH0sICgpID0+IHtcbiAgICBjb250aW51YXRpb24oc3VjY2Vzcyk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWF0Y2goYXJyYXlBLCBhcnJheUIsIGNhbGxiYWNrLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBhcnJheUFMZW5ndGggPSBhcnJheUEubGVuZ3RoLFxuICAgICAgICBhcnJheUJMZW5ndGggPSBhcnJheUIubGVuZ3RoO1xuXG4gIGlmIChhcnJheUFMZW5ndGggIT09IGFycmF5Qkxlbmd0aCkge1xuICAgIGNvbnN0IG1hdGNoZXMgPSBmYWxzZTtcblxuICAgIGNvbnRpbnVhdGlvbihtYXRjaGVzKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIGxldCBpbmRleCA9IC0xO1xuXG4gIGV2ZXJ5KGFycmF5QSwgKGVsZW1lbnRBLCBjb250aW51YXRpb24pID0+IHtcbiAgICBpbmRleCsrO1xuXG4gICAgY29uc3QgZWxlbWVudEIgPSBhcnJheUJbaW5kZXhdO1xuXG4gICAgY2FsbGJhY2soZWxlbWVudEEsIGVsZW1lbnRCLCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIGNvbnRpbnVhdGlvbik7XG4gIH0sIChzdWNjZXNzKSA9PiB7XG4gICAgY29uc3QgbWF0Y2hlcyA9IHN1Y2Nlc3M7ICAvLy9cblxuICAgIGNvbnRpbnVhdGlvbihtYXRjaGVzKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWR1Y2UoYXJyYXksIGluaXRpYWxWYWx1ZSwgY2FsbGJhY2ssIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICBsZXQgdmFsdWUgPSBpbml0aWFsVmFsdWU7IC8vL1xuXG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKTtcblxuICBhc3luY2hyb25vdXNGb3JFYWNoKGFycmF5LCAoZWxlbWVudCwgbmV4dCwgZG9uZSkgPT4ge1xuICAgIGNhbGxiYWNrKHZhbHVlLCBlbGVtZW50LCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIChjdXJyZW50VmFsdWUpID0+IHtcbiAgICAgIHZhbHVlID0gY3VycmVudFZhbHVlOyAgLy8vXG5cbiAgICAgIG5leHQoKTtcbiAgICB9KTtcbiAgfSwgKCkgPT4ge1xuICAgIGNvbnRpbnVhdGlvbih2YWx1ZSk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9yRWFjaChhcnJheSwgY2FsbGJhY2ssIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgYXN5bmNocm9ub3VzRm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICBjYWxsYmFjayhlbGVtZW50LCAuLi5yZW1haW5pbmdBcmd1bWVudHMsICgpID0+IHtcbiAgICAgIG5leHQoKTtcbiAgICB9KTtcbiAgfSwgY29udGludWF0aW9uKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3QoYXJyYXksIGNhbGxiYWNrLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgbGV0IGRlbGV0ZWRFbGVtZW50ID0gdW5kZWZpbmVkOyAvLy9cblxuICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgbGV0IGluZGV4ID0gLTE7XG5cbiAgc29tZShhcnJheSwgKGVsZW1lbnQsIGNvbnRpbnVhdGlvbikgPT4ge1xuICAgIGluZGV4Kys7XG5cbiAgICBjYWxsYmFjayhlbGVtZW50LCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIChwYXNzZWQpID0+IHtcbiAgICAgIGlmIChwYXNzZWQpIHtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSBpbmRleCwgIC8vL1xuICAgICAgICAgICAgICBkZWxldGVDb3VudCA9IDEsXG4gICAgICAgICAgICAgIGRlbGV0ZWRFbGVtZW50cyA9IGFycmF5LnNwbGljZShzdGFydCwgZGVsZXRlQ291bnQpLFxuICAgICAgICAgICAgICBmaXJzdERlbGV0ZWRFbGVtZW50ID0gYXJyYXlGaXJzdChkZWxldGVkRWxlbWVudHMpO1xuXG4gICAgICAgIGRlbGV0ZWRFbGVtZW50ID0gZmlyc3REZWxldGVkRWxlbWVudDsgIC8vL1xuICAgICAgfVxuXG4gICAgICBjb250aW51YXRpb24ocGFzc2VkKTtcbiAgICB9KTtcbiAgfSwgKCkgPT4ge1xuICAgIGNvbnRpbnVhdGlvbihkZWxldGVkRWxlbWVudCk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZShhcnJheUEsIGFycmF5QiwgY2FsbGJhY2ssIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICBhcnJheUEgPSBbICAvLy9cbiAgICAuLi5hcnJheUFcbiAgXTtcblxuICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgZnVuY3Rpb24gbmV4dFBhc3MoKSB7XG4gICAgY29uc3QgYXJyYXlBTGVuZ3RoID0gYXJyYXlBLmxlbmd0aDtcblxuICAgIGlmIChhcnJheUFMZW5ndGggPT09IDApIHtcbiAgICAgIGNvbnN0IHN1Y2Nlc3MgPSB0cnVlOyAgLy8vXG5cbiAgICAgIGNvbnRpbnVhdGlvbihzdWNjZXNzKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICBsZXQgY291bnQgPSAtMTtcblxuICAgIGZ1bmN0aW9uIG5leHRFbGVtZW50KCkge1xuICAgICAgY291bnQrKztcblxuICAgICAgY29uc3QgdGVybWluYXRlID0gKGNvdW50ID09PSBhcnJheUFMZW5ndGgpO1xuXG4gICAgICBpZiAodGVybWluYXRlKSB7XG4gICAgICAgIGlmICghc3VjY2Vzcykge1xuICAgICAgICAgIGNvbnN0IHN1Y2Nlc3MgPSBmYWxzZTsgLy8vXG5cbiAgICAgICAgICBjb250aW51YXRpb24oc3VjY2Vzcyk7XG5cbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBhcnJheUZpbHRlcihhcnJheUEsIChlbGVtZW50QSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGFycmF5QkluY2x1ZGVzRWxlbWVudEEgPSBhcnJheUIuaW5jbHVkZXMoZWxlbWVudEEpO1xuXG4gICAgICAgICAgaWYgKCFhcnJheUJJbmNsdWRlc0VsZW1lbnRBKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIG5leHRQYXNzKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBpbmRleCA9IGNvdW50LCAgLy8vXG4gICAgICAgICAgICAgIGVsZW1lbnRBID0gYXJyYXlBW2luZGV4XTtcblxuICAgICAgICBjYWxsYmFjayhlbGVtZW50QSwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCAocGFzc2VkKSA9PiB7XG4gICAgICAgICAgaWYgKHBhc3NlZCkge1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudEIgPSBlbGVtZW50QTsgIC8vL1xuXG4gICAgICAgICAgICBhcnJheUIucHVzaChlbGVtZW50Qik7XG5cbiAgICAgICAgICAgIHN1Y2Nlc3MgPSB0cnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG5leHRFbGVtZW50KCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIG5leHRFbGVtZW50KCk7XG4gIH1cblxuICBuZXh0UGFzcygpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9yd2FyZHNFdmVyeShhcnJheSwgY2FsbGJhY2ssIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICBsZXQgc3VjY2VzcyA9IHRydWU7XG5cbiAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpO1xuXG4gIGFzeW5jaHJvbm91c0ZvcndhcmRzRm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICBjYWxsYmFjayhlbGVtZW50LCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIChwYXNzZWQpID0+IHtcbiAgICAgIGlmICghcGFzc2VkKSB7XG4gICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTtcblxuICAgICAgICBkb25lKCk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBuZXh0KCk7XG4gICAgfSk7XG4gIH0sICgpID0+IHtcbiAgICBjb250aW51YXRpb24oc3VjY2Vzcyk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYmFja3dhcmRzRXZlcnkoYXJyYXksIGNhbGxiYWNrLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgbGV0IHN1Y2Nlc3MgPSB0cnVlO1xuXG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKTtcblxuICBhc3luY2hyb25vdXNCYWNrd2FyZHNGb3JFYWNoKGFycmF5LCAoZWxlbWVudCwgbmV4dCwgZG9uZSkgPT4ge1xuICAgIGNhbGxiYWNrKGVsZW1lbnQsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgKHBhc3NlZCkgPT4ge1xuICAgICAgaWYgKCFwYXNzZWQpIHtcbiAgICAgICAgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICAgIGRvbmUoKTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIG5leHQoKTtcbiAgICB9KTtcbiAgfSwgKCkgPT4ge1xuICAgIGNvbnRpbnVhdGlvbihzdWNjZXNzKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgc29tZSxcbiAgZXZlcnksXG4gIG1hdGNoLFxuICByZWR1Y2UsXG4gIGZvckVhY2gsXG4gIGV4dHJhY3QsXG4gIHJlc29sdmUsXG4gIGZvcndhcmRzRXZlcnksXG4gIGJhY2t3YXJkc0V2ZXJ5XG59XG4iXSwibmFtZXMiOlsiYmFja3dhcmRzRXZlcnkiLCJldmVyeSIsImV4dHJhY3QiLCJmb3JFYWNoIiwiZm9yd2FyZHNFdmVyeSIsIm1hdGNoIiwicmVkdWNlIiwicmVzb2x2ZSIsInNvbWUiLCJmaXJzdCIsImFycmF5Rmlyc3QiLCJmaWx0ZXIiLCJhcnJheUZpbHRlciIsImFycmF5VXRpbGl0aWVzIiwiYXN5bmNocm9ub3VzRm9yRWFjaCIsImZvcndhcmRzRm9yRWFjaCIsImFzeW5jaHJvbm91c0ZvcndhcmRzRm9yRWFjaCIsImJhY2t3YXJkc0ZvckVhY2giLCJhc3luY2hyb25vdXNCYWNrd2FyZHNGb3JFYWNoIiwiYXN5bmNocm9ub3VzVXRpbGl0aWVzIiwiYXJyYXkiLCJjYWxsYmFjayIsInJlbWFpbmluZ0FyZ3VtZW50cyIsInN1Y2Nlc3MiLCJjb250aW51YXRpb24iLCJwb3AiLCJlbGVtZW50IiwibmV4dCIsImRvbmUiLCJwYXNzZWQiLCJhcnJheUEiLCJhcnJheUIiLCJhcnJheUFMZW5ndGgiLCJsZW5ndGgiLCJhcnJheUJMZW5ndGgiLCJtYXRjaGVzIiwiaW5kZXgiLCJlbGVtZW50QSIsImVsZW1lbnRCIiwiaW5pdGlhbFZhbHVlIiwidmFsdWUiLCJjdXJyZW50VmFsdWUiLCJkZWxldGVkRWxlbWVudCIsInVuZGVmaW5lZCIsInN0YXJ0IiwiZGVsZXRlQ291bnQiLCJkZWxldGVkRWxlbWVudHMiLCJzcGxpY2UiLCJmaXJzdERlbGV0ZWRFbGVtZW50IiwibmV4dFBhc3MiLCJjb3VudCIsIm5leHRFbGVtZW50IiwidGVybWluYXRlIiwiYXJyYXlCSW5jbHVkZXNFbGVtZW50QSIsImluY2x1ZGVzIiwicHVzaCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBaU9nQkE7ZUFBQUE7O1FBc0JoQjtlQUFBOztRQXhOZ0JDO2VBQUFBOztRQTRFQUM7ZUFBQUE7O1FBVkFDO2VBQUFBOztRQTBHQUM7ZUFBQUE7O1FBdEpBQztlQUFBQTs7UUE0QkFDO2VBQUFBOztRQXFEQUM7ZUFBQUE7O1FBN0hBQztlQUFBQTs7OzJCQVBzQztBQUV0RCxNQUFNLEVBQUVDLE9BQU9DLFVBQVUsRUFBRUMsUUFBUUMsV0FBVyxFQUFFLEdBQUdDLHlCQUFjLEVBQzNELEVBQUVWLFNBQVNXLG1CQUFtQixFQUM1QkMsaUJBQWlCQywyQkFBMkIsRUFDNUNDLGtCQUFrQkMsNEJBQTRCLEVBQUUsR0FBR0MsZ0NBQXFCO0FBRXpFLFNBQVNYLEtBQUtZLEtBQUssRUFBRUMsUUFBUSxFQUFFLEdBQUdDLGtCQUFrQjtJQUN6RCxJQUFJQyxVQUFVO0lBRWQsTUFBTUMsZUFBZUYsbUJBQW1CRyxHQUFHO0lBRTNDWCxvQkFBb0JNLE9BQU8sQ0FBQ00sU0FBU0MsTUFBTUM7UUFDekNQLFNBQVNLLFlBQVlKLG9CQUFvQixDQUFDTztZQUN4QyxJQUFJQSxRQUFRO2dCQUNWTixVQUFVO2dCQUVWSztnQkFFQTtZQUNGO1lBRUFEO1FBQ0Y7SUFDRixHQUFHO1FBQ0RILGFBQWFEO0lBQ2Y7QUFDRjtBQUVPLFNBQVN0QixNQUFNbUIsS0FBSyxFQUFFQyxRQUFRLEVBQUUsR0FBR0Msa0JBQWtCO0lBQzFELElBQUlDLFVBQVU7SUFFZCxNQUFNQyxlQUFlRixtQkFBbUJHLEdBQUc7SUFFM0NYLG9CQUFvQk0sT0FBTyxDQUFDTSxTQUFTQyxNQUFNQztRQUN6Q1AsU0FBU0ssWUFBWUosb0JBQW9CLENBQUNPO1lBQ3hDLElBQUksQ0FBQ0EsUUFBUTtnQkFDWE4sVUFBVTtnQkFFVks7Z0JBRUE7WUFDRjtZQUVBRDtRQUNGO0lBQ0YsR0FBRztR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
267
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29udGludWF0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcywgYXN5bmNocm9ub3VzVXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5jb25zdCB7IGZpcnN0OiBhcnJheUZpcnN0LCBmaWx0ZXI6IGFycmF5RmlsdGVyIH0gPSBhcnJheVV0aWxpdGllcyxcbiAgICAgIHsgZm9yRWFjaDogYXN5bmNocm9ub3VzRm9yRWFjaCxcbiAgICAgICAgZm9yd2FyZHNGb3JFYWNoOiBhc3luY2hyb25vdXNGb3J3YXJkc0ZvckVhY2gsXG4gICAgICAgIGJhY2t3YXJkc0ZvckVhY2g6IGFzeW5jaHJvbm91c0JhY2t3YXJkc0ZvckVhY2ggfSA9IGFzeW5jaHJvbm91c1V0aWxpdGllcztcblxuZXhwb3J0IGZ1bmN0aW9uIG9uZShhcnJheSwgY2FsbGJhY2ssIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICBsZXQgZm91bmQgPSBmYWxzZTtcblxuICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgYXN5bmNocm9ub3VzRm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICBjYWxsYmFjayhlbGVtZW50LCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIChwYXNzZWQpID0+IHtcbiAgICAgIGlmIChwYXNzZWQpIHtcbiAgICAgICAgaWYgKCFmb3VuZCkge1xuICAgICAgICAgIGZvdW5kID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmb3VuZCA9IGZhbHNlO1xuXG4gICAgICAgICAgZG9uZSgpO1xuXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG5leHQoKTtcbiAgICB9KTtcbiAgfSwgKCkgPT4ge1xuICAgIGNvbnRpbnVhdGlvbihmb3VuZCk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZWFjaChhcnJheSwgY2FsbGJhY2ssIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICBsZXQgZm91bmQgPSBmYWxzZTtcblxuICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgYXN5bmNocm9ub3VzRm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICBjYWxsYmFjayhlbGVtZW50LCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIChwYXNzZWQpID0+IHtcbiAgICAgIGlmIChwYXNzZWQpIHtcbiAgICAgICAgZm91bmQgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZm91bmQgPSBmYWxzZTtcblxuICAgICAgICBkb25lKCk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBuZXh0KCk7XG4gICAgfSk7XG4gIH0sICgpID0+IHtcbiAgICBjb250aW51YXRpb24oZm91bmQpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNvbWUoYXJyYXksIGNhbGxiYWNrLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgbGV0IHN1Y2Nlc3MgPSBmYWxzZTtcblxuICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgYXN5bmNocm9ub3VzRm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICBjYWxsYmFjayhlbGVtZW50LCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIChwYXNzZWQpID0+IHtcbiAgICAgIGlmIChwYXNzZWQpIHtcbiAgICAgICAgc3VjY2VzcyA9IHRydWU7XG5cbiAgICAgICAgZG9uZSgpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbmV4dCgpO1xuICAgIH0pO1xuICB9LCAoKSA9PiB7XG4gICAgY29udGludWF0aW9uKHN1Y2Nlc3MpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV2ZXJ5KGFycmF5LCBjYWxsYmFjaywgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gIGxldCBzdWNjZXNzID0gdHJ1ZTtcblxuICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgYXN5bmNocm9ub3VzRm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICBjYWxsYmFjayhlbGVtZW50LCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIChwYXNzZWQpID0+IHtcbiAgICAgIGlmICghcGFzc2VkKSB7XG4gICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTtcblxuICAgICAgICBkb25lKCk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBuZXh0KCk7XG4gICAgfSk7XG4gIH0sICgpID0+IHtcbiAgICBjb250aW51YXRpb24oc3VjY2Vzcyk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWF0Y2goYXJyYXlBLCBhcnJheUIsIGNhbGxiYWNrLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBhcnJheUFMZW5ndGggPSBhcnJheUEubGVuZ3RoLFxuICAgICAgICBhcnJheUJMZW5ndGggPSBhcnJheUIubGVuZ3RoO1xuXG4gIGlmIChhcnJheUFMZW5ndGggIT09IGFycmF5Qkxlbmd0aCkge1xuICAgIGNvbnN0IG1hdGNoZXMgPSBmYWxzZTtcblxuICAgIGNvbnRpbnVhdGlvbihtYXRjaGVzKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIGxldCBpbmRleCA9IC0xO1xuXG4gIGV2ZXJ5KGFycmF5QSwgKGVsZW1lbnRBLCBjb250aW51YXRpb24pID0+IHtcbiAgICBpbmRleCsrO1xuXG4gICAgY29uc3QgZWxlbWVudEIgPSBhcnJheUJbaW5kZXhdO1xuXG4gICAgY2FsbGJhY2soZWxlbWVudEEsIGVsZW1lbnRCLCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIGNvbnRpbnVhdGlvbik7XG4gIH0sIChzdWNjZXNzKSA9PiB7XG4gICAgY29uc3QgbWF0Y2hlcyA9IHN1Y2Nlc3M7ICAvLy9cblxuICAgIGNvbnRpbnVhdGlvbihtYXRjaGVzKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWR1Y2UoYXJyYXksIGluaXRpYWxWYWx1ZSwgY2FsbGJhY2ssIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICBsZXQgdmFsdWUgPSBpbml0aWFsVmFsdWU7IC8vL1xuXG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKTtcblxuICBhc3luY2hyb25vdXNGb3JFYWNoKGFycmF5LCAoZWxlbWVudCwgbmV4dCwgZG9uZSkgPT4ge1xuICAgIGNhbGxiYWNrKHZhbHVlLCBlbGVtZW50LCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIChjdXJyZW50VmFsdWUpID0+IHtcbiAgICAgIHZhbHVlID0gY3VycmVudFZhbHVlOyAgLy8vXG5cbiAgICAgIG5leHQoKTtcbiAgICB9KTtcbiAgfSwgKCkgPT4ge1xuICAgIGNvbnRpbnVhdGlvbih2YWx1ZSk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9yRWFjaChhcnJheSwgY2FsbGJhY2ssIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgYXN5bmNocm9ub3VzRm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICBjYWxsYmFjayhlbGVtZW50LCAuLi5yZW1haW5pbmdBcmd1bWVudHMsICgpID0+IHtcbiAgICAgIG5leHQoKTtcbiAgICB9KTtcbiAgfSwgY29udGludWF0aW9uKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3QoYXJyYXksIGNhbGxiYWNrLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgbGV0IGRlbGV0ZWRFbGVtZW50ID0gdW5kZWZpbmVkOyAvLy9cblxuICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgbGV0IGluZGV4ID0gLTE7XG5cbiAgc29tZShhcnJheSwgKGVsZW1lbnQsIGNvbnRpbnVhdGlvbikgPT4ge1xuICAgIGluZGV4Kys7XG5cbiAgICBjYWxsYmFjayhlbGVtZW50LCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIChwYXNzZWQpID0+IHtcbiAgICAgIGlmIChwYXNzZWQpIHtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSBpbmRleCwgIC8vL1xuICAgICAgICAgICAgICBkZWxldGVDb3VudCA9IDEsXG4gICAgICAgICAgICAgIGRlbGV0ZWRFbGVtZW50cyA9IGFycmF5LnNwbGljZShzdGFydCwgZGVsZXRlQ291bnQpLFxuICAgICAgICAgICAgICBmaXJzdERlbGV0ZWRFbGVtZW50ID0gYXJyYXlGaXJzdChkZWxldGVkRWxlbWVudHMpO1xuXG4gICAgICAgIGRlbGV0ZWRFbGVtZW50ID0gZmlyc3REZWxldGVkRWxlbWVudDsgIC8vL1xuICAgICAgfVxuXG4gICAgICBjb250aW51YXRpb24ocGFzc2VkKTtcbiAgICB9KTtcbiAgfSwgKCkgPT4ge1xuICAgIGNvbnRpbnVhdGlvbihkZWxldGVkRWxlbWVudCk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZShhcnJheUEsIGFycmF5QiwgY2FsbGJhY2ssIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICBhcnJheUEgPSBbICAvLy9cbiAgICAuLi5hcnJheUFcbiAgXTtcblxuICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgZnVuY3Rpb24gbmV4dFBhc3MoKSB7XG4gICAgY29uc3QgYXJyYXlBTGVuZ3RoID0gYXJyYXlBLmxlbmd0aDtcblxuICAgIGlmIChhcnJheUFMZW5ndGggPT09IDApIHtcbiAgICAgIGNvbnN0IHN1Y2Nlc3MgPSB0cnVlOyAgLy8vXG5cbiAgICAgIGNvbnRpbnVhdGlvbihzdWNjZXNzKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICBsZXQgY291bnQgPSAtMTtcblxuICAgIGZ1bmN0aW9uIG5leHRFbGVtZW50KCkge1xuICAgICAgY291bnQrKztcblxuICAgICAgY29uc3QgdGVybWluYXRlID0gKGNvdW50ID09PSBhcnJheUFMZW5ndGgpO1xuXG4gICAgICBpZiAodGVybWluYXRlKSB7XG4gICAgICAgIGlmICghc3VjY2Vzcykge1xuICAgICAgICAgIGNvbnN0IHN1Y2Nlc3MgPSBmYWxzZTsgLy8vXG5cbiAgICAgICAgICBjb250aW51YXRpb24oc3VjY2Vzcyk7XG5cbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBhcnJheUZpbHRlcihhcnJheUEsIChlbGVtZW50QSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGFycmF5QkluY2x1ZGVzRWxlbWVudEEgPSBhcnJheUIuaW5jbHVkZXMoZWxlbWVudEEpO1xuXG4gICAgICAgICAgaWYgKCFhcnJheUJJbmNsdWRlc0VsZW1lbnRBKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIG5leHRQYXNzKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBpbmRleCA9IGNvdW50LCAgLy8vXG4gICAgICAgICAgICAgIGVsZW1lbnRBID0gYXJyYXlBW2luZGV4XTtcblxuICAgICAgICBjYWxsYmFjayhlbGVtZW50QSwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCAocGFzc2VkKSA9PiB7XG4gICAgICAgICAgaWYgKHBhc3NlZCkge1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudEIgPSBlbGVtZW50QTsgIC8vL1xuXG4gICAgICAgICAgICBhcnJheUIucHVzaChlbGVtZW50Qik7XG5cbiAgICAgICAgICAgIHN1Y2Nlc3MgPSB0cnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG5leHRFbGVtZW50KCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIG5leHRFbGVtZW50KCk7XG4gIH1cblxuICBuZXh0UGFzcygpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9yd2FyZHNFdmVyeShhcnJheSwgY2FsbGJhY2ssIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICBsZXQgc3VjY2VzcyA9IHRydWU7XG5cbiAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpO1xuXG4gIGFzeW5jaHJvbm91c0ZvcndhcmRzRm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICBjYWxsYmFjayhlbGVtZW50LCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIChwYXNzZWQpID0+IHtcbiAgICAgIGlmICghcGFzc2VkKSB7XG4gICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTtcblxuICAgICAgICBkb25lKCk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBuZXh0KCk7XG4gICAgfSk7XG4gIH0sICgpID0+IHtcbiAgICBjb250aW51YXRpb24oc3VjY2Vzcyk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYmFja3dhcmRzRXZlcnkoYXJyYXksIGNhbGxiYWNrLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgbGV0IHN1Y2Nlc3MgPSB0cnVlO1xuXG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKTtcblxuICBhc3luY2hyb25vdXNCYWNrd2FyZHNGb3JFYWNoKGFycmF5LCAoZWxlbWVudCwgbmV4dCwgZG9uZSkgPT4ge1xuICAgIGNhbGxiYWNrKGVsZW1lbnQsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgKHBhc3NlZCkgPT4ge1xuICAgICAgaWYgKCFwYXNzZWQpIHtcbiAgICAgICAgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICAgIGRvbmUoKTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIG5leHQoKTtcbiAgICB9KTtcbiAgfSwgKCkgPT4ge1xuICAgIGNvbnRpbnVhdGlvbihzdWNjZXNzKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgb25lLFxuICBlYWNoLFxuICBzb21lLFxuICBldmVyeSxcbiAgbWF0Y2gsXG4gIHJlZHVjZSxcbiAgZm9yRWFjaCxcbiAgZXh0cmFjdCxcbiAgcmVzb2x2ZSxcbiAgZm9yd2FyZHNFdmVyeSxcbiAgYmFja3dhcmRzRXZlcnlcbn1cbiJdLCJuYW1lcyI6WyJiYWNrd2FyZHNFdmVyeSIsImVhY2giLCJldmVyeSIsImV4dHJhY3QiLCJmb3JFYWNoIiwiZm9yd2FyZHNFdmVyeSIsIm1hdGNoIiwib25lIiwicmVkdWNlIiwicmVzb2x2ZSIsInNvbWUiLCJmaXJzdCIsImFycmF5Rmlyc3QiLCJmaWx0ZXIiLCJhcnJheUZpbHRlciIsImFycmF5VXRpbGl0aWVzIiwiYXN5bmNocm9ub3VzRm9yRWFjaCIsImZvcndhcmRzRm9yRWFjaCIsImFzeW5jaHJvbm91c0ZvcndhcmRzRm9yRWFjaCIsImJhY2t3YXJkc0ZvckVhY2giLCJhc3luY2hyb25vdXNCYWNrd2FyZHNGb3JFYWNoIiwiYXN5bmNocm9ub3VzVXRpbGl0aWVzIiwiYXJyYXkiLCJjYWxsYmFjayIsInJlbWFpbmluZ0FyZ3VtZW50cyIsImZvdW5kIiwiY29udGludWF0aW9uIiwicG9wIiwiZWxlbWVudCIsIm5leHQiLCJkb25lIiwicGFzc2VkIiwic3VjY2VzcyIsImFycmF5QSIsImFycmF5QiIsImFycmF5QUxlbmd0aCIsImxlbmd0aCIsImFycmF5Qkxlbmd0aCIsIm1hdGNoZXMiLCJpbmRleCIsImVsZW1lbnRBIiwiZWxlbWVudEIiLCJpbml0aWFsVmFsdWUiLCJ2YWx1ZSIsImN1cnJlbnRWYWx1ZSIsImRlbGV0ZWRFbGVtZW50IiwidW5kZWZpbmVkIiwic3RhcnQiLCJkZWxldGVDb3VudCIsImRlbGV0ZWRFbGVtZW50cyIsInNwbGljZSIsImZpcnN0RGVsZXRlZEVsZW1lbnQiLCJuZXh0UGFzcyIsImNvdW50IiwibmV4dEVsZW1lbnQiLCJ0ZXJtaW5hdGUiLCJhcnJheUJJbmNsdWRlc0VsZW1lbnRBIiwiaW5jbHVkZXMiLCJwdXNoIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUFtUmdCQTtlQUFBQTs7UUFzQmhCO2VBQUE7O1FBdFFnQkM7ZUFBQUE7O1FBOENBQztlQUFBQTs7UUE0RUFDO2VBQUFBOztRQVZBQztlQUFBQTs7UUEwR0FDO2VBQUFBOztRQXRKQUM7ZUFBQUE7O1FBOUZBQztlQUFBQTs7UUEwSEFDO2VBQUFBOztRQXFEQUM7ZUFBQUE7O1FBN0hBQztlQUFBQTs7OzJCQXpEc0M7QUFFdEQsTUFBTSxFQUFFQyxPQUFPQyxVQUFVLEVBQUVDLFFBQVFDLFdBQVcsRUFBRSxHQUFHQyx5QkFBYyxFQUMzRCxFQUFFWCxTQUFTWSxtQkFBbUIsRUFDNUJDLGlCQUFpQkMsMkJBQTJCLEVBQzVDQyxrQkFBa0JDLDRCQUE0QixFQUFFLEdBQUdDLGdDQUFxQjtBQUV6RSxTQUFTZCxJQUFJZSxLQUFLLEVBQUVDLFFBQVEsRUFBRSxHQUFHQyxrQkFBa0I7SUFDeEQsSUFBSUMsUUFBUTtJQUVaLE1BQU1DLGVBQWVGLG1CQUFtQkcsR0FBRztJQUUzQ1gsb0JBQW9CTSxPQUFPLENBQUNNLFNBQVNDLE1BQU1DO1FBQ3pDUCxTQUFTSyxZQUFZSixvQkFBb0IsQ0FBQ087WUFDeEMsSUFBSUEsUUFBUTtnQkFDVixJQUFJLENBQUNOLE9BQU87b0JBQ1ZBLFFBQVE7Z0JBQ1YsT0FBTztvQkFDTEEsUUFBUTtvQkFFUks7b0JBRUE7Z0JBQ0Y7WUFDRjtZQUVBRDtRQUNGO0lBQ0YsR0FBRztRQUNESCxhQUFhRDtJQUNmO0FBQ0Y7QUFFTyxTQUFTeEIsS0FBS3FCLEtBQUssRUFBRUMsUUFBUSxFQUFFLEdBQUdDLGtCQUFrQjtJQUN6RCxJQUFJQyxRQUFRO0lBRVosTUFBTUMsZUFBZUYsbUJBQW1CRyxHQUFHO0lBRTNDWCxvQkFBb0JNLE9BQU8sQ0FBQ00sU0FBU0MsTUFBTUM7UUFDekNQLFNBQVNLLFlBQVlKLG9CQUFvQixDQUFDTztZQUN4QyxJQUFJQSxRQUFRO2dCQUNWTixRQUFRO1lBQ1YsT0FBTztnQkFDTEEsUUFBUTtnQkFFUks7Z0JBRUE7WUFDRjtZQUVBRDtRQUNGO0lBQ0YsR0FBRztRQUNESCxhQUFhRDtJQUNmO0FBQ0Y7QUFFTyxTQUFTZixLQUFLWSxLQUFLLEVBQUVDLFFBQVEsRUFBRSxHQUFHQyxrQkFBa0I7SUFDekQsSUFBSVEsVUFBVTtJQUVkLE1BQU1OLGVBQWVGLG1CQUFtQkcsR0FBRztJQUUzQ1gsb0JBQW9CTSxPQUFPLENBQUNNLFNBQVNDLE1BQU1DO1FBQ3pDUCxTQUFTSyxZQUFZSixvQkFBb0IsQ0FBQ087WUFDeEMsSUFBSUEsUUFBUTtnQkFDVkMsVUFBVTtnQkFFVkY7Z0JBRUE7WUFDRjtZQUVBRDtRQUNGO0lBQ0YsR0FBRztRQUNESCxhQUFhTTtJQUNmO0FBQ0Y7QUFFTyxTQUFTOUIsTUFBTW9CLEtBQUssRUFBRUMsUUFBUSxFQUFFLEdBQUdDLGtCQUFrQjtJQUMxRCxJQUFJUSxVQUFVO0lBRWQsTUFBTU4sZUFBZUYsbUJBQW1CRyxHQUFHO0lBRTNDWCxvQkFBb0JNLE9BQU8sQ0FBQ00sU0FBU0MsTUFBTUM7UUFDekNQLFNBQVNLLFlBQVlKLG9CQUFvQixDQUFDTztZQUN4QyxJQUFJLENBQUNBLFFBQVE7Z0JBQ1hDLFVBQVU7Z0JBRVZGO2dCQUVBO1lBQ0Y7WUFFQUQ7UUFDRjtJQUNGLEdBQUc7UUFDREgsYUFBYU07SUFDZjtBQUNGO0FBRU8sU0FBUzFCLE1BQU0yQixNQUFNLEVBQUVDLE1BQU0sRUFBRVgsUUFBUSxFQUFFLEdBQUdDLGtCQUFrQjtJQUNuRSxNQUFNRSxlQUFlRixtQkFBbUJHLEdBQUcsSUFDckNRLGVBQWVGLE9BQU9HLE1BQU0sRUFDNUJDLGVBQWVILE9BQU9FLE1BQU07SUFFbEMsSUFBSUQsaUJBQWlCRSxjQUFjO1FBQ2pDLE1BQU1DLFVBQVU7UUFFaEJaLGFBQWFZO1FBRWI7SUFDRjtJQUVBLElBQUlDLFFBQVEsQ0FBQztJQUVickMsTUFBTStCLFFBQVEsQ0FBQ08sVUFBVWQ7UUFDdkJhO1FBRUEsTUFBTUUsV0FBV1AsTUFBTSxDQUFDSyxNQUFNO1FBRTlCaEIsU0FBU2lCLFVBQVVDLGFBQWFqQixvQkFBb0JFO0lBQ3RELEdBQUcsQ0FBQ007UUFDRixNQUFNTSxVQUFVTixTQUFVLEdBQUc7UUFFN0JOLGFBQWFZO0lBQ2Y7QUFDRjtBQUVPLFNBQVM5QixPQUFPYyxLQUFLLEVBQUVvQixZQUFZLEVBQUVuQixRQUFRLEVBQUUsR0FBR0Msa0JBQWtCO0lBQ3pFLElBQUltQixRQUFRRCxjQUFjLEdBQUc7SUFFN0IsTUFBTWhCLGVBQWVGLG1CQUFtQkcsR0FBRztJQUUzQ1gsb0JBQW9CTSxPQUFPLENBQUNNLFNBQVNDLE1BQU1DO1FBQ3pDUCxTQUFTb0IsT0FBT2YsWUFBWUosb0JBQW9CLENBQUNvQjtZQUMvQ0QsUUFBUUMsY0FBZSxHQUFHO1lBRTFCZjtRQUNGO0lBQ0YsR0FBRztRQUNESCxhQUFhaUI7SUFDZjtBQUNGO0FBRU8sU0FBU3ZDLFFBQVFrQixLQUFLLEVBQUVDLFFBQVEsRUFBRSxHQUFHQyxrQkFBa0I7SUFDNUQsTUFBTUUsZUFBZUYsbUJBQW1CRyxHQUFHO0lBRTNDWCxvQkFBb0JNLE9BQU8sQ0FBQ00sU0FBU0MsTUFBTUM7UUFDekNQLFNBQVNLLFlBQVlKLG9CQUFvQjtZQUN2Q0s7UUFDRjtJQUNGLEdBQUdIO0FBQ0w7QUFFTyxTQUFTdkIsUUFBUW1CLEtBQUssRUFBRUMsUUFBUSxFQUFFLEdBQUdDLGtCQUFrQjtJQUM1RCxJQUFJcUIsaUJBQWlCQyxXQUFXLEdBQUc7SUFFbkMsTUFBTXBCLGVBQWVGLG1CQUFtQkcsR0FBRztJQUUzQyxJQUFJWSxRQUFRLENBQUM7SUFFYjdCLEtBQUtZLE9BQU8sQ0FBQ00sU0FBU0Y7UUFDcEJhO1FBRUFoQixTQUFTSyxZQUFZSixvQkFBb0IsQ0FBQ087WUFDeEMsSUFBSUEsUUFBUTtnQkFDVixNQUFNZ0IsUUFBUVIsT0FDUlMsY0FBYyxHQUNkQyxrQkFBa0IzQixNQUFNNEIsTUFBTSxDQUFDSCxPQUFPQyxjQUN0Q0csc0JBQXNCdkMsV0FBV3FDO2dCQUV2Q0osaUJBQWlCTSxxQkFBc0IsR0FBRztZQUM1QztZQUVBekIsYUFBYUs7UUFDZjtJQUNGLEdBQUc7UUFDREwsYUFBYW1CO0lBQ2Y7QUFDRjtBQUVPLFNBQVNwQyxRQUFRd0IsTUFBTSxFQUFFQyxNQUFNLEVBQUVYLFFBQVEsRUFBRSxHQUFHQyxrQkFBa0I7SUFDckVTLFNBQVM7V0FDSkE7S0FDSjtJQUVELE1BQU1QLGVBQWVGLG1CQUFtQkcsR0FBRztJQUUzQyxTQUFTeUI7UUFDUCxNQUFNakIsZUFBZUYsT0FBT0csTUFBTTtRQUVsQyxJQUFJRCxpQkFBaUIsR0FBRztZQUN0QixNQUFNSCxVQUFVLE1BQU8sR0FBRztZQUUxQk4sYUFBYU07WUFFYjtRQUNGO1FBRUEsSUFBSUEsVUFBVTtRQUVkLElBQUlxQixRQUFRLENBQUM7UUFFYixTQUFTQztZQUNQRDtZQUVBLE1BQU1FLFlBQWFGLFVBQVVsQjtZQUU3QixJQUFJb0IsV0FBVztnQkFDYixJQUFJLENBQUN2QixTQUFTO29CQUNaLE1BQU1BLFVBQVUsT0FBTyxHQUFHO29CQUUxQk4sYUFBYU07b0JBRWI7Z0JBQ0Y7Z0JBRUFsQixZQUFZbUIsUUFBUSxDQUFDTztvQkFDbkIsTUFBTWdCLHlCQUF5QnRCLE9BQU91QixRQUFRLENBQUNqQjtvQkFFL0MsSUFBSSxDQUFDZ0Isd0JBQXdCO3dCQUMzQixPQUFPO29CQUNUO2dCQUNGO2dCQUVBSjtZQUNGLE9BQU87Z0JBQ0wsTUFBTWIsUUFBUWMsT0FDUmIsV0FBV1AsTUFBTSxDQUFDTSxNQUFNO2dCQUU5QmhCLFNBQVNpQixhQUFhaEIsb0JBQW9CLENBQUNPO29CQUN6QyxJQUFJQSxRQUFRO3dCQUNWLE1BQU1VLFdBQVdELFVBQVcsR0FBRzt3QkFFL0JOLE9BQU93QixJQUFJLENBQUNqQjt3QkFFWlQsVUFBVTtvQkFDWjtvQkFFQXNCO2dCQUNGO1lBQ0Y7UUFDRjtRQUVBQTtJQUNGO0lBRUFGO0FBQ0Y7QUFFTyxTQUFTL0MsY0FBY2lCLEtBQUssRUFBRUMsUUFBUSxFQUFFLEdBQUdDLGtCQUFrQjtJQUNsRSxJQUFJUSxVQUFVO0lBRWQsTUFBTU4sZUFBZUYsbUJBQW1CRyxHQUFHO0lBRTNDVCw0QkFBNEJJLE9BQU8sQ0FBQ00sU0FBU0MsTUFBTUM7UUFDakRQLFNBQVNLLFlBQVlKLG9CQUFvQixDQUFDTztZQUN4QyxJQUFJLENBQUNBLFFBQVE7Z0JBQ1hDLFVBQVU7Z0JBRVZGO2dCQUVBO1lBQ0Y7WUFFQUQ7UUFDRjtJQUNGLEdBQUc7UUFDREgsYUFBYU07SUFDZjtBQUNGO0FBRU8sU0FBU2hDLGVBQWVzQixLQUFLLEVBQUVDLFFBQVEsRUFBRSxHQUFHQyxrQkFBa0I7SUFDbkUsSUFBSVEsVUFBVTtJQUVkLE1BQU1OLGVBQWVGLG1CQUFtQkcsR0FBRztJQUUzQ1AsNkJBQTZCRSxPQUFPLENBQUNNLFNBQVNDLE1BQU1DO1FBQ2xEUCxTQUFTSyxZQUFZSixvQkFBb0IsQ0FBQ087WUFDeEMsSUFBSSxDQUFDQSxRQUFRO2dCQUNYQyxVQUFVO2dCQUVWRjtnQkFFQTtZQUNGO1lBRUFEO1FBQ0Y7SUFDRixHQUFHO1FBQ0RILGFBQWFNO0lBQ2Y7QUFDRjtNQUVBLFdBQWU7SUFDYnpCO0lBQ0FOO0lBQ0FTO0lBQ0FSO0lBQ0FJO0lBQ0FFO0lBQ0FKO0lBQ0FEO0lBQ0FNO0lBQ0FKO0lBQ0FMO0FBQ0YifQ==
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-languages",
3
3
  "author": "James Smith",
4
- "version": "2.1.15",
4
+ "version": "2.1.17",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-languages",
7
7
  "description": "Occam's common language functionality.",
@@ -7,6 +7,56 @@ const { first: arrayFirst, filter: arrayFilter } = arrayUtilities,
7
7
  forwardsForEach: asynchronousForwardsForEach,
8
8
  backwardsForEach: asynchronousBackwardsForEach } = asynchronousUtilities;
9
9
 
10
+ export function one(array, callback, ...remainingArguments) {
11
+ let found = false;
12
+
13
+ const continuation = remainingArguments.pop();
14
+
15
+ asynchronousForEach(array, (element, next, done) => {
16
+ callback(element, ...remainingArguments, (passed) => {
17
+ if (passed) {
18
+ if (!found) {
19
+ found = true;
20
+ } else {
21
+ found = false;
22
+
23
+ done();
24
+
25
+ return;
26
+ }
27
+ }
28
+
29
+ next();
30
+ });
31
+ }, () => {
32
+ continuation(found);
33
+ });
34
+ }
35
+
36
+ export function each(array, callback, ...remainingArguments) {
37
+ let found = false;
38
+
39
+ const continuation = remainingArguments.pop();
40
+
41
+ asynchronousForEach(array, (element, next, done) => {
42
+ callback(element, ...remainingArguments, (passed) => {
43
+ if (passed) {
44
+ found = true;
45
+ } else {
46
+ found = false;
47
+
48
+ done();
49
+
50
+ return;
51
+ }
52
+
53
+ next();
54
+ });
55
+ }, () => {
56
+ continuation(found);
57
+ });
58
+ }
59
+
10
60
  export function some(array, callback, ...remainingArguments) {
11
61
  let success = false;
12
62
 
@@ -246,6 +296,8 @@ export function backwardsEvery(array, callback, ...remainingArguments) {
246
296
  }
247
297
 
248
298
  export default {
299
+ one,
300
+ each,
249
301
  some,
250
302
  every,
251
303
  match,