@cadenza.io/core 3.15.13 → 3.16.1

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.
package/dist/index.js CHANGED
@@ -293,12 +293,983 @@ function debounce(func, wait, options) {
293
293
  }
294
294
  var debounce_default = debounce;
295
295
 
296
+ // node_modules/lodash-es/isArray.js
297
+ var isArray = Array.isArray;
298
+ var isArray_default = isArray;
299
+
300
+ // node_modules/lodash-es/identity.js
301
+ function identity(value) {
302
+ return value;
303
+ }
304
+ var identity_default = identity;
305
+
306
+ // node_modules/lodash-es/isFunction.js
307
+ var asyncTag = "[object AsyncFunction]";
308
+ var funcTag = "[object Function]";
309
+ var genTag = "[object GeneratorFunction]";
310
+ var proxyTag = "[object Proxy]";
311
+ function isFunction(value) {
312
+ if (!isObject_default(value)) {
313
+ return false;
314
+ }
315
+ var tag = baseGetTag_default(value);
316
+ return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;
317
+ }
318
+ var isFunction_default = isFunction;
319
+
320
+ // node_modules/lodash-es/_coreJsData.js
321
+ var coreJsData = root_default["__core-js_shared__"];
322
+ var coreJsData_default = coreJsData;
323
+
324
+ // node_modules/lodash-es/_isMasked.js
325
+ var maskSrcKey = (function() {
326
+ var uid = /[^.]+$/.exec(coreJsData_default && coreJsData_default.keys && coreJsData_default.keys.IE_PROTO || "");
327
+ return uid ? "Symbol(src)_1." + uid : "";
328
+ })();
329
+ function isMasked(func) {
330
+ return !!maskSrcKey && maskSrcKey in func;
331
+ }
332
+ var isMasked_default = isMasked;
333
+
334
+ // node_modules/lodash-es/_toSource.js
335
+ var funcProto = Function.prototype;
336
+ var funcToString = funcProto.toString;
337
+ function toSource(func) {
338
+ if (func != null) {
339
+ try {
340
+ return funcToString.call(func);
341
+ } catch (e) {
342
+ }
343
+ try {
344
+ return func + "";
345
+ } catch (e) {
346
+ }
347
+ }
348
+ return "";
349
+ }
350
+ var toSource_default = toSource;
351
+
352
+ // node_modules/lodash-es/_baseIsNative.js
353
+ var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
354
+ var reIsHostCtor = /^\[object .+?Constructor\]$/;
355
+ var funcProto2 = Function.prototype;
356
+ var objectProto3 = Object.prototype;
357
+ var funcToString2 = funcProto2.toString;
358
+ var hasOwnProperty2 = objectProto3.hasOwnProperty;
359
+ var reIsNative = RegExp(
360
+ "^" + funcToString2.call(hasOwnProperty2).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"
361
+ );
362
+ function baseIsNative(value) {
363
+ if (!isObject_default(value) || isMasked_default(value)) {
364
+ return false;
365
+ }
366
+ var pattern = isFunction_default(value) ? reIsNative : reIsHostCtor;
367
+ return pattern.test(toSource_default(value));
368
+ }
369
+ var baseIsNative_default = baseIsNative;
370
+
371
+ // node_modules/lodash-es/_getValue.js
372
+ function getValue(object, key) {
373
+ return object == null ? void 0 : object[key];
374
+ }
375
+ var getValue_default = getValue;
376
+
377
+ // node_modules/lodash-es/_getNative.js
378
+ function getNative(object, key) {
379
+ var value = getValue_default(object, key);
380
+ return baseIsNative_default(value) ? value : void 0;
381
+ }
382
+ var getNative_default = getNative;
383
+
384
+ // node_modules/lodash-es/_baseCreate.js
385
+ var objectCreate = Object.create;
386
+ var baseCreate = /* @__PURE__ */ (function() {
387
+ function object() {
388
+ }
389
+ return function(proto) {
390
+ if (!isObject_default(proto)) {
391
+ return {};
392
+ }
393
+ if (objectCreate) {
394
+ return objectCreate(proto);
395
+ }
396
+ object.prototype = proto;
397
+ var result = new object();
398
+ object.prototype = void 0;
399
+ return result;
400
+ };
401
+ })();
402
+ var baseCreate_default = baseCreate;
403
+
404
+ // node_modules/lodash-es/_apply.js
405
+ function apply(func, thisArg, args) {
406
+ switch (args.length) {
407
+ case 0:
408
+ return func.call(thisArg);
409
+ case 1:
410
+ return func.call(thisArg, args[0]);
411
+ case 2:
412
+ return func.call(thisArg, args[0], args[1]);
413
+ case 3:
414
+ return func.call(thisArg, args[0], args[1], args[2]);
415
+ }
416
+ return func.apply(thisArg, args);
417
+ }
418
+ var apply_default = apply;
419
+
420
+ // node_modules/lodash-es/_copyArray.js
421
+ function copyArray(source, array) {
422
+ var index = -1, length = source.length;
423
+ array || (array = Array(length));
424
+ while (++index < length) {
425
+ array[index] = source[index];
426
+ }
427
+ return array;
428
+ }
429
+ var copyArray_default = copyArray;
430
+
431
+ // node_modules/lodash-es/_shortOut.js
432
+ var HOT_COUNT = 800;
433
+ var HOT_SPAN = 16;
434
+ var nativeNow = Date.now;
435
+ function shortOut(func) {
436
+ var count = 0, lastCalled = 0;
437
+ return function() {
438
+ var stamp = nativeNow(), remaining = HOT_SPAN - (stamp - lastCalled);
439
+ lastCalled = stamp;
440
+ if (remaining > 0) {
441
+ if (++count >= HOT_COUNT) {
442
+ return arguments[0];
443
+ }
444
+ } else {
445
+ count = 0;
446
+ }
447
+ return func.apply(void 0, arguments);
448
+ };
449
+ }
450
+ var shortOut_default = shortOut;
451
+
452
+ // node_modules/lodash-es/constant.js
453
+ function constant(value) {
454
+ return function() {
455
+ return value;
456
+ };
457
+ }
458
+ var constant_default = constant;
459
+
460
+ // node_modules/lodash-es/_defineProperty.js
461
+ var defineProperty = (function() {
462
+ try {
463
+ var func = getNative_default(Object, "defineProperty");
464
+ func({}, "", {});
465
+ return func;
466
+ } catch (e) {
467
+ }
468
+ })();
469
+ var defineProperty_default = defineProperty;
470
+
471
+ // node_modules/lodash-es/_baseSetToString.js
472
+ var baseSetToString = !defineProperty_default ? identity_default : function(func, string) {
473
+ return defineProperty_default(func, "toString", {
474
+ "configurable": true,
475
+ "enumerable": false,
476
+ "value": constant_default(string),
477
+ "writable": true
478
+ });
479
+ };
480
+ var baseSetToString_default = baseSetToString;
481
+
482
+ // node_modules/lodash-es/_setToString.js
483
+ var setToString = shortOut_default(baseSetToString_default);
484
+ var setToString_default = setToString;
485
+
486
+ // node_modules/lodash-es/_isIndex.js
487
+ var MAX_SAFE_INTEGER = 9007199254740991;
488
+ var reIsUint = /^(?:0|[1-9]\d*)$/;
489
+ function isIndex(value, length) {
490
+ var type = typeof value;
491
+ length = length == null ? MAX_SAFE_INTEGER : length;
492
+ return !!length && (type == "number" || type != "symbol" && reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length);
493
+ }
494
+ var isIndex_default = isIndex;
495
+
496
+ // node_modules/lodash-es/_baseAssignValue.js
497
+ function baseAssignValue(object, key, value) {
498
+ if (key == "__proto__" && defineProperty_default) {
499
+ defineProperty_default(object, key, {
500
+ "configurable": true,
501
+ "enumerable": true,
502
+ "value": value,
503
+ "writable": true
504
+ });
505
+ } else {
506
+ object[key] = value;
507
+ }
508
+ }
509
+ var baseAssignValue_default = baseAssignValue;
510
+
511
+ // node_modules/lodash-es/eq.js
512
+ function eq(value, other) {
513
+ return value === other || value !== value && other !== other;
514
+ }
515
+ var eq_default = eq;
516
+
517
+ // node_modules/lodash-es/_assignValue.js
518
+ var objectProto4 = Object.prototype;
519
+ var hasOwnProperty3 = objectProto4.hasOwnProperty;
520
+ function assignValue(object, key, value) {
521
+ var objValue = object[key];
522
+ if (!(hasOwnProperty3.call(object, key) && eq_default(objValue, value)) || value === void 0 && !(key in object)) {
523
+ baseAssignValue_default(object, key, value);
524
+ }
525
+ }
526
+ var assignValue_default = assignValue;
527
+
528
+ // node_modules/lodash-es/_copyObject.js
529
+ function copyObject(source, props, object, customizer) {
530
+ var isNew = !object;
531
+ object || (object = {});
532
+ var index = -1, length = props.length;
533
+ while (++index < length) {
534
+ var key = props[index];
535
+ var newValue = customizer ? customizer(object[key], source[key], key, object, source) : void 0;
536
+ if (newValue === void 0) {
537
+ newValue = source[key];
538
+ }
539
+ if (isNew) {
540
+ baseAssignValue_default(object, key, newValue);
541
+ } else {
542
+ assignValue_default(object, key, newValue);
543
+ }
544
+ }
545
+ return object;
546
+ }
547
+ var copyObject_default = copyObject;
548
+
549
+ // node_modules/lodash-es/_overRest.js
550
+ var nativeMax2 = Math.max;
551
+ function overRest(func, start, transform) {
552
+ start = nativeMax2(start === void 0 ? func.length - 1 : start, 0);
553
+ return function() {
554
+ var args = arguments, index = -1, length = nativeMax2(args.length - start, 0), array = Array(length);
555
+ while (++index < length) {
556
+ array[index] = args[start + index];
557
+ }
558
+ index = -1;
559
+ var otherArgs = Array(start + 1);
560
+ while (++index < start) {
561
+ otherArgs[index] = args[index];
562
+ }
563
+ otherArgs[start] = transform(array);
564
+ return apply_default(func, this, otherArgs);
565
+ };
566
+ }
567
+ var overRest_default = overRest;
568
+
569
+ // node_modules/lodash-es/_baseRest.js
570
+ function baseRest(func, start) {
571
+ return setToString_default(overRest_default(func, start, identity_default), func + "");
572
+ }
573
+ var baseRest_default = baseRest;
574
+
575
+ // node_modules/lodash-es/isLength.js
576
+ var MAX_SAFE_INTEGER2 = 9007199254740991;
577
+ function isLength(value) {
578
+ return typeof value == "number" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER2;
579
+ }
580
+ var isLength_default = isLength;
581
+
582
+ // node_modules/lodash-es/isArrayLike.js
583
+ function isArrayLike(value) {
584
+ return value != null && isLength_default(value.length) && !isFunction_default(value);
585
+ }
586
+ var isArrayLike_default = isArrayLike;
587
+
588
+ // node_modules/lodash-es/_isIterateeCall.js
589
+ function isIterateeCall(value, index, object) {
590
+ if (!isObject_default(object)) {
591
+ return false;
592
+ }
593
+ var type = typeof index;
594
+ if (type == "number" ? isArrayLike_default(object) && isIndex_default(index, object.length) : type == "string" && index in object) {
595
+ return eq_default(object[index], value);
596
+ }
597
+ return false;
598
+ }
599
+ var isIterateeCall_default = isIterateeCall;
600
+
601
+ // node_modules/lodash-es/_createAssigner.js
602
+ function createAssigner(assigner) {
603
+ return baseRest_default(function(object, sources) {
604
+ var index = -1, length = sources.length, customizer = length > 1 ? sources[length - 1] : void 0, guard = length > 2 ? sources[2] : void 0;
605
+ customizer = assigner.length > 3 && typeof customizer == "function" ? (length--, customizer) : void 0;
606
+ if (guard && isIterateeCall_default(sources[0], sources[1], guard)) {
607
+ customizer = length < 3 ? void 0 : customizer;
608
+ length = 1;
609
+ }
610
+ object = Object(object);
611
+ while (++index < length) {
612
+ var source = sources[index];
613
+ if (source) {
614
+ assigner(object, source, index, customizer);
615
+ }
616
+ }
617
+ return object;
618
+ });
619
+ }
620
+ var createAssigner_default = createAssigner;
621
+
622
+ // node_modules/lodash-es/_isPrototype.js
623
+ var objectProto5 = Object.prototype;
624
+ function isPrototype(value) {
625
+ var Ctor = value && value.constructor, proto = typeof Ctor == "function" && Ctor.prototype || objectProto5;
626
+ return value === proto;
627
+ }
628
+ var isPrototype_default = isPrototype;
629
+
630
+ // node_modules/lodash-es/_baseTimes.js
631
+ function baseTimes(n, iteratee) {
632
+ var index = -1, result = Array(n);
633
+ while (++index < n) {
634
+ result[index] = iteratee(index);
635
+ }
636
+ return result;
637
+ }
638
+ var baseTimes_default = baseTimes;
639
+
640
+ // node_modules/lodash-es/_baseIsArguments.js
641
+ var argsTag = "[object Arguments]";
642
+ function baseIsArguments(value) {
643
+ return isObjectLike_default(value) && baseGetTag_default(value) == argsTag;
644
+ }
645
+ var baseIsArguments_default = baseIsArguments;
646
+
647
+ // node_modules/lodash-es/isArguments.js
648
+ var objectProto6 = Object.prototype;
649
+ var hasOwnProperty4 = objectProto6.hasOwnProperty;
650
+ var propertyIsEnumerable = objectProto6.propertyIsEnumerable;
651
+ var isArguments = baseIsArguments_default(/* @__PURE__ */ (function() {
652
+ return arguments;
653
+ })()) ? baseIsArguments_default : function(value) {
654
+ return isObjectLike_default(value) && hasOwnProperty4.call(value, "callee") && !propertyIsEnumerable.call(value, "callee");
655
+ };
656
+ var isArguments_default = isArguments;
657
+
658
+ // node_modules/lodash-es/stubFalse.js
659
+ function stubFalse() {
660
+ return false;
661
+ }
662
+ var stubFalse_default = stubFalse;
663
+
664
+ // node_modules/lodash-es/isBuffer.js
665
+ var freeExports = typeof exports == "object" && exports && !exports.nodeType && exports;
666
+ var freeModule = freeExports && typeof module == "object" && module && !module.nodeType && module;
667
+ var moduleExports = freeModule && freeModule.exports === freeExports;
668
+ var Buffer2 = moduleExports ? root_default.Buffer : void 0;
669
+ var nativeIsBuffer = Buffer2 ? Buffer2.isBuffer : void 0;
670
+ var isBuffer = nativeIsBuffer || stubFalse_default;
671
+ var isBuffer_default = isBuffer;
672
+
673
+ // node_modules/lodash-es/_baseIsTypedArray.js
674
+ var argsTag2 = "[object Arguments]";
675
+ var arrayTag = "[object Array]";
676
+ var boolTag = "[object Boolean]";
677
+ var dateTag = "[object Date]";
678
+ var errorTag = "[object Error]";
679
+ var funcTag2 = "[object Function]";
680
+ var mapTag = "[object Map]";
681
+ var numberTag = "[object Number]";
682
+ var objectTag = "[object Object]";
683
+ var regexpTag = "[object RegExp]";
684
+ var setTag = "[object Set]";
685
+ var stringTag = "[object String]";
686
+ var weakMapTag = "[object WeakMap]";
687
+ var arrayBufferTag = "[object ArrayBuffer]";
688
+ var dataViewTag = "[object DataView]";
689
+ var float32Tag = "[object Float32Array]";
690
+ var float64Tag = "[object Float64Array]";
691
+ var int8Tag = "[object Int8Array]";
692
+ var int16Tag = "[object Int16Array]";
693
+ var int32Tag = "[object Int32Array]";
694
+ var uint8Tag = "[object Uint8Array]";
695
+ var uint8ClampedTag = "[object Uint8ClampedArray]";
696
+ var uint16Tag = "[object Uint16Array]";
697
+ var uint32Tag = "[object Uint32Array]";
698
+ var typedArrayTags = {};
699
+ typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true;
700
+ typedArrayTags[argsTag2] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag2] = typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;
701
+ function baseIsTypedArray(value) {
702
+ return isObjectLike_default(value) && isLength_default(value.length) && !!typedArrayTags[baseGetTag_default(value)];
703
+ }
704
+ var baseIsTypedArray_default = baseIsTypedArray;
705
+
706
+ // node_modules/lodash-es/_baseUnary.js
707
+ function baseUnary(func) {
708
+ return function(value) {
709
+ return func(value);
710
+ };
711
+ }
712
+ var baseUnary_default = baseUnary;
713
+
714
+ // node_modules/lodash-es/_nodeUtil.js
715
+ var freeExports2 = typeof exports == "object" && exports && !exports.nodeType && exports;
716
+ var freeModule2 = freeExports2 && typeof module == "object" && module && !module.nodeType && module;
717
+ var moduleExports2 = freeModule2 && freeModule2.exports === freeExports2;
718
+ var freeProcess = moduleExports2 && freeGlobal_default.process;
719
+ var nodeUtil = (function() {
720
+ try {
721
+ var types = freeModule2 && freeModule2.require && freeModule2.require("util").types;
722
+ if (types) {
723
+ return types;
724
+ }
725
+ return freeProcess && freeProcess.binding && freeProcess.binding("util");
726
+ } catch (e) {
727
+ }
728
+ })();
729
+ var nodeUtil_default = nodeUtil;
730
+
731
+ // node_modules/lodash-es/isTypedArray.js
732
+ var nodeIsTypedArray = nodeUtil_default && nodeUtil_default.isTypedArray;
733
+ var isTypedArray = nodeIsTypedArray ? baseUnary_default(nodeIsTypedArray) : baseIsTypedArray_default;
734
+ var isTypedArray_default = isTypedArray;
735
+
736
+ // node_modules/lodash-es/_arrayLikeKeys.js
737
+ var objectProto7 = Object.prototype;
738
+ var hasOwnProperty5 = objectProto7.hasOwnProperty;
739
+ function arrayLikeKeys(value, inherited) {
740
+ var isArr = isArray_default(value), isArg = !isArr && isArguments_default(value), isBuff = !isArr && !isArg && isBuffer_default(value), isType = !isArr && !isArg && !isBuff && isTypedArray_default(value), skipIndexes = isArr || isArg || isBuff || isType, result = skipIndexes ? baseTimes_default(value.length, String) : [], length = result.length;
741
+ for (var key in value) {
742
+ if ((inherited || hasOwnProperty5.call(value, key)) && !(skipIndexes && // Safari 9 has enumerable `arguments.length` in strict mode.
743
+ (key == "length" || // Node.js 0.10 has enumerable non-index properties on buffers.
744
+ isBuff && (key == "offset" || key == "parent") || // PhantomJS 2 has enumerable non-index properties on typed arrays.
745
+ isType && (key == "buffer" || key == "byteLength" || key == "byteOffset") || // Skip index properties.
746
+ isIndex_default(key, length)))) {
747
+ result.push(key);
748
+ }
749
+ }
750
+ return result;
751
+ }
752
+ var arrayLikeKeys_default = arrayLikeKeys;
753
+
754
+ // node_modules/lodash-es/_overArg.js
755
+ function overArg(func, transform) {
756
+ return function(arg) {
757
+ return func(transform(arg));
758
+ };
759
+ }
760
+ var overArg_default = overArg;
761
+
762
+ // node_modules/lodash-es/_nativeKeysIn.js
763
+ function nativeKeysIn(object) {
764
+ var result = [];
765
+ if (object != null) {
766
+ for (var key in Object(object)) {
767
+ result.push(key);
768
+ }
769
+ }
770
+ return result;
771
+ }
772
+ var nativeKeysIn_default = nativeKeysIn;
773
+
774
+ // node_modules/lodash-es/_baseKeysIn.js
775
+ var objectProto8 = Object.prototype;
776
+ var hasOwnProperty6 = objectProto8.hasOwnProperty;
777
+ function baseKeysIn(object) {
778
+ if (!isObject_default(object)) {
779
+ return nativeKeysIn_default(object);
780
+ }
781
+ var isProto = isPrototype_default(object), result = [];
782
+ for (var key in object) {
783
+ if (!(key == "constructor" && (isProto || !hasOwnProperty6.call(object, key)))) {
784
+ result.push(key);
785
+ }
786
+ }
787
+ return result;
788
+ }
789
+ var baseKeysIn_default = baseKeysIn;
790
+
791
+ // node_modules/lodash-es/keysIn.js
792
+ function keysIn(object) {
793
+ return isArrayLike_default(object) ? arrayLikeKeys_default(object, true) : baseKeysIn_default(object);
794
+ }
795
+ var keysIn_default = keysIn;
796
+
797
+ // node_modules/lodash-es/_nativeCreate.js
798
+ var nativeCreate = getNative_default(Object, "create");
799
+ var nativeCreate_default = nativeCreate;
800
+
801
+ // node_modules/lodash-es/_hashClear.js
802
+ function hashClear() {
803
+ this.__data__ = nativeCreate_default ? nativeCreate_default(null) : {};
804
+ this.size = 0;
805
+ }
806
+ var hashClear_default = hashClear;
807
+
808
+ // node_modules/lodash-es/_hashDelete.js
809
+ function hashDelete(key) {
810
+ var result = this.has(key) && delete this.__data__[key];
811
+ this.size -= result ? 1 : 0;
812
+ return result;
813
+ }
814
+ var hashDelete_default = hashDelete;
815
+
816
+ // node_modules/lodash-es/_hashGet.js
817
+ var HASH_UNDEFINED = "__lodash_hash_undefined__";
818
+ var objectProto9 = Object.prototype;
819
+ var hasOwnProperty7 = objectProto9.hasOwnProperty;
820
+ function hashGet(key) {
821
+ var data = this.__data__;
822
+ if (nativeCreate_default) {
823
+ var result = data[key];
824
+ return result === HASH_UNDEFINED ? void 0 : result;
825
+ }
826
+ return hasOwnProperty7.call(data, key) ? data[key] : void 0;
827
+ }
828
+ var hashGet_default = hashGet;
829
+
830
+ // node_modules/lodash-es/_hashHas.js
831
+ var objectProto10 = Object.prototype;
832
+ var hasOwnProperty8 = objectProto10.hasOwnProperty;
833
+ function hashHas(key) {
834
+ var data = this.__data__;
835
+ return nativeCreate_default ? data[key] !== void 0 : hasOwnProperty8.call(data, key);
836
+ }
837
+ var hashHas_default = hashHas;
838
+
839
+ // node_modules/lodash-es/_hashSet.js
840
+ var HASH_UNDEFINED2 = "__lodash_hash_undefined__";
841
+ function hashSet(key, value) {
842
+ var data = this.__data__;
843
+ this.size += this.has(key) ? 0 : 1;
844
+ data[key] = nativeCreate_default && value === void 0 ? HASH_UNDEFINED2 : value;
845
+ return this;
846
+ }
847
+ var hashSet_default = hashSet;
848
+
849
+ // node_modules/lodash-es/_Hash.js
850
+ function Hash(entries) {
851
+ var index = -1, length = entries == null ? 0 : entries.length;
852
+ this.clear();
853
+ while (++index < length) {
854
+ var entry = entries[index];
855
+ this.set(entry[0], entry[1]);
856
+ }
857
+ }
858
+ Hash.prototype.clear = hashClear_default;
859
+ Hash.prototype["delete"] = hashDelete_default;
860
+ Hash.prototype.get = hashGet_default;
861
+ Hash.prototype.has = hashHas_default;
862
+ Hash.prototype.set = hashSet_default;
863
+ var Hash_default = Hash;
864
+
865
+ // node_modules/lodash-es/_listCacheClear.js
866
+ function listCacheClear() {
867
+ this.__data__ = [];
868
+ this.size = 0;
869
+ }
870
+ var listCacheClear_default = listCacheClear;
871
+
872
+ // node_modules/lodash-es/_assocIndexOf.js
873
+ function assocIndexOf(array, key) {
874
+ var length = array.length;
875
+ while (length--) {
876
+ if (eq_default(array[length][0], key)) {
877
+ return length;
878
+ }
879
+ }
880
+ return -1;
881
+ }
882
+ var assocIndexOf_default = assocIndexOf;
883
+
884
+ // node_modules/lodash-es/_listCacheDelete.js
885
+ var arrayProto = Array.prototype;
886
+ var splice = arrayProto.splice;
887
+ function listCacheDelete(key) {
888
+ var data = this.__data__, index = assocIndexOf_default(data, key);
889
+ if (index < 0) {
890
+ return false;
891
+ }
892
+ var lastIndex = data.length - 1;
893
+ if (index == lastIndex) {
894
+ data.pop();
895
+ } else {
896
+ splice.call(data, index, 1);
897
+ }
898
+ --this.size;
899
+ return true;
900
+ }
901
+ var listCacheDelete_default = listCacheDelete;
902
+
903
+ // node_modules/lodash-es/_listCacheGet.js
904
+ function listCacheGet(key) {
905
+ var data = this.__data__, index = assocIndexOf_default(data, key);
906
+ return index < 0 ? void 0 : data[index][1];
907
+ }
908
+ var listCacheGet_default = listCacheGet;
909
+
910
+ // node_modules/lodash-es/_listCacheHas.js
911
+ function listCacheHas(key) {
912
+ return assocIndexOf_default(this.__data__, key) > -1;
913
+ }
914
+ var listCacheHas_default = listCacheHas;
915
+
916
+ // node_modules/lodash-es/_listCacheSet.js
917
+ function listCacheSet(key, value) {
918
+ var data = this.__data__, index = assocIndexOf_default(data, key);
919
+ if (index < 0) {
920
+ ++this.size;
921
+ data.push([key, value]);
922
+ } else {
923
+ data[index][1] = value;
924
+ }
925
+ return this;
926
+ }
927
+ var listCacheSet_default = listCacheSet;
928
+
929
+ // node_modules/lodash-es/_ListCache.js
930
+ function ListCache(entries) {
931
+ var index = -1, length = entries == null ? 0 : entries.length;
932
+ this.clear();
933
+ while (++index < length) {
934
+ var entry = entries[index];
935
+ this.set(entry[0], entry[1]);
936
+ }
937
+ }
938
+ ListCache.prototype.clear = listCacheClear_default;
939
+ ListCache.prototype["delete"] = listCacheDelete_default;
940
+ ListCache.prototype.get = listCacheGet_default;
941
+ ListCache.prototype.has = listCacheHas_default;
942
+ ListCache.prototype.set = listCacheSet_default;
943
+ var ListCache_default = ListCache;
944
+
945
+ // node_modules/lodash-es/_Map.js
946
+ var Map2 = getNative_default(root_default, "Map");
947
+ var Map_default = Map2;
948
+
949
+ // node_modules/lodash-es/_mapCacheClear.js
950
+ function mapCacheClear() {
951
+ this.size = 0;
952
+ this.__data__ = {
953
+ "hash": new Hash_default(),
954
+ "map": new (Map_default || ListCache_default)(),
955
+ "string": new Hash_default()
956
+ };
957
+ }
958
+ var mapCacheClear_default = mapCacheClear;
959
+
960
+ // node_modules/lodash-es/_isKeyable.js
961
+ function isKeyable(value) {
962
+ var type = typeof value;
963
+ return type == "string" || type == "number" || type == "symbol" || type == "boolean" ? value !== "__proto__" : value === null;
964
+ }
965
+ var isKeyable_default = isKeyable;
966
+
967
+ // node_modules/lodash-es/_getMapData.js
968
+ function getMapData(map, key) {
969
+ var data = map.__data__;
970
+ return isKeyable_default(key) ? data[typeof key == "string" ? "string" : "hash"] : data.map;
971
+ }
972
+ var getMapData_default = getMapData;
973
+
974
+ // node_modules/lodash-es/_mapCacheDelete.js
975
+ function mapCacheDelete(key) {
976
+ var result = getMapData_default(this, key)["delete"](key);
977
+ this.size -= result ? 1 : 0;
978
+ return result;
979
+ }
980
+ var mapCacheDelete_default = mapCacheDelete;
981
+
982
+ // node_modules/lodash-es/_mapCacheGet.js
983
+ function mapCacheGet(key) {
984
+ return getMapData_default(this, key).get(key);
985
+ }
986
+ var mapCacheGet_default = mapCacheGet;
987
+
988
+ // node_modules/lodash-es/_mapCacheHas.js
989
+ function mapCacheHas(key) {
990
+ return getMapData_default(this, key).has(key);
991
+ }
992
+ var mapCacheHas_default = mapCacheHas;
993
+
994
+ // node_modules/lodash-es/_mapCacheSet.js
995
+ function mapCacheSet(key, value) {
996
+ var data = getMapData_default(this, key), size = data.size;
997
+ data.set(key, value);
998
+ this.size += data.size == size ? 0 : 1;
999
+ return this;
1000
+ }
1001
+ var mapCacheSet_default = mapCacheSet;
1002
+
1003
+ // node_modules/lodash-es/_MapCache.js
1004
+ function MapCache(entries) {
1005
+ var index = -1, length = entries == null ? 0 : entries.length;
1006
+ this.clear();
1007
+ while (++index < length) {
1008
+ var entry = entries[index];
1009
+ this.set(entry[0], entry[1]);
1010
+ }
1011
+ }
1012
+ MapCache.prototype.clear = mapCacheClear_default;
1013
+ MapCache.prototype["delete"] = mapCacheDelete_default;
1014
+ MapCache.prototype.get = mapCacheGet_default;
1015
+ MapCache.prototype.has = mapCacheHas_default;
1016
+ MapCache.prototype.set = mapCacheSet_default;
1017
+ var MapCache_default = MapCache;
1018
+
1019
+ // node_modules/lodash-es/_getPrototype.js
1020
+ var getPrototype = overArg_default(Object.getPrototypeOf, Object);
1021
+ var getPrototype_default = getPrototype;
1022
+
1023
+ // node_modules/lodash-es/isPlainObject.js
1024
+ var objectTag2 = "[object Object]";
1025
+ var funcProto3 = Function.prototype;
1026
+ var objectProto11 = Object.prototype;
1027
+ var funcToString3 = funcProto3.toString;
1028
+ var hasOwnProperty9 = objectProto11.hasOwnProperty;
1029
+ var objectCtorString = funcToString3.call(Object);
1030
+ function isPlainObject(value) {
1031
+ if (!isObjectLike_default(value) || baseGetTag_default(value) != objectTag2) {
1032
+ return false;
1033
+ }
1034
+ var proto = getPrototype_default(value);
1035
+ if (proto === null) {
1036
+ return true;
1037
+ }
1038
+ var Ctor = hasOwnProperty9.call(proto, "constructor") && proto.constructor;
1039
+ return typeof Ctor == "function" && Ctor instanceof Ctor && funcToString3.call(Ctor) == objectCtorString;
1040
+ }
1041
+ var isPlainObject_default = isPlainObject;
1042
+
1043
+ // node_modules/lodash-es/_stackClear.js
1044
+ function stackClear() {
1045
+ this.__data__ = new ListCache_default();
1046
+ this.size = 0;
1047
+ }
1048
+ var stackClear_default = stackClear;
1049
+
1050
+ // node_modules/lodash-es/_stackDelete.js
1051
+ function stackDelete(key) {
1052
+ var data = this.__data__, result = data["delete"](key);
1053
+ this.size = data.size;
1054
+ return result;
1055
+ }
1056
+ var stackDelete_default = stackDelete;
1057
+
1058
+ // node_modules/lodash-es/_stackGet.js
1059
+ function stackGet(key) {
1060
+ return this.__data__.get(key);
1061
+ }
1062
+ var stackGet_default = stackGet;
1063
+
1064
+ // node_modules/lodash-es/_stackHas.js
1065
+ function stackHas(key) {
1066
+ return this.__data__.has(key);
1067
+ }
1068
+ var stackHas_default = stackHas;
1069
+
1070
+ // node_modules/lodash-es/_stackSet.js
1071
+ var LARGE_ARRAY_SIZE = 200;
1072
+ function stackSet(key, value) {
1073
+ var data = this.__data__;
1074
+ if (data instanceof ListCache_default) {
1075
+ var pairs = data.__data__;
1076
+ if (!Map_default || pairs.length < LARGE_ARRAY_SIZE - 1) {
1077
+ pairs.push([key, value]);
1078
+ this.size = ++data.size;
1079
+ return this;
1080
+ }
1081
+ data = this.__data__ = new MapCache_default(pairs);
1082
+ }
1083
+ data.set(key, value);
1084
+ this.size = data.size;
1085
+ return this;
1086
+ }
1087
+ var stackSet_default = stackSet;
1088
+
1089
+ // node_modules/lodash-es/_Stack.js
1090
+ function Stack(entries) {
1091
+ var data = this.__data__ = new ListCache_default(entries);
1092
+ this.size = data.size;
1093
+ }
1094
+ Stack.prototype.clear = stackClear_default;
1095
+ Stack.prototype["delete"] = stackDelete_default;
1096
+ Stack.prototype.get = stackGet_default;
1097
+ Stack.prototype.has = stackHas_default;
1098
+ Stack.prototype.set = stackSet_default;
1099
+ var Stack_default = Stack;
1100
+
1101
+ // node_modules/lodash-es/_cloneBuffer.js
1102
+ var freeExports3 = typeof exports == "object" && exports && !exports.nodeType && exports;
1103
+ var freeModule3 = freeExports3 && typeof module == "object" && module && !module.nodeType && module;
1104
+ var moduleExports3 = freeModule3 && freeModule3.exports === freeExports3;
1105
+ var Buffer3 = moduleExports3 ? root_default.Buffer : void 0;
1106
+ var allocUnsafe = Buffer3 ? Buffer3.allocUnsafe : void 0;
1107
+ function cloneBuffer(buffer, isDeep) {
1108
+ if (isDeep) {
1109
+ return buffer.slice();
1110
+ }
1111
+ var length = buffer.length, result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);
1112
+ buffer.copy(result);
1113
+ return result;
1114
+ }
1115
+ var cloneBuffer_default = cloneBuffer;
1116
+
1117
+ // node_modules/lodash-es/_Uint8Array.js
1118
+ var Uint8Array2 = root_default.Uint8Array;
1119
+ var Uint8Array_default = Uint8Array2;
1120
+
1121
+ // node_modules/lodash-es/_cloneArrayBuffer.js
1122
+ function cloneArrayBuffer(arrayBuffer) {
1123
+ var result = new arrayBuffer.constructor(arrayBuffer.byteLength);
1124
+ new Uint8Array_default(result).set(new Uint8Array_default(arrayBuffer));
1125
+ return result;
1126
+ }
1127
+ var cloneArrayBuffer_default = cloneArrayBuffer;
1128
+
1129
+ // node_modules/lodash-es/_cloneTypedArray.js
1130
+ function cloneTypedArray(typedArray, isDeep) {
1131
+ var buffer = isDeep ? cloneArrayBuffer_default(typedArray.buffer) : typedArray.buffer;
1132
+ return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);
1133
+ }
1134
+ var cloneTypedArray_default = cloneTypedArray;
1135
+
1136
+ // node_modules/lodash-es/_initCloneObject.js
1137
+ function initCloneObject(object) {
1138
+ return typeof object.constructor == "function" && !isPrototype_default(object) ? baseCreate_default(getPrototype_default(object)) : {};
1139
+ }
1140
+ var initCloneObject_default = initCloneObject;
1141
+
1142
+ // node_modules/lodash-es/_createBaseFor.js
1143
+ function createBaseFor(fromRight) {
1144
+ return function(object, iteratee, keysFunc) {
1145
+ var index = -1, iterable = Object(object), props = keysFunc(object), length = props.length;
1146
+ while (length--) {
1147
+ var key = props[fromRight ? length : ++index];
1148
+ if (iteratee(iterable[key], key, iterable) === false) {
1149
+ break;
1150
+ }
1151
+ }
1152
+ return object;
1153
+ };
1154
+ }
1155
+ var createBaseFor_default = createBaseFor;
1156
+
1157
+ // node_modules/lodash-es/_baseFor.js
1158
+ var baseFor = createBaseFor_default();
1159
+ var baseFor_default = baseFor;
1160
+
1161
+ // node_modules/lodash-es/_assignMergeValue.js
1162
+ function assignMergeValue(object, key, value) {
1163
+ if (value !== void 0 && !eq_default(object[key], value) || value === void 0 && !(key in object)) {
1164
+ baseAssignValue_default(object, key, value);
1165
+ }
1166
+ }
1167
+ var assignMergeValue_default = assignMergeValue;
1168
+
1169
+ // node_modules/lodash-es/isArrayLikeObject.js
1170
+ function isArrayLikeObject(value) {
1171
+ return isObjectLike_default(value) && isArrayLike_default(value);
1172
+ }
1173
+ var isArrayLikeObject_default = isArrayLikeObject;
1174
+
1175
+ // node_modules/lodash-es/_safeGet.js
1176
+ function safeGet(object, key) {
1177
+ if (key === "constructor" && typeof object[key] === "function") {
1178
+ return;
1179
+ }
1180
+ if (key == "__proto__") {
1181
+ return;
1182
+ }
1183
+ return object[key];
1184
+ }
1185
+ var safeGet_default = safeGet;
1186
+
1187
+ // node_modules/lodash-es/toPlainObject.js
1188
+ function toPlainObject(value) {
1189
+ return copyObject_default(value, keysIn_default(value));
1190
+ }
1191
+ var toPlainObject_default = toPlainObject;
1192
+
1193
+ // node_modules/lodash-es/_baseMergeDeep.js
1194
+ function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {
1195
+ var objValue = safeGet_default(object, key), srcValue = safeGet_default(source, key), stacked = stack.get(srcValue);
1196
+ if (stacked) {
1197
+ assignMergeValue_default(object, key, stacked);
1198
+ return;
1199
+ }
1200
+ var newValue = customizer ? customizer(objValue, srcValue, key + "", object, source, stack) : void 0;
1201
+ var isCommon = newValue === void 0;
1202
+ if (isCommon) {
1203
+ var isArr = isArray_default(srcValue), isBuff = !isArr && isBuffer_default(srcValue), isTyped = !isArr && !isBuff && isTypedArray_default(srcValue);
1204
+ newValue = srcValue;
1205
+ if (isArr || isBuff || isTyped) {
1206
+ if (isArray_default(objValue)) {
1207
+ newValue = objValue;
1208
+ } else if (isArrayLikeObject_default(objValue)) {
1209
+ newValue = copyArray_default(objValue);
1210
+ } else if (isBuff) {
1211
+ isCommon = false;
1212
+ newValue = cloneBuffer_default(srcValue, true);
1213
+ } else if (isTyped) {
1214
+ isCommon = false;
1215
+ newValue = cloneTypedArray_default(srcValue, true);
1216
+ } else {
1217
+ newValue = [];
1218
+ }
1219
+ } else if (isPlainObject_default(srcValue) || isArguments_default(srcValue)) {
1220
+ newValue = objValue;
1221
+ if (isArguments_default(objValue)) {
1222
+ newValue = toPlainObject_default(objValue);
1223
+ } else if (!isObject_default(objValue) || isFunction_default(objValue)) {
1224
+ newValue = initCloneObject_default(srcValue);
1225
+ }
1226
+ } else {
1227
+ isCommon = false;
1228
+ }
1229
+ }
1230
+ if (isCommon) {
1231
+ stack.set(srcValue, newValue);
1232
+ mergeFunc(newValue, srcValue, srcIndex, customizer, stack);
1233
+ stack["delete"](srcValue);
1234
+ }
1235
+ assignMergeValue_default(object, key, newValue);
1236
+ }
1237
+ var baseMergeDeep_default = baseMergeDeep;
1238
+
1239
+ // node_modules/lodash-es/_baseMerge.js
1240
+ function baseMerge(object, source, srcIndex, customizer, stack) {
1241
+ if (object === source) {
1242
+ return;
1243
+ }
1244
+ baseFor_default(source, function(srcValue, key) {
1245
+ stack || (stack = new Stack_default());
1246
+ if (isObject_default(srcValue)) {
1247
+ baseMergeDeep_default(object, source, key, srcIndex, baseMerge, customizer, stack);
1248
+ } else {
1249
+ var newValue = customizer ? customizer(safeGet_default(object, key), srcValue, key + "", object, source, stack) : void 0;
1250
+ if (newValue === void 0) {
1251
+ newValue = srcValue;
1252
+ }
1253
+ assignMergeValue_default(object, key, newValue);
1254
+ }
1255
+ }, keysIn_default);
1256
+ }
1257
+ var baseMerge_default = baseMerge;
1258
+
1259
+ // node_modules/lodash-es/merge.js
1260
+ var merge = createAssigner_default(function(object, source, srcIndex) {
1261
+ baseMerge_default(object, source, srcIndex);
1262
+ });
1263
+ var merge_default = merge;
1264
+
296
1265
  // src/engine/SignalBroker.ts
