silentium 0.0.10 → 0.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/silentium.cjs +58 -46
  3. package/dist/silentium.cjs.map +1 -1
  4. package/dist/silentium.d.ts +8 -8
  5. package/dist/silentium.js +58 -46
  6. package/dist/silentium.js.map +1 -1
  7. package/dist/silentium.min.js +1 -1
  8. package/dist/silentium.min.mjs +1 -1
  9. package/dist/silentium.min.mjs.map +1 -1
  10. package/dist/silentium.mjs +58 -46
  11. package/dist/silentium.mjs.map +1 -1
  12. package/docs/assets/js/index.mjs +3 -3
  13. package/docs/pages/compatibility/elegant-objects.html +4 -4
  14. package/docs/pages/guest/guest-cast.html +6 -6
  15. package/docs/pages/guest/guest-disposable.html +4 -4
  16. package/docs/pages/guest/guest-sync.html +4 -4
  17. package/docs/pages/patron/index.html +5 -5
  18. package/docs/pages/patron/patron-applied.html +4 -4
  19. package/docs/pages/patron/patron-executor-applied.html +6 -6
  20. package/docs/pages/patron/patron-once.html +4 -4
  21. package/docs/pages/patron.html +5 -5
  22. package/docs/pages/source/source-all.html +9 -9
  23. package/docs/pages/source/{source-with-pool.html → source-changeable.html} +9 -9
  24. package/docs/pages/source/source-filtered.html +4 -4
  25. package/docs/pages/source/source-map.html +8 -8
  26. package/docs/pages/source/source-race.html +4 -4
  27. package/docs/pages/source/source-sequence.html +6 -6
  28. package/docs/pages/source/source-sync.html +4 -4
  29. package/docs/pages/source.html +1 -1
  30. package/docs/routes.json +1 -1
  31. package/package.json +1 -1
  32. package/src/Guest/Guest.test.ts +2 -2
  33. package/src/Guest/GuestApplied.test.ts +2 -2
  34. package/src/Guest/GuestCast.test.ts +2 -2
  35. package/src/Guest/GuestDisposable.test.ts +2 -2
  36. package/src/Guest/GuestExecutorApplied.test.ts +2 -2
  37. package/src/Guest/GuestObject.test.ts +2 -2
  38. package/src/Guest/GuestSync.test.ts +2 -2
  39. package/src/Patron/Patron.test.ts +2 -2
  40. package/src/Patron/PatronOnce.sourceEmpty.test.ts +2 -2
  41. package/src/Patron/PatronOnce.test.ts +2 -2
  42. package/src/Private/PrivateClass.modules.test.ts +7 -4
  43. package/src/Private/PrivateClass.test.ts +2 -2
  44. package/src/Source/SourceAll._asArray.test.ts +3 -3
  45. package/src/Source/SourceAll._twoValuesAfter.test.ts +3 -3
  46. package/src/Source/SourceAll._twoValuesBefore.test.ts +3 -3
  47. package/src/Source/SourceAll._withPatron.test.ts +3 -3
  48. package/src/Source/SourceAll.ts +3 -3
  49. package/src/Source/SourceApplied.test.ts +2 -2
  50. package/src/Source/{SourceWithPool.empty.test.ts → SourceChangeable.empty.test.ts} +2 -2
  51. package/src/Source/SourceChangeable.ofSource.test.ts +16 -0
  52. package/src/Source/SourceChangeable.ofSourceFunction.test.ts +11 -0
  53. package/src/Source/{SourceWithPool.test.ts → SourceChangeable.test.ts} +2 -2
  54. package/src/Source/{SourceWithPool.ts → SourceChangeable.ts} +20 -5
  55. package/src/Source/SourceDynamic.ofSource.test.ts +2 -2
  56. package/src/Source/SourceDynamic.ts +2 -2
  57. package/src/Source/SourceExecutorApplied.test.ts +2 -2
  58. package/src/Source/SourceMap.defered.test.ts +2 -2
  59. package/src/Source/SourceMap.fn.test.ts +2 -2
  60. package/src/Source/SourceMap.test.ts +2 -2
  61. package/src/Source/SourceOnce.ts +4 -4
  62. package/src/Source/SourceRace.test.ts +2 -2
  63. package/src/Source/SourceSequence.defered.test.ts +2 -2
  64. package/src/Source/SourceSequence.test.ts +2 -2
  65. package/src/Source/SourceSequence.ts +2 -2
  66. package/src/Source/SourceSync.test.ts +2 -2
  67. package/src/index.ts +1 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,18 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ### [0.0.11](https://github.com/silentium-lab/silentium/compare/v0.0.10...v0.0.11) (2025-04-19)
