occam-furtle 2.0.342 → 3.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/example.js +5905 -1786
  2. package/lib/context/block.js +81 -41
  3. package/lib/context/file/furtle.js +260 -0
  4. package/lib/context/file/nominal.js +956 -0
  5. package/lib/context/file.js +146 -271
  6. package/lib/context.js +210 -0
  7. package/lib/element/assignment/array.js +116 -14
  8. package/lib/element/assignment/object.js +116 -14
  9. package/lib/element/assignment/variable.js +121 -14
  10. package/lib/element/assignments/variable.js +120 -13
  11. package/lib/element/declaration/procedure.js +120 -12
  12. package/lib/element/error.js +118 -13
  13. package/lib/element/every.js +116 -13
  14. package/lib/element/expression.js +127 -20
  15. package/lib/element/label.js +119 -12
  16. package/lib/element/nodeQuery.js +116 -14
  17. package/lib/element/nodesQuery.js +116 -14
  18. package/lib/element/parameter/named.js +117 -15
  19. package/lib/element/parameter.js +116 -14
  20. package/lib/element/parameters/named.js +116 -14
  21. package/lib/element/parameters.js +115 -13
  22. package/lib/element/primitive.js +115 -13
  23. package/lib/element/procedure/anonymous.js +118 -16
  24. package/lib/element/procedure.js +118 -16
  25. package/lib/element/procedureCall.js +116 -14
  26. package/lib/element/reduce.js +116 -14
  27. package/lib/element/reference.js +119 -12
  28. package/lib/element/returnBlock.js +116 -14
  29. package/lib/element/some.js +115 -13
  30. package/lib/element/statement/return.js +120 -13
  31. package/lib/element/step.js +121 -14
  32. package/lib/element/term/bracketed.js +120 -13
  33. package/lib/element/term/comparison.js +117 -15
  34. package/lib/element/term/logical.js +118 -16
  35. package/lib/element/term/negated.js +116 -14
  36. package/lib/element/term.js +127 -18
  37. package/lib/element/terms.js +125 -14
  38. package/lib/element/ternary.js +117 -15
  39. package/lib/element/variable.js +127 -19
  40. package/lib/element.js +1 -8
  41. package/lib/index.js +5 -5
  42. package/lib/log.js +13 -12
  43. package/lib/metaTypeNames.js +26 -0
  44. package/lib/metaTypes.js +66 -0
  45. package/lib/nodeProperties.js +17 -21
  46. package/lib/nodeProperty.js +4 -7
  47. package/lib/utilities/context.js +8 -37
  48. package/lib/utilities/customGrammar.js +49 -0
  49. package/lib/utilities/element.js +91 -37
  50. package/lib/utilities/lineIndex.js +26 -0
  51. package/lib/utilities/node.js +1 -8
  52. package/lib/utilities/primitive.js +14 -5
  53. package/lib/utilities/string.js +30 -19
  54. package/lib/utilities/term.js +14 -5
  55. package/lib/utilities/terms.js +7 -3
  56. package/package.json +2 -2
  57. package/src/context/block.js +20 -32
  58. package/src/context/file/furtle.js +141 -0
  59. package/src/context/file/nominal.js +946 -0
  60. package/src/context/file.js +32 -209
  61. package/src/context.js +74 -0
  62. package/src/element/assignment/array.js +6 -8
  63. package/src/element/assignment/object.js +6 -8
  64. package/src/element/assignment/variable.js +7 -8
  65. package/src/element/assignments/variable.js +7 -8
  66. package/src/element/declaration/procedure.js +6 -6
  67. package/src/element/error.js +4 -6
  68. package/src/element/every.js +5 -6
  69. package/src/element/expression.js +6 -7
  70. package/src/element/label.js +6 -7
  71. package/src/element/nodeQuery.js +6 -8
  72. package/src/element/nodesQuery.js +6 -8
  73. package/src/element/parameter/named.js +7 -8
  74. package/src/element/parameter.js +6 -8
  75. package/src/element/parameters/named.js +8 -9
  76. package/src/element/parameters.js +6 -8
  77. package/src/element/primitive.js +5 -7
  78. package/src/element/procedure/anonymous.js +7 -9
  79. package/src/element/procedure.js +6 -8
  80. package/src/element/procedureCall.js +6 -8
  81. package/src/element/reduce.js +5 -7
  82. package/src/element/reference.js +6 -7
  83. package/src/element/returnBlock.js +5 -7
  84. package/src/element/some.js +5 -7
  85. package/src/element/statement/return.js +7 -8
  86. package/src/element/step.js +6 -7
  87. package/src/element/term/bracketed.js +7 -8
  88. package/src/element/term/comparison.js +6 -8
  89. package/src/element/term/logical.js +6 -8
  90. package/src/element/term/negated.js +6 -8
  91. package/src/element/term.js +12 -9
  92. package/src/element/terms.js +16 -9
  93. package/src/element/ternary.js +6 -8
  94. package/src/element/variable.js +24 -14
  95. package/src/element.js +0 -8
  96. package/src/index.js +1 -1
  97. package/src/log.js +11 -11
  98. package/src/metaTypeNames.js +5 -0
  99. package/src/metaTypes.js +71 -0
  100. package/src/nodeProperties.js +23 -32
  101. package/src/nodeProperty.js +5 -10
  102. package/src/utilities/context.js +7 -45
  103. package/src/utilities/customGrammar.js +40 -0
  104. package/src/utilities/element.js +158 -64
  105. package/src/utilities/lineIndex.js +21 -0
  106. package/src/utilities/node.js +0 -5
  107. package/src/utilities/primitive.js +22 -5
  108. package/src/utilities/string.js +33 -19
  109. package/src/utilities/term.js +22 -5
  110. package/src/utilities/terms.js +12 -4
  111. package/test/context/release.js +477 -46
  112. package/test/helpers/furtle.js +1 -1
  113. package/test/helpers/nominal.js +2 -3
  114. package/test/main.js +1 -1
  115. package/test/context/file.js +0 -127
  116. package/test/helpers/constants.js +0 -17
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get findMetaTypeByMetaTypeName () {
13
+ return findMetaTypeByMetaTypeName;
14
+ },
15
+ get getMetaTypes () {
16
+ return getMetaTypes;
17
+ }
18
+ });
19
+ var _elements = /*#__PURE__*/ _interop_require_default(require("./elements"));
20
+ var _metaTypeNames = require("./metaTypeNames");
21
+ function _interop_require_default(obj) {
22
+ return obj && obj.__esModule ? obj : {
23
+ default: obj
24
+ };
25
+ }
26
+ var frameMetaType = null, referenceMetaType = null, statementMetaType = null;
27
+ function getMetaTypes() {
28
+ var frameMetaType = frameMetaTypeFromNothing(), referenceMetaType = referenceMetaTypeFromNothing(), statementMetaType = statementMetaTypeFromNothing(), metaTypes = [
29
+ frameMetaType,
30
+ referenceMetaType,
31
+ statementMetaType
32
+ ];
33
+ return metaTypes;
34
+ }
35
+ function findMetaTypeByMetaTypeName(metaTypeName) {
36
+ var metaTypes = getMetaTypes(), metaType = metaTypes.find(function(metaType) {
37
+ var metaTypeComparesToMetaTypeName = metaType.compareMetaTypeName(metaTypeName);
38
+ if (metaTypeComparesToMetaTypeName) {
39
+ return true;
40
+ }
41
+ }) || null;
42
+ return metaType;
43
+ }
44
+ function frameMetaTypeFromNothing() {
45
+ if (frameMetaType === null) {
46
+ var MetaType = _elements.default.MetaType, name = _metaTypeNames.FRAME_META_TYPE_NAME, context = null;
47
+ frameMetaType = MetaType.fromName(name, context);
48
+ }
49
+ return frameMetaType;
50
+ }
51
+ function statementMetaTypeFromNothing() {
52
+ if (statementMetaType === null) {
53
+ var MetaType = _elements.default.MetaType, name = _metaTypeNames.STATEMENT_META_TYPE_NAME, context = null;
54
+ statementMetaType = MetaType.fromName(name, context);
55
+ }
56
+ return statementMetaType;
57
+ }
58
+ function referenceMetaTypeFromNothing() {
59
+ if (referenceMetaType === null) {
60
+ var MetaType = _elements.default.MetaType, name = _metaTypeNames.REFERENCE_META_TYPE_NAME, context = null;
61
+ referenceMetaType = MetaType.fromName(name, context);
62
+ }
63
+ return referenceMetaType;
64
+ }
65
+
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tZXRhVHlwZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBlbGVtZW50cyBmcm9tIFwiLi9lbGVtZW50c1wiO1xuXG5pbXBvcnQgeyBGUkFNRV9NRVRBX1RZUEVfTkFNRSwgUkVGRVJFTkNFX01FVEFfVFlQRV9OQU1FLCBTVEFURU1FTlRfTUVUQV9UWVBFX05BTUUgfSBmcm9tIFwiLi9tZXRhVHlwZU5hbWVzXCI7XG5cbmxldCBmcmFtZU1ldGFUeXBlID0gbnVsbCxcbiAgICByZWZlcmVuY2VNZXRhVHlwZSA9IG51bGwsXG4gICAgc3RhdGVtZW50TWV0YVR5cGUgPSBudWxsO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TWV0YVR5cGVzKCkge1xuICBjb25zdCBmcmFtZU1ldGFUeXBlID0gZnJhbWVNZXRhVHlwZUZyb21Ob3RoaW5nKCksXG4gICAgICAgIHJlZmVyZW5jZU1ldGFUeXBlID0gcmVmZXJlbmNlTWV0YVR5cGVGcm9tTm90aGluZygpLFxuICAgICAgICBzdGF0ZW1lbnRNZXRhVHlwZSA9IHN0YXRlbWVudE1ldGFUeXBlRnJvbU5vdGhpbmcoKSxcbiAgICAgICAgbWV0YVR5cGVzID0gW1xuICAgICAgICAgIGZyYW1lTWV0YVR5cGUsXG4gICAgICAgICAgcmVmZXJlbmNlTWV0YVR5cGUsXG4gICAgICAgICAgc3RhdGVtZW50TWV0YVR5cGVcbiAgICAgICAgXTtcblxuICByZXR1cm4gbWV0YVR5cGVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmluZE1ldGFUeXBlQnlNZXRhVHlwZU5hbWUobWV0YVR5cGVOYW1lKSB7XG4gIGNvbnN0IG1ldGFUeXBlcyA9IGdldE1ldGFUeXBlcygpLFxuICAgICAgICBtZXRhVHlwZSA9IG1ldGFUeXBlcy5maW5kKChtZXRhVHlwZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IG1ldGFUeXBlQ29tcGFyZXNUb01ldGFUeXBlTmFtZSA9IG1ldGFUeXBlLmNvbXBhcmVNZXRhVHlwZU5hbWUobWV0YVR5cGVOYW1lKTtcblxuICAgICAgICAgIGlmIChtZXRhVHlwZUNvbXBhcmVzVG9NZXRhVHlwZU5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSkgfHwgbnVsbDtcblxuICByZXR1cm4gbWV0YVR5cGU7XG59XG5cbmZ1bmN0aW9uIGZyYW1lTWV0YVR5cGVGcm9tTm90aGluZygpIHtcbiAgaWYgKGZyYW1lTWV0YVR5cGUgPT09IG51bGwpIHtcbiAgICBjb25zdCB7IE1ldGFUeXBlIH0gPSBlbGVtZW50cyxcbiAgICAgICAgICBuYW1lID0gRlJBTUVfTUVUQV9UWVBFX05BTUUsICAvLy9cbiAgICAgICAgICBjb250ZXh0ID0gbnVsbDtcblxuICAgIGZyYW1lTWV0YVR5cGUgPSBNZXRhVHlwZS5mcm9tTmFtZShuYW1lLCBjb250ZXh0KTtcbiAgfVxuXG4gIHJldHVybiBmcmFtZU1ldGFUeXBlO1xufVxuXG5mdW5jdGlvbiBzdGF0ZW1lbnRNZXRhVHlwZUZyb21Ob3RoaW5nKCkge1xuICBpZiAoc3RhdGVtZW50TWV0YVR5cGUgPT09IG51bGwpIHtcbiAgICBjb25zdCB7IE1ldGFUeXBlIH0gPSBlbGVtZW50cyxcbiAgICAgICAgICBuYW1lID0gU1RBVEVNRU5UX01FVEFfVFlQRV9OQU1FLCAgLy8vXG4gICAgICAgICAgY29udGV4dCA9IG51bGw7XG5cbiAgICBzdGF0ZW1lbnRNZXRhVHlwZSA9IE1ldGFUeXBlLmZyb21OYW1lKG5hbWUsIGNvbnRleHQpO1xuICB9XG5cbiAgcmV0dXJuIHN0YXRlbWVudE1ldGFUeXBlO1xufVxuXG5mdW5jdGlvbiByZWZlcmVuY2VNZXRhVHlwZUZyb21Ob3RoaW5nKCkge1xuICBpZiAocmVmZXJlbmNlTWV0YVR5cGUgPT09IG51bGwpIHtcbiAgICBjb25zdCB7IE1ldGFUeXBlIH0gPSBlbGVtZW50cyxcbiAgICAgICAgICBuYW1lID0gUkVGRVJFTkNFX01FVEFfVFlQRV9OQU1FLCAgLy8vXG4gICAgICAgICAgY29udGV4dCA9IG51bGw7XG5cbiAgICByZWZlcmVuY2VNZXRhVHlwZSA9IE1ldGFUeXBlLmZyb21OYW1lKG5hbWUsIGNvbnRleHQpO1xuICB9XG5cbiAgcmV0dXJuIHJlZmVyZW5jZU1ldGFUeXBlO1xufVxuIl0sIm5hbWVzIjpbImZpbmRNZXRhVHlwZUJ5TWV0YVR5cGVOYW1lIiwiZ2V0TWV0YVR5cGVzIiwiZnJhbWVNZXRhVHlwZSIsInJlZmVyZW5jZU1ldGFUeXBlIiwic3RhdGVtZW50TWV0YVR5cGUiLCJmcmFtZU1ldGFUeXBlRnJvbU5vdGhpbmciLCJyZWZlcmVuY2VNZXRhVHlwZUZyb21Ob3RoaW5nIiwic3RhdGVtZW50TWV0YVR5cGVGcm9tTm90aGluZyIsIm1ldGFUeXBlcyIsIm1ldGFUeXBlTmFtZSIsIm1ldGFUeXBlIiwiZmluZCIsIm1ldGFUeXBlQ29tcGFyZXNUb01ldGFUeXBlTmFtZSIsImNvbXBhcmVNZXRhVHlwZU5hbWUiLCJNZXRhVHlwZSIsImVsZW1lbnRzIiwibmFtZSIsIkZSQU1FX01FVEFfVFlQRV9OQU1FIiwiY29udGV4dCIsImZyb21OYW1lIiwiU1RBVEVNRU5UX01FVEFfVFlQRV9OQU1FIiwiUkVGRVJFTkNFX01FVEFfVFlQRV9OQU1FIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUF1QmdCQTtlQUFBQTs7UUFiQUM7ZUFBQUE7OzsrREFSSzs2QkFFb0U7Ozs7OztBQUV6RixJQUFJQyxnQkFBZ0IsTUFDaEJDLG9CQUFvQixNQUNwQkMsb0JBQW9CO0FBRWpCLFNBQVNIO0lBQ2QsSUFBTUMsZ0JBQWdCRyw0QkFDaEJGLG9CQUFvQkcsZ0NBQ3BCRixvQkFBb0JHLGdDQUNwQkMsWUFBWTtRQUNWTjtRQUNBQztRQUNBQztLQUNEO0lBRVAsT0FBT0k7QUFDVDtBQUVPLFNBQVNSLDJCQUEyQlMsWUFBWTtJQUNyRCxJQUFNRCxZQUFZUCxnQkFDWlMsV0FBV0YsVUFBVUcsSUFBSSxDQUFDLFNBQUNEO1FBQ3pCLElBQU1FLGlDQUFpQ0YsU0FBU0csbUJBQW1CLENBQUNKO1FBRXBFLElBQUlHLGdDQUFnQztZQUNsQyxPQUFPO1FBQ1Q7SUFDRixNQUFNO0lBRVosT0FBT0Y7QUFDVDtBQUVBLFNBQVNMO0lBQ1AsSUFBSUgsa0JBQWtCLE1BQU07UUFDMUIsSUFBTSxBQUFFWSxXQUFhQyxpQkFBUSxDQUFyQkQsVUFDRkUsT0FBT0MsbUNBQW9CLEVBQzNCQyxVQUFVO1FBRWhCaEIsZ0JBQWdCWSxTQUFTSyxRQUFRLENBQUNILE1BQU1FO0lBQzFDO0lBRUEsT0FBT2hCO0FBQ1Q7QUFFQSxTQUFTSztJQUNQLElBQUlILHNCQUFzQixNQUFNO1FBQzlCLElBQU0sQUFBRVUsV0FBYUMsaUJBQVEsQ0FBckJELFVBQ0ZFLE9BQU9JLHVDQUF3QixFQUMvQkYsVUFBVTtRQUVoQmQsb0JBQW9CVSxTQUFTSyxRQUFRLENBQUNILE1BQU1FO0lBQzlDO0lBRUEsT0FBT2Q7QUFDVDtBQUVBLFNBQVNFO0lBQ1AsSUFBSUgsc0JBQXNCLE1BQU07UUFDOUIsSUFBTSxBQUFFVyxXQUFhQyxpQkFBUSxDQUFyQkQsVUFDRkUsT0FBT0ssdUNBQXdCLEVBQy9CSCxVQUFVO1FBRWhCZixvQkFBb0JXLFNBQVNLLFFBQVEsQ0FBQ0gsTUFBTUU7SUFDOUM7SUFFQSxPQUFPZjtBQUNUIn0=
@@ -11,6 +11,7 @@ Object.defineProperty(exports, "default", {
11
11
  var _exception = /*#__PURE__*/ _interop_require_default(require("./exception"));
12
12
  var _nodeProperty = /*#__PURE__*/ _interop_require_default(require("./nodeProperty"));
13
13
  var _types = require("./types");
14
+ var _string = require("./utilities/string");
14
15
  var _parameterNames = require("./parameterNames");
15
16
  function _class_call_check(instance, Constructor) {
16
17
  if (!(instance instanceof Constructor)) {
@@ -36,15 +37,6 @@ function _interop_require_default(obj) {
36
37
  default: obj
37
38
  };
38
39
  }
39
- var types = [
40
- _types.STRING_TYPE,
41
- _types.BOOLEAN_TYPE,
42
- _types.NODES_TYPE
43
- ], names = [
44
- _parameterNames.CONTENT_PARAMETER_NAME,
45
- _parameterNames.TERMINAL_PARAMETER_NAME,
46
- _parameterNames.CHILD_NODES_PARAMETER_NAME
47
- ];
48
40
  var NodeProperties = /*#__PURE__*/ function() {
49
41
  function NodeProperties(string, array) {
50
42
  _class_call_check(this, NodeProperties);
@@ -101,10 +93,7 @@ var NodeProperties = /*#__PURE__*/ function() {
101
93
  {
102
94
  key: "fromNothing",
103
95
  value: function fromNothing() {
104
- var context = null, array = names.map(function(name, index) {
105
- var type = types[index], nodeProperty = _nodeProperty.default.fromNameAndType(name, type, context);
106
- return nodeProperty;
107
- }), string = stringFromArray(array, context), nodeProperties = new NodeProperties(string, array);
96
+ var nodePropertiesArray = nodePropertiesArrayFromNothing(), string = (0, _string.nodePropertiesStringFromNodePropertiesArray)(nodePropertiesArray), array = nodePropertiesArray, nodeProperties = new NodeProperties(string, array);
108
97
  return nodeProperties;
109
98
  }
110
99
  }
@@ -113,13 +102,20 @@ var NodeProperties = /*#__PURE__*/ function() {
113
102
  }();
114
103
  var nodeProperties = NodeProperties.fromNothing();
115
104
  var _default = nodeProperties;
116
- function stringFromArray(array, context) {
117
- var nodePropertiesString = array.reduce(function(nodePropertiesString, nodeProperty) {
118
- var nodePropertyString = nodeProperty.getString();
119
- nodePropertiesString = nodePropertiesString === null ? nodePropertyString : "".concat(nodePropertiesString, ", ").concat(nodePropertyString);
120
- return nodePropertiesString;
121
- }, null), string = nodePropertiesString; ///
122
- return string;
105
+ function nodePropertiesArrayFromNothing() {
106
+ var types = [
107
+ _types.STRING_TYPE,
108
+ _types.BOOLEAN_TYPE,
109
+ _types.NODES_TYPE
110
+ ], names = [
111
+ _parameterNames.CONTENT_PARAMETER_NAME,
112
+ _parameterNames.TERMINAL_PARAMETER_NAME,
113
+ _parameterNames.CHILD_NODES_PARAMETER_NAME
114
+ ], nodePropertiesArray = names.map(function(name, index) {
115
+ var type = types[index], nodeProperty = _nodeProperty.default.fromNameAndType(name, type);
116
+ return nodeProperty;
117
+ });
118
+ return nodePropertiesArray;
123
119
  }
124
120
 
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ub2RlUHJvcGVydGllcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi9leGNlcHRpb25cIjtcbmltcG9ydCBOb2RlUHJvcGVydHkgZnJvbSBcIi4vbm9kZVByb3BlcnR5XCI7XG5cbmltcG9ydCB7IE5PREVTX1RZUEUsIFNUUklOR19UWVBFLCBCT09MRUFOX1RZUEUgfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHsgQ09OVEVOVF9QQVJBTUVURVJfTkFNRSwgVEVSTUlOQUxfUEFSQU1FVEVSX05BTUUsIENISUxEX05PREVTX1BBUkFNRVRFUl9OQU1FIH0gZnJvbSBcIi4vcGFyYW1ldGVyTmFtZXNcIjtcblxuY29uc3QgdHlwZXMgPSBbXG4gICAgICAgIFNUUklOR19UWVBFLFxuICAgICAgICBCT09MRUFOX1RZUEUsXG4gICAgICAgIE5PREVTX1RZUEUsXG4gICAgICBdLFxuICAgICAgbmFtZXMgPSBbXG4gICAgICAgIENPTlRFTlRfUEFSQU1FVEVSX05BTUUsXG4gICAgICAgIFRFUk1JTkFMX1BBUkFNRVRFUl9OQU1FLFxuICAgICAgICBDSElMRF9OT0RFU19QQVJBTUVURVJfTkFNRVxuICAgICAgXTtcblxuY2xhc3MgTm9kZVByb3BlcnRpZXMge1xuICBjb25zdHJ1Y3RvcihzdHJpbmcsIGFycmF5KSB7XG4gICAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7XG4gICAgdGhpcy5hcnJheSA9IGFycmF5O1xuICB9XG5cbiAgZ2V0U3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLnN0cmluZztcbiAgfVxuXG4gIGdldEFycmF5KCkge1xuICAgIHJldHVybiB0aGlzLmFycmF5O1xuICB9XG5cbiAgc29tZU5vZGVQcm9wZXJ0eShjYWxsYmFjaykgeyByZXR1cm4gdGhpcy5hcnJheS5zb21lKGNhbGxiYWNrKTsgfVxuXG4gIG1hdGNoTmFtZWRQYXJhbWV0ZXIobmFtZWRQYXJhbWV0ZXIsIGNvbnRleHQpIHtcbiAgICBjb25zdCBub2RlUHJvcGVydGllc1N0cmluZyA9IHRoaXMuc3RyaW5nLCAvLy9cbiAgICAgICAgICBuYW1lZFBhcmFtZXRlclN0cmluZyA9IG5hbWVkUGFyYW1ldGVyLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgTWF0Y2hpbmcgdGhlICcke25hbWVkUGFyYW1ldGVyU3RyaW5nfScgbmFtZWQgcGFyYW1ldGVyIGFnYWluc3QgdGhlICcke25vZGVQcm9wZXJ0aWVzU3RyaW5nfScgbm9kZSBwcm9wZXJ0aWVzLi4uYCk7XG5cbiAgICBjb25zdCBuYW1lZFBhcmFtZXRlck1hdGNoZXMgPSB0aGlzLnNvbWVOb2RlUHJvcGVydHkoKG5vZGVQcm9wZXJ0eSkgPT4ge1xuICAgICAgY29uc3QgbmFtZWRQYXJhbWV0ZXJNYXRjaGVzTm9kZVByb3BlcnR5ID0gbm9kZVByb3BlcnR5Lm1hdGNoTmFtZWRQYXJhbWV0ZXIobmFtZWRQYXJhbWV0ZXIsIGNvbnRleHQpO1xuXG4gICAgICBpZiAobmFtZWRQYXJhbWV0ZXJNYXRjaGVzTm9kZVByb3BlcnR5KSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKCFuYW1lZFBhcmFtZXRlck1hdGNoZXMpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgVGhlICcke25hbWVkUGFyYW1ldGVyU3RyaW5nfScgbmFtZWQgcGFyYW1ldGVyIGRvZXMgbm90IG1hdGNoIGFueSBvZiB0aGUgJyR7bm9kZVByb3BlcnRpZXNTdHJpbmd9JyBub2RlIHByb3BlcnRpZXMuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnRleHQuZGVidWcoYC4uLm1hdGNoZWQgdGhlICcke25hbWVkUGFyYW1ldGVyU3RyaW5nfScgbmFtZWQgcGFyYW1ldGVyIGFnYWluc3QgdGhlICcke25vZGVQcm9wZXJ0aWVzU3RyaW5nfScgbm9kZSBwcm9wZXJ0aWVzLmApO1xuICB9XG5cbiAgbWF0Y2hOYW1lZFBhcmFtZXRlcnMobmFtZWRQYXJhbWV0ZXJzLCBjb250ZXh0KSB7XG4gICAgbmFtZWRQYXJhbWV0ZXJzLmZvckVhY2hOYW1lZFBhcmFtZXRlcigobmFtZWRQYXJhbWV0ZXIpID0+IHtcbiAgICAgIHRoaXMubWF0Y2hOYW1lZFBhcmFtZXRlcihuYW1lZFBhcmFtZXRlciwgY29udGV4dCk7XG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgZnJvbU5vdGhpbmcoKSB7XG4gICAgY29uc3QgY29udGV4dCA9IG51bGwsXG4gICAgICAgICAgYXJyYXkgPSBuYW1lcy5tYXAoKG5hbWUsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0eXBlID0gdHlwZXNbaW5kZXhdLFxuICAgICAgICAgICAgICAgICAgbm9kZVByb3BlcnR5ID0gTm9kZVByb3BlcnR5LmZyb21OYW1lQW5kVHlwZShuYW1lLCB0eXBlLCBjb250ZXh0KTtcblxuICAgICAgICAgICAgcmV0dXJuIG5vZGVQcm9wZXJ0eTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBzdHJpbmcgPSBzdHJpbmdGcm9tQXJyYXkoYXJyYXksIGNvbnRleHQpLFxuICAgICAgICAgIG5vZGVQcm9wZXJ0aWVzID0gbmV3IE5vZGVQcm9wZXJ0aWVzKHN0cmluZywgYXJyYXkpO1xuXG4gICAgcmV0dXJuIG5vZGVQcm9wZXJ0aWVzO1xuICB9XG59XG5cbmNvbnN0IG5vZGVQcm9wZXJ0aWVzID0gTm9kZVByb3BlcnRpZXMuZnJvbU5vdGhpbmcoKTtcblxuZXhwb3J0IGRlZmF1bHQgbm9kZVByb3BlcnRpZXM7XG5cbmZ1bmN0aW9uIHN0cmluZ0Zyb21BcnJheShhcnJheSwgY29udGV4dCkge1xuICBjb25zdCBub2RlUHJvcGVydGllc1N0cmluZyA9IGFycmF5LnJlZHVjZSgobm9kZVByb3BlcnRpZXNTdHJpbmcsIG5vZGVQcm9wZXJ0eSkgPT4ge1xuICAgICAgICAgIGNvbnN0IG5vZGVQcm9wZXJ0eVN0cmluZyA9IG5vZGVQcm9wZXJ0eS5nZXRTdHJpbmcoKTtcblxuICAgICAgICAgIG5vZGVQcm9wZXJ0aWVzU3RyaW5nID0gKG5vZGVQcm9wZXJ0aWVzU3RyaW5nID09PSBudWxsKSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVQcm9wZXJ0eVN0cmluZyA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgJHtub2RlUHJvcGVydGllc1N0cmluZ30sICR7bm9kZVByb3BlcnR5U3RyaW5nfWA7XG5cbiAgICAgICAgICByZXR1cm4gbm9kZVByb3BlcnRpZXNTdHJpbmc7XG4gICAgICAgIH0sIG51bGwpLFxuICAgICAgICBzdHJpbmcgPSBub2RlUHJvcGVydGllc1N0cmluZzsgIC8vL1xuXG4gIHJldHVybiBzdHJpbmc7XG59XG4iXSwibmFtZXMiOlsidHlwZXMiLCJTVFJJTkdfVFlQRSIsIkJPT0xFQU5fVFlQRSIsIk5PREVTX1RZUEUiLCJuYW1lcyIsIkNPTlRFTlRfUEFSQU1FVEVSX05BTUUiLCJURVJNSU5BTF9QQVJBTUVURVJfTkFNRSIsIkNISUxEX05PREVTX1BBUkFNRVRFUl9OQU1FIiwiTm9kZVByb3BlcnRpZXMiLCJzdHJpbmciLCJhcnJheSIsImdldFN0cmluZyIsImdldEFycmF5Iiwic29tZU5vZGVQcm9wZXJ0eSIsImNhbGxiYWNrIiwic29tZSIsIm1hdGNoTmFtZWRQYXJhbWV0ZXIiLCJuYW1lZFBhcmFtZXRlciIsImNvbnRleHQiLCJub2RlUHJvcGVydGllc1N0cmluZyIsIm5hbWVkUGFyYW1ldGVyU3RyaW5nIiwidHJhY2UiLCJuYW1lZFBhcmFtZXRlck1hdGNoZXMiLCJub2RlUHJvcGVydHkiLCJuYW1lZFBhcmFtZXRlck1hdGNoZXNOb2RlUHJvcGVydHkiLCJtZXNzYWdlIiwiZXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiZnJvbU1lc3NhZ2UiLCJkZWJ1ZyIsIm1hdGNoTmFtZWRQYXJhbWV0ZXJzIiwibmFtZWRQYXJhbWV0ZXJzIiwiZm9yRWFjaE5hbWVkUGFyYW1ldGVyIiwiZnJvbU5vdGhpbmciLCJtYXAiLCJuYW1lIiwiaW5kZXgiLCJ0eXBlIiwiTm9kZVByb3BlcnR5IiwiZnJvbU5hbWVBbmRUeXBlIiwic3RyaW5nRnJvbUFycmF5Iiwibm9kZVByb3BlcnRpZXMiLCJyZWR1Y2UiLCJub2RlUHJvcGVydHlTdHJpbmciXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWtGQTs7O2VBQUE7OztnRUFoRnNCO21FQUNHO3FCQUU2Qjs4QkFDc0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFNUYsSUFBTUEsUUFBUTtJQUNOQyxrQkFBVztJQUNYQyxtQkFBWTtJQUNaQyxpQkFBVTtDQUNYLEVBQ0RDLFFBQVE7SUFDTkMsc0NBQXNCO0lBQ3RCQyx1Q0FBdUI7SUFDdkJDLDBDQUEwQjtDQUMzQjtBQUVQLElBQUEsQUFBTUMsK0JBQU47YUFBTUEsZUFDUUMsTUFBTSxFQUFFQyxLQUFLO2dDQURyQkY7UUFFRixJQUFJLENBQUNDLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLEtBQUssR0FBR0E7O2tCQUhYRjs7WUFNSkcsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDRixNQUFNO1lBQ3BCOzs7WUFFQUcsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDRixLQUFLO1lBQ25COzs7WUFFQUcsS0FBQUE7bUJBQUFBLFNBQUFBLGlCQUFpQkMsUUFBUTtnQkFBSSxPQUFPLElBQUksQ0FBQ0osS0FBSyxDQUFDSyxJQUFJLENBQUNEO1lBQVc7OztZQUUvREUsS0FBQUE7bUJBQUFBLFNBQUFBLG9CQUFvQkMsY0FBYyxFQUFFQyxPQUFPO2dCQUN6QyxJQUFNQyx1QkFBdUIsSUFBSSxDQUFDVixNQUFNLEVBQ2xDVyx1QkFBdUJILGVBQWVOLFNBQVM7Z0JBRXJETyxRQUFRRyxLQUFLLENBQUMsQUFBQyxpQkFBc0VGLE9BQXREQyxzQkFBcUIsbUNBQXNELE9BQXJCRCxzQkFBcUI7Z0JBRTFHLElBQU1HLHdCQUF3QixJQUFJLENBQUNULGdCQUFnQixDQUFDLFNBQUNVO29CQUNuRCxJQUFNQyxvQ0FBb0NELGFBQWFQLG1CQUFtQixDQUFDQyxnQkFBZ0JDO29CQUUzRixJQUFJTSxtQ0FBbUM7d0JBQ3JDLE9BQU87b0JBQ1Q7Z0JBQ0Y7Z0JBRUEsSUFBSSxDQUFDRix1QkFBdUI7b0JBQzFCLElBQU1HLFVBQVUsQUFBQyxRQUEyRU4sT0FBcEVDLHNCQUFxQixpREFBb0UsT0FBckJELHNCQUFxQix1QkFDM0dPLFlBQVlDLGtCQUFTLENBQUNDLFdBQVcsQ0FBQ0g7b0JBRXhDLE1BQU1DO2dCQUNSO2dCQUVBUixRQUFRVyxLQUFLLENBQUMsQUFBQyxtQkFBd0VWLE9BQXREQyxzQkFBcUIsbUNBQXNELE9BQXJCRCxzQkFBcUI7WUFDOUc7OztZQUVBVyxLQUFBQTttQkFBQUEsU0FBQUEscUJBQXFCQyxlQUFlLEVBQUViLE9BQU87O2dCQUMzQ2EsZ0JBQWdCQyxxQkFBcUIsQ0FBQyxTQUFDZjtvQkFDckMsTUFBS0QsbUJBQW1CLENBQUNDLGdCQUFnQkM7Z0JBQzNDO1lBQ0Y7Ozs7WUFFT2UsS0FBQUE7bUJBQVAsU0FBT0E7Z0JBQ0wsSUFBTWYsVUFBVSxNQUNWUixRQUFRTixNQUFNOEIsR0FBRyxDQUFDLFNBQUNDLE1BQU1DO29CQUN2QixJQUFNQyxPQUFPckMsS0FBSyxDQUFDb0MsTUFBTSxFQUNuQmIsZUFBZWUscUJBQVksQ0FBQ0MsZUFBZSxDQUFDSixNQUFNRSxNQUFNbkI7b0JBRTlELE9BQU9LO2dCQUNULElBQ0FkLFNBQVMrQixnQkFBZ0I5QixPQUFPUSxVQUNoQ3VCLGlCQUFpQixJQXZEckJqQyxlQXVEd0NDLFFBQVFDO2dCQUVsRCxPQUFPK0I7WUFDVDs7O1dBMURJakM7O0FBNkROLElBQU1pQyxpQkFBaUJqQyxlQUFleUIsV0FBVztJQUVqRCxXQUFlUTtBQUVmLFNBQVNELGdCQUFnQjlCLEtBQUssRUFBRVEsT0FBTztJQUNyQyxJQUFNQyx1QkFBdUJULE1BQU1nQyxNQUFNLENBQUMsU0FBQ3ZCLHNCQUFzQkk7UUFDekQsSUFBTW9CLHFCQUFxQnBCLGFBQWFaLFNBQVM7UUFFakRRLHVCQUF1QixBQUFDQSx5QkFBeUIsT0FDeEJ3QixxQkFDQyxBQUFDLEdBQTJCQSxPQUF6QnhCLHNCQUFxQixNQUF1QixPQUFuQndCO1FBRXRELE9BQU94QjtJQUNULEdBQUcsT0FDSFYsU0FBU1Usc0JBQXVCLEdBQUc7SUFFekMsT0FBT1Y7QUFDVCJ9
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ub2RlUHJvcGVydGllcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi9leGNlcHRpb25cIjtcbmltcG9ydCBOb2RlUHJvcGVydHkgZnJvbSBcIi4vbm9kZVByb3BlcnR5XCI7XG5cbmltcG9ydCB7IE5PREVTX1RZUEUsIFNUUklOR19UWVBFLCBCT09MRUFOX1RZUEUgfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHsgbm9kZVByb3BlcnRpZXNTdHJpbmdGcm9tTm9kZVByb3BlcnRpZXNBcnJheSB9IGZyb20gXCIuL3V0aWxpdGllcy9zdHJpbmdcIjtcbmltcG9ydCB7IENPTlRFTlRfUEFSQU1FVEVSX05BTUUsIFRFUk1JTkFMX1BBUkFNRVRFUl9OQU1FLCBDSElMRF9OT0RFU19QQVJBTUVURVJfTkFNRSB9IGZyb20gXCIuL3BhcmFtZXRlck5hbWVzXCI7XG5cbmNsYXNzIE5vZGVQcm9wZXJ0aWVzIHtcbiAgY29uc3RydWN0b3Ioc3RyaW5nLCBhcnJheSkge1xuICAgIHRoaXMuc3RyaW5nID0gc3RyaW5nO1xuICAgIHRoaXMuYXJyYXkgPSBhcnJheTtcbiAgfVxuXG4gIGdldFN0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5zdHJpbmc7XG4gIH1cblxuICBnZXRBcnJheSgpIHtcbiAgICByZXR1cm4gdGhpcy5hcnJheTtcbiAgfVxuXG4gIHNvbWVOb2RlUHJvcGVydHkoY2FsbGJhY2spIHsgcmV0dXJuIHRoaXMuYXJyYXkuc29tZShjYWxsYmFjayk7IH1cblxuICBtYXRjaE5hbWVkUGFyYW1ldGVyKG5hbWVkUGFyYW1ldGVyLCBjb250ZXh0KSB7XG4gICAgY29uc3Qgbm9kZVByb3BlcnRpZXNTdHJpbmcgPSB0aGlzLnN0cmluZywgLy8vXG4gICAgICAgICAgbmFtZWRQYXJhbWV0ZXJTdHJpbmcgPSBuYW1lZFBhcmFtZXRlci5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYE1hdGNoaW5nIHRoZSAnJHtuYW1lZFBhcmFtZXRlclN0cmluZ30nIG5hbWVkIHBhcmFtZXRlciBhZ2FpbnN0IHRoZSAnJHtub2RlUHJvcGVydGllc1N0cmluZ30nIG5vZGUgcHJvcGVydGllcy4uLmApO1xuXG4gICAgY29uc3QgbmFtZWRQYXJhbWV0ZXJNYXRjaGVzID0gdGhpcy5zb21lTm9kZVByb3BlcnR5KChub2RlUHJvcGVydHkpID0+IHtcbiAgICAgIGNvbnN0IG5hbWVkUGFyYW1ldGVyTWF0Y2hlc05vZGVQcm9wZXJ0eSA9IG5vZGVQcm9wZXJ0eS5tYXRjaE5hbWVkUGFyYW1ldGVyKG5hbWVkUGFyYW1ldGVyLCBjb250ZXh0KTtcblxuICAgICAgaWYgKG5hbWVkUGFyYW1ldGVyTWF0Y2hlc05vZGVQcm9wZXJ0eSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmICghbmFtZWRQYXJhbWV0ZXJNYXRjaGVzKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYFRoZSAnJHtuYW1lZFBhcmFtZXRlclN0cmluZ30nIG5hbWVkIHBhcmFtZXRlciBkb2VzIG5vdCBtYXRjaCBhbnkgb2YgdGhlICcke25vZGVQcm9wZXJ0aWVzU3RyaW5nfScgbm9kZSBwcm9wZXJ0aWVzLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5tYXRjaGVkIHRoZSAnJHtuYW1lZFBhcmFtZXRlclN0cmluZ30nIG5hbWVkIHBhcmFtZXRlciBhZ2FpbnN0IHRoZSAnJHtub2RlUHJvcGVydGllc1N0cmluZ30nIG5vZGUgcHJvcGVydGllcy5gKTtcbiAgfVxuXG4gIG1hdGNoTmFtZWRQYXJhbWV0ZXJzKG5hbWVkUGFyYW1ldGVycywgY29udGV4dCkge1xuICAgIG5hbWVkUGFyYW1ldGVycy5mb3JFYWNoTmFtZWRQYXJhbWV0ZXIoKG5hbWVkUGFyYW1ldGVyKSA9PiB7XG4gICAgICB0aGlzLm1hdGNoTmFtZWRQYXJhbWV0ZXIobmFtZWRQYXJhbWV0ZXIsIGNvbnRleHQpO1xuICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIGZyb21Ob3RoaW5nKCkge1xuICAgIGNvbnN0IG5vZGVQcm9wZXJ0aWVzQXJyYXkgPSBub2RlUHJvcGVydGllc0FycmF5RnJvbU5vdGhpbmcoKSxcbiAgICAgICAgICBzdHJpbmcgPSBub2RlUHJvcGVydGllc1N0cmluZ0Zyb21Ob2RlUHJvcGVydGllc0FycmF5KG5vZGVQcm9wZXJ0aWVzQXJyYXkpLFxuICAgICAgICAgIGFycmF5ID0gbm9kZVByb3BlcnRpZXNBcnJheSwgIC8vL1xuICAgICAgICAgIG5vZGVQcm9wZXJ0aWVzID0gbmV3IE5vZGVQcm9wZXJ0aWVzKHN0cmluZywgYXJyYXkpO1xuXG4gICAgcmV0dXJuIG5vZGVQcm9wZXJ0aWVzO1xuICB9XG59XG5cbmNvbnN0IG5vZGVQcm9wZXJ0aWVzID0gTm9kZVByb3BlcnRpZXMuZnJvbU5vdGhpbmcoKTtcblxuZXhwb3J0IGRlZmF1bHQgbm9kZVByb3BlcnRpZXM7XG5cbmZ1bmN0aW9uIG5vZGVQcm9wZXJ0aWVzQXJyYXlGcm9tTm90aGluZygpIHtcbiAgY29uc3QgdHlwZXMgPSBbXG4gICAgICAgICAgU1RSSU5HX1RZUEUsXG4gICAgICAgICAgQk9PTEVBTl9UWVBFLFxuICAgICAgICAgIE5PREVTX1RZUEUsXG4gICAgICAgIF0sXG4gICAgICAgIG5hbWVzID0gW1xuICAgICAgICAgIENPTlRFTlRfUEFSQU1FVEVSX05BTUUsXG4gICAgICAgICAgVEVSTUlOQUxfUEFSQU1FVEVSX05BTUUsXG4gICAgICAgICAgQ0hJTERfTk9ERVNfUEFSQU1FVEVSX05BTUVcbiAgICAgICAgXSxcbiAgICAgICAgbm9kZVByb3BlcnRpZXNBcnJheSA9IG5hbWVzLm1hcCgobmFtZSwgaW5kZXgpID0+IHtcbiAgICAgICAgICBjb25zdCB0eXBlID0gdHlwZXNbaW5kZXhdLFxuICAgICAgICAgICAgICAgIG5vZGVQcm9wZXJ0eSA9IE5vZGVQcm9wZXJ0eS5mcm9tTmFtZUFuZFR5cGUobmFtZSwgdHlwZSk7XG5cbiAgICAgICAgICByZXR1cm4gbm9kZVByb3BlcnR5O1xuICAgICAgICB9KTtcblxuICByZXR1cm4gbm9kZVByb3BlcnRpZXNBcnJheTtcbn1cbiJdLCJuYW1lcyI6WyJOb2RlUHJvcGVydGllcyIsInN0cmluZyIsImFycmF5IiwiZ2V0U3RyaW5nIiwiZ2V0QXJyYXkiLCJzb21lTm9kZVByb3BlcnR5IiwiY2FsbGJhY2siLCJzb21lIiwibWF0Y2hOYW1lZFBhcmFtZXRlciIsIm5hbWVkUGFyYW1ldGVyIiwiY29udGV4dCIsIm5vZGVQcm9wZXJ0aWVzU3RyaW5nIiwibmFtZWRQYXJhbWV0ZXJTdHJpbmciLCJ0cmFjZSIsIm5hbWVkUGFyYW1ldGVyTWF0Y2hlcyIsIm5vZGVQcm9wZXJ0eSIsIm5hbWVkUGFyYW1ldGVyTWF0Y2hlc05vZGVQcm9wZXJ0eSIsIm1lc3NhZ2UiLCJleGNlcHRpb24iLCJFeGNlcHRpb24iLCJmcm9tTWVzc2FnZSIsImRlYnVnIiwibWF0Y2hOYW1lZFBhcmFtZXRlcnMiLCJuYW1lZFBhcmFtZXRlcnMiLCJmb3JFYWNoTmFtZWRQYXJhbWV0ZXIiLCJmcm9tTm90aGluZyIsIm5vZGVQcm9wZXJ0aWVzQXJyYXkiLCJub2RlUHJvcGVydGllc0FycmF5RnJvbU5vdGhpbmciLCJub2RlUHJvcGVydGllc1N0cmluZ0Zyb21Ob2RlUHJvcGVydGllc0FycmF5Iiwibm9kZVByb3BlcnRpZXMiLCJ0eXBlcyIsIlNUUklOR19UWVBFIiwiQk9PTEVBTl9UWVBFIiwiTk9ERVNfVFlQRSIsIm5hbWVzIiwiQ09OVEVOVF9QQVJBTUVURVJfTkFNRSIsIlRFUk1JTkFMX1BBUkFNRVRFUl9OQU1FIiwiQ0hJTERfTk9ERVNfUEFSQU1FVEVSX05BTUUiLCJtYXAiLCJuYW1lIiwiaW5kZXgiLCJ0eXBlIiwiTm9kZVByb3BlcnR5IiwiZnJvbU5hbWVBbmRU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
@@ -8,6 +8,7 @@ Object.defineProperty(exports, "default", {
8
8
  return NodeProperty;
9
9
  }
10
10
  });
11
+ var _string = require("./utilities/string");
11
12
  function _class_call_check(instance, Constructor) {
12
13
  if (!(instance instanceof Constructor)) {
13
14
  throw new TypeError("Cannot call a class as a function");
@@ -83,8 +84,8 @@ var NodeProperty = /*#__PURE__*/ function() {
83
84
  ], [
84
85
  {
85
86
  key: "fromNameAndType",
86
- value: function fromNameAndType(name, type, context) {
87
- var string = stringFromNameAndType(name, type, context), nodeProperty = new NodeProperty(string, type, name);
87
+ value: function fromNameAndType(name, type) {
88
+ var nodePropertyString = (0, _string.nodePropertyStringFromNameAndType)(name, type), string = nodePropertyString, nodeProperty = new NodeProperty(string, type, name);
88
89
  return nodeProperty;
89
90
  }
90
91
  }
@@ -92,9 +93,5 @@ var NodeProperty = /*#__PURE__*/ function() {
92
93
  return NodeProperty;
93
94
  }();
94
95
  _define_property(NodeProperty, "name", "Parameter");
95
- function stringFromNameAndType(name, type, context) {
96
- var typeString = type, nameString = name, string = "".concat(typeString, " ").concat(nameString);
97
- return string;
98
- }
99
96
 
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ub2RlUHJvcGVydHkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE5vZGVQcm9wZXJ0eSB7XG4gIGNvbnN0cnVjdG9yKHN0cmluZywgdHlwZSwgbmFtZSkge1xuICAgIHRoaXMuc3RyaW5nID0gc3RyaW5nO1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgfVxuXG4gIGdldFN0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5zdHJpbmc7XG4gIH1cblxuICBnZXRUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGU7XG4gIH1cblxuICBnZXROYW1lKCkge1xuICAgIHJldHVybiB0aGlzLm5hbWU7XG4gIH1cblxuICBtYXRjaE5hbWVkUGFyYW1ldGVyKG5hbWVkUGFyYW1ldGVyLCBjb250ZXh0KSB7XG4gICAgbGV0IG5hbWVkUGFyYW1ldGVyTWF0Y2hlcztcblxuICAgIGNvbnN0IG5vZGVQcm9wZXJ0eVN0cmluZyA9IHRoaXMuc3RyaW5nLCAvLy9cbiAgICAgICAgICBuYW1lZFBhcmFtZXRlclN0cmluZyA9IG5hbWVkUGFyYW1ldGVyLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgTWF0Y2hpbmcgdGhlICcke25vZGVQcm9wZXJ0eVN0cmluZ30nIG5vZGUgcHJvcGVydHkgYWdhaW5zdCB0aGUgJyR7bmFtZWRQYXJhbWV0ZXJTdHJpbmd9JyBuYW1lZCBwYXJhbWV0ZXIuLi5gKTtcblxuICAgIGNvbnN0IG5hbWUgPSBuYW1lZFBhcmFtZXRlci5nZXROYW1lKCksXG4gICAgICAgICAgdHlwZSA9IG5hbWVkUGFyYW1ldGVyLmdldFR5cGUoKTtcblxuICAgIG5hbWVkUGFyYW1ldGVyTWF0Y2hlcyA9ICgodGhpcy5uYW1lID09PSBuYW1lKSAmJiAodGhpcy50eXBlID09PSB0eXBlKSk7XG5cbiAgICBpZiAobmFtZWRQYXJhbWV0ZXJNYXRjaGVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi5tYXRjaGVkIHRoZSAnJHtub2RlUHJvcGVydHlTdHJpbmd9JyBub2RlIHByb3BlcnR5IGFnYWluc3QgdGhlICcke25hbWVkUGFyYW1ldGVyU3RyaW5nfScgbmFtZWQgcGFyYW1ldGVyLmApO1xuICAgIH1cblxuICAgIHJldHVybiBuYW1lZFBhcmFtZXRlck1hdGNoZXM7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiUGFyYW1ldGVyXCI7XG5cbiAgc3RhdGljIGZyb21OYW1lQW5kVHlwZShuYW1lLCB0eXBlLCBjb250ZXh0KSB7XG4gICAgY29uc3Qgc3RyaW5nID0gc3RyaW5nRnJvbU5hbWVBbmRUeXBlKG5hbWUsIHR5cGUsIGNvbnRleHQpLFxuICAgICAgICAgIG5vZGVQcm9wZXJ0eSA9IG5ldyBOb2RlUHJvcGVydHkoc3RyaW5nLCB0eXBlLCBuYW1lKTtcblxuICAgIHJldHVybiBub2RlUHJvcGVydHk7XG4gIH1cbn07XG5cbmZ1bmN0aW9uIHN0cmluZ0Zyb21OYW1lQW5kVHlwZShuYW1lLCB0eXBlLCBjb250ZXh0KSB7XG4gIGNvbnN0IHR5cGVTdHJpbmcgPSB0eXBlLCAgLy8vXG4gICAgICAgIG5hbWVTdHJpbmcgPSBuYW1lLCAgLy8vXG4gICAgICAgIHN0cmluZyA9IGAke3R5cGVTdHJpbmd9ICR7bmFtZVN0cmluZ31gO1xuXG4gIHJldHVybiBzdHJpbmc7XG59XG4iXSwibmFtZXMiOlsiTm9kZVByb3BlcnR5Iiwic3RyaW5nIiwidHlwZSIsIm5hbWUiLCJnZXRTdHJpbmciLCJnZXRUeXBlIiwiZ2V0TmFtZSIsIm1hdGNoTmFtZWRQYXJhbWV0ZXIiLCJuYW1lZFBhcmFtZXRlciIsImNvbnRleHQiLCJuYW1lZFBhcmFtZXRlck1hdGNoZXMiLCJub2RlUHJvcGVydHlTdHJpbmciLCJuYW1lZFBhcmFtZXRlclN0cmluZyIsInRyYWNlIiwiZGVidWciLCJmcm9tTmFtZUFuZFR5cGUiLCJzdHJpbmdGcm9tTmFtZUFuZFR5cGUiLCJub2RlUHJvcGVydHkiLCJ0eXBlU3RyaW5nIiwibmFtZVN0cmluZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFFcUJBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFOLElBQUEsQUFBTUEsNkJBQU47YUFBTUEsYUFDUEMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLElBQUk7Z0NBRFhIO1FBRWpCLElBQUksQ0FBQ0MsTUFBTSxHQUFHQTtRQUNkLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTs7a0JBSktIOztZQU9uQkksS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDSCxNQUFNO1lBQ3BCOzs7WUFFQUksS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDSCxJQUFJO1lBQ2xCOzs7WUFFQUksS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDSCxJQUFJO1lBQ2xCOzs7WUFFQUksS0FBQUE7bUJBQUFBLFNBQUFBLG9CQUFvQkMsY0FBYyxFQUFFQyxPQUFPO2dCQUN6QyxJQUFJQztnQkFFSixJQUFNQyxxQkFBcUIsSUFBSSxDQUFDVixNQUFNLEVBQ2hDVyx1QkFBdUJKLGVBQWVKLFNBQVM7Z0JBRXJESyxRQUFRSSxLQUFLLENBQUMsQUFBQyxpQkFBa0VELE9BQWxERCxvQkFBbUIsaUNBQW9ELE9BQXJCQyxzQkFBcUI7Z0JBRXRHLElBQU1ULE9BQU9LLGVBQWVGLE9BQU8sSUFDN0JKLE9BQU9NLGVBQWVILE9BQU87Z0JBRW5DSyx3QkFBeUIsQUFBQyxJQUFJLENBQUNQLElBQUksS0FBS0EsUUFBVSxJQUFJLENBQUNELElBQUksS0FBS0E7Z0JBRWhFLElBQUlRLHVCQUF1QjtvQkFDekJELFFBQVFLLEtBQUssQ0FBQyxBQUFDLG1CQUFvRUYsT0FBbERELG9CQUFtQixpQ0FBb0QsT0FBckJDLHNCQUFxQjtnQkFDMUc7Z0JBRUEsT0FBT0Y7WUFDVDs7OztZQUlPSyxLQUFBQTttQkFBUCxTQUFPQSxnQkFBZ0JaLElBQUksRUFBRUQsSUFBSSxFQUFFTyxPQUFPO2dCQUN4QyxJQUFNUixTQUFTZSxzQkFBc0JiLE1BQU1ELE1BQU1PLFVBQzNDUSxlQUFlLElBM0NKakIsYUEyQ3FCQyxRQUFRQyxNQUFNQztnQkFFcEQsT0FBT2M7WUFDVDs7O1dBOUNtQmpCOztBQXVDbkIsaUJBdkNtQkEsY0F1Q1pHLFFBQU87QUFVaEIsU0FBU2Esc0JBQXNCYixJQUFJLEVBQUVELElBQUksRUFBRU8sT0FBTztJQUNoRCxJQUFNUyxhQUFhaEIsTUFDYmlCLGFBQWFoQixNQUNiRixTQUFTLEFBQUMsR0FBZ0JrQixPQUFkRCxZQUFXLEtBQWMsT0FBWEM7SUFFaEMsT0FBT2xCO0FBQ1QifQ==
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ub2RlUHJvcGVydHkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IG5vZGVQcm9wZXJ0eVN0cmluZ0Zyb21OYW1lQW5kVHlwZSB9IGZyb20gXCIuL3V0aWxpdGllcy9zdHJpbmdcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTm9kZVByb3BlcnR5IHtcbiAgY29uc3RydWN0b3Ioc3RyaW5nLCB0eXBlLCBuYW1lKSB7XG4gICAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7XG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICB9XG5cbiAgZ2V0U3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLnN0cmluZztcbiAgfVxuXG4gIGdldFR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZTtcbiAgfVxuXG4gIGdldE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxuXG4gIG1hdGNoTmFtZWRQYXJhbWV0ZXIobmFtZWRQYXJhbWV0ZXIsIGNvbnRleHQpIHtcbiAgICBsZXQgbmFtZWRQYXJhbWV0ZXJNYXRjaGVzO1xuXG4gICAgY29uc3Qgbm9kZVByb3BlcnR5U3RyaW5nID0gdGhpcy5zdHJpbmcsIC8vL1xuICAgICAgICAgIG5hbWVkUGFyYW1ldGVyU3RyaW5nID0gbmFtZWRQYXJhbWV0ZXIuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBNYXRjaGluZyB0aGUgJyR7bm9kZVByb3BlcnR5U3RyaW5nfScgbm9kZSBwcm9wZXJ0eSBhZ2FpbnN0IHRoZSAnJHtuYW1lZFBhcmFtZXRlclN0cmluZ30nIG5hbWVkIHBhcmFtZXRlci4uLmApO1xuXG4gICAgY29uc3QgbmFtZSA9IG5hbWVkUGFyYW1ldGVyLmdldE5hbWUoKSxcbiAgICAgICAgICB0eXBlID0gbmFtZWRQYXJhbWV0ZXIuZ2V0VHlwZSgpO1xuXG4gICAgbmFtZWRQYXJhbWV0ZXJNYXRjaGVzID0gKCh0aGlzLm5hbWUgPT09IG5hbWUpICYmICh0aGlzLnR5cGUgPT09IHR5cGUpKTtcblxuICAgIGlmIChuYW1lZFBhcmFtZXRlck1hdGNoZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLm1hdGNoZWQgdGhlICcke25vZGVQcm9wZXJ0eVN0cmluZ30nIG5vZGUgcHJvcGVydHkgYWdhaW5zdCB0aGUgJyR7bmFtZWRQYXJhbWV0ZXJTdHJpbmd9JyBuYW1lZCBwYXJhbWV0ZXIuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5hbWVkUGFyYW1ldGVyTWF0Y2hlcztcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJQYXJhbWV0ZXJcIjtcblxuICBzdGF0aWMgZnJvbU5hbWVBbmRUeXBlKG5hbWUsIHR5cGUpIHtcbiAgICBjb25zdCBub2RlUHJvcGVydHlTdHJpbmcgPSBub2RlUHJvcGVydHlTdHJpbmdGcm9tTmFtZUFuZFR5cGUobmFtZSwgdHlwZSksXG4gICAgICAgICAgc3RyaW5nID0gbm9kZVByb3BlcnR5U3RyaW5nLCAgLy8vXG4gICAgICAgICAgbm9kZVByb3BlcnR5ID0gbmV3IE5vZGVQcm9wZXJ0eShzdHJpbmcsIHR5cGUsIG5hbWUpO1xuXG4gICAgcmV0dXJuIG5vZGVQcm9wZXJ0eTtcbiAgfVxufTtcbiJdLCJuYW1lcyI6WyJOb2RlUHJvcGVydHkiLCJzdHJpbmciLCJ0eXBlIiwibmFtZSIsImdldFN0cmluZyIsImdldFR5cGUiLCJnZXROYW1lIiwibWF0Y2hOYW1lZFBhcmFtZXRlciIsIm5hbWVkUGFyYW1ldGVyIiwiY29udGV4dCIsIm5hbWVkUGFyYW1ldGVyTWF0Y2hlcyIsIm5vZGVQcm9wZXJ0eVN0cmluZyIsIm5hbWVkUGFyYW1ldGVyU3RyaW5nIiwidHJhY2UiLCJkZWJ1ZyIsImZyb21OYW1lQW5kVHlwZSIsIm5vZGVQcm9wZXJ0eVN0cmluZ0Zyb21OYW1lQW5kVHlwZSIsIm5vZGVQcm9wZXJ0eSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFJcUJBOzs7c0JBRjZCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbkMsSUFBQSxBQUFNQSw2QkFBTjthQUFNQSxhQUNQQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsSUFBSTtnQ0FEWEg7UUFFakIsSUFBSSxDQUFDQyxNQUFNLEdBQUdBO1FBQ2QsSUFBSSxDQUFDQyxJQUFJLEdBQUdBO1FBQ1osSUFBSSxDQUFDQyxJQUFJLEdBQUdBOztrQkFKS0g7O1lBT25CSSxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNILE1BQU07WUFDcEI7OztZQUVBSSxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNILElBQUk7WUFDbEI7OztZQUVBSSxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNILElBQUk7WUFDbEI7OztZQUVBSSxLQUFBQTttQkFBQUEsU0FBQUEsb0JBQW9CQyxjQUFjLEVBQUVDLE9BQU87Z0JBQ3pDLElBQUlDO2dCQUVKLElBQU1DLHFCQUFxQixJQUFJLENBQUNWLE1BQU0sRUFDaENXLHVCQUF1QkosZUFBZUosU0FBUztnQkFFckRLLFFBQVFJLEtBQUssQ0FBQyxBQUFDLGlCQUFrRUQsT0FBbERELG9CQUFtQixpQ0FBb0QsT0FBckJDLHNCQUFxQjtnQkFFdEcsSUFBTVQsT0FBT0ssZUFBZUYsT0FBTyxJQUM3QkosT0FBT00sZUFBZUgsT0FBTztnQkFFbkNLLHdCQUF5QixBQUFDLElBQUksQ0FBQ1AsSUFBSSxLQUFLQSxRQUFVLElBQUksQ0FBQ0QsSUFBSSxLQUFLQTtnQkFFaEUsSUFBSVEsdUJBQXVCO29CQUN6QkQsUUFBUUssS0FBSyxDQUFDLEFBQUMsbUJBQW9FRixPQUFsREQsb0JBQW1CLGlDQUFvRCxPQUFyQkMsc0JBQXFCO2dCQUMxRztnQkFFQSxPQUFPRjtZQUNUOzs7O1lBSU9LLEtBQUFBO21CQUFQLFNBQU9BLGdCQUFnQlosSUFBSSxFQUFFRCxJQUFJO2dCQUMvQixJQUFNUyxxQkFBcUJLLElBQUFBLHlDQUFpQyxFQUFDYixNQUFNRCxPQUM3REQsU0FBU1Usb0JBQ1RNLGVBQWUsSUE1Q0pqQixhQTRDcUJDLFFBQVFDLE1BQU1DO2dCQUVwRCxPQUFPYztZQUNUOzs7V0EvQ21CakI7O0FBdUNuQixpQkF2Q21CQSxjQXVDWkcsUUFBTyJ9
@@ -14,9 +14,6 @@ _export(exports, {
14
14
  },
15
15
  get default () {
16
16
  return _default;
17
- },
18
- get lineIndexFromNodeAndTokens () {
19
- return lineIndexFromNodeAndTokens;
20
17
  }
21
18
  });
22
19
  var _constants = require("../constants");
@@ -26,44 +23,18 @@ function _type_of(obj) {
26
23
  }
27
24
  function chainContext(context) {
28
25
  return new Proxy(context, {
29
- get: function(instance, name, receiver) {
30
- var levelsIncludeName = _constants.LEVELS.includes(name);
31
- if (levelsIncludeName) {
32
- return function(message) {
33
- var node = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null;
34
- var level = name, depth = instance.getDepth(), indent = _constants.DOUBLE_SPACE.repeat(depth);
35
- message = "".concat(indent).concat(message);
36
- var fileContext = instance.getFileContext();
37
- fileContext.writeToLog(level, message, node);
38
- };
39
- }
40
- if (name in instance) {
41
- return Reflect.get(instance, name, receiver);
26
+ get: function(context, name, receiver) {
27
+ if (name in context) {
28
+ return Reflect.get(context, name, receiver);
42
29
  }
43
- var _$context = instance.getContext(), value = _$context[name];
44
- return (typeof value === "undefined" ? "undefined" : _type_of(value)) === _constants.FUNCTION ? value.bind(_$context) : value;
30
+ context = context.getContext(); ///
31
+ var value = context[name];
32
+ return (typeof value === "undefined" ? "undefined" : _type_of(value)) === _constants.FUNCTION ? value.bind(context) : value;
45
33
  }
46
34
  });
47
35
  }
48
- function lineIndexFromNodeAndTokens(node, tokens, lineIndex) {
49
- if (node !== null) {
50
- lineIndex = 0;
51
- var firstSignificantTokenIndex = node.getFirstSignificantTokenIndex(tokens);
52
- tokens.some(function(token, tokenIndex) {
53
- var tokenEndOfLineToken = token.isEndOfLineToken();
54
- if (tokenEndOfLineToken) {
55
- lineIndex += 1;
56
- }
57
- if (tokenIndex === firstSignificantTokenIndex) {
58
- return true;
59
- }
60
- });
61
- }
62
- return lineIndex;
63
- }
64
36
  var _default = {
65
- chainContext: chainContext,
66
- lineIndexFromNodeAndTokens: lineIndexFromNodeAndTokens
37
+ chainContext: chainContext
67
38
  };
68
39
 
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29udGV4dC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgTEVWRUxTLCBGVU5DVElPTiwgRE9VQkxFX1NQQUNFIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gY2hhaW5Db250ZXh0KGNvbnRleHQpIHtcbiAgcmV0dXJuIG5ldyBQcm94eShjb250ZXh0LCB7XG4gICAgZ2V0OiAoaW5zdGFuY2UsIG5hbWUsIHJlY2VpdmVyKSA9PiB7XG4gICAgICBjb25zdCBsZXZlbHNJbmNsdWRlTmFtZSA9IExFVkVMUy5pbmNsdWRlcyhuYW1lKTtcblxuICAgICAgaWYgKGxldmVsc0luY2x1ZGVOYW1lKSB7XG4gICAgICAgIHJldHVybiAobWVzc2FnZSwgbm9kZSA9IG51bGwpID0+IHtcbiAgICAgICAgICBjb25zdCBsZXZlbCA9IG5hbWUsIC8vL1xuICAgICAgICAgICAgICAgIGRlcHRoID0gaW5zdGFuY2UuZ2V0RGVwdGgoKSxcbiAgICAgICAgICAgICAgICBpbmRlbnQgPSBET1VCTEVfU1BBQ0UucmVwZWF0KGRlcHRoKTtcblxuICAgICAgICAgIG1lc3NhZ2UgPSBgJHtpbmRlbnR9JHttZXNzYWdlfWA7XG5cbiAgICAgICAgICBjb25zdCBmaWxlQ29udGV4dCA9IGluc3RhbmNlLmdldEZpbGVDb250ZXh0KCk7XG5cbiAgICAgICAgICBmaWxlQ29udGV4dC53cml0ZVRvTG9nKGxldmVsLCBtZXNzYWdlLCBub2RlKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAobmFtZSBpbiBpbnN0YW5jZSkge1xuICAgICAgICByZXR1cm4gUmVmbGVjdC5nZXQoaW5zdGFuY2UsIG5hbWUsIHJlY2VpdmVyKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgY29udGV4dCA9IGluc3RhbmNlLmdldENvbnRleHQoKSxcbiAgICAgICAgICAgIHZhbHVlID0gY29udGV4dFtuYW1lXTtcblxuICAgICAgcmV0dXJuICh0eXBlb2YgdmFsdWUgPT09IEZVTkNUSU9OKSA/XG4gICAgICAgICAgICAgICB2YWx1ZS5iaW5kKGNvbnRleHQpIDpcbiAgICAgICAgICAgICAgICAgdmFsdWU7XG4gICAgfVxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxpbmVJbmRleEZyb21Ob2RlQW5kVG9rZW5zKG5vZGUsIHRva2VucywgbGluZUluZGV4KSB7XG4gIGlmIChub2RlICE9PSBudWxsKSB7XG4gICAgbGluZUluZGV4ID0gMDtcblxuICAgIGNvbnN0IGZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4ID0gbm9kZS5nZXRGaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCh0b2tlbnMpO1xuXG4gICAgdG9rZW5zLnNvbWUoKHRva2VuLCB0b2tlbkluZGV4KSA9PiB7XG4gICAgICBjb25zdCB0b2tlbkVuZE9mTGluZVRva2VuID0gdG9rZW4uaXNFbmRPZkxpbmVUb2tlbigpO1xuXG4gICAgICBpZiAodG9rZW5FbmRPZkxpbmVUb2tlbikge1xuICAgICAgICBsaW5lSW5kZXggKz0gMTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRva2VuSW5kZXggPT09IGZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4KSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIGxpbmVJbmRleDtcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBjaGFpbkNvbnRleHQsXG4gIGxpbmVJbmRleEZyb21Ob2RlQW5kVG9rZW5zXG59O1xuIl0sIm5hbWVzIjpbImNoYWluQ29udGV4dCIsImxpbmVJbmRleEZyb21Ob2RlQW5kVG9rZW5zIiwiY29udGV4dCIsIlByb3h5IiwiZ2V0IiwiaW5zdGFuY2UiLCJuYW1lIiwicmVjZWl2ZXIiLCJsZXZlbHNJbmNsdWRlTmFtZSIsIkxFVkVMUyIsImluY2x1ZGVzIiwibWVzc2FnZSIsIm5vZGUiLCJsZXZlbCIsImRlcHRoIiwiZ2V0RGVwdGgiLCJpbmRlbnQiLCJET1VCTEVfU1BBQ0UiLCJyZXBlYXQiLCJmaWxlQ29udGV4dCIsImdldEZpbGVDb250ZXh0Iiwid3JpdGVUb0xvZyIsIlJlZmxlY3QiLCJnZXRDb250ZXh0IiwidmFsdWUiLCJGVU5DVElPTiIsImJpbmQiLCJ0b2tlbnMiLCJsaW5lSW5kZXgiLCJmaXJzdFNpZ25pZmljYW50VG9rZW5JbmRleCIsImdldEZpcnN0U2lnbmlmaWNhbnRUb2tlbkluZGV4Iiwic29tZSIsInRva2VuIiwidG9rZW5JbmRleCIsInRva2VuRW5kT2ZMaW5lVG9rZW4iLCJpc0VuZE9mTGluZVRva2VuIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUFJZ0JBO2VBQUFBOztRQXVEaEI7ZUFBQTs7UUF0QmdCQztlQUFBQTs7O3lCQW5DK0I7Ozs7O0FBRXhDLFNBQVNELGFBQWFFLE9BQU87SUFDbEMsT0FBTyxJQUFJQyxNQUFNRCxTQUFTO1FBQ3hCRSxLQUFLLFNBQUNDLFVBQVVDLE1BQU1DO1lBQ3BCLElBQU1DLG9CQUFvQkMsaUJBQU0sQ0FBQ0MsUUFBUSxDQUFDSjtZQUUxQyxJQUFJRSxtQkFBbUI7Z0JBQ3JCLE9BQU8sU0FBQ0c7d0JBQVNDLHdFQUFPO29CQUN0QixJQUFNQyxRQUFRUCxNQUNSUSxRQUFRVCxTQUFTVSxRQUFRLElBQ3pCQyxTQUFTQyx1QkFBWSxDQUFDQyxNQUFNLENBQUNKO29CQUVuQ0gsVUFBVSxBQUFDLEdBQVdBLE9BQVRLLFFBQWlCLE9BQVJMO29CQUV0QixJQUFNUSxjQUFjZCxTQUFTZSxjQUFjO29CQUUzQ0QsWUFBWUUsVUFBVSxDQUFDUixPQUFPRixTQUFTQztnQkFDekM7WUFDRjtZQUVBLElBQUlOLFFBQVFELFVBQVU7Z0JBQ3BCLE9BQU9pQixRQUFRbEIsR0FBRyxDQUFDQyxVQUFVQyxNQUFNQztZQUNyQztZQUVBLElBQU1MLFlBQVVHLFNBQVNrQixVQUFVLElBQzdCQyxRQUFRdEIsU0FBTyxDQUFDSSxLQUFLO1lBRTNCLE9BQU8sQUFBQyxDQUFBLE9BQU9rQixzQ0FBUCxTQUFPQSxNQUFJLE1BQU1DLG1CQUFRLEdBQ3hCRCxNQUFNRSxJQUFJLENBQUN4QixhQUNUc0I7UUFDYjtJQUNGO0FBQ0Y7QUFFTyxTQUFTdkIsMkJBQTJCVyxJQUFJLEVBQUVlLE1BQU0sRUFBRUMsU0FBUztJQUNoRSxJQUFJaEIsU0FBUyxNQUFNO1FBQ2pCZ0IsWUFBWTtRQUVaLElBQU1DLDZCQUE2QmpCLEtBQUtrQiw2QkFBNkIsQ0FBQ0g7UUFFdEVBLE9BQU9JLElBQUksQ0FBQyxTQUFDQyxPQUFPQztZQUNsQixJQUFNQyxzQkFBc0JGLE1BQU1HLGdCQUFnQjtZQUVsRCxJQUFJRCxxQkFBcUI7Z0JBQ3ZCTixhQUFhO1lBQ2Y7WUFFQSxJQUFJSyxlQUFlSiw0QkFBNEI7Z0JBQzdDLE9BQU87WUFDVDtRQUNGO0lBQ0Y7SUFFQSxPQUFPRDtBQUNUO0lBRUEsV0FBZTtJQUNiNUIsY0FBQUE7SUFDQUMsNEJBQUFBO0FBQ0YifQ==
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29udGV4dC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRlVOQ1RJT04gfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBjaGFpbkNvbnRleHQoY29udGV4dCkge1xuICByZXR1cm4gbmV3IFByb3h5KGNvbnRleHQsIHtcbiAgICBnZXQ6IChjb250ZXh0LCBuYW1lLCByZWNlaXZlcikgPT4ge1xuICAgICAgaWYgKG5hbWUgaW4gY29udGV4dCkge1xuICAgICAgICByZXR1cm4gUmVmbGVjdC5nZXQoY29udGV4dCwgbmFtZSwgcmVjZWl2ZXIpO1xuICAgICAgfVxuXG4gICAgICBjb250ZXh0ID0gY29udGV4dC5nZXRDb250ZXh0KCk7IC8vL1xuXG4gICAgICBjb25zdCB2YWx1ZSA9IGNvbnRleHRbbmFtZV07XG5cbiAgICAgIHJldHVybiAodHlwZW9mIHZhbHVlID09PSBGVU5DVElPTikgP1xuICAgICAgICAgICAgICAgdmFsdWUuYmluZChjb250ZXh0KSA6XG4gICAgICAgICAgICAgICAgIHZhbHVlO1xuICAgIH1cbiAgfSk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgY2hhaW5Db250ZXh0XG59O1xuIl0sIm5hbWVzIjpbImNoYWluQ29udGV4dCIsImNvbnRleHQiLCJQcm94eSIsImdldCIsIm5hbWUiLCJyZWNlaXZlciIsIlJlZmxlY3QiLCJnZXRDb250ZXh0IiwidmFsdWUiLCJGVU5DVElPTiIsImJpbmQiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQUlnQkE7ZUFBQUE7O1FBa0JoQjtlQUFBOzs7eUJBcEJ5Qjs7Ozs7QUFFbEIsU0FBU0EsYUFBYUMsT0FBTztJQUNsQyxPQUFPLElBQUlDLE1BQU1ELFNBQVM7UUFDeEJFLEtBQUssU0FBQ0YsU0FBU0csTUFBTUM7WUFDbkIsSUFBSUQsUUFBUUgsU0FBUztnQkFDbkIsT0FBT0ssUUFBUUgsR0FBRyxDQUFDRixTQUFTRyxNQUFNQztZQUNwQztZQUVBSixVQUFVQSxRQUFRTSxVQUFVLElBQUksR0FBRztZQUVuQyxJQUFNQyxRQUFRUCxPQUFPLENBQUNHLEtBQUs7WUFFM0IsT0FBTyxBQUFDLENBQUEsT0FBT0ksc0NBQVAsU0FBT0EsTUFBSSxNQUFNQyxtQkFBUSxHQUN4QkQsTUFBTUUsSUFBSSxDQUFDVCxXQUNUTztRQUNiO0lBQ0Y7QUFDRjtJQUVBLFdBQWU7SUFDYlIsY0FBQUE7QUFDRiJ9
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get combinedCustomGrammarFromNothing () {
13
+ return combinedCustomGrammarFromNothing;
14
+ },
15
+ get combinedCustomGrammarFromReleaseContexts () {
16
+ return combinedCustomGrammarFromReleaseContexts;
17
+ },
18
+ get customGrammarFromNameAndEntries () {
19
+ return customGrammarFromNameAndEntries;
20
+ },
21
+ get default () {
22
+ return _default;
23
+ }
24
+ });
25
+ var _occamcustomgrammars = require("occam-custom-grammars");
26
+ function customGrammarFromNameAndEntries(name, entries) {
27
+ var termBNF = entries.getTermBNF(), statementBNF = entries.getStatementBNF(), typeVocabulary = entries.getTypeVocabulary(), symbolVocabulary = entries.getSymbolVocabulary(), customGrammar = _occamcustomgrammars.CustomGrammar.fromNameTermBNFStatementBNFTypeVocabularyAndSymbolVocabulary(name, termBNF, statementBNF, typeVocabulary, symbolVocabulary);
28
+ return customGrammar;
29
+ }
30
+ function combinedCustomGrammarFromNothing() {
31
+ var customGrammars = [], combinedCustomGrammar = _occamcustomgrammars.CombinedCustomGrammar.fromCustomGrammars(customGrammars);
32
+ return combinedCustomGrammar;
33
+ }
34
+ function combinedCustomGrammarFromReleaseContexts(releaseContexts) {
35
+ var customGrammars = releaseContexts.map(function(releaseContext) {
36
+ var customGrammar = releaseContext.getCustomGrammar();
37
+ return customGrammar;
38
+ });
39
+ customGrammars.reverse(); ///
40
+ var combinedCustomGrammar = _occamcustomgrammars.CombinedCustomGrammar.fromCustomGrammars(customGrammars);
41
+ return combinedCustomGrammar;
42
+ }
43
+ var _default = {
44
+ customGrammarFromNameAndEntries: customGrammarFromNameAndEntries,
45
+ combinedCustomGrammarFromNothing: combinedCustomGrammarFromNothing,
46
+ combinedCustomGrammarFromReleaseContexts: combinedCustomGrammarFromReleaseContexts
47
+ };
48
+
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY3VzdG9tR3JhbW1hci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgQ3VzdG9tR3JhbW1hciwgQ29tYmluZWRDdXN0b21HcmFtbWFyIH0gZnJvbSBcIm9jY2FtLWN1c3RvbS1ncmFtbWFyc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gY3VzdG9tR3JhbW1hckZyb21OYW1lQW5kRW50cmllcyhuYW1lLCBlbnRyaWVzKSB7XG4gIGNvbnN0IHRlcm1CTkYgPSBlbnRyaWVzLmdldFRlcm1CTkYoKSxcbiAgICAgICAgc3RhdGVtZW50Qk5GID0gZW50cmllcy5nZXRTdGF0ZW1lbnRCTkYoKSxcbiAgICAgICAgdHlwZVZvY2FidWxhcnkgPSBlbnRyaWVzLmdldFR5cGVWb2NhYnVsYXJ5KCksXG4gICAgICAgIHN5bWJvbFZvY2FidWxhcnkgPSBlbnRyaWVzLmdldFN5bWJvbFZvY2FidWxhcnkoKSxcbiAgICAgICAgY3VzdG9tR3JhbW1hciA9IEN1c3RvbUdyYW1tYXIuZnJvbU5hbWVUZXJtQk5GU3RhdGVtZW50Qk5GVHlwZVZvY2FidWxhcnlBbmRTeW1ib2xWb2NhYnVsYXJ5KG5hbWUsIHRlcm1CTkYsIHN0YXRlbWVudEJORiwgdHlwZVZvY2FidWxhcnksIHN5bWJvbFZvY2FidWxhcnkpO1xuXG4gIHJldHVybiBjdXN0b21HcmFtbWFyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29tYmluZWRDdXN0b21HcmFtbWFyRnJvbU5vdGhpbmcoKSB7XG4gIGNvbnN0IGN1c3RvbUdyYW1tYXJzID0gW10sXG4gICAgICAgIGNvbWJpbmVkQ3VzdG9tR3JhbW1hciA9IENvbWJpbmVkQ3VzdG9tR3JhbW1hci5mcm9tQ3VzdG9tR3JhbW1hcnMoY3VzdG9tR3JhbW1hcnMpO1xuXG4gIHJldHVybiBjb21iaW5lZEN1c3RvbUdyYW1tYXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21iaW5lZEN1c3RvbUdyYW1tYXJGcm9tUmVsZWFzZUNvbnRleHRzKHJlbGVhc2VDb250ZXh0cykge1xuICBjb25zdCBjdXN0b21HcmFtbWFycyA9IHJlbGVhc2VDb250ZXh0cy5tYXAoKHJlbGVhc2VDb250ZXh0KSA9PiB7XG4gICAgY29uc3QgY3VzdG9tR3JhbW1hciA9IHJlbGVhc2VDb250ZXh0LmdldEN1c3RvbUdyYW1tYXIoKTtcblxuICAgIHJldHVybiBjdXN0b21HcmFtbWFyO1xuICB9KTtcblxuICBjdXN0b21HcmFtbWFycy5yZXZlcnNlKCk7IC8vL1xuXG4gIGNvbnN0IGNvbWJpbmVkQ3VzdG9tR3JhbW1hciA9IENvbWJpbmVkQ3VzdG9tR3JhbW1hci5mcm9tQ3VzdG9tR3JhbW1hcnMoY3VzdG9tR3JhbW1hcnMpO1xuXG4gIHJldHVybiBjb21iaW5lZEN1c3RvbUdyYW1tYXI7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgY3VzdG9tR3JhbW1hckZyb21OYW1lQW5kRW50cmllcyxcbiAgY29tYmluZWRDdXN0b21HcmFtbWFyRnJvbU5vdGhpbmcsXG4gIGNvbWJpbmVkQ3VzdG9tR3JhbW1hckZyb21SZWxlYXNlQ29udGV4dHNcbn07XG4iXSwibmFtZXMiOlsiY29tYmluZWRDdXN0b21HcmFtbWFyRnJvbU5vdGhpbmciLCJjb21iaW5lZEN1c3RvbUdyYW1tYXJGcm9tUmVsZWFzZUNvbnRleHRzIiwiY3VzdG9tR3JhbW1hckZyb21OYW1lQW5kRW50cmllcyIsIm5hbWUiLCJlbnRyaWVzIiwidGVybUJORiIsImdldFRlcm1CTkYiLCJzdGF0ZW1lbnRCTkYiLCJnZXRTdGF0ZW1lbnRCTkYiLCJ0eXBlVm9jYWJ1bGFyeSIsImdldFR5cGVWb2NhYnVsYXJ5Iiwic3ltYm9sVm9jYWJ1bGFyeSIsImdldFN5bWJvbFZvY2FidWxhcnkiLCJjdXN0b21HcmFtbWFyIiwiQ3VzdG9tR3JhbW1hciIsImZyb21OYW1lVGVybUJORlN0YXRlbWVudEJORlR5cGVWb2NhYnVsYXJ5QW5kU3ltYm9sVm9jYWJ1bGFyeSIsImN1c3RvbUdyYW1tYXJzIiwiY29tYmluZWRDdXN0b21HcmFtbWFyIiwiQ29tYmluZWRDdXN0b21HcmFtbWFyIiwiZnJvbUN1c3RvbUdyYW1tYXJzIiwicmVsZWFzZUNvbnRleHRzIiwibWFwIiwicmVsZWFzZUNvbnRleHQiLCJnZXRDdXN0b21HcmFtbWFyIiwicmV2ZXJzZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBY2dCQTtlQUFBQTs7UUFPQUM7ZUFBQUE7O1FBakJBQztlQUFBQTs7UUErQmhCO2VBQUE7OzttQ0FqQ3FEO0FBRTlDLFNBQVNBLGdDQUFnQ0MsSUFBSSxFQUFFQyxPQUFPO0lBQzNELElBQU1DLFVBQVVELFFBQVFFLFVBQVUsSUFDNUJDLGVBQWVILFFBQVFJLGVBQWUsSUFDdENDLGlCQUFpQkwsUUFBUU0saUJBQWlCLElBQzFDQyxtQkFBbUJQLFFBQVFRLG1CQUFtQixJQUM5Q0MsZ0JBQWdCQyxrQ0FBYSxDQUFDQyw0REFBNEQsQ0FBQ1osTUFBTUUsU0FBU0UsY0FBY0UsZ0JBQWdCRTtJQUU5SSxPQUFPRTtBQUNUO0FBRU8sU0FBU2I7SUFDZCxJQUFNZ0IsaUJBQWlCLEVBQUUsRUFDbkJDLHdCQUF3QkMsMENBQXFCLENBQUNDLGtCQUFrQixDQUFDSDtJQUV2RSxPQUFPQztBQUNUO0FBRU8sU0FBU2hCLHlDQUF5Q21CLGVBQWU7SUFDdEUsSUFBTUosaUJBQWlCSSxnQkFBZ0JDLEdBQUcsQ0FBQyxTQUFDQztRQUMxQyxJQUFNVCxnQkFBZ0JTLGVBQWVDLGdCQUFnQjtRQUVyRCxPQUFPVjtJQUNUO0lBRUFHLGVBQWVRLE9BQU8sSUFBSSxHQUFHO0lBRTdCLElBQU1QLHdCQUF3QkMsMENBQXFCLENBQUNDLGtCQUFrQixDQUFDSDtJQUV2RSxPQUFPQztBQUNUO0lBRUEsV0FBZTtJQUNiZixpQ0FBQUE7SUFDQUYsa0NBQUFBO0lBQ0FDLDBDQUFBQTtBQUNGIn0=