297
1266
  var SignalBroker = class _SignalBroker {
298
1267
  constructor() {
299
1268
  this.debug = false;
300
1269
  this.verbose = false;
301
1270
  this.debouncedEmitters = /* @__PURE__ */ new Map();
1271
+ this.squashedEmitters = /* @__PURE__ */ new Map();
1272
+ this.squashedContexts = /* @__PURE__ */ new Map();
302
1273
  // TODO: Signals should be a class with a the observers, registered flag and other data.
303
1274
  this.signalObservers = /* @__PURE__ */ new Map();
304
1275
  this.emittedSignalsRegistry = /* @__PURE__ */ new Set();
@@ -382,6 +1353,9 @@ var SignalBroker = class _SignalBroker {
382
1353
  "Register signal",
383
1354
  (ctx) => {
384
1355
  const { signalName } = ctx;
1356
+ if (this.signalObservers.has(signalName)) {
1357
+ this.addSignal(signalName);
1358
+ }
385
1359
  this.signalObservers.get(signalName).registered = true;
386
1360
  }
387
1361
  ).doOn("meta.signal.registered");
@@ -419,16 +1393,15 @@ var SignalBroker = class _SignalBroker {
419
1393
  *
420
1394
  * @param {string} signal - The name of the signal to be emitted.
421
1395
  * @param {AnyObject} context - The context to be passed along with the signal.
422
- * @param {number} [timeoutMs=60000] - The delay in milliseconds before the signal is emitted. Defaults to 60,000 ms.
423
- * @param {Date} [exactDateTime] - An exact date and time at which to emit the signal. If provided, this overrides the `timeoutMs`.
1396
+ * @param options
424
1397
  * @return {AbortController} An AbortController instance that can be used to cancel the scheduled signal emission.
425
1398
  */
426
- schedule(signal, context, timeoutMs = 6e4, exactDateTime) {
427
- let delay = timeoutMs;
428
- if (exactDateTime != null) {
429
- delay = exactDateTime.getTime() - Date.now();
1399
+ schedule(signal, context, options = { delayMs: 6e4 }) {
1400
+ let delay = options.delayMs;
1401
+ if (options.exactDateTime != null) {
1402
+ delay = options.exactDateTime.getTime() - Date.now();
430
1403
  }
431
- delay = Math.max(0, timeoutMs);
1404
+ delay = Math.max(0, delay ?? 0);
432
1405
  const controller = new AbortController();
433
1406
  const { signal: signalController } = controller;
434
1407
  const tick = () => this.emit(signal, context);
@@ -484,29 +1457,76 @@ var SignalBroker = class _SignalBroker {
484
1457
  }
485
1458
  };
486
1459
  }
487
- debounce(signal, context, delayMs = 500) {
1460
+ debounce(signal, context, options = { delayMs: 500 }) {
488
1461
  let debouncedEmitter = this.debouncedEmitters.get(signal);
489
1462
  if (!debouncedEmitter) {
490
1463
  this.debouncedEmitters.set(
491
1464
  signal,
492
1465
  debounce_default((ctx) => {
493
1466
  this.emit(signal, ctx);
494
- }, delayMs)
1467
+ }, options.delayMs ?? 300)
495
1468
  );
496
1469
  debouncedEmitter = this.debouncedEmitters.get(signal);
497
1470
  }
498
1471
  debouncedEmitter(context);
499
1472
  }
1473
+ /**
1474
+ * Aggregates and debounces multiple events with the same identifier to minimize redundant operations.
1475
+ *
1476
+ * @param {string} signal - The identifier for the event being emitted.
1477
+ * @param {AnyObject} context - The context data associated with the event.
1478
+ * @param {Object} [options] - Configuration options for handling the squashed event.
1479
+ * @param {boolean} [options.squash=true] - Whether the event should be squashed.
1480
+ * @param {string|null} [options.squashId=null] - A unique identifier for the squashed group of events. Defaults to the signal if null.
1481
+ * @param {function|null} [options.mergeFunction=null] - A custom merge function that combines old and new contexts. If null, a default merge is used.
1482
+ * @return {void} Does not return a value.
1483
+ */
1484
+ squash(signal, context, options = { squash: true }) {
1485
+ let { squashId, delayMs } = options;
1486
+ if (!squashId) {
1487
+ squashId = signal;
1488
+ }
1489
+ if (!this.squashedEmitters.has(squashId)) {
1490
+ this.squashedEmitters.set(
1491
+ squashId,
1492
+ debounce_default(() => {
1493
+ this.emit(signal, this.squashedContexts.get(squashId));
1494
+ this.squashedEmitters.delete(squashId);
1495
+ this.squashedContexts.delete(squashId);
1496
+ }, delayMs ?? 300)
1497
+ );
1498
+ this.squashedContexts.set(squashId, context);
1499
+ } else {
1500
+ this.squashedContexts.set(
1501
+ squashId,
1502
+ options.mergeFunction ? options.mergeFunction(this.squashedContexts.get(squashId), context) : merge_default(this.squashedContexts.get(squashId), context)
1503
+ );
1504
+ }
1505
+ this.squashedEmitters.get(squashId)();
1506
+ }
500
1507
  /**
501
1508
  * Emits a signal with the specified context, triggering any associated handlers for that signal.
502
1509
  *
503
1510
  * @param {string} signal - The name of the signal to emit.
504
1511
  * @param {AnyObject} [context={}] - An optional context object containing additional information or metadata
505
1512
  * associated with the signal. If the context includes a `__routineExecId`, it will be handled accordingly.
1513
+ * @param options
506
1514
  * @return {void} This method does not return a value.
507
1515
  */
508
- emit(signal, context = {}) {
1516
+ emit(signal, context = {}, options = {}) {
509
1517
  delete context.__routineExecId;
1518
+ if (options.squash) {
1519
+ this.squash(signal, context, options);
1520
+ return;
1521
+ }
1522
+ if (options.debounce) {
1523
+ this.debounce(signal, context);
1524
+ return;
1525
+ }
1526
+ if (options.schedule) {
1527
+ this.schedule(signal, context, options);
1528
+ return;
1529
+ }
510
1530
  this.addSignal(signal);
511
1531
  this.execute(signal, context);
512
1532
  }
@@ -1055,16 +2075,18 @@ var SignalEmitter = class {
1055
2075
  * Emits a signal via the broker.
1056
2076
  * @param signal The signal name.
1057
2077
  * @param data Optional payload (defaults to empty object).
2078
+ * @param options
1058
2079
  */
1059
- emit(signal, data = {}) {
2080
+ emit(signal, data = {}, options = {}) {
1060
2081
  Cadenza.broker.emit(signal, data);
1061
2082
  }
1062
2083
  /**
1063
2084
  * Emits a signal via the broker if not silent.
1064
2085
  * @param signal The signal name.
1065
2086
  * @param data Optional payload (defaults to empty object).
2087
+ * @param options
1066
2088
  */
1067
- emitMetrics(signal, data = {}) {
2089
+ emitMetrics(signal, data = {}, options = {}) {
1068
2090
  if (this.silent) {
1069
2091
  return;
1070
2092
  }
@@ -1226,36 +2248,52 @@ var GraphNode = class _GraphNode extends SignalEmitter {
1226
2248
  context.__signalEmission.consumed = true;
1227
2249
  context.__signalEmission.consumedBy = this.id;
1228
2250
  }
2251
+ const prevNodesIds = this.previousNodes.map((node) => node.id);
2252
+ if (context.__previousTaskExecutionId) {
2253
+ prevNodesIds.push(context.__previousTaskExecutionId);
2254
+ context.__previousTaskExecutionId = null;
2255
+ }
1229
2256
  const scheduledAt = Date.now();
1230
- this.emitMetricsWithMetadata("meta.node.scheduled", {
1231
- data: {
1232
- uuid: this.id,
1233
- routineExecutionId: this.routineExecId,
1234
- executionTraceId: this.executionTraceId,
1235
- context: this.context.getContext(),
1236
- metaContext: this.context.getMetadata(),
1237
- taskName: this.task.name,
1238
- taskVersion: this.task.version,
1239
- isMeta: this.isMeta(),
1240
- isScheduled: true,
1241
- splitGroupId: this.splitGroupId,
1242
- signalEmissionId,
1243
- created: formatTimestamp(scheduledAt)
1244
- }
1245
- });
1246
- this.previousNodes.forEach((node) => {
1247
- this.emitMetricsWithMetadata("meta.node.mapped", {
2257
+ this.emitMetricsWithMetadata(
2258
+ "meta.node.scheduled",
2259
+ {
1248
2260
  data: {
1249
- taskExecutionId: this.id,
1250
- previousTaskExecutionId: node.id
1251
- },
1252
- filter: {
2261
+ uuid: this.id,
2262
+ routineExecutionId: this.routineExecId,
2263
+ executionTraceId: this.executionTraceId,
2264
+ context: this.context.getContext(),
2265
+ metaContext: this.context.getMetadata(),
1253
2266
  taskName: this.task.name,
1254
2267
  taskVersion: this.task.version,
1255
- predecessorTaskName: node.task.name,
1256
- predecessorTaskVersion: node.task.version
2268
+ isMeta: this.isMeta(),
2269
+ isScheduled: true,
2270
+ splitGroupId: this.splitGroupId,
2271
+ signalEmissionId,
2272
+ previousExecutionIds: {
2273
+ ids: prevNodesIds
2274
+ },
2275
+ created: formatTimestamp(scheduledAt)
1257
2276
  }
1258
- });
2277
+ },
2278
+ { squash: true, squashId: this.id }
2279
+ );
2280
+ this.previousNodes.forEach((node) => {
2281
+ this.emitMetricsWithMetadata(
2282
+ "meta.node.mapped",
2283
+ {
2284
+ data: {
2285
+ taskExecutionId: this.id,
2286
+ previousTaskExecutionId: node.id
2287
+ },
2288
+ filter: {
2289
+ taskName: this.task.name,
2290
+ taskVersion: this.task.version,
2291
+ predecessorTaskName: node.task.name,
2292
+ predecessorTaskVersion: node.task.version
2293
+ }
2294
+ },
2295
+ { schedule: true, delayMs: 1e3 }
2296
+ );
1259
2297
  });
1260
2298
  if (!this.silent && context.__previousTaskExecutionId) {
1261
2299
  this.emitMetricsWithMetadata(
@@ -1271,7 +2309,8 @@ var GraphNode = class _GraphNode extends SignalEmitter {
1271
2309
  predecessorTaskName: context.__localTaskName,
1272
2310
  predecessorTaskVersion: context.__localTaskVersion
1273
2311
  }
1274
- }
2312
+ },
2313
+ { schedule: true, delayMs: 1e3 }
1275
2314
  );
1276
2315
  context.__previousTaskExecutionId = null;
1277
2316
  }
@@ -1294,24 +2333,32 @@ var GraphNode = class _GraphNode extends SignalEmitter {
1294
2333
  this.executionStart = Date.now();
1295
2334
  }
1296
2335
  if (this.previousNodes.length === 0) {
1297
- this.emitMetricsWithMetadata("meta.node.started_routine_execution", {
1298
- data: {
1299
- isRunning: true,
1300
- started: formatTimestamp(this.executionStart)
2336
+ this.emitMetricsWithMetadata(
2337
+ "meta.node.started_routine_execution",
2338
+ {
2339
+ data: {
2340
+ isRunning: true,
2341
+ started: formatTimestamp(this.executionStart)
2342
+ },
2343
+ filter: { uuid: this.routineExecId }
1301
2344
  },
1302
- filter: { uuid: this.routineExecId }
1303
- });
2345
+ { squash: true, squashId: this.routineExecId }
2346
+ );
1304
2347
  }
1305
2348
  if (this.debug && !this.task.isSubMeta && !this.context.getMetadata().__isSubMeta || this.verbose) {
1306
2349
  this.log();
1307
2350
  }
1308
- this.emitMetricsWithMetadata("meta.node.started", {
1309
- data: {
1310
- isRunning: true,
1311
- started: formatTimestamp(this.executionStart)
2351
+ this.emitMetricsWithMetadata(
2352
+ "meta.node.started",
2353
+ {
2354
+ data: {
2355
+ isRunning: true,
2356
+ started: formatTimestamp(this.executionStart)
2357
+ },
2358
+ filter: { uuid: this.id }
1312
2359
  },
1313
- filter: { uuid: this.id }
1314
- });
2360
+ { squash: true, squashId: this.id }
2361
+ );
1315
2362
  return this.executionStart;
1316
2363
  }
1317
2364
  /**
@@ -1340,20 +2387,24 @@ var GraphNode = class _GraphNode extends SignalEmitter {
1340
2387
  }
1341
2388
  });
1342
2389
  }
1343
- this.emitMetricsWithMetadata("meta.node.ended", {
1344
- data: {
1345
- isRunning: false,
1346
- isComplete: true,
1347
- resultContext: this.context.getContext(),
1348
- metaResultContext: this.context.getMetadata(),
1349
- errored: this.errored,
1350
- failed: this.failed,
1351
- errorMessage: context.__error,
1352
- progress: 1,
1353
- ended: formatTimestamp(end)
2390
+ this.emitMetricsWithMetadata(
2391
+ "meta.node.ended",
2392
+ {
2393
+ data: {
2394
+ isRunning: false,
2395
+ isComplete: true,
2396
+ resultContext: this.context.getContext(),
2397
+ metaResultContext: this.context.getMetadata(),
2398
+ errored: this.errored,
2399
+ failed: this.failed,
2400
+ errorMessage: context.__error,
2401
+ progress: 1,
2402
+ ended: formatTimestamp(end)
2403
+ },
2404
+ filter: { uuid: this.id }
1354
2405
  },
1355
- filter: { uuid: this.id }
1356
- });
2406
+ { squash: true, squashId: this.id }
2407
+ );
1357
2408
  if (this.graphDone()) {
1358
2409
  const context2 = this.context.getFullContext();
1359
2410
  if (context2.__isDeputy)
@@ -1361,17 +2412,21 @@ var GraphNode = class _GraphNode extends SignalEmitter {
1361
2412
  `meta.node.graph_completed:${this.routineExecId}`,
1362
2413
  context2
1363
2414
  );
1364
- this.emitMetricsWithMetadata("meta.node.ended_routine_execution", {
1365
- data: {
1366
- isRunning: false,
1367
- isComplete: true,
1368
- resultContext: this.context.getContext(),
1369
- metaResultContext: this.context.getMetadata(),
1370
- progress: 1,
1371
- ended: formatTimestamp(end)
2415
+ this.emitMetricsWithMetadata(
2416
+ "meta.node.ended_routine_execution",
2417
+ {
2418
+ data: {
2419
+ isRunning: false,
2420
+ isComplete: true,
2421
+ resultContext: this.context.getContext(),
2422
+ metaResultContext: this.context.getMetadata(),
2423
+ progress: 1,
2424
+ ended: formatTimestamp(end)
2425
+ },
2426
+ filter: { uuid: this.routineExecId }
1372
2427
  },
1373
- filter: { uuid: this.routineExecId }
1374
- });
2428
+ { squash: true, squashId: this.routineExecId }
2429
+ );
1375
2430
  }
1376
2431
  return end;
1377
2432
  }
@@ -1488,9 +2543,10 @@ var GraphNode = class _GraphNode extends SignalEmitter {
1488
2543
  * @param {string} signal - The name of the signal to be emitted.
1489
2544
  * @param {AnyObject} data - The data object to be sent along with the signal. Metadata
1490
2545
  * will be injected into this object before being emitted.
2546
+ * @param options
1491
2547
  * @return {void} No return value.
1492
2548
  */
1493
- emitWithMetadata(signal, data) {
2549
+ emitWithMetadata(signal, data, options = {}) {
1494
2550
  if (!this.task?.isHidden) {
1495
2551
  data.__signalEmission = {
1496
2552
  fullSignalName: signal,
@@ -1507,7 +2563,7 @@ var GraphNode = class _GraphNode extends SignalEmitter {
1507
2563
  __executionTraceId: this.executionTraceId
1508
2564
  };
1509
2565
  }
1510
- this.emit(signal, data);
2566
+ this.emit(signal, data, options);
1511
2567
  if (!this.task.emitsSignals.has(signal)) {
1512
2568
  this.task.emitsSignals.add(signal);
1513
2569
  }
@@ -1517,9 +2573,10 @@ var GraphNode = class _GraphNode extends SignalEmitter {
1517
2573
  *
1518
2574
  * @param {string} signal - The signal name being emitted.
1519
2575
  * @param {AnyObject} data - The data associated with the signal emission, enriched with metadata.
2576
+ * @param options
1520
2577
  * @return {void} Emits the signal with enriched data and does not return a value.
1521
2578
  */
1522
- emitMetricsWithMetadata(signal, data) {
2579
+ emitMetricsWithMetadata(signal, data, options = {}) {
1523
2580
  if (!this.task?.isHidden) {
1524
2581
  data.__signalEmission = {
1525
2582
  taskName: this.task.name,
@@ -1535,7 +2592,7 @@ var GraphNode = class _GraphNode extends SignalEmitter {
1535
2592
  __executionTraceId: this.executionTraceId
1536
2593
  };
1537
2594
  }
1538
- this.emitMetrics(signal, data);
2595
+ this.emitMetrics(signal, data, options);
1539
2596
  if (!this.task.emitsSignals.has(signal)) {
1540
2597
  this.task.emitsSignals.add(signal);
1541
2598
  }
@@ -1548,14 +2605,18 @@ var GraphNode = class _GraphNode extends SignalEmitter {
1548
2605
  */
1549
2606
  onProgress(progress) {
1550
2607
  progress = Math.min(Math.max(0, progress), 1);
1551
- this.emitMetricsWithMetadata("meta.node.progress", {
1552
- data: {
1553
- progress
2608
+ this.emitMetricsWithMetadata(
2609
+ "meta.node.progress",
2610
+ {
2611
+ data: {
2612
+ progress
2613
+ },
2614
+ filter: {
2615
+ uuid: this.id
2616
+ }
1554
2617
  },
1555
- filter: {
1556
- uuid: this.id
1557
- }
1558
- });
2618
+ { debounce: true }
2619
+ );
1559
2620
  this.emitMetricsWithMetadata(
1560
2621
  `meta.node.routine_execution_progress:${this.routineExecId}`,
1561
2622
  {
@@ -1565,7 +2626,8 @@ var GraphNode = class _GraphNode extends SignalEmitter {
1565
2626
  filter: {
1566
2627
  uuid: this.routineExecId
1567
2628
  }
1568
- }
2629
+ },
2630
+ { debounce: true }
1569
2631
  );
1570
2632
  }
1571
2633
  /**
@@ -2226,22 +3288,26 @@ var GraphRunner = class extends SignalEmitter {
2226
3288
  }
2227
3289
  });
2228
3290
  }
2229
- this.emitMetrics("meta.runner.added_tasks", {
2230
- data: {
2231
- uuid: routineExecId,
2232
- name: routineName,
2233
- routineVersion,
2234
- isMeta,
2235
- executionTraceId,
2236
- context: ctx.getContext(),
2237
- metaContext: ctx.getMetadata(),
2238
- previousRoutineExecution: context.__localRoutineExecId ?? context.__metadata?.__routineExecId ?? null,
2239
- created: formatTimestamp(Date.now())
3291
+ this.emitMetrics(
3292
+ "meta.runner.added_tasks",
3293
+ {
3294
+ data: {
3295
+ uuid: routineExecId,
3296
+ name: routineName,
3297
+ routineVersion,
3298
+ isMeta,
3299
+ executionTraceId,
3300
+ context: ctx.getContext(),
3301
+ metaContext: ctx.getMetadata(),
3302
+ previousRoutineExecution: context.__localRoutineExecId ?? context.__metadata?.__routineExecId ?? null,
3303
+ created: formatTimestamp(Date.now())
3304
+ },
3305
+ __metadata: {
3306
+ __executionTraceId: executionTraceId
3307
+ }
2240
3308
  },
2241
- __metadata: {
2242
- __executionTraceId: executionTraceId
2243
- }
2244
- });
3309
+ { squash: true, squashId: routineExecId }
3310
+ );
2245
3311
  }
2246
3312
  allTasks.forEach(
2247
3313
  (task) => this.currentRun.addNode(
@@ -2440,7 +3506,6 @@ var Task = class _Task extends SignalEmitter {
2440
3506
  this.attachSignal(
2441
3507
  "meta.task.created",
2442
3508
  "meta.task.destroyed",
2443
- "meta.task.version_set",
2444
3509
  "meta.task.output_validation_failed",
2445
3510
  "meta.task.input_validation_failed",
2446
3511
  "meta.task.relationship_added",
@@ -4492,6 +5557,7 @@ var Cadenza = class {
4492
5557
  *
4493
5558
  * @param {string} event - The name of the event to emit.
4494
5559
  * @param {AnyObject} [data={}] - The data payload associated with the event.
5560
+ * @param options
4495
5561
  * @return {void} - No return value.
4496
5562
  *
4497
5563
  * @example
@@ -4501,11 +5567,11 @@ var Cadenza = class {
4501
5567
  * Cadenza.emit('main.my_event', { foo: 'bar' });
4502
5568
  * ```
4503
5569
  */
4504
- static emit(event, data = {}) {
4505
- this.broker?.emit(event, data);
5570
+ static emit(event, data = {}, options = {}) {
5571
+ this.broker?.emit(event, data, options);
4506
5572
  }
4507
- static schedule(taskName, context, timeoutMs, exactDateTime) {
4508
- this.broker?.schedule(taskName, context, timeoutMs, exactDateTime);
5573
+ static schedule(taskName, context, delayMs, exactDateTime) {
5574
+ this.broker?.schedule(taskName, context, { delayMs, exactDateTime });
4509
5575
  }
4510
5576
  static interval(taskName, context, intervalMs, leading = false, startDateTime) {
4511
5577
  this.broker?.interval(
@@ -4517,7 +5583,7 @@ var Cadenza = class {
4517
5583
  );
4518
5584
  }
4519
5585
  static debounce(signalName, context, delayMs) {
4520
- this.broker?.debounce(signalName, context, delayMs);
5586
+ this.broker?.debounce(signalName, context, { delayMs });
4521
5587
  }
4522
5588
  static get(taskName) {
4523
5589
  return this.registry?.tasks.get(taskName);
@@ -5085,4 +6151,17 @@ var index_default = Cadenza;
5085
6151
  SignalTask,
5086
6152
  Task
5087
6153
  });
6154
+ /*! Bundled license information:
6155
+
6156
+ lodash-es/lodash.js:
6157
+ (**
6158
+ * @license
6159
+ * Lodash (Custom Build) <https://lodash.com/>
6160
+ * Build: `lodash modularize exports="es" -o ./`
6161
+ * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
6162
+ * Released under MIT license <https://lodash.com/license>
6163
+ * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
6164
+ * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
6165
+ *)
6166
+ */
5088
6167
  //# sourceMappingURL=index.js.map