occam-nominal 1.0.630 → 1.0.631

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.
@@ -50,12 +50,12 @@ const _default = (0, _elements.define)(class TypeAlias extends _occamlanguages.E
50
50
  verify = unbreakable(function(context, forward, back) {
51
51
  const typeAliasString = this.getString(); ///
52
52
  context.trace(`Verifying the '${typeAliasString}' type alias...`);
53
- const verifyTypeName = this.verifyTypeName.bind(this), verifyImplicitType = this.verifyImplicitType.bind(this), verifyExplicitType = this.verifyExplicitType.bind(this);
53
+ const implicit = this.isImplicit(), verifyTypeName = this.verifyTypeName.bind(this), verifyImplicitType = this.verifyImplicitType.bind(this), verifyExplicitType = this.verifyExplicitType.bind(this);
54
54
  return all([
55
55
  verifyTypeName,
56
56
  verifyImplicitType,
57
57
  verifyExplicitType
58
- ], context, (context, back)=>{
58
+ ], implicit, context, (implicit, context, back)=>{
59
59
  context.debug(`...verified the '${typeAliasString}' type alias.`);
60
60
  return forward(context, back);
61
61
  }, (exception)=>{
@@ -66,7 +66,7 @@ const _default = (0, _elements.define)(class TypeAlias extends _occamlanguages.E
66
66
  return back();
67
67
  });
68
68
  });
69
- verifyTypeName(context, forward, back) {
69
+ verifyTypeName(implicit, context, forward, back) {
70
70
  const typeAliasString = this.getString(); ///
71
71
  context.trace(`Verifying the '${typeAliasString}' type alias's type name...`);
72
72
  const includeRelease = true, typeAliasPresent = context.isTypeAliasPresentByTypeName(this.typeName, includeRelease);
@@ -80,12 +80,11 @@ const _default = (0, _elements.define)(class TypeAlias extends _occamlanguages.E
80
80
  return back();
81
81
  }
82
82
  context.debug(`...verified the '${typeAliasString}' type alias's type name.`);
83
- return forward(context, back);
83
+ return forward(implicit, context, back);
84
84
  }
85
- verifyImplicitType(context, forward, back) {
86
- const implicit = this.isImplicit();
85
+ verifyImplicitType(implicit, context, forward, back) {
87
86
  if (!implicit) {
88
- return forward(context, back);
87
+ return forward(implicit, context, back);
89
88
  }
90
89
  const typeAliasString = this.getString(); ///
91
90
  context.trace(`Verifying the '${typeAliasString}' type alias's implicit type...`);
@@ -101,12 +100,11 @@ const _default = (0, _elements.define)(class TypeAlias extends _occamlanguages.E
101
100
  const firstType = first(types), type = firstType; ///
102
101
  this.type = type; ///
103
102
  context.debug(`...verified the '${typeAliasString}' type alias's implicit type...`);
104
- return forward(context, back);
103
+ return forward(implicit, context, back);
105
104
  }
106
- verifyExplicitType(context, forward, back) {
107
- const explicit = this.isExplicit();
108
- if (!explicit) {
109
- return forward(context, back);
105
+ verifyExplicitType(implicit, context, forward, back) {
106
+ if (implicit) {
107
+ return forward(implicit, context, back);
110
108
  }
111
109
  const typeAliasString = this.getString(); ///
112
110
  context.trace(`Verifying the '${typeAliasString}' type alias's explicit type...`);
@@ -127,7 +125,7 @@ const _default = (0, _elements.define)(class TypeAlias extends _occamlanguages.E
127
125
  const firstType = first(types), type = firstType; ///
128
126
  this.type = type; ///
129
127
  context.debug(`...verified the '${typeAliasString}' type alias's explicittype.`);
130
- return forward(context, back);
128
+ return forward(implicit, context, back);
131
129
  }
132
130
  toJSON() {
133
131
  let json;
@@ -150,4 +148,4 @@ const _default = (0, _elements.define)(class TypeAlias extends _occamlanguages.E
150
148
  }
151
149
  });
152
150
 
153
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3R5cGVBbGlhcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5pbXBvcnQgeyBFbGVtZW50LCBicmVha1BvaW50VXRpbGl0aWVzLCBjb250aW51YXRpb25VdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgaW5zdGFudGlhdGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2NvbnRleHRcIjtcbmltcG9ydCB7IGluc3RhbnRpYXRlVHlwZUFsaWFzIH0gZnJvbSBcIi4uL3Byb2Nlc3MvaW5zdGFudGlhdGVcIjtcbmltcG9ydCB7IHR5cGVGcm9tSlNPTiwgdHlwZVRvVHlwZUpTT04gfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2pzb25cIjtcblxuY29uc3QgeyBhbGwgfSA9IGNvbnRpbnVhdGlvblV0aWxpdGllcyxcbiAgICAgIHsgZmlyc3QgfSA9IGFycmF5VXRpbGl0aWVzLFxuICAgICAgeyB1bmJyZWFrYWJsZSB9ID0gYnJlYWtQb2ludFV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFR5cGVBbGlhcyBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHR5cGUsIHR5cGVOYW1lKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgdGhpcy50eXBlTmFtZSA9IHR5cGVOYW1lO1xuICB9XG5cbiAgZ2V0VHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlO1xuICB9XG5cbiAgZ2V0VHlwZU5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZU5hbWU7XG4gIH1cblxuICBnZXRUeXBlQWxpYXNOb2RlKCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldE5vZGUoKSxcbiAgICAgICAgICB0eXBlQWxpYXNOb2RlID0gbm9kZTsgIC8vL1xuXG4gICAgcmV0dXJuIHR5cGVBbGlhc05vZGU7XG4gIH1cblxuICBpc0ltcGxpY2l0KCkge1xuICAgIGNvbnN0IGltcGxpY2l0ID0gKHRoaXMudHlwZSA9PT0gbnVsbCk7XG5cbiAgICByZXR1cm4gaW1wbGljaXQ7XG4gIH1cblxuICBpc0V4cGxpY2l0KCkge1xuICAgIGNvbnN0IGltcGxpY2l0ID0gdGhpcy5pc0ltcGxpY2l0KCksXG4gICAgICAgICAgZXhwbGljaXQgPSAhaW1wbGljaXQ7IC8vL1xuXG4gICAgcmV0dXJuIGV4cGxpY2l0O1xuICB9XG5cbiAgZ2V0QWxpYXNlZFR5cGUoKSB7XG4gICAgY29uc3QgYWxpYXNlZFR5cGUgPSB0aGlzLnR5cGU7XG5cbiAgICByZXR1cm4gYWxpYXNlZFR5cGU7XG4gIH1cblxuICBjb21wYXJlVHlwZU5hbWUodHlwZU5hbWUpIHtcbiAgICBjb25zdCB0eXBlTmFtZUNvbXBhcmVzID0gKHRoaXMudHlwZU5hbWUgPT09IHR5cGVOYW1lKTtcblxuICAgIHJldHVybiB0eXBlTmFtZUNvbXBhcmVzO1xuICB9XG5cbiAgdmVyaWZ5ID0gdW5icmVha2FibGUoZnVuY3Rpb24gKGNvbnRleHQsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCB0eXBlQWxpYXNTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3R5cGVBbGlhc1N0cmluZ30nIHR5cGUgYWxpYXMuLi5gKTtcblxuICAgIGNvbnN0IHZlcmlmeVR5cGVOYW1lID0gdGhpcy52ZXJpZnlUeXBlTmFtZS5iaW5kKHRoaXMpLFxuICAgICAgICAgIHZlcmlmeUltcGxpY2l0VHlwZSA9IHRoaXMudmVyaWZ5SW1wbGljaXRUeXBlLmJpbmQodGhpcyksXG4gICAgICAgICAgdmVyaWZ5RXhwbGljaXRUeXBlID0gdGhpcy52ZXJpZnlFeHBsaWNpdFR5cGUuYmluZCh0aGlzKTtcblxuICAgIHJldHVybiBhbGwoW1xuICAgICAgdmVyaWZ5VHlwZU5hbWUsXG4gICAgICB2ZXJpZnlJbXBsaWNpdFR5cGUsXG4gICAgICB2ZXJpZnlFeHBsaWNpdFR5cGVcbiAgICBdLCBjb250ZXh0LCAoY29udGV4dCwgYmFjaykgPT4ge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3R5cGVBbGlhc1N0cmluZ30nIHR5cGUgYWxpYXMuYCk7XG5cbiAgICAgIHJldHVybiBmb3J3YXJkKGNvbnRleHQsIGJhY2spO1xuICAgIH0sIChleGNlcHRpb24pID0+IHtcbiAgICAgIGlmIChleGNlcHRpb24pIHtcbiAgICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICAgIH1cblxuICAgICAgY29udGV4dC50cmFjZShgVW5hYmxlIHRvIHZlcmlmeSB0aGUgJyR7dHlwZUFsaWFzU3RyaW5nfScgdHlwZSBhbGlhcy5gKTtcblxuICAgICAgcmV0dXJuIGJhY2soKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgdmVyaWZ5VHlwZU5hbWUoY29udGV4dCwgZm9yd2FyZCwgYmFjaykge1xuICAgIGNvbnN0IHR5cGVBbGlhc1N0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dHlwZUFsaWFzU3RyaW5nfScgdHlwZSBhbGlhcydzIHR5cGUgbmFtZS4uLmApO1xuXG4gICAgY29uc3QgaW5jbHVkZVJlbGVhc2UgPSB0cnVlLFxuICAgICAgICAgIHR5cGVBbGlhc1ByZXNlbnQgPSBjb250ZXh0LmlzVHlwZUFsaWFzUHJlc2VudEJ5VHlwZU5hbWUodGhpcy50eXBlTmFtZSwgaW5jbHVkZVJlbGVhc2UpO1xuXG4gICAgaWYgKHR5cGVBbGlhc1ByZXNlbnQpIHtcbiAgICAgIGNvbnRleHQudHJhY2UoYFRoZSAnJHt0aGlzLnR5cGVOYW1lfScgdHlwZSBhbGlhcyBpcyBwcmVzZW50IGxvY2FsbHkuYCk7XG5cbiAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgfVxuXG4gICAgY29uc3QgaW5jbHVkZURlcGVuZGVuY2llcyA9IGZhbHNlLFxuICAgICAgICAgIHR5cGVQcmVzZW50ID0gY29udGV4dC5pc1R5cGVQcmVzZW50QnlUeXBlTmFtZSh0aGlzLnR5cGVOYW1lLCBpbmNsdWRlUmVsZWFzZSwgaW5jbHVkZURlcGVuZGVuY2llcyk7XG5cbiAgICBpZiAodHlwZVByZXNlbnQpIHtcbiAgICAgIGNvbnRleHQudHJhY2UoYFRoZSAnJHt0aGlzLnR5cGVOYW1lfScgdHlwZSBpcyBwcmVzZW50IGxvY2FsbHkuYCk7XG5cbiAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgfVxuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3R5cGVBbGlhc1N0cmluZ30nIHR5cGUgYWxpYXMncyB0eXBlIG5hbWUuYCk7XG5cbiAgICByZXR1cm4gZm9yd2FyZChjb250ZXh0LCBiYWNrKTtcbiAgfVxuXG4gIHZlcmlmeUltcGxpY2l0VHlwZShjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSB7XG4gICAgY29uc3QgaW1wbGljaXQgPSB0aGlzLmlzSW1wbGljaXQoKTtcblxuICAgIGlmICghaW1wbGljaXQpIHtcbiAgICAgIHJldHVybiBmb3J3YXJkKGNvbnRleHQsIGJhY2spO1xuICAgIH1cblxuICAgIGNvbnN0IHR5cGVBbGlhc1N0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dHlwZUFsaWFzU3RyaW5nfScgdHlwZSBhbGlhcydzIGltcGxpY2l0IHR5cGUuLi5gKTtcblxuICAgIGNvbnN0IGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSxcbiAgICAgICAgICBpbmNsdWRlRGVwZW5kZW5jaWVzID0gdHJ1ZSxcbiAgICAgICAgICB0eXBlcyA9IGNvbnRleHQuZmluZFR5cGVzQnlUeXBlTmFtZSh0aGlzLnR5cGVOYW1lLCBpbmNsdWRlUmVsZWFzZSwgaW5jbHVkZURlcGVuZGVuY2llcyksXG4gICAgICAgICAgdHlwZXNMZW5ndGggPSB0eXBlcy5sZW5ndGg7XG5cbiAgICBpZiAodHlwZXNMZW5ndGggPT09IDApIHtcbiAgICAgIGNvbnRleHQudHJhY2UoYFRoZSAnJHt0eXBlQWxpYXNTdHJpbmd9JyB0eXBlIGFsaWFzJ3MgaW1wbGljaXQgdHlwZSBpcyBub3QgcHJlc2VuZXQgZ2xvYmFsbHkuYCk7XG5cbiAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVzTGVuZ3RoID4gMSkge1xuICAgICAgY29udGV4dC50cmFjZShgVGhlICcke3R5cGVBbGlhc1N0cmluZ30nIHR5cGUgYWxpYXMncyBpbXBsaWNpdCB0eXBlIGlzIGFtYmlndW91cyBnbG9iYWxseS5gKTtcblxuICAgICAgcmV0dXJuIGJhY2soKTtcbiAgICB9XG5cbiAgICBjb25zdCBmaXJzdFR5cGUgPSBmaXJzdCh0eXBlcyksXG4gICAgICAgICAgdHlwZSA9IGZpcnN0VHlwZTsgLy8vXG5cbiAgICB0aGlzLnR5cGUgPSB0eXBlOyAvLy9cblxuICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHt0eXBlQWxpYXNTdHJpbmd9JyB0eXBlIGFsaWFzJ3MgaW1wbGljaXQgdHlwZS4uLmApO1xuXG4gICAgcmV0dXJuIGZvcndhcmQoY29udGV4dCwgYmFjayk7XG4gIH1cblxuICB2ZXJpZnlFeHBsaWNpdFR5cGUoY29udGV4dCwgZm9yd2FyZCwgYmFjaykge1xuICAgIGNvbnN0IGV4cGxpY2l0ID0gdGhpcy5pc0V4cGxpY2l0KCk7XG5cbiAgICBpZiAoIWV4cGxpY2l0KSB7XG4gICAgICByZXR1cm4gZm9yd2FyZChjb250ZXh0LCBiYWNrKTtcbiAgICB9XG5cbiAgICBjb25zdCB0eXBlQWxpYXNTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3R5cGVBbGlhc1N0cmluZ30nIHR5cGUgYWxpYXMncyBleHBsaWNpdCB0eXBlLi4uYCk7XG5cbiAgICBjb25zdCB0eXBlUHJlZml4ZWQgPSB0aGlzLnR5cGUuaXNQcmVmaXhlZCgpO1xuXG4gICAgaWYgKCF0eXBlUHJlZml4ZWQpIHtcbiAgICAgIGNvbnRleHQudHJhY2UoYFRoZSAnJHt0eXBlQWxpYXNTdHJpbmd9JyB0eXBlIGFsaWFzJ3MgZXhwbGljaXQgdHlwZSBpcyBub3QgcHJlZml4ZWQuYCk7XG5cbiAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgfVxuXG4gICAgY29uc3QgcHJlZml4ZWRUeXBlTmFtZSA9IHRoaXMudHlwZS5nZXRQcmVmaXhlZFR5cGVOYW1lKCksXG4gICAgICAgICAgaW5jbHVkZVJlbGVhc2UgPSB0cnVlLFxuICAgICAgICAgIGluY2x1ZGVEZXBlbmRlbmNpZXMgPSB0cnVlLFxuICAgICAgICAgIHR5cGVzID0gY29udGV4dC5maW5kVHlwZXNCeVByZWZpeGVkVHlwZU5hbWUocHJlZml4ZWRUeXBlTmFtZSwgaW5jbHVkZVJlbGVhc2UsIGluY2x1ZGVEZXBlbmRlbmNpZXMpLFxuICAgICAgICAgIHR5cGVzTGVuZ3RoID0gdHlwZXMubGVuZ3RoO1xuXG4gICAgaWYgKHR5cGVzTGVuZ3RoID09PSAwKSB7XG4gICAgICBjb250ZXh0LnRyYWNlKGBUaGUgJyR7dHlwZUFsaWFzU3RyaW5nfScgdHlwZSBhbGlhcydzIGV4cGxpY2l0IHR5cGUgaXMgbm90IHByZXNlbnQgZ2xvYmFsbHkuYCk7XG5cbiAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVzTGVuZ3RoID4gMSkge1xuICAgICAgY29udGV4dC50cmFjZShgVGhlICcke3R5cGVBbGlhc1N0cmluZ30nIHR5cGUgYWxpYXMncyBleHBsaWNpdCB0eXBlIGlzIGFtYmlndW91cyBnbG9iYWxseS5gKTtcblxuICAgICAgcmV0dXJuIGJhY2soKTtcbiAgICB9XG5cbiAgICBjb25zdCBmaXJzdFR5cGUgPSBmaXJzdCh0eXBlcyksXG4gICAgICAgICAgdHlwZSA9IGZpcnN0VHlwZTsgLy8vXG5cbiAgICB0aGlzLnR5cGUgPSB0eXBlOyAvLy9cblxuICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHt0eXBlQWxpYXNTdHJpbmd9JyB0eXBlIGFsaWFzJ3MgZXhwbGljaXR0eXBlLmApO1xuXG4gICAgcmV0dXJuIGZvcndhcmQoY29udGV4dCwgYmFjayk7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgbGV0IGpzb247XG5cbiAgICBjb25zdCBzdHJpbmcgPSB0aGlzLmdldFN0cmluZygpLFxuICAgICAgICAgIHR5cGVKU09OID0gdHlwZVRvVHlwZUpTT04odGhpcy50eXBlKSxcbiAgICAgICAgICB0eXBlID0gdHlwZUpTT047ICAvLy9cblxuICAgIGpzb24gPSB7XG4gICAgICBzdHJpbmcsXG4gICAgICB0eXBlXG4gICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlR5cGVBbGlhc1wiO1xuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gICAgbGV0IHR5cGVBbGlhcztcblxuICAgIGluc3RhbnRpYXRlKChjb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCB7IHN0cmluZyB9ID0ganNvbixcbiAgICAgICAgICAgIHR5cGVBbGlhc05vZGUgPSBpbnN0YW50aWF0ZVR5cGVBbGlhcyhzdHJpbmcsIGNvbnRleHQpLFxuICAgICAgICAgICAgbm9kZSA9IHR5cGVBbGlhc05vZGUsIC8vL1xuICAgICAgICAgICAgYnJlYWtQb2ludCA9IG51bGwsXG4gICAgICAgICAgICB0eXBlID0gdHlwZUZyb21KU09OKGpzb24sIGNvbnRleHQpLFxuICAgICAgICAgICAgdHlwZU5hbWUgPSB0eXBlQWxpYXNOb2RlLmdldFR5cGVOYW1lKCk7XG5cbiAgICAgIGNvbnRleHQgPSBudWxsOyAvLy9cblxuICAgICAgdHlwZUFsaWFzID0gbmV3IFR5cGVBbGlhcyhjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHR5cGUsIHR5cGVOYW1lKTtcbiAgICB9LCBjb250ZXh0KTtcblxuICAgIHJldHVybiB0eXBlQWxpYXM7XG4gIH1cbn0pO1xuIl0sIm5hbWVzIjpbImFsbCIsImNvbnRpbnVhdGlvblV0aWxpdGllcyIsImZpcnN0IiwiYXJyYXlVdGlsaXRpZXMiLCJ1bmJyZWFrYWJsZSIsImJyZWFrUG9pbnRVdGlsaXRpZXMiLCJkZWZpbmUiLCJUeXBlQWxpYXMiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwidHlwZSIsInR5cGVOYW1lIiwiZ2V0VHlwZSIsImdldFR5cGVOYW1lIiwiZ2V0VHlwZUFsaWFzTm9kZSIsImdldE5vZGUiLCJ0eXBlQWxpYXNOb2RlIiwiaXNJbXBsaWNpdCIsImltcGxpY2l0IiwiaXNFeHBsaWNpdCIsImV4cGxpY2l0IiwiZ2V0QWxpYXNlZFR5cGUiLCJhbGlhc2VkVHlwZSIsImNvbXBhcmVUeXBlTmFtZSIsInR5cGVOYW1lQ29tcGFyZXMiLCJ2ZXJpZnkiLCJmb3J3YXJkIiwiYmFjayIsInR5cGVBbGlhc1N0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwidmVyaWZ5VHlwZU5hbWUiLCJiaW5kIiwidmVyaWZ5SW1wbGljaXRUeXBlIiwidmVyaWZ5RXhwbGljaXRUeXBlIiwiZGVidWciLCJleGNlcHRpb24iLCJpbmNsdWRlUmVsZWFzZSIsInR5cGVBbGlhc1ByZXNlbnQiLCJpc1R5cGVBbGlhc1ByZXNlbnRCeVR5cGVOYW1lIiwiaW5jbHVkZURlcGVuZGVuY2llcyIsInR5cGVQcmVzZW50IiwiaXNUeXBlUHJlc2VudEJ5VHlwZU5hbWUiLCJ0eXBlcyIsImZpbmRUeXBlc0J5VHlwZU5hbWUiLCJ0eXBlc0xlbmd0aCIsImxlbmd0aCIsImZpcnN0VHlwZSIsInR5cGVQcmVmaXhlZCIsImlzUHJlZml4ZWQiLCJwcmVmaXhlZFR5cGVOYW1lIiwiZ2V0UHJlZml4ZWRUeXBlTmFtZSIsImZpbmRUeXBlc0J5UHJlZml4ZWRUeXBlTmFtZSIsInRvSlNPTiIsImpzb24iLCJ0eXBlSlNPTiIsInR5cGVUb1R5cGVKU09OIiwibmFtZSIsImZyb21KU09OIiwidHlwZUFsaWFzIiwiaW5zdGFudGlhdGUiLCJpbnN0YW50aWF0ZVR5cGVBbGlhcyIsInR5cGVGcm9tSlNPTiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBY0E7OztlQUFBOzs7MkJBWitCO2dDQUNxQzswQkFFN0M7eUJBQ0s7NkJBQ1M7c0JBQ1E7QUFFN0MsTUFBTSxFQUFFQSxHQUFHLEVBQUUsR0FBR0MscUNBQXFCLEVBQy9CLEVBQUVDLEtBQUssRUFBRSxHQUFHQyx5QkFBYyxFQUMxQixFQUFFQyxXQUFXLEVBQUUsR0FBR0MsbUNBQW1CO01BRTNDLFdBQWVDLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsa0JBQWtCQyx1QkFBTztJQUNuRCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLElBQUksRUFBRUMsUUFBUSxDQUFFO1FBQzdELEtBQUssQ0FBQ0wsU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxJQUFJLEdBQUdBO1FBQ1osSUFBSSxDQUFDQyxRQUFRLEdBQUdBO0lBQ2xCO0lBRUFDLFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQ0YsSUFBSTtJQUNsQjtJQUVBRyxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUNGLFFBQVE7SUFDdEI7SUFFQUcsbUJBQW1CO1FBQ2pCLE1BQU1OLE9BQU8sSUFBSSxDQUFDTyxPQUFPLElBQ25CQyxnQkFBZ0JSLE1BQU8sR0FBRztRQUVoQyxPQUFPUTtJQUNUO0lBRUFDLGFBQWE7UUFDWCxNQUFNQyxXQUFZLElBQUksQ0FBQ1IsSUFBSSxLQUFLO1FBRWhDLE9BQU9RO0lBQ1Q7SUFFQUMsYUFBYTtRQUNYLE1BQU1ELFdBQVcsSUFBSSxDQUFDRCxVQUFVLElBQzFCRyxXQUFXLENBQUNGLFVB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
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3R5cGVBbGlhcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5pbXBvcnQgeyBFbGVtZW50LCBicmVha1BvaW50VXRpbGl0aWVzLCBjb250aW51YXRpb25VdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgaW5zdGFudGlhdGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2NvbnRleHRcIjtcbmltcG9ydCB7IGluc3RhbnRpYXRlVHlwZUFsaWFzIH0gZnJvbSBcIi4uL3Byb2Nlc3MvaW5zdGFudGlhdGVcIjtcbmltcG9ydCB7IHR5cGVGcm9tSlNPTiwgdHlwZVRvVHlwZUpTT04gfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2pzb25cIjtcblxuY29uc3QgeyBhbGwgfSA9IGNvbnRpbnVhdGlvblV0aWxpdGllcyxcbiAgICAgIHsgZmlyc3QgfSA9IGFycmF5VXRpbGl0aWVzLFxuICAgICAgeyB1bmJyZWFrYWJsZSB9ID0gYnJlYWtQb2ludFV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFR5cGVBbGlhcyBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHR5cGUsIHR5cGVOYW1lKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgdGhpcy50eXBlTmFtZSA9IHR5cGVOYW1lO1xuICB9XG5cbiAgZ2V0VHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlO1xuICB9XG5cbiAgZ2V0VHlwZU5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZU5hbWU7XG4gIH1cblxuICBnZXRUeXBlQWxpYXNOb2RlKCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldE5vZGUoKSxcbiAgICAgICAgICB0eXBlQWxpYXNOb2RlID0gbm9kZTsgIC8vL1xuXG4gICAgcmV0dXJuIHR5cGVBbGlhc05vZGU7XG4gIH1cblxuICBpc0ltcGxpY2l0KCkge1xuICAgIGNvbnN0IGltcGxpY2l0ID0gKHRoaXMudHlwZSA9PT0gbnVsbCk7XG5cbiAgICByZXR1cm4gaW1wbGljaXQ7XG4gIH1cblxuICBpc0V4cGxpY2l0KCkge1xuICAgIGNvbnN0IGltcGxpY2l0ID0gdGhpcy5pc0ltcGxpY2l0KCksXG4gICAgICAgICAgZXhwbGljaXQgPSAhaW1wbGljaXQ7IC8vL1xuXG4gICAgcmV0dXJuIGV4cGxpY2l0O1xuICB9XG5cbiAgZ2V0QWxpYXNlZFR5cGUoKSB7XG4gICAgY29uc3QgYWxpYXNlZFR5cGUgPSB0aGlzLnR5cGU7XG5cbiAgICByZXR1cm4gYWxpYXNlZFR5cGU7XG4gIH1cblxuICBjb21wYXJlVHlwZU5hbWUodHlwZU5hbWUpIHtcbiAgICBjb25zdCB0eXBlTmFtZUNvbXBhcmVzID0gKHRoaXMudHlwZU5hbWUgPT09IHR5cGVOYW1lKTtcblxuICAgIHJldHVybiB0eXBlTmFtZUNvbXBhcmVzO1xuICB9XG5cbiAgdmVyaWZ5ID0gdW5icmVha2FibGUoZnVuY3Rpb24gKGNvbnRleHQsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCB0eXBlQWxpYXNTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3R5cGVBbGlhc1N0cmluZ30nIHR5cGUgYWxpYXMuLi5gKTtcblxuICAgIGNvbnN0IGltcGxpY2l0ID0gdGhpcy5pc0ltcGxpY2l0KCksXG4gICAgICAgICAgdmVyaWZ5VHlwZU5hbWUgPSB0aGlzLnZlcmlmeVR5cGVOYW1lLmJpbmQodGhpcyksXG4gICAgICAgICAgdmVyaWZ5SW1wbGljaXRUeXBlID0gdGhpcy52ZXJpZnlJbXBsaWNpdFR5cGUuYmluZCh0aGlzKSxcbiAgICAgICAgICB2ZXJpZnlFeHBsaWNpdFR5cGUgPSB0aGlzLnZlcmlmeUV4cGxpY2l0VHlwZS5iaW5kKHRoaXMpO1xuXG4gICAgcmV0dXJuIGFsbChbXG4gICAgICB2ZXJpZnlUeXBlTmFtZSxcbiAgICAgIHZlcmlmeUltcGxpY2l0VHlwZSxcbiAgICAgIHZlcmlmeUV4cGxpY2l0VHlwZVxuICAgIF0sIGltcGxpY2l0LCBjb250ZXh0LCAoaW1wbGljaXQsIGNvbnRleHQsIGJhY2spID0+IHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHt0eXBlQWxpYXNTdHJpbmd9JyB0eXBlIGFsaWFzLmApO1xuXG4gICAgICByZXR1cm4gZm9yd2FyZChjb250ZXh0LCBiYWNrKTtcbiAgICB9LCAoZXhjZXB0aW9uKSA9PiB7XG4gICAgICBpZiAoZXhjZXB0aW9uKSB7XG4gICAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgICB9XG5cbiAgICAgIGNvbnRleHQudHJhY2UoYFVuYWJsZSB0byB2ZXJpZnkgdGhlICcke3R5cGVBbGlhc1N0cmluZ30nIHR5cGUgYWxpYXMuYCk7XG5cbiAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIHZlcmlmeVR5cGVOYW1lKGltcGxpY2l0LCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSB7XG4gICAgY29uc3QgdHlwZUFsaWFzU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHt0eXBlQWxpYXNTdHJpbmd9JyB0eXBlIGFsaWFzJ3MgdHlwZSBuYW1lLi4uYCk7XG5cbiAgICBjb25zdCBpbmNsdWRlUmVsZWFzZSA9IHRydWUsXG4gICAgICAgICAgdHlwZUFsaWFzUHJlc2VudCA9IGNvbnRleHQuaXNUeXBlQWxpYXNQcmVzZW50QnlUeXBlTmFtZSh0aGlzLnR5cGVOYW1lLCBpbmNsdWRlUmVsZWFzZSk7XG5cbiAgICBpZiAodHlwZUFsaWFzUHJlc2VudCkge1xuICAgICAgY29udGV4dC50cmFjZShgVGhlICcke3RoaXMudHlwZU5hbWV9JyB0eXBlIGFsaWFzIGlzIHByZXNlbnQgbG9jYWxseS5gKTtcblxuICAgICAgcmV0dXJuIGJhY2soKTtcbiAgICB9XG5cbiAgICBjb25zdCBpbmNsdWRlRGVwZW5kZW5jaWVzID0gZmFsc2UsXG4gICAgICAgICAgdHlwZVByZXNlbnQgPSBjb250ZXh0LmlzVHlwZVByZXNlbnRCeVR5cGVOYW1lKHRoaXMudHlwZU5hbWUsIGluY2x1ZGVSZWxlYXNlLCBpbmNsdWRlRGVwZW5kZW5jaWVzKTtcblxuICAgIGlmICh0eXBlUHJlc2VudCkge1xuICAgICAgY29udGV4dC50cmFjZShgVGhlICcke3RoaXMudHlwZU5hbWV9JyB0eXBlIGlzIHByZXNlbnQgbG9jYWxseS5gKTtcblxuICAgICAgcmV0dXJuIGJhY2soKTtcbiAgICB9XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7dHlwZUFsaWFzU3RyaW5nfScgdHlwZSBhbGlhcydzIHR5cGUgbmFtZS5gKTtcblxuICAgIHJldHVybiBmb3J3YXJkKGltcGxpY2l0LCBjb250ZXh0LCBiYWNrKTtcbiAgfVxuXG4gIHZlcmlmeUltcGxpY2l0VHlwZShpbXBsaWNpdCwgY29udGV4dCwgZm9yd2FyZCwgYmFjaykge1xuICAgIGlmICghaW1wbGljaXQpIHtcbiAgICAgIHJldHVybiBmb3J3YXJkKGltcGxpY2l0LCBjb250ZXh0LCBiYWNrKTtcbiAgICB9XG5cbiAgICBjb25zdCB0eXBlQWxpYXNTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3R5cGVBbGlhc1N0cmluZ30nIHR5cGUgYWxpYXMncyBpbXBsaWNpdCB0eXBlLi4uYCk7XG5cbiAgICBjb25zdCBpbmNsdWRlUmVsZWFzZSA9IHRydWUsXG4gICAgICAgICAgaW5jbHVkZURlcGVuZGVuY2llcyA9IHRydWUsXG4gICAgICAgICAgdHlwZXMgPSBjb250ZXh0LmZpbmRUeXBlc0J5VHlwZU5hbWUodGhpcy50eXBlTmFtZSwgaW5jbHVkZVJlbGVhc2UsIGluY2x1ZGVEZXBlbmRlbmNpZXMpLFxuICAgICAgICAgIHR5cGVzTGVuZ3RoID0gdHlwZXMubGVuZ3RoO1xuXG4gICAgaWYgKHR5cGVzTGVuZ3RoID09PSAwKSB7XG4gICAgICBjb250ZXh0LnRyYWNlKGBUaGUgJyR7dHlwZUFsaWFzU3RyaW5nfScgdHlwZSBhbGlhcydzIGltcGxpY2l0IHR5cGUgaXMgbm90IHByZXNlbmV0IGdsb2JhbGx5LmApO1xuXG4gICAgICByZXR1cm4gYmFjaygpO1xuICAgIH1cblxuICAgIGlmICh0eXBlc0xlbmd0aCA+IDEpIHtcbiAgICAgIGNvbnRleHQudHJhY2UoYFRoZSAnJHt0eXBlQWxpYXNTdHJpbmd9JyB0eXBlIGFsaWFzJ3MgaW1wbGljaXQgdHlwZSBpcyBhbWJpZ3VvdXMgZ2xvYmFsbHkuYCk7XG5cbiAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgfVxuXG4gICAgY29uc3QgZmlyc3RUeXBlID0gZmlyc3QodHlwZXMpLFxuICAgICAgICAgIHR5cGUgPSBmaXJzdFR5cGU7IC8vL1xuXG4gICAgdGhpcy50eXBlID0gdHlwZTsgLy8vXG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7dHlwZUFsaWFzU3RyaW5nfScgdHlwZSBhbGlhcydzIGltcGxpY2l0IHR5cGUuLi5gKTtcblxuICAgIHJldHVybiBmb3J3YXJkKGltcGxpY2l0LCBjb250ZXh0LCBiYWNrKTtcbiAgfVxuXG4gIHZlcmlmeUV4cGxpY2l0VHlwZShpbXBsaWNpdCwgY29udGV4dCwgZm9yd2FyZCwgYmFjaykge1xuICAgIGlmIChpbXBsaWNpdCkge1xuICAgICAgcmV0dXJuIGZvcndhcmQoaW1wbGljaXQsIGNvbnRleHQsIGJhY2spO1xuICAgIH1cblxuICAgIGNvbnN0IHR5cGVBbGlhc1N0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dHlwZUFsaWFzU3RyaW5nfScgdHlwZSBhbGlhcydzIGV4cGxpY2l0IHR5cGUuLi5gKTtcblxuICAgIGNvbnN0IHR5cGVQcmVmaXhlZCA9IHRoaXMudHlwZS5pc1ByZWZpeGVkKCk7XG5cbiAgICBpZiAoIXR5cGVQcmVmaXhlZCkge1xuICAgICAgY29udGV4dC50cmFjZShgVGhlICcke3R5cGVBbGlhc1N0cmluZ30nIHR5cGUgYWxpYXMncyBleHBsaWNpdCB0eXBlIGlzIG5vdCBwcmVmaXhlZC5gKTtcblxuICAgICAgcmV0dXJuIGJhY2soKTtcbiAgICB9XG5cbiAgICBjb25zdCBwcmVmaXhlZFR5cGVOYW1lID0gdGhpcy50eXBlLmdldFByZWZpeGVkVHlwZU5hbWUoKSxcbiAgICAgICAgICBpbmNsdWRlUmVsZWFzZSA9IHRydWUsXG4gICAgICAgICAgaW5jbHVkZURlcGVuZGVuY2llcyA9IHRydWUsXG4gICAgICAgICAgdHlwZXMgPSBjb250ZXh0LmZpbmRUeXBlc0J5UHJlZml4ZWRUeXBlTmFtZShwcmVmaXhlZFR5cGVOYW1lLCBpbmNsdWRlUmVsZWFzZSwgaW5jbHVkZURlcGVuZGVuY2llcyksXG4gICAgICAgICAgdHlwZXNMZW5ndGggPSB0eXBlcy5sZW5ndGg7XG5cbiAgICBpZiAodHlwZXNMZW5ndGggPT09IDApIHtcbiAgICAgIGNvbnRleHQudHJhY2UoYFRoZSAnJHt0eXBlQWxpYXNTdHJpbmd9JyB0eXBlIGFsaWFzJ3MgZXhwbGljaXQgdHlwZSBpcyBub3QgcHJlc2VudCBnbG9iYWxseS5gKTtcblxuICAgICAgcmV0dXJuIGJhY2soKTtcbiAgICB9XG5cbiAgICBpZiAodHlwZXNMZW5ndGggPiAxKSB7XG4gICAgICBjb250ZXh0LnRyYWNlKGBUaGUgJyR7dHlwZUFsaWFzU3RyaW5nfScgdHlwZSBhbGlhcydzIGV4cGxpY2l0IHR5cGUgaXMgYW1iaWd1b3VzIGdsb2JhbGx5LmApO1xuXG4gICAgICByZXR1cm4gYmFjaygpO1xuICAgIH1cblxuICAgIGNvbnN0IGZpcnN0VHlwZSA9IGZpcnN0KHR5cGVzKSxcbiAgICAgICAgICB0eXBlID0gZmlyc3RUeXBlOyAvLy9cblxuICAgIHRoaXMudHlwZSA9IHR5cGU7IC8vL1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3R5cGVBbGlhc1N0cmluZ30nIHR5cGUgYWxpYXMncyBleHBsaWNpdHR5cGUuYCk7XG5cbiAgICByZXR1cm4gZm9yd2FyZChpbXBsaWNpdCwgY29udGV4dCwgYmFjayk7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgbGV0IGpzb247XG5cbiAgICBjb25zdCBzdHJpbmcgPSB0aGlzLmdldFN0cmluZygpLFxuICAgICAgICAgIHR5cGVKU09OID0gdHlwZVRvVHlwZUpTT04odGhpcy50eXBlKSxcbiAgICAgICAgICB0eXBlID0gdHlwZUpTT047ICAvLy9cblxuICAgIGpzb24gPSB7XG4gICAgICBzdHJpbmcsXG4gICAgICB0eXBlXG4gICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlR5cGVBbGlhc1wiO1xuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gICAgbGV0IHR5cGVBbGlhcztcblxuICAgIGluc3RhbnRpYXRlKChjb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCB7IHN0cmluZyB9ID0ganNvbixcbiAgICAgICAgICAgIHR5cGVBbGlhc05vZGUgPSBpbnN0YW50aWF0ZVR5cGVBbGlhcyhzdHJpbmcsIGNvbnRleHQpLFxuICAgICAgICAgICAgbm9kZSA9IHR5cGVBbGlhc05vZGUsIC8vL1xuICAgICAgICAgICAgYnJlYWtQb2ludCA9IG51bGwsXG4gICAgICAgICAgICB0eXBlID0gdHlwZUZyb21KU09OKGpzb24sIGNvbnRleHQpLFxuICAgICAgICAgICAgdHlwZU5hbWUgPSB0eXBlQWxpYXNOb2RlLmdldFR5cGVOYW1lKCk7XG5cbiAgICAgIGNvbnRleHQgPSBudWxsOyAvLy9cblxuICAgICAgdHlwZUFsaWFzID0gbmV3IFR5cGVBbGlhcyhjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHR5cGUsIHR5cGVOYW1lKTtcbiAgICB9LCBjb250ZXh0KTtcblxuICAgIHJldHVybiB0eXBlQWxpYXM7XG4gIH1cbn0pO1xuIl0sIm5hbWVzIjpbImFsbCIsImNvbnRpbnVhdGlvblV0aWxpdGllcyIsImZpcnN0IiwiYXJyYXlVdGlsaXRpZXMiLCJ1bmJyZWFrYWJsZSIsImJyZWFrUG9pbnRVdGlsaXRpZXMiLCJkZWZpbmUiLCJUeXBlQWxpYXMiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwidHlwZSIsInR5cGVOYW1lIiwiZ2V0VHlwZSIsImdldFR5cGVOYW1lIiwiZ2V0VHlwZUFsaWFzTm9kZSIsImdldE5vZGUiLCJ0eXBlQWxpYXNOb2RlIiwiaXNJbXBsaWNpdCIsImltcGxpY2l0IiwiaXNFeHBsaWNpdCIsImV4cGxpY2l0IiwiZ2V0QWxpYXNlZFR5cGUiLCJhbGlhc2VkVHlwZSIsImNvbXBhcmVUeXBlTmFtZSIsInR5cGVOYW1lQ29tcGFyZXMiLCJ2ZXJpZnkiLCJmb3J3YXJkIiwiYmFjayIsInR5cGVBbGlhc1N0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwidmVyaWZ5VHlwZU5hbWUiLCJiaW5kIiwidmVyaWZ5SW1wbGljaXRUeXBlIiwidmVyaWZ5RXhwbGljaXRUeXBlIiwiZGVidWciLCJleGNlcHRpb24iLCJpbmNsdWRlUmVsZWFzZSIsInR5cGVBbGlhc1ByZXNlbnQiLCJpc1R5cGVBbGlhc1ByZXNlbnRCeVR5cGVOYW1lIiwiaW5jbHVkZURlcGVuZGVuY2llcyIsInR5cGVQcmVzZW50IiwiaXNUeXBlUHJlc2VudEJ5VHlwZU5hbWUiLCJ0eXBlcyIsImZpbmRUeXBlc0J5VHlwZU5hbWUiLCJ0eXBlc0xlbmd0aCIsImxlbmd0aCIsImZpcnN0VHlwZSIsInR5cGVQcmVmaXhlZCIsImlzUHJlZml4ZWQiLCJwcmVmaXhlZFR5cGVOYW1lIiwiZ2V0UHJlZml4ZWRUeXBlTmFtZSIsImZpbmRUeXBlc0J5UHJlZml4ZWRUeXBlTmFtZSIsInRvSlNPTiIsImpzb24iLCJ0eXBlSlNPTiIsInR5cGVUb1R5cGVKU09OIiwibmFtZSIsImZyb21KU09OIiwidHlwZUFsaWFzIiwiaW5zdGFudGlhdGUiLCJpbnN0YW50aWF0ZVR5cGVBbGlhcyIsInR5cGVGcm9tSlNPTiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBY0E7OztlQUFBOzs7MkJBWitCO2dDQUNxQzswQkFFN0M7eUJBQ0s7NkJBQ1M7c0JBQ1E7QUFFN0MsTUFBTSxFQUFFQSxHQUFHLEVBQUUsR0FBR0MscUNBQXFCLEVBQy9CLEVBQUVDLEtBQUssRUFBRSxHQUFHQyx5QkFBYyxFQUMxQixFQUFFQyxXQUFXLEVBQUUsR0FBR0MsbUNBQW1CO01BRTNDLFdBQWVDLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsa0JBQWtCQyx1QkFBTztJQUNuRCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLElBQUksRUFBRUMsUUFBUSxDQUFFO1FBQzdELEtBQUssQ0FBQ0wsU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxJQUFJLEdBQUdBO1FBQ1osSUFBSSxDQUFDQyxRQUFRLEdBQUdBO0lBQ2xCO0lBRUFDLFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQ0YsSUFBSTtJQUNsQjtJQUVBRyxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUNGLFFBQVE7SUFDdEI7SUFFQUcsbUJBQW1CO1FBQ2pCLE1BQU1OLE9BQU8sSUFBSSxDQUFDTyxPQUFPLElBQ25CQyxnQkFBZ0JSLE1BQU8sR0FBRztRQUVoQyxPQUFPUTtJQUNUO0lBRUFDLGFBQWE7UUFDWCxNQUFNQyxXQUFZLElBQUksQ0FBQ1IsSUFBSSxLQUFLO1FBRWhDLE9BQU9RO0lBQ1Q7SUFFQUMsYUFB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
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-nominal",
3
3
  "author": "James Smith",
4
- "version": "1.0.630",
4
+ "version": "1.0.631",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-nominal",
7
7
  "description": "Occam's Nominal language.",
@@ -11,7 +11,7 @@
11
11
  },
12
12
  "dependencies": {
13
13
  "necessary": "^17.7.2",
14
- "occam-furtle": "^3.0.549",
14
+ "occam-furtle": "^3.0.551",
15
15
  "occam-grammar-utilities": "^8.1.27",
16
16
  "occam-languages": "^3.0.99",
17
17
  "occam-query": "^4.1.210"
@@ -65,7 +65,8 @@ export default define(class TypeAlias extends Element {
65
65
 
66
66
  context.trace(`Verifying the '${typeAliasString}' type alias...`);
67
67
 
68
- const verifyTypeName = this.verifyTypeName.bind(this),
68
+ const implicit = this.isImplicit(),
69
+ verifyTypeName = this.verifyTypeName.bind(this),
69
70
  verifyImplicitType = this.verifyImplicitType.bind(this),
70
71
  verifyExplicitType = this.verifyExplicitType.bind(this);
71
72
 
@@ -73,7 +74,7 @@ export default define(class TypeAlias extends Element {
73
74
  verifyTypeName,
74
75
  verifyImplicitType,
75
76
  verifyExplicitType
76
- ], context, (context, back) => {
77
+ ], implicit, context, (implicit, context, back) => {
77
78
  context.debug(`...verified the '${typeAliasString}' type alias.`);
78
79
 
79
80
  return forward(context, back);
@@ -88,7 +89,7 @@ export default define(class TypeAlias extends Element {
88
89
  });
89
90
  });
90
91
 
91
- verifyTypeName(context, forward, back) {
92
+ verifyTypeName(implicit, context, forward, back) {
92
93
  const typeAliasString = this.getString(); ///
93
94
 
94
95
  context.trace(`Verifying the '${typeAliasString}' type alias's type name...`);
@@ -113,14 +114,12 @@ export default define(class TypeAlias extends Element {
113
114
 
114
115
  context.debug(`...verified the '${typeAliasString}' type alias's type name.`);
115
116
 
116
- return forward(context, back);
117
+ return forward(implicit, context, back);
117
118
  }
118
119
 
119
- verifyImplicitType(context, forward, back) {
120
- const implicit = this.isImplicit();
121
-
120
+ verifyImplicitType(implicit, context, forward, back) {
122
121
  if (!implicit) {
123
- return forward(context, back);
122
+ return forward(implicit, context, back);
124
123
  }
125
124
 
126
125
  const typeAliasString = this.getString(); ///
@@ -151,14 +150,12 @@ export default define(class TypeAlias extends Element {
151
150
 
152
151
  context.debug(`...verified the '${typeAliasString}' type alias's implicit type...`);
153
152
 
154
- return forward(context, back);
153
+ return forward(implicit, context, back);
155
154
  }
156
155
 
157
- verifyExplicitType(context, forward, back) {
158
- const explicit = this.isExplicit();
159
-
160
- if (!explicit) {
161
- return forward(context, back);
156
+ verifyExplicitType(implicit, context, forward, back) {
157
+ if (implicit) {
158
+ return forward(implicit, context, back);
162
159
  }
163
160
 
164
161
  const typeAliasString = this.getString(); ///
@@ -198,7 +195,7 @@ export default define(class TypeAlias extends Element {
198
195
 
199
196
  context.debug(`...verified the '${typeAliasString}' type alias's explicittype.`);
200
197
 
201
- return forward(context, back);
198
+ return forward(implicit, context, back);
202
199
  }
203
200
 
204
201
  toJSON() {