occam-languages 1.0.39 → 1.0.41

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.
@@ -47,20 +47,16 @@ function breakPointToBreakPointJSON(breakPoint) {
47
47
  }
48
48
  function lineIndexFromNodeAndTokens(node, tokens) {
49
49
  let lineIndex = 0;
50
- // const firstSignificantTokenIndex = node.getFirstSignificantTokenIndex(tokens);
51
- //
52
- // tokens.some((token, tokenIndex) => {
53
- // const tokenEndOfLineToken = token.isEndOfLineToken();
54
- //
55
- // if (tokenEndOfLineToken) {
56
- // lineIndex += 1;
57
- // }
58
- //
59
- // if (tokenIndex === firstSignificantTokenIndex) {
60
- // return true;
61
- // }
62
- // });
63
- lineIndex = 123;
50
+ const firstSignificantTokenIndex = node.getFirstSignificantTokenIndex(tokens);
51
+ tokens.some((token, tokenIndex)=>{
52
+ const tokenEndOfLineToken = token.isEndOfLineToken();
53
+ if (tokenEndOfLineToken) {
54
+ lineIndex += 1;
55
+ }
56
+ if (tokenIndex === firstSignificantTokenIndex) {
57
+ return true;
58
+ }
59
+ });
64
60
  return lineIndex;
65
61
  }
