@common.js/object-scan 20.0.4

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.
@@ -0,0 +1,1443 @@
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 a;
9
+ }
10
+ });
11
+ function _arrayLikeToArray(arr, len) {
12
+ if (len == null || len > arr.length) len = arr.length;
13
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
14
+ return arr2;
15
+ }
16
+ function _arrayWithHoles(arr) {
17
+ if (Array.isArray(arr)) return arr;
18
+ }
19
+ function _arrayWithoutHoles(arr) {
20
+ if (Array.isArray(arr)) return _arrayLikeToArray(arr);
21
+ }
22
+ function _classCallCheck(instance, Constructor) {
23
+ if (!(instance instanceof Constructor)) {
24
+ throw new TypeError("Cannot call a class as a function");
25
+ }
26
+ }
27
+ function _defineProperties(target, props) {
28
+ for(var i = 0; i < props.length; i++){
29
+ var descriptor = props[i];
30
+ descriptor.enumerable = descriptor.enumerable || false;
31
+ descriptor.configurable = true;
32
+ if ("value" in descriptor) descriptor.writable = true;
33
+ Object.defineProperty(target, descriptor.key, descriptor);
34
+ }
35
+ }
36
+ function _createClass(Constructor, protoProps, staticProps) {
37
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
38
+ if (staticProps) _defineProperties(Constructor, staticProps);
39
+ return Constructor;
40
+ }
41
+ function _defineProperty(obj, key, value) {
42
+ if (key in obj) {
43
+ Object.defineProperty(obj, key, {
44
+ value: value,
45
+ enumerable: true,
46
+ configurable: true,
47
+ writable: true
48
+ });
49
+ } else {
50
+ obj[key] = value;
51
+ }
52
+ return obj;
53
+ }
54
+ function _instanceof(left, right) {
55
+ if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
56
+ return !!right[Symbol.hasInstance](left);
57
+ } else {
58
+ return left instanceof right;
59
+ }
60
+ }
61
+ function _iterableToArray(iter) {
62
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
63
+ }
64
+ function _iterableToArrayLimit(arr, i) {
65
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
66
+ if (_i == null) return;
67
+ var _arr = [];
68
+ var _n = true;
69
+ var _d = false;
70
+ var _s, _e;
71
+ try {
72
+ for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
73
+ _arr.push(_s.value);
74
+ if (i && _arr.length === i) break;
75
+ }
76
+ } catch (err) {
77
+ _d = true;
78
+ _e = err;
79
+ } finally{
80
+ try {
81
+ if (!_n && _i["return"] != null) _i["return"]();
82
+ } finally{
83
+ if (_d) throw _e;
84
+ }
85
+ }
86
+ return _arr;
87
+ }
88
+ function _nonIterableRest() {
89
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
90
+ }
91
+ function _nonIterableSpread() {
92
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
93
+ }
94
+ function _objectSpread(target) {
95
+ for(var i = 1; i < arguments.length; i++){
96
+ var source = arguments[i] != null ? arguments[i] : {};
97
+ var ownKeys = Object.keys(source);
98
+ if (typeof Object.getOwnPropertySymbols === "function") {
99
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
100
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
101
+ }));
102
+ }
103
+ ownKeys.forEach(function(key) {
104
+ _defineProperty(target, key, source[key]);
105
+ });
106
+ }
107
+ return target;
108
+ }
109
+ function ownKeys(object, enumerableOnly) {
110
+ var keys = Object.keys(object);
111
+ if (Object.getOwnPropertySymbols) {
112
+ var symbols = Object.getOwnPropertySymbols(object);
113
+ if (enumerableOnly) {
114
+ symbols = symbols.filter(function(sym) {
115
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
116
+ });
117
+ }
118
+ keys.push.apply(keys, symbols);
119
+ }
120
+ return keys;
121
+ }
122
+ function _objectSpreadProps(target, source) {
123
+ source = source != null ? source : {};
124
+ if (Object.getOwnPropertyDescriptors) {
125
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
126
+ } else {
127
+ ownKeys(Object(source)).forEach(function(key) {
128
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
129
+ });
130
+ }
131
+ return target;
132
+ }
133
+ function _slicedToArray(arr, i) {
134
+ return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
135
+ }
136
+ function _toConsumableArray(arr) {
137
+ return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
138
+ }
139
+ var _typeof = function(obj) {
140
+ "@swc/helpers - typeof";
141
+ return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
142
+ };
143
+ function _unsupportedIterableToArray(o, minLen) {
144
+ if (!o) return;
145
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
146
+ var n = Object.prototype.toString.call(o).slice(8, -1);
147
+ if (n === "Object" && o.constructor) n = o.constructor.name;
148
+ if (n === "Map" || n === "Set") return Array.from(n);
149
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
150
+ }
151
+ var e = {};
152
+ (function() {
153
+ e.d = function(t, r) {
154
+ for(var n in r){
155
+ if (e.o(r, n) && !e.o(t, n)) {
156
+ Object.defineProperty(t, n, {
157
+ enumerable: true,
158
+ get: r[n]
159
+ });
160
+ }
161
+ }
162
+ };
163
+ })();
164
+ (function() {
165
+ e.o = function(e, t) {
166
+ return Object.prototype.hasOwnProperty.call(e, t);
167
+ };
168
+ })();
169
+ if (typeof e !== "undefined") e.ab = new URL(".", require("url").pathToFileURL(__filename).toString()).pathname.slice(require("url").pathToFileURL(__filename).toString().match(/^file:\/\/\/\w:/) ? 1 : 0, -1) + "/";
170
+ var t = {};
171
+ e.d(t, {
172
+ A: function() {
173
+ return lib;
174
+ }
175
+ });
176
+ var assert = function(e) {
177
+ var t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "Internal Logic Error";
178
+ if (!e) {
179
+ throw new Error(typeof t === "function" ? t() : t);
180
+ }
181
+ };
182
+ var Value = function Value(e, t) {
183
+ "use strict";
184
+ _classCallCheck(this, Value);
185
+ this.value = e;
186
+ this.excluded = t;
187
+ this.isSimpleStarRec = e === "**";
188
+ this.isRegexStarRec = e.startsWith("**(") && e.endsWith(")");
189
+ this.isStarRec = this.isSimpleStarRec || this.isRegexStarRec;
190
+ };
191
+ var Ref = /*#__PURE__*/ function() {
192
+ "use strict";
193
+ function Ref(e) {
194
+ var t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : null;
195
+ _classCallCheck(this, Ref);
196
+ this.left = t === null;
197
+ this.link = t === null ? new Ref(e, this) : t;
198
+ this.type = e;
199
+ this.isStarRec = this.type === "**";
200
+ this.node = null;
201
+ this.pointer = null;
202
+ }
203
+ _createClass(Ref, [
204
+ {
205
+ key: "setPointer",
206
+ value: function setPointer(e) {
207
+ this.pointer = e;
208
+ this.link.pointer = e;
209
+ }
210
+ },
211
+ {
212
+ key: "setNode",
213
+ value: function setNode(e) {
214
+ this.node = e;
215
+ this.link.node = e;
216
+ }
217
+ }
218
+ ]);
219
+ return Ref;
220
+ }();
221
+ var throwError = function(e, t) {
222
+ var r = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
223
+ throw new Error(Object.entries(r).reduce(function(e, param) {
224
+ var _param = _slicedToArray(param, 2), _$t = _param[0], r = _param[1];
225
+ return "".concat(e, ", ").concat(_$t, " ").concat(r);
226
+ }, "".concat(e, ": ").concat(t)));
227
+ };
228
+ var getSimple = function(e) {
229
+ return e.length === 1 ? e[0] : e;
230
+ };
231
+ var r = /^[?*+\d]+$/;
232
+ var parser_result = function(e) {
233
+ var t = [];
234
+ t.or = true;
235
+ var n = false;
236
+ var s = false;
237
+ var i = 0;
238
+ var l = [];
239
+ var newChild = function(e) {
240
+ if (t.excluded === true) {
241
+ assert(s === false);
242
+ s = true;
243
+ }
244
+ l.push(t);
245
+ t = [];
246
+ t.or = e;
247
+ };
248
+ var finishChild = function() {
249
+ var e = l.pop();
250
+ var r = getSimple(t);
251
+ if (e.or === true && r.or === true) {
252
+ var _e;
253
+ (_e = e).push.apply(_e, _toConsumableArray(r));
254
+ } else {
255
+ e.push(r);
256
+ }
257
+ t = e;
258
+ };
259
+ newChild(false);
260
+ return {
261
+ setInArray: function(t, r) {
262
+ if (n === t) {
263
+ throwError(n ? "Bad Array Start" : "Bad Array Terminator", e, {
264
+ char: r
265
+ });
266
+ }
267
+ n = t;
268
+ },
269
+ finishElement: function(l, a, o) {
270
+ var ref = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : {}, tmp = ref.finReq, c = tmp === void 0 ? false : tmp, tmp1 = ref.group, u = tmp1 === void 0 ? false : tmp1;
271
+ var f = i === l;
272
+ if (f) {
273
+ if (!o.includes(e[l - 1] || null)) {
274
+ throwError(a, e, {
275
+ char: l
276
+ });
277
+ }
278
+ i += 1;
279
+ } else {
280
+ if (c) {
281
+ throwError(a, e, {
282
+ char: l
283
+ });
284
+ }
285
+ var _$o = e.slice(i, l);
286
+ if (u && ![
287
+ "**",
288
+ "++"
289
+ ].includes(_$o)) {
290
+ throwError("Bad Group Start", e, {
291
+ char: l
292
+ });
293
+ }
294
+ if (n && !(r.test(_$o) || _$o.startsWith("(") && _$o.endsWith(")"))) {
295
+ throwError("Bad Array Selector", e, {
296
+ selector: _$o
297
+ });
298
+ }
299
+ if (u) {
300
+ t.push(new Ref(_$o));
301
+ } else {
302
+ t.push(new Value(n ? "[".concat(_$o, "]") : _$o, s));
303
+ s = false;
304
+ }
305
+ i = l + 1;
306
+ }
307
+ },
308
+ startExclusion: function(t) {
309
+ if (s !== false) {
310
+ throwError("Redundant Exclusion", e, {
311
+ char: t
312
+ });
313
+ }
314
+ s = true;
315
+ },
316
+ startGroup: function() {
317
+ newChild(true);
318
+ if (s) {
319
+ t.excluded = true;
320
+ s = false;
321
+ }
322
+ newChild(false);
323
+ },
324
+ newGroupElement: function() {
325
+ finishChild();
326
+ newChild(false);
327
+ },
328
+ finishGroup: function(r) {
329
+ if (l.length < 2) {
330
+ throwError("Unexpected Group Terminator", e, {
331
+ char: r
332
+ });
333
+ }
334
+ finishChild();
335
+ finishChild();
336
+ assert(Array.isArray(t));
337
+ var n = t[t.length - 2];
338
+ if (_instanceof(n, Ref) && n.left === true) {
339
+ t.push(n.link);
340
+ }
341
+ },
342
+ finalizeResult: function() {
343
+ finishChild();
344
+ assert(s === false);
345
+ if (l.length !== 0) {
346
+ throwError("Non Terminated Group", e);
347
+ }
348
+ if (n) {
349
+ throwError("Non Terminated Array", e);
350
+ }
351
+ return getSimple(t);
352
+ }
353
+ };
354
+ };
355
+ var parser_throwError = function(e, t) {
356
+ var r = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
357
+ throw new Error(Object.entries(r).reduce(function(e, param) {
358
+ var _param = _slicedToArray(param, 2), _$t = _param[0], r = _param[1];
359
+ return "".concat(e, ", ").concat(_$t, " ").concat(r);
360
+ }, "".concat(e, ": ").concat(t)));
361
+ };
362
+ var parse = function(e, t) {
363
+ if (e === "") {
364
+ return new Value("", false);
365
+ }
366
+ if (Array.isArray(e)) {
367
+ if (e.length === 0) {
368
+ return new Value("", false);
369
+ }
370
+ return e.map(function(r, n) {
371
+ if (typeof r === "number") {
372
+ if (!t.useArraySelector) {
373
+ parser_throwError("Forbidden Array Selector", JSON.stringify(e), {
374
+ idx: n
375
+ });
376
+ }
377
+ return new Value("[".concat(r, "]"), false);
378
+ }
379
+ return new Value(r.replaceAll("\\", "\\\\"), false);
380
+ });
381
+ }
382
+ var r = parser_result(e);
383
+ var n = e.length;
384
+ var s = false;
385
+ var i = 0;
386
+ for(var l = 0; l < n; l += 1){
387
+ var n1 = e[l];
388
+ if (s === false) {
389
+ if (i === 0) {
390
+ switch(n1){
391
+ case ".":
392
+ r.finishElement(l, "Bad Path Separator", [
393
+ "]",
394
+ "}"
395
+ ]);
396
+ break;
397
+ case "[":
398
+ if (!t.useArraySelector) {
399
+ parser_throwError("Forbidden Array Selector", e, {
400
+ char: l
401
+ });
402
+ }
403
+ r.finishElement(l, "Bad Array Start", [
404
+ null,
405
+ "!",
406
+ "{",
407
+ ",",
408
+ "}",
409
+ "]"
410
+ ]);
411
+ r.setInArray(true, l);
412
+ break;
413
+ case "]":
414
+ r.finishElement(l, "Bad Array Terminator", [
415
+ "}"
416
+ ]);
417
+ r.setInArray(false, l);
418
+ break;
419
+ case "{":
420
+ r.finishElement(l, "Bad Group Start", [
421
+ null,
422
+ "!",
423
+ ".",
424
+ "[",
425
+ "{",
426
+ ","
427
+ ], {
428
+ group: true
429
+ });
430
+ r.startGroup();
431
+ break;
432
+ case ",":
433
+ r.finishElement(l, "Bad Group Separator", [
434
+ "]",
435
+ "}"
436
+ ]);
437
+ r.newGroupElement();
438
+ break;
439
+ case "}":
440
+ r.finishElement(l, "Bad Group Terminator", [
441
+ "]",
442
+ "}"
443
+ ]);
444
+ r.finishGroup(l);
445
+ break;
446
+ case "!":
447
+ r.finishElement(l, "Bad Exclusion", [
448
+ null,
449
+ ".",
450
+ ",",
451
+ "{",
452
+ "["
453
+ ], {
454
+ finReq: true
455
+ });
456
+ r.startExclusion(l);
457
+ break;
458
+ default:
459
+ break;
460
+ }
461
+ }
462
+ switch(n1){
463
+ case "(":
464
+ i += 1;
465
+ break;
466
+ case ")":
467
+ if (i === 0) {
468
+ parser_throwError("Unexpected Parentheses", e, {
469
+ char: l
470
+ });
471
+ }
472
+ i -= 1;
473
+ break;
474
+ default:
475
+ break;
476
+ }
477
+ }
478
+ s = n1 === "\\" ? !s : false;
479
+ }
480
+ if (s !== false) {
481
+ parser_throwError("Dangling Escape", e, {
482
+ char: n - 1
483
+ });
484
+ }
485
+ if (i !== 0) {
486
+ parser_throwError("Unterminated Parentheses", e);
487
+ }
488
+ r.finishElement(n, "Bad Terminator", [
489
+ "]",
490
+ "}"
491
+ ]);
492
+ return r.finalizeResult();
493
+ };
494
+ var n = {
495
+ parse: parse
496
+ };
497
+ var iterator = function(e, t) {
498
+ var r = [
499
+ e
500
+ ];
501
+ var n = [
502
+ null
503
+ ];
504
+ var s = [];
505
+ var i = [];
506
+ var l = 0;
507
+ var a = true;
508
+ while(l !== -1){
509
+ var _$e = r[l];
510
+ if (Array.isArray(_$e)) {
511
+ if (_$e.or !== true) {
512
+ var _r, _n;
513
+ (_r = r).splice.apply(_r, [
514
+ l,
515
+ 1
516
+ ].concat(_toConsumableArray(_$e)));
517
+ (_n = n).splice.apply(_n, [
518
+ l,
519
+ 1
520
+ ].concat(_toConsumableArray(new Array(_$e.length).fill(n[l]))));
521
+ if (n[l] !== null) {
522
+ i[n[l]] += _$e.length - 1;
523
+ }
524
+ } else {
525
+ if (s[l] === undefined) {
526
+ s[l] = 0;
527
+ i[l] = 0;
528
+ } else if (i[l] !== 0) {
529
+ r.splice(l + 1, i[l]);
530
+ n.splice(l + 1, i[l]);
531
+ i[l] = 0;
532
+ }
533
+ if (s[l] < _$e.length) {
534
+ r.splice(l + 1, 0, _$e[s[l]]);
535
+ n.splice(l + 1, 0, l);
536
+ s[l] = (s[l] || 0) + 1;
537
+ i[l] += 1;
538
+ a = true;
539
+ l += 1;
540
+ } else {
541
+ s[l] = 0;
542
+ l -= 1;
543
+ }
544
+ }
545
+ } else if (a === true) {
546
+ t("ADD", _$e);
547
+ if (l === r.length - 1) {
548
+ t("FIN", _$e);
549
+ a = false;
550
+ } else {
551
+ l += 1;
552
+ }
553
+ } else {
554
+ t("RM", _$e);
555
+ l -= 1;
556
+ }
557
+ }
558
+ };
559
+ var compiler_iterator = function(e, t, r, param) {
560
+ var n = param.onAdd, s = param.onFin;
561
+ var i = [
562
+ [
563
+ [
564
+ e,
565
+ null
566
+ ]
567
+ ]
568
+ ];
569
+ var l = false;
570
+ iterator(r, function(r, a) {
571
+ if (r === "RM") {
572
+ if (a.excluded === true) {
573
+ l = false;
574
+ }
575
+ i.length -= 2;
576
+ } else if (r === "ADD") {
577
+ if (a.excluded === true) {
578
+ if (l) {
579
+ throw new Error('Redundant Exclusion: "'.concat(t, '"'));
580
+ }
581
+ l = true;
582
+ }
583
+ var _$e = [];
584
+ var _$r = i[i.length - 2];
585
+ i[i.length - 1].forEach(function(param) {
586
+ var _param = _slicedToArray(param, 2), _$t = _param[0], s = _param[1];
587
+ return n(_$t, s, a, _$r, function(r) {
588
+ return _$e.push([
589
+ r,
590
+ _$t
591
+ ]);
592
+ });
593
+ });
594
+ i.push(a, _$e);
595
+ } else {
596
+ i[i.length - 1].filter(function(param) {
597
+ var _param = _slicedToArray(param, 1), _$t = _param[0];
598
+ return _$t !== e;
599
+ }).forEach(function(param) {
600
+ var _param = _slicedToArray(param, 2), _$e = _param[0], _$t = _param[1];
601
+ return s(_$e, _$t, a, l);
602
+ });
603
+ }
604
+ });
605
+ };
606
+ var s = /[?!,.*+[\](){}\\]/g;
607
+ var helper_escape = function(e) {
608
+ return e.replace(s, "\\$&");
609
+ };
610
+ var i = /[\\^$*+?.()|[\]{}]/;
611
+ var asRegex = function(e) {
612
+ var t = e.charCodeAt(0) === 94;
613
+ var r = e.charCodeAt(e.length - 1) === 36;
614
+ var n = e.slice(t ? 1 : 0, r ? -1 : undefined);
615
+ if (i.test(n)) {
616
+ try {
617
+ return new RegExp(e);
618
+ } catch (e1) {
619
+ throw new Error('Invalid Regex: "'.concat(e, '"'));
620
+ }
621
+ }
622
+ if (t && r) {
623
+ return {
624
+ test: function(e) {
625
+ return String(e) === n;
626
+ }
627
+ };
628
+ }
629
+ if (t) {
630
+ return {
631
+ test: function(e) {
632
+ return String(e).startsWith(n);
633
+ }
634
+ };
635
+ }
636
+ if (r) {
637
+ return {
638
+ test: function(e) {
639
+ return String(e).endsWith(n);
640
+ }
641
+ };
642
+ }
643
+ return {
644
+ test: function(e) {
645
+ return String(e).includes(n);
646
+ }
647
+ };
648
+ };
649
+ var toPath = function(e) {
650
+ var t = "";
651
+ for(var r = 0, n = e.length; r < n; r += 1){
652
+ var n1 = e[r];
653
+ if (typeof n1 === "number") {
654
+ t += "[".concat(n1, "]");
655
+ } else {
656
+ if (t.length > 0) {
657
+ t += ".";
658
+ }
659
+ t += helper_escape(n1);
660
+ }
661
+ }
662
+ return t;
663
+ };
664
+ var formatNeedle = function(e) {
665
+ return Array.isArray(e) ? toPath(e) : e;
666
+ };
667
+ var l = [
668
+ "-",
669
+ "/",
670
+ "\\",
671
+ "^",
672
+ "$",
673
+ "*",
674
+ "+",
675
+ "?",
676
+ ".",
677
+ "(",
678
+ ")",
679
+ "|",
680
+ "[",
681
+ "]",
682
+ "{",
683
+ "}"
684
+ ];
685
+ var parseValue = function(e) {
686
+ var t = "";
687
+ var r = false;
688
+ var n = true;
689
+ for(var s = 0; s < e.length; s += 1){
690
+ var i = e[s];
691
+ if (!r && i === "\\") {
692
+ r = true;
693
+ } else if (!r && i === "*") {
694
+ n = false;
695
+ t += ".*";
696
+ } else if (!r && i === "+") {
697
+ n = false;
698
+ t += ".+";
699
+ } else if (!r && i === "?") {
700
+ n = false;
701
+ t += ".";
702
+ } else {
703
+ if (l.includes(i)) {
704
+ n = false;
705
+ t += "\\";
706
+ }
707
+ t += i;
708
+ r = false;
709
+ }
710
+ }
711
+ if (n) {
712
+ return {
713
+ test: function(e) {
714
+ return String(e) === t;
715
+ }
716
+ };
717
+ }
718
+ if (t === ".+") {
719
+ return {
720
+ test: function(e) {
721
+ return e !== "";
722
+ }
723
+ };
724
+ }
725
+ return new RegExp("^".concat(t, "$"));
726
+ };
727
+ var compileValue = function(e) {
728
+ if ((e.startsWith("**(") || e.startsWith("++(")) && e.endsWith(")")) {
729
+ return asRegex(e.slice(3, -1));
730
+ }
731
+ if (e.startsWith("[(") && e.endsWith(")]")) {
732
+ return asRegex(e.slice(2, -2));
733
+ }
734
+ if (e.startsWith("(") && e.endsWith(")")) {
735
+ return asRegex(e.slice(1, -1));
736
+ }
737
+ if (e.startsWith("[") && e.endsWith("]")) {
738
+ return parseValue(e.slice(1, -1));
739
+ }
740
+ return parseValue(e);
741
+ };
742
+ var Node = /*#__PURE__*/ function() {
743
+ "use strict";
744
+ function Node(e, t) {
745
+ _classCallCheck(this, Node);
746
+ t.nodes.push(this);
747
+ this.value = e;
748
+ this.ctx = t;
749
+ this.order = t.counter;
750
+ this.children = [];
751
+ this.match = false;
752
+ this.matches = false;
753
+ this.needles = [];
754
+ this.leafNeedles = [];
755
+ this.leafNeedlesExclude = [];
756
+ this.leafNeedlesMatch = [];
757
+ this.isArrayTarget = e.startsWith("[") && e.endsWith("]");
758
+ this.isSimpleStarRec = e === "**";
759
+ this.isSimplePlusRec = e === "++";
760
+ this.isSimpleRec = this.isSimpleStarRec || this.isSimplePlusRec;
761
+ this.isRegexStarRec = e.startsWith("**(") && e.endsWith(")");
762
+ this.isRegexPlusRec = e.startsWith("++(") && e.endsWith(")");
763
+ this.isStarRec = this.isSimpleStarRec || this.isRegexStarRec;
764
+ this.isPlusRec = this.isSimplePlusRec || this.isRegexPlusRec;
765
+ this.isRec = this.isStarRec || this.isPlusRec;
766
+ this.isAnyArrayTarget = e === "[*]";
767
+ this.isAnyObjTarget = e === "*";
768
+ if (this.isSimpleRec || this.isAnyObjTarget || this.isAnyArrayTarget) {
769
+ this.regex = null;
770
+ } else {
771
+ var r = t.regex;
772
+ if (!(e in r)) {
773
+ r[e] = compileValue(e);
774
+ }
775
+ this.regex = r[e];
776
+ }
777
+ }
778
+ _createClass(Node, [
779
+ {
780
+ key: "recMatch",
781
+ value: function recMatch(e) {
782
+ if (!this.isRec) {
783
+ return false;
784
+ }
785
+ if (this.isSimpleRec) {
786
+ return true;
787
+ }
788
+ return this.regex.test(e);
789
+ }
790
+ },
791
+ {
792
+ key: "typeMatch",
793
+ value: function typeMatch(e, t) {
794
+ if (this.isSimpleRec) {
795
+ return true;
796
+ }
797
+ if (this.isAnyArrayTarget) {
798
+ return t;
799
+ }
800
+ if (this.isAnyObjTarget) {
801
+ return !t;
802
+ }
803
+ if (t !== this.isArrayTarget && !this.isRec) {
804
+ return false;
805
+ }
806
+ return this.regex.test(e);
807
+ }
808
+ },
809
+ {
810
+ key: "add",
811
+ value: function add(e) {
812
+ this.children.push(e);
813
+ }
814
+ },
815
+ {
816
+ key: "get",
817
+ value: function get(e) {
818
+ return this.children.find(function(param) {
819
+ var t = param.value;
820
+ return t === e;
821
+ });
822
+ }
823
+ },
824
+ {
825
+ key: "markMatches",
826
+ value: function markMatches() {
827
+ this.matches = true;
828
+ }
829
+ },
830
+ {
831
+ key: "addNeedle",
832
+ value: function addNeedle(e) {
833
+ if (!this.needles.includes(e)) {
834
+ this.needles.push(e);
835
+ }
836
+ }
837
+ },
838
+ {
839
+ key: "setRoots",
840
+ value: function setRoots(e) {
841
+ this.roots = e;
842
+ }
843
+ },
844
+ {
845
+ key: "finish",
846
+ value: function finish(e, t, r) {
847
+ this.addNeedle(e);
848
+ if (!this.leafNeedles.includes(e)) {
849
+ this.leafNeedles.push(e);
850
+ }
851
+ var n = t ? this.leafNeedlesExclude : this.leafNeedlesMatch;
852
+ if (!n.includes(e)) {
853
+ n.push(e);
854
+ }
855
+ this.match = !t;
856
+ this.matches = this.match;
857
+ this.index = r;
858
+ }
859
+ }
860
+ ]);
861
+ return Node;
862
+ }();
863
+ var applyNeedle = function(e, t, r, n) {
864
+ compiler_iterator(e, t, r, {
865
+ onAdd: function(e, r, s, i, l) {
866
+ e.addNeedle(t);
867
+ if (_instanceof(s, Ref)) {
868
+ if (s.left === true) {
869
+ if (s.isStarRec) {
870
+ s.setPointer(e);
871
+ }
872
+ s.setNode(new Node("*", n));
873
+ n.links.push(e, s.node);
874
+ l(s.node);
875
+ } else {
876
+ s.target = "target" in i ? i.target : r.get(i.value);
877
+ n.links.push(s.target, s.node);
878
+ if (s.pointer !== null) {
879
+ l(s.pointer);
880
+ s.setPointer(null);
881
+ }
882
+ l(e);
883
+ }
884
+ return;
885
+ }
886
+ var a = s.isStarRec && s.value === (i === null || i === void 0 ? void 0 : i.value);
887
+ if (a && n.strict) {
888
+ throw new Error('Redundant Recursion: "'.concat(t, '"'));
889
+ }
890
+ if (!a) {
891
+ var _$t = e.get(s.value);
892
+ if (_$t === undefined) {
893
+ _$t = new Node(s.value, n);
894
+ e.add(_$t);
895
+ }
896
+ l(_$t);
897
+ } else {
898
+ s.target = e;
899
+ }
900
+ if (s.isStarRec) {
901
+ l(e);
902
+ }
903
+ },
904
+ onFin: function(e, r, s, i) {
905
+ if (n.strict && s.isSimpleStarRec) {
906
+ var _$e = r.children.filter(function(param) {
907
+ var _$e = param.value;
908
+ return ![
909
+ "",
910
+ "**"
911
+ ].includes(_$e);
912
+ });
913
+ if (_$e.length !== 0) {
914
+ throw new Error('Needle Target Invalidated: "'.concat(_$e[0].needles[0], '" by "').concat(t, '"'));
915
+ }
916
+ }
917
+ if (n.strict && e.leafNeedles.length !== 0) {
918
+ var _$r = formatNeedle(e.leafNeedles[0]);
919
+ var _$n = formatNeedle(t);
920
+ throw new Error('Redundant Needle Target: "'.concat(_$r, '" vs "').concat(_$n, '"'));
921
+ }
922
+ e.finish(t, i, n.counter);
923
+ n.counter += 1;
924
+ }
925
+ });
926
+ };
927
+ var finalizeTower = function(e, t) {
928
+ var _loop = function() {
929
+ var _$e = r.pop();
930
+ var _$t = r.pop();
931
+ var n = _$t.children;
932
+ _$t.children = _toConsumableArray(_$e.children.filter(function(e) {
933
+ return !n.includes(e);
934
+ })).concat(_toConsumableArray(n));
935
+ };
936
+ var r = t.links;
937
+ while(r.length !== 0)_loop();
938
+ if (t.useArraySelector === false) {
939
+ e.setRoots(e.children.filter(function(param) {
940
+ var _$e = param.isStarRec, _$t = param.value;
941
+ return _$e || _$t === "";
942
+ }));
943
+ }
944
+ var n = t.nodes;
945
+ while(n.length !== 0){
946
+ var _$e = n.pop();
947
+ var _$t = _$e.children;
948
+ _$t.reverse();
949
+ if (_$t.some(function(param) {
950
+ var _$e = param.matches;
951
+ return _$e;
952
+ })) {
953
+ _$e.markMatches();
954
+ }
955
+ }
956
+ };
957
+ var compile = function(e, t) {
958
+ t.counter = 0;
959
+ t.links = [];
960
+ t.nodes = [];
961
+ t.regex = Object.create(null);
962
+ var r = new Node("*", t);
963
+ for(var s = 0; s < e.length; s += 1){
964
+ var i = e[s];
965
+ var l = [
966
+ n.parse(i, t)
967
+ ];
968
+ applyNeedle(r, i, l, t);
969
+ }
970
+ finalizeTower(r, t);
971
+ return r;
972
+ };
973
+ var getUniques = function(e, t) {
974
+ var r = [];
975
+ for(var n = 0, s = e.length; n < s; n += 1){
976
+ var s1 = e[n][t];
977
+ for(var _$e = 0, _$t = s1.length; _$e < _$t; _$e += 1){
978
+ var _$t1 = s1[_$e];
979
+ if (!r.includes(_$t1)) {
980
+ r.push(_$t1);
981
+ }
982
+ }
983
+ }
984
+ return r;
985
+ };
986
+ var matchedBy = function(e) {
987
+ return getUniques(e, "leafNeedlesMatch");
988
+ };
989
+ var excludedBy = function(e) {
990
+ return getUniques(e, "leafNeedlesExclude");
991
+ };
992
+ var traversedBy = function(e) {
993
+ return getUniques(e, "needles");
994
+ };
995
+ var isLastLeafMatch = function(e) {
996
+ var t = -1;
997
+ var r = false;
998
+ var n = e.length;
999
+ while(n--){
1000
+ var _n = e[n], s = _n.index, i = _n.match;
1001
+ if (s > t) {
1002
+ t = s;
1003
+ r = i;
1004
+ }
1005
+ }
1006
+ return r;
1007
+ };
1008
+ var formatPath = function(e, t) {
1009
+ return t ? toPath(e) : _toConsumableArray(e);
1010
+ };
1011
+ var find_result = function(e, t) {
1012
+ if (t.rtn === "context") {
1013
+ return {
1014
+ onMatch: function() {},
1015
+ get: function() {
1016
+ return e.context;
1017
+ }
1018
+ };
1019
+ }
1020
+ if (t.rtn === "bool") {
1021
+ var e1 = false;
1022
+ return {
1023
+ onMatch: function() {
1024
+ e1 = true;
1025
+ },
1026
+ get: function() {
1027
+ return e1;
1028
+ }
1029
+ };
1030
+ }
1031
+ if (t.rtn === "count") {
1032
+ var e2 = 0;
1033
+ return {
1034
+ onMatch: function() {
1035
+ e2 += 1;
1036
+ },
1037
+ get: function() {
1038
+ return e2;
1039
+ }
1040
+ };
1041
+ }
1042
+ if (t.rtn === "sum") {
1043
+ var e3 = 0;
1044
+ return {
1045
+ onMatch: function(param) {
1046
+ var _$t = param.value;
1047
+ e3 += _$t;
1048
+ },
1049
+ get: function() {
1050
+ return e3;
1051
+ }
1052
+ };
1053
+ }
1054
+ var r = [];
1055
+ return {
1056
+ onMatch: function() {
1057
+ if (typeof t.rtn === "function") {
1058
+ return function() {
1059
+ return r.push(t.rtn(e));
1060
+ };
1061
+ }
1062
+ if (Array.isArray(t.rtn)) {
1063
+ return function() {
1064
+ return r.push(t.rtn.map(function(t) {
1065
+ return e[t];
1066
+ }));
1067
+ };
1068
+ }
1069
+ return function() {
1070
+ return r.push(e[t.rtn]);
1071
+ };
1072
+ }(),
1073
+ get: function() {
1074
+ return t.abort ? r[0] : r;
1075
+ }
1076
+ };
1077
+ };
1078
+ var find = function(e, t, r) {
1079
+ var _loop = function() {
1080
+ a = s.pop();
1081
+ o = s.pop();
1082
+ c = s.pop();
1083
+ u = s.pop();
1084
+ var _$e = i.length - a;
1085
+ for(var _$t = 0; _$t < _$e; _$t += 1){
1086
+ l.pop();
1087
+ i.pop();
1088
+ }
1089
+ if (_$e === -1) {
1090
+ l.push(f);
1091
+ i.push(o);
1092
+ f = f[o];
1093
+ } else if (o !== null) {
1094
+ i[i.length - 1] = o;
1095
+ f = l[l.length - 1][o];
1096
+ } else {
1097
+ f = n.haystack;
1098
+ }
1099
+ if (u) {
1100
+ if (r.filterFn === undefined || r.filterFn(h) !== false) {
1101
+ d.onMatch(h);
1102
+ if (r.abort) {
1103
+ s.length = 0;
1104
+ }
1105
+ }
1106
+ return "continue";
1107
+ }
1108
+ if (!c.some(function(param) {
1109
+ var _$e = param.matches;
1110
+ return _$e;
1111
+ })) {
1112
+ return "continue";
1113
+ }
1114
+ var p = r.useArraySelector === false && Array.isArray(f);
1115
+ if (!p && isLastLeafMatch(c)) {
1116
+ s.push(true, c, o, a);
1117
+ u = true;
1118
+ }
1119
+ if ((r.breakFn === undefined || r.breakFn(h) !== true) && _instanceof(f, Object)) {
1120
+ var _loop = function(i1, l1) {
1121
+ var l = n1[i1];
1122
+ var o = [];
1123
+ if (p) {
1124
+ var _o;
1125
+ (_o = o).push.apply(_o, _toConsumableArray(c));
1126
+ if (a === 0) {
1127
+ var _o1;
1128
+ (_o1 = o).push.apply(_o1, _toConsumableArray(t.roots));
1129
+ }
1130
+ } else {
1131
+ for(var _$t = 0, _$r = c.length; _$t !== _$r; _$t += 1){
1132
+ var _$r1 = c[_$t];
1133
+ if (_$r1.recMatch(l)) {
1134
+ o.push(_$r1);
1135
+ }
1136
+ var n = _$r1.children;
1137
+ var s1 = n.length;
1138
+ while(s1--){
1139
+ var _$t1 = n[s1];
1140
+ if (_$t1.typeMatch(l, _$e1)) {
1141
+ o.push(_$t1);
1142
+ }
1143
+ }
1144
+ }
1145
+ }
1146
+ if (r.orderByNeedles) {
1147
+ o.index = Buffer.from(o.map(function(param) {
1148
+ var _$e = param.order;
1149
+ return _$e;
1150
+ }).sort());
1151
+ var _$e = s.length - 3;
1152
+ var _$t2 = _$e - i1 * 4;
1153
+ while(_$e !== _$t2 && Buffer.compare(o.index, s[_$e].index) === 1){
1154
+ _$e -= 4;
1155
+ }
1156
+ s.splice(_$e + 3, 0, false, o, l, a + 1);
1157
+ } else {
1158
+ s.push(false, o, l, a + 1);
1159
+ }
1160
+ };
1161
+ var _$e1 = Array.isArray(f);
1162
+ var n1 = _$e1 ? f.map(function(e, t) {
1163
+ return t;
1164
+ }).filter(function() {
1165
+ return true;
1166
+ }) : Object.keys(f);
1167
+ if (!_$e1 && r.compareFn) {
1168
+ n1.sort(r.compareFn(h));
1169
+ }
1170
+ if (!r.reverse) {
1171
+ n1.reverse();
1172
+ }
1173
+ for(var i1 = 0, l1 = n1.length; i1 < l1; i1 += 1)_loop(i1, l1);
1174
+ }
1175
+ };
1176
+ var n = {
1177
+ haystack: e,
1178
+ context: r.context
1179
+ };
1180
+ if (r.beforeFn !== undefined) {
1181
+ var _$e = r.beforeFn(n);
1182
+ if (_$e !== undefined) {
1183
+ n.haystack = _$e;
1184
+ }
1185
+ }
1186
+ var s = [
1187
+ false,
1188
+ [
1189
+ t
1190
+ ],
1191
+ null,
1192
+ 0
1193
+ ];
1194
+ var i = [];
1195
+ var l = [];
1196
+ var a;
1197
+ var o;
1198
+ var c;
1199
+ var u;
1200
+ var f = n.haystack;
1201
+ var h = {
1202
+ getKey: function() {
1203
+ var _$e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : r.joined;
1204
+ return formatPath(i, _$e);
1205
+ },
1206
+ get key () {
1207
+ return h.getKey();
1208
+ },
1209
+ getValue: function() {
1210
+ return f;
1211
+ },
1212
+ get value () {
1213
+ return h.getValue();
1214
+ },
1215
+ getEntry: function() {
1216
+ var _$e = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : r.joined;
1217
+ return [
1218
+ formatPath(i, _$e),
1219
+ f
1220
+ ];
1221
+ },
1222
+ get entry () {
1223
+ return h.getEntry();
1224
+ },
1225
+ getIsMatch: function() {
1226
+ return u;
1227
+ },
1228
+ get isMatch () {
1229
+ return h.getIsMatch();
1230
+ },
1231
+ getMatchedBy: function() {
1232
+ return matchedBy(c);
1233
+ },
1234
+ get matchedBy () {
1235
+ return h.getMatchedBy();
1236
+ },
1237
+ getExcludedBy: function() {
1238
+ return excludedBy(c);
1239
+ },
1240
+ get excludedBy () {
1241
+ return h.getExcludedBy();
1242
+ },
1243
+ getTraversedBy: function() {
1244
+ return traversedBy(c);
1245
+ },
1246
+ get traversedBy () {
1247
+ return h.getTraversedBy();
1248
+ },
1249
+ getGproperty: function() {
1250
+ return i[i.length - 2];
1251
+ },
1252
+ get gproperty () {
1253
+ return h.getGproperty();
1254
+ },
1255
+ getProperty: function() {
1256
+ return i[i.length - 1];
1257
+ },
1258
+ get property () {
1259
+ return h.getProperty();
1260
+ },
1261
+ getGparent: function() {
1262
+ return l[l.length - 2];
1263
+ },
1264
+ get gparent () {
1265
+ return h.getGparent();
1266
+ },
1267
+ getParent: function() {
1268
+ return l[l.length - 1];
1269
+ },
1270
+ get parent () {
1271
+ return h.getParent();
1272
+ },
1273
+ getParents: function() {
1274
+ return _toConsumableArray(l).reverse();
1275
+ },
1276
+ get parents () {
1277
+ return h.getParents();
1278
+ },
1279
+ getIsCircular: function() {
1280
+ return l.includes(f);
1281
+ },
1282
+ get isCircular () {
1283
+ return h.getIsCircular();
1284
+ },
1285
+ getIsLeaf: function() {
1286
+ return !_instanceof(f, Object);
1287
+ },
1288
+ get isLeaf () {
1289
+ return h.getIsLeaf();
1290
+ },
1291
+ getDepth: function() {
1292
+ return i.length;
1293
+ },
1294
+ get depth () {
1295
+ return h.getDepth();
1296
+ },
1297
+ get result () {
1298
+ return h.getResult();
1299
+ },
1300
+ context: n.context
1301
+ };
1302
+ var d = find_result(h, r);
1303
+ h.getResult = function() {
1304
+ return d.get();
1305
+ };
1306
+ if (r.useArraySelector || !Array.isArray(n.haystack)) {
1307
+ var _$e1 = t.get("");
1308
+ if (_$e1 !== undefined) {
1309
+ s[1].push(_$e1);
1310
+ }
1311
+ }
1312
+ do _loop();
1313
+ while (s.length !== 0);
1314
+ n.result = d.get();
1315
+ if (r.afterFn !== undefined) {
1316
+ var _$e2 = r.afterFn(n);
1317
+ if (_$e2 !== undefined) {
1318
+ n.result = _$e2;
1319
+ }
1320
+ }
1321
+ return n.result;
1322
+ };
1323
+ var expect = function(e, t, r) {
1324
+ assert(r.includes(_typeof(e[t])), function() {
1325
+ return 'Option "'.concat(t, '" not one of [').concat(r.join(", "), "]");
1326
+ });
1327
+ };
1328
+ var context = function(e) {
1329
+ var t = _objectSpread({
1330
+ filterFn: undefined,
1331
+ breakFn: undefined,
1332
+ beforeFn: undefined,
1333
+ afterFn: undefined,
1334
+ compareFn: undefined,
1335
+ reverse: true,
1336
+ orderByNeedles: false,
1337
+ abort: false,
1338
+ rtn: undefined,
1339
+ joined: false,
1340
+ useArraySelector: true,
1341
+ strict: true
1342
+ }, e);
1343
+ assert(Object.keys(t).length === 12, "Unexpected Option provided");
1344
+ expect(t, "filterFn", [
1345
+ "function",
1346
+ "undefined"
1347
+ ]);
1348
+ expect(t, "breakFn", [
1349
+ "function",
1350
+ "undefined"
1351
+ ]);
1352
+ expect(t, "beforeFn", [
1353
+ "function",
1354
+ "undefined"
1355
+ ]);
1356
+ expect(t, "afterFn", [
1357
+ "function",
1358
+ "undefined"
1359
+ ]);
1360
+ expect(t, "compareFn", [
1361
+ "function",
1362
+ "undefined"
1363
+ ]);
1364
+ expect(t, "reverse", [
1365
+ "boolean"
1366
+ ]);
1367
+ expect(t, "orderByNeedles", [
1368
+ "boolean"
1369
+ ]);
1370
+ expect(t, "abort", [
1371
+ "boolean"
1372
+ ]);
1373
+ assert(typeof t.rtn === "function" && t.rtn.length === 1 || [
1374
+ undefined,
1375
+ "context",
1376
+ "key",
1377
+ "value",
1378
+ "entry",
1379
+ "property",
1380
+ "gproperty",
1381
+ "parent",
1382
+ "gparent",
1383
+ "parents",
1384
+ "isMatch",
1385
+ "matchedBy",
1386
+ "excludedBy",
1387
+ "traversedBy",
1388
+ "isCircular",
1389
+ "isLeaf",
1390
+ "depth",
1391
+ "bool",
1392
+ "count",
1393
+ "sum"
1394
+ ].includes(t.rtn) || Array.isArray(t.rtn) && t.rtn.every(function(e) {
1395
+ return [
1396
+ "key",
1397
+ "value",
1398
+ "entry",
1399
+ "property",
1400
+ "gproperty",
1401
+ "parent",
1402
+ "gparent",
1403
+ "parents",
1404
+ "isMatch",
1405
+ "matchedBy",
1406
+ "excludedBy",
1407
+ "traversedBy",
1408
+ "isCircular",
1409
+ "isLeaf",
1410
+ "depth"
1411
+ ].includes(e);
1412
+ }), 'Option "rtn" is malformed');
1413
+ expect(t, "joined", [
1414
+ "boolean"
1415
+ ]);
1416
+ expect(t, "useArraySelector", [
1417
+ "boolean"
1418
+ ]);
1419
+ expect(t, "strict", [
1420
+ "boolean"
1421
+ ]);
1422
+ return t;
1423
+ };
1424
+ var lib = function(e) {
1425
+ var t = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
1426
+ assert(Array.isArray(e), 'Argument "needles" expected to be Array');
1427
+ assert(_instanceof(t, Object) && !Array.isArray(t), 'Argument "opts" expected to be Object');
1428
+ if (e.length === 0) {
1429
+ return function(e, t) {
1430
+ return t === undefined ? [] : t;
1431
+ };
1432
+ }
1433
+ var r = context(t);
1434
+ var n = compile(e, r);
1435
+ return function(e, t) {
1436
+ return find(e, n, _objectSpreadProps(_objectSpread({
1437
+ context: t
1438
+ }, r), {
1439
+ rtn: r.rtn || (t === undefined ? "key" : "context")
1440
+ }));
1441
+ };
1442
+ };
1443
+ var a = t.A;