occam-furtle 3.0.39 → 3.0.40

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 (164) hide show
  1. package/lib/constants.js +1 -28
  2. package/lib/context/block.js +6 -7
  3. package/lib/context/file/furtle.js +6 -12
  4. package/lib/element/assignment/array.js +3 -3
  5. package/lib/element/assignment/object.js +3 -3
  6. package/lib/element/assignment/variable.js +3 -8
  7. package/lib/element/assignments/variable.js +3 -8
  8. package/lib/element/declaration/procedure.js +3 -8
  9. package/lib/element/error.js +3 -8
  10. package/lib/element/every.js +5 -5
  11. package/lib/element/expression.js +3 -8
  12. package/lib/element/label.js +3 -8
  13. package/lib/element/nodeQuery.js +3 -3
  14. package/lib/element/nodesQuery.js +3 -3
  15. package/lib/element/parameter/named.js +3 -3
  16. package/lib/element/parameter.js +3 -3
  17. package/lib/element/parameters/named.js +3 -3
  18. package/lib/element/parameters.js +3 -3
  19. package/lib/element/primitive.js +3 -3
  20. package/lib/element/procedure/anonymous.js +3 -3
  21. package/lib/element/procedure.js +3 -3
  22. package/lib/element/procedureCall.js +3 -3
  23. package/lib/element/reduce.js +3 -3
  24. package/lib/element/reference.js +3 -8
  25. package/lib/element/returnBlock.js +3 -3
  26. package/lib/element/some.js +3 -3
  27. package/lib/element/statement/return.js +3 -8
  28. package/lib/element/step.js +3 -8
  29. package/lib/element/term/bracketed.js +3 -8
  30. package/lib/element/term/comparison.js +3 -3
  31. package/lib/element/term/logical.js +3 -3
  32. package/lib/element/term/negated.js +3 -3
  33. package/lib/element/term.js +3 -8
  34. package/lib/element/terms.js +3 -8
  35. package/lib/element/ternary.js +3 -3
  36. package/lib/element/variable.js +3 -3
  37. package/lib/example/view.js +3 -4
  38. package/lib/furtle/parser.js +3 -3
  39. package/lib/index.js +7 -43
  40. package/lib/node/assignment.js +4 -9
  41. package/lib/node/assignments.js +4 -9
  42. package/lib/node/declaration.js +4 -9
  43. package/lib/node/document.js +4 -9
  44. package/lib/node/error.js +4 -9
  45. package/lib/node/every.js +4 -9
  46. package/lib/node/expression.js +4 -9
  47. package/lib/node/label.js +4 -9
  48. package/lib/node/nodeQuery.js +4 -9
  49. package/lib/node/nodesQuery.js +4 -9
  50. package/lib/node/nonsense.js +4 -9
  51. package/lib/node/parameter.js +4 -9
  52. package/lib/node/parameters.js +4 -9
  53. package/lib/node/primitive.js +4 -4
  54. package/lib/node/procedure.js +4 -9
  55. package/lib/node/procedureCall.js +4 -9
  56. package/lib/node/reduce.js +4 -9
  57. package/lib/node/reference.js +4 -9
  58. package/lib/node/returnBlock.js +4 -9
  59. package/lib/node/some.js +4 -9
  60. package/lib/node/statement.js +4 -9
  61. package/lib/node/step.js +4 -9
  62. package/lib/node/term.js +4 -9
  63. package/lib/node/terms.js +4 -9
  64. package/lib/node/ternary.js +4 -9
  65. package/lib/node/variable.js +4 -9
  66. package/lib/process/verify.js +5 -161
  67. package/package.json +7 -7
  68. package/src/constants.js +0 -12
  69. package/src/context/block.js +3 -4
  70. package/src/context/file/furtle.js +3 -4
  71. package/src/element/assignment/array.js +2 -1
  72. package/src/element/assignment/object.js +2 -1
  73. package/src/element/assignment/variable.js +1 -1
  74. package/src/element/assignments/variable.js +2 -2
  75. package/src/element/declaration/procedure.js +2 -2
  76. package/src/element/error.js +2 -2
  77. package/src/element/every.js +4 -2
  78. package/src/element/expression.js +1 -1
  79. package/src/element/label.js +1 -1
  80. package/src/element/nodeQuery.js +1 -1
  81. package/src/element/nodesQuery.js +2 -1
  82. package/src/element/parameter/named.js +2 -2
  83. package/src/element/parameter.js +2 -1
  84. package/src/element/parameters/named.js +2 -2
  85. package/src/element/parameters.js +2 -1
  86. package/src/element/primitive.js +1 -1
  87. package/src/element/procedure/anonymous.js +2 -1
  88. package/src/element/procedure.js +2 -1
  89. package/src/element/procedureCall.js +2 -1
  90. package/src/element/reduce.js +2 -1
  91. package/src/element/reference.js +1 -1
  92. package/src/element/returnBlock.js +2 -1
  93. package/src/element/some.js +2 -1
  94. package/src/element/statement/return.js +2 -2
  95. package/src/element/step.js +1 -1
  96. package/src/element/term/bracketed.js +2 -2
  97. package/src/element/term/comparison.js +2 -1
  98. package/src/element/term/logical.js +2 -1
  99. package/src/element/term/negated.js +2 -1
  100. package/src/element/term.js +1 -1
  101. package/src/element/terms.js +1 -1
  102. package/src/element/ternary.js +2 -1
  103. package/src/element/variable.js +2 -1
  104. package/src/example/view.js +1 -2
  105. package/src/furtle/parser.js +2 -1
  106. package/src/index.js +2 -11
  107. package/src/node/assignment.js +1 -1
  108. package/src/node/assignments.js +1 -1
  109. package/src/node/declaration.js +1 -1
  110. package/src/node/document.js +1 -1
  111. package/src/node/error.js +1 -1
  112. package/src/node/every.js +1 -1
  113. package/src/node/expression.js +1 -1
  114. package/src/node/label.js +1 -1
  115. package/src/node/nodeQuery.js +1 -1
  116. package/src/node/nodesQuery.js +1 -1
  117. package/src/node/nonsense.js +1 -1
  118. package/src/node/parameter.js +1 -1
  119. package/src/node/parameters.js +1 -1
  120. package/src/node/primitive.js +2 -1
  121. package/src/node/procedure.js +1 -1
  122. package/src/node/procedureCall.js +1 -1
  123. package/src/node/reduce.js +1 -1
  124. package/src/node/reference.js +1 -1
  125. package/src/node/returnBlock.js +1 -1
  126. package/src/node/some.js +1 -1
  127. package/src/node/statement.js +1 -1
  128. package/src/node/step.js +1 -1
  129. package/src/node/term.js +1 -1
  130. package/src/node/terms.js +1 -1
  131. package/src/node/ternary.js +1 -2
  132. package/src/node/variable.js +1 -1
  133. package/src/process/verify.js +2 -98
  134. package/{src → test}/context/file/nominal.js +5 -3
  135. package/test/file/furtle.js +14 -0
  136. package/test/file/nominal.js +15 -0
  137. package/test/helpers/nominal.js +32 -0
  138. package/lib/context/file/nominal.js +0 -272
  139. package/lib/context/file.js +0 -456
  140. package/lib/context/release.js +0 -446
  141. package/lib/context.js +0 -141
  142. package/lib/element.js +0 -207
  143. package/lib/log.js +0 -195
  144. package/lib/nonTerminalNode.js +0 -236
  145. package/lib/utilities/asynchronous.js +0 -458
  146. package/lib/utilities/context.js +0 -34
  147. package/lib/utilities/customGrammar.js +0 -55
  148. package/lib/utilities/lineIndex.js +0 -26
  149. package/lib/utilities/node.js +0 -78
  150. package/lib/utilities/nominal.js +0 -42
  151. package/lib/utilities/query.js +0 -43
  152. package/src/context/file.js +0 -149
  153. package/src/context/release.js +0 -222
  154. package/src/context.js +0 -42
  155. package/src/element.js +0 -27
  156. package/src/log.js +0 -132
  157. package/src/nonTerminalNode.js +0 -151
  158. package/src/utilities/asynchronous.js +0 -121
  159. package/src/utilities/context.js +0 -19
  160. package/src/utilities/customGrammar.js +0 -54
  161. package/src/utilities/lineIndex.js +0 -21
  162. package/src/utilities/node.js +0 -90
  163. package/src/utilities/nominal.js +0 -31
  164. package/src/utilities/query.js +0 -30