6
+
7
+
8
+ ### Features
9
+
10
+ * **12-issue:** renaming SourceWithPool to SourceChangeable ([606a6af](https://github.com/silentium-lab/silentium/commit/606a6afd01c8335e9c5e72d52895916fe5d9eba4))
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * **12-issue:** fix linting of private class test ([7cd4f61](https://github.com/silentium-lab/silentium/commit/7cd4f616b6fd8c5c5683ead82812984648f28bbf))
16
+
5
17
  ### [0.0.10](https://github.com/silentium-lab/silentium/compare/v0.0.9...v0.0.10) (2025-04-19)
6
18
 
7
19
 
@@ -360,23 +360,71 @@ class PatronExecutorApplied {
360
360
  }
361
361
  }
362
362
 
363
+ function value(source, guest) {
364
+ if (source === void 0 || source === null) {
365
+ throw new Error("value didnt receive source argument");
366
+ }
367
+ if (guest === void 0 || source === null) {
368
+ throw new Error("value didnt receive guest argument");
369
+ }
370
+ if (typeof source === "function") {
371
+ source(guest);
372
+ } else if (typeof source === "object" && "value" in source && typeof source.value === "function") {
373
+ source.value(guest);
374
+ } else {
375
+ give(source, guest);
376
+ }
377
+ return source;
378
+ }
379
+ function isSource(mbSource) {
380
+ if (mbSource === void 0) {
381
+ throw new Error("isSource didnt receive mbSource argument");
382
+ }
383
+ return typeof mbSource === "function" || typeof mbSource?.value === "function";
384
+ }
385
+ class Source {
386
+ constructor(source) {
387
+ this.source = source;
388
+ if (source === void 0) {
389
+ throw new Error("Source constructor didnt receive executor function");
390
+ }
391
+ }
392
+ value(guest) {
393
+ value(this.source, guest);
394
+ return guest;
395
+ }
396
+ }
397
+ const sourceOf = (value2) => new Source((g) => give(value2, g));
398
+
363
399
  var __defProp$4 = Object.defineProperty;
364
- var __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
365
- var __publicField$4 = (obj, key, value) => __defNormalProp$4(obj, typeof key !== "symbol" ? key + "" : key, value);
366
- class SourceWithPool {
400
+ var __defNormalProp$4 = (obj, key, value2) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value: value2 }) : obj[key] = value2;
401
+ var __publicField$4 = (obj, key, value2) => __defNormalProp$4(obj, typeof key !== "symbol" ? key + "" : key, value2);
402
+ class SourceChangeable {
367
403
  constructor(sourceDocument) {
368
- this.sourceDocument = sourceDocument;
369
404
  __publicField$4(this, "thePool", new PatronPool(this));
370
405
  __publicField$4(this, "theEmptyPool", new PatronPool(this));
371
406
  __publicField$4(this, "isEmpty");
407
+ __publicField$4(this, "sourceDocument");
372
408
  this.isEmpty = sourceDocument === void 0;
409
+ if (sourceDocument !== void 0 && isSource(sourceDocument)) {
410
+ value(
411
+ sourceDocument,
412
+ new PatronOnce((unwrappedSourceDocument) => {
413
+ this.isEmpty = unwrappedSourceDocument === void 0;
414
+ this.sourceDocument = unwrappedSourceDocument;
415
+ })
416
+ );
417
+ } else {
418
+ this.isEmpty = sourceDocument === void 0;
419
+ this.sourceDocument = sourceDocument;
420
+ }
373
421
  }
374
422
  pool() {
375
423
  return this.thePool;
376
424
  }
377
- give(value) {
425
+ give(value2) {
378
426
  this.isEmpty = false;
379
- this.sourceDocument = value;
427
+ this.sourceDocument = value2;
380
428
  this.thePool.give(this.sourceDocument);
381
429
  this.theEmptyPool.give(this.sourceDocument);
382
430
  return this;
@@ -409,7 +457,7 @@ class SourceAll {
409
457
  __publicField$3(this, "keysKnown");
410
458
  __publicField$3(this, "keysFilled", /* @__PURE__ */ new Set());
411
459
  __publicField$3(this, "filledAllPool", new GuestPool(this));
412
- this.theAll = new SourceWithPool({});
460
+ this.theAll = new SourceChangeable({});
413
461
  this.keysKnown = new Set(initialKnownKeys);
414
462
  }
415
463
  valueArray(guest) {
@@ -465,42 +513,6 @@ class SourceAll {
465
513
  }
466
514
  }
467
515
 
468
- function value(source, guest) {
469
- if (source === void 0 || source === null) {
470
- throw new Error("value didnt receive source argument");
471
- }
472
- if (guest === void 0 || source === null) {
473
- throw new Error("value didnt receive guest argument");
474
- }
475
- if (typeof source === "function") {
476
- source(guest);
477
- } else if (typeof source === "object" && "value" in source && typeof source.value === "function") {
478
- source.value(guest);
479
- } else {
480
- give(source, guest);
481
- }
482
- return source;
483
- }
484
- function isSource(mbSource) {
485
- if (mbSource === void 0) {
486
- throw new Error("isSource didnt receive mbSource argument");
487
- }
488
- return typeof mbSource === "function" || typeof mbSource?.value === "function";
489
- }
490
- class Source {
491
- constructor(source) {
492
- this.source = source;
493
- if (source === void 0) {
494
- throw new Error("Source constructor didnt receive executor function");
495
- }
496
- }
497
- value(guest) {
498
- value(this.source, guest);
499
- return guest;
500
- }
501
- }
502
- const sourceOf = (value2) => new Source((g) => give(value2, g));
503
-
504
516
  class SourceSequence {
505
517
  constructor(baseSource, targetSource) {
506
518
  this.baseSource = baseSource;
@@ -514,7 +526,7 @@ class SourceSequence {
514
526
  }
515
527
  value(guest) {
516
528
  const all = new SourceAll();
517
- const sequenceSource = new SourceWithPool();
529
+ const sequenceSource = new SourceChangeable();
518
530
  const targetSource = this.targetSource.get(sequenceSource);
519
531
  value(
520
532
  this.baseSource,
@@ -687,7 +699,7 @@ var __publicField$1 = (obj, key, value2) => __defNormalProp$1(obj, key + "" , va
687
699
  class SourceOnce {
688
700
  constructor(initialValue) {
689
701
  __publicField$1(this, "source");
690
- this.source = new SourceWithPool(initialValue);
702
+ this.source = new SourceChangeable(initialValue);
691
703
  }
692
704
  value(guest) {
693
705
  value(this.source, guest);
@@ -772,6 +784,7 @@ exports.PrivateClass = PrivateClass;
772
784
  exports.Source = Source;
773
785
  exports.SourceAll = SourceAll;
774
786
  exports.SourceApplied = SourceApplied;
787
+ exports.SourceChangeable = SourceChangeable;
775
788
  exports.SourceDynamic = SourceDynamic;
776
789
  exports.SourceExecutorApplied = SourceExecutorApplied;
777
790
  exports.SourceFiltered = SourceFiltered;
@@ -780,7 +793,6 @@ exports.SourceOnce = SourceOnce;
780
793
  exports.SourceRace = SourceRace;
781
794
  exports.SourceSequence = SourceSequence;
782
795
  exports.SourceSync = SourceSync;
783
- exports.SourceWithPool = SourceWithPool;
784
796
  exports.give = give;
785
797
  exports.isGuest = isGuest;
786
798
  exports.isPatron = isPatron;
@@ -1 +1 @@
1
- {"version":3,"file":"silentium.cjs","sources":["../src/Guest/Guest.ts","../src/Guest/GuestCast.ts","../src/Patron/PatronPool.ts","../src/Guest/GuestPool.ts","../src/Guest/GuestSync.ts","../src/Guest/GuestObject.ts","../src/Guest/GuestDisposable.ts","../src/Guest/GuestApplied.ts","../src/Guest/GuestExecutorApplied.ts","../src/Patron/Patron.ts","../src/Patron/PatronOnce.ts","../src/Patron/PatronApplied.ts","../src/Patron/PatronExecutorApplied.ts","../src/Source/SourceWithPool.ts","../src/Source/SourceAll.ts","../src/Source/Source.ts","../src/Source/SourceSequence.ts","../src/Source/SourceMap.ts","../src/Source/SourceRace.ts","../src/Source/SourceDynamic.ts","../src/Source/SourceApplied.ts","../src/Source/SourceExecutorApplied.ts","../src/Source/SourceFiltered.ts","../src/Source/SourceOnce.ts","../src/Source/SourceSync.ts","../src/Private/PrivateClass.ts","../src/Private/Private.ts"],"sourcesContent":["type GuestIntroduction = \"guest\" | \"patron\";\n\nexport type GuestExecutorType<T = any, This = void> = (value: T) => This;\n\nexport interface GuestObjectType<T = any> {\n give(value: T): this;\n introduction?(): GuestIntroduction;\n}\n\nexport type GuestType<T = any> = GuestExecutorType<T> | GuestObjectType<T>;\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/utils/give\n */\nexport function give<T>(data: T, guest: GuestType<T>) {\n if (data === undefined) {\n throw new Error(\"give didnt receive data argument\");\n }\n if (guest === undefined) {\n throw new Error(\"give didnt receive guest argument\");\n }\n if (typeof guest === \"function\") {\n guest(data);\n } else {\n guest.give(data);\n }\n\n return guest;\n}\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/utils/is-guest\n */\nexport function isGuest(mbGuest: any): mbGuest is GuestType {\n if (mbGuest === undefined) {\n throw new Error(\"isGuest didnt receive mbGuest argument\");\n }\n return typeof mbGuest === \"function\" || typeof mbGuest?.give === \"function\";\n}\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/guest\n */\nexport class Guest<T> implements GuestObjectType<T> {\n public constructor(private receiver: GuestExecutorType<T>) {\n if (!receiver) {\n throw new Error(\"reseiver function was not passed to Guest constructor\");\n }\n }\n\n public give(value: T) {\n this.receiver(value);\n return this;\n }\n}\n","import { give, GuestType } from \"./Guest\";\nimport { GuestDisposableType, MaybeDisposableType } from \"./GuestDisposable\";\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/guest/guest-cast\n */\nexport class GuestCast<T> implements GuestDisposableType<T> {\n public constructor(\n private sourceGuest: GuestType<any>,\n private targetGuest: GuestType<T>,\n ) {\n if (sourceGuest === undefined) {\n throw new Error(\"GuestCast didnt receive sourceGuest argument\");\n }\n if (targetGuest === undefined) {\n throw new Error(\"GuestCast didnt receive targetGuest argument\");\n }\n }\n\n public introduction() {\n if (typeof this.sourceGuest === \"function\") {\n return \"guest\";\n }\n if (!this.sourceGuest.introduction) {\n return \"guest\";\n }\n return this.sourceGuest.introduction();\n }\n\n public give(value: T): this {\n give(value, this.targetGuest);\n return this;\n }\n\n public disposed(value: T | null): boolean {\n const maybeDisposable = this.sourceGuest as MaybeDisposableType;\n return maybeDisposable.disposed ? maybeDisposable.disposed(value) : false;\n }\n}\n","import { give, GuestObjectType, GuestType } from \"../Guest/Guest\";\nimport { GuestDisposableType } from \"../Guest/GuestDisposable\";\n\nconst poolSets = new Map<PoolType, Set<GuestObjectType>>();\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/utils/patron-pools\n */\nexport const patronPools = (patron: GuestObjectType) => {\n const pools: PoolType[] = [];\n poolSets.forEach((pool, poolInstance) => {\n if (pool.has(patron)) {\n pools.push(poolInstance);\n }\n });\n return pools;\n};\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/utils/remove-patron-from-pools\n */\nexport const removePatronFromPools = (patron: GuestObjectType) => {\n if (patron === undefined) {\n throw new Error(\"removePatronFromPools didnt receive patron argument\");\n }\n poolSets.forEach((pool) => {\n pool.delete(patron);\n });\n};\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/utils/is-patron-in-pools\n */\nexport const isPatronInPools = (patron: GuestObjectType) => {\n if (patron === undefined) {\n throw new Error(\"isPatronInPools didnt receive patron argument\");\n }\n let inPool = false;\n poolSets.forEach((pool) => {\n if (!inPool) {\n inPool = pool.has(patron);\n }\n });\n return inPool;\n};\n\nexport interface PoolType<T = any> extends GuestObjectType<T> {\n add(guest: GuestObjectType<T>): this;\n distribute(receiving: T, possiblePatron: GuestObjectType<T>): this;\n remove(patron: GuestObjectType<T>): this;\n size(): number;\n}\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/patron/patron-pool\n */\nexport class PatronPool<T> implements PoolType<T> {\n private patrons: Set<GuestObjectType<T>>;\n\n public give: (value: T) => this;\n\n public constructor(private initiator: unknown) {\n this.patrons = new Set<GuestObjectType<T>>();\n poolSets.set(this, this.patrons);\n const doReceive = (value: T) => {\n this.patrons.forEach((target) => {\n this.sendValueToGuest(value, target);\n });\n };\n this.give = (value: T) => {\n doReceive(value);\n return this;\n };\n }\n\n public size(): number {\n return this.patrons.size;\n }\n\n public add(shouldBePatron: GuestType<T>) {\n if (!shouldBePatron) {\n throw new Error(\"PatronPool add method received nothing!\");\n }\n if (\n typeof shouldBePatron !== \"function\" &&\n shouldBePatron.introduction &&\n shouldBePatron.introduction() === \"patron\"\n ) {\n this.patrons.add(shouldBePatron);\n }\n return this;\n }\n\n public remove(patron: GuestObjectType<T>) {\n this.patrons.delete(patron);\n return this;\n }\n\n public distribute(receiving: T, possiblePatron: GuestType<T>): this {\n this.add(possiblePatron);\n this.sendValueToGuest(receiving, possiblePatron);\n return this;\n }\n\n private sendValueToGuest(value: T, guest: GuestType<T>) {\n const isDisposed = this.guestDisposed(value, guest);\n\n if (!isDisposed) {\n give(value, guest);\n }\n }\n\n private guestDisposed(value: T, guest: GuestType<T>) {\n if ((guest as GuestDisposableType).disposed?.(value)) {\n this.remove(guest as GuestObjectType);\n return true;\n }\n\n return false;\n }\n}\n","import { PatronPool, PoolType } from \"../Patron/PatronPool\";\nimport { give, GuestObjectType, GuestType } from \"./Guest\";\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/guest/guest-pool\n */\nexport class GuestPool<T> implements GuestObjectType<T>, PoolType<T> {\n private guests = new Set<GuestType<T>>();\n\n private patronPool: PatronPool<T>;\n\n public constructor(initiator: unknown) {\n this.patronPool = new PatronPool(initiator);\n }\n\n public give(value: T): this {\n this.deliverToGuests(value);\n this.patronPool.give(value);\n return this;\n }\n\n public add(guest: GuestType<T>): this {\n if (\n typeof guest === \"function\" ||\n !guest.introduction ||\n guest.introduction() === \"guest\"\n ) {\n this.guests.add(guest);\n }\n this.patronPool.add(guest);\n return this;\n }\n\n public remove(patron: GuestObjectType<T>): this {\n this.guests.delete(patron);\n this.patronPool.remove(patron);\n return this;\n }\n\n public distribute(receiving: T, possiblePatron: GuestObjectType<T>): this {\n this.add(possiblePatron);\n this.give(receiving);\n return this;\n }\n\n public size() {\n return this.patronPool.size() + this.guests.size;\n }\n\n private deliverToGuests(value: T) {\n this.guests.forEach((target) => {\n give(value, target);\n });\n this.guests.clear();\n }\n}\n","import { GuestObjectType } from \"./Guest\";\n\nexport interface GuestValueType<T = any> extends GuestObjectType<T> {\n value(): T;\n}\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/guest/guest-sync\n */\nexport class GuestSync<T> implements GuestValueType<T> {\n public constructor(private theValue?: T) {}\n\n public give(value: T): this {\n this.theValue = value;\n return this;\n }\n\n public value() {\n if (this.theValue === undefined) {\n throw new Error(\"no value in GuestSync!\");\n }\n return this.theValue;\n }\n}\n","import { Guest, GuestType } from \"./Guest\";\nimport { GuestDisposableType, MaybeDisposableType } from \"./GuestDisposable\";\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/guest/guest-object\n */\nexport class GuestObject<T> implements GuestDisposableType<T> {\n public constructor(private baseGuest: GuestType<T>) {\n if (baseGuest === undefined) {\n throw new Error(\"GuestObject didnt receive baseGuest argument\");\n }\n }\n\n public give(value: T): this {\n let guest = this.baseGuest;\n if (typeof guest === \"function\") {\n guest = new Guest(guest);\n }\n guest.give(value);\n return this;\n }\n\n public introduction() {\n if (typeof this.baseGuest === \"function\" || !this.baseGuest.introduction) {\n return \"guest\";\n }\n return this.baseGuest.introduction();\n }\n\n public disposed(value: T | null): boolean {\n const maybeDisposable = this.baseGuest as MaybeDisposableType;\n return maybeDisposable.disposed ? maybeDisposable.disposed(value) : false;\n }\n}\n","import { give, GuestObjectType, GuestType } from \"./Guest\";\n\nexport interface GuestDisposableType<T = any> extends GuestObjectType<T> {\n disposed(value: T | null): boolean;\n}\n\nexport type MaybeDisposableType<T = any> = Partial<GuestDisposableType<T>>;\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/guest/guest-disposable\n */\nexport class GuestDisposable<T> implements GuestDisposableType<T> {\n public constructor(\n private guest: GuestType,\n private disposeCheck: (value: T | null) => boolean,\n ) {\n if (guest === undefined) {\n throw new Error(\"GuestDisposable didnt receive guest argument\");\n }\n if (disposeCheck === undefined) {\n throw new Error(\"GuestDisposable didnt receive disposeCheck argument\");\n }\n }\n\n public disposed(value: T | null): boolean {\n return this.disposeCheck(value);\n }\n\n public give(value: T): this {\n give(value, this.guest);\n return this;\n }\n}\n","import { give, GuestObjectType, GuestType } from \"../Guest/Guest\";\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/guest/guest-applied\n */\nexport class GuestApplied<T, R> implements GuestObjectType<T> {\n public constructor(\n private baseGuest: GuestType<R>,\n private applier: (value: T) => R,\n ) {}\n\n public give(value: T): this {\n give(this.applier(value), this.baseGuest);\n return this;\n }\n}\n","import {\n give,\n GuestExecutorType,\n GuestObjectType,\n GuestType,\n} from \"../Guest/Guest\";\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/guest/guest-executor-applied\n */\nexport class GuestExecutorApplied<T> implements GuestObjectType<T> {\n public give: GuestExecutorType<T, this>;\n\n public constructor(\n baseGuest: GuestType<T>,\n applier: (executor: GuestExecutorType) => GuestExecutorType,\n ) {\n this.give = applier((v) => give(v, baseGuest)) as GuestExecutorType<\n T,\n this\n >;\n }\n}\n","import { give, GuestType } from \"../Guest/Guest\";\nimport { GuestDisposableType } from \"../Guest/GuestDisposable\";\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/patron\n */\nexport class Patron<T> implements GuestDisposableType<T> {\n public constructor(private willBePatron: GuestType<T>) {\n if (willBePatron === undefined) {\n throw new Error(\"Patron didnt receive willBePatron argument\");\n }\n }\n\n public introduction() {\n return \"patron\" as const;\n }\n\n public give(value: T): this {\n give(value, this.willBePatron);\n return this;\n }\n\n public disposed(value: T | null): boolean {\n const maybeDisposable = this.willBePatron as GuestDisposableType;\n return maybeDisposable?.disposed?.(value) || false;\n }\n}\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/utils/is-patron\n */\nexport const isPatron = (guest: GuestType): guest is Patron<unknown> =>\n typeof guest === \"object\" &&\n guest !== null &&\n guest?.introduction?.() === \"patron\";\n","import { give, GuestType } from \"../Guest/Guest\";\nimport {\n GuestDisposableType,\n MaybeDisposableType,\n} from \"../Guest/GuestDisposable\";\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/patron/patron-once\n */\nexport class PatronOnce<T> implements GuestDisposableType<T> {\n private received = false;\n\n public constructor(private baseGuest: GuestType<T>) {\n if (baseGuest === undefined) {\n throw new Error(\"PatronOnce didnt receive baseGuest argument\");\n }\n }\n\n public introduction() {\n return \"patron\" as const;\n }\n\n public give(value: T): this {\n if (!this.received) {\n this.received = true;\n give(value, this.baseGuest);\n }\n return this;\n }\n\n public disposed(value: T | null): boolean {\n if (this.received) {\n return true;\n }\n const maybeDisposable = this.baseGuest as MaybeDisposableType;\n return maybeDisposable.disposed ? maybeDisposable.disposed(value) : false;\n }\n}\n","import { GuestObjectType, GuestType } from \"../Guest/Guest\";\nimport { GuestApplied } from \"../Guest/GuestApplied\";\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/patron/patron-applied\n */\nexport class PatronApplied<T, R> implements GuestObjectType<T> {\n private guestApplied: GuestApplied<T, R>;\n\n public constructor(baseGuest: GuestType<R>, applier: (value: T) => R) {\n this.guestApplied = new GuestApplied(baseGuest, applier);\n }\n\n public give(value: T): this {\n this.guestApplied.give(value);\n return this;\n }\n\n public introduction(): \"guest\" | \"patron\" {\n return \"patron\";\n }\n}\n","import { GuestExecutorType, GuestObjectType, GuestType } from \"../Guest/Guest\";\nimport { GuestExecutorApplied } from \"../Guest/GuestExecutorApplied\";\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/patron/patron-executor-applied\n */\nexport class PatronExecutorApplied<T> implements GuestObjectType<T> {\n private guestApplied: GuestExecutorApplied<T>;\n\n public constructor(\n baseGuest: GuestType<T>,\n applier: (executor: GuestExecutorType) => GuestExecutorType,\n ) {\n this.guestApplied = new GuestExecutorApplied(baseGuest, applier);\n }\n\n public give(value: T): this {\n this.guestApplied.give(value);\n return this;\n }\n\n public introduction(): \"guest\" | \"patron\" {\n return \"patron\";\n }\n}\n","import { Guest, GuestObjectType, GuestType } from \"../Guest/Guest\";\nimport { SourceObjectType } from \"./Source\";\nimport { PatronPool } from \"../Patron/PatronPool\";\nimport { isPatron } from \"../Patron/Patron\";\n\nexport interface PoolAwareType<T = any> {\n pool(): PatronPool<T>;\n}\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/source/source-with-pool\n */\nexport type SourceWithPoolType<T = any> = SourceObjectType<T> &\n GuestObjectType<T> &\n PoolAwareType<T>;\n\nexport class SourceWithPool<T> implements SourceWithPoolType<T> {\n private thePool = new PatronPool(this);\n private theEmptyPool = new PatronPool(this);\n private isEmpty: boolean;\n\n public constructor(private sourceDocument?: T) {\n this.isEmpty = sourceDocument === undefined;\n }\n\n public pool() {\n return this.thePool;\n }\n\n public give(value: T): this {\n this.isEmpty = false;\n this.sourceDocument = value;\n this.thePool.give(this.sourceDocument);\n this.theEmptyPool.give(this.sourceDocument);\n return this;\n }\n\n public value(guest: GuestType<T>): this {\n if (this.isEmpty) {\n if (isPatron(guest)) {\n this.theEmptyPool.add(guest);\n }\n return this;\n }\n\n if (typeof guest === \"function\") {\n this.thePool.distribute(this.sourceDocument, new Guest(guest));\n } else {\n this.thePool.distribute(this.sourceDocument, guest);\n }\n\n return this;\n }\n\n public filled() {\n return !this.isEmpty;\n }\n}\n","import { SourceObjectType } from \"./Source\";\nimport { SourceWithPool } from \"./SourceWithPool\";\nimport { Guest, GuestObjectType, GuestType } from \"../Guest/Guest\";\nimport { GuestCast } from \"../Guest/GuestCast\";\nimport { GuestObject } from \"../Guest/GuestObject\";\nimport { GuestPool } from \"../Guest/GuestPool\";\n\nexport interface SourceAllType<T = any> extends SourceObjectType<T> {\n valueArray(guest: GuestObjectType<T>): this;\n guestKey<R>(key: string): GuestObjectType<R>;\n}\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/source/source-all\n */\nexport class SourceAll<T> implements SourceAllType<T> {\n private theAll: SourceWithPool<Record<string, unknown>>;\n\n private keysKnown: Set<string>;\n\n private keysFilled = new Set();\n\n private filledAllPool = new GuestPool(this);\n\n public constructor(initialKnownKeys: string[] = []) {\n this.theAll = new SourceWithPool<Record<string, unknown>>({});\n this.keysKnown = new Set(initialKnownKeys);\n }\n\n public valueArray(guest: GuestType<T>) {\n const guestObject = new GuestObject(guest);\n this.filledAllPool.add(\n new GuestCast(guestObject, (value: Record<string, unknown>) => {\n guestObject.give(Object.values(value) as T);\n }),\n );\n if (this.isAllFilled()) {\n this.theAll.value(\n new Guest((all: Record<string, unknown>) => {\n this.filledAllPool.give(Object.values(all));\n }),\n );\n }\n return this;\n }\n\n public value(guest: GuestType<T>) {\n const guestObject = new GuestObject(guest);\n if (this.isAllFilled()) {\n this.filledAllPool.add(guestObject);\n this.theAll.value(\n new Guest((all) => {\n this.filledAllPool.give(all);\n }),\n );\n } else {\n this.filledAllPool.add(guestObject);\n }\n return this;\n }\n\n public guestKey<R>(key: string): GuestObjectType<R> {\n this.keysKnown.add(key);\n return new Guest((value) => {\n this.theAll.value(\n new Guest((all: Record<string, unknown>) => {\n this.keysFilled.add(key);\n const lastAll = {\n ...all,\n [key]: value,\n };\n this.theAll.give(lastAll);\n if (this.isAllFilled()) {\n this.filledAllPool.give(lastAll);\n }\n }),\n );\n });\n }\n\n private isAllFilled() {\n return (\n this.keysFilled.size > 0 && this.keysFilled.size === this.keysKnown.size\n );\n }\n}\n","import { give, GuestType } from \"../Guest/Guest\";\n\nexport type SourceExecutorType<T> = (guest: GuestType<T>) => unknown;\n\nexport interface SourceObjectType<T> {\n value: SourceExecutorType<T>;\n}\n\nexport type SourceDataType =\n | string\n | number\n | boolean\n | Date\n | object\n | Array<unknown>\n | symbol;\n\nexport type SourceType<T = any> =\n | SourceExecutorType<T>\n | SourceObjectType<T>\n | SourceDataType;\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/utils/value\n */\nexport function value<T>(source: SourceType<T>, guest: GuestType<T>) {\n if (source === undefined || source === null) {\n throw new Error(\"value didnt receive source argument\");\n }\n if (guest === undefined || source === null) {\n throw new Error(\"value didnt receive guest argument\");\n }\n if (typeof source === \"function\") {\n source(guest);\n } else if (\n typeof source === \"object\" &&\n \"value\" in source &&\n typeof source.value === \"function\"\n ) {\n source.value(guest);\n } else {\n give(source as T, guest);\n }\n\n return source;\n}\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/utils/is-source\n */\nexport function isSource(mbSource: any): mbSource is SourceType {\n if (mbSource === undefined) {\n throw new Error(\"isSource didnt receive mbSource argument\");\n }\n return (\n typeof mbSource === \"function\" || typeof mbSource?.value === \"function\"\n );\n}\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/source\n */\nexport class Source<T = any> implements SourceObjectType<T> {\n public constructor(private source: SourceType<T>) {\n if (source === undefined) {\n throw new Error(\"Source constructor didnt receive executor function\");\n }\n }\n\n public value(guest: GuestType<T>): GuestType<T> {\n value(this.source, guest);\n return guest;\n }\n}\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/utils/source-of\n */\nexport const sourceOf = <T>(value: T) => new Source<T>((g) => give(value, g));\n","import { SourceWithPool } from \"../Source/SourceWithPool\";\nimport { give, GuestType } from \"../Guest/Guest\";\nimport { GuestCast } from \"../Guest/GuestCast\";\nimport { PatronOnce } from \"../Patron/PatronOnce\";\nimport { PrivateType } from \"../Private/Private\";\nimport { isSource, SourceObjectType, SourceType, value } from \"./Source\";\nimport { SourceAll } from \"./SourceAll\";\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/source/source-sequence\n */\nexport class SourceSequence<T, TG> implements SourceObjectType<TG[]> {\n public constructor(\n private baseSource: SourceType<T[]>,\n private targetSource: PrivateType<SourceType<TG>>,\n ) {\n if (baseSource === undefined) {\n throw new Error(\"SourceSequence didnt receive baseSource argument\");\n }\n if (targetSource === undefined) {\n throw new Error(\"SourceSequence didnt receive targetSource argument\");\n }\n }\n\n public value(guest: GuestType<TG[]>) {\n const all = new SourceAll<TG[]>();\n const sequenceSource = new SourceWithPool();\n const targetSource = this.targetSource.get(sequenceSource);\n\n value(\n this.baseSource,\n new GuestCast(guest, (theValue) => {\n let index = 0;\n\n const nextItemHandle = () => {\n if (theValue[index + 1] !== undefined) {\n index = index + 1;\n handle();\n } else {\n all.valueArray(guest);\n }\n };\n\n function handle() {\n sequenceSource.give(null);\n const nextValue = theValue[index];\n if (isSource(nextValue)) {\n value(\n nextValue,\n new PatronOnce((theNextValue) => {\n sequenceSource.give(theNextValue);\n value(targetSource, all.guestKey(index.toString()));\n nextItemHandle();\n }),\n );\n } else {\n sequenceSource.give(nextValue);\n value(targetSource, all.guestKey(index.toString()));\n nextItemHandle();\n }\n }\n\n if (theValue[index] !== undefined) {\n handle();\n } else {\n give([], guest);\n }\n }),\n );\n return this;\n }\n}\n","import { PrivateType } from \"../Private/Private\";\nimport { give, GuestType } from \"../Guest/Guest\";\nimport {\n Source,\n SourceObjectType,\n SourceType,\n isSource,\n value,\n} from \"./Source\";\nimport { SourceAll } from \"./SourceAll\";\nimport { GuestCast } from \"../Guest/GuestCast\";\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/source/source-map\n */\nexport class SourceMap<T, TG> implements SourceObjectType<TG[]> {\n public constructor(\n private baseSource: SourceType<T[]>,\n private targetSource: PrivateType<SourceType<TG>>,\n ) {\n if (baseSource === undefined) {\n throw new Error(\"SourceMap didnt receive baseSource argument\");\n }\n if (targetSource === undefined) {\n throw new Error(\"SourceMap didnt receive targetSource argument\");\n }\n }\n\n public value(guest: GuestType<TG[]>) {\n const all = new SourceAll();\n value(\n this.baseSource,\n new GuestCast(<GuestType>guest, (theValue) => {\n theValue.forEach((val, index) => {\n const valueSource = isSource(val)\n ? val\n : new Source((innerGuest) => {\n give(val, innerGuest);\n });\n const targetSource = this.targetSource.get(valueSource);\n value(targetSource, all.guestKey(index.toString()));\n });\n }),\n );\n all.valueArray(<GuestType>guest);\n return this;\n }\n}\n","import { give, GuestType } from \"../Guest/Guest\";\nimport { SourceObjectType, SourceType, value } from \"./Source\";\nimport { GuestCast } from \"../Guest/GuestCast\";\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/source/source-race\n */\nexport class SourceRace<T> implements SourceObjectType<T> {\n public constructor(private sources: SourceType<T>[]) {\n if (sources === undefined) {\n throw new Error(\"SourceRace didnt receive sources argument\");\n }\n }\n\n public value(guest: GuestType<T>): this {\n let connectedWithSource: SourceType | null = null;\n this.sources.forEach((source) => {\n value(\n source,\n new GuestCast(<GuestType>guest, (value) => {\n if (!connectedWithSource || connectedWithSource === source) {\n give(value as T, guest);\n connectedWithSource = source;\n }\n }),\n );\n });\n return this;\n }\n}\n","import { give, GuestType } from \"../Guest/Guest\";\nimport { SourceType, value } from \"./Source\";\nimport { PatronPool } from \"../Patron/PatronPool\";\nimport { SourceWithPoolType } from \"./SourceWithPool\";\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/source/source-dynamic\n */\nexport class SourceDynamic<T = unknown> implements SourceWithPoolType<T> {\n public constructor(\n private baseGuest: GuestType<T>,\n private baseSource: SourceType<T>,\n ) {\n if (baseGuest === undefined) {\n throw new Error(\"SourceDynamic didnt receive baseGuest argument\");\n }\n if (baseSource === undefined) {\n throw new Error(\"SourceDynamic didnt receive baseSource argument\");\n }\n }\n\n public value(guest: GuestType<T>) {\n value(this.baseSource, guest);\n return this;\n }\n\n public give(value: T) {\n give(value, this.baseGuest);\n return this;\n }\n\n public pool(): PatronPool<T> {\n throw Error(\"No pool in SourceDynamic\");\n }\n}\n","import { give, GuestType } from \"../Guest/Guest\";\nimport { GuestCast } from \"../Guest/GuestCast\";\nimport { SourceObjectType, SourceType, value } from \"../Source/Source\";\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/source/source-applied\n */\nexport class SourceApplied<T, R> implements SourceObjectType<R> {\n public constructor(\n private baseSource: SourceType<T>,\n private applier: (v: T) => R,\n ) {}\n\n public value(g: GuestType<R>) {\n value(\n this.baseSource,\n new GuestCast(g, (v) => {\n give(this.applier(v), g);\n }),\n );\n return this;\n }\n}\n","import {\n SourceExecutorType,\n SourceObjectType,\n SourceType,\n value,\n} from \"../Source/Source\";\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/source/source-executor-applied\n */\nexport class SourceExecutorApplied<T> implements SourceObjectType<T> {\n public value: SourceExecutorType<T>;\n\n public constructor(\n source: SourceType<T>,\n applier: (executor: SourceExecutorType<T>) => SourceExecutorType<T>,\n ) {\n this.value = applier((g) => {\n value(source, g);\n });\n }\n}\n","import { give, GuestType } from \"../Guest/Guest\";\nimport { GuestCast } from \"../Guest/GuestCast\";\nimport { SourceObjectType, SourceType, value } from \"../Source/Source\";\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/source/source-filtered\n */\nexport class SourceFiltered<T> implements SourceObjectType<T> {\n public constructor(\n private baseSource: SourceType<T>,\n private predicate: (v: T) => boolean,\n ) {}\n\n public value(g: GuestType<T>) {\n value(\n this.baseSource,\n new GuestCast(g, (v) => {\n if (this.predicate(v) === true) {\n give(v, g);\n }\n }),\n );\n return this;\n }\n}\n","import { GuestType } from \"../Guest/Guest\";\nimport { PatronPool } from \"../Patron/PatronPool\";\nimport { value } from \"./Source\";\nimport { SourceWithPool, SourceWithPoolType } from \"./SourceWithPool\";\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/source/source-once\n */\nexport class SourceOnce<T> implements SourceWithPoolType<T> {\n private source: SourceWithPool<T>;\n\n public constructor(initialValue?: T) {\n this.source = new SourceWithPool(initialValue);\n }\n\n public value(guest: GuestType<T>) {\n value(this.source, guest);\n return this;\n }\n\n public give(value: T): this {\n if (!this.source.filled()) {\n this.source.give(value);\n }\n return this;\n }\n\n public pool(): PatronPool<T> {\n return this.source.pool();\n }\n}\n","import { GuestType } from \"../Guest/Guest\";\nimport { GuestSync } from \"../Guest/GuestSync\";\nimport { Patron } from \"../Patron/Patron\";\nimport { SourceObjectType, SourceType, value } from \"../Source/Source\";\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/source/source-sync\n */\nexport class SourceSync<T> implements SourceObjectType<T> {\n private syncGuest = new GuestSync();\n\n public constructor(private baseSource: SourceType<T>) {\n value(baseSource, new Patron(this.syncGuest));\n }\n\n public value(guest: GuestType<T>) {\n value(this.baseSource, guest);\n return this;\n }\n\n public syncValue() {\n try {\n return this.syncGuest.value();\n } catch {\n throw new Error(\"No value in SourceSync\");\n }\n }\n}\n","import { PrivateType } from \"./Private\";\n\ninterface Constructable<T> {\n new (...args: unknown[]): T;\n}\n\ninterface Prototyped<T> {\n prototype: T;\n}\n\nexport class PrivateClass<T> implements PrivateType<T> {\n public constructor(\n private constructorFn: Prototyped<T>,\n private modules: Record<string, unknown> = {},\n ) {\n if (constructorFn === undefined) {\n throw new Error(\"PrivateClass didnt receive constructorFn argument\");\n }\n }\n\n public get<R extends unknown[], CT = null>(\n ...args: R\n ): CT extends null ? T : CT {\n return new (this.constructorFn as Constructable<T>)(\n ...args,\n this.modules,\n ) as CT extends null ? T : CT;\n }\n}\n","/**\n * @url https://silentium-lab.github.io/silentium/#/utils/private\n */\nexport interface PrivateType<T> {\n get<R extends unknown[], CT = null>(...args: R): CT extends null ? T : CT;\n}\n\nexport class Private<T> implements PrivateType<T> {\n public constructor(private buildingFn: (...args: any[]) => T) {\n if (buildingFn === undefined) {\n throw new Error(\"Private didnt receive buildingFn argument\");\n }\n }\n\n public get<R extends unknown[], CT = null>(\n ...args: R\n ): CT extends null ? T : CT {\n return this.buildingFn(...args) as CT extends null ? T : CT;\n }\n}\n"],"names":["__publicField","value"],"mappings":";;AAcgB,SAAA,IAAA,CAAQ,MAAS,KAAqB,EAAA;AACpD,EAAA,IAAI,SAAS,MAAW,EAAA;AACtB,IAAM,MAAA,IAAI,MAAM,kCAAkC,CAAA;AAAA;AAEpD,EAAA,IAAI,UAAU,MAAW,EAAA;AACvB,IAAM,MAAA,IAAI,MAAM,mCAAmC,CAAA;AAAA;AAErD,EAAI,IAAA,OAAO,UAAU,UAAY,EAAA;AAC/B,IAAA,KAAA,CAAM,IAAI,CAAA;AAAA,GACL,MAAA;AACL,IAAA,KAAA,CAAM,KAAK,IAAI,CAAA;AAAA;AAGjB,EAAO,OAAA,KAAA;AACT;AAKO,SAAS,QAAQ,OAAoC,EAAA;AAC1D,EAAA,IAAI,YAAY,MAAW,EAAA;AACzB,IAAM,MAAA,IAAI,MAAM,wCAAwC,CAAA;AAAA;AAE1D,EAAA,OAAO,OAAO,OAAA,KAAY,UAAc,IAAA,OAAO,SAAS,IAAS,KAAA,UAAA;AACnE;AAKO,MAAM,KAAuC,CAAA;AAAA,EAC3C,YAAoB,QAAgC,EAAA;AAAhC,IAAA,IAAA,CAAA,QAAA,GAAA,QAAA;AACzB,IAAA,IAAI,CAAC,QAAU,EAAA;AACb,MAAM,MAAA,IAAI,MAAM,uDAAuD,CAAA;AAAA;AACzE;AACF,EAEO,KAAK,KAAU,EAAA;AACpB,IAAA,IAAA,CAAK,SAAS,KAAK,CAAA;AACnB,IAAO,OAAA,IAAA;AAAA;AAEX;;AChDO,MAAM,SAA+C,CAAA;AAAA,EACnD,WAAA,CACG,aACA,WACR,EAAA;AAFQ,IAAA,IAAA,CAAA,WAAA,GAAA,WAAA;AACA,IAAA,IAAA,CAAA,WAAA,GAAA,WAAA;AAER,IAAA,IAAI,gBAAgB,MAAW,EAAA;AAC7B,MAAM,MAAA,IAAI,MAAM,8CAA8C,CAAA;AAAA;AAEhE,IAAA,IAAI,gBAAgB,MAAW,EAAA;AAC7B,MAAM,MAAA,IAAI,MAAM,8CAA8C,CAAA;AAAA;AAChE;AACF,EAEO,YAAe,GAAA;AACpB,IAAI,IAAA,OAAO,IAAK,CAAA,WAAA,KAAgB,UAAY,EAAA;AAC1C,MAAO,OAAA,OAAA;AAAA;AAET,IAAI,IAAA,CAAC,IAAK,CAAA,WAAA,CAAY,YAAc,EAAA;AAClC,MAAO,OAAA,OAAA;AAAA;AAET,IAAO,OAAA,IAAA,CAAK,YAAY,YAAa,EAAA;AAAA;AACvC,EAEO,KAAK,KAAgB,EAAA;AAC1B,IAAK,IAAA,CAAA,KAAA,EAAO,KAAK,WAAW,CAAA;AAC5B,IAAO,OAAA,IAAA;AAAA;AACT,EAEO,SAAS,KAA0B,EAAA;AACxC,IAAA,MAAM,kBAAkB,IAAK,CAAA,WAAA;AAC7B,IAAA,OAAO,eAAgB,CAAA,QAAA,GAAW,eAAgB,CAAA,QAAA,CAAS,KAAK,CAAI,GAAA,KAAA;AAAA;AAExE;;;;;ACnCA,MAAM,QAAA,uBAAe,GAAoC,EAAA;AAK5C,MAAA,WAAA,GAAc,CAAC,MAA4B,KAAA;AACtD,EAAA,MAAM,QAAoB,EAAC;AAC3B,EAAS,QAAA,CAAA,OAAA,CAAQ,CAAC,IAAA,EAAM,YAAiB,KAAA;AACvC,IAAI,IAAA,IAAA,CAAK,GAAI,CAAA,MAAM,CAAG,EAAA;AACpB,MAAA,KAAA,CAAM,KAAK,YAAY,CAAA;AAAA;AACzB,GACD,CAAA;AACD,EAAO,OAAA,KAAA;AACT;AAKa,MAAA,qBAAA,GAAwB,CAAC,MAA4B,KAAA;AAChE,EAAA,IAAI,WAAW,MAAW,EAAA;AACxB,IAAM,MAAA,IAAI,MAAM,qDAAqD,CAAA;AAAA;AAEvE,EAAS,QAAA,CAAA,OAAA,CAAQ,CAAC,IAAS,KAAA;AACzB,IAAA,IAAA,CAAK,OAAO,MAAM,CAAA;AAAA,GACnB,CAAA;AACH;AAKa,MAAA,eAAA,GAAkB,CAAC,MAA4B,KAAA;AAC1D,EAAA,IAAI,WAAW,MAAW,EAAA;AACxB,IAAM,MAAA,IAAI,MAAM,+CAA+C,CAAA;AAAA;AAEjE,EAAA,IAAI,MAAS,GAAA,KAAA;AACb,EAAS,QAAA,CAAA,OAAA,CAAQ,CAAC,IAAS,KAAA;AACzB,IAAA,IAAI,CAAC,MAAQ,EAAA;AACX,MAAS,MAAA,GAAA,IAAA,CAAK,IAAI,MAAM,CAAA;AAAA;AAC1B,GACD,CAAA;AACD,EAAO,OAAA,MAAA;AACT;AAYO,MAAM,UAAqC,CAAA;AAAA,EAKzC,YAAoB,SAAoB,EAAA;AAApB,IAAA,IAAA,CAAA,SAAA,GAAA,SAAA;AAJ3B,IAAQA,eAAA,CAAA,IAAA,EAAA,SAAA,CAAA;AAER,IAAOA,eAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AAGL,IAAK,IAAA,CAAA,OAAA,uBAAc,GAAwB,EAAA;AAC3C,IAAS,QAAA,CAAA,GAAA,CAAI,IAAM,EAAA,IAAA,CAAK,OAAO,CAAA;AAC/B,IAAM,MAAA,SAAA,GAAY,CAAC,KAAa,KAAA;AAC9B,MAAK,IAAA,CAAA,OAAA,CAAQ,OAAQ,CAAA,CAAC,MAAW,KAAA;AAC/B,QAAK,IAAA,CAAA,gBAAA,CAAiB,OAAO,MAAM,CAAA;AAAA,OACpC,CAAA;AAAA,KACH;AACA,IAAK,IAAA,CAAA,IAAA,GAAO,CAAC,KAAa,KAAA;AACxB,MAAA,SAAA,CAAU,KAAK,CAAA;AACf,MAAO,OAAA,IAAA;AAAA,KACT;AAAA;AACF,EAEO,IAAe,GAAA;AACpB,IAAA,OAAO,KAAK,OAAQ,CAAA,IAAA;AAAA;AACtB,EAEO,IAAI,cAA8B,EAAA;AACvC,IAAA,IAAI,CAAC,cAAgB,EAAA;AACnB,MAAM,MAAA,IAAI,MAAM,yCAAyC,CAAA;AAAA;AAE3D,IACE,IAAA,OAAO,mBAAmB,UAC1B,IAAA,cAAA,CAAe,gBACf,cAAe,CAAA,YAAA,OAAmB,QAClC,EAAA;AACA,MAAK,IAAA,CAAA,OAAA,CAAQ,IAAI,cAAc,CAAA;AAAA;AAEjC,IAAO,OAAA,IAAA;AAAA;AACT,EAEO,OAAO,MAA4B,EAAA;AACxC,IAAK,IAAA,CAAA,OAAA,CAAQ,OAAO,MAAM,CAAA;AAC1B,IAAO,OAAA,IAAA;AAAA;AACT,EAEO,UAAA,CAAW,WAAc,cAAoC,EAAA;AAClE,IAAA,IAAA,CAAK,IAAI,cAAc,CAAA;AACvB,IAAK,IAAA,CAAA,gBAAA,CAAiB,WAAW,cAAc,CAAA;AAC/C,IAAO,OAAA,IAAA;AAAA;AACT,EAEQ,gBAAA,CAAiB,OAAU,KAAqB,EAAA;AACtD,IAAA,MAAM,UAAa,GAAA,IAAA,CAAK,aAAc,CAAA,KAAA,EAAO,KAAK,CAAA;AAElD,IAAA,IAAI,CAAC,UAAY,EAAA;AACf,MAAA,IAAA,CAAK,OAAO,KAAK,CAAA;AAAA;AACnB;AACF,EAEQ,aAAA,CAAc,OAAU,KAAqB,EAAA;AACnD,IAAK,IAAA,KAAA,CAA8B,QAAW,GAAA,KAAK,CAAG,EAAA;AACpD,MAAA,IAAA,CAAK,OAAO,KAAwB,CAAA;AACpC,MAAO,OAAA,IAAA;AAAA;AAGT,IAAO,OAAA,KAAA;AAAA;AAEX;;;;;AClHO,MAAM,SAAwD,CAAA;AAAA,EAK5D,YAAY,SAAoB,EAAA;AAJvC,IAAQA,eAAA,CAAA,IAAA,EAAA,QAAA,sBAAa,GAAkB,EAAA,CAAA;AAEvC,IAAQA,eAAA,CAAA,IAAA,EAAA,YAAA,CAAA;AAGN,IAAK,IAAA,CAAA,UAAA,GAAa,IAAI,UAAA,CAAW,SAAS,CAAA;AAAA;AAC5C,EAEO,KAAK,KAAgB,EAAA;AAC1B,IAAA,IAAA,CAAK,gBAAgB,KAAK,CAAA;AAC1B,IAAK,IAAA,CAAA,UAAA,CAAW,KAAK,KAAK,CAAA;AAC1B,IAAO,OAAA,IAAA;AAAA;AACT,EAEO,IAAI,KAA2B,EAAA;AACpC,IACE,IAAA,OAAO,UAAU,UACjB,IAAA,CAAC,MAAM,YACP,IAAA,KAAA,CAAM,YAAa,EAAA,KAAM,OACzB,EAAA;AACA,MAAK,IAAA,CAAA,MAAA,CAAO,IAAI,KAAK,CAAA;AAAA;AAEvB,IAAK,IAAA,CAAA,UAAA,CAAW,IAAI,KAAK,CAAA;AACzB,IAAO,OAAA,IAAA;AAAA;AACT,EAEO,OAAO,MAAkC,EAAA;AAC9C,IAAK,IAAA,CAAA,MAAA,CAAO,OAAO,MAAM,CAAA;AACzB,IAAK,IAAA,CAAA,UAAA,CAAW,OAAO,MAAM,CAAA;AAC7B,IAAO,OAAA,IAAA;AAAA;AACT,EAEO,UAAA,CAAW,WAAc,cAA0C,EAAA;AACxE,IAAA,IAAA,CAAK,IAAI,cAAc,CAAA;AACvB,IAAA,IAAA,CAAK,KAAK,SAAS,CAAA;AACnB,IAAO,OAAA,IAAA;AAAA;AACT,EAEO,IAAO,GAAA;AACZ,IAAA,OAAO,IAAK,CAAA,UAAA,CAAW,IAAK,EAAA,GAAI,KAAK,MAAO,CAAA,IAAA;AAAA;AAC9C,EAEQ,gBAAgB,KAAU,EAAA;AAChC,IAAK,IAAA,CAAA,MAAA,CAAO,OAAQ,CAAA,CAAC,MAAW,KAAA;AAC9B,MAAA,IAAA,CAAK,OAAO,MAAM,CAAA;AAAA,KACnB,CAAA;AACD,IAAA,IAAA,CAAK,OAAO,KAAM,EAAA;AAAA;AAEtB;;AC9CO,MAAM,SAA0C,CAAA;AAAA,EAC9C,YAAoB,QAAc,EAAA;AAAd,IAAA,IAAA,CAAA,QAAA,GAAA,QAAA;AAAA;AAAe,EAEnC,KAAK,KAAgB,EAAA;AAC1B,IAAA,IAAA,CAAK,QAAW,GAAA,KAAA;AAChB,IAAO,OAAA,IAAA;AAAA;AACT,EAEO,KAAQ,GAAA;AACb,IAAI,IAAA,IAAA,CAAK,aAAa,MAAW,EAAA;AAC/B,MAAM,MAAA,IAAI,MAAM,wBAAwB,CAAA;AAAA;AAE1C,IAAA,OAAO,IAAK,CAAA,QAAA;AAAA;AAEhB;;ACjBO,MAAM,WAAiD,CAAA;AAAA,EACrD,YAAoB,SAAyB,EAAA;AAAzB,IAAA,IAAA,CAAA,SAAA,GAAA,SAAA;AACzB,IAAA,IAAI,cAAc,MAAW,EAAA;AAC3B,MAAM,MAAA,IAAI,MAAM,8CAA8C,CAAA;AAAA;AAChE;AACF,EAEO,KAAK,KAAgB,EAAA;AAC1B,IAAA,IAAI,QAAQ,IAAK,CAAA,SAAA;AACjB,IAAI,IAAA,OAAO,UAAU,UAAY,EAAA;AAC/B,MAAQ,KAAA,GAAA,IAAI,MAAM,KAAK,CAAA;AAAA;AAEzB,IAAA,KAAA,CAAM,KAAK,KAAK,CAAA;AAChB,IAAO,OAAA,IAAA;AAAA;AACT,EAEO,YAAe,GAAA;AACpB,IAAA,IAAI,OAAO,IAAK,CAAA,SAAA,KAAc,cAAc,CAAC,IAAA,CAAK,UAAU,YAAc,EAAA;AACxE,MAAO,OAAA,OAAA;AAAA;AAET,IAAO,OAAA,IAAA,CAAK,UAAU,YAAa,EAAA;AAAA;AACrC,EAEO,SAAS,KAA0B,EAAA;AACxC,IAAA,MAAM,kBAAkB,IAAK,CAAA,SAAA;AAC7B,IAAA,OAAO,eAAgB,CAAA,QAAA,GAAW,eAAgB,CAAA,QAAA,CAAS,KAAK,CAAI,GAAA,KAAA;AAAA;AAExE;;ACtBO,MAAM,eAAqD,CAAA;AAAA,EACzD,WAAA,CACG,OACA,YACR,EAAA;AAFQ,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AACA,IAAA,IAAA,CAAA,YAAA,GAAA,YAAA;AAER,IAAA,IAAI,UAAU,MAAW,EAAA;AACvB,MAAM,MAAA,IAAI,MAAM,8CAA8C,CAAA;AAAA;AAEhE,IAAA,IAAI,iBAAiB,MAAW,EAAA;AAC9B,MAAM,MAAA,IAAI,MAAM,qDAAqD,CAAA;AAAA;AACvE;AACF,EAEO,SAAS,KAA0B,EAAA;AACxC,IAAO,OAAA,IAAA,CAAK,aAAa,KAAK,CAAA;AAAA;AAChC,EAEO,KAAK,KAAgB,EAAA;AAC1B,IAAK,IAAA,CAAA,KAAA,EAAO,KAAK,KAAK,CAAA;AACtB,IAAO,OAAA,IAAA;AAAA;AAEX;;AC3BO,MAAM,YAAiD,CAAA;AAAA,EACrD,WAAA,CACG,WACA,OACR,EAAA;AAFQ,IAAA,IAAA,CAAA,SAAA,GAAA,SAAA;AACA,IAAA,IAAA,CAAA,OAAA,GAAA,OAAA;AAAA;AACP,EAEI,KAAK,KAAgB,EAAA;AAC1B,IAAA,IAAA,CAAK,IAAK,CAAA,OAAA,CAAQ,KAAK,CAAA,EAAG,KAAK,SAAS,CAAA;AACxC,IAAO,OAAA,IAAA;AAAA;AAEX;;;;;ACLO,MAAM,oBAAsD,CAAA;AAAA,EAG1D,WAAA,CACL,WACA,OACA,EAAA;AALF,IAAOA,eAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AAML,IAAA,IAAA,CAAK,OAAO,OAAQ,CAAA,CAAC,MAAM,IAAK,CAAA,CAAA,EAAG,SAAS,CAAC,CAAA;AAAA;AAKjD;;AChBO,MAAM,MAA4C,CAAA;AAAA,EAChD,YAAoB,YAA4B,EAAA;AAA5B,IAAA,IAAA,CAAA,YAAA,GAAA,YAAA;AACzB,IAAA,IAAI,iBAAiB,MAAW,EAAA;AAC9B,MAAM,MAAA,IAAI,MAAM,4CAA4C,CAAA;AAAA;AAC9D;AACF,EAEO,YAAe,GAAA;AACpB,IAAO,OAAA,QAAA;AAAA;AACT,EAEO,KAAK,KAAgB,EAAA;AAC1B,IAAK,IAAA,CAAA,KAAA,EAAO,KAAK,YAAY,CAAA;AAC7B,IAAO,OAAA,IAAA;AAAA;AACT,EAEO,SAAS,KAA0B,EAAA;AACxC,IAAA,MAAM,kBAAkB,IAAK,CAAA,YAAA;AAC7B,IAAO,OAAA,eAAA,EAAiB,QAAW,GAAA,KAAK,CAAK,IAAA,KAAA;AAAA;AAEjD;AAKa,MAAA,QAAA,GAAW,CAAC,KAAA,KACvB,OAAO,KAAA,KAAU,YACjB,KAAU,KAAA,IAAA,IACV,KAAO,EAAA,YAAA,IAAqB,KAAA;;;;;ACzBvB,MAAM,UAAgD,CAAA;AAAA,EAGpD,YAAoB,SAAyB,EAAA;AAAzB,IAAA,IAAA,CAAA,SAAA,GAAA,SAAA;AAF3B,IAAAA,eAAA,CAAA,IAAA,EAAQ,UAAW,EAAA,KAAA,CAAA;AAGjB,IAAA,IAAI,cAAc,MAAW,EAAA;AAC3B,MAAM,MAAA,IAAI,MAAM,6CAA6C,CAAA;AAAA;AAC/D;AACF,EAEO,YAAe,GAAA;AACpB,IAAO,OAAA,QAAA;AAAA;AACT,EAEO,KAAK,KAAgB,EAAA;AAC1B,IAAI,IAAA,CAAC,KAAK,QAAU,EAAA;AAClB,MAAA,IAAA,CAAK,QAAW,GAAA,IAAA;AAChB,MAAK,IAAA,CAAA,KAAA,EAAO,KAAK,SAAS,CAAA;AAAA;AAE5B,IAAO,OAAA,IAAA;AAAA;AACT,EAEO,SAAS,KAA0B,EAAA;AACxC,IAAA,IAAI,KAAK,QAAU,EAAA;AACjB,MAAO,OAAA,IAAA;AAAA;AAET,IAAA,MAAM,kBAAkB,IAAK,CAAA,SAAA;AAC7B,IAAA,OAAO,eAAgB,CAAA,QAAA,GAAW,eAAgB,CAAA,QAAA,CAAS,KAAK,CAAI,GAAA,KAAA;AAAA;AAExE;;;;;AC/BO,MAAM,aAAkD,CAAA;AAAA,EAGtD,WAAA,CAAY,WAAyB,OAA0B,EAAA;AAFtE,IAAQA,eAAA,CAAA,IAAA,EAAA,cAAA,CAAA;AAGN,IAAA,IAAA,CAAK,YAAe,GAAA,IAAI,YAAa,CAAA,SAAA,EAAW,OAAO,CAAA;AAAA;AACzD,EAEO,KAAK,KAAgB,EAAA;AAC1B,IAAK,IAAA,CAAA,YAAA,CAAa,KAAK,KAAK,CAAA;AAC5B,IAAO,OAAA,IAAA;AAAA;AACT,EAEO,YAAmC,GAAA;AACxC,IAAO,OAAA,QAAA;AAAA;AAEX;;;;;ACfO,MAAM,qBAAuD,CAAA;AAAA,EAG3D,WAAA,CACL,WACA,OACA,EAAA;AALF,IAAQA,eAAA,CAAA,IAAA,EAAA,cAAA,CAAA;AAMN,IAAA,IAAA,CAAK,YAAe,GAAA,IAAI,oBAAqB,CAAA,SAAA,EAAW,OAAO,CAAA;AAAA;AACjE,EAEO,KAAK,KAAgB,EAAA;AAC1B,IAAK,IAAA,CAAA,YAAA,CAAa,KAAK,KAAK,CAAA;AAC5B,IAAO,OAAA,IAAA;AAAA;AACT,EAEO,YAAmC,GAAA;AACxC,IAAO,OAAA,QAAA;AAAA;AAEX;;;;;ACRO,MAAM,cAAmD,CAAA;AAAA,EAKvD,YAAoB,cAAoB,EAAA;AAApB,IAAA,IAAA,CAAA,cAAA,GAAA,cAAA;AAJ3B,IAAQA,eAAA,CAAA,IAAA,EAAA,SAAA,EAAU,IAAI,UAAA,CAAW,IAAI,CAAA,CAAA;AACrC,IAAQA,eAAA,CAAA,IAAA,EAAA,cAAA,EAAe,IAAI,UAAA,CAAW,IAAI,CAAA,CAAA;AAC1C,IAAQA,eAAA,CAAA,IAAA,EAAA,SAAA,CAAA;AAGN,IAAA,IAAA,CAAK,UAAU,cAAmB,KAAA,MAAA;AAAA;AACpC,EAEO,IAAO,GAAA;AACZ,IAAA,OAAO,IAAK,CAAA,OAAA;AAAA;AACd,EAEO,KAAK,KAAgB,EAAA;AAC1B,IAAA,IAAA,CAAK,OAAU,GAAA,KAAA;AACf,IAAA,IAAA,CAAK,cAAiB,GAAA,KAAA;AACtB,IAAK,IAAA,CAAA,OAAA,CAAQ,IAAK,CAAA,IAAA,CAAK,cAAc,CAAA;AACrC,IAAK,IAAA,CAAA,YAAA,CAAa,IAAK,CAAA,IAAA,CAAK,cAAc,CAAA;AAC1C,IAAO,OAAA,IAAA;AAAA;AACT,EAEO,MAAM,KAA2B,EAAA;AACtC,IAAA,IAAI,KAAK,OAAS,EAAA;AAChB,MAAI,IAAA,QAAA,CAAS,KAAK,CAAG,EAAA;AACnB,QAAK,IAAA,CAAA,YAAA,CAAa,IAAI,KAAK,CAAA;AAAA;AAE7B,MAAO,OAAA,IAAA;AAAA;AAGT,IAAI,IAAA,OAAO,UAAU,UAAY,EAAA;AAC/B,MAAA,IAAA,CAAK,QAAQ,UAAW,CAAA,IAAA,CAAK,gBAAgB,IAAI,KAAA,CAAM,KAAK,CAAC,CAAA;AAAA,KACxD,MAAA;AACL,MAAA,IAAA,CAAK,OAAQ,CAAA,UAAA,CAAW,IAAK,CAAA,cAAA,EAAgB,KAAK,CAAA;AAAA;AAGpD,IAAO,OAAA,IAAA;AAAA;AACT,EAEO,MAAS,GAAA;AACd,IAAA,OAAO,CAAC,IAAK,CAAA,OAAA;AAAA;AAEjB;;;;;AC1CO,MAAM,SAAyC,CAAA;AAAA,EAS7C,WAAA,CAAY,gBAA6B,GAAA,EAAI,EAAA;AARpD,IAAQA,eAAA,CAAA,IAAA,EAAA,QAAA,CAAA;AAER,IAAQA,eAAA,CAAA,IAAA,EAAA,WAAA,CAAA;AAER,IAAQA,eAAA,CAAA,IAAA,EAAA,YAAA,sBAAiB,GAAI,EAAA,CAAA;AAE7B,IAAQA,eAAA,CAAA,IAAA,EAAA,eAAA,EAAgB,IAAI,SAAA,CAAU,IAAI,CAAA,CAAA;AAGxC,IAAA,IAAA,CAAK,MAAS,GAAA,IAAI,cAAwC,CAAA,EAAE,CAAA;AAC5D,IAAK,IAAA,CAAA,SAAA,GAAY,IAAI,GAAA,CAAI,gBAAgB,CAAA;AAAA;AAC3C,EAEO,WAAW,KAAqB,EAAA;AACrC,IAAM,MAAA,WAAA,GAAc,IAAI,WAAA,CAAY,KAAK,CAAA;AACzC,IAAA,IAAA,CAAK,aAAc,CAAA,GAAA;AAAA,MACjB,IAAI,SAAA,CAAU,WAAa,EAAA,CAAC,KAAmC,KAAA;AAC7D,QAAA,WAAA,CAAY,IAAK,CAAA,MAAA,CAAO,MAAO,CAAA,KAAK,CAAM,CAAA;AAAA,OAC3C;AAAA,KACH;AACA,IAAI,IAAA,IAAA,CAAK,aAAe,EAAA;AACtB,MAAA,IAAA,CAAK,MAAO,CAAA,KAAA;AAAA,QACV,IAAI,KAAM,CAAA,CAAC,GAAiC,KAAA;AAC1C,UAAA,IAAA,CAAK,aAAc,CAAA,IAAA,CAAK,MAAO,CAAA,MAAA,CAAO,GAAG,CAAC,CAAA;AAAA,SAC3C;AAAA,OACH;AAAA;AAEF,IAAO,OAAA,IAAA;AAAA;AACT,EAEO,MAAM,KAAqB,EAAA;AAChC,IAAM,MAAA,WAAA,GAAc,IAAI,WAAA,CAAY,KAAK,CAAA;AACzC,IAAI,IAAA,IAAA,CAAK,aAAe,EAAA;AACtB,MAAK,IAAA,CAAA,aAAA,CAAc,IAAI,WAAW,CAAA;AAClC,MAAA,IAAA,CAAK,MAAO,CAAA,KAAA;AAAA,QACV,IAAI,KAAM,CAAA,CAAC,GAAQ,KAAA;AACjB,UAAK,IAAA,CAAA,aAAA,CAAc,KAAK,GAAG,CAAA;AAAA,SAC5B;AAAA,OACH;AAAA,KACK,MAAA;AACL,MAAK,IAAA,CAAA,aAAA,CAAc,IAAI,WAAW,CAAA;AAAA;AAEpC,IAAO,OAAA,IAAA;AAAA;AACT,EAEO,SAAY,GAAiC,EAAA;AAClD,IAAK,IAAA,CAAA,SAAA,CAAU,IAAI,GAAG,CAAA;AACtB,IAAO,OAAA,IAAI,KAAM,CAAA,CAAC,KAAU,KAAA;AAC1B,MAAA,IAAA,CAAK,MAAO,CAAA,KAAA;AAAA,QACV,IAAI,KAAM,CAAA,CAAC,GAAiC,KAAA;AAC1C,UAAK,IAAA,CAAA,UAAA,CAAW,IAAI,GAAG,CAAA;AACvB,UAAA,MAAM,OAAU,GAAA;AAAA,YACd,GAAG,GAAA;AAAA,YACH,CAAC,GAAG,GAAG;AAAA,WACT;AACA,UAAK,IAAA,CAAA,MAAA,CAAO,KAAK,OAAO,CAAA;AACxB,UAAI,IAAA,IAAA,CAAK,aAAe,EAAA;AACtB,YAAK,IAAA,CAAA,aAAA,CAAc,KAAK,OAAO,CAAA;AAAA;AACjC,SACD;AAAA,OACH;AAAA,KACD,CAAA;AAAA;AACH,EAEQ,WAAc,GAAA;AACpB,IACE,OAAA,IAAA,CAAK,WAAW,IAAO,GAAA,CAAA,IAAK,KAAK,UAAW,CAAA,IAAA,KAAS,KAAK,SAAU,CAAA,IAAA;AAAA;AAG1E;;AC5DgB,SAAA,KAAA,CAAS,QAAuB,KAAqB,EAAA;AACnE,EAAI,IAAA,MAAA,KAAW,MAAa,IAAA,MAAA,KAAW,IAAM,EAAA;AAC3C,IAAM,MAAA,IAAI,MAAM,qCAAqC,CAAA;AAAA;AAEvD,EAAI,IAAA,KAAA,KAAU,MAAa,IAAA,MAAA,KAAW,IAAM,EAAA;AAC1C,IAAM,MAAA,IAAI,MAAM,oCAAoC,CAAA;AAAA;AAEtD,EAAI,IAAA,OAAO,WAAW,UAAY,EAAA;AAChC,IAAA,MAAA,CAAO,KAAK,CAAA;AAAA,GACd,MAAA,IACE,OAAO,MAAW,KAAA,QAAA,IAClB,WAAW,MACX,IAAA,OAAO,MAAO,CAAA,KAAA,KAAU,UACxB,EAAA;AACA,IAAA,MAAA,CAAO,MAAM,KAAK,CAAA;AAAA,GACb,MAAA;AACL,IAAA,IAAA,CAAK,QAAa,KAAK,CAAA;AAAA;AAGzB,EAAO,OAAA,MAAA;AACT;AAKO,SAAS,SAAS,QAAuC,EAAA;AAC9D,EAAA,IAAI,aAAa,MAAW,EAAA;AAC1B,IAAM,MAAA,IAAI,MAAM,0CAA0C,CAAA;AAAA;AAE5D,EAAA,OACE,OAAO,QAAA,KAAa,UAAc,IAAA,OAAO,UAAU,KAAU,KAAA,UAAA;AAEjE;AAKO,MAAM,MAA+C,CAAA;AAAA,EACnD,YAAoB,MAAuB,EAAA;AAAvB,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AACzB,IAAA,IAAI,WAAW,MAAW,EAAA;AACxB,MAAM,MAAA,IAAI,MAAM,oDAAoD,CAAA;AAAA;AACtE;AACF,EAEO,MAAM,KAAmC,EAAA;AAC9C,IAAM,KAAA,CAAA,IAAA,CAAK,QAAQ,KAAK,CAAA;AACxB,IAAO,OAAA,KAAA;AAAA;AAEX;AAKa,MAAA,QAAA,GAAW,CAAIC,MAAAA,KAAa,IAAI,MAAA,CAAU,CAAC,CAAM,KAAA,IAAA,CAAKA,MAAO,EAAA,CAAC,CAAC;;ACnErE,MAAM,cAAwD,CAAA;AAAA,EAC5D,WAAA,CACG,YACA,YACR,EAAA;AAFQ,IAAA,IAAA,CAAA,UAAA,GAAA,UAAA;AACA,IAAA,IAAA,CAAA,YAAA,GAAA,YAAA;AAER,IAAA,IAAI,eAAe,MAAW,EAAA;AAC5B,MAAM,MAAA,IAAI,MAAM,kDAAkD,CAAA;AAAA;AAEpE,IAAA,IAAI,iBAAiB,MAAW,EAAA;AAC9B,MAAM,MAAA,IAAI,MAAM,oDAAoD,CAAA;AAAA;AACtE;AACF,EAEO,MAAM,KAAwB,EAAA;AACnC,IAAM,MAAA,GAAA,GAAM,IAAI,SAAgB,EAAA;AAChC,IAAM,MAAA,cAAA,GAAiB,IAAI,cAAe,EAAA;AAC1C,IAAA,MAAM,YAAe,GAAA,IAAA,CAAK,YAAa,CAAA,GAAA,CAAI,cAAc,CAAA;AAEzD,IAAA,KAAA;AAAA,MACE,IAAK,CAAA,UAAA;AAAA,MACL,IAAI,SAAA,CAAU,KAAO,EAAA,CAAC,QAAa,KAAA;AACjC,QAAA,IAAI,KAAQ,GAAA,CAAA;AAEZ,QAAA,MAAM,iBAAiB,MAAM;AAC3B,UAAA,IAAI,QAAS,CAAA,KAAA,GAAQ,CAAC,CAAA,KAAM,MAAW,EAAA;AACrC,YAAA,KAAA,GAAQ,KAAQ,GAAA,CAAA;AAChB,YAAO,MAAA,EAAA;AAAA,WACF,MAAA;AACL,YAAA,GAAA,CAAI,WAAW,KAAK,CAAA;AAAA;AACtB,SACF;AAEA,QAAA,SAAS,MAAS,GAAA;AAChB,UAAA,cAAA,CAAe,KAAK,IAAI,CAAA;AACxB,UAAM,MAAA,SAAA,GAAY,SAAS,KAAK,CAAA;AAChC,UAAI,IAAA,QAAA,CAAS,SAAS,CAAG,EAAA;AACvB,YAAA,KAAA;AAAA,cACE,SAAA;AAAA,cACA,IAAI,UAAW,CAAA,CAAC,YAAiB,KAAA;AAC/B,gBAAA,cAAA,CAAe,KAAK,YAAY,CAAA;AAChC,gBAAA,KAAA,CAAM,cAAc,GAAI,CAAA,QAAA,CAAS,KAAM,CAAA,QAAA,EAAU,CAAC,CAAA;AAClD,gBAAe,cAAA,EAAA;AAAA,eAChB;AAAA,aACH;AAAA,WACK,MAAA;AACL,YAAA,cAAA,CAAe,KAAK,SAAS,CAAA;AAC7B,YAAA,KAAA,CAAM,cAAc,GAAI,CAAA,QAAA,CAAS,KAAM,CAAA,QAAA,EAAU,CAAC,CAAA;AAClD,YAAe,cAAA,EAAA;AAAA;AACjB;AAGF,QAAI,IAAA,QAAA,CAAS,KAAK,CAAA,KAAM,MAAW,EAAA;AACjC,UAAO,MAAA,EAAA;AAAA,SACF,MAAA;AACL,UAAK,IAAA,CAAA,IAAI,KAAK,CAAA;AAAA;AAChB,OACD;AAAA,KACH;AACA,IAAO,OAAA,IAAA;AAAA;AAEX;;ACxDO,MAAM,SAAmD,CAAA;AAAA,EACvD,WAAA,CACG,YACA,YACR,EAAA;AAFQ,IAAA,IAAA,CAAA,UAAA,GAAA,UAAA;AACA,IAAA,IAAA,CAAA,YAAA,GAAA,YAAA;AAER,IAAA,IAAI,eAAe,MAAW,EAAA;AAC5B,MAAM,MAAA,IAAI,MAAM,6CAA6C,CAAA;AAAA;AAE/D,IAAA,IAAI,iBAAiB,MAAW,EAAA;AAC9B,MAAM,MAAA,IAAI,MAAM,+CAA+C,CAAA;AAAA;AACjE;AACF,EAEO,MAAM,KAAwB,EAAA;AACnC,IAAM,MAAA,GAAA,GAAM,IAAI,SAAU,EAAA;AAC1B,IAAA,KAAA;AAAA,MACE,IAAK,CAAA,UAAA;AAAA,MACL,IAAI,SAAA,CAAqB,KAAO,EAAA,CAAC,QAAa,KAAA;AAC5C,QAAS,QAAA,CAAA,OAAA,CAAQ,CAAC,GAAA,EAAK,KAAU,KAAA;AAC/B,UAAM,MAAA,WAAA,GAAc,SAAS,GAAG,CAAA,GAC5B,MACA,IAAI,MAAA,CAAO,CAAC,UAAe,KAAA;AACzB,YAAA,IAAA,CAAK,KAAK,UAAU,CAAA;AAAA,WACrB,CAAA;AACL,UAAA,MAAM,YAAe,GAAA,IAAA,CAAK,YAAa,CAAA,GAAA,CAAI,WAAW,CAAA;AACtD,UAAA,KAAA,CAAM,cAAc,GAAI,CAAA,QAAA,CAAS,KAAM,CAAA,QAAA,EAAU,CAAC,CAAA;AAAA,SACnD,CAAA;AAAA,OACF;AAAA,KACH;AACA,IAAA,GAAA,CAAI,WAAsB,KAAK,CAAA;AAC/B,IAAO,OAAA,IAAA;AAAA;AAEX;;ACxCO,MAAM,UAA6C,CAAA;AAAA,EACjD,YAAoB,OAA0B,EAAA;AAA1B,IAAA,IAAA,CAAA,OAAA,GAAA,OAAA;AACzB,IAAA,IAAI,YAAY,MAAW,EAAA;AACzB,MAAM,MAAA,IAAI,MAAM,2CAA2C,CAAA;AAAA;AAC7D;AACF,EAEO,MAAM,KAA2B,EAAA;AACtC,IAAA,IAAI,mBAAyC,GAAA,IAAA;AAC7C,IAAK,IAAA,CAAA,OAAA,CAAQ,OAAQ,CAAA,CAAC,MAAW,KAAA;AAC/B,MAAA,KAAA;AAAA,QACE,MAAA;AAAA,QACA,IAAI,SAAA,CAAqB,KAAO,EAAA,CAACA,MAAU,KAAA;AACzC,UAAI,IAAA,CAAC,mBAAuB,IAAA,mBAAA,KAAwB,MAAQ,EAAA;AAC1D,YAAA,IAAA,CAAKA,QAAY,KAAK,CAAA;AACtB,YAAsB,mBAAA,GAAA,MAAA;AAAA;AACxB,SACD;AAAA,OACH;AAAA,KACD,CAAA;AACD,IAAO,OAAA,IAAA;AAAA;AAEX;;ACrBO,MAAM,aAA4D,CAAA;AAAA,EAChE,WAAA,CACG,WACA,UACR,EAAA;AAFQ,IAAA,IAAA,CAAA,SAAA,GAAA,SAAA;AACA,IAAA,IAAA,CAAA,UAAA,GAAA,UAAA;AAER,IAAA,IAAI,cAAc,MAAW,EAAA;AAC3B,MAAM,MAAA,IAAI,MAAM,gDAAgD,CAAA;AAAA;AAElE,IAAA,IAAI,eAAe,MAAW,EAAA;AAC5B,MAAM,MAAA,IAAI,MAAM,iDAAiD,CAAA;AAAA;AACnE;AACF,EAEO,MAAM,KAAqB,EAAA;AAChC,IAAM,KAAA,CAAA,IAAA,CAAK,YAAY,KAAK,CAAA;AAC5B,IAAO,OAAA,IAAA;AAAA;AACT,EAEO,KAAKA,MAAU,EAAA;AACpB,IAAKA,IAAAA,CAAAA,MAAAA,EAAO,KAAK,SAAS,CAAA;AAC1B,IAAO,OAAA,IAAA;AAAA;AACT,EAEO,IAAsB,GAAA;AAC3B,IAAA,MAAM,MAAM,0BAA0B,CAAA;AAAA;AAE1C;;AC3BO,MAAM,aAAmD,CAAA;AAAA,EACvD,WAAA,CACG,YACA,OACR,EAAA;AAFQ,IAAA,IAAA,CAAA,UAAA,GAAA,UAAA;AACA,IAAA,IAAA,CAAA,OAAA,GAAA,OAAA;AAAA;AACP,EAEI,MAAM,CAAiB,EAAA;AAC5B,IAAA,KAAA;AAAA,MACE,IAAK,CAAA,UAAA;AAAA,MACL,IAAI,SAAA,CAAU,CAAG,EAAA,CAAC,CAAM,KAAA;AACtB,QAAA,IAAA,CAAK,IAAK,CAAA,OAAA,CAAQ,CAAC,CAAA,EAAG,CAAC,CAAA;AAAA,OACxB;AAAA,KACH;AACA,IAAO,OAAA,IAAA;AAAA;AAEX;;;;;ACZO,MAAM,qBAAwD,CAAA;AAAA,EAG5D,WAAA,CACL,QACA,OACA,EAAA;AALF,IAAOD,eAAA,CAAA,IAAA,EAAA,OAAA,CAAA;AAML,IAAK,IAAA,CAAA,KAAA,GAAQ,OAAQ,CAAA,CAAC,CAAM,KAAA;AAC1B,MAAA,KAAA,CAAM,QAAQ,CAAC,CAAA;AAAA,KAChB,CAAA;AAAA;AAEL;;ACdO,MAAM,cAAiD,CAAA;AAAA,EACrD,WAAA,CACG,YACA,SACR,EAAA;AAFQ,IAAA,IAAA,CAAA,UAAA,GAAA,UAAA;AACA,IAAA,IAAA,CAAA,SAAA,GAAA,SAAA;AAAA;AACP,EAEI,MAAM,CAAiB,EAAA;AAC5B,IAAA,KAAA;AAAA,MACE,IAAK,CAAA,UAAA;AAAA,MACL,IAAI,SAAA,CAAU,CAAG,EAAA,CAAC,CAAM,KAAA;AACtB,QAAA,IAAI,IAAK,CAAA,SAAA,CAAU,CAAC,CAAA,KAAM,IAAM,EAAA;AAC9B,UAAA,IAAA,CAAK,GAAG,CAAC,CAAA;AAAA;AACX,OACD;AAAA,KACH;AACA,IAAO,OAAA,IAAA;AAAA;AAEX;;;;;AChBO,MAAM,UAA+C,CAAA;AAAA,EAGnD,YAAY,YAAkB,EAAA;AAFrC,IAAQA,eAAA,CAAA,IAAA,EAAA,QAAA,CAAA;AAGN,IAAK,IAAA,CAAA,MAAA,GAAS,IAAI,cAAA,CAAe,YAAY,CAAA;AAAA;AAC/C,EAEO,MAAM,KAAqB,EAAA;AAChC,IAAM,KAAA,CAAA,IAAA,CAAK,QAAQ,KAAK,CAAA;AACxB,IAAO,OAAA,IAAA;AAAA;AACT,EAEO,KAAKC,MAAgB,EAAA;AAC1B,IAAA,IAAI,CAAC,IAAA,CAAK,MAAO,CAAA,MAAA,EAAU,EAAA;AACzB,MAAK,IAAA,CAAA,MAAA,CAAO,KAAKA,MAAK,CAAA;AAAA;AAExB,IAAO,OAAA,IAAA;AAAA;AACT,EAEO,IAAsB,GAAA;AAC3B,IAAO,OAAA,IAAA,CAAK,OAAO,IAAK,EAAA;AAAA;AAE5B;;;;;ACtBO,MAAM,UAA6C,CAAA;AAAA,EAGjD,YAAoB,UAA2B,EAAA;AAA3B,IAAA,IAAA,CAAA,UAAA,GAAA,UAAA;AAF3B,IAAQ,aAAA,CAAA,IAAA,EAAA,WAAA,EAAY,IAAI,SAAU,EAAA,CAAA;AAGhC,IAAA,KAAA,CAAM,UAAY,EAAA,IAAI,MAAO,CAAA,IAAA,CAAK,SAAS,CAAC,CAAA;AAAA;AAC9C,EAEO,MAAM,KAAqB,EAAA;AAChC,IAAM,KAAA,CAAA,IAAA,CAAK,YAAY,KAAK,CAAA;AAC5B,IAAO,OAAA,IAAA;AAAA;AACT,EAEO,SAAY,GAAA;AACjB,IAAI,IAAA;AACF,MAAO,OAAA,IAAA,CAAK,UAAU,KAAM,EAAA;AAAA,KACtB,CAAA,MAAA;AACN,MAAM,MAAA,IAAI,MAAM,wBAAwB,CAAA;AAAA;AAC1C;AAEJ;;ACjBO,MAAM,YAA0C,CAAA;AAAA,EAC9C,WACG,CAAA,aAAA,EACA,OAAmC,GAAA,EAC3C,EAAA;AAFQ,IAAA,IAAA,CAAA,aAAA,GAAA,aAAA;AACA,IAAA,IAAA,CAAA,OAAA,GAAA,OAAA;AAER,IAAA,IAAI,kBAAkB,MAAW,EAAA;AAC/B,MAAM,MAAA,IAAI,MAAM,mDAAmD,CAAA;AAAA;AACrE;AACF,EAEO,OACF,IACuB,EAAA;AAC1B,IAAA,OAAO,IAAK,IAAK,CAAA,aAAA;AAAA,MACf,GAAG,IAAA;AAAA,MACH,IAAK,CAAA;AAAA,KACP;AAAA;AAEJ;;ACrBO,MAAM,OAAqC,CAAA;AAAA,EACzC,YAAoB,UAAmC,EAAA;AAAnC,IAAA,IAAA,CAAA,UAAA,GAAA,UAAA;AACzB,IAAA,IAAI,eAAe,MAAW,EAAA;AAC5B,MAAM,MAAA,IAAI,MAAM,2CAA2C,CAAA;AAAA;AAC7D;AACF,EAEO,OACF,IACuB,EAAA;AAC1B,IAAO,OAAA,IAAA,CAAK,UAAW,CAAA,GAAG,IAAI,CAAA;AAAA;AAElC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"silentium.cjs","sources":["../src/Guest/Guest.ts","../src/Guest/GuestCast.ts","../src/Patron/PatronPool.ts","../src/Guest/GuestPool.ts","../src/Guest/GuestSync.ts","../src/Guest/GuestObject.ts","../src/Guest/GuestDisposable.ts","../src/Guest/GuestApplied.ts","../src/Guest/GuestExecutorApplied.ts","../src/Patron/Patron.ts","../src/Patron/PatronOnce.ts","../src/Patron/PatronApplied.ts","../src/Patron/PatronExecutorApplied.ts","../src/Source/Source.ts","../src/Source/SourceChangeable.ts","../src/Source/SourceAll.ts","../src/Source/SourceSequence.ts","../src/Source/SourceMap.ts","../src/Source/SourceRace.ts","../src/Source/SourceDynamic.ts","../src/Source/SourceApplied.ts","../src/Source/SourceExecutorApplied.ts","../src/Source/SourceFiltered.ts","../src/Source/SourceOnce.ts","../src/Source/SourceSync.ts","../src/Private/PrivateClass.ts","../src/Private/Private.ts"],"sourcesContent":["type GuestIntroduction = \"guest\" | \"patron\";\n\nexport type GuestExecutorType<T = any, This = void> = (value: T) => This;\n\nexport interface GuestObjectType<T = any> {\n give(value: T): this;\n introduction?(): GuestIntroduction;\n}\n\nexport type GuestType<T = any> = GuestExecutorType<T> | GuestObjectType<T>;\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/utils/give\n */\nexport function give<T>(data: T, guest: GuestType<T>) {\n if (data === undefined) {\n throw new Error(\"give didnt receive data argument\");\n }\n if (guest === undefined) {\n throw new Error(\"give didnt receive guest argument\");\n }\n if (typeof guest === \"function\") {\n guest(data);\n } else {\n guest.give(data);\n }\n\n return guest;\n}\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/utils/is-guest\n */\nexport function isGuest(mbGuest: any): mbGuest is GuestType {\n if (mbGuest === undefined) {\n throw new Error(\"isGuest didnt receive mbGuest argument\");\n }\n return typeof mbGuest === \"function\" || typeof mbGuest?.give === \"function\";\n}\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/guest\n */\nexport class Guest<T> implements GuestObjectType<T> {\n public constructor(private receiver: GuestExecutorType<T>) {\n if (!receiver) {\n throw new Error(\"reseiver function was not passed to Guest constructor\");\n }\n }\n\n public give(value: T) {\n this.receiver(value);\n return this;\n }\n}\n","import { give, GuestType } from \"./Guest\";\nimport { GuestDisposableType, MaybeDisposableType } from \"./GuestDisposable\";\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/guest/guest-cast\n */\nexport class GuestCast<T> implements GuestDisposableType<T> {\n public constructor(\n private sourceGuest: GuestType<any>,\n private targetGuest: GuestType<T>,\n ) {\n if (sourceGuest === undefined) {\n throw new Error(\"GuestCast didnt receive sourceGuest argument\");\n }\n if (targetGuest === undefined) {\n throw new Error(\"GuestCast didnt receive targetGuest argument\");\n }\n }\n\n public introduction() {\n if (typeof this.sourceGuest === \"function\") {\n return \"guest\";\n }\n if (!this.sourceGuest.introduction) {\n return \"guest\";\n }\n return this.sourceGuest.introduction();\n }\n\n public give(value: T): this {\n give(value, this.targetGuest);\n return this;\n }\n\n public disposed(value: T | null): boolean {\n const maybeDisposable = this.sourceGuest as MaybeDisposableType;\n return maybeDisposable.disposed ? maybeDisposable.disposed(value) : false;\n }\n}\n","import { give, GuestObjectType, GuestType } from \"../Guest/Guest\";\nimport { GuestDisposableType } from \"../Guest/GuestDisposable\";\n\nconst poolSets = new Map<PoolType, Set<GuestObjectType>>();\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/utils/patron-pools\n */\nexport const patronPools = (patron: GuestObjectType) => {\n const pools: PoolType[] = [];\n poolSets.forEach((pool, poolInstance) => {\n if (pool.has(patron)) {\n pools.push(poolInstance);\n }\n });\n return pools;\n};\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/utils/remove-patron-from-pools\n */\nexport const removePatronFromPools = (patron: GuestObjectType) => {\n if (patron === undefined) {\n throw new Error(\"removePatronFromPools didnt receive patron argument\");\n }\n poolSets.forEach((pool) => {\n pool.delete(patron);\n });\n};\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/utils/is-patron-in-pools\n */\nexport const isPatronInPools = (patron: GuestObjectType) => {\n if (patron === undefined) {\n throw new Error(\"isPatronInPools didnt receive patron argument\");\n }\n let inPool = false;\n poolSets.forEach((pool) => {\n if (!inPool) {\n inPool = pool.has(patron);\n }\n });\n return inPool;\n};\n\nexport interface PoolType<T = any> extends GuestObjectType<T> {\n add(guest: GuestObjectType<T>): this;\n distribute(receiving: T, possiblePatron: GuestObjectType<T>): this;\n remove(patron: GuestObjectType<T>): this;\n size(): number;\n}\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/patron/patron-pool\n */\nexport class PatronPool<T> implements PoolType<T> {\n private patrons: Set<GuestObjectType<T>>;\n\n public give: (value: T) => this;\n\n public constructor(private initiator: unknown) {\n this.patrons = new Set<GuestObjectType<T>>();\n poolSets.set(this, this.patrons);\n const doReceive = (value: T) => {\n this.patrons.forEach((target) => {\n this.sendValueToGuest(value, target);\n });\n };\n this.give = (value: T) => {\n doReceive(value);\n return this;\n };\n }\n\n public size(): number {\n return this.patrons.size;\n }\n\n public add(shouldBePatron: GuestType<T>) {\n if (!shouldBePatron) {\n throw new Error(\"PatronPool add method received nothing!\");\n }\n if (\n typeof shouldBePatron !== \"function\" &&\n shouldBePatron.introduction &&\n shouldBePatron.introduction() === \"patron\"\n ) {\n this.patrons.add(shouldBePatron);\n }\n return this;\n }\n\n public remove(patron: GuestObjectType<T>) {\n this.patrons.delete(patron);\n return this;\n }\n\n public distribute(receiving: T, possiblePatron: GuestType<T>): this {\n this.add(possiblePatron);\n this.sendValueToGuest(receiving, possiblePatron);\n return this;\n }\n\n private sendValueToGuest(value: T, guest: GuestType<T>) {\n const isDisposed = this.guestDisposed(value, guest);\n\n if (!isDisposed) {\n give(value, guest);\n }\n }\n\n private guestDisposed(value: T, guest: GuestType<T>) {\n if ((guest as GuestDisposableType).disposed?.(value)) {\n this.remove(guest as GuestObjectType);\n return true;\n }\n\n return false;\n }\n}\n","import { PatronPool, PoolType } from \"../Patron/PatronPool\";\nimport { give, GuestObjectType, GuestType } from \"./Guest\";\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/guest/guest-pool\n */\nexport class GuestPool<T> implements GuestObjectType<T>, PoolType<T> {\n private guests = new Set<GuestType<T>>();\n\n private patronPool: PatronPool<T>;\n\n public constructor(initiator: unknown) {\n this.patronPool = new PatronPool(initiator);\n }\n\n public give(value: T): this {\n this.deliverToGuests(value);\n this.patronPool.give(value);\n return this;\n }\n\n public add(guest: GuestType<T>): this {\n if (\n typeof guest === \"function\" ||\n !guest.introduction ||\n guest.introduction() === \"guest\"\n ) {\n this.guests.add(guest);\n }\n this.patronPool.add(guest);\n return this;\n }\n\n public remove(patron: GuestObjectType<T>): this {\n this.guests.delete(patron);\n this.patronPool.remove(patron);\n return this;\n }\n\n public distribute(receiving: T, possiblePatron: GuestObjectType<T>): this {\n this.add(possiblePatron);\n this.give(receiving);\n return this;\n }\n\n public size() {\n return this.patronPool.size() + this.guests.size;\n }\n\n private deliverToGuests(value: T) {\n this.guests.forEach((target) => {\n give(value, target);\n });\n this.guests.clear();\n }\n}\n","import { GuestObjectType } from \"./Guest\";\n\nexport interface GuestValueType<T = any> extends GuestObjectType<T> {\n value(): T;\n}\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/guest/guest-sync\n */\nexport class GuestSync<T> implements GuestValueType<T> {\n public constructor(private theValue?: T) {}\n\n public give(value: T): this {\n this.theValue = value;\n return this;\n }\n\n public value() {\n if (this.theValue === undefined) {\n throw new Error(\"no value in GuestSync!\");\n }\n return this.theValue;\n }\n}\n","import { Guest, GuestType } from \"./Guest\";\nimport { GuestDisposableType, MaybeDisposableType } from \"./GuestDisposable\";\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/guest/guest-object\n */\nexport class GuestObject<T> implements GuestDisposableType<T> {\n public constructor(private baseGuest: GuestType<T>) {\n if (baseGuest === undefined) {\n throw new Error(\"GuestObject didnt receive baseGuest argument\");\n }\n }\n\n public give(value: T): this {\n let guest = this.baseGuest;\n if (typeof guest === \"function\") {\n guest = new Guest(guest);\n }\n guest.give(value);\n return this;\n }\n\n public introduction() {\n if (typeof this.baseGuest === \"function\" || !this.baseGuest.introduction) {\n return \"guest\";\n }\n return this.baseGuest.introduction();\n }\n\n public disposed(value: T | null): boolean {\n const maybeDisposable = this.baseGuest as MaybeDisposableType;\n return maybeDisposable.disposed ? maybeDisposable.disposed(value) : false;\n }\n}\n","import { give, GuestObjectType, GuestType } from \"./Guest\";\n\nexport interface GuestDisposableType<T = any> extends GuestObjectType<T> {\n disposed(value: T | null): boolean;\n}\n\nexport type MaybeDisposableType<T = any> = Partial<GuestDisposableType<T>>;\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/guest/guest-disposable\n */\nexport class GuestDisposable<T> implements GuestDisposableType<T> {\n public constructor(\n private guest: GuestType,\n private disposeCheck: (value: T | null) => boolean,\n ) {\n if (guest === undefined) {\n throw new Error(\"GuestDisposable didnt receive guest argument\");\n }\n if (disposeCheck === undefined) {\n throw new Error(\"GuestDisposable didnt receive disposeCheck argument\");\n }\n }\n\n public disposed(value: T | null): boolean {\n return this.disposeCheck(value);\n }\n\n public give(value: T): this {\n give(value, this.guest);\n return this;\n }\n}\n","import { give, GuestObjectType, GuestType } from \"../Guest/Guest\";\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/guest/guest-applied\n */\nexport class GuestApplied<T, R> implements GuestObjectType<T> {\n public constructor(\n private baseGuest: GuestType<R>,\n private applier: (value: T) => R,\n ) {}\n\n public give(value: T): this {\n give(this.applier(value), this.baseGuest);\n return this;\n }\n}\n","import {\n give,\n GuestExecutorType,\n GuestObjectType,\n GuestType,\n} from \"../Guest/Guest\";\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/guest/guest-executor-applied\n */\nexport class GuestExecutorApplied<T> implements GuestObjectType<T> {\n public give: GuestExecutorType<T, this>;\n\n public constructor(\n baseGuest: GuestType<T>,\n applier: (executor: GuestExecutorType) => GuestExecutorType,\n ) {\n this.give = applier((v) => give(v, baseGuest)) as GuestExecutorType<\n T,\n this\n >;\n }\n}\n","import { give, GuestType } from \"../Guest/Guest\";\nimport { GuestDisposableType } from \"../Guest/GuestDisposable\";\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/patron\n */\nexport class Patron<T> implements GuestDisposableType<T> {\n public constructor(private willBePatron: GuestType<T>) {\n if (willBePatron === undefined) {\n throw new Error(\"Patron didnt receive willBePatron argument\");\n }\n }\n\n public introduction() {\n return \"patron\" as const;\n }\n\n public give(value: T): this {\n give(value, this.willBePatron);\n return this;\n }\n\n public disposed(value: T | null): boolean {\n const maybeDisposable = this.willBePatron as GuestDisposableType;\n return maybeDisposable?.disposed?.(value) || false;\n }\n}\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/utils/is-patron\n */\nexport const isPatron = (guest: GuestType): guest is Patron<unknown> =>\n typeof guest === \"object\" &&\n guest !== null &&\n guest?.introduction?.() === \"patron\";\n","import { give, GuestType } from \"../Guest/Guest\";\nimport {\n GuestDisposableType,\n MaybeDisposableType,\n} from \"../Guest/GuestDisposable\";\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/patron/patron-once\n */\nexport class PatronOnce<T> implements GuestDisposableType<T> {\n private received = false;\n\n public constructor(private baseGuest: GuestType<T>) {\n if (baseGuest === undefined) {\n throw new Error(\"PatronOnce didnt receive baseGuest argument\");\n }\n }\n\n public introduction() {\n return \"patron\" as const;\n }\n\n public give(value: T): this {\n if (!this.received) {\n this.received = true;\n give(value, this.baseGuest);\n }\n return this;\n }\n\n public disposed(value: T | null): boolean {\n if (this.received) {\n return true;\n }\n const maybeDisposable = this.baseGuest as MaybeDisposableType;\n return maybeDisposable.disposed ? maybeDisposable.disposed(value) : false;\n }\n}\n","import { GuestObjectType, GuestType } from \"../Guest/Guest\";\nimport { GuestApplied } from \"../Guest/GuestApplied\";\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/patron/patron-applied\n */\nexport class PatronApplied<T, R> implements GuestObjectType<T> {\n private guestApplied: GuestApplied<T, R>;\n\n public constructor(baseGuest: GuestType<R>, applier: (value: T) => R) {\n this.guestApplied = new GuestApplied(baseGuest, applier);\n }\n\n public give(value: T): this {\n this.guestApplied.give(value);\n return this;\n }\n\n public introduction(): \"guest\" | \"patron\" {\n return \"patron\";\n }\n}\n","import { GuestExecutorType, GuestObjectType, GuestType } from \"../Guest/Guest\";\nimport { GuestExecutorApplied } from \"../Guest/GuestExecutorApplied\";\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/patron/patron-executor-applied\n */\nexport class PatronExecutorApplied<T> implements GuestObjectType<T> {\n private guestApplied: GuestExecutorApplied<T>;\n\n public constructor(\n baseGuest: GuestType<T>,\n applier: (executor: GuestExecutorType) => GuestExecutorType,\n ) {\n this.guestApplied = new GuestExecutorApplied(baseGuest, applier);\n }\n\n public give(value: T): this {\n this.guestApplied.give(value);\n return this;\n }\n\n public introduction(): \"guest\" | \"patron\" {\n return \"patron\";\n }\n}\n","import { give, GuestType } from \"../Guest/Guest\";\n\nexport type SourceExecutorType<T> = (guest: GuestType<T>) => unknown;\n\nexport interface SourceObjectType<T> {\n value: SourceExecutorType<T>;\n}\n\nexport type SourceDataType =\n | string\n | number\n | boolean\n | Date\n | object\n | Array<unknown>\n | symbol;\n\nexport type SourceType<T = any> =\n | SourceExecutorType<T>\n | SourceObjectType<T>\n | SourceDataType;\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/utils/value\n */\nexport function value<T>(source: SourceType<T>, guest: GuestType<T>) {\n if (source === undefined || source === null) {\n throw new Error(\"value didnt receive source argument\");\n }\n if (guest === undefined || source === null) {\n throw new Error(\"value didnt receive guest argument\");\n }\n if (typeof source === \"function\") {\n source(guest);\n } else if (\n typeof source === \"object\" &&\n \"value\" in source &&\n typeof source.value === \"function\"\n ) {\n source.value(guest);\n } else {\n give(source as T, guest);\n }\n\n return source;\n}\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/utils/is-source\n */\nexport function isSource(mbSource: any): mbSource is SourceType {\n if (mbSource === undefined) {\n throw new Error(\"isSource didnt receive mbSource argument\");\n }\n return (\n typeof mbSource === \"function\" || typeof mbSource?.value === \"function\"\n );\n}\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/source\n */\nexport class Source<T = any> implements SourceObjectType<T> {\n public constructor(private source: SourceType<T>) {\n if (source === undefined) {\n throw new Error(\"Source constructor didnt receive executor function\");\n }\n }\n\n public value(guest: GuestType<T>): GuestType<T> {\n value(this.source, guest);\n return guest;\n }\n}\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/utils/source-of\n */\nexport const sourceOf = <T>(value: T) => new Source<T>((g) => give(value, g));\n","import { Guest, GuestObjectType, GuestType } from \"../Guest/Guest\";\nimport { isSource, SourceObjectType, SourceType, value } from \"./Source\";\nimport { PatronPool } from \"../Patron/PatronPool\";\nimport { isPatron } from \"../Patron/Patron\";\nimport { PatronOnce } from \"../Patron/PatronOnce\";\n\nexport interface PoolAwareType<T = any> {\n pool(): PatronPool<T>;\n}\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/source/source-changeable\n */\nexport type SourceChangeableType<T = any> = SourceObjectType<T> &\n GuestObjectType<T> &\n PoolAwareType<T>;\n\nexport class SourceChangeable<T> implements SourceChangeableType<T> {\n private thePool = new PatronPool(this);\n private theEmptyPool = new PatronPool(this);\n private isEmpty: boolean;\n private sourceDocument?: T;\n\n public constructor(sourceDocument?: T | SourceType<T>) {\n this.isEmpty = sourceDocument === undefined;\n\n if (sourceDocument !== undefined && isSource(sourceDocument)) {\n value(\n sourceDocument,\n new PatronOnce((unwrappedSourceDocument) => {\n this.isEmpty = unwrappedSourceDocument === undefined;\n this.sourceDocument = unwrappedSourceDocument;\n }),\n );\n } else {\n this.isEmpty = sourceDocument === undefined;\n this.sourceDocument = sourceDocument;\n }\n }\n\n public pool() {\n return this.thePool;\n }\n\n public give(value: T): this {\n this.isEmpty = false;\n this.sourceDocument = value;\n this.thePool.give(this.sourceDocument);\n this.theEmptyPool.give(this.sourceDocument);\n return this;\n }\n\n public value(guest: GuestType<T>): this {\n if (this.isEmpty) {\n if (isPatron(guest)) {\n this.theEmptyPool.add(guest);\n }\n return this;\n }\n\n if (typeof guest === \"function\") {\n this.thePool.distribute(this.sourceDocument, new Guest(guest));\n } else {\n this.thePool.distribute(this.sourceDocument, guest);\n }\n\n return this;\n }\n\n public filled() {\n return !this.isEmpty;\n }\n}\n","import { SourceObjectType } from \"./Source\";\nimport { SourceChangeable } from \"./SourceChangeable\";\nimport { Guest, GuestObjectType, GuestType } from \"../Guest/Guest\";\nimport { GuestCast } from \"../Guest/GuestCast\";\nimport { GuestObject } from \"../Guest/GuestObject\";\nimport { GuestPool } from \"../Guest/GuestPool\";\n\nexport interface SourceAllType<T = any> extends SourceObjectType<T> {\n valueArray(guest: GuestObjectType<T>): this;\n guestKey<R>(key: string): GuestObjectType<R>;\n}\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/source/source-all\n */\nexport class SourceAll<T> implements SourceAllType<T> {\n private theAll: SourceChangeable<Record<string, unknown>>;\n\n private keysKnown: Set<string>;\n\n private keysFilled = new Set();\n\n private filledAllPool = new GuestPool(this);\n\n public constructor(initialKnownKeys: string[] = []) {\n this.theAll = new SourceChangeable<Record<string, unknown>>({});\n this.keysKnown = new Set(initialKnownKeys);\n }\n\n public valueArray(guest: GuestType<T>) {\n const guestObject = new GuestObject(guest);\n this.filledAllPool.add(\n new GuestCast(guestObject, (value: Record<string, unknown>) => {\n guestObject.give(Object.values(value) as T);\n }),\n );\n if (this.isAllFilled()) {\n this.theAll.value(\n new Guest((all: Record<string, unknown>) => {\n this.filledAllPool.give(Object.values(all));\n }),\n );\n }\n return this;\n }\n\n public value(guest: GuestType<T>) {\n const guestObject = new GuestObject(guest);\n if (this.isAllFilled()) {\n this.filledAllPool.add(guestObject);\n this.theAll.value(\n new Guest((all) => {\n this.filledAllPool.give(all);\n }),\n );\n } else {\n this.filledAllPool.add(guestObject);\n }\n return this;\n }\n\n public guestKey<R>(key: string): GuestObjectType<R> {\n this.keysKnown.add(key);\n return new Guest((value) => {\n this.theAll.value(\n new Guest((all: Record<string, unknown>) => {\n this.keysFilled.add(key);\n const lastAll = {\n ...all,\n [key]: value,\n };\n this.theAll.give(lastAll);\n if (this.isAllFilled()) {\n this.filledAllPool.give(lastAll);\n }\n }),\n );\n });\n }\n\n private isAllFilled() {\n return (\n this.keysFilled.size > 0 && this.keysFilled.size === this.keysKnown.size\n );\n }\n}\n","import { SourceChangeable } from \"./SourceChangeable\";\nimport { give, GuestType } from \"../Guest/Guest\";\nimport { GuestCast } from \"../Guest/GuestCast\";\nimport { PatronOnce } from \"../Patron/PatronOnce\";\nimport { PrivateType } from \"../Private/Private\";\nimport { isSource, SourceObjectType, SourceType, value } from \"./Source\";\nimport { SourceAll } from \"./SourceAll\";\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/source/source-sequence\n */\nexport class SourceSequence<T, TG> implements SourceObjectType<TG[]> {\n public constructor(\n private baseSource: SourceType<T[]>,\n private targetSource: PrivateType<SourceType<TG>>,\n ) {\n if (baseSource === undefined) {\n throw new Error(\"SourceSequence didnt receive baseSource argument\");\n }\n if (targetSource === undefined) {\n throw new Error(\"SourceSequence didnt receive targetSource argument\");\n }\n }\n\n public value(guest: GuestType<TG[]>) {\n const all = new SourceAll<TG[]>();\n const sequenceSource = new SourceChangeable();\n const targetSource = this.targetSource.get(sequenceSource);\n\n value(\n this.baseSource,\n new GuestCast(guest, (theValue) => {\n let index = 0;\n\n const nextItemHandle = () => {\n if (theValue[index + 1] !== undefined) {\n index = index + 1;\n handle();\n } else {\n all.valueArray(guest);\n }\n };\n\n function handle() {\n sequenceSource.give(null);\n const nextValue = theValue[index];\n if (isSource(nextValue)) {\n value(\n nextValue,\n new PatronOnce((theNextValue) => {\n sequenceSource.give(theNextValue);\n value(targetSource, all.guestKey(index.toString()));\n nextItemHandle();\n }),\n );\n } else {\n sequenceSource.give(nextValue);\n value(targetSource, all.guestKey(index.toString()));\n nextItemHandle();\n }\n }\n\n if (theValue[index] !== undefined) {\n handle();\n } else {\n give([], guest);\n }\n }),\n );\n return this;\n }\n}\n","import { PrivateType } from \"../Private/Private\";\nimport { give, GuestType } from \"../Guest/Guest\";\nimport {\n Source,\n SourceObjectType,\n SourceType,\n isSource,\n value,\n} from \"./Source\";\nimport { SourceAll } from \"./SourceAll\";\nimport { GuestCast } from \"../Guest/GuestCast\";\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/source/source-map\n */\nexport class SourceMap<T, TG> implements SourceObjectType<TG[]> {\n public constructor(\n private baseSource: SourceType<T[]>,\n private targetSource: PrivateType<SourceType<TG>>,\n ) {\n if (baseSource === undefined) {\n throw new Error(\"SourceMap didnt receive baseSource argument\");\n }\n if (targetSource === undefined) {\n throw new Error(\"SourceMap didnt receive targetSource argument\");\n }\n }\n\n public value(guest: GuestType<TG[]>) {\n const all = new SourceAll();\n value(\n this.baseSource,\n new GuestCast(<GuestType>guest, (theValue) => {\n theValue.forEach((val, index) => {\n const valueSource = isSource(val)\n ? val\n : new Source((innerGuest) => {\n give(val, innerGuest);\n });\n const targetSource = this.targetSource.get(valueSource);\n value(targetSource, all.guestKey(index.toString()));\n });\n }),\n );\n all.valueArray(<GuestType>guest);\n return this;\n }\n}\n","import { give, GuestType } from \"../Guest/Guest\";\nimport { SourceObjectType, SourceType, value } from \"./Source\";\nimport { GuestCast } from \"../Guest/GuestCast\";\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/source/source-race\n */\nexport class SourceRace<T> implements SourceObjectType<T> {\n public constructor(private sources: SourceType<T>[]) {\n if (sources === undefined) {\n throw new Error(\"SourceRace didnt receive sources argument\");\n }\n }\n\n public value(guest: GuestType<T>): this {\n let connectedWithSource: SourceType | null = null;\n this.sources.forEach((source) => {\n value(\n source,\n new GuestCast(<GuestType>guest, (value) => {\n if (!connectedWithSource || connectedWithSource === source) {\n give(value as T, guest);\n connectedWithSource = source;\n }\n }),\n );\n });\n return this;\n }\n}\n","import { give, GuestType } from \"../Guest/Guest\";\nimport { SourceType, value } from \"./Source\";\nimport { PatronPool } from \"../Patron/PatronPool\";\nimport { SourceChangeableType } from \"./SourceChangeable\";\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/source/source-dynamic\n */\nexport class SourceDynamic<T = unknown> implements SourceChangeableType<T> {\n public constructor(\n private baseGuest: GuestType<T>,\n private baseSource: SourceType<T>,\n ) {\n if (baseGuest === undefined) {\n throw new Error(\"SourceDynamic didnt receive baseGuest argument\");\n }\n if (baseSource === undefined) {\n throw new Error(\"SourceDynamic didnt receive baseSource argument\");\n }\n }\n\n public value(guest: GuestType<T>) {\n value(this.baseSource, guest);\n return this;\n }\n\n public give(value: T) {\n give(value, this.baseGuest);\n return this;\n }\n\n public pool(): PatronPool<T> {\n throw Error(\"No pool in SourceDynamic\");\n }\n}\n","import { give, GuestType } from \"../Guest/Guest\";\nimport { GuestCast } from \"../Guest/GuestCast\";\nimport { SourceObjectType, SourceType, value } from \"../Source/Source\";\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/source/source-applied\n */\nexport class SourceApplied<T, R> implements SourceObjectType<R> {\n public constructor(\n private baseSource: SourceType<T>,\n private applier: (v: T) => R,\n ) {}\n\n public value(g: GuestType<R>) {\n value(\n this.baseSource,\n new GuestCast(g, (v) => {\n give(this.applier(v), g);\n }),\n );\n return this;\n }\n}\n","import {\n SourceExecutorType,\n SourceObjectType,\n SourceType,\n value,\n} from \"../Source/Source\";\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/source/source-executor-applied\n */\nexport class SourceExecutorApplied<T> implements SourceObjectType<T> {\n public value: SourceExecutorType<T>;\n\n public constructor(\n source: SourceType<T>,\n applier: (executor: SourceExecutorType<T>) => SourceExecutorType<T>,\n ) {\n this.value = applier((g) => {\n value(source, g);\n });\n }\n}\n","import { give, GuestType } from \"../Guest/Guest\";\nimport { GuestCast } from \"../Guest/GuestCast\";\nimport { SourceObjectType, SourceType, value } from \"../Source/Source\";\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/source/source-filtered\n */\nexport class SourceFiltered<T> implements SourceObjectType<T> {\n public constructor(\n private baseSource: SourceType<T>,\n private predicate: (v: T) => boolean,\n ) {}\n\n public value(g: GuestType<T>) {\n value(\n this.baseSource,\n new GuestCast(g, (v) => {\n if (this.predicate(v) === true) {\n give(v, g);\n }\n }),\n );\n return this;\n }\n}\n","import { GuestType } from \"../Guest/Guest\";\nimport { PatronPool } from \"../Patron/PatronPool\";\nimport { value } from \"./Source\";\nimport { SourceChangeable, SourceChangeableType } from \"./SourceChangeable\";\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/source/source-once\n */\nexport class SourceOnce<T> implements SourceChangeableType<T> {\n private source: SourceChangeable<T>;\n\n public constructor(initialValue?: T) {\n this.source = new SourceChangeable(initialValue);\n }\n\n public value(guest: GuestType<T>) {\n value(this.source, guest);\n return this;\n }\n\n public give(value: T): this {\n if (!this.source.filled()) {\n this.source.give(value);\n }\n return this;\n }\n\n public pool(): PatronPool<T> {\n return this.source.pool();\n }\n}\n","import { GuestType } from \"../Guest/Guest\";\nimport { GuestSync } from \"../Guest/GuestSync\";\nimport { Patron } from \"../Patron/Patron\";\nimport { SourceObjectType, SourceType, value } from \"../Source/Source\";\n\n/**\n * @url https://silentium-lab.github.io/silentium/#/source/source-sync\n */\nexport class SourceSync<T> implements SourceObjectType<T> {\n private syncGuest = new GuestSync();\n\n public constructor(private baseSource: SourceType<T>) {\n value(baseSource, new Patron(this.syncGuest));\n }\n\n public value(guest: GuestType<T>) {\n value(this.baseSource, guest);\n return this;\n }\n\n public syncValue() {\n try {\n return this.syncGuest.value();\n } catch {\n throw new Error(\"No value in SourceSync\");\n }\n }\n}\n","import { PrivateType } from \"./Private\";\n\ninterface Constructable<T> {\n new (...args: unknown[]): T;\n}\n\ninterface Prototyped<T> {\n prototype: T;\n}\n\nexport class PrivateClass<T> implements PrivateType<T> {\n public constructor(\n private constructorFn: Prototyped<T>,\n private modules: Record<string, unknown> = {},\n ) {\n if (constructorFn === undefined) {\n throw new Error(\"PrivateClass didnt receive constructorFn argument\");\n }\n }\n\n public get<R extends unknown[], CT = null>(\n ...args: R\n ): CT extends null ? T : CT {\n return new (this.constructorFn as Constructable<T>)(\n ...args,\n this.modules,\n ) as CT extends null ? T : CT;\n }\n}\n","/**\n * @url https://silentium-lab.github.io/silentium/#/utils/private\n */\nexport interface PrivateType<T> {\n get<R extends unknown[], CT = null>(...args: R): CT extends null ? T : CT;\n}\n\nexport class Private<T> implements PrivateType<T> {\n public constructor(private buildingFn: (...args: any[]) => T) {\n if (buildingFn === undefined) {\n throw new Error(\"Private didnt receive buildingFn argument\");\n }\n }\n\n public get<R extends unknown[], CT = null>(\n ...args: R\n ): CT extends null ? T : CT {\n return this.buildingFn(...args) as CT extends null ? T : CT;\n }\n}\n"],"names":["__publicField","value"],"mappings":"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"}
@@ -278,15 +278,15 @@ interface PoolAwareType<T = any> {
278
278
  pool(): PatronPool<T>;
279
279
  }
280
280
  /**
281
- * @url https://silentium-lab.github.io/silentium/#/source/source-with-pool
281
+ * @url https://silentium-lab.github.io/silentium/#/source/source-changeable
282
282
  */
283
- type SourceWithPoolType<T = any> = SourceObjectType<T> & GuestObjectType<T> & PoolAwareType<T>;
284
- declare class SourceWithPool<T> implements SourceWithPoolType<T> {
285
- private sourceDocument?;
283
+ type SourceChangeableType<T = any> = SourceObjectType<T> & GuestObjectType<T> & PoolAwareType<T>;
284
+ declare class SourceChangeable<T> implements SourceChangeableType<T> {
286
285
  private thePool;
287
286
  private theEmptyPool;
288
287
  private isEmpty;
289
- constructor(sourceDocument?: T | undefined);
288
+ private sourceDocument?;
289
+ constructor(sourceDocument?: T | SourceType<T>);
290
290
  pool(): PatronPool<unknown>;
291
291
  give(value: T): this;
292
292
  value(guest: GuestType<T>): this;
@@ -296,7 +296,7 @@ declare class SourceWithPool<T> implements SourceWithPoolType<T> {
296
296
  /**
297
297
  * @url https://silentium-lab.github.io/silentium/#/source/source-dynamic
298
298
  */
299
- declare class SourceDynamic<T = unknown> implements SourceWithPoolType<T> {
299
+ declare class SourceDynamic<T = unknown> implements SourceChangeableType<T> {
300
300
  private baseGuest;
301
301
  private baseSource;
302
302
  constructor(baseGuest: GuestType<T>, baseSource: SourceType<T>);
@@ -336,7 +336,7 @@ declare class SourceFiltered<T> implements SourceObjectType<T> {
336
336
  /**
337
337
  * @url https://silentium-lab.github.io/silentium/#/source/source-once
338
338
  */
339
- declare class SourceOnce<T> implements SourceWithPoolType<T> {
339
+ declare class SourceOnce<T> implements SourceChangeableType<T> {
340
340
  private source;
341
341
  constructor(initialValue?: T);
342
342
  value(guest: GuestType<T>): this;
@@ -365,4 +365,4 @@ declare class PrivateClass<T> implements PrivateType<T> {
365
365
  get<R extends unknown[], CT = null>(...args: R): CT extends null ? T : CT;
366
366
  }
367
367
 
368
- export { Guest, GuestApplied, GuestCast, GuestDisposable, type GuestDisposableType, GuestExecutorApplied, type GuestExecutorType, GuestObject, type GuestObjectType, GuestPool, GuestSync, type GuestType, type GuestValueType, type MaybeDisposableType, Patron, PatronApplied, PatronExecutorApplied, PatronOnce, PatronPool, type PoolAwareType, type PoolType, Private, PrivateClass, type PrivateType, Source, SourceAll, type SourceAllType, SourceApplied, type SourceDataType, SourceDynamic, SourceExecutorApplied, type SourceExecutorType, SourceFiltered, SourceMap, type SourceObjectType, SourceOnce, SourceRace, SourceSequence, SourceSync, type SourceType, SourceWithPool, type SourceWithPoolType, give, isGuest, isPatron, isPatronInPools, isSource, patronPools, removePatronFromPools, sourceOf, value };
368
+ export { Guest, GuestApplied, GuestCast, GuestDisposable, type GuestDisposableType, GuestExecutorApplied, type GuestExecutorType, GuestObject, type GuestObjectType, GuestPool, GuestSync, type GuestType, type GuestValueType, type MaybeDisposableType, Patron, PatronApplied, PatronExecutorApplied, PatronOnce, PatronPool, type PoolAwareType, type PoolType, Private, PrivateClass, type PrivateType, Source, SourceAll, type SourceAllType, SourceApplied, SourceChangeable, type SourceChangeableType, type SourceDataType, SourceDynamic, SourceExecutorApplied, type SourceExecutorType, SourceFiltered, SourceMap, type SourceObjectType, SourceOnce, SourceRace, SourceSequence, SourceSync, type SourceType, give, isGuest, isPatron, isPatronInPools, isSource, patronPools, removePatronFromPools, sourceOf, value };
package/dist/silentium.js CHANGED
@@ -358,23 +358,71 @@ class PatronExecutorApplied {
358
358
  }
359
359
  }
360
360
 
361
+ function value(source, guest) {
362
+ if (source === void 0 || source === null) {
363
+ throw new Error("value didnt receive source argument");
364
+ }
365
+ if (guest === void 0 || source === null) {
366
+ throw new Error("value didnt receive guest argument");
367
+ }
368
+ if (typeof source === "function") {
369
+ source(guest);
370
+ } else if (typeof source === "object" && "value" in source && typeof source.value === "function") {
371
+ source.value(guest);
372
+ } else {
373
+ give(source, guest);
374
+ }
375
+ return source;
376
+ }
377
+ function isSource(mbSource) {
378
+ if (mbSource === void 0) {
379
+ throw new Error("isSource didnt receive mbSource argument");
380
+ }
381
+ return typeof mbSource === "function" || typeof mbSource?.value === "function";
382
+ }
383
+ class Source {
384
+ constructor(source) {
385
+ this.source = source;
386
+ if (source === void 0) {
387
+ throw new Error("Source constructor didnt receive executor function");
388
+ }
389
+ }
390
+ value(guest) {
391
+ value(this.source, guest);
392
+ return guest;
393
+ }
394
+ }
395
+ const sourceOf = (value2) => new Source((g) => give(value2, g));
396
+
361
397
  var __defProp$4 = Object.defineProperty;
362
- var __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
363
- var __publicField$4 = (obj, key, value) => __defNormalProp$4(obj, typeof key !== "symbol" ? key + "" : key, value);
364
- class SourceWithPool {
398
+ var __defNormalProp$4 = (obj, key, value2) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value: value2 }) : obj[key] = value2;
399
+ var __publicField$4 = (obj, key, value2) => __defNormalProp$4(obj, typeof key !== "symbol" ? key + "" : key, value2);
400
+ class SourceChangeable {
365
401
  constructor(sourceDocument) {
366
- this.sourceDocument = sourceDocument;
367
402
  __publicField$4(this, "thePool", new PatronPool(this));
368
403
  __publicField$4(this, "theEmptyPool", new PatronPool(this));
369
404
  __publicField$4(this, "isEmpty");
405
+ __publicField$4(this, "sourceDocument");
370
406
  this.isEmpty = sourceDocument === void 0;
407
+ if (sourceDocument !== void 0 && isSource(sourceDocument)) {
408
+ value(
409
+ sourceDocument,
410
+ new PatronOnce((unwrappedSourceDocument) => {
411
+ this.isEmpty = unwrappedSourceDocument === void 0;
412
+ this.sourceDocument = unwrappedSourceDocument;
413
+ })
414
+ );
415
+ } else {
416
+ this.isEmpty = sourceDocument === void 0;
417
+ this.sourceDocument = sourceDocument;
418
+ }
371
419
  }
372
420
  pool() {
373
421
  return this.thePool;
374
422
  }
375
- give(value) {
423
+ give(value2) {
376
424
  this.isEmpty = false;
377
- this.sourceDocument = value;
425
+ this.sourceDocument = value2;
378
426
  this.thePool.give(this.sourceDocument);
379
427
  this.theEmptyPool.give(this.sourceDocument);
380
428
  return this;
@@ -407,7 +455,7 @@ class SourceAll {
407
455
  __publicField$3(this, "keysKnown");
408
456
  __publicField$3(this, "keysFilled", /* @__PURE__ */ new Set());
409
457
  __publicField$3(this, "filledAllPool", new GuestPool(this));
410
- this.theAll = new SourceWithPool({});
458
+ this.theAll = new SourceChangeable({});
411
459
  this.keysKnown = new Set(initialKnownKeys);
412
460
  }
413
461
  valueArray(guest) {
@@ -463,42 +511,6 @@ class SourceAll {
463
511
  }
464
512
  }
465
513
 
466
- function value(source, guest) {
467
- if (source === void 0 || source === null) {
468
- throw new Error("value didnt receive source argument");
469
- }
470
- if (guest === void 0 || source === null) {
471
- throw new Error("value didnt receive guest argument");
472
- }
473
- if (typeof source === "function") {
474
- source(guest);
475
- } else if (typeof source === "object" && "value" in source && typeof source.value === "function") {
476
- source.value(guest);
477
- } else {
478
- give(source, guest);
479
- }
480
- return source;
481
- }
482
- function isSource(mbSource) {
483
- if (mbSource === void 0) {
484
- throw new Error("isSource didnt receive mbSource argument");
485
- }
486
- return typeof mbSource === "function" || typeof mbSource?.value === "function";
487
- }
488
- class Source {
489
- constructor(source) {
490
- this.source = source;
491
- if (source === void 0) {
492
- throw new Error("Source constructor didnt receive executor function");
493
- }
494
- }
495
- value(guest) {
496
- value(this.source, guest);
497
- return guest;
498
- }
499
- }
500
- const sourceOf = (value2) => new Source((g) => give(value2, g));
501
-
502
514
  class SourceSequence {
503
515
  constructor(baseSource, targetSource) {
504
516
  this.baseSource = baseSource;
@@ -512,7 +524,7 @@ class SourceSequence {
512
524
  }
513
525
  value(guest) {
514
526
  const all = new SourceAll();
515
- const sequenceSource = new SourceWithPool();
527
+ const sequenceSource = new SourceChangeable();
516
528
  const targetSource = this.targetSource.get(sequenceSource);
517
529
  value(
518
530
  this.baseSource,
@@ -685,7 +697,7 @@ var __publicField$1 = (obj, key, value2) => __defNormalProp$1(obj, key + "" , va
685
697
  class SourceOnce {
686
698
  constructor(initialValue) {
687
699
  __publicField$1(this, "source");
688
- this.source = new SourceWithPool(initialValue);
700
+ this.source = new SourceChangeable(initialValue);
689
701
  }
690
702
  value(guest) {
691
703
  value(this.source, guest);
@@ -752,5 +764,5 @@ class Private {
752
764
  }
753
765
  }
754
766
 
755
- export { Guest, GuestApplied, GuestCast, GuestDisposable, GuestExecutorApplied, GuestObject, GuestPool, GuestSync, Patron, PatronApplied, PatronExecutorApplied, PatronOnce, PatronPool, Private, PrivateClass, Source, SourceAll, SourceApplied, SourceDynamic, SourceExecutorApplied, SourceFiltered, SourceMap, SourceOnce, SourceRace, SourceSequence, SourceSync, SourceWithPool, give, isGuest, isPatron, isPatronInPools, isSource, patronPools, removePatronFromPools, sourceOf, value };
767
+ export { Guest, GuestApplied, GuestCast, GuestDisposable, GuestExecutorApplied, GuestObject, GuestPool, GuestSync, Patron, PatronApplied, PatronExecutorApplied, PatronOnce, PatronPool, Private, PrivateClass, Source, SourceAll, SourceApplied, SourceChangeable, SourceDynamic, SourceExecutorApplied, SourceFiltered, SourceMap, SourceOnce, SourceRace, SourceSequence, SourceSync, give, isGuest, isPatron, isPatronInPools, isSource, patronPools, removePatronFromPools, sourceOf, value };
756
768
  //# sourceMappingURL=silentium.js.map