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.
- package/CHANGELOG.md +12 -0
- package/dist/silentium.cjs +58 -46
- package/dist/silentium.cjs.map +1 -1
- package/dist/silentium.d.ts +8 -8
- package/dist/silentium.js +58 -46
- package/dist/silentium.js.map +1 -1
- package/dist/silentium.min.js +1 -1
- package/dist/silentium.min.mjs +1 -1
- package/dist/silentium.min.mjs.map +1 -1
- package/dist/silentium.mjs +58 -46
- package/dist/silentium.mjs.map +1 -1
- package/docs/assets/js/index.mjs +3 -3
- package/docs/pages/compatibility/elegant-objects.html +4 -4
- package/docs/pages/guest/guest-cast.html +6 -6
- package/docs/pages/guest/guest-disposable.html +4 -4
- package/docs/pages/guest/guest-sync.html +4 -4
- package/docs/pages/patron/index.html +5 -5
- package/docs/pages/patron/patron-applied.html +4 -4
- package/docs/pages/patron/patron-executor-applied.html +6 -6
- package/docs/pages/patron/patron-once.html +4 -4
- package/docs/pages/patron.html +5 -5
- package/docs/pages/source/source-all.html +9 -9
- package/docs/pages/source/{source-with-pool.html → source-changeable.html} +9 -9
- package/docs/pages/source/source-filtered.html +4 -4
- package/docs/pages/source/source-map.html +8 -8
- package/docs/pages/source/source-race.html +4 -4
- package/docs/pages/source/source-sequence.html +6 -6
- package/docs/pages/source/source-sync.html +4 -4
- package/docs/pages/source.html +1 -1
- package/docs/routes.json +1 -1
- package/package.json +1 -1
- package/src/Guest/Guest.test.ts +2 -2
- package/src/Guest/GuestApplied.test.ts +2 -2
- package/src/Guest/GuestCast.test.ts +2 -2
- package/src/Guest/GuestDisposable.test.ts +2 -2
- package/src/Guest/GuestExecutorApplied.test.ts +2 -2
- package/src/Guest/GuestObject.test.ts +2 -2
- package/src/Guest/GuestSync.test.ts +2 -2
- package/src/Patron/Patron.test.ts +2 -2
- package/src/Patron/PatronOnce.sourceEmpty.test.ts +2 -2
- package/src/Patron/PatronOnce.test.ts +2 -2
- package/src/Private/PrivateClass.modules.test.ts +7 -4
- package/src/Private/PrivateClass.test.ts +2 -2
- package/src/Source/SourceAll._asArray.test.ts +3 -3
- package/src/Source/SourceAll._twoValuesAfter.test.ts +3 -3
- package/src/Source/SourceAll._twoValuesBefore.test.ts +3 -3
- package/src/Source/SourceAll._withPatron.test.ts +3 -3
- package/src/Source/SourceAll.ts +3 -3
- package/src/Source/SourceApplied.test.ts +2 -2
- package/src/Source/{SourceWithPool.empty.test.ts → SourceChangeable.empty.test.ts} +2 -2
- package/src/Source/SourceChangeable.ofSource.test.ts +16 -0
- package/src/Source/SourceChangeable.ofSourceFunction.test.ts +11 -0
- package/src/Source/{SourceWithPool.test.ts → SourceChangeable.test.ts} +2 -2
- package/src/Source/{SourceWithPool.ts → SourceChangeable.ts} +20 -5
- package/src/Source/SourceDynamic.ofSource.test.ts +2 -2
- package/src/Source/SourceDynamic.ts +2 -2
- package/src/Source/SourceExecutorApplied.test.ts +2 -2
- package/src/Source/SourceMap.defered.test.ts +2 -2
- package/src/Source/SourceMap.fn.test.ts +2 -2
- package/src/Source/SourceMap.test.ts +2 -2
- package/src/Source/SourceOnce.ts +4 -4
- package/src/Source/SourceRace.test.ts +2 -2
- package/src/Source/SourceSequence.defered.test.ts +2 -2
- package/src/Source/SourceSequence.test.ts +2 -2
- package/src/Source/SourceSequence.ts +2 -2
- package/src/Source/SourceSync.test.ts +2 -2
- 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
|
|
package/dist/silentium.cjs
CHANGED
|
@@ -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,
|
|
365
|
-
var __publicField$4 = (obj, key,
|
|
366
|
-
class
|
|
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(
|
|
425
|
+
give(value2) {
|
|
378
426
|
this.isEmpty = false;
|
|
379
|
-
this.sourceDocument =
|
|
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
|
|
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
|
|
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
|
|
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;
|
package/dist/silentium.cjs.map
CHANGED
|
@@ -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":"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"}
|
|
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":";;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;;ACCgB,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;;;;;AC7DrE,MAAM,gBAAuD,CAAA;AAAA,EAM3D,YAAY,cAAoC,EAAA;AALvD,IAAQD,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;AACR,IAAQA,eAAA,CAAA,IAAA,EAAA,gBAAA,CAAA;AAGN,IAAA,IAAA,CAAK,UAAU,cAAmB,KAAA,MAAA;AAElC,IAAA,IAAI,cAAmB,KAAA,MAAA,IAAa,QAAS,CAAA,cAAc,CAAG,EAAA;AAC5D,MAAA,KAAA;AAAA,QACE,cAAA;AAAA,QACA,IAAI,UAAW,CAAA,CAAC,uBAA4B,KAAA;AAC1C,UAAA,IAAA,CAAK,UAAU,uBAA4B,KAAA,MAAA;AAC3C,UAAA,IAAA,CAAK,cAAiB,GAAA,uBAAA;AAAA,SACvB;AAAA,OACH;AAAA,KACK,MAAA;AACL,MAAA,IAAA,CAAK,UAAU,cAAmB,KAAA,MAAA;AAClC,MAAA,IAAA,CAAK,cAAiB,GAAA,cAAA;AAAA;AACxB;AACF,EAEO,IAAO,GAAA;AACZ,IAAA,OAAO,IAAK,CAAA,OAAA;AAAA;AACd,EAEO,KAAKC,MAAgB,EAAA;AAC1B,IAAA,IAAA,CAAK,OAAU,GAAA,KAAA;AACf,IAAA,IAAA,CAAK,cAAiBA,GAAAA,MAAAA;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;;;;;ACzDO,MAAM,SAAyC,CAAA;AAAA,EAS7C,WAAA,CAAY,gBAA6B,GAAA,EAAI,EAAA;AARpD,IAAQD,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,gBAA0C,CAAA,EAAE,CAAA;AAC9D,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;;AC1EO,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,gBAAiB,EAAA;AAC5C,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,CAACC,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,aAA8D,CAAA;AAAA,EAClE,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,UAAiD,CAAA;AAAA,EAGrD,YAAY,YAAkB,EAAA;AAFrC,IAAQA,eAAA,CAAA,IAAA,EAAA,QAAA,CAAA;AAGN,IAAK,IAAA,CAAA,MAAA,GAAS,IAAI,gBAAA,CAAiB,YAAY,CAAA;AAAA;AACjD,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/silentium.d.ts
CHANGED
|
@@ -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-
|
|
281
|
+
* @url https://silentium-lab.github.io/silentium/#/source/source-changeable
|
|
282
282
|
*/
|
|
283
|
-
type
|
|
284
|
-
declare class
|
|
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
|
-
|
|
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
|
|
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
|
|
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,
|
|
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,
|
|
363
|
-
var __publicField$4 = (obj, key,
|
|
364
|
-
class
|
|
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(
|
|
423
|
+
give(value2) {
|
|
376
424
|
this.isEmpty = false;
|
|
377
|
-
this.sourceDocument =
|
|
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
|
|
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
|
|
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
|
|
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,
|
|
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
|