66
62
  const _default = {
@@ -69,4 +65,4 @@ const _default = {
69
65
  lineIndexFromNodeAndTokens
70
66
  };
71
67
 
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvYnJlYWtQb2ludC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IEJyZWFrUG9pbnQgZnJvbSBcIi4uL2JyZWFrUG9pbnRcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGJyZWFrUG9pbnRGcm9tSlNPTihqc29uKSB7XG4gIGxldCBicmVha1BvaW50O1xuXG4gICh7IGJyZWFrUG9pbnQgfSA9IGpzb24pO1xuXG4gIGlmIChicmVha1BvaW50ICE9PSBudWxsKSB7XG4gICAgY29uc3QgYnJlYWtQb2ludEpTT04gPSBicmVha1BvaW50OyAgLy8vXG5cbiAgICBqc29uID0gYnJlYWtQb2ludEpTT047ICAvLy9cblxuICAgIGJyZWFrUG9pbnQgPSBCcmVha1BvaW50LmZyb21KU09OKGpzb24pOyAgLy8vXG4gIH1cblxuICByZXR1cm4gYnJlYWtQb2ludDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OKGJyZWFrUG9pbnQpIHtcbiAgbGV0IGJyZWFrUG9pbnRKU09OID0gbnVsbDtcblxuICBpZiAoYnJlYWtQb2ludCAhPT0gbnVsbCkge1xuICAgIGJyZWFrUG9pbnRKU09OID0gYnJlYWtQb2ludC50b0pTT04oKTtcbiAgfVxuXG4gIHJldHVybiBicmVha1BvaW50SlNPTjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxpbmVJbmRleEZyb21Ob2RlQW5kVG9rZW5zKG5vZGUsIHRva2Vucykge1xuICBsZXQgbGluZUluZGV4ID0gMDtcblxuICAvLyBjb25zdCBmaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCA9IG5vZGUuZ2V0Rmlyc3RTaWduaWZpY2FudFRva2VuSW5kZXgodG9rZW5zKTtcbiAgLy9cbiAgLy8gdG9rZW5zLnNvbWUoKHRva2VuLCB0b2tlbkluZGV4KSA9PiB7XG4gIC8vICAgY29uc3QgdG9rZW5FbmRPZkxpbmVUb2tlbiA9IHRva2VuLmlzRW5kT2ZMaW5lVG9rZW4oKTtcbiAgLy9cbiAgLy8gICBpZiAodG9rZW5FbmRPZkxpbmVUb2tlbikge1xuICAvLyAgICAgbGluZUluZGV4ICs9IDE7XG4gIC8vICAgfVxuICAvL1xuICAvLyAgIGlmICh0b2tlbkluZGV4ID09PSBmaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCkge1xuICAvLyAgICAgcmV0dXJuIHRydWU7XG4gIC8vICAgfVxuICAvLyB9KTtcblxuICBsaW5lSW5kZXggPSAxMjM7XG5cbiAgcmV0dXJuIGxpbmVJbmRleDtcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBicmVha1BvaW50RnJvbUpTT04sXG4gIGJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OLFxuICBsaW5lSW5kZXhGcm9tTm9kZUFuZFRva2Vuc1xufTtcbiJdLCJuYW1lcyI6WyJicmVha1BvaW50RnJvbUpTT04iLCJicmVha1BvaW50VG9CcmVha1BvaW50SlNPTiIsImxpbmVJbmRleEZyb21Ob2RlQW5kVG9rZW5zIiwianNvbiIsImJyZWFrUG9pbnQiLCJicmVha1BvaW50SlNPTiIsIkJyZWFrUG9pbnQiLCJmcm9tSlNPTiIsInRvSlNPTiIsIm5vZGUiLCJ0b2tlbnMiLCJsaW5lSW5kZXgiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQUlnQkE7ZUFBQUE7O1FBZ0JBQztlQUFBQTs7UUFnQ2hCO2VBQUE7O1FBdEJnQkM7ZUFBQUE7OzttRUE1Qk87Ozs7OztBQUVoQixTQUFTRixtQkFBbUJHLElBQUk7SUFDckMsSUFBSUM7SUFFSCxDQUFBLEVBQUVBLFVBQVUsRUFBRSxHQUFHRCxJQUFHO0lBRXJCLElBQUlDLGVBQWUsTUFBTTtRQUN2QixNQUFNQyxpQkFBaUJELFlBQWEsR0FBRztRQUV2Q0QsT0FBT0UsZ0JBQWlCLEdBQUc7UUFFM0JELGFBQWFFLG1CQUFVLENBQUNDLFFBQVEsQ0FBQ0osT0FBUSxHQUFHO0lBQzlDO0lBRUEsT0FBT0M7QUFDVDtBQUVPLFNBQVNILDJCQUEyQkcsVUFBVTtJQUNuRCxJQUFJQyxpQkFBaUI7SUFFckIsSUFBSUQsZUFBZSxNQUFNO1FBQ3ZCQyxpQkFBaUJELFdBQVdJLE1BQU07SUFDcEM7SUFFQSxPQUFPSDtBQUNUO0FBRU8sU0FBU0gsMkJBQTJCTyxJQUFJLEVBQUVDLE1BQU07SUFDckQsSUFBSUMsWUFBWTtJQUVoQixpRkFBaUY7SUFDakYsRUFBRTtJQUNGLHVDQUF1QztJQUN2QywwREFBMEQ7SUFDMUQsRUFBRTtJQUNGLCtCQUErQjtJQUMvQixzQkFBc0I7SUFDdEIsTUFBTTtJQUNOLEVBQUU7SUFDRixxREFBcUQ7SUFDckQsbUJBQW1CO0lBQ25CLE1BQU07SUFDTixNQUFNO0lBRU5BLFlBQVk7SUFFWixPQUFPQTtBQUNUO01BRUEsV0FBZTtJQUNiWDtJQUNBQztJQUNBQztBQUNGIn0=
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvYnJlYWtQb2ludC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IEJyZWFrUG9pbnQgZnJvbSBcIi4uL2JyZWFrUG9pbnRcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGJyZWFrUG9pbnRGcm9tSlNPTihqc29uKSB7XG4gIGxldCBicmVha1BvaW50O1xuXG4gICh7IGJyZWFrUG9pbnQgfSA9IGpzb24pO1xuXG4gIGlmIChicmVha1BvaW50ICE9PSBudWxsKSB7XG4gICAgY29uc3QgYnJlYWtQb2ludEpTT04gPSBicmVha1BvaW50OyAgLy8vXG5cbiAgICBqc29uID0gYnJlYWtQb2ludEpTT047ICAvLy9cblxuICAgIGJyZWFrUG9pbnQgPSBCcmVha1BvaW50LmZyb21KU09OKGpzb24pOyAgLy8vXG4gIH1cblxuICByZXR1cm4gYnJlYWtQb2ludDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OKGJyZWFrUG9pbnQpIHtcbiAgbGV0IGJyZWFrUG9pbnRKU09OID0gbnVsbDtcblxuICBpZiAoYnJlYWtQb2ludCAhPT0gbnVsbCkge1xuICAgIGJyZWFrUG9pbnRKU09OID0gYnJlYWtQb2ludC50b0pTT04oKTtcbiAgfVxuXG4gIHJldHVybiBicmVha1BvaW50SlNPTjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxpbmVJbmRleEZyb21Ob2RlQW5kVG9rZW5zKG5vZGUsIHRva2Vucykge1xuICBsZXQgbGluZUluZGV4ID0gMDtcblxuICBjb25zdCBmaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCA9IG5vZGUuZ2V0Rmlyc3RTaWduaWZpY2FudFRva2VuSW5kZXgodG9rZW5zKTtcblxuICB0b2tlbnMuc29tZSgodG9rZW4sIHRva2VuSW5kZXgpID0+IHtcbiAgICBjb25zdCB0b2tlbkVuZE9mTGluZVRva2VuID0gdG9rZW4uaXNFbmRPZkxpbmVUb2tlbigpO1xuXG4gICAgaWYgKHRva2VuRW5kT2ZMaW5lVG9rZW4pIHtcbiAgICAgIGxpbmVJbmRleCArPSAxO1xuICAgIH1cblxuICAgIGlmICh0b2tlbkluZGV4ID09PSBmaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gbGluZUluZGV4O1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGJyZWFrUG9pbnRGcm9tSlNPTixcbiAgYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04sXG4gIGxpbmVJbmRleEZyb21Ob2RlQW5kVG9rZW5zXG59O1xuIl0sIm5hbWVzIjpbImJyZWFrUG9pbnRGcm9tSlNPTiIsImJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OIiwibGluZUluZGV4RnJvbU5vZGVBbmRUb2tlbnMiLCJqc29uIiwiYnJlYWtQb2ludCIsImJyZWFrUG9pbnRKU09OIiwiQnJlYWtQb2ludCIsImZyb21KU09OIiwidG9KU09OIiwibm9kZSIsInRva2VucyIsImxpbmVJbmRleCIsImZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4IiwiZ2V0Rmlyc3RTaWduaWZpY2FudFRva2VuSW5kZXgiLCJzb21lIiwidG9rZW4iLCJ0b2tlbkluZGV4IiwidG9rZW5FbmRPZkxpbmVUb2tlbiIsImlzRW5kT2ZMaW5lVG9rZW4iXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQUlnQkE7ZUFBQUE7O1FBZ0JBQztlQUFBQTs7UUE4QmhCO2VBQUE7O1FBcEJnQkM7ZUFBQUE7OzttRUE1Qk87Ozs7OztBQUVoQixTQUFTRixtQkFBbUJHLElBQUk7SUFDckMsSUFBSUM7SUFFSCxDQUFBLEVBQUVBLFVBQVUsRUFBRSxHQUFHRCxJQUFHO0lBRXJCLElBQUlDLGVBQWUsTUFBTTtRQUN2QixNQUFNQyxpQkFBaUJELFlBQWEsR0FBRztRQUV2Q0QsT0FBT0UsZ0JBQWlCLEdBQUc7UUFFM0JELGFBQWFFLG1CQUFVLENBQUNDLFFBQVEsQ0FBQ0osT0FBUSxHQUFHO0lBQzlDO0lBRUEsT0FBT0M7QUFDVDtBQUVPLFNBQVNILDJCQUEyQkcsVUFBVTtJQUNuRCxJQUFJQyxpQkFBaUI7SUFFckIsSUFBSUQsZUFBZSxNQUFNO1FBQ3ZCQyxpQkFBaUJELFdBQVdJLE1BQU07SUFDcEM7SUFFQSxPQUFPSDtBQUNUO0FBRU8sU0FBU0gsMkJBQTJCTyxJQUFJLEVBQUVDLE1BQU07SUFDckQsSUFBSUMsWUFBWTtJQUVoQixNQUFNQyw2QkFBNkJILEtBQUtJLDZCQUE2QixDQUFDSDtJQUV0RUEsT0FBT0ksSUFBSSxDQUFDLENBQUNDLE9BQU9DO1FBQ2xCLE1BQU1DLHNCQUFzQkYsTUFBTUcsZ0JBQWdCO1FBRWxELElBQUlELHFCQUFxQjtZQUN2Qk4sYUFBYTtRQUNmO1FBRUEsSUFBSUssZUFBZUosNEJBQTRCO1lBQzdDLE9BQU87UUFDVDtJQUNGO0lBRUEsT0FBT0Q7QUFDVDtNQUVBLFdBQWU7SUFDYlg7SUFDQUM7SUFDQUM7QUFDRiJ9
@@ -18,6 +18,9 @@ _export(exports, {
18
18
  get every () {
19
19
  return every;
20
20
  },
21
+ get forEach () {
22
+ return forEach;
23
+ },
21
24
  get resolve () {
22
25
  return resolve;
23
26
  },
@@ -29,11 +32,11 @@ _export(exports, {
29
32
  }
30
33
  });
31
34
  const _necessary = require("necessary");
32
- const { filter } = _necessary.arrayUtilities, { forEach } = _necessary.asynchronousUtilities;
35
+ const { filter: arrayFilter } = _necessary.arrayUtilities, { forEach: asynchronousForEach } = _necessary.asynchronousUtilities;
33
36
  function some(array, callback, ...remainingArguments) {
34
37
  let success = false;
35
38
  const continuation = remainingArguments.pop();
36
- forEach(array, (element, next, done)=>{
39
+ asynchronousForEach(array, (element, next, done)=>{
37
40
  callback(element, ...remainingArguments, (passed)=>{
38
41
  if (passed) {
39
42
  success = true;
@@ -49,7 +52,7 @@ function some(array, callback, ...remainingArguments) {
49
52
  function every(array, callback, ...remainingArguments) {
50
53
  let success = true;
51
54
  const continuation = remainingArguments.pop();
52
- forEach(array, (element, next, done)=>{
55
+ asynchronousForEach(array, (element, next, done)=>{
53
56
  callback(element, ...remainingArguments, (passed)=>{
54
57
  if (!passed) {
55
58
  success = false;
@@ -62,6 +65,12 @@ function every(array, callback, ...remainingArguments) {
62
65
  continuation(success);
63
66
  });
64
67
  }
68
+ function forEach(array, callback, ...remainingArguments) {
69
+ const continuation = remainingArguments.pop();
70
+ asynchronousForEach(array, (element, next, done)=>{
71
+ callback(element, ...remainingArguments, next);
72
+ }, continuation);
73
+ }
65
74
  function resolve(arrayA, arrayB, callback, ...remainingArguments) {
66
75
  arrayA = [
67
76
  ...arrayA
@@ -85,7 +94,7 @@ function resolve(arrayA, arrayB, callback, ...remainingArguments) {
85
94
  continuation(success);
86
95
  return;
87
96
  }
88
- filter(arrayA, (elementA)=>{
97
+ arrayFilter(arrayA, (elementA)=>{
89
98
  const arrayBIncludesElementA = arrayB.includes(elementA);
90
99
  if (!arrayBIncludesElementA) {
91
100
  return true;
@@ -135,9 +144,10 @@ function unbreakable(innerFunction) {
135
144
  const _default = {
136
145
  some,
137
146
  every,
147
+ forEach,
138
148
  resolve,
139
149
  breakable,
140
150
  unbreakable
141
151
  };
142
152
 
143
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29udGludWF0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcywgYXN5bmNocm9ub3VzVXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5jb25zdCB7IGZpbHRlciB9ID0gYXJyYXlVdGlsaXRpZXMsXG4gICAgICB7IGZvckVhY2ggfSA9IGFzeW5jaHJvbm91c1V0aWxpdGllcztcblxuZXhwb3J0IGZ1bmN0aW9uIHNvbWUoYXJyYXksIGNhbGxiYWNrLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgbGV0IHN1Y2Nlc3MgPSBmYWxzZTtcblxuICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgZm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICBjYWxsYmFjayhlbGVtZW50LCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIChwYXNzZWQpID0+IHtcbiAgICAgIGlmIChwYXNzZWQpIHtcbiAgICAgICAgc3VjY2VzcyA9IHRydWU7XG5cbiAgICAgICAgZG9uZSgpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbmV4dCgpO1xuICAgIH0pO1xuICB9LCAoKSA9PiB7XG4gICAgY29udGludWF0aW9uKHN1Y2Nlc3MpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV2ZXJ5KGFycmF5LCBjYWxsYmFjaywgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gIGxldCBzdWNjZXNzID0gdHJ1ZTtcblxuICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgZm9yRWFjaChhcnJheSwgKGVsZW1lbnQsIG5leHQsIGRvbmUpID0+IHtcbiAgICBjYWxsYmFjayhlbGVtZW50LCAuLi5yZW1haW5pbmdBcmd1bWVudHMsIChwYXNzZWQpID0+IHtcbiAgICAgIGlmICghcGFzc2VkKSB7XG4gICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTtcblxuICAgICAgICBkb25lKCk7XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBuZXh0KCk7XG4gICAgfSk7XG4gIH0sICgpID0+IHtcbiAgICBjb250aW51YXRpb24oc3VjY2Vzcyk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZShhcnJheUEsIGFycmF5QiwgY2FsbGJhY2ssIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICBhcnJheUEgPSBbICAvLy9cbiAgICAuLi5hcnJheUFcbiAgXTtcblxuICBjb25zdCBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCk7XG5cbiAgZnVuY3Rpb24gbmV4dFBhc3MoKSB7XG4gICAgY29uc3QgYXJyYXlBTGVuZ3RoID0gYXJyYXlBLmxlbmd0aDtcblxuICAgIGlmIChhcnJheUFMZW5ndGggPT09IDApIHtcbiAgICAgIGNvbnN0IHN1Y2Nlc3MgPSB0cnVlOyAgLy8vXG5cbiAgICAgIGNvbnRpbnVhdGlvbihzdWNjZXNzKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICBsZXQgY291bnQgPSAtMTtcblxuICAgIGZ1bmN0aW9uIG5leHRFbGVtZW50KCkge1xuICAgICAgY291bnQrKztcblxuICAgICAgY29uc3QgdGVybWluYXRlID0gKGNvdW50ID09PSBhcnJheUFMZW5ndGgpO1xuXG4gICAgICBpZiAodGVybWluYXRlKSB7XG4gICAgICAgIGlmICghc3VjY2Vzcykge1xuICAgICAgICAgIGNvbnN0IHN1Y2Nlc3MgPSBmYWxzZTsgLy8vXG5cbiAgICAgICAgICBjb250aW51YXRpb24oc3VjY2Vzcyk7XG5cbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBmaWx0ZXIoYXJyYXlBLCAoZWxlbWVudEEpID0+IHtcbiAgICAgICAgICBjb25zdCBhcnJheUJJbmNsdWRlc0VsZW1lbnRBID0gYXJyYXlCLmluY2x1ZGVzKGVsZW1lbnRBKTtcblxuICAgICAgICAgIGlmICghYXJyYXlCSW5jbHVkZXNFbGVtZW50QSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBuZXh0UGFzcygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSBjb3VudCwgIC8vL1xuICAgICAgICAgICAgICBlbGVtZW50QSA9IGFycmF5QVtpbmRleF07XG5cbiAgICAgICAgY2FsbGJhY2soZWxlbWVudEEsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgKHBhc3NlZCkgPT4ge1xuICAgICAgICAgIGlmIChwYXNzZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRCID0gZWxlbWVudEE7ICAvLy9cblxuICAgICAgICAgICAgYXJyYXlCLnB1c2goZWxlbWVudEIpO1xuXG4gICAgICAgICAgICBzdWNjZXNzID0gdHJ1ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBuZXh0RWxlbWVudCgpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBuZXh0RWxlbWVudCgpO1xuICB9XG5cbiAgbmV4dFBhc3MoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJyZWFrYWJsZShpbm5lckZ1bmN0aW9uKSB7XG4gIHJldHVybiBmdW5jdGlvbiguLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCByZW1haW5pbmdBcmd1bWVudHNMZW5ndGggPSByZW1haW5pbmdBcmd1bWVudHMubGVuZ3RoLFxuICAgICAgICAgIGlubmVyRnVuY3Rpb25MZW5ndGggPSBpbm5lckZ1bmN0aW9uLmxlbmd0aCxcbiAgICAgICAgICBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCksXG4gICAgICAgICAgY29udGV4dCA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKTtcblxuICAgIHRoaXMuYnJlYWsoY29udGV4dCwgKCkgPT4ge1xuICAgICAgaWYgKGlubmVyRnVuY3Rpb25MZW5ndGggPT09IHJlbWFpbmluZ0FyZ3VtZW50c0xlbmd0aCkge1xuICAgICAgICBpbm5lckZ1bmN0aW9uLmNhbGwodGhpcywgLi4ucmVtYWluaW5nQXJndW1lbnRzLCBjb250ZXh0LCBjb250aW51YXRpb24pO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVzdWx0ID0gaW5uZXJGdW5jdGlvbi5jYWxsKHRoaXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgY29udGV4dCk7XG5cbiAgICAgIGNvbnRpbnVhdGlvbihyZXN1bHQpO1xuICAgIH0pO1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5icmVha2FibGUoaW5uZXJGdW5jdGlvbikge1xuICByZXR1cm4gZnVuY3Rpb24oLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgY29uc3QgaW5uZXJGdW5jdGlvbkxlbmd0aCA9IGlubmVyRnVuY3Rpb24ubGVuZ3RoLFxuICAgICAgICAgIHJlbWFpbmluZ0FyZ3VtZW50c0xlbmd0aCA9IHJlbWFpbmluZ0FyZ3VtZW50cy5sZW5ndGg7XG5cbiAgICBpZiAoaW5uZXJGdW5jdGlvbkxlbmd0aCA9PT0gcmVtYWluaW5nQXJndW1lbnRzTGVuZ3RoKSB7XG4gICAgICBpbm5lckZ1bmN0aW9uLmNhbGwodGhpcywgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgICByZXN1bHQgPSBpbm5lckZ1bmN0aW9uLmNhbGwodGhpcywgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgIGNvbnRpbnVhdGlvbihyZXN1bHQpO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHNvbWUsXG4gIGV2ZXJ5LFxuICByZXNvbHZlLFxuICBicmVha2FibGUsXG4gIHVuYnJlYWthYmxlXG59XG4iXSwibmFtZXMiOlsiYnJlYWthYmxlIiwiZXZlcnkiLCJyZXNvbHZlIiwic29tZSIsInVuYnJlYWthYmxlIiwiZmlsdGVyIiwiYXJyYXlVdGlsaXRpZXMiLCJmb3JFYWNoIiwiYXN5bmNocm9ub3VzVXRpbGl0aWVzIiwiYXJyYXkiLCJjYWxsYmFjayIsInJlbWFpbmluZ0FyZ3VtZW50cyIsInN1Y2Nlc3MiLCJjb250aW51YXRpb24iLCJwb3AiLCJlbGVtZW50IiwibmV4dCIsImRvbmUiLCJwYXNzZWQiLCJhcnJheUEiLCJhcnJheUIiLCJuZXh0UGFzcyIsImFycmF5QUxlbmd0aCIsImxlbmd0aCIsImNvdW50IiwibmV4dEVsZW1lbnQiLCJ0ZXJtaW5hdGUiLCJlbGVtZW50QSIsImFycmF5QkluY2x1ZGVzRWxlbWVudEEiLCJpbmNsdWRlcyIsImluZGV4IiwiZWxlbWVudEIiLCJwdXNoIiwiaW5uZXJGdW5jdGlvbiIsInJlbWFpbmluZ0FyZ3VtZW50c0xlbmd0aCIsImlubmVyRnVuY3Rpb25MZW5ndGgiLCJjb250ZXh0IiwiYnJlYWsiLCJjYWxsIiwicmVzdWx0Il0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUF3SGdCQTtlQUFBQTs7UUF1Q2hCO2VBQUE7O1FBbElnQkM7ZUFBQUE7O1FBc0JBQztlQUFBQTs7UUE1Q0FDO2VBQUFBOztRQXNJQUM7ZUFBQUE7OzsyQkEzSXNDO0FBRXRELE1BQU0sRUFBRUMsTUFBTSxFQUFFLEdBQUdDLHlCQUFjLEVBQzNCLEVBQUVDLE9BQU8sRUFBRSxHQUFHQyxnQ0FBcUI7QUFFbEMsU0FBU0wsS0FBS00sS0FBSyxFQUFFQyxRQUFRLEVBQUUsR0FBR0Msa0JBQWtCO0lBQ3pELElBQUlDLFVBQVU7SUFFZCxNQUFNQyxlQUFlRixtQkFBbUJHLEdBQUc7SUFFM0NQLFFBQVFFLE9BQU8sQ0FBQ00sU0FBU0MsTUFBTUM7UUFDN0JQLFNBQVNLLFlBQVlKLG9CQUFvQixD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
153
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29udGludWF0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcywgYXN5bmNocm9ub3VzVXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5jb25zdCB7IGZpbHRlcjogYXJyYXlGaWx0ZXIgfSA9IGFycmF5VXRpbGl0aWVzLFxuICAgICAgeyBmb3JFYWNoOiBhc3luY2hyb25vdXNGb3JFYWNoIH0gPSBhc3luY2hyb25vdXNVdGlsaXRpZXM7XG5cbmV4cG9ydCBmdW5jdGlvbiBzb21lKGFycmF5LCBjYWxsYmFjaywgLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gIGxldCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpO1xuXG4gIGFzeW5jaHJvbm91c0ZvckVhY2goYXJyYXksIChlbGVtZW50LCBuZXh0LCBkb25lKSA9PiB7XG4gICAgY2FsbGJhY2soZWxlbWVudCwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCAocGFzc2VkKSA9PiB7XG4gICAgICBpZiAocGFzc2VkKSB7XG4gICAgICAgIHN1Y2Nlc3MgPSB0cnVlO1xuXG4gICAgICAgIGRvbmUoKTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIG5leHQoKTtcbiAgICB9KTtcbiAgfSwgKCkgPT4ge1xuICAgIGNvbnRpbnVhdGlvbihzdWNjZXNzKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBldmVyeShhcnJheSwgY2FsbGJhY2ssIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICBsZXQgc3VjY2VzcyA9IHRydWU7XG5cbiAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpO1xuXG4gIGFzeW5jaHJvbm91c0ZvckVhY2goYXJyYXksIChlbGVtZW50LCBuZXh0LCBkb25lKSA9PiB7XG4gICAgY2FsbGJhY2soZWxlbWVudCwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCAocGFzc2VkKSA9PiB7XG4gICAgICBpZiAoIXBhc3NlZCkge1xuICAgICAgICBzdWNjZXNzID0gZmFsc2U7XG5cbiAgICAgICAgZG9uZSgpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgbmV4dCgpO1xuICAgIH0pO1xuICB9LCAoKSA9PiB7XG4gICAgY29udGludWF0aW9uKHN1Y2Nlc3MpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvckVhY2goYXJyYXksIGNhbGxiYWNrLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpO1xuXG4gIGFzeW5jaHJvbm91c0ZvckVhY2goYXJyYXksIChlbGVtZW50LCBuZXh0LCBkb25lKSA9PiB7XG4gICAgY2FsbGJhY2soZWxlbWVudCwgLi4ucmVtYWluaW5nQXJndW1lbnRzLCBuZXh0KTtcbiAgfSwgY29udGludWF0aW9uKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmUoYXJyYXlBLCBhcnJheUIsIGNhbGxiYWNrLCAuLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgYXJyYXlBID0gWyAgLy8vXG4gICAgLi4uYXJyYXlBXG4gIF07XG5cbiAgY29uc3QgY29udGludWF0aW9uID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpO1xuXG4gIGZ1bmN0aW9uIG5leHRQYXNzKCkge1xuICAgIGNvbnN0IGFycmF5QUxlbmd0aCA9IGFycmF5QS5sZW5ndGg7XG5cbiAgICBpZiAoYXJyYXlBTGVuZ3RoID09PSAwKSB7XG4gICAgICBjb25zdCBzdWNjZXNzID0gdHJ1ZTsgIC8vL1xuXG4gICAgICBjb250aW51YXRpb24oc3VjY2Vzcyk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgc3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgbGV0IGNvdW50ID0gLTE7XG5cbiAgICBmdW5jdGlvbiBuZXh0RWxlbWVudCgpIHtcbiAgICAgIGNvdW50Kys7XG5cbiAgICAgIGNvbnN0IHRlcm1pbmF0ZSA9IChjb3VudCA9PT0gYXJyYXlBTGVuZ3RoKTtcblxuICAgICAgaWYgKHRlcm1pbmF0ZSkge1xuICAgICAgICBpZiAoIXN1Y2Nlc3MpIHtcbiAgICAgICAgICBjb25zdCBzdWNjZXNzID0gZmFsc2U7IC8vL1xuXG4gICAgICAgICAgY29udGludWF0aW9uKHN1Y2Nlc3MpO1xuXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgYXJyYXlGaWx0ZXIoYXJyYXlBLCAoZWxlbWVudEEpID0+IHtcbiAgICAgICAgICBjb25zdCBhcnJheUJJbmNsdWRlc0VsZW1lbnRBID0gYXJyYXlCLmluY2x1ZGVzKGVsZW1lbnRBKTtcblxuICAgICAgICAgIGlmICghYXJyYXlCSW5jbHVkZXNFbGVtZW50QSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBuZXh0UGFzcygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSBjb3VudCwgIC8vL1xuICAgICAgICAgICAgICBlbGVtZW50QSA9IGFycmF5QVtpbmRleF07XG5cbiAgICAgICAgY2FsbGJhY2soZWxlbWVudEEsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgKHBhc3NlZCkgPT4ge1xuICAgICAgICAgIGlmIChwYXNzZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRCID0gZWxlbWVudEE7ICAvLy9cblxuICAgICAgICAgICAgYXJyYXlCLnB1c2goZWxlbWVudEIpO1xuXG4gICAgICAgICAgICBzdWNjZXNzID0gdHJ1ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBuZXh0RWxlbWVudCgpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBuZXh0RWxlbWVudCgpO1xuICB9XG5cbiAgbmV4dFBhc3MoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJyZWFrYWJsZShpbm5lckZ1bmN0aW9uKSB7XG4gIHJldHVybiBmdW5jdGlvbiguLi5yZW1haW5pbmdBcmd1bWVudHMpIHtcbiAgICBjb25zdCByZW1haW5pbmdBcmd1bWVudHNMZW5ndGggPSByZW1haW5pbmdBcmd1bWVudHMubGVuZ3RoLFxuICAgICAgICAgIGlubmVyRnVuY3Rpb25MZW5ndGggPSBpbm5lckZ1bmN0aW9uLmxlbmd0aCxcbiAgICAgICAgICBjb250aW51YXRpb24gPSByZW1haW5pbmdBcmd1bWVudHMucG9wKCksXG4gICAgICAgICAgY29udGV4dCA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKTtcblxuICAgIHRoaXMuYnJlYWsoY29udGV4dCwgKCkgPT4ge1xuICAgICAgaWYgKGlubmVyRnVuY3Rpb25MZW5ndGggPT09IHJlbWFpbmluZ0FyZ3VtZW50c0xlbmd0aCkge1xuICAgICAgICBpbm5lckZ1bmN0aW9uLmNhbGwodGhpcywgLi4ucmVtYWluaW5nQXJndW1lbnRzLCBjb250ZXh0LCBjb250aW51YXRpb24pO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVzdWx0ID0gaW5uZXJGdW5jdGlvbi5jYWxsKHRoaXMsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cywgY29udGV4dCk7XG5cbiAgICAgIGNvbnRpbnVhdGlvbihyZXN1bHQpO1xuICAgIH0pO1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5icmVha2FibGUoaW5uZXJGdW5jdGlvbikge1xuICByZXR1cm4gZnVuY3Rpb24oLi4ucmVtYWluaW5nQXJndW1lbnRzKSB7XG4gICAgY29uc3QgaW5uZXJGdW5jdGlvbkxlbmd0aCA9IGlubmVyRnVuY3Rpb24ubGVuZ3RoLFxuICAgICAgICAgIHJlbWFpbmluZ0FyZ3VtZW50c0xlbmd0aCA9IHJlbWFpbmluZ0FyZ3VtZW50cy5sZW5ndGg7XG5cbiAgICBpZiAoaW5uZXJGdW5jdGlvbkxlbmd0aCA9PT0gcmVtYWluaW5nQXJndW1lbnRzTGVuZ3RoKSB7XG4gICAgICBpbm5lckZ1bmN0aW9uLmNhbGwodGhpcywgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbnRpbnVhdGlvbiA9IHJlbWFpbmluZ0FyZ3VtZW50cy5wb3AoKSxcbiAgICAgICAgICByZXN1bHQgPSBpbm5lckZ1bmN0aW9uLmNhbGwodGhpcywgLi4ucmVtYWluaW5nQXJndW1lbnRzKTtcblxuICAgIGNvbnRpbnVhdGlvbihyZXN1bHQpO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHNvbWUsXG4gIGV2ZXJ5LFxuICBmb3JFYWNoLFxuICByZXNvbHZlLFxuICBicmVha2FibGUsXG4gIHVuYnJlYWthYmxlXG59XG4iXSwibmFtZXMiOlsiYnJlYWthYmxlIiwiZXZlcnkiLCJmb3JFYWNoIiwicmVzb2x2ZSIsInNvbWUiLCJ1bmJyZWFrYWJsZSIsImZpbHRlciIsImFycmF5RmlsdGVyIiwiYXJyYXlVdGlsaXRpZXMiLCJhc3luY2hyb25vdXNGb3JFYWNoIiwiYXN5bmNocm9ub3VzVXRpbGl0aWVzIiwiYXJyYXkiLCJjYWxsYmFjayIsInJlbWFpbmluZ0FyZ3VtZW50cyIsInN1Y2Nlc3MiLCJjb250aW51YXRpb24iLCJwb3AiLCJlbGVtZW50IiwibmV4dCIsImRvbmUiLCJwYXNzZWQiLCJhcnJheUEiLCJhcnJheUIiLCJuZXh0UGFzcyIsImFycmF5QUxlbmd0aCIsImxlbmd0aCIsImNvdW50IiwibmV4dEVsZW1lbnQiLCJ0ZXJtaW5hdGUiLCJlbGVtZW50QSIsImFycmF5QkluY2x1ZGVzRWxlbWVudEEiLCJpbmNsdWRlcyIsImluZGV4IiwiZWxlbWVudEIiLCJwdXNoIiwiaW5uZXJGdW5jdGlvbiIsInJlbWFpbmluZ0FyZ3VtZW50c0xlbmd0aCIsImlubmVyRnVuY3Rpb25MZW5ndGgiLCJjb250ZXh0IiwiYnJlYWsiLCJjYWxsIiwi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
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-languages",
3
3
  "author": "James Smith",
4
- "version": "1.0.39",
4
+ "version": "1.0.41",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-languages",
7
7
  "description": "Occam's common language functionality.",
@@ -31,21 +31,19 @@ export function breakPointToBreakPointJSON(breakPoint) {
31
31
  export function lineIndexFromNodeAndTokens(node, tokens) {
32
32
  let lineIndex = 0;
33
33
 
34
- // const firstSignificantTokenIndex = node.getFirstSignificantTokenIndex(tokens);
35
- //
36
- // tokens.some((token, tokenIndex) => {
37
- // const tokenEndOfLineToken = token.isEndOfLineToken();
38
- //
39
- // if (tokenEndOfLineToken) {
40
- // lineIndex += 1;
41
- // }
42
- //
43
- // if (tokenIndex === firstSignificantTokenIndex) {
44
- // return true;
45
- // }
46
- // });
47
-
48
- lineIndex = 123;
34
+ const firstSignificantTokenIndex = node.getFirstSignificantTokenIndex(tokens);
35
+
36
+ tokens.some((token, tokenIndex) => {
37
+ const tokenEndOfLineToken = token.isEndOfLineToken();
38
+
39
+ if (tokenEndOfLineToken) {
40
+ lineIndex += 1;
41
+ }
42
+
43
+ if (tokenIndex === firstSignificantTokenIndex) {
44
+ return true;
45
+ }
46
+ });
49
47
 
50
48
  return lineIndex;
51
49
  }
@@ -2,15 +2,15 @@
2
2
 
3
3
  import { arrayUtilities, asynchronousUtilities } from "necessary";
4
4
 
5
- const { filter } = arrayUtilities,
6
- { forEach } = asynchronousUtilities;
5
+ const { filter: arrayFilter } = arrayUtilities,
6
+ { forEach: asynchronousForEach } = asynchronousUtilities;
7
7
 
8
8
  export function some(array, callback, ...remainingArguments) {
9
9
  let success = false;
10
10
 
11
11
  const continuation = remainingArguments.pop();
12
12
 
13
- forEach(array, (element, next, done) => {
13
+ asynchronousForEach(array, (element, next, done) => {
14
14
  callback(element, ...remainingArguments, (passed) => {
15
15
  if (passed) {
16
16
  success = true;
@@ -32,7 +32,7 @@ export function every(array, callback, ...remainingArguments) {
32
32
 
33
33
  const continuation = remainingArguments.pop();
34
34
 
35
- forEach(array, (element, next, done) => {
35
+ asynchronousForEach(array, (element, next, done) => {
36
36
  callback(element, ...remainingArguments, (passed) => {
37
37
  if (!passed) {
38
38
  success = false;
@@ -49,6 +49,14 @@ export function every(array, callback, ...remainingArguments) {
49
49
  });
50
50
  }
51
51
 
52
+ export function forEach(array, callback, ...remainingArguments) {
53
+ const continuation = remainingArguments.pop();
54
+
55
+ asynchronousForEach(array, (element, next, done) => {
56
+ callback(element, ...remainingArguments, next);
57
+ }, continuation);
58
+ }
59
+
52
60
  export function resolve(arrayA, arrayB, callback, ...remainingArguments) {
53
61
  arrayA = [ ///
54
62
  ...arrayA
@@ -85,7 +93,7 @@ export function resolve(arrayA, arrayB, callback, ...remainingArguments) {
85
93
  return;
86
94
  }
87
95
 
88
- filter(arrayA, (elementA) => {
96
+ arrayFilter(arrayA, (elementA) => {
89
97
  const arrayBIncludesElementA = arrayB.includes(elementA);
90
98
 
91
99
  if (!arrayBIncludesElementA) {
@@ -160,6 +168,7 @@ export function unbreakable(innerFunction) {
160
168
  export default {
161
169
  some,
162
170
  every,
171
+ forEach,
163
172
  resolve,
164
173
  breakable,
165
174
  unbreakable