occam-languages 1.0.49 → 1.1.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.
- package/lib/index.js +1 -5
- package/lib/utilities/asynchronous.js +1 -110
- package/lib/utilities/continuation.js +84 -2
- package/package.json +1 -1
- package/src/index.js +0 -1
- package/src/utilities/asynchronous.js +0 -134
- package/src/utilities/continuation.js +107 -2
package/lib/index.js
CHANGED
|
@@ -66,9 +66,6 @@ _export(exports, {
|
|
|
66
66
|
get ZipPass () {
|
|
67
67
|
return _zip.default;
|
|
68
68
|
},
|
|
69
|
-
get asynchronousUtilities () {
|
|
70
|
-
return _asynchronous.default;
|
|
71
|
-
},
|
|
72
69
|
get bnfUtilities () {
|
|
73
70
|
return _bnf.default;
|
|
74
71
|
},
|
|
@@ -128,7 +125,6 @@ const _breakPoint1 = /*#__PURE__*/ _interop_require_default(require("./utilities
|
|
|
128
125
|
const _fileContext = /*#__PURE__*/ _interop_require_default(require("./utilities/fileContext"));
|
|
129
126
|
const _continuation1 = /*#__PURE__*/ _interop_require_default(require("./utilities/continuation"));
|
|
130
127
|
const _verification = /*#__PURE__*/ _interop_require_default(require("./utilities/verification"));
|
|
131
|
-
const _asynchronous = /*#__PURE__*/ _interop_require_default(require("./utilities/asynchronous"));
|
|
132
128
|
const _releaseContext = /*#__PURE__*/ _interop_require_default(require("./utilities/releaseContext"));
|
|
133
129
|
function _interop_require_default(obj) {
|
|
134
130
|
return obj && obj.__esModule ? obj : {
|
|
@@ -136,4 +132,4 @@ function _interop_require_default(obj) {
|
|
|
136
132
|
};
|
|
137
133
|
}
|
|
138
134
|
|
|
139
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
135
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBMb2cgfSBmcm9tIFwiLi9sb2dcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRWxlbWVudCB9IGZyb20gXCIuL2VsZW1lbnRcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ29udGV4dCB9IGZyb20gXCIuL2NvbnRleHRcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQnJlYWtQb2ludCB9IGZyb20gXCIuL2JyZWFrUG9pbnRcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRmlsZUNvbnRleHQgfSBmcm9tIFwiLi9jb250ZXh0L2ZpbGVcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUmVsZWFzZUNvbnRleHQgfSBmcm9tIFwiLi9jb250ZXh0L3JlbGVhc2VcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBaaXBQYXNzIH0gZnJvbSBcIi4vcGFzcy96aXBcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQXN5bmNQYXNzIH0gZnJvbSBcIi4vcGFzcy9hc3luY1wiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTaW1wbGVQYXNzIH0gZnJvbSBcIi4vcGFzcy9zaW1wbGVcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRm9yd2FyZFBhc3MgfSBmcm9tIFwiLi9wYXNzL2ZvcndhcmRcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQXN5bmNaaXBQYXNzIH0gZnJvbSBcIi4vcGFzcy9hc3luY1ppcFwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBGb3J3YXJkWmlwUGFzcyB9IGZyb20gXCIuL3Bhc3MvZm9yd2FyZFppcFwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBFcXVpdmFsZW5jZVBhc3MgfSBmcm9tIFwiLi9wYXNzL2VxdWl2YWxlbmNlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENvbnRpbnVhdGlvblBhc3MgfSBmcm9tIFwiLi9wYXNzL2NvbnRpbnVhdGlvblwiO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIEZ1cnRsZUxleGVyIH0gZnJvbSBcIi4vZnVydGxlL2xleGVyXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZ1cnRsZVBhcnNlciB9IGZyb20gXCIuL2Z1cnRsZS9wYXJzZXJcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTm9taW5hbExleGVyIH0gZnJvbSBcIi4vbm9taW5hbC9sZXhlclwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBOb21pbmFsUGFyc2VyIH0gZnJvbSBcIi4vbm9taW5hbC9wYXJzZXJcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBOb25UZXJtaW5hbE5vZGUgfSBmcm9tIFwiLi9ub25UZXJtaW5hbE5vZGVcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBub2RlTWl4aW5zIH0gZnJvbSBcIi4vbWl4aW5zL25vZGVcIjtcblxuZXhwb3J0IHsgZGVmYXVsdCBhcyBibmZVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvYm5mXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIG5vZGVVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvbm9kZVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBmdXJ0bGVVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvZnVydGxlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIG5vbWluYWxVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvbm9taW5hbFwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBicmVha1BvaW50VXRpbGl0aWVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL2JyZWFrUG9pbnRcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgZmlsZUNvbnRleHRVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvZmlsZUNvbnRleHRcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgY29udGludWF0aW9uVXRpbGl0aWVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL2NvbnRpbnVhdGlvblwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB2ZXJpZmljYXRpb25VdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvdmVyaWZpY2F0aW9uXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHJlbGVhc2VDb250ZXh0VXRpbGl0aWVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3JlbGVhc2VDb250ZXh0XCI7XG4iXSwibmFtZXMiOlsiQXN5bmNQYXNzIiwiQXN5bmNaaXBQYXNzIiwiQnJlYWtQb2ludCIsIkNvbnRleHQiLCJDb250aW51YXRpb25QYXNzIiwiRWxlbWVudCIsIkVxdWl2YWxlbmNlUGFzcyIsIkZpbGVDb250ZXh0IiwiRm9yd2FyZFBhc3MiLCJGb3J3YXJkWmlwUGFzcyIsIkZ1cnRsZUxleGVyIiwiRnVydGxlUGFyc2VyIiwiTG9nIiwiTm9taW5hbExleGVyIiwiTm9taW5hbFBhcnNlciIsIk5vblRlcm1pbmFsTm9kZSIsIlJlbGVhc2VDb250ZXh0IiwiU2ltcGxlUGFzcyIsIlppcFBhc3MiLCJibmZVdGlsaXRpZXMiLCJicmVha1BvaW50VXRpbGl0aWVzIiwiY29udGludWF0aW9uVXRpbGl0aWVzIiwiZmlsZUNvbnRleHRVdGlsaXRpZXMiLCJmdXJ0bGVVdGlsaXRpZXMiLCJub2RlTWl4aW5zIiwibm9kZVV0aWxpdGllcyIsIm5vbWluYWxVdGlsaXRpZXMiLCJyZWxlYXNlQ29udGV4dFV0aWxpdGllcyIsInZlcmlmaWNhdGlvblV0aWxpdGllcyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBVW9CQTtlQUFBQSxjQUFTOztRQUdUQztlQUFBQSxpQkFBWTs7UUFSWkM7ZUFBQUEsbUJBQVU7O1FBRFZDO2VBQUFBLGdCQUFPOztRQVlQQztlQUFBQSxxQkFBZ0I7O1FBYmhCQztlQUFBQSxnQkFBTzs7UUFZUEM7ZUFBQUEsb0JBQWU7O1FBVGZDO2VBQUFBLGFBQVc7O1FBTVhDO2VBQUFBLGdCQUFXOztRQUVYQztlQUFBQSxtQkFBYzs7UUFJZEM7ZUFBQUEsY0FBVzs7UUFDWEM7ZUFBQUEsZUFBWTs7UUFqQlpDO2VBQUFBLFlBQUc7O1FBa0JIQztlQUFBQSxlQUFZOztRQUNaQztlQUFBQSxnQkFBYTs7UUFFYkM7ZUFBQUEsd0JBQWU7O1FBaEJmQztlQUFBQSxnQkFBYzs7UUFJZEM7ZUFBQUEsZUFBVTs7UUFGVkM7ZUFBQUEsWUFBTzs7UUFrQlBDO2VBQUFBLFlBQVk7O1FBSVpDO2VBQUFBLG9CQUFtQjs7UUFFbkJDO2VBQUFBLHNCQUFxQjs7UUFEckJDO2VBQUFBLG9CQUFvQjs7UUFIcEJDO2VBQUFBLGVBQWU7O1FBSmZDO2VBQUFBLGFBQVU7O1FBR1ZDO2VBQUFBLGNBQWE7O1FBRWJDO2VBQUFBLGdCQUFnQjs7UUFLaEJDO2VBQUFBLHVCQUF1Qjs7UUFEdkJDO2VBQUFBLHFCQUFxQjs7OzREQWhDVjtnRUFDSTtnRUFDQTttRUFDRzs2REFDQztnRUFDRzs0REFFUDs4REFDRTsrREFDQztnRUFDQztpRUFDQzttRUFDRTtvRUFDQztxRUFDQzs4REFFTDsrREFDQzsrREFDQTtnRUFDQzt3RUFFRTs2REFFTDs0REFFRTs4REFDQzsrREFDRTtnRUFDQztvRUFDRztvRUFDQztzRUFDQztxRUFDQTt1RUFDRSJ9
|
|
@@ -9,39 +9,19 @@ function _export(target, all) {
|
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
11
|
_export(exports, {
|
|
12
|
-
get asyncBackwardsEvery () {
|
|
13
|
-
return asyncBackwardsEvery;
|
|
14
|
-
},
|
|
15
12
|
get asyncEvery () {
|
|
16
13
|
return asyncEvery;
|
|
17
14
|
},
|
|
18
|
-
get asyncExtract () {
|
|
19
|
-
return asyncExtract;
|
|
20
|
-
},
|
|
21
15
|
get asyncForEach () {
|
|
22
16
|
return asyncForEach;
|
|
23
17
|
},
|
|
24
|
-
get asyncForwardsEvery () {
|
|
25
|
-
return asyncForwardsEvery;
|
|
26
|
-
},
|
|
27
|
-
get asyncMatch () {
|
|
28
|
-
return asyncMatch;
|
|
29
|
-
},
|
|
30
18
|
get asyncReduce () {
|
|
31
19
|
return asyncReduce;
|
|
32
20
|
},
|
|
33
|
-
get asyncResolve () {
|
|
34
|
-
return asyncResolve;
|
|
35
|
-
},
|
|
36
21
|
get asyncSome () {
|
|
37
22
|
return asyncSome;
|
|
38
|
-
},
|
|
39
|
-
get default () {
|
|
40
|
-
return _default;
|
|
41
23
|
}
|
|
42
24
|
});
|
|
43
|
-
const _necessary = require("necessary");
|
|
44
|
-
const { first, filter } = _necessary.arrayUtilities;
|
|
45
25
|
async function asyncSome(array, callback) {
|
|
46
26
|
let result = false;
|
|
47
27
|
const length = array.length;
|
|
@@ -66,19 +46,6 @@ async function asyncEvery(array, callback) {
|
|
|
66
46
|
}
|
|
67
47
|
return result;
|
|
68
48
|
}
|
|
69
|
-
async function asyncMatch(arrayA, arrayB, callback) {
|
|
70
|
-
let matches = false;
|
|
71
|
-
const arrayALength = arrayA.length, arrayBLength = arrayB.length;
|
|
72
|
-
if (arrayALength === arrayBLength) {
|
|
73
|
-
matches = await asyncBackwardsEvery(arrayA, async (elementA, index)=>{
|
|
74
|
-
const elementB = arrayB[index], passed = await callback(elementA, elementB, index);
|
|
75
|
-
if (passed) {
|
|
76
|
-
return true;
|
|
77
|
-
}
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
return matches;
|
|
81
|
-
}
|
|
82
49
|
async function asyncReduce(array, callback, initialValue) {
|
|
83
50
|
let value = initialValue; ///
|
|
84
51
|
const length = array.length;
|
|
@@ -88,18 +55,6 @@ async function asyncReduce(array, callback, initialValue) {
|
|
|
88
55
|
}
|
|
89
56
|
return value;
|
|
90
57
|
}
|
|
91
|
-
async function asyncExtract(array, callback) {
|
|
92
|
-
let deletedElement = undefined;
|
|
93
|
-
await asyncSome(array, async (element, index)=>{
|
|
94
|
-
const passed = await callback(element, index);
|
|
95
|
-
if (passed) {
|
|
96
|
-
const start = index, deleteCount = 1, deletedElements = array.splice(start, deleteCount), firstDeletedElement = first(deletedElements);
|
|
97
|
-
deletedElement = firstDeletedElement; ///
|
|
98
|
-
return true;
|
|
99
|
-
}
|
|
100
|
-
});
|
|
101
|
-
return deletedElement;
|
|
102
|
-
}
|
|
103
58
|
async function asyncForEach(array, callback) {
|
|
104
59
|
const length = array.length;
|
|
105
60
|
for(let index = 0; index < length; index += 1){
|
|
@@ -107,69 +62,5 @@ async function asyncForEach(array, callback) {
|
|
|
107
62
|
await callback(element, index, array);
|
|
108
63
|
}
|
|
109
64
|
}
|
|
110
|
-
async function asyncResolve(arrayA, arrayB, callback) {
|
|
111
|
-
let resolved;
|
|
112
|
-
arrayA = [
|
|
113
|
-
...arrayA
|
|
114
|
-
];
|
|
115
|
-
for(;;){
|
|
116
|
-
const arrayALength = arrayA.length;
|
|
117
|
-
if (arrayALength === 0) {
|
|
118
|
-
break;
|
|
119
|
-
}
|
|
120
|
-
let resolved = false;
|
|
121
|
-
await asyncForEach(arrayA, async (elementA, index)=>{
|
|
122
|
-
const passed = await callback(elementA, index, arrayA);
|
|
123
|
-
if (passed) {
|
|
124
|
-
const elementB = elementA; ///
|
|
125
|
-
arrayB.push(elementB);
|
|
126
|
-
resolved = true;
|
|
127
|
-
}
|
|
128
|
-
});
|
|
129
|
-
if (!resolved) {
|
|
130
|
-
break;
|
|
131
|
-
}
|
|
132
|
-
filter(arrayA, (elementA)=>{
|
|
133
|
-
const arrayBIncludesElementA = arrayB.includes(elementA);
|
|
134
|
-
if (!arrayBIncludesElementA) {
|
|
135
|
-
return true;
|
|
136
|
-
}
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
const arrayALength = arrayA.length;
|
|
140
|
-
resolved = arrayALength === 0;
|
|
141
|
-
return resolved;
|
|
142
|
-
}
|
|
143
|
-
async function asyncForwardsEvery(array, callback) {
|
|
144
|
-
const length = array.length;
|
|
145
|
-
for(let index = 0; index < length; index++){
|
|
146
|
-
const element = array[index], passed = await callback(element, index, array);
|
|
147
|
-
if (!passed) {
|
|
148
|
-
return false;
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
return true;
|
|
152
|
-
}
|
|
153
|
-
async function asyncBackwardsEvery(array, callback) {
|
|
154
|
-
const length = array.length;
|
|
155
|
-
for(let index = length - 1; index >= 0; index--){
|
|
156
|
-
const element = array[index], passed = await callback(element, index, array);
|
|
157
|
-
if (!passed) {
|
|
158
|
-
return false;
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
return true;
|
|
162
|
-
}
|
|
163
|
-
const _default = {
|
|
164
|
-
asyncSome,
|
|
165
|
-
asyncEvery,
|
|
166
|
-
asyncMatch,
|
|
167
|
-
asyncReduce,
|
|
168
|
-
asyncForEach,
|
|
169
|
-
asyncExtract,
|
|
170
|
-
asyncResolve,
|
|
171
|
-
asyncForwardsEvery,
|
|
172
|
-
asyncBackwardsEvery
|
|
173
|
-
};
|
|
174
65
|
|
|
175
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvYXN5bmNocm9ub3VzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuY29uc3QgeyBmaXJzdCwgZmlsdGVyIH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFzeW5jU29tZShhcnJheSwgY2FsbGJhY2spIHtcbiAgbGV0IHJlc3VsdCA9IGZhbHNlO1xuXG4gIGNvbnN0IGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHJlc3VsdCA9ICEhYXdhaXQgY2FsbGJhY2soZWxlbWVudCwgaW5kZXgsIGFycmF5KTtcblxuICAgIGlmIChyZXN1bHQpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhc3luY0V2ZXJ5KGFycmF5LCBjYWxsYmFjaykge1xuICBsZXQgcmVzdWx0ID0gdHJ1ZTtcblxuICBjb25zdCBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkge1xuICAgIGNvbnN0IGVsZW1lbnQgPSBhcnJheVtpbmRleF07XG5cbiAgICByZXN1bHQgPSAhIWF3YWl0IGNhbGxiYWNrKGVsZW1lbnQsIGluZGV4LCBhcnJheSk7XG5cbiAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFzeW5jTWF0Y2goYXJyYXlBLCBhcnJheUIsIGNhbGxiYWNrKSB7XG4gIGxldCBtYXRjaGVzID0gZmFsc2U7XG5cbiAgY29uc3QgYXJyYXlBTGVuZ3RoID0gYXJyYXlBLmxlbmd0aCxcbiAgICAgICAgYXJyYXlCTGVuZ3RoID0gYXJyYXlCLmxlbmd0aDtcblxuICBpZiAoYXJyYXlBTGVuZ3RoID09PSBhcnJheUJMZW5ndGgpIHtcbiAgICBtYXRjaGVzID0gYXdhaXQgYXN5bmNCYWNrd2FyZHNFdmVyeShhcnJheUEsIGFzeW5jIChlbGVtZW50QSwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IGVsZW1lbnRCID0gYXJyYXlCW2luZGV4XSxcbiAgICAgICAgICAgIHBhc3NlZCA9IGF3YWl0IGNhbGxiYWNrKGVsZW1lbnRBLCBlbGVtZW50QiwgaW5kZXgpO1xuXG4gICAgICBpZiAocGFzc2VkKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIG1hdGNoZXM7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhc3luY1JlZHVjZShhcnJheSwgY2FsbGJhY2ssIGluaXRpYWxWYWx1ZSkge1xuICBsZXQgdmFsdWUgPSBpbml0aWFsVmFsdWU7IC8vL1xuXG4gIGNvbnN0IGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHZhbHVlID0gYXdhaXQgY2FsbGJhY2sodmFsdWUsIGVsZW1lbnQsIGluZGV4LCBhcnJheSk7XG4gIH1cblxuICByZXR1cm4gdmFsdWU7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhc3luY0V4dHJhY3QoYXJyYXksIGNhbGxiYWNrKSB7XG4gIGxldCBkZWxldGVkRWxlbWVudCA9IHVuZGVmaW5lZDtcblxuICBhd2FpdCBhc3luY1NvbWUoYXJyYXksIGFzeW5jIChlbGVtZW50LCBpbmRleCkgPT4ge1xuICAgIGNvbnN0IHBhc3NlZCA9IGF3YWl0IGNhbGxiYWNrKGVsZW1lbnQsIGluZGV4KTtcblxuICAgIGlmIChwYXNzZWQpIHtcbiAgICAgIGNvbnN0IHN0YXJ0ID0gaW5kZXgsICAvLy9cbiAgICAgICAgICAgIGRlbGV0ZUNvdW50ID0gMSxcbiAgICAgICAgICAgIGRlbGV0ZWRFbGVtZW50cyA9IGFycmF5LnNwbGljZShzdGFydCwgZGVsZXRlQ291bnQpLFxuICAgICAgICAgICAgZmlyc3REZWxldGVkRWxlbWVudCA9IGZpcnN0KGRlbGV0ZWRFbGVtZW50cyk7XG5cbiAgICAgIGRlbGV0ZWRFbGVtZW50ID0gZmlyc3REZWxldGVkRWxlbWVudDsgIC8vL1xuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBkZWxldGVkRWxlbWVudDtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFzeW5jRm9yRWFjaChhcnJheSwgY2FsbGJhY2spIHtcbiAgY29uc3QgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgYXdhaXQgY2FsbGJhY2soZWxlbWVudCwgaW5kZXgsIGFycmF5KTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXN5bmNSZXNvbHZlKGFycmF5QSwgYXJyYXlCLCBjYWxsYmFjaykge1xuICBsZXQgcmVzb2x2ZWQ7XG5cbiAgYXJyYXlBID0gWyAgLy8vXG4gICAgLi4uYXJyYXlBXG4gIF07XG5cbiAgZm9yICg7Oykge1xuICAgIGNvbnN0IGFycmF5QUxlbmd0aCA9IGFycmF5QS5sZW5ndGg7XG5cbiAgICBpZiAoYXJyYXlBTGVuZ3RoID09PSAwKSB7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBsZXQgcmVzb2x2ZWQgPSBmYWxzZTtcblxuICAgIGF3YWl0IGFzeW5jRm9yRWFjaChhcnJheUEsIGFzeW5jIChlbGVtZW50QSwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IHBhc3NlZCA9IGF3YWl0IGNhbGxiYWNrKGVsZW1lbnRBLCBpbmRleCwgYXJyYXlBKTtcblxuICAgICAgaWYgKHBhc3NlZCkge1xuICAgICAgICBjb25zdCBlbGVtZW50QiA9IGVsZW1lbnRBOyAgLy8vXG5cbiAgICAgICAgYXJyYXlCLnB1c2goZWxlbWVudEIpO1xuXG4gICAgICAgIHJlc29sdmVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmICghcmVzb2x2ZWQpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGZpbHRlcihhcnJheUEsIChlbGVtZW50QSkgPT4ge1xuICAgICAgY29uc3QgYXJyYXlCSW5jbHVkZXNFbGVtZW50QSA9IGFycmF5Qi5pbmNsdWRlcyhlbGVtZW50QSk7XG5cbiAgICAgIGlmICghYXJyYXlCSW5jbHVkZXNFbGVtZW50QSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGNvbnN0IGFycmF5QUxlbmd0aCA9IGFycmF5QS5sZW5ndGg7XG5cbiAgcmVzb2x2ZWQgPSAoYXJyYXlBTGVuZ3RoID09PSAwKTtcblxuICByZXR1cm4gcmVzb2x2ZWQ7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhc3luY0ZvcndhcmRzRXZlcnkoYXJyYXksIGNhbGxiYWNrKSB7XG4gIGNvbnN0IGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XSxcbiAgICAgICAgICBwYXNzZWQgPSBhd2FpdCBjYWxsYmFjayhlbGVtZW50LCBpbmRleCwgYXJyYXkpO1xuXG4gICAgaWYgKCFwYXNzZWQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFzeW5jQmFja3dhcmRzRXZlcnkoYXJyYXksIGNhbGxiYWNrKSB7XG4gIGNvbnN0IGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBmb3IgKGxldCBpbmRleCA9IGxlbmd0aCAtIDE7IGluZGV4ID49IDA7IGluZGV4LS0pIHtcbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdLFxuICAgICAgICAgIHBhc3NlZCA9IGF3YWl0IGNhbGxiYWNrKGVsZW1lbnQsIGluZGV4LCBhcnJheSk7XG5cbiAgICBpZiAoIXBhc3NlZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGFzeW5jU29tZSxcbiAgYXN5bmNFdmVyeSxcbiAgYXN5bmNNYXRjaCxcbiAgYXN5bmNSZWR1Y2UsXG4gIGFzeW5jRm9yRWFjaCxcbiAgYXN5bmNFeHRyYWN0LFxuICBhc3luY1Jlc29sdmUsXG4gIGFzeW5jRm9yd2FyZHNFdmVyeSxcbiAgYXN5bmNCYWNrd2FyZHNFdmVyeVxufTtcbiJdLCJuYW1lcyI6WyJhc3luY0JhY2t3YXJkc0V2ZXJ5IiwiYXN5bmNFdmVyeSIsImFzeW5jRXh0cmFjdCIsImFzeW5jRm9yRWFjaCIsImFzeW5jRm9yd2FyZHNFdmVyeSIsImFzeW5jTWF0Y2giLCJhc3luY1JlZHVjZSIsImFzeW5jUmVzb2x2ZSIsImFzeW5jU29tZSIsImZpcnN0IiwiZmlsdGVyIiwiYXJyYXlVdGlsaXRpZXMiLCJhcnJheSIsImNhbGxiYWNrIiwicmVzdWx0IiwibGVuZ3RoIiwiaW5kZXgiLCJlbGVtZW50IiwiYXJyYXlBIiwiYXJyYXlCIiwibWF0Y2hlcyIsImFycmF5QUxlbmd0aCIsImFycmF5Qkxlbmd0aCIsImVsZW1lbnRBIiwiZWxlbWVudEIiLCJwYXNzZWQiLCJpbml0aWFsVmFsdWUiLCJ2YWx1ZSIsImRlbGV0ZWRFbGVtZW50IiwidW5kZWZpbmVkIiwic3RhcnQiLCJkZWxldGVDb3VudCIsImRlbGV0ZWRFbGVtZW50cyIsInNwbGljZSIsImZpcnN0RGVsZXRlZEVsZW1lbnQiLCJyZXNvbHZlZCIsInB1c2giLCJhcnJheUJJbmNsdWRlc0VsZW1lbnRBIiwiaW5jbHVkZXMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQTBLc0JBO2VBQUFBOztRQWxKQUM7ZUFBQUE7O1FBb0RBQztlQUFBQTs7UUFxQkFDO2VBQUFBOztRQTBEQUM7ZUFBQUE7O1FBakhBQztlQUFBQTs7UUFvQkFDO2VBQUFBOztRQTZDQUM7ZUFBQUE7O1FBckdBQztlQUFBQTs7UUFtTHRCO2VBQUE7OzsyQkF2TCtCO0FBRS9CLE1BQU0sRUFBRUMsS0FBSyxFQUFFQyxNQUFNLEVBQUUsR0FBR0MseUJBQWM7QUFFakMsZUFBZUgsVUFBVUksS0FBSyxFQUFFQyxRQUFRO0lBQzdDLElBQUlDLFNBQVM7SUFFYixNQUFNQyxTQUFTSCxNQUFNRyxNQUFNO0lBRTNCLElBQUssSUFBSUMsUUFBUSxHQUFHQSxRQUFRRCxRQUFRQyxTQUFTLEVBQUc7UUFDOUMsTUFBTUMsVUFBVUwsS0FBSyxDQUFDSSxNQUFNO1FBRTVCRixTQUFTLENBQUMsQ0FBQyxNQUFNRCxTQUFTSSxTQUFTRCxPQUFPSjtRQUUxQyxJQUFJRSxRQUFRO1lBQ1Y7UUFDRjtJQUNGO0lBRUEsT0FBT0E7QUFDVDtBQUVPLGVBQWViLFdBQVdXLEtBQUssRUFBRUMsUUFBUTtJQUM5QyxJQUFJQyxTQUFTO0lBRWIsTUFBTUMsU0FBU0gsTUFBTUcsTUFBTTtJQUUzQixJQUFLLElBQUlDLFFBQVEsR0FBR0EsUUFBUUQsUUFBUUMsU0FBUyxFQUFHO1FBQzlDLE1BQU1DLFVBQVVMLEtBQUssQ0FBQ0ksTUFBTTtRQUU1QkYsU0FBUyxDQUFDLENBQUMsTUFBTUQsU0FBU0ksU0FBU0QsT0FBT0o7UUFFMUMsSUFBSSxDQUFDRSxRQUFRO1lBQ1g7UUFDRjtJQUNGO0lBRUEsT0FBT0E7QUFDVDtBQUVPLGVBQWVULFdBQVdhLE1BQU0sRUFBRUMsTUFBTSxFQUFFTixRQUFRO0lB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
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvYXN5bmNocm9ub3VzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXN5bmNTb21lKGFycmF5LCBjYWxsYmFjaykge1xuICBsZXQgcmVzdWx0ID0gZmFsc2U7XG5cbiAgY29uc3QgbGVuZ3RoID0gYXJyYXkubGVuZ3RoO1xuXG4gIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHtcbiAgICBjb25zdCBlbGVtZW50ID0gYXJyYXlbaW5kZXhdO1xuXG4gICAgcmVzdWx0ID0gISFhd2FpdCBjYWxsYmFjayhlbGVtZW50LCBpbmRleCwgYXJyYXkpO1xuXG4gICAgaWYgKHJlc3VsdCkge1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFzeW5jRXZlcnkoYXJyYXksIGNhbGxiYWNrKSB7XG4gIGxldCByZXN1bHQgPSB0cnVlO1xuXG4gIGNvbnN0IGxlbmd0aCA9IGFycmF5Lmxlbmd0aDtcblxuICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7XG4gICAgY29uc3QgZWxlbWVudCA9IGFycmF5W2luZGV4XTtcblxuICAgIHJlc3VsdCA9ICEhYXdhaXQgY2FsbGJhY2soZWxlbWVudCwgaW5kZXgsIGFycmF5KTtcblxuICAgIGlmICghcmVzdWx0KSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXN5bmNSZWR1Y2UoYXJyYXksIGNhbGxiYWNrLCBpbml0aWFsVmFsdWUpIHtcbiAgbGV0IHZhbHVlID0gaW5pdGlhbFZhbHVlOyAvLy9cblxuICBjb25zdCBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkge1xuICAgIGNvbnN0IGVsZW1lbnQgPSBhcnJheVtpbmRleF07XG5cbiAgICB2YWx1ZSA9IGF3YWl0IGNhbGxiYWNrKHZhbHVlLCBlbGVtZW50LCBpbmRleCwgYXJyYXkpO1xuICB9XG5cbiAgcmV0dXJuIHZhbHVlO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYXN5bmNGb3JFYWNoKGFycmF5LCBjYWxsYmFjaykge1xuICBjb25zdCBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG5cbiAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkge1xuICAgIGNvbnN0IGVsZW1lbnQgPSBhcnJheVtpbmRleF07XG5cbiAgICBhd2FpdCBjYWxsYmFjayhlbGVtZW50LCBpbmRleCwgYXJyYXkpO1xuICB9XG59XG5cbiJdLCJuYW1lcyI6WyJhc3luY0V2ZXJ5IiwiYXN5bmNGb3JFYWNoIiwiYXN5bmNSZWR1Y2UiLCJhc3luY1NvbWUiLCJhcnJheSIsImNhbGxiYWNrIiwicmVzdWx0IiwibGVuZ3RoIiwiaW5kZXgiLCJlbGVtZW50IiwiaW5pdGlhbFZhbHVlIiwidmFsdWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQW9Cc0JBO2VBQUFBOztRQWdDQUM7ZUFBQUE7O1FBZEFDO2VBQUFBOztRQXBDQUM7ZUFBQUE7OztBQUFmLGVBQWVBLFVBQVVDLEtBQUssRUFBRUMsUUFBUTtJQUM3QyxJQUFJQyxTQUFTO0lBRWIsTUFBTUMsU0FBU0gsTUFBTUcsTUFBTTtJQUUzQixJQUFLLElBQUlDLFFBQVEsR0FBR0EsUUFBUUQsUUFBUUMsU0FBUyxFQUFHO1FBQzlDLE1BQU1DLFVBQVVMLEtBQUssQ0FBQ0ksTUFBTTtRQUU1QkYsU0FBUyxDQUFDLENBQUMsTUFBTUQsU0FBU0ksU0FBU0QsT0FBT0o7UUFFMUMsSUFBSUUsUUFBUTtZQUNWO1FBQ0Y7SUFDRjtJQUVBLE9BQU9BO0FBQ1Q7QUFFTyxlQUFlTixXQUFXSSxLQUFLLEVBQUVDLFFBQVE7SUFDOUMsSUFBSUMsU0FBUztJQUViLE1BQU1DLFNBQVNILE1BQU1HLE1BQU07SUFFM0IsSUFBSyxJQUFJQyxRQUFRLEdBQUdBLFFBQVFELFFBQVFDLFNBQVMsRUFBRztRQUM5QyxNQUFNQyxVQUFVTCxLQUFLLENBQUNJLE1BQU07UUFFNUJGLFNBQVMsQ0FBQyxDQUFDLE1BQU1ELFNBQVNJLFNBQVNELE9BQU9KO1FBRTFDLElBQUksQ0FBQ0UsUUFBUTtZQUNYO1FBQ0Y7SUFDRjtJQUVBLE9BQU9BO0FBQ1Q7QUFFTyxlQUFlSixZQUFZRSxLQUFLLEVBQUVDLFFBQVEsRUFBRUssWUFBWTtJQUM3RCxJQUFJQyxRQUFRRCxjQUFjLEdBQUc7SUFFN0IsTUFBTUgsU0FBU0gsTUFBTUcsTUFBTTtJQUUzQixJQUFLLElBQUlDLFFBQVEsR0FBR0EsUUFBUUQsUUFBUUMsU0FBUyxFQUFHO1FBQzlDLE1BQU1DLFVBQVVMLEtBQUssQ0FBQ0ksTUFBTTtRQUU1QkcsUUFBUSxNQUFNTixTQUFTTSxPQUFPRixTQUFTRCxPQUFPSjtJQUNoRDtJQUVBLE9BQU9PO0FBQ1Q7QUFFTyxlQUFlVixhQUFhRyxLQUFLLEVBQUVDLFFBQVE7SUFDaEQsTUFBTUUsU0FBU0gsTUFBTUcsTUFBTTtJQUUzQixJQUFLLElBQUlDLFFBQVEsR0FBR0EsUUFBUUQsUUFBUUMsU0FBUyxFQUFHO1FBQzlDLE1BQU1DLFVBQVVMLEtBQUssQ0FBQ0ksTUFBTTtRQUU1QixNQUFNSCxTQUFTSSxTQUFTRCxPQUFPSjtJQUNqQztBQUNGIn0=
|
|
@@ -9,6 +9,9 @@ function _export(target, all) {
|
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
11
|
_export(exports, {
|
|
12
|
+
get backwardsEvery () {
|
|
13
|
+
return backwardsEvery;
|
|
14
|
+
},
|
|
12
15
|
get breakable () {
|
|
13
16
|
return breakable;
|
|
14
17
|
},
|
|
@@ -18,9 +21,18 @@ _export(exports, {
|
|
|
18
21
|
get every () {
|
|
19
22
|
return every;
|
|
20
23
|
},
|
|
24
|
+
get extract () {
|
|
25
|
+
return extract;
|
|
26
|
+
},
|
|
21
27
|
get forEach () {
|
|
22
28
|
return forEach;
|
|
23
29
|
},
|
|
30
|
+
get forwardsEvery () {
|
|
31
|
+
return forwardsEvery;
|
|
32
|
+
},
|
|
33
|
+
get match () {
|
|
34
|
+
return match;
|
|
35
|
+
},
|
|
24
36
|
get reduce () {
|
|
25
37
|
return reduce;
|
|
26
38
|
},
|
|
@@ -35,7 +47,7 @@ _export(exports, {
|
|
|
35
47
|
}
|
|
36
48
|
});
|
|
37
49
|
const _necessary = require("necessary");
|
|
38
|
-
const { filter: arrayFilter } = _necessary.arrayUtilities, { forEach: asynchronousForEach } = _necessary.asynchronousUtilities;
|
|
50
|
+
const { first: arrayFirst, filter: arrayFilter } = _necessary.arrayUtilities, { forEach: asynchronousForEach, forwardsForEach: asynchronousForwardsForEach, backwardsForEach: asynchronousBackwardsForEach } = _necessary.asynchronousUtilities;
|
|
39
51
|
function some(array, callback, ...remainingArguments) {
|
|
40
52
|
let success = false;
|
|
41
53
|
const continuation = remainingArguments.pop();
|
|
@@ -68,6 +80,23 @@ function every(array, callback, ...remainingArguments) {
|
|
|
68
80
|
continuation(success);
|
|
69
81
|
});
|
|
70
82
|
}
|
|
83
|
+
function match(arrayA, arrayB, callback, ...remainingArguments) {
|
|
84
|
+
const continuation = remainingArguments.pop(), arrayALength = arrayA.length, arrayBLength = arrayB.length;
|
|
85
|
+
if (arrayALength !== arrayBLength) {
|
|
86
|
+
const matches = false;
|
|
87
|
+
continuation(matches);
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
let index = -1;
|
|
91
|
+
every(arrayA, (elementA, continuation)=>{
|
|
92
|
+
index++;
|
|
93
|
+
const elementB = arrayB[index];
|
|
94
|
+
callback(elementA, elementB, ...remainingArguments, continuation);
|
|
95
|
+
}, (success)=>{
|
|
96
|
+
const matches = success; ///
|
|
97
|
+
continuation(matches);
|
|
98
|
+
});
|
|
99
|
+
}
|
|
71
100
|
function reduce(array, initialValue, callback, ...remainingArguments) {
|
|
72
101
|
let value = initialValue; ///
|
|
73
102
|
const continuation = remainingArguments.pop();
|
|
@@ -88,6 +117,23 @@ function forEach(array, callback, ...remainingArguments) {
|
|
|
88
117
|
});
|
|
89
118
|
}, continuation);
|
|
90
119
|
}
|
|
120
|
+
function extract(array, callback, ...remainingArguments) {
|
|
121
|
+
let deletedElement = undefined; ///
|
|
122
|
+
const continuation = remainingArguments.pop();
|
|
123
|
+
let index = -1;
|
|
124
|
+
some(array, (element, continuation)=>{
|
|
125
|
+
index++;
|
|
126
|
+
callback(element, ...remainingArguments, (passed)=>{
|
|
127
|
+
if (passed) {
|
|
128
|
+
const start = index, deleteCount = 1, deletedElements = array.splice(start, deleteCount), firstDeletedElement = arrayFirst(deletedElements);
|
|
129
|
+
deletedElement = firstDeletedElement; ///
|
|
130
|
+
}
|
|
131
|
+
continuation(passed);
|
|
132
|
+
});
|
|
133
|
+
}, ()=>{
|
|
134
|
+
continuation(deletedElement);
|
|
135
|
+
});
|
|
136
|
+
}
|
|
91
137
|
function resolve(arrayA, arrayB, callback, ...remainingArguments) {
|
|
92
138
|
arrayA = [
|
|
93
139
|
...arrayA
|
|
@@ -134,6 +180,38 @@ function resolve(arrayA, arrayB, callback, ...remainingArguments) {
|
|
|
134
180
|
}
|
|
135
181
|
nextPass();
|
|
136
182
|
}
|
|
183
|
+
function forwardsEvery(array, callback, ...remainingArguments) {
|
|
184
|
+
let success = true;
|
|
185
|
+
const continuation = remainingArguments.pop();
|
|
186
|
+
asynchronousForwardsForEach(array, (element, next, done)=>{
|
|
187
|
+
callback(element, ...remainingArguments, (passed)=>{
|
|
188
|
+
if (!passed) {
|
|
189
|
+
success = false;
|
|
190
|
+
done();
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
next();
|
|
194
|
+
});
|
|
195
|
+
}, ()=>{
|
|
196
|
+
continuation(success);
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
function backwardsEvery(array, callback, ...remainingArguments) {
|
|
200
|
+
let success = true;
|
|
201
|
+
const continuation = remainingArguments.pop();
|
|
202
|
+
asynchronousBackwardsForEach(array, (element, next, done)=>{
|
|
203
|
+
callback(element, ...remainingArguments, (passed)=>{
|
|
204
|
+
if (!passed) {
|
|
205
|
+
success = false;
|
|
206
|
+
done();
|
|
207
|
+
return;
|
|
208
|
+
}
|
|
209
|
+
next();
|
|
210
|
+
});
|
|
211
|
+
}, ()=>{
|
|
212
|
+
continuation(success);
|
|
213
|
+
});
|
|
214
|
+
}
|
|
137
215
|
function breakable(innerFunction) {
|
|
138
216
|
return function(...remainingArguments) {
|
|
139
217
|
const remainingArgumentsLength = remainingArguments.length, innerFunctionLength = innerFunction.length, continuation = remainingArguments.pop(), context = remainingArguments.pop();
|
|
@@ -161,11 +239,15 @@ function unbreakable(innerFunction) {
|
|
|
161
239
|
const _default = {
|
|
162
240
|
some,
|
|
163
241
|
every,
|
|
242
|
+
match,
|
|
164
243
|
reduce,
|
|
165
244
|
forEach,
|
|
245
|
+
extract,
|
|
166
246
|
resolve,
|
|
247
|
+
forwardsEvery,
|
|
248
|
+
backwardsEvery,
|
|
167
249
|
breakable,
|
|
168
250
|
unbreakable
|
|
169
251
|
};
|
|
170
252
|
|
|
171
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29udGludWF0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcywgYXN5bmNocm9ub3VzVXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5jb25zdCB7IGZpbHRlcjogYXJyYXlGaWx0ZXIgfSA9IGFycmF5VXRpbGl0aWVzLFxuICAgICAgeyBmb3JFYWNoOiBhc3luY2hyb25vdXNGb3JFYWNoIH0gPSBhc3luY2hyb25vdXNVdGlsaXRpZXM7XG5cbmV4cG9ydCBmdW5jdGlvbiBzb21lKGFycmF5LCBjYWxsYmFjaywgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gIGxldCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpO1xuXG4gIGFzeW5jaHJvbm91c0ZvckVhY2goYXJyYXksIChlbGVtZW50LCBuZXh0LCBkb25lKSA9PiB7XG4gICAgY2FsbGJhY2soZWxlbWVudCwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCAocGFzc2VkKSA9PiB7XG4gICAgICBpZiAocGFzc2VkKSB7XG4gICAgICAgIHN1Y2Nlc3MgPSB0cnVlO1xuXG4gICAgICAgIGRvbmUoKTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIG5leHQoKTtcbiAgICB9KTtcbiAgfSwgKCkgPT4ge1xuICAgIGNvbnRpbnVhdGlvbihzdWNjZXNzKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBldmVyeShhcnJheSwgY2FsbGJhY2ssIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICBsZXQgc3VjY2VzcyA9IHRydWU7XG5cbiAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpO1xuXG4gIGFzeW5jaHJvbm91c0ZvckVhY2goYXJyYXksIChlbGVtZW50LCBuZXh0LCBkb25lKSA9PiB7XG4gICAgY2FsbGJhY2soZWxlbWVudCwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCAocGFzc2VkKSA9PiB7XG4gICAgICBpZiAoIXBhc3NlZCkge1xuICAgICAgICBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICAgICAgZG9uZSgpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbmV4dCgpO1xuICAgIH0pO1xuICB9LCAoKSA9PiB7XG4gICAgY29udGludWF0aW9uKHN1Y2Nlc3MpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlZHVjZShhcnJheSwgaW5pdGlhbFZhbHVlLCBjYWxsYmFjaywgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gIGxldCB2YWx1ZSA9IGluaXRpYWxWYWx1ZTsgLy8vXG5cbiAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpO1xuXG4gIGFzeW5jaHJvbm91c0ZvckVhY2goYXJyYXksIChlbGVtZW50LCBuZXh0LCBkb25lKSA9PiB7XG4gICAgY2FsbGJhY2sodmFsdWUsIGVsZW1lbnQsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgKGN1cnJlbnRWYWx1ZSkgPT4ge1xuICAgICAgdmFsdWUgPSBjdXJyZW50VmFsdWU7ICAvLy9cblxuICAgICAgbmV4dCgpO1xuICAgIH0pO1xuICB9LCAoKSA9PiB7XG4gICAgY29udGludWF0aW9uKHZhbHVlKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JFYWNoKGFycmF5LCBjYWxsYmFjaywgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKTtcblxuICBhc3luY2hyb25vdXNGb3JFYWNoKGFycmF5LCAoZWxlbWVudCwgbmV4dCwgZG9uZSkgPT4ge1xuICAgIGNhbGxiYWNrKGVsZW1lbnQsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgKCkgPT4ge1xuICAgICAgbmV4dCgpO1xuICAgIH0pO1xuICB9LCBjb250aW51YXRpb24pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZShhcnJheUEsIGFycmF5QiwgY2FsbGJhY2ssIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICBhcnJheUEgPSBbICAvLy9cbiAgICAuLi5hcnJheUFcbiAgXTtcblxuICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgZnVuY3Rpb24gbmV4dFBhc3MoKSB7XG4gICAgY29uc3QgYXJyYXlBTGVuZ3RoID0gYXJyYXlBLmxlbmd0aDtcblxuICAgIGlmIChhcnJheUFMZW5ndGggPT09IDApIHtcbiAgICAgIGNvbnN0IHN1Y2Nlc3MgPSB0cnVlOyAgLy8vXG5cbiAgICAgIGNvbnRpbnVhdGlvbihzdWNjZXNzKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICBsZXQgY291bnQgPSAtMTtcblxuICAgIGZ1bmN0aW9uIG5leHRFbGVtZW50KCkge1xuICAgICAgY291bnQrKztcblxuICAgICAgY29uc3QgdGVybWluYXRlID0gKGNvdW50ID09PSBhcnJheUFMZW5ndGgpO1xuXG4gICAgICBpZiAodGVybWluYXRlKSB7XG4gICAgICAgIGlmICghc3VjY2Vzcykge1xuICAgICAgICAgIGNvbnN0IHN1Y2Nlc3MgPSBmYWxzZTsgLy8vXG5cbiAgICAgICAgICBjb250aW51YXRpb24oc3VjY2Vzcyk7XG5cbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBhcnJheUZpbHRlcihhcnJheUEsIChlbGVtZW50QSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGFycmF5QkluY2x1ZGVzRWxlbWVudEEgPSBhcnJheUIuaW5jbHVkZXMoZWxlbWVudEEpO1xuXG4gICAgICAgICAgaWYgKCFhcnJheUJJbmNsdWRlc0VsZW1lbnRBKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIG5leHRQYXNzKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBpbmRleCA9IGNvdW50LCAgLy8vXG4gICAgICAgICAgICAgIGVsZW1lbnRBID0gYXJyYXlBW2luZGV4XTtcblxuICAgICAgICBjYWxsYmFjayhlbGVtZW50QSwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCAocGFzc2VkKSA9PiB7XG4gICAgICAgICAgaWYgKHBhc3NlZCkge1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudEIgPSBlbGVtZW50QTsgIC8vL1xuXG4gICAgICAgICAgICBhcnJheUIucHVzaChlbGVtZW50Qik7XG5cbiAgICAgICAgICAgIHN1Y2Nlc3MgPSB0cnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG5leHRFbGVtZW50KCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIG5leHRFbGVtZW50KCk7XG4gIH1cblxuICBuZXh0UGFzcygpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYnJlYWthYmxlKGlubmVyRnVuY3Rpb24pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGNvbnN0IHJlbWFpbmluZ0FyZ3VtZW50c0xlbmd0aCA9IHJlbWFpbmluZ0FyZ3VtZW50cy5sZW5ndGgsXG4gICAgICAgICAgaW5uZXJGdW5jdGlvbkxlbmd0aCA9IGlubmVyRnVuY3Rpb24ubGVuZ3RoLFxuICAgICAgICAgIGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgICBjb250ZXh0ID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpO1xuXG4gICAgdGhpcy5icmVhayhjb250ZXh0LCAoKSA9PiB7XG4gICAgICBpZiAoaW5uZXJGdW5jdGlvbkxlbmd0aCA9PT0gcmVtYWluaW5nQXJndW1lbnRzTGVuZ3RoKSB7XG4gICAgICAgIGlubmVyRnVuY3Rpb24uY2FsbCh0aGlzLCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIGNvbnRleHQsIGNvbnRpbnVhdGlvbik7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCByZXN1bHQgPSBpbm5lckZ1bmN0aW9uLmNhbGwodGhpcywgLi4ucmVtYWluaW5nQXJndW1lbnRzLCBjb250ZXh0KTtcblxuICAgICAgY29udGludWF0aW9uKHJlc3VsdCk7XG4gICAgfSk7XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1bmJyZWFrYWJsZShpbm5lckZ1bmN0aW9uKSB7XG4gIHJldHVybiBmdW5jdGlvbiguLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCBpbm5lckZ1bmN0aW9uTGVuZ3RoID0gaW5uZXJGdW5jdGlvbi5sZW5ndGgsXG4gICAgICAgICAgcmVtYWluaW5nQXJndW1lbnRzTGVuZ3RoID0gcmVtYWluaW5nQXJndW1lbnRzLmxlbmd0aDtcblxuICAgIGlmIChpbm5lckZ1bmN0aW9uTGVuZ3RoID09PSByZW1haW5pbmdBcmd1bWVudHNMZW5ndGgpIHtcbiAgICAgIGlubmVyRnVuY3Rpb24uY2FsbCh0aGlzLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICAgIHJlc3VsdCA9IGlubmVyRnVuY3Rpb24uY2FsbCh0aGlzLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpO1xuXG4gICAgY29udGludWF0aW9uKHJlc3VsdCk7XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgc29tZSxcbiAgZXZlcnksXG4gIHJlZHVjZSxcbiAgZm9yRWFjaCxcbiAgcmVzb2x2ZSxcbiAgYnJlYWthYmxlLFxuICB1bmJyZWFrYWJsZVxufVxuIl0sIm5hbWVzIjpbImJyZWFrYWJsZSIsImV2ZXJ5IiwiZm9yRWFjaCIsInJlZHVjZSIsInJlc29sdmUiLCJzb21lIiwidW5icmVha2FibGUiLCJmaWx0ZXIiLCJhcnJheUZpbHRlciIsImFycmF5VXRpbGl0aWVzIiwiYXN5bmNocm9ub3VzRm9yRWFjaCIsImFzeW5jaHJvbm91c1V0aWxpdGllcyIsImFycmF5IiwiY2FsbGJhY2siLCJyZW1haW5pbmdBcmd1bWVudHMiLCJzdWNjZXNzIiwiY29udGludWF0aW9uIiwicG9wIiwiZWxlbWVudCIsIm5leHQiLCJkb25lIiwicGFzc2VkIiwiaW5pdGlhbFZhbHVlIiwidmFsdWUiLCJjdXJyZW50VmFsdWUiLCJhcnJheUEiLCJhcnJheUIiLCJuZXh0UGFzcyIsImFycmF5QUxlbmd0aCIsImxlbmd0aCIsImNvdW50IiwibmV4dEVsZW1lbnQiLCJ0ZXJtaW5hdGUiLCJlbGVtZW50QSIsImFycmF5QkluY2x1ZGVzRWxlbWVudEEiLCJpbmNsdWRlcyIsImluZGV4IiwiZWxlbWVudEIiLCJwdXNoIiwiaW5uZXJGdW5jdGlvbiIsInJlbWFpbmluZ0FyZ3VtZW50c0xlbmd0aCIsImlubmVyRnVuY3Rpb25MZW5ndGgiLCJjb250ZXh0IiwiYnJlYWsiLCJjYWxsIiwicmVzdWx0Il0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUFrSmdCQTtlQUFBQTs7UUF1Q2hCO2VBQUE7O1FBNUpnQkM7ZUFBQUE7O1FBc0NBQztlQUFBQTs7UUFoQkFDO2VBQUFBOztRQTBCQUM7ZUFBQUE7O1FBdEVBQztlQUFBQTs7UUFnS0FDO2VBQUFBOzs7MkJBcktzQztBQUV0RCxNQUFNLEVBQUVDLFFBQVFDLFdBQVcsRUFBRSxHQUFHQyx5QkFBYyxFQUN4QyxFQUFFUCxTQUFTUSxtQkFBbUIsRUFBRSxHQUFHQyxnQ0FBcUI7QUFFdkQsU0FBU04sS0FBS08sS0FBSyxFQUFFQyxRQUFRLEVBQUUsR0FBR0Msa0JBQWtCO0lBQ3pELElBQUlDLFVBQVU7SUFFZCxNQUFNQyxlQUFlRixtQkFBbUJHLEdBQUc7SUFFM0NQLG9CQUFvQkUsT0FBTyxDQUFDTSxTQUFTQyxNQUFNQztRQUN6Q1AsU0FBU0ssWUFBWUosb0JBQW9CLENBQUNPO1lBQ3hDLElBQUlBLFFBQVE7Z0JBQ1ZOLFVBQVU7Z0JBRVZLO2dCQUVBO1lBQ0Y7WUFFQUQ7UUFDRjtJQUNGLEdBQUc7UUFDREgsYUFBYUQ7SUFDZjtBQUNGO0FBRU8sU0FBU2QsTUFBTVcsS0FBSyxFQUFFQyxRQUFRLEVBQUUsR0FBR0Msa0JBQWtCO0lBQzFELElBQUlDLFVBQVU7SUFFZCxNQUFNQyxlQUFlRixtQkFBbUJHLEdBQUc7SUFFM0NQLG9CQUFvQkUsT0FBTyxDQUFDTSxTQUFTQyxNQUFNQztRQUN6Q1AsU0FBU0ssWUFBWUosb0JBQW9CLENBQUNPO1lBQ3hDLElBQUksQ0FBQ0EsUUFBUTtnQkFDWE4sVUFBVTtnQkFFVks7Z0JBRUE7WUFDRjtZQUVBRDtRQUNGO0lBQ0YsR0FBRztRQUNESCxhQUFhRDtJQUNmO0FBQ0Y7QUFFTyxTQUFTWixPQUFPUyxLQUFLLEVBQUVVLFlBQVksRUFBRVQsUUFBUSxFQUFFLEdBQUdDLGtCQUFrQjtJQUN6RSxJQUFJUyxRQUFRRCxjQUFjLEdBQUc7SUFFN0IsTUFBTU4sZUFBZUYsbUJBQW1CRyxHQUFHO0lBRTNDUCxvQkFBb0JFLE9BQU8sQ0FBQ00sU0FBU0MsTUFBTUM7UUFDekNQLFNBQVNVLE9BQU9MLFlBQVlKLG9CQUFvQixDQUFDVTtZQUMvQ0QsUUFBUUMsY0FBZSxHQUFHO1lBRTFCTDtRQUNGO0lBQ0YsR0FBRztRQUNESCxhQUFhTztJQUNmO0FBQ0Y7QUFFTyxTQUFTckIsUUFBUVUsS0FBSyxFQUFFQyxRQUFRLEVBQUUsR0FBR0Msa0JBQWtCO0lBQzVELE1BQU1FLGVBQWVGLG1CQUFtQkcsR0FBRztJQUUzQ1Asb0JBQW9CRSxPQUFPLENBQUNNLFNBQVNDLE1BQU1DO1FBQ3pDUCxTQUFTSyxZQUFZSixvQkFBb0I7WUFDdkNLO1FBQ0Y7SUFDRixHQUFHSDtBQUNMO0FBRU8sU0FBU1osUUFBUXFCLE1BQU0sRUFBRUMsTUFBTSxFQUFFYixRQUFRLEVBQUUsR0FBR0Msa0JBQWtCO0lBQ3JFVyxTQUFTO1dBQ0pBO0tBQ0o7SUFFRCxNQUFNVCxlQUFlRixtQkFBbUJHLEdBQUc7SUFFM0MsU0FBU1U7UUFDUCxNQUFNQyxlQUFlSCxPQUFPSSxNQUFNO1FBRWxDLElBQUlELGlCQUFpQixHQUFHO1lBQ3RCLE1BQU1iLFVBQVUsTUFBTyxHQUFHO1lBRTFCQyxhQUFhRDtZQUViO1FBQ0Y7UUFFQSxJQUFJQSxVQUFVO1FBRWQsSUFBSWUsUUFBUSxDQUFDO1FBRWIsU0FBU0M7WUFDUEQ7WUFFQSxNQUFNRSxZQUFhRixVQUFVRjtZQUU3QixJQUFJSSxXQUFXO2dCQUNiLElBQUksQ0FBQ2pCLFNBQVM7b0JBQ1osTUFBTUEsVUFBVSxPQUFPLEdBQUc7b0JBRTFCQyxhQUFhRDtvQkFFYjtnQkFDRjtnQkFFQVAsWUFBWWlCLFFBQVEsQ0FBQ1E7b0JBQ25CLE1BQU1DLHlCQUF5QlIsT0FBT1MsUUFBUSxDQUFDRjtvQkFFL0MsSUFBSSxDQUFDQyx3QkFBd0I7d0JBQzNCLE9BQU87b0JBQ1Q7Z0JBQ0Y7Z0JBRUFQO1lBQ0YsT0FBTztnQkFDTCxNQUFNUyxRQUFRTixPQUNSRyxXQUFXUixNQUFNLENBQUNXLE1BQU07Z0JBRTlCdkIsU0FBU29CLGFBQWFuQixvQkFBb0IsQ0FBQ087b0JBQ3pDLElBQUlBLFFBQVE7d0JBQ1YsTUFBTWdCLFdBQVdKLFVBQVcsR0FBRzt3QkFFL0JQLE9BQU9ZLElBQUksQ0FBQ0Q7d0JBRVp0QixVQUFVO29CQUNaO29CQUVBZ0I7Z0JBQ0Y7WUFDRjtRQUNGO1FBRUFBO0lBQ0Y7SUFFQUo7QUFDRjtBQUVPLFNBQVMzQixVQUFVdUMsYUFBYTtJQUNyQyxPQUFPLFNBQVMsR0FBR3pCLGtCQUFrQjtRQUNuQyxNQUFNMEIsMkJBQTJCMUIsbUJBQW1CZSxNQUFNLEVBQ3BEWSxzQkFBc0JGLGNBQWNWLE1BQU0sRUFDMUNiLGVBQWVGLG1CQUFtQkcsR0FBRyxJQUNyQ3lCLFVBQVU1QixtQkFBbUJHLEdBQUc7UUFFdEMsSUFBSSxDQUFDMEIsS0FBSyxDQUFDRCxTQUFTO1lBQ2xCLElBQUlELHdCQUF3QkQsMEJBQTBCO2dCQUNwREQsY0FBY0ssSUFBSSxDQUFDLElBQUksS0FBSzlCLG9CQUFvQjRCLFNBQVMxQjtnQkFFekQ7WUFDRjtZQUVBLE1BQU02QixTQUFTTixjQUFjSyxJQUFJLENBQUMsSUFBSSxLQUFLOUIsb0JBQW9CNEI7WUFFL0QxQixhQUFhNkI7UUFDZjtJQUNGO0FBQ0Y7QUFFTyxTQUFTdkMsWUFBWWlDLGFBQWE7SUFDdkMsT0FBTyxTQUFTLEdBQUd6QixrQkFBa0I7UUFDbkMsTUFBTTJCLHNCQUFzQkYsY0FBY1YsTUFBTSxFQUMxQ1csMkJBQTJCMUIsbUJBQW1CZSxNQUFNO1FBRTFELElBQUlZLHdCQUF3QkQsMEJBQTBCO1lBQ3BERCxjQUFjSyxJQUFJLENBQUMsSUFBSSxLQUFLOUI7WUFFNUI7UUFDRjtRQUVBLE1BQU1FLGVBQWVGLG1CQUFtQkcsR0FBRyxJQUNyQzRCLFNBQVNOLGNBQWNLLElBQUksQ0FBQyxJQUFJLEtBQUs5QjtRQUUzQ0UsYUFBYTZCO0lBQ2Y7QUFDRjtNQUVBLFdBQWU7SUFDYnhDO0lBQ0FKO0lBQ0FFO0lBQ0FEO0lBQ0FFO0lBQ0FKO0lBQ0FNO0FBQ0YifQ==
|
|
253
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29udGludWF0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcywgYXN5bmNocm9ub3VzVXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5jb25zdCB7IGZpcnN0OiBhcnJheUZpcnN0LCBmaWx0ZXI6IGFycmF5RmlsdGVyIH0gPSBhcnJheVV0aWxpdGllcyxcbiAgICAgIHsgZm9yRWFjaDogYXN5bmNocm9ub3VzRm9yRWFjaCxcbiAgICAgICAgZm9yd2FyZHNGb3JFYWNoOiBhc3luY2hyb25vdXNGb3J3YXJkc0ZvckVhY2gsXG4gICAgICAgIGJhY2t3YXJkc0ZvckVhY2g6IGFzeW5jaHJvbm91c0JhY2t3YXJkc0ZvckVhY2ggfSA9IGFzeW5jaHJvbm91c1V0aWxpdGllcztcblxuZXhwb3J0IGZ1bmN0aW9uIHNvbWUoYXJyYXksIGNhbGxiYWNrLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgbGV0IHN1Y2Nlc3MgPSBmYWxzZTtcblxuICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgYXN5bmNocm9ub3VzRm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICBjYWxsYmFjayhlbGVtZW50LCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIChwYXNzZWQpID0+IHtcbiAgICAgIGlmIChwYXNzZWQpIHtcbiAgICAgICAgc3VjY2VzcyA9IHRydWU7XG5cbiAgICAgICAgZG9uZSgpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbmV4dCgpO1xuICAgIH0pO1xuICB9LCAoKSA9PiB7XG4gICAgY29udGludWF0aW9uKHN1Y2Nlc3MpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV2ZXJ5KGFycmF5LCBjYWxsYmFjaywgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gIGxldCBzdWNjZXNzID0gdHJ1ZTtcblxuICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgYXN5bmNocm9ub3VzRm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICBjYWxsYmFjayhlbGVtZW50LCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIChwYXNzZWQpID0+IHtcbiAgICAgIGlmICghcGFzc2VkKSB7XG4gICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTtcblxuICAgICAgICBkb25lKCk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBuZXh0KCk7XG4gICAgfSk7XG4gIH0sICgpID0+IHtcbiAgICBjb250aW51YXRpb24oc3VjY2Vzcyk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWF0Y2goYXJyYXlBLCBhcnJheUIsIGNhbGxiYWNrLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICBhcnJheUFMZW5ndGggPSBhcnJheUEubGVuZ3RoLFxuICAgICAgICBhcnJheUJMZW5ndGggPSBhcnJheUIubGVuZ3RoO1xuXG4gIGlmIChhcnJheUFMZW5ndGggIT09IGFycmF5Qkxlbmd0aCkge1xuICAgIGNvbnN0IG1hdGNoZXMgPSBmYWxzZTtcblxuICAgIGNvbnRpbnVhdGlvbihtYXRjaGVzKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIGxldCBpbmRleCA9IC0xO1xuXG4gIGV2ZXJ5KGFycmF5QSwgKGVsZW1lbnRBLCBjb250aW51YXRpb24pID0+IHtcbiAgICBpbmRleCsrO1xuXG4gICAgY29uc3QgZWxlbWVudEIgPSBhcnJheUJbaW5kZXhdO1xuXG4gICAgY2FsbGJhY2soZWxlbWVudEEsIGVsZW1lbnRCLCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIGNvbnRpbnVhdGlvbik7XG4gIH0sIChzdWNjZXNzKSA9PiB7XG4gICAgY29uc3QgbWF0Y2hlcyA9IHN1Y2Nlc3M7ICAvLy9cblxuICAgIGNvbnRpbnVhdGlvbihtYXRjaGVzKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWR1Y2UoYXJyYXksIGluaXRpYWxWYWx1ZSwgY2FsbGJhY2ssIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICBsZXQgdmFsdWUgPSBpbml0aWFsVmFsdWU7IC8vL1xuXG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKTtcblxuICBhc3luY2hyb25vdXNGb3JFYWNoKGFycmF5LCAoZWxlbWVudCwgbmV4dCwgZG9uZSkgPT4ge1xuICAgIGNhbGxiYWNrKHZhbHVlLCBlbGVtZW50LCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIChjdXJyZW50VmFsdWUpID0+IHtcbiAgICAgIHZhbHVlID0gY3VycmVudFZhbHVlOyAgLy8vXG5cbiAgICAgIG5leHQoKTtcbiAgICB9KTtcbiAgfSwgKCkgPT4ge1xuICAgIGNvbnRpbnVhdGlvbih2YWx1ZSk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9yRWFjaChhcnJheSwgY2FsbGJhY2ssIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgYXN5bmNocm9ub3VzRm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICBjYWxsYmFjayhlbGVtZW50LCAuLi5yZW1haW5pbmdBcmd1bWVudHMsICgpID0+IHtcbiAgICAgIG5leHQoKTtcbiAgICB9KTtcbiAgfSwgY29udGludWF0aW9uKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3QoYXJyYXksIGNhbGxiYWNrLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgbGV0IGRlbGV0ZWRFbGVtZW50ID0gdW5kZWZpbmVkOyAvLy9cblxuICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgbGV0IGluZGV4ID0gLTE7XG5cbiAgc29tZShhcnJheSwgKGVsZW1lbnQsIGNvbnRpbnVhdGlvbikgPT4ge1xuICAgIGluZGV4Kys7XG5cbiAgICBjYWxsYmFjayhlbGVtZW50LCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIChwYXNzZWQpID0+IHtcbiAgICAgIGlmIChwYXNzZWQpIHtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSBpbmRleCwgIC8vL1xuICAgICAgICAgICAgICBkZWxldGVDb3VudCA9IDEsXG4gICAgICAgICAgICAgIGRlbGV0ZWRFbGVtZW50cyA9IGFycmF5LnNwbGljZShzdGFydCwgZGVsZXRlQ291bnQpLFxuICAgICAgICAgICAgICBmaXJzdERlbGV0ZWRFbGVtZW50ID0gYXJyYXlGaXJzdChkZWxldGVkRWxlbWVudHMpO1xuXG4gICAgICAgIGRlbGV0ZWRFbGVtZW50ID0gZmlyc3REZWxldGVkRWxlbWVudDsgIC8vL1xuICAgICAgfVxuXG4gICAgICBjb250aW51YXRpb24ocGFzc2VkKTtcbiAgICB9KTtcbiAgfSwgKCkgPT4ge1xuICAgIGNvbnRpbnVhdGlvbihkZWxldGVkRWxlbWVudCk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZShhcnJheUEsIGFycmF5QiwgY2FsbGJhY2ssIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICBhcnJheUEgPSBbICAvLy9cbiAgICAuLi5hcnJheUFcbiAgXTtcblxuICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgZnVuY3Rpb24gbmV4dFBhc3MoKSB7XG4gICAgY29uc3QgYXJyYXlBTGVuZ3RoID0gYXJyYXlBLmxlbmd0aDtcblxuICAgIGlmIChhcnJheUFMZW5ndGggPT09IDApIHtcbiAgICAgIGNvbnN0IHN1Y2Nlc3MgPSB0cnVlOyAgLy8vXG5cbiAgICAgIGNvbnRpbnVhdGlvbihzdWNjZXNzKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICBsZXQgY291bnQgPSAtMTtcblxuICAgIGZ1bmN0aW9uIG5leHRFbGVtZW50KCkge1xuICAgICAgY291bnQrKztcblxuICAgICAgY29uc3QgdGVybWluYXRlID0gKGNvdW50ID09PSBhcnJheUFMZW5ndGgpO1xuXG4gICAgICBpZiAodGVybWluYXRlKSB7XG4gICAgICAgIGlmICghc3VjY2Vzcykge1xuICAgICAgICAgIGNvbnN0IHN1Y2Nlc3MgPSBmYWxzZTsgLy8vXG5cbiAgICAgICAgICBjb250aW51YXRpb24oc3VjY2Vzcyk7XG5cbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBhcnJheUZpbHRlcihhcnJheUEsIChlbGVtZW50QSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGFycmF5QkluY2x1ZGVzRWxlbWVudEEgPSBhcnJheUIuaW5jbHVkZXMoZWxlbWVudEEpO1xuXG4gICAgICAgICAgaWYgKCFhcnJheUJJbmNsdWRlc0VsZW1lbnRBKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIG5leHRQYXNzKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBpbmRleCA9IGNvdW50LCAgLy8vXG4gICAgICAgICAgICAgIGVsZW1lbnRBID0gYXJyYXlBW2luZGV4XTtcblxuICAgICAgICBjYWxsYmFjayhlbGVtZW50QSwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCAocGFzc2VkKSA9PiB7XG4gICAgICAgICAgaWYgKHBhc3NlZCkge1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudEIgPSBlbGVtZW50QTsgIC8vL1xuXG4gICAgICAgICAgICBhcnJheUIucHVzaChlbGVtZW50Qik7XG5cbiAgICAgICAgICAgIHN1Y2Nlc3MgPSB0cnVlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG5leHRFbGVtZW50KCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIG5leHRFbGVtZW50KCk7XG4gIH1cblxuICBuZXh0UGFzcygpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9yd2FyZHNFdmVyeShhcnJheSwgY2FsbGJhY2ssIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICBsZXQgc3VjY2VzcyA9IHRydWU7XG5cbiAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpO1xuXG4gIGFzeW5jaHJvbm91c0ZvcndhcmRzRm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICBjYWxsYmFjayhlbGVtZW50LCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIChwYXNzZWQpID0+IHtcbiAgICAgIGlmICghcGFzc2VkKSB7XG4gICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTtcblxuICAgICAgICBkb25lKCk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBuZXh0KCk7XG4gICAgfSk7XG4gIH0sICgpID0+IHtcbiAgICBjb250aW51YXRpb24oc3VjY2Vzcyk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYmFja3dhcmRzRXZlcnkoYXJyYXksIGNhbGxiYWNrLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgbGV0IHN1Y2Nlc3MgPSB0cnVlO1xuXG4gIGNvbnN0IGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKTtcblxuICBhc3luY2hyb25vdXNCYWNrd2FyZHNGb3JFYWNoKGFycmF5LCAoZWxlbWVudCwgbmV4dCwgZG9uZSkgPT4ge1xuICAgIGNhbGxiYWNrKGVsZW1lbnQsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgKHBhc3NlZCkgPT4ge1xuICAgICAgaWYgKCFwYXNzZWQpIHtcbiAgICAgICAgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgICAgIGRvbmUoKTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIG5leHQoKTtcbiAgICB9KTtcbiAgfSwgKCkgPT4ge1xuICAgIGNvbnRpbnVhdGlvbihzdWNjZXNzKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBicmVha2FibGUoaW5uZXJGdW5jdGlvbikge1xuICByZXR1cm4gZnVuY3Rpb24oLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgY29uc3QgcmVtYWluaW5nQXJndW1lbnRzTGVuZ3RoID0gcmVtYWluaW5nQXJndW1lbnRzLmxlbmd0aCxcbiAgICAgICAgICBpbm5lckZ1bmN0aW9uTGVuZ3RoID0gaW5uZXJGdW5jdGlvbi5sZW5ndGgsXG4gICAgICAgICAgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpLFxuICAgICAgICAgIGNvbnRleHQgPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgICB0aGlzLmJyZWFrKGNvbnRleHQsICgpID0+IHtcbiAgICAgIGlmIChpbm5lckZ1bmN0aW9uTGVuZ3RoID09PSByZW1haW5pbmdBcmd1bWVudHNMZW5ndGgpIHtcbiAgICAgICAgaW5uZXJGdW5jdGlvbi5jYWxsKHRoaXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgY29udGV4dCwgY29udGludWF0aW9uKTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGlubmVyRnVuY3Rpb24uY2FsbCh0aGlzLCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIGNvbnRleHQpO1xuXG4gICAgICBjb250aW51YXRpb24ocmVzdWx0KTtcbiAgICB9KTtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuYnJlYWthYmxlKGlubmVyRnVuY3Rpb24pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGNvbnN0IGlubmVyRnVuY3Rpb25MZW5ndGggPSBpbm5lckZ1bmN0aW9uLmxlbmd0aCxcbiAgICAgICAgICByZW1haW5pbmdBcmd1bWVudHNMZW5ndGggPSByZW1haW5pbmdBcmd1bWVudHMubGVuZ3RoO1xuXG4gICAgaWYgKGlubmVyRnVuY3Rpb25MZW5ndGggPT09IHJlbWFpbmluZ0FyZ3VtZW50c0xlbmd0aCkge1xuICAgICAgaW5uZXJGdW5jdGlvbi5jYWxsKHRoaXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCksXG4gICAgICAgICAgcmVzdWx0ID0gaW5uZXJGdW5jdGlvbi5jYWxsKHRoaXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cyk7XG5cbiAgICBjb250aW51YXRpb24ocmVzdWx0KTtcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBzb21lLFxuICBldmVyeSxcbiAgbWF0Y2gsXG4gIHJlZHVjZSxcbiAgZm9yRWFjaCxcbiAgZXh0cmFjdCxcbiAgcmVzb2x2ZSxcbiAgZm9yd2FyZHNFdmVyeSxcbiAgYmFja3dhcmRzRXZlcnksXG4gIGJyZWFrYWJsZSxcbiAgdW5icmVha2FibGVcbn1cbiJdLCJuYW1lcyI6WyJiYWNrd2FyZHNFdmVyeSIsImJyZWFrYWJsZSIsImV2ZXJ5IiwiZXh0cmFjdCIsImZvckVhY2giLCJmb3J3YXJkc0V2ZXJ5IiwibWF0Y2giLCJyZWR1Y2UiLCJyZXNvbHZlIiwic29tZSIsInVuYnJlYWthYmxlIiwiZmlyc3QiLCJhcnJheUZpcnN0IiwiZmlsdGVyIiwiYXJyYXlGaWx0ZXIiLCJhcnJheVV0aWxpdGllcyIsImFzeW5jaHJvbm91c0ZvckVhY2giLCJmb3J3YXJkc0ZvckVhY2giLCJhc3luY2hyb25vdXNGb3J3YXJkc0ZvckVhY2giLCJiYWNrd2FyZHNGb3JFYWNoIiwiYXN5bmNocm9ub3VzQmFja3dhcmRzRm9yRWFjaCIsImFzeW5jaHJvbm91c1V0aWxpdGllcyIsImFycmF5IiwiY2FsbGJhY2siLCJyZW1haW5pbmdBcmd1bWVudHMiLCJzdWNjZXNzIiwiY29udGludWF0aW9uIiwicG9wIiwiZWxlbWVudCIsIm5leHQiLCJkb25lIiwicGFzc2VkIiwiYXJyYXlBIiwiYXJyYXlCIiwiYXJyYXlBTGVuZ3RoIiwibGVuZ3RoIiwiYXJyYXlCTGVuZ3RoIiwibWF0Y2hlcyIsImluZGV4IiwiZWxlbWVudEEiLCJlbGVtZW50QiIsImluaXRpYWxWYWx1ZSIsInZhbHVlIiwiY3VycmVudFZhbHVlIiwiZGVsZXRlZEVsZW1lbnQiLCJ1bmRlZmluZWQiLCJzdGFydCIsImRlbGV0ZUNvdW50IiwiZGVsZXRlZEVsZW1lbnRzIiwic3BsaWNlIiwiZmlyc3REZWxldGVkRWxlbWVudCIsIm5leHRQYXNzIiwiY291bnQiLCJuZXh0RWxlbWVudCIsInRlcm1pbmF0ZSIsImFycmF5QkluY2x1ZGVzRWxlbWVudEEiLCJpbmNsdWRlcyIsInB1c2giLCJpbm5lckZ1bmN0aW9uIiwicmVtYWluaW5nQXJndW1lbnRzTGVuZ3RoIiwiaW5uZXJGdW5jdGlvbkxlbmd0aCIsImNvbnRleHQiLCJicmVhayIsImNhbGwiLCJyZXN1bHQiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQWlPZ0JBO2VBQUFBOztRQXNCQUM7ZUFBQUE7O1FBdUNoQjtlQUFBOztRQS9QZ0JDO2VBQUFBOztRQTRFQUM7ZUFBQUE7O1FBVkFDO2VBQUFBOztRQTBHQUM7ZUFBQUE7O1FBdEpBQztlQUFBQTs7UUE0QkFDO2VBQUFBOztRQXFEQUM7ZUFBQUE7O1FBN0hBQztlQUFBQTs7UUFtUUFDO2VBQUFBOzs7MkJBMVFzQztBQUV0RCxNQUFNLEVBQUVDLE9BQU9DLFVBQVUsRUFBRUMsUUFBUUMsV0FBVyxFQUFFLEdBQUdDLHlCQUFjLEVBQzNELEVBQUVYLFNBQVNZLG1CQUFtQixFQUM1QkMsaUJBQWlCQywyQkFBMkIsRUFDNUNDLGtCQUFrQkMsNEJBQTRCLEVBQUUsR0FBR0MsZ0NBQXFCO0FBRXpFLFNBQVNaLEtBQUthLEtBQUssRUFBRUMsUUFBUSxFQUFFLEdBQUdDLGtCQUFrQjtJQUN6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
|
package/package.json
CHANGED
package/src/index.js
CHANGED
|
@@ -33,5 +33,4 @@ export { default as breakPointUtilities } from "./utilities/breakPoint";
|
|
|
33
33
|
export { default as fileContextUtilities } from "./utilities/fileContext";
|
|
34
34
|
export { default as continuationUtilities } from "./utilities/continuation";
|
|
35
35
|
export { default as verificationUtilities } from "./utilities/verification";
|
|
36
|
-
export { default as asynchronousUtilities } from "./utilities/asynchronous";
|
|
37
36
|
export { default as releaseContextUtilities } from "./utilities/releaseContext";
|
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { arrayUtilities } from "necessary";
|
|
4
|
-
|
|
5
|
-
const { first, filter } = arrayUtilities;
|
|
6
|
-
|
|
7
3
|
export async function asyncSome(array, callback) {
|
|
8
4
|
let result = false;
|
|
9
5
|
|
|
@@ -40,26 +36,6 @@ export async function asyncEvery(array, callback) {
|
|
|
40
36
|
return result;
|
|
41
37
|
}
|
|
42
38
|
|
|
43
|
-
export async function asyncMatch(arrayA, arrayB, callback) {
|
|
44
|
-
let matches = false;
|
|
45
|
-
|
|
46
|
-
const arrayALength = arrayA.length,
|
|
47
|
-
arrayBLength = arrayB.length;
|
|
48
|
-
|
|
49
|
-
if (arrayALength === arrayBLength) {
|
|
50
|
-
matches = await asyncBackwardsEvery(arrayA, async (elementA, index) => {
|
|
51
|
-
const elementB = arrayB[index],
|
|
52
|
-
passed = await callback(elementA, elementB, index);
|
|
53
|
-
|
|
54
|
-
if (passed) {
|
|
55
|
-
return true;
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
return matches;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
39
|
export async function asyncReduce(array, callback, initialValue) {
|
|
64
40
|
let value = initialValue; ///
|
|
65
41
|
|
|
@@ -74,27 +50,6 @@ export async function asyncReduce(array, callback, initialValue) {
|
|
|
74
50
|
return value;
|
|
75
51
|
}
|
|
76
52
|
|
|
77
|
-
export async function asyncExtract(array, callback) {
|
|
78
|
-
let deletedElement = undefined;
|
|
79
|
-
|
|
80
|
-
await asyncSome(array, async (element, index) => {
|
|
81
|
-
const passed = await callback(element, index);
|
|
82
|
-
|
|
83
|
-
if (passed) {
|
|
84
|
-
const start = index, ///
|
|
85
|
-
deleteCount = 1,
|
|
86
|
-
deletedElements = array.splice(start, deleteCount),
|
|
87
|
-
firstDeletedElement = first(deletedElements);
|
|
88
|
-
|
|
89
|
-
deletedElement = firstDeletedElement; ///
|
|
90
|
-
|
|
91
|
-
return true;
|
|
92
|
-
}
|
|
93
|
-
});
|
|
94
|
-
|
|
95
|
-
return deletedElement;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
53
|
export async function asyncForEach(array, callback) {
|
|
99
54
|
const length = array.length;
|
|
100
55
|
|
|
@@ -105,92 +60,3 @@ export async function asyncForEach(array, callback) {
|
|
|
105
60
|
}
|
|
106
61
|
}
|
|
107
62
|
|
|
108
|
-
export async function asyncResolve(arrayA, arrayB, callback) {
|
|
109
|
-
let resolved;
|
|
110
|
-
|
|
111
|
-
arrayA = [ ///
|
|
112
|
-
...arrayA
|
|
113
|
-
];
|
|
114
|
-
|
|
115
|
-
for (;;) {
|
|
116
|
-
const arrayALength = arrayA.length;
|
|
117
|
-
|
|
118
|
-
if (arrayALength === 0) {
|
|
119
|
-
break;
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
let resolved = false;
|
|
123
|
-
|
|
124
|
-
await asyncForEach(arrayA, async (elementA, index) => {
|
|
125
|
-
const passed = await callback(elementA, index, arrayA);
|
|
126
|
-
|
|
127
|
-
if (passed) {
|
|
128
|
-
const elementB = elementA; ///
|
|
129
|
-
|
|
130
|
-
arrayB.push(elementB);
|
|
131
|
-
|
|
132
|
-
resolved = true;
|
|
133
|
-
}
|
|
134
|
-
});
|
|
135
|
-
|
|
136
|
-
if (!resolved) {
|
|
137
|
-
break;
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
filter(arrayA, (elementA) => {
|
|
141
|
-
const arrayBIncludesElementA = arrayB.includes(elementA);
|
|
142
|
-
|
|
143
|
-
if (!arrayBIncludesElementA) {
|
|
144
|
-
return true;
|
|
145
|
-
}
|
|
146
|
-
});
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
const arrayALength = arrayA.length;
|
|
150
|
-
|
|
151
|
-
resolved = (arrayALength === 0);
|
|
152
|
-
|
|
153
|
-
return resolved;
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
export async function asyncForwardsEvery(array, callback) {
|
|
157
|
-
const length = array.length;
|
|
158
|
-
|
|
159
|
-
for (let index = 0; index < length; index++) {
|
|
160
|
-
const element = array[index],
|
|
161
|
-
passed = await callback(element, index, array);
|
|
162
|
-
|
|
163
|
-
if (!passed) {
|
|
164
|
-
return false;
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
return true;
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
export async function asyncBackwardsEvery(array, callback) {
|
|
172
|
-
const length = array.length;
|
|
173
|
-
|
|
174
|
-
for (let index = length - 1; index >= 0; index--) {
|
|
175
|
-
const element = array[index],
|
|
176
|
-
passed = await callback(element, index, array);
|
|
177
|
-
|
|
178
|
-
if (!passed) {
|
|
179
|
-
return false;
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
return true;
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
export default {
|
|
187
|
-
asyncSome,
|
|
188
|
-
asyncEvery,
|
|
189
|
-
asyncMatch,
|
|
190
|
-
asyncReduce,
|
|
191
|
-
asyncForEach,
|
|
192
|
-
asyncExtract,
|
|
193
|
-
asyncResolve,
|
|
194
|
-
asyncForwardsEvery,
|
|
195
|
-
asyncBackwardsEvery
|
|
196
|
-
};
|
|
@@ -2,8 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
import { arrayUtilities, asynchronousUtilities } from "necessary";
|
|
4
4
|
|
|
5
|
-
const { filter: arrayFilter } = arrayUtilities,
|
|
6
|
-
{ forEach: asynchronousForEach
|
|
5
|
+
const { first: arrayFirst, filter: arrayFilter } = arrayUtilities,
|
|
6
|
+
{ forEach: asynchronousForEach,
|
|
7
|
+
forwardsForEach: asynchronousForwardsForEach,
|
|
8
|
+
backwardsForEach: asynchronousBackwardsForEach } = asynchronousUtilities;
|
|
7
9
|
|
|
8
10
|
export function some(array, callback, ...remainingArguments) {
|
|
9
11
|
let success = false;
|
|
@@ -49,6 +51,34 @@ export function every(array, callback, ...remainingArguments) {
|
|
|
49
51
|
});
|
|
50
52
|
}
|
|
51
53
|
|
|
54
|
+
export function match(arrayA, arrayB, callback, ...remainingArguments) {
|
|
55
|
+
const continuation = remainingArguments.pop(),
|
|
56
|
+
arrayALength = arrayA.length,
|
|
57
|
+
arrayBLength = arrayB.length;
|
|
58
|
+
|
|
59
|
+
if (arrayALength !== arrayBLength) {
|
|
60
|
+
const matches = false;
|
|
61
|
+
|
|
62
|
+
continuation(matches);
|
|
63
|
+
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
let index = -1;
|
|
68
|
+
|
|
69
|
+
every(arrayA, (elementA, continuation) => {
|
|
70
|
+
index++;
|
|
71
|
+
|
|
72
|
+
const elementB = arrayB[index];
|
|
73
|
+
|
|
74
|
+
callback(elementA, elementB, ...remainingArguments, continuation);
|
|
75
|
+
}, (success) => {
|
|
76
|
+
const matches = success; ///
|
|
77
|
+
|
|
78
|
+
continuation(matches);
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
|
|
52
82
|
export function reduce(array, initialValue, callback, ...remainingArguments) {
|
|
53
83
|
let value = initialValue; ///
|
|
54
84
|
|
|
@@ -75,6 +105,33 @@ export function forEach(array, callback, ...remainingArguments) {
|
|
|
75
105
|
}, continuation);
|
|
76
106
|
}
|
|
77
107
|
|
|
108
|
+
export function extract(array, callback, ...remainingArguments) {
|
|
109
|
+
let deletedElement = undefined; ///
|
|
110
|
+
|
|
111
|
+
const continuation = remainingArguments.pop();
|
|
112
|
+
|
|
113
|
+
let index = -1;
|
|
114
|
+
|
|
115
|
+
some(array, (element, continuation) => {
|
|
116
|
+
index++;
|
|
117
|
+
|
|
118
|
+
callback(element, ...remainingArguments, (passed) => {
|
|
119
|
+
if (passed) {
|
|
120
|
+
const start = index, ///
|
|
121
|
+
deleteCount = 1,
|
|
122
|
+
deletedElements = array.splice(start, deleteCount),
|
|
123
|
+
firstDeletedElement = arrayFirst(deletedElements);
|
|
124
|
+
|
|
125
|
+
deletedElement = firstDeletedElement; ///
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
continuation(passed);
|
|
129
|
+
});
|
|
130
|
+
}, () => {
|
|
131
|
+
continuation(deletedElement);
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
|
|
78
135
|
export function resolve(arrayA, arrayB, callback, ...remainingArguments) {
|
|
79
136
|
arrayA = [ ///
|
|
80
137
|
...arrayA
|
|
@@ -144,6 +201,50 @@ export function resolve(arrayA, arrayB, callback, ...remainingArguments) {
|
|
|
144
201
|
nextPass();
|
|
145
202
|
}
|
|
146
203
|
|
|
204
|
+
export function forwardsEvery(array, callback, ...remainingArguments) {
|
|
205
|
+
let success = true;
|
|
206
|
+
|
|
207
|
+
const continuation = remainingArguments.pop();
|
|
208
|
+
|
|
209
|
+
asynchronousForwardsForEach(array, (element, next, done) => {
|
|
210
|
+
callback(element, ...remainingArguments, (passed) => {
|
|
211
|
+
if (!passed) {
|
|
212
|
+
success = false;
|
|
213
|
+
|
|
214
|
+
done();
|
|
215
|
+
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
next();
|
|
220
|
+
});
|
|
221
|
+
}, () => {
|
|
222
|
+
continuation(success);
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
export function backwardsEvery(array, callback, ...remainingArguments) {
|
|
227
|
+
let success = true;
|
|
228
|
+
|
|
229
|
+
const continuation = remainingArguments.pop();
|
|
230
|
+
|
|
231
|
+
asynchronousBackwardsForEach(array, (element, next, done) => {
|
|
232
|
+
callback(element, ...remainingArguments, (passed) => {
|
|
233
|
+
if (!passed) {
|
|
234
|
+
success = false;
|
|
235
|
+
|
|
236
|
+
done();
|
|
237
|
+
|
|
238
|
+
return;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
next();
|
|
242
|
+
});
|
|
243
|
+
}, () => {
|
|
244
|
+
continuation(success);
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
|
|
147
248
|
export function breakable(innerFunction) {
|
|
148
249
|
return function(...remainingArguments) {
|
|
149
250
|
const remainingArgumentsLength = remainingArguments.length,
|
|
@@ -186,9 +287,13 @@ export function unbreakable(innerFunction) {
|
|
|
186
287
|
export default {
|
|
187
288
|
some,
|
|
188
289
|
every,
|
|
290
|
+
match,
|
|
189
291
|
reduce,
|
|
190
292
|
forEach,
|
|
293
|
+
extract,
|
|
191
294
|
resolve,
|
|
295
|
+
forwardsEvery,
|
|
296
|
+
backwardsEvery,
|
|
192
297
|
breakable,
|
|
193
298
|
unbreakable
|
|
194
299
|
}
|