@@ -1,446 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
8
- return ReleaseContext;
9
- }
10
- });
11
- var _necessary = require("necessary");
12
- var _occammodel = require("occam-model");
13
- var _furtle = /*#__PURE__*/ _interop_require_default(require("../context/file/furtle"));
14
- var _nominal = /*#__PURE__*/ _interop_require_default(require("../context/file/nominal"));
15
- var _asynchronous = require("../utilities/asynchronous");
16
- var _nominal1 = require("../utilities/nominal");
17
- var _constants = require("../constants");
18
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
19
- try {
20
- var info = gen[key](arg);
21
- var value = info.value;
22
- } catch (error) {
23
- reject(error);
24
- return;
25
- }
26
- if (info.done) {
27
- resolve(value);
28
- } else {
29
- Promise.resolve(value).then(_next, _throw);
30
- }
31
- }
32
- function _async_to_generator(fn) {
33
- return function() {
34
- var self = this, args = arguments;
35
- return new Promise(function(resolve, reject) {
36
- var gen = fn.apply(self, args);
37
- function _next(value) {
38
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
39
- }
40
- function _throw(err) {
41
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
42
- }
43
- _next(undefined);
44
- });
45
- };
46
- }
47
- function _class_call_check(instance, Constructor) {
48
- if (!(instance instanceof Constructor)) {
49
- throw new TypeError("Cannot call a class as a function");
50
- }
51
- }
52
- function _defineProperties(target, props) {
53
- for(var i = 0; i < props.length; i++){
54
- var descriptor = props[i];
55
- descriptor.enumerable = descriptor.enumerable || false;
56
- descriptor.configurable = true;
57
- if ("value" in descriptor) descriptor.writable = true;
58
- Object.defineProperty(target, descriptor.key, descriptor);
59
- }
60
- }
61
- function _create_class(Constructor, protoProps, staticProps) {
62
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
63
- if (staticProps) _defineProperties(Constructor, staticProps);
64
- return Constructor;
65
- }
66
- function _interop_require_default(obj) {
67
- return obj && obj.__esModule ? obj : {
68
- default: obj
69
- };
70
- }
71
- function _ts_generator(thisArg, body) {
72
- var f, y, t, _ = {
73
- label: 0,
74
- sent: function() {
75
- if (t[0] & 1) throw t[1];
76
- return t[1];
77
- },
78
- trys: [],
79
- ops: []
80
- }, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
81
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() {
82
- return this;
83
- }), g;
84
- function verb(n) {
85
- return function(v) {
86
- return step([
87
- n,
88
- v
89
- ]);
90
- };
91
- }
92
- function step(op) {
93
- if (f) throw new TypeError("Generator is already executing.");
94
- while(g && (g = 0, op[0] && (_ = 0)), _)try {
95
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
96
- if (y = 0, t) op = [
97
- op[0] & 2,
98
- t.value
99
- ];
100
- switch(op[0]){
101
- case 0:
102
- case 1:
103
- t = op;
104
- break;
105
- case 4:
106
- _.label++;
107
- return {
108
- value: op[1],
109
- done: false
110
- };
111
- case 5:
112
- _.label++;
113
- y = op[1];
114
- op = [
115
- 0
116
- ];
117
- continue;
118
- case 7:
119
- op = _.ops.pop();
120
- _.trys.pop();
121
- continue;
122
- default:
123
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
124
- _ = 0;
125
- continue;
126
- }
127
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
128
- _.label = op[1];
129
- break;
130
- }
131
- if (op[0] === 6 && _.label < t[1]) {
132
- _.label = t[1];
133
- t = op;
134
- break;
135
- }
136
- if (t && _.label < t[2]) {
137
- _.label = t[2];
138
- _.ops.push(op);
139
- break;
140
- }
141
- if (t[2]) _.ops.pop();
142
- _.trys.pop();
143
- continue;
144
- }
145
- op = body.call(thisArg, _);
146
- } catch (e) {
147
- op = [
148
- 6,
149
- e
150
- ];
151
- y = 0;
152
- } finally{
153
- f = t = 0;
154
- }
155
- if (op[0] & 5) throw op[1];
156
- return {
157
- value: op[0] ? op[1] : void 0,
158
- done: true
159
- };
160
- }
161
- }
162
- var push = _necessary.arrayUtilities.push, isFilePathFurtleFilePath = _occammodel.filePathUtilities.isFilePathFurtleFilePath, isFilePathNominalFilePath = _occammodel.filePathUtilities.isFilePathNominalFilePath;
163
- var ReleaseContext = /*#__PURE__*/ function() {
164
- function ReleaseContext(log, entries, callback, fileContexts) {
165
- _class_call_check(this, ReleaseContext);
166
- this.log = log;
167
- this.entries = entries;
168
- this.callback = callback;
169
- this.fileContexts = fileContexts;
170
- }
171
- _create_class(ReleaseContext, [
172
- {
173
- key: "getLog",
174
- value: function getLog() {
175
- return this.log;
176
- }
177
- },
178
- {
179
- key: "getEntries",
180
- value: function getEntries() {
181
- return this.entries;
182
- }
183
- },
184
- {
185
- key: "getCallback",
186
- value: function getCallback() {
187
- return this.callback;
188
- }
189
- },
190
- {
191
- key: "getFileContexts",
192
- value: function getFileContexts() {
193
- return this.fileContexts;
194
- }
195
- },
196
- {
197
- key: "getReleaseContext",
198
- value: function getReleaseContext() {
199
- var releaseContext = this; ///
200
- return releaseContext;
201
- }
202
- },
203
- {
204
- key: "getLexer",
205
- value: function getLexer() {
206
- var lexer = _nominal1.nominalLexer; ///
207
- return lexer;
208
- }
209
- },
210
- {
211
- key: "getParser",
212
- value: function getParser() {
213
- var parser = _nominal1.nominalParser; ///
214
- return parser;
215
- }
216
- },
217
- {
218
- key: "getProcedures",
219
- value: function getProcedures() {
220
- var procedures = [];
221
- this.fileContexts.forEach(function(fileContext) {
222
- var includeRelease = false, fileContextProcedures = fileContext.getProcedures(includeRelease);
223
- push(procedures, fileContextProcedures);
224
- });
225
- return procedures;
226
- }
227
- },
228
- {
229
- key: "findFile",
230
- value: function findFile(filePath) {
231
- return this.entries.findFile(filePath);
232
- }
233
- },
234
- {
235
- key: "findFileContext",
236
- value: function findFileContext(filePath) {
237
- var fileContext = this.fileContexts.find(function(fileContext) {
238
- var filePathMatches = fileContext.matchFilePath(filePath);
239
- if (filePathMatches) {
240
- return true;
241
- }
242
- }) || null;
243
- return fileContext;
244
- }
245
- },
246
- {
247
- key: "findProcedureByName",
248
- value: function findProcedureByName(name) {
249
- var procedures = this.getProcedures(), procedure = procedures.find(function(procedure) {
250
- var nameMatches = procedure.matchName(name);
251
- if (nameMatches) {
252
- return true;
253
- }
254
- }) || null;
255
- return procedure;
256
- }
257
- },
258
- {
259
- key: "isProcedurePresentByName",
260
- value: function isProcedurePresentByName(name) {
261
- var procedure = this.findProcedureByName(name), procedurePresent = procedure !== null;
262
- return procedurePresent;
263
- }
264
- },
265
- {
266
- key: "trace",
267
- value: function trace(message) {
268
- var level = _constants.TRACE_LEVEL;
269
- this.writeToLog(level, message);
270
- }
271
- },
272
- {
273
- key: "debug",
274
- value: function debug(message) {
275
- var level = _constants.DEBUG_LEVEL;
276
- this.writeToLog(level, message);
277
- }
278
- },
279
- {
280
- key: "info",
281
- value: function info(message) {
282
- var level = _constants.INFO_LEVEL;
283
- this.writeToLog(level, message);
284
- }
285
- },
286
- {
287
- key: "warning",
288
- value: function warning(message) {
289
- var level = _constants.WARNING_LEVEL;
290
- this.writeToLog(level, message);
291
- }
292
- },
293
- {
294
- key: "error",
295
- value: function error(message) {
296
- var level = _constants.ERROR_LEVEL;
297
- this.writeToLog(level, message);
298
- }
299
- },
300
- {
301
- key: "writeToLog",
302
- value: function writeToLog(level, message) {
303
- var filePath = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : null, lineIndex = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : null;
304
- this.log.write(level, message, filePath, lineIndex);
305
- }
306
- },
307
- {
308
- key: "getDepth",
309
- value: function getDepth() {
310
- var depth = 0;
311
- return depth;
312
- }
313
- },
314
- {
315
- key: "initialise",
316
- value: function initialise() {
317
- var releaseContext = this; ///
318
- fileContextsFromEntries(this.entries, this.fileContexts, releaseContext);
319
- this.initialised = true;
320
- }
321
- },
322
- {
323
- key: "verify",
324
- value: function verify() {
325
- return _async_to_generator(function() {
326
- var verifies, verifiedFileContexts, fileContextsVerify;
327
- return _ts_generator(this, function(_state) {
328
- switch(_state.label){
329
- case 0:
330
- verifies = false;
331
- verifiedFileContexts = [];
332
- return [
333
- 4,
334
- verifyFileContexts(this.fileContexts, verifiedFileContexts)
335
- ];
336
- case 1:
337
- fileContextsVerify = _state.sent();
338
- if (fileContextsVerify) {
339
- this.fileContexts = verifiedFileContexts; ///
340
- this.verified = true;
341
- verifies = true;
342
- }
343
- return [
344
- 2,
345
- verifies
346
- ];
347
- }
348
- });
349
- }).call(this);
350
- }
351
- },
352
- {
353
- key: "break",
354
- value: function _break(filePath, lineIndex) {
355
- return _async_to_generator(function() {
356
- var level, message, context;
357
- return _ts_generator(this, function(_state) {
358
- switch(_state.label){
359
- case 0:
360
- level = _constants.TRACE_LEVEL, message = _constants.BREAK_MESSAGE;
361
- this.writeToLog(level, message, filePath, lineIndex);
362
- context = this; ///
363
- return [
364
- 4,
365
- this.callback(context, filePath, lineIndex)
366
- ];
367
- case 1:
368
- _state.sent();
369
- return [
370
- 2
371
- ];
372
- }
373
- });
374
- }).call(this);
375
- }
376
- }
377
- ], [
378
- {
379
- key: "fromLogEntriesAndCallback",
380
- value: function fromLogEntriesAndCallback(log, entries, callback) {
381
- var fileContexts = [], releaseContext = new ReleaseContext(log, entries, callback, fileContexts);
382
- return releaseContext;
383
- }
384
- }
385
- ]);
386
- return ReleaseContext;
387
- }();
388
- function verifyFileContexts(fileContexts, verifiedFileContexts) {
389
- return _async_to_generator(function() {
390
- var resolved, fileContextsVerify;
391
- return _ts_generator(this, function(_state) {
392
- switch(_state.label){
393
- case 0:
394
- return [
395
- 4,
396
- (0, _asynchronous.asyncResolve)(fileContexts, verifiedFileContexts, function(fileContext) {
397
- return _async_to_generator(function() {
398
- var fileContextVerifies;
399
- return _ts_generator(this, function(_state) {
400
- switch(_state.label){
401
- case 0:
402
- return [
403
- 4,
404
- fileContext.verify()
405
- ];
406
- case 1:
407
- fileContextVerifies = _state.sent();
408
- if (fileContextVerifies) {
409
- return [
410
- 2,
411
- true
412
- ];
413
- }
414
- return [
415
- 2
416
- ];
417
- }
418
- });
419
- })();
420
- })
421
- ];
422
- case 1:
423
- resolved = _state.sent(), fileContextsVerify = resolved;
424
- return [
425
- 2,
426
- fileContextsVerify
427
- ];
428
- }
429
- });
430
- })();
431
- }
432
- function fileContextsFromEntries(entries, fileContexts, releaseContext) {
433
- entries.forEachFile(function(file) {
434
- var filePath = file.getPath(), filePathFurtleFilePath = isFilePathFurtleFilePath(filePath), filePathNominalFilePath = isFilePathNominalFilePath(filePath);
435
- if (filePathFurtleFilePath) {
436
- var furtleFileContext = _furtle.default.fromFile(file, releaseContext), fileContext = furtleFileContext; ///
437
- fileContexts.push(fileContext);
438
- }
439
- if (filePathNominalFilePath) {
440
- var context = releaseContext, fileContext1 = _nominal.default.fromFile(file, context);
441
- fileContexts.push(fileContext1);
442
- }
443
- });
444
- }
445
-
446
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L3JlbGVhc2UuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuaW1wb3J0IHsgZmlsZVBhdGhVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbW9kZWxcIjtcblxuaW1wb3J0IEZ1cnRsZUZpbGVDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L2ZpbGUvZnVydGxlXCI7XG5pbXBvcnQgTm9taW5hbEZpbGVDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L2ZpbGUvbm9taW5hbFwiO1xuXG5pbXBvcnQgeyBhc3luY1Jlc29sdmUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2FzeW5jaHJvbm91c1wiO1xuaW1wb3J0IHsgbm9taW5hbExleGVyLCBub21pbmFsUGFyc2VyIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9ub21pbmFsXCI7XG5pbXBvcnQgeyBUUkFDRV9MRVZFTCwgREVCVUdfTEVWRUwsIElORk9fTEVWRUwsIFdBUk5JTkdfTEVWRUwsIEVSUk9SX0xFVkVMLCBCUkVBS19NRVNTQUdFfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5cbmNvbnN0IHsgcHVzaCB9ID0gYXJyYXlVdGlsaXRpZXMsXG4gICAgICB7IGlzRmlsZVBhdGhGdXJ0bGVGaWxlUGF0aCwgaXNGaWxlUGF0aE5vbWluYWxGaWxlUGF0aCB9ID0gZmlsZVBhdGhVdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJlbGVhc2VDb250ZXh0IHtcbiAgY29uc3RydWN0b3IobG9nLCBlbnRyaWVzLCBjYWxsYmFjaywgZmlsZUNvbnRleHRzKSB7XG4gICAgdGhpcy5sb2cgPSBsb2c7XG4gICAgdGhpcy5lbnRyaWVzID0gZW50cmllcztcbiAgICB0aGlzLmNhbGxiYWNrID0gY2FsbGJhY2s7XG4gICAgdGhpcy5maWxlQ29udGV4dHMgPSBmaWxlQ29udGV4dHM7XG4gIH1cblxuICBnZXRMb2coKSB7XG4gICAgcmV0dXJuIHRoaXMubG9nO1xuICB9XG5cbiAgZ2V0RW50cmllcygpIHtcbiAgICByZXR1cm4gdGhpcy5lbnRyaWVzO1xuICB9XG5cbiAgZ2V0Q2FsbGJhY2soKSB7XG4gICAgcmV0dXJuIHRoaXMuY2FsbGJhY2s7XG4gIH1cblxuICBnZXRGaWxlQ29udGV4dHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsZUNvbnRleHRzO1xuICB9XG5cbiAgZ2V0UmVsZWFzZUNvbnRleHQoKSB7XG4gICAgY29uc3QgcmVsZWFzZUNvbnRleHQgPSB0aGlzOyAgLy8vXG5cbiAgICByZXR1cm4gcmVsZWFzZUNvbnRleHQ7XG4gIH1cblxuICBnZXRMZXhlcigpIHtcbiAgICBjb25zdCBsZXhlciA9IG5vbWluYWxMZXhlcjsgLy8vXG5cbiAgICByZXR1cm4gbGV4ZXI7XG4gIH1cblxuICBnZXRQYXJzZXIoKSB7XG4gICAgY29uc3QgcGFyc2VyID0gbm9taW5hbFBhcnNlcjsgLy8vXG5cbiAgICByZXR1cm4gcGFyc2VyO1xuICB9XG5cbiAgZ2V0UHJvY2VkdXJlcygpIHtcbiAgICBjb25zdCBwcm9jZWR1cmVzID0gW107XG5cbiAgICB0aGlzLmZpbGVDb250ZXh0cy5mb3JFYWNoKChmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgaW5jbHVkZVJlbGVhc2UgPSBmYWxzZSxcbiAgICAgICAgICAgIGZpbGVDb250ZXh0UHJvY2VkdXJlcyA9IGZpbGVDb250ZXh0LmdldFByb2NlZHVyZXMoaW5jbHVkZVJlbGVhc2UpO1xuXG4gICAgICBwdXNoKHByb2NlZHVyZXMsIGZpbGVDb250ZXh0UHJvY2VkdXJlcyk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcHJvY2VkdXJlcztcbiAgfVxuXG4gIGZpbmRGaWxlKGZpbGVQYXRoKSB7IHJldHVybiB0aGlzLmVudHJpZXMuZmluZEZpbGUoZmlsZVBhdGgpOyB9XG5cbiAgZmluZEZpbGVDb250ZXh0KGZpbGVQYXRoKSB7XG4gICAgY29uc3QgZmlsZUNvbnRleHQgPSB0aGlzLmZpbGVDb250ZXh0cy5maW5kKCgoZmlsZUNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IGZpbGVQYXRoTWF0Y2hlcyA9IGZpbGVDb250ZXh0Lm1hdGNoRmlsZVBhdGgoZmlsZVBhdGgpO1xuXG4gICAgICBpZiAoZmlsZVBhdGhNYXRjaGVzKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pKSB8fCBudWxsO1xuXG4gICAgcmV0dXJuIGZpbGVDb250ZXh0O1xuICB9XG5cbiAgZmluZFByb2NlZHVyZUJ5TmFtZShuYW1lKSB7XG4gICAgY29uc3QgcHJvY2VkdXJlcyA9IHRoaXMuZ2V0UHJvY2VkdXJlcygpLFxuICAgICAgICAgIHByb2NlZHVyZSA9IHByb2NlZHVyZXMuZmluZCgocHJvY2VkdXJlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBuYW1lTWF0Y2hlcyA9IHByb2NlZHVyZS5tYXRjaE5hbWUobmFtZSk7XG5cbiAgICAgICAgICAgIGlmIChuYW1lTWF0Y2hlcykge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSB8fCBudWxsO1xuXG4gICAgcmV0dXJuIHByb2NlZHVyZTtcbiAgfVxuXG4gIGlzUHJvY2VkdXJlUHJlc2VudEJ5TmFtZShuYW1lKSB7XG4gICAgY29uc3QgcHJvY2VkdXJlID0gdGhpcy5maW5kUHJvY2VkdXJlQnlOYW1lKG5hbWUpLFxuICAgICAgICAgIHByb2NlZHVyZVByZXNlbnQgPSAocHJvY2VkdXJlICE9PSBudWxsKTtcblxuICAgIHJldHVybiBwcm9jZWR1cmVQcmVzZW50O1xuICB9XG5cbiAgdHJhY2UobWVzc2FnZSkge1xuICAgIGNvbnN0IGxldmVsID0gVFJBQ0VfTEVWRUw7XG5cbiAgICB0aGlzLndyaXRlVG9Mb2cobGV2ZWwsIG1lc3NhZ2UpO1xuICB9XG5cbiAgZGVidWcobWVzc2FnZSkge1xuICAgIGNvbnN0IGxldmVsID0gREVCVUdfTEVWRUw7XG5cbiAgICB0aGlzLndyaXRlVG9Mb2cobGV2ZWwsIG1lc3NhZ2UpO1xuICB9XG5cbiAgaW5mbyhtZXNzYWdlKSB7XG4gICAgY29uc3QgbGV2ZWwgPSBJTkZPX0xFVkVMO1xuXG4gICAgdGhpcy53cml0ZVRvTG9nKGxldmVsLCBtZXNzYWdlKTtcbiAgfVxuXG4gIHdhcm5pbmcobWVzc2FnZSkge1xuICAgIGNvbnN0IGxldmVsID0gV0FSTklOR19MRVZFTDtcblxuICAgIHRoaXMud3JpdGVUb0xvZyhsZXZlbCwgbWVzc2FnZSk7XG4gIH1cblxuICBlcnJvcihtZXNzYWdlKSB7XG4gICAgY29uc3QgbGV2ZWwgPSBFUlJPUl9MRVZFTDtcblxuICAgIHRoaXMud3JpdGVUb0xvZyhsZXZlbCwgbWVzc2FnZSk7XG4gIH1cblxuICB3cml0ZVRvTG9nKGxldmVsLCBtZXNzYWdlLCBmaWxlUGF0aCA9IG51bGwsIGxpbmVJbmRleCA9IG51bGwpIHtcbiAgICB0aGlzLmxvZy53cml0ZShsZXZlbCwgbWVzc2FnZSwgZmlsZVBhdGgsIGxpbmVJbmRleCk7XG4gIH1cblxuICBnZXREZXB0aCgpIHtcbiAgICBjb25zdCBkZXB0aCA9IDA7XG5cbiAgICByZXR1cm4gZGVwdGg7XG4gIH1cblxuICBpbml0aWFsaXNlKCkge1xuICAgIGNvbnN0IHJlbGVhc2VDb250ZXh0ID0gdGhpczsgIC8vL1xuXG4gICAgZmlsZUNvbnRleHRzRnJvbUVudHJpZXModGhpcy5lbnRyaWVzLCB0aGlzLmZpbGVDb250ZXh0cywgcmVsZWFzZUNvbnRleHQpO1xuXG4gICAgdGhpcy5pbml0aWFsaXNlZCA9IHRydWU7XG4gIH1cblxuICBhc3luYyB2ZXJpZnkoKSB7XG4gICAgbGV0IHZlcmlmaWVzID0gZmFsc2U7XG5cbiAgICBjb25zdCB2ZXJpZmllZEZpbGVDb250ZXh0cyA9IFtdLFxuICAgICAgICAgIGZpbGVDb250ZXh0c1ZlcmlmeSA9IGF3YWl0IHZlcmlmeUZpbGVDb250ZXh0cyh0aGlzLmZpbGVDb250ZXh0cywgdmVyaWZpZWRGaWxlQ29udGV4dHMpO1xuXG4gICAgaWYgKGZpbGVDb250ZXh0c1ZlcmlmeSkge1xuICAgICAgdGhpcy5maWxlQ29udGV4dHMgPSB2ZXJpZmllZEZpbGVDb250ZXh0czsgLy8vXG5cbiAgICAgIHRoaXMudmVyaWZpZWQgPSB0cnVlO1xuXG4gICAgICB2ZXJpZmllcyA9IHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcmlmaWVzO1xuICB9XG5cbiAgYXN5bmMgYnJlYWsoZmlsZVBhdGgsIGxpbmVJbmRleCkge1xuICAgIGNvbnN0IGxldmVsID0gVFJBQ0VfTEVWRUwsXG4gICAgICAgICAgbWVzc2FnZSA9IEJSRUFLX01FU1NBR0U7XG5cbiAgICB0aGlzLndyaXRlVG9Mb2cobGV2ZWwsIG1lc3NhZ2UsIGZpbGVQYXRoLCBsaW5lSW5kZXgpO1xuXG4gICAgY29uc3QgY29udGV4dCA9IHRoaXM7IC8vL1xuXG4gICAgYXdhaXQgdGhpcy5jYWxsYmFjayhjb250ZXh0LCBmaWxlUGF0aCwgbGluZUluZGV4KTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTG9nRW50cmllc0FuZENhbGxiYWNrKGxvZywgZW50cmllcywgY2FsbGJhY2spIHtcbiAgICBjb25zdCBmaWxlQ29udGV4dHMgPSBbXSxcbiAgICAgICAgICByZWxlYXNlQ29udGV4dCA9IG5ldyBSZWxlYXNlQ29udGV4dChsb2csIGVudHJpZXMsIGNhbGxiYWNrLCBmaWxlQ29udGV4dHMpO1xuXG4gICAgcmV0dXJuIHJlbGVhc2VDb250ZXh0O1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHZlcmlmeUZpbGVDb250ZXh0cyhmaWxlQ29udGV4dHMsIHZlcmlmaWVkRmlsZUNvbnRleHRzKSB7XG4gIGNvbnN0IHJlc29sdmVkID0gYXdhaXQgYXN5bmNSZXNvbHZlKGZpbGVDb250ZXh0cywgdmVyaWZpZWRGaWxlQ29udGV4dHMsIGFzeW5jIChmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGZpbGVDb250ZXh0VmVyaWZpZXMgPSBhd2FpdCBmaWxlQ29udGV4dC52ZXJpZnkoKTtcblxuICAgICAgICAgIGlmIChmaWxlQ29udGV4dFZlcmlmaWVzKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICBmaWxlQ29udGV4dHNWZXJpZnkgPSByZXNvbHZlZDsgIC8vL1xuXG4gIHJldHVybiBmaWxlQ29udGV4dHNWZXJpZnk7XG59XG5cbmZ1bmN0aW9uIGZpbGVDb250ZXh0c0Zyb21FbnRyaWVzKGVudHJpZXMsIGZpbGVDb250ZXh0cywgcmVsZWFzZUNvbnRleHQpIHtcbiAgZW50cmllcy5mb3JFYWNoRmlsZSgoZmlsZSkgPT4ge1xuICAgIGNvbnN0IGZpbGVQYXRoID0gZmlsZS5nZXRQYXRoKCksXG4gICAgICAgICAgZmlsZVBhdGhGdXJ0bGVGaWxlUGF0aCA9IGlzRmlsZVBhdGhGdXJ0bGVGaWxlUGF0aChmaWxlUGF0aCksXG4gICAgICAgICAgZmlsZVBhdGhOb21pbmFsRmlsZVBhdGggPSBpc0ZpbGVQYXRoTm9taW5hbEZpbGVQYXRoKGZpbGVQYXRoKTtcblxuICAgIGlmIChmaWxlUGF0aEZ1cnRsZUZpbGVQYXRoKSB7XG4gICAgICBjb25zdCBmdXJ0bGVGaWxlQ29udGV4dCA9IEZ1cnRsZUZpbGVDb250ZXh0LmZyb21GaWxlKGZpbGUsIHJlbGVhc2VDb250ZXh0KSxcbiAgICAgICAgICAgIGZpbGVDb250ZXh0ID0gZnVydGxlRmlsZUNvbnRleHQ7ICAvLy9cblxuICAgICAgZmlsZUNvbnRleHRzLnB1c2goZmlsZUNvbnRleHQpO1xuICAgIH1cblxuICAgIGlmIChmaWxlUGF0aE5vbWluYWxGaWxlUGF0aCkge1xuICAgICAgY29uc3QgY29udGV4dCA9IHJlbGVhc2VDb250ZXh0LCAvLy9cbiAgICAgICAgICAgIGZpbGVDb250ZXh0ID0gTm9taW5hbEZpbGVDb250ZXh0LmZyb21GaWxlKGZpbGUsIGNvbnRleHQpO1xuXG4gICAgICBmaWxlQ29udGV4dHMucHVzaChmaWxlQ29udGV4dCk7XG4gICAgfVxuICB9KTtcbn1cbiJdLCJuYW1lcyI6WyJSZWxlYXNlQ29udGV4dCIsInB1c2giLCJhcnJheVV0aWxpdGllcyIsImlzRmlsZVBhdGhGdXJ0bGVGaWxlUGF0aCIsImZpbGVQYXRoVXRpbGl0aWVzIiwiaXNGaWxlUGF0aE5vbWluYWxGaWxlUGF0aCIsImxvZyIsImVudHJpZXMiLCJjYWxsYmFjayIsImZpbGVDb250ZXh0cyIsImdldExvZyIsImdldEVudHJpZXMiLCJnZXRDYWxsYmFjayIsImdldEZpbGVDb250ZXh0cyIsImdldFJlbGVhc2VDb250ZXh0IiwicmVsZWFzZUNvbnRleHQiLCJnZXRMZXhlciIsImxleGVyIiwibm9taW5hbExleGVyIiwiZ2V0UGFyc2VyIiwicGFyc2VyIiwibm9taW5hbFBhcnNlciIsImdldFByb2NlZHVyZXMiLCJwcm9jZWR1cmVzIiwiZm9yRWFjaCIsImZpbGVDb250ZXh0IiwiaW5jbHVkZVJlbGVhc2UiLCJmaWxlQ29udGV4dFByb2NlZHVyZXMiLCJmaW5kRmlsZSIsImZpbGVQYXRoIiwiZmluZEZpbGVDb250ZXh0IiwiZmluZCIsImZpbGVQYXRoTWF0Y2hlcyIsIm1hdGNoRmlsZVBhdGgiLCJmaW5kUHJvY2VkdXJlQnlOYW1lIiwibmFtZSIsInByb2NlZHVyZSIsIm5hbWVNYXRjaGVzIiwibWF0Y2hOYW1lIiwiaXNQcm9jZWR1cmVQcmVzZW50QnlOYW1lIiwicHJvY2VkdXJlUHJlc2VudCIsInRyYWNlIiwibWVzc2FnZSIsImxldmVsIiwiVFJBQ0VfTEVWRUwiLCJ3cml0ZVRvTG9nIiwiZGVidWciLCJERUJVR19MRVZFTCIsImluZm8iLCJJTkZPX0xFVkVMIiwid2FybmluZyIsIldBUk5JTkdfTEVWRUwiLCJlcnJvciIsIkVSUk9SX0xFVkVMIiwibGluZUluZGV4Iiwid3JpdGUiLCJnZXREZXB0aCIsImRlcHRoIiwiaW5pdGlhbGlzZSIsImZpbGVDb250ZXh0c0Zyb21FbnRyaWVzIiwiaW5pdGlhbGlzZWQiLCJ2ZXJpZnkiLCJ2ZXJpZmllcyIsInZlcmlmaWVkRmlsZUNvbnRleHRzIiwiZmlsZUNvbnRleHRzVmVyaWZ5IiwidmVyaWZ5RmlsZUNvbnRleHRzIiwidmVyaWZpZWQiLCJicmVhayIsImNvbnRleHQiLCJCUkVBS19NRVNTQUdFIiwiZnJvbUxvZ0VudHJpZXNBbmRDYWxsYmFjayIsInJlc29sdmVkIiwiYXN5bmNSZXNvbHZlIiwiZmlsZUNvbnRleHRWZXJpZmllcyIsImZvckVhY2hGaWxlIiwiZmlsZSIsImdldFBhdGgiLCJmaWxlUGF0aEZ1cnRsZUZpbGVQYXRoIiwiZmlsZVBhdGhOb21pbmFsRmlsZVBhdGgiLCJmdXJ0bGVGaWxlQ29udGV4dCIsIkZ1cnRsZUZpbGVDb250ZXh0IiwiZnJvbUZpbGUiLCJOb21pbmFsRmlsZUNvbnRleHQiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBZXFCQTs7O3lCQWJVOzBCQUNHOzZEQUVKOzhEQUNDOzRCQUVGO3dCQUNlO3lCQUNtRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUUvRixJQUFNLEFBQUVDLE9BQVNDLHlCQUFjLENBQXZCRCxNQUNBRSwyQkFBd0RDLDZCQUFpQixDQUF6RUQsMEJBQTBCRSw0QkFBOEJELDZCQUFpQixDQUEvQ0M7QUFFbkIsSUFBQSxBQUFNTCwrQkFBTjthQUFNQSxlQUNQTSxHQUFHLEVBQUVDLE9BQU8sRUFBRUMsUUFBUSxFQUFFQyxZQUFZO2dDQUQ3QlQ7UUFFakIsSUFBSSxDQUFDTSxHQUFHLEdBQUdBO1FBQ1gsSUFBSSxDQUFDQyxPQUFPLEdBQUdBO1FBQ2YsSUFBSSxDQUFDQyxRQUFRLEdBQUdBO1FBQ2hCLElBQUksQ0FBQ0MsWUFBWSxHQUFHQTs7a0JBTEhUOztZQVFuQlUsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDSixHQUFHO1lBQ2pCOzs7WUFF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
package/lib/context.js DELETED
@@ -1,141 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
8
- return Context;
9
- }
10
- });
11
- var _constants = require("./constants");
12
- function _array_like_to_array(arr, len) {
13
- if (len == null || len > arr.length) len = arr.length;
14
- for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
15
- return arr2;
16
- }
17
- function _array_without_holes(arr) {
18
- if (Array.isArray(arr)) return _array_like_to_array(arr);
19
- }
20
- function _class_call_check(instance, Constructor) {
21
- if (!(instance instanceof Constructor)) {
22
- throw new TypeError("Cannot call a class as a function");
23
- }
24
- }
25
- function _construct(Parent, args, Class) {
26
- if (_is_native_reflect_construct()) {
27
- _construct = Reflect.construct;
28
- } else {
29
- _construct = function construct(Parent, args, Class) {
30
- var a = [
31
- null
32
- ];
33
- a.push.apply(a, args);
34
- var Constructor = Function.bind.apply(Parent, a);
35
- var instance = new Constructor();
36
- if (Class) _set_prototype_of(instance, Class.prototype);
37
- return instance;
38
- };
39
- }
40
- return _construct.apply(null, arguments);
41
- }
42
- function _defineProperties(target, props) {
43
- for(var i = 0; i < props.length; i++){
44
- var descriptor = props[i];
45
- descriptor.enumerable = descriptor.enumerable || false;
46
- descriptor.configurable = true;
47
- if ("value" in descriptor) descriptor.writable = true;
48
- Object.defineProperty(target, descriptor.key, descriptor);
49
- }
50
- }
51
- function _create_class(Constructor, protoProps, staticProps) {
52
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
53
- if (staticProps) _defineProperties(Constructor, staticProps);
54
- return Constructor;
55
- }
56
- function _iterable_to_array(iter) {
57
- if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
58
- }
59
- function _non_iterable_spread() {
60
- throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
61
- }
62
- function _set_prototype_of(o, p) {
63
- _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
64
- o.__proto__ = p;
65
- return o;
66
- };
67
- return _set_prototype_of(o, p);
68
- }
69
- function _to_consumable_array(arr) {
70
- return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
71
- }
72
- function _unsupported_iterable_to_array(o, minLen) {
73
- if (!o) return;
74
- if (typeof o === "string") return _array_like_to_array(o, minLen);
75
- var n = Object.prototype.toString.call(o).slice(8, -1);
76
- if (n === "Object" && o.constructor) n = o.constructor.name;
77
- if (n === "Map" || n === "Set") return Array.from(n);
78
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
79
- }
80
- function _is_native_reflect_construct() {
81
- try {
82
- var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
83
- } catch (_) {}
84
- return (_is_native_reflect_construct = function() {
85
- return !!result;
86
- })();
87
- }
88
- var Context = /*#__PURE__*/ function() {
89
- function Context(context) {
90
- _class_call_check(this, Context);
91
- this.context = context;
92
- }
93
- _create_class(Context, [
94
- {
95
- key: "getContext",
96
- value: function getContext() {
97
- return this.context;
98
- }
99
- },
100
- {
101
- key: "getDepth",
102
- value: function getDepth() {
103
- var depth = this.context.getDepth();
104
- depth++;
105
- return depth;
106
- }
107
- },
108
- {
109
- key: "getReleaseContext",
110
- value: function getReleaseContext() {
111
- return this.context.getReleaseContext();
112
- }
113
- },
114
- {
115
- key: "writeToLog",
116
- value: function writeToLog(level, message) {
117
- var depth = this.getDepth(), indent = _constants.DOUBLE_SPACE.repeat(depth);
118
- message = "".concat(indent).concat(message); ///
119
- var releaseContext = this.getReleaseContext();
120
- releaseContext.writeToLog(level, message);
121
- }
122
- }
123
- ], [
124
- {
125
- key: "fromNothing",
126
- value: function fromNothing(Class) {
127
- for(var _len = arguments.length, remainingArguments = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){
128
- remainingArguments[_key - 1] = arguments[_key];
129
- }
130
- var context = remainingArguments.pop();
131
- context = _construct(Class, [
132
- context
133
- ].concat(_to_consumable_array(remainingArguments))); ///
134
- return context;
135
- }
136
- }
137
- ]);
138
- return Context;
139
- }();
140
-
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb250ZXh0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBET1VCTEVfU1BBQ0UgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29udGV4dCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQpIHtcbiAgICB0aGlzLmNvbnRleHQgPSBjb250ZXh0O1xuICB9XG5cbiAgZ2V0Q29udGV4dCgpIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0O1xuICB9XG5cbiAgZ2V0RGVwdGgoKSB7XG4gICAgbGV0IGRlcHRoID0gdGhpcy5jb250ZXh0LmdldERlcHRoKCk7XG5cbiAgICBkZXB0aCsrO1xuXG4gICAgcmV0dXJuIGRlcHRoO1xuICB9XG5cbiAgZ2V0UmVsZWFzZUNvbnRleHQoKSB7IHJldHVybiB0aGlzLmNvbnRleHQuZ2V0UmVsZWFzZUNvbnRleHQoKTsgfVxuXG4gIHdyaXRlVG9Mb2cobGV2ZWwsIG1lc3NhZ2UpIHtcbiAgICBjb25zdCBkZXB0aCA9IHRoaXMuZ2V0RGVwdGgoKSxcbiAgICAgICAgICBpbmRlbnQgPSBET1VCTEVfU1BBQ0UucmVwZWF0KGRlcHRoKTtcblxuICAgIG1lc3NhZ2UgPSBgJHtpbmRlbnR9JHttZXNzYWdlfWA7ICAvLy9cblxuICAgIGNvbnN0IHJlbGVhc2VDb250ZXh0ID0gdGhpcy5nZXRSZWxlYXNlQ29udGV4dCgpO1xuXG4gICAgcmVsZWFzZUNvbnRleHQud3JpdGVUb0xvZyhsZXZlbCwgbWVzc2FnZSk7XG4gIH1cblxuICBzdGF0aWMgZnJvbU5vdGhpbmcoQ2xhc3MsIC4uLnJlbWFpbmluZ0FyZ3VtZW50cykge1xuICAgIGxldCBjb250ZXh0ID0gcmVtYWluaW5nQXJndW1lbnRzLnBvcCgpO1xuXG4gICAgY29udGV4dCA9IG5ldyBDbGFzcyhjb250ZXh0LCAuLi5yZW1haW5pbmdBcmd1bWVudHMpOyAgLy8vXG5cbiAgICByZXR1cm4gY29udGV4dDtcbiAgfVxufSJdLCJuYW1lcyI6WyJDb250ZXh0IiwiY29udGV4dCIsImdldENvbnRleHQiLCJnZXREZXB0aCIsImRlcHRoIiwiZ2V0UmVsZWFzZUNvbnRleHQiLCJ3cml0ZVRvTG9nIiwibGV2ZWwiLCJtZXNzYWdlIiwiaW5kZW50IiwiRE9VQkxFX1NQQUNFIiwicmVwZWF0IiwicmVsZWFzZUNvbnRleHQiLCJmcm9tTm90aGluZyIsIkNsYXNzIiwicmVtYWluaW5nQXJndW1lbnRzIiwicG9wIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQUlxQkE7Ozt5QkFGUTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFZCxJQUFBLEFBQU1BLHdCQUFOO2FBQU1BLFFBQ1BDLE9BQU87Z0NBREFEO1FBRWpCLElBQUksQ0FBQ0MsT0FBTyxHQUFHQTs7a0JBRkVEOztZQUtuQkUsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDRCxPQUFPO1lBQ3JCOzs7WUFFQUUsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLElBQUlDLFFBQVEsSUFBSSxDQUFDSCxPQUFPLENBQUNFLFFBQVE7Z0JBRWpDQztnQkFFQSxPQUFPQTtZQUNUOzs7WUFFQUMsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUFzQixPQUFPLElBQUksQ0FBQ0osT0FBTyxDQUFDSSxpQkFBaUI7WUFBSTs7O1lBRS9EQyxLQUFBQTttQkFBQUEsU0FBQUEsV0FBV0MsS0FBSyxFQUFFQyxPQUFPO2dCQUN2QixJQUFNSixRQUFRLElBQUksQ0FBQ0QsUUFBUSxJQUNyQk0sU0FBU0MsdUJBQVksQ0FBQ0MsTUFBTSxDQUFDUDtnQkFFbkNJLFVBQVUsQUFBQyxHQUFXQSxPQUFUQyxRQUFpQixPQUFSRCxVQUFZLEdBQUc7Z0JBRXJDLElBQU1JLGlCQUFpQixJQUFJLENBQUNQLGlCQUFpQjtnQkFFN0NPLGVBQWVOLFVBQVUsQ0FBQ0MsT0FBT0M7WUFDbkM7Ozs7WUFFT0ssS0FBQUE7bUJBQVAsU0FBT0EsWUFBWUMsS0FBSztnQkFBRSxJQUFBLElBQUEsT0FBQSxVQUFBLFFBQUEsQUFBR0MscUJBQUgsVUFBQSxPQUFBLElBQUEsT0FBQSxRQUFBLE9BQUEsR0FBQSxPQUFBLE1BQUE7b0JBQUdBLG1CQUFILE9BQUEsS0FBQSxTQUFBLENBQUEsS0FBcUI7O2dCQUM3QyxJQUFJZCxVQUFVYyxtQkFBbUJDLEdBQUc7Z0JBRXBDZixVQUFVLFdBQUlhLE9BQUo7b0JBQVViO2lCQUErQixDQUF6QyxPQUFtQixxQkFBR2MsdUJBQXNCLEdBQUc7Z0JBRXpELE9BQU9kO1lBQ1Q7OztXQXBDbUJEIn0=