silentium 0.0.2 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/beforeRelease.sh +11 -0
  3. package/dist/silentium.cjs +42 -63
  4. package/dist/silentium.cjs.map +1 -1
  5. package/dist/silentium.d.ts +37 -56
  6. package/dist/silentium.js +43 -63
  7. package/dist/silentium.js.map +1 -1
  8. package/dist/silentium.min.js +1 -1
  9. package/dist/silentium.min.mjs +1 -1
  10. package/dist/silentium.min.mjs.map +1 -1
  11. package/dist/silentium.mjs +43 -63
  12. package/dist/silentium.mjs.map +1 -1
  13. package/docs/assets/css/base.css +15 -0
  14. package/docs/assets/css/custom.css +72 -0
  15. package/docs/assets/img/logo.svg +1522 -0
  16. package/docs/assets/js/components/linkDynamic.mjs +14 -0
  17. package/docs/assets/js/components/linkReloadable.mjs +17 -0
  18. package/docs/assets/js/components.mjs +2 -0
  19. package/docs/assets/js/index.mjs +74 -0
  20. package/docs/assets/js/lib/StyleFetched.mjs +19 -0
  21. package/docs/build.sh +7 -3
  22. package/docs/buildRoutes.sh +15 -0
  23. package/docs/favicon.ico +0 -0
  24. package/docs/index-dev.html +4 -80
  25. package/docs/index.html +6 -82
  26. package/docs/pages/compatibility/elegant-objects.html +4 -4
  27. package/docs/pages/examples/errors.html +2 -2
  28. package/docs/pages/examples.html +12 -14
  29. package/docs/pages/guest/guest-applied.html +9 -5
  30. package/docs/pages/guest/guest-cast.html +20 -26
  31. package/docs/pages/guest/guest-disposable.html +32 -42
  32. package/docs/pages/guest/guest-executor-applied.html +21 -17
  33. package/docs/pages/guest/guest-object.html +22 -26
  34. package/docs/pages/guest/guest-pool.html +17 -18
  35. package/docs/pages/guest/guest-sync.html +7 -2
  36. package/docs/pages/guest/index.html +18 -29
  37. package/docs/pages/guest.html +112 -18
  38. package/docs/pages/index.html +24 -52
  39. package/docs/pages/integrations/vue.html +5 -8
  40. package/docs/pages/patron/index.html +14 -20
  41. package/docs/pages/patron/patron-applied.html +2 -2
  42. package/docs/pages/patron/patron-executor-applied.html +2 -2
  43. package/docs/pages/patron/patron-once.html +12 -18
  44. package/docs/pages/patron/patron-pool.html +12 -18
  45. package/docs/pages/patron.html +137 -16
  46. package/docs/pages/philosofy.html +30 -49
  47. package/docs/pages/source/index.html +11 -14
  48. package/docs/pages/source/source-all.html +9 -12
  49. package/docs/pages/source/source-applied.html +2 -2
  50. package/docs/pages/source/source-dynamic.html +3 -3
  51. package/docs/pages/source/source-executor-applied.html +2 -2
  52. package/docs/pages/source/source-map.html +5 -5
  53. package/docs/pages/source/source-once.html +2 -2
  54. package/docs/pages/source/source-race.html +10 -10
  55. package/docs/pages/source/source-sequence.html +2 -2
  56. package/docs/pages/source/source-with-pool.html +8 -11
  57. package/docs/pages/source/source.html +11 -14
  58. package/docs/pages/source.html +162 -31
  59. package/docs/pages/terminology/source.html +5 -9
  60. package/docs/pages/terminology.html +12 -18
  61. package/docs/pages/utils.html +33 -21
  62. package/docs/routes.json +1 -0
  63. package/docs/template.html +4 -80
  64. package/eslint.config.mjs +3 -0
  65. package/package.json +2 -2
  66. package/src/Guest/Guest.ts +3 -3
  67. package/src/Guest/GuestApplied.ts +1 -1
  68. package/src/Guest/GuestCast.ts +1 -1
  69. package/src/Guest/GuestDisposable.ts +1 -1
  70. package/src/Guest/GuestExecutorApplied.ts +1 -1
  71. package/src/Guest/GuestObject.ts +1 -1
  72. package/src/Guest/GuestPool.ts +1 -1
  73. package/src/Guest/GuestSync.ts +5 -2
  74. package/src/Patron/Patron.ts +2 -2
  75. package/src/Patron/PatronApplied.ts +1 -1
  76. package/src/Patron/PatronExecutorApplied.ts +1 -1
  77. package/src/Patron/PatronOnce.ts +1 -1
  78. package/src/Patron/PatronPool.ts +4 -4
  79. package/src/Private/Private.ts +1 -1
  80. package/src/Source/Source.ts +4 -4
  81. package/src/Source/SourceAll.ts +1 -1
  82. package/src/Source/SourceApplied.ts +1 -1
  83. package/src/Source/SourceDynamic.ts +1 -1
  84. package/src/Source/SourceExecutorApplied.ts +1 -1
  85. package/src/Source/SourceMap.ts +1 -1
  86. package/src/Source/SourceOnce.ts +1 -1
  87. package/src/Source/SourceRace.ts +1 -1
  88. package/src/Source/SourceSequence.ts +1 -1
  89. package/src/Source/SourceWithPool.ts +1 -1
  90. package/src/index.ts +0 -1
  91. package/docs/pages/source/source-active.html +0 -120
  92. package/src/Source/SourceActive.test.ts +0 -13
  93. package/src/Source/SourceActive.ts +0 -41
package/CHANGELOG.md CHANGED
@@ -2,6 +2,32 @@
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.4](https://github.com/silentium-lab/silentium/compare/v0.0.3...v0.0.4) (2025-04-13)
6
+
7
+
8
+ ### Features
9
+
10
+ * **main:** guest sync initial value is arbitary ([5dbda4c](https://github.com/silentium-lab/silentium/commit/5dbda4c51d7eda2eb32a4ee46858bfdc0aaafc6a))
11
+
12
+ ### [0.0.3](https://github.com/silentium-lab/silentium/compare/v0.0.2...v0.0.3) (2025-04-13)
13
+
14
+
15
+ ### Features
16
+
17
+ * **1-issue:** active source removed ([8aea405](https://github.com/silentium-lab/silentium/commit/8aea40543208b0c943bcd8beb17f3be55353bd7b))
18
+ * **main:** check before release ([767e2e2](https://github.com/silentium-lab/silentium/commit/767e2e20044b57e3a99a41fd6961ae5a4433b871))
19
+ * **main:** custom css ([0278dc0](https://github.com/silentium-lab/silentium/commit/0278dc03f674da58b8b455aa896de3adcd7b512c))
20
+ * **main:** documentation imroovments ([186f1ff](https://github.com/silentium-lab/silentium/commit/186f1ff88e5c9a88f372619f50e3b4ee2c2de26a))
21
+ * **main:** favicon fixed ([b666fef](https://github.com/silentium-lab/silentium/commit/b666fefc57b8ebd1dfdc70ab155cb0e8ff98ee6f))
22
+ * **main:** fix deps ([4f06a04](https://github.com/silentium-lab/silentium/commit/4f06a04e4fee49851c895fc3d66957f1a8e1a68f))
23
+ * **main:** fix documentation ([1987380](https://github.com/silentium-lab/silentium/commit/1987380b03f5edcb0c2475cb88deb954add29657))
24
+ * **main:** fix index deps ([e4ac657](https://github.com/silentium-lab/silentium/commit/e4ac65701fd1e393fc0eadb1025a181cc27a2a74))
25
+
26
+
27
+ ### Bug Fixes
28
+
29
+ * **main:** fix active import ([2127d47](https://github.com/silentium-lab/silentium/commit/2127d475122a054d27ec822108d7d9dd2a9bb57f))
30
+
5
31
  ### [0.0.2](https://github.com/silentium-lab/silentium/compare/v0.0.1...v0.0.2) (2025-04-12)
6
32
 
7
33
  ### 0.0.1 (2025-04-12)
@@ -0,0 +1,11 @@
1
+ #!/bin/bash
2
+
3
+ current_branch=$(git rev-parse --abbrev-ref HEAD)
4
+
5
+ if [ "$current_branch" != "main" ]; then
6
+ echo "Error: Current branch not 'main'. Release impossible you are on '$current_branch'."
7
+ exit 1
8
+ fi
9
+
10
+ echo "Current branch — 'main'."
11
+ exit 0
@@ -62,9 +62,9 @@ class GuestCast {
62
62
  }
63
63
  }
64
64
 
65
- var __defProp$a = Object.defineProperty;
66
- var __defNormalProp$a = (obj, key, value) => key in obj ? __defProp$a(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
67
- var __publicField$a = (obj, key, value) => __defNormalProp$a(obj, typeof key !== "symbol" ? key + "" : key, value);
65
+ var __defProp$9 = Object.defineProperty;
66
+ var __defNormalProp$9 = (obj, key, value) => key in obj ? __defProp$9(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
67
+ var __publicField$9 = (obj, key, value) => __defNormalProp$9(obj, typeof key !== "symbol" ? key + "" : key, value);
68
68
  const poolSets = /* @__PURE__ */ new Map();
69
69
  const patronPools = (patron) => {
70
70
  const pools = [];
@@ -98,8 +98,8 @@ const isPatronInPools = (patron) => {
98
98
  class PatronPool {
99
99
  constructor(initiator) {
100
100
  this.initiator = initiator;
101
- __publicField$a(this, "patrons");
102
- __publicField$a(this, "give");
101
+ __publicField$9(this, "patrons");
102
+ __publicField$9(this, "give");
103
103
  this.patrons = /* @__PURE__ */ new Set();
104
104
  poolSets.set(this, this.patrons);
105
105
  const doReceive = (value) => {
@@ -148,13 +148,13 @@ class PatronPool {
148
148
  }
149
149
  }
150
150
 
151
- var __defProp$9 = Object.defineProperty;
152
- var __defNormalProp$9 = (obj, key, value) => key in obj ? __defProp$9(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
153
- var __publicField$9 = (obj, key, value) => __defNormalProp$9(obj, typeof key !== "symbol" ? key + "" : key, value);
151
+ var __defProp$8 = Object.defineProperty;
152
+ var __defNormalProp$8 = (obj, key, value) => key in obj ? __defProp$8(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
153
+ var __publicField$8 = (obj, key, value) => __defNormalProp$8(obj, typeof key !== "symbol" ? key + "" : key, value);
154
154
  class GuestPool {
155
155
  constructor(initiator) {
156
- __publicField$9(this, "guests", /* @__PURE__ */ new Set());
157
- __publicField$9(this, "patronPool");
156
+ __publicField$8(this, "guests", /* @__PURE__ */ new Set());
157
+ __publicField$8(this, "patronPool");
158
158
  this.patronPool = new PatronPool(initiator);
159
159
  }
160
160
  give(value) {
@@ -202,6 +202,9 @@ class GuestSync {
202
202
  return this;
203
203
  }
204
204
  value() {
205
+ if (!this.theValue) {
206
+ throw new Error("no value in GuestSync!");
207
+ }
205
208
  return this.theValue;
206
209
  }
207
210
  }
@@ -264,12 +267,12 @@ class GuestApplied {
264
267
  }
265
268
  }
266
269
 
267
- var __defProp$8 = Object.defineProperty;
268
- var __defNormalProp$8 = (obj, key, value) => key in obj ? __defProp$8(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
269
- var __publicField$8 = (obj, key, value) => __defNormalProp$8(obj, key + "" , value);
270
+ var __defProp$7 = Object.defineProperty;
271
+ var __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$7(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
272
+ var __publicField$7 = (obj, key, value) => __defNormalProp$7(obj, key + "" , value);
270
273
  class GuestExecutorApplied {
271
274
  constructor(baseGuest, applier) {
272
- __publicField$8(this, "give");
275
+ __publicField$7(this, "give");
273
276
  this.give = applier((v) => give(v, baseGuest));
274
277
  }
275
278
  }
@@ -295,13 +298,13 @@ class Patron {
295
298
  }
296
299
  const isPatron = (guest) => typeof guest === "object" && guest !== null && guest?.introduction?.() === "patron";
297
300
 
298
- var __defProp$7 = Object.defineProperty;
299
- var __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$7(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
300
- var __publicField$7 = (obj, key, value) => __defNormalProp$7(obj, key + "" , value);
301
+ var __defProp$6 = Object.defineProperty;
302
+ var __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
303
+ var __publicField$6 = (obj, key, value) => __defNormalProp$6(obj, key + "" , value);
301
304
  class PatronOnce {
302
305
  constructor(baseGuest) {
303
306
  this.baseGuest = baseGuest;
304
- __publicField$7(this, "received", false);
307
+ __publicField$6(this, "received", false);
305
308
  if (baseGuest === void 0) {
306
309
  throw new Error("PatronOnce didnt receive baseGuest argument");
307
310
  }
@@ -325,12 +328,12 @@ class PatronOnce {
325
328
  }
326
329
  }
327
330
 
328
- var __defProp$6 = Object.defineProperty;
329
- var __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
330
- var __publicField$6 = (obj, key, value) => __defNormalProp$6(obj, key + "" , value);
331
+ var __defProp$5 = Object.defineProperty;
332
+ var __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$5(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
333
+ var __publicField$5 = (obj, key, value) => __defNormalProp$5(obj, key + "" , value);
331
334
  class PatronApplied {
332
335
  constructor(baseGuest, applier) {
333
- __publicField$6(this, "guestApplied");
336
+ __publicField$5(this, "guestApplied");
334
337
  this.guestApplied = new GuestApplied(baseGuest, applier);
335
338
  }
336
339
  give(value) {
@@ -342,12 +345,12 @@ class PatronApplied {
342
345
  }
343
346
  }
344
347
 
345
- var __defProp$5 = Object.defineProperty;
346
- var __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$5(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
347
- var __publicField$5 = (obj, key, value) => __defNormalProp$5(obj, key + "" , value);
348
+ var __defProp$4 = Object.defineProperty;
349
+ var __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
350
+ var __publicField$4 = (obj, key, value) => __defNormalProp$4(obj, key + "" , value);
348
351
  class PatronExecutorApplied {
349
352
  constructor(baseGuest, applier) {
350
- __publicField$5(this, "guestApplied");
353
+ __publicField$4(this, "guestApplied");
351
354
  this.guestApplied = new GuestExecutorApplied(baseGuest, applier);
352
355
  }
353
356
  give(value) {
@@ -359,15 +362,15 @@ class PatronExecutorApplied {
359
362
  }
360
363
  }
361
364
 
362
- var __defProp$4 = Object.defineProperty;
363
- var __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
364
- var __publicField$4 = (obj, key, value) => __defNormalProp$4(obj, typeof key !== "symbol" ? key + "" : key, value);
365
+ var __defProp$3 = Object.defineProperty;
366
+ var __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
367
+ var __publicField$3 = (obj, key, value) => __defNormalProp$3(obj, typeof key !== "symbol" ? key + "" : key, value);
365
368
  class SourceWithPool {
366
369
  constructor(sourceDocument) {
367
370
  this.sourceDocument = sourceDocument;
368
- __publicField$4(this, "thePool", new PatronPool(this));
369
- __publicField$4(this, "theEmptyPool", new PatronPool(this));
370
- __publicField$4(this, "isEmpty");
371
+ __publicField$3(this, "thePool", new PatronPool(this));
372
+ __publicField$3(this, "theEmptyPool", new PatronPool(this));
373
+ __publicField$3(this, "isEmpty");
371
374
  this.isEmpty = sourceDocument === void 0;
372
375
  }
373
376
  pool() {
@@ -399,15 +402,15 @@ class SourceWithPool {
399
402
  }
400
403
  }
401
404
 
402
- var __defProp$3 = Object.defineProperty;
403
- var __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
404
- var __publicField$3 = (obj, key, value) => __defNormalProp$3(obj, typeof key !== "symbol" ? key + "" : key, value);
405
+ var __defProp$2 = Object.defineProperty;
406
+ var __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
407
+ var __publicField$2 = (obj, key, value) => __defNormalProp$2(obj, typeof key !== "symbol" ? key + "" : key, value);
405
408
  class SourceAll {
406
409
  constructor(initialKnownKeys = []) {
407
- __publicField$3(this, "theAll");
408
- __publicField$3(this, "keysKnown");
409
- __publicField$3(this, "keysFilled", /* @__PURE__ */ new Set());
410
- __publicField$3(this, "filledAllPool", new GuestPool(this));
410
+ __publicField$2(this, "theAll");
411
+ __publicField$2(this, "keysKnown");
412
+ __publicField$2(this, "keysFilled", /* @__PURE__ */ new Set());
413
+ __publicField$2(this, "filledAllPool", new GuestPool(this));
411
414
  this.theAll = new SourceWithPool({});
412
415
  this.keysKnown = new Set(initialKnownKeys);
413
416
  }
@@ -607,29 +610,6 @@ class SourceRace {
607
610
  }
608
611
  }
609
612
 
610
- var __defProp$2 = Object.defineProperty;
611
- var __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
612
- var __publicField$2 = (obj, key, value) => __defNormalProp$2(obj, key + "" , value);
613
- class SourceActive {
614
- constructor(configExecutor) {
615
- this.configExecutor = configExecutor;
616
- __publicField$2(this, "source", new SourceWithPool());
617
- if (configExecutor === void 0) {
618
- throw new Error(
619
- "SourceActive constructor didnt receive executor function"
620
- );
621
- }
622
- }
623
- do(config) {
624
- this.configExecutor(config, this.source);
625
- return this;
626
- }
627
- value(guest) {
628
- this.source.value(guest);
629
- return this;
630
- }
631
- }
632
-
633
613
  class SourceDynamic {
634
614
  constructor(baseGuest, baseSource) {
635
615
  this.baseGuest = baseGuest;
@@ -749,7 +729,6 @@ exports.PatronPool = PatronPool;
749
729
  exports.Private = Private;
750
730
  exports.PrivateClass = PrivateClass;
751
731
  exports.Source = Source;
752
- exports.SourceActive = SourceActive;
753
732
  exports.SourceAll = SourceAll;
754
733
  exports.SourceApplied = SourceApplied;
755
734
  exports.SourceDynamic = SourceDynamic;
@@ -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/SourceActive.ts","../src/Source/SourceDynamic.ts","../src/Source/SourceApplied.ts","../src/Source/SourceExecutorApplied.ts","../src/Source/SourceOnce.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://kosukhin.github.io/patron.site/#/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\n/**\n * @url https://kosukhin.github.io/patron.site/#/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://kosukhin.github.io/patron.site/#/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://kosukhin.github.io/patron.site/#/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://kosukhin.github.io/patron.site/#/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://kosukhin.github.io/patron.site/#/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://kosukhin.github.io/patron.site/#/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://kosukhin.github.io/patron.site/#/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://kosukhin.github.io/patron.site/#/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://kosukhin.github.io/patron.site/#/guest/guest-sync\n */\nexport class GuestSync<T> implements GuestValueType<T> {\n public constructor(private theValue: T) {\n if (theValue === undefined) {\n throw new Error(\"GuestSync didnt receive theValue argument\");\n }\n }\n\n public give(value: T): this {\n this.theValue = value;\n return this;\n }\n\n public value() {\n return this.theValue;\n }\n}\n","import { Guest, GuestType } from \"./Guest\";\nimport { GuestDisposableType, MaybeDisposableType } from \"./GuestDisposable\";\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/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://kosukhin.github.io/patron.site/#/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://kosukhin.github.io/patron.site/#/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://kosukhin.github.io/patron.site/#/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://kosukhin.github.io/patron.site/#/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://kosukhin.github.io/patron.site/#/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://kosukhin.github.io/patron.site/#/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://kosukhin.github.io/patron.site/#/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://kosukhin.github.io/patron.site/#/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://kosukhin.github.io/patron.site/#/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://kosukhin.github.io/patron.site/#/guest/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 SourceType<T = any> = SourceExecutorType<T> | SourceObjectType<T>;\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/utils/value\n */\nexport function value<T>(source: SourceType<T>, guest: GuestType<T>) {\n if (source === undefined) {\n throw new Error(\"value didnt receive source argument\");\n }\n if (guest === undefined) {\n throw new Error(\"value didnt receive guest argument\");\n }\n if (typeof source === \"function\") {\n return source(guest);\n } else {\n return source.value(guest);\n }\n}\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/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://kosukhin.github.io/patron.site/#/guest/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://kosukhin.github.io/patron.site/#/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://kosukhin.github.io/patron.site/#/guest/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://kosukhin.github.io/patron.site/#/guest/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://kosukhin.github.io/patron.site/#/guest/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 { GuestType } from \"../Guest/Guest\";\nimport { SourceObjectType } from \"./Source\";\nimport { SourceWithPool, SourceWithPoolType } from \"./SourceWithPool\";\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/utils/action-type\n */\nexport interface ActionType<P = any> {\n do(config: P): this;\n}\n\nexport interface SourceAcitveType<R = unknown, T = unknown>\n extends SourceObjectType<T>,\n ActionType<R> {}\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/guest/source-active\n */\nexport class SourceActive<R, T> implements SourceAcitveType<R, T> {\n private source = new SourceWithPool<T>();\n\n public constructor(\n private configExecutor: (config: R, source: SourceWithPoolType<T>) => void,\n ) {\n if (configExecutor === undefined) {\n throw new Error(\n \"SourceActive constructor didnt receive executor function\",\n );\n }\n }\n\n public do(config: R): this {\n this.configExecutor(config, this.source);\n return this;\n }\n\n public value(guest: GuestType<T>): this {\n this.source.value(guest);\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://kosukhin.github.io/patron.site/#/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://kosukhin.github.io/patron.site/#/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://kosukhin.github.io/patron.site/#/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 { GuestType } from \"../Guest/Guest\";\nimport { PatronPool } from \"../Patron/PatronPool\";\nimport { value } from \"./Source\";\nimport { SourceWithPool, SourceWithPoolType } from \"./SourceWithPool\";\n\n/**\n * @url https://kosukhin.github.io/patron.site/#/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 { 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://kosukhin.github.io/patron.site/#/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;AAEnB;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;;AC9CO,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,QAAa,EAAA;AAAb,IAAA,IAAA,CAAA,QAAA,GAAA,QAAA;AACzB,IAAA,IAAI,aAAa,MAAW,EAAA;AAC1B,MAAM,MAAA,IAAI,MAAM,2CAA2C,CAAA;AAAA;AAC7D;AACF,EAEO,KAAK,KAAgB,EAAA;AAC1B,IAAA,IAAA,CAAK,QAAW,GAAA,KAAA;AAChB,IAAO,OAAA,IAAA;AAAA;AACT,EAEO,KAAQ,GAAA;AACb,IAAA,OAAO,IAAK,CAAA,QAAA;AAAA;AAEhB;;AClBO,MAAM,WAAiD,CAAA;AAAA,EACrD,YAAoB,SAAyB,EAAA;AAAzB,IAAA,IAAA,CAAA,SAAA,GAAA,SAAA;AACzB,IAAA,IAAI,cAAc,MAAW,EAAA;AAC3B,MAAM,MAAA,IAAI,MAAM,8CAA8C,CAAA;AAAA;AAChE;AACF,EAEO,KAAK,KAAgB,EAAA;AAC1B,IAAA,IAAI,QAAQ,IAAK,CAAA,SAAA;AACjB,IAAI,IAAA,OAAO,UAAU,UAAY,EAAA;AAC/B,MAAQ,KAAA,GAAA,IAAI,MAAM,KAAK,CAAA;AAAA;AAEzB,IAAA,KAAA,CAAM,KAAK,KAAK,CAAA;AAChB,IAAO,OAAA,IAAA;AAAA;AACT,EAEO,YAAe,GAAA;AACpB,IAAA,IAAI,OAAO,IAAK,CAAA,SAAA,KAAc,cAAc,CAAC,IAAA,CAAK,UAAU,YAAc,EAAA;AACxE,MAAO,OAAA,OAAA;AAAA;AAET,IAAO,OAAA,IAAA,CAAK,UAAU,YAAa,EAAA;AAAA;AACrC,EAEO,SAAS,KAA0B,EAAA;AACxC,IAAA,MAAM,kBAAkB,IAAK,CAAA,SAAA;AAC7B,IAAA,OAAO,eAAgB,CAAA,QAAA,GAAW,eAAgB,CAAA,QAAA,CAAS,KAAK,CAAI,GAAA,KAAA;AAAA;AAExE;;ACtBO,MAAM,eAAqD,CAAA;AAAA,EACzD,WAAA,CACG,OACA,YACR,EAAA;AAFQ,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AACA,IAAA,IAAA,CAAA,YAAA,GAAA,YAAA;AAER,IAAA,IAAI,UAAU,MAAW,EAAA;AACvB,MAAM,MAAA,IAAI,MAAM,8CAA8C,CAAA;AAAA;AAEhE,IAAA,IAAI,iBAAiB,MAAW,EAAA;AAC9B,MAAM,MAAA,IAAI,MAAM,qDAAqD,CAAA;AAAA;AACvE;AACF,EAEO,SAAS,KAA0B,EAAA;AACxC,IAAO,OAAA,IAAA,CAAK,aAAa,KAAK,CAAA;AAAA;AAChC,EAEO,KAAK,KAAgB,EAAA;AAC1B,IAAK,IAAA,CAAA,KAAA,EAAO,KAAK,KAAK,CAAA;AACtB,IAAO,OAAA,IAAA;AAAA;AAEX;;AC3BO,MAAM,YAAiD,CAAA;AAAA,EACrD,WAAA,CACG,WACA,OACR,EAAA;AAFQ,IAAA,IAAA,CAAA,SAAA,GAAA,SAAA;AACA,IAAA,IAAA,CAAA,OAAA,GAAA,OAAA;AAAA;AACP,EAEI,KAAK,KAAgB,EAAA;AAC1B,IAAA,IAAA,CAAK,IAAK,CAAA,OAAA,CAAQ,KAAK,CAAA,EAAG,KAAK,SAAS,CAAA;AACxC,IAAO,OAAA,IAAA;AAAA;AAEX;;;;;ACLO,MAAM,oBAAsD,CAAA;AAAA,EAG1D,WAAA,CACL,WACA,OACA,EAAA;AALF,IAAOA,eAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AAML,IAAA,IAAA,CAAK,OAAO,OAAQ,CAAA,CAAC,MAAM,IAAK,CAAA,CAAA,EAAG,SAAS,CAAC,CAAA;AAAA;AAKjD;;AChBO,MAAM,MAA4C,CAAA;AAAA,EAChD,YAAoB,YAA4B,EAAA;AAA5B,IAAA,IAAA,CAAA,YAAA,GAAA,YAAA;AACzB,IAAA,IAAI,iBAAiB,MAAW,EAAA;AAC9B,MAAM,MAAA,IAAI,MAAM,4CAA4C,CAAA;AAAA;AAC9D;AACF,EAEO,YAAe,GAAA;AACpB,IAAO,OAAA,QAAA;AAAA;AACT,EAEO,KAAK,KAAgB,EAAA;AAC1B,IAAK,IAAA,CAAA,KAAA,EAAO,KAAK,YAAY,CAAA;AAC7B,IAAO,OAAA,IAAA;AAAA;AACT,EAEO,SAAS,KAA0B,EAAA;AACxC,IAAA,MAAM,kBAAkB,IAAK,CAAA,YAAA;AAC7B,IAAO,OAAA,eAAA,EAAiB,QAAW,GAAA,KAAK,CAAK,IAAA,KAAA;AAAA;AAEjD;AAKa,MAAA,QAAA,GAAW,CAAC,KAAA,KACvB,OAAO,KAAA,KAAU,YACjB,KAAU,KAAA,IAAA,IACV,KAAO,EAAA,YAAA,IAAqB,KAAA;;;;;ACzBvB,MAAM,UAAgD,CAAA;AAAA,EAGpD,YAAoB,SAAyB,EAAA;AAAzB,IAAA,IAAA,CAAA,SAAA,GAAA,SAAA;AAF3B,IAAAA,eAAA,CAAA,IAAA,EAAQ,UAAW,EAAA,KAAA,CAAA;AAGjB,IAAA,IAAI,cAAc,MAAW,EAAA;AAC3B,MAAM,MAAA,IAAI,MAAM,6CAA6C,CAAA;AAAA;AAC/D;AACF,EAEO,YAAe,GAAA;AACpB,IAAO,OAAA,QAAA;AAAA;AACT,EAEO,KAAK,KAAgB,EAAA;AAC1B,IAAI,IAAA,CAAC,KAAK,QAAU,EAAA;AAClB,MAAA,IAAA,CAAK,QAAW,GAAA,IAAA;AAChB,MAAK,IAAA,CAAA,KAAA,EAAO,KAAK,SAAS,CAAA;AAAA;AAE5B,IAAO,OAAA,IAAA;AAAA;AACT,EAEO,SAAS,KAA0B,EAAA;AACxC,IAAA,IAAI,KAAK,QAAU,EAAA;AACjB,MAAO,OAAA,IAAA;AAAA;AAET,IAAA,MAAM,kBAAkB,IAAK,CAAA,SAAA;AAC7B,IAAA,OAAO,eAAgB,CAAA,QAAA,GAAW,eAAgB,CAAA,QAAA,CAAS,KAAK,CAAI,GAAA,KAAA;AAAA;AAExE;;;;;AC/BO,MAAM,aAAkD,CAAA;AAAA,EAGtD,WAAA,CAAY,WAAyB,OAA0B,EAAA;AAFtE,IAAQA,eAAA,CAAA,IAAA,EAAA,cAAA,CAAA;AAGN,IAAA,IAAA,CAAK,YAAe,GAAA,IAAI,YAAa,CAAA,SAAA,EAAW,OAAO,CAAA;AAAA;AACzD,EAEO,KAAK,KAAgB,EAAA;AAC1B,IAAK,IAAA,CAAA,YAAA,CAAa,KAAK,KAAK,CAAA;AAC5B,IAAO,OAAA,IAAA;AAAA;AACT,EAEO,YAAmC,GAAA;AACxC,IAAO,OAAA,QAAA;AAAA;AAEX;;;;;ACfO,MAAM,qBAAuD,CAAA;AAAA,EAG3D,WAAA,CACL,WACA,OACA,EAAA;AALF,IAAQA,eAAA,CAAA,IAAA,EAAA,cAAA,CAAA;AAMN,IAAA,IAAA,CAAK,YAAe,GAAA,IAAI,oBAAqB,CAAA,SAAA,EAAW,OAAO,CAAA;AAAA;AACjE,EAEO,KAAK,KAAgB,EAAA;AAC1B,IAAK,IAAA,CAAA,YAAA,CAAa,KAAK,KAAK,CAAA;AAC5B,IAAO,OAAA,IAAA;AAAA;AACT,EAEO,YAAmC,GAAA;AACxC,IAAO,OAAA,QAAA;AAAA;AAEX;;;;;ACRO,MAAM,cAAmD,CAAA;AAAA,EAKvD,YAAoB,cAAoB,EAAA;AAApB,IAAA,IAAA,CAAA,cAAA,GAAA,cAAA;AAJ3B,IAAQA,eAAA,CAAA,IAAA,EAAA,SAAA,EAAU,IAAI,UAAA,CAAW,IAAI,CAAA,CAAA;AACrC,IAAQA,eAAA,CAAA,IAAA,EAAA,cAAA,EAAe,IAAI,UAAA,CAAW,IAAI,CAAA,CAAA;AAC1C,IAAQA,eAAA,CAAA,IAAA,EAAA,SAAA,CAAA;AAGN,IAAA,IAAA,CAAK,UAAU,cAAmB,KAAA,MAAA;AAAA;AACpC,EAEO,IAAO,GAAA;AACZ,IAAA,OAAO,IAAK,CAAA,OAAA;AAAA;AACd,EAEO,KAAK,KAAgB,EAAA;AAC1B,IAAA,IAAA,CAAK,OAAU,GAAA,KAAA;AACf,IAAA,IAAA,CAAK,cAAiB,GAAA,KAAA;AACtB,IAAK,IAAA,CAAA,OAAA,CAAQ,IAAK,CAAA,IAAA,CAAK,cAAc,CAAA;AACrC,IAAK,IAAA,CAAA,YAAA,CAAa,IAAK,CAAA,IAAA,CAAK,cAAc,CAAA;AAC1C,IAAO,OAAA,IAAA;AAAA;AACT,EAEO,MAAM,KAA2B,EAAA;AACtC,IAAA,IAAI,KAAK,OAAS,EAAA;AAChB,MAAI,IAAA,QAAA,CAAS,KAAK,CAAG,EAAA;AACnB,QAAK,IAAA,CAAA,YAAA,CAAa,IAAI,KAAK,CAAA;AAAA;AAE7B,MAAO,OAAA,IAAA;AAAA;AAGT,IAAI,IAAA,OAAO,UAAU,UAAY,EAAA;AAC/B,MAAA,IAAA,CAAK,QAAQ,UAAW,CAAA,IAAA,CAAK,gBAAgB,IAAI,KAAA,CAAM,KAAK,CAAC,CAAA;AAAA,KACxD,MAAA;AACL,MAAA,IAAA,CAAK,OAAQ,CAAA,UAAA,CAAW,IAAK,CAAA,cAAA,EAAgB,KAAK,CAAA;AAAA;AAGpD,IAAO,OAAA,IAAA;AAAA;AACT,EAEO,MAAS,GAAA;AACd,IAAA,OAAO,CAAC,IAAK,CAAA,OAAA;AAAA;AAEjB;;;;;AC1CO,MAAM,SAAyC,CAAA;AAAA,EAS7C,WAAA,CAAY,gBAA6B,GAAA,EAAI,EAAA;AARpD,IAAQA,eAAA,CAAA,IAAA,EAAA,QAAA,CAAA;AAER,IAAQA,eAAA,CAAA,IAAA,EAAA,WAAA,CAAA;AAER,IAAQA,eAAA,CAAA,IAAA,EAAA,YAAA,sBAAiB,GAAI,EAAA,CAAA;AAE7B,IAAQA,eAAA,CAAA,IAAA,EAAA,eAAA,EAAgB,IAAI,SAAA,CAAU,IAAI,CAAA,CAAA;AAGxC,IAAA,IAAA,CAAK,MAAS,GAAA,IAAI,cAAwC,CAAA,EAAE,CAAA;AAC5D,IAAK,IAAA,CAAA,SAAA,GAAY,IAAI,GAAA,CAAI,gBAAgB,CAAA;AAAA;AAC3C,EAEO,WAAW,KAAqB,EAAA;AACrC,IAAM,MAAA,WAAA,GAAc,IAAI,WAAA,CAAY,KAAK,CAAA;AACzC,IAAA,IAAA,CAAK,aAAc,CAAA,GAAA;AAAA,MACjB,IAAI,SAAA,CAAU,WAAa,EAAA,CAAC,KAAmC,KAAA;AAC7D,QAAA,WAAA,CAAY,IAAK,CAAA,MAAA,CAAO,MAAO,CAAA,KAAK,CAAM,CAAA;AAAA,OAC3C;AAAA,KACH;AACA,IAAI,IAAA,IAAA,CAAK,aAAe,EAAA;AACtB,MAAA,IAAA,CAAK,MAAO,CAAA,KAAA;AAAA,QACV,IAAI,KAAM,CAAA,CAAC,GAAiC,KAAA;AAC1C,UAAA,IAAA,CAAK,aAAc,CAAA,IAAA,CAAK,MAAO,CAAA,MAAA,CAAO,GAAG,CAAC,CAAA;AAAA,SAC3C;AAAA,OACH;AAAA;AAEF,IAAO,OAAA,IAAA;AAAA;AACT,EAEO,MAAM,KAAqB,EAAA;AAChC,IAAM,MAAA,WAAA,GAAc,IAAI,WAAA,CAAY,KAAK,CAAA;AACzC,IAAI,IAAA,IAAA,CAAK,aAAe,EAAA;AACtB,MAAK,IAAA,CAAA,aAAA,CAAc,IAAI,WAAW,CAAA;AAClC,MAAA,IAAA,CAAK,MAAO,CAAA,KAAA;AAAA,QACV,IAAI,KAAM,CAAA,CAAC,GAAQ,KAAA;AACjB,UAAK,IAAA,CAAA,aAAA,CAAc,KAAK,GAAG,CAAA;AAAA,SAC5B;AAAA,OACH;AAAA,KACK,MAAA;AACL,MAAK,IAAA,CAAA,aAAA,CAAc,IAAI,WAAW,CAAA;AAAA;AAEpC,IAAO,OAAA,IAAA;AAAA;AACT,EAEO,SAAY,GAAiC,EAAA;AAClD,IAAK,IAAA,CAAA,SAAA,CAAU,IAAI,GAAG,CAAA;AACtB,IAAO,OAAA,IAAI,KAAM,CAAA,CAAC,KAAU,KAAA;AAC1B,MAAA,IAAA,CAAK,MAAO,CAAA,KAAA;AAAA,QACV,IAAI,KAAM,CAAA,CAAC,GAAiC,KAAA;AAC1C,UAAK,IAAA,CAAA,UAAA,CAAW,IAAI,GAAG,CAAA;AACvB,UAAA,MAAM,OAAU,GAAA;AAAA,YACd,GAAG,GAAA;AAAA,YACH,CAAC,GAAG,GAAG;AAAA,WACT;AACA,UAAK,IAAA,CAAA,MAAA,CAAO,KAAK,OAAO,CAAA;AACxB,UAAI,IAAA,IAAA,CAAK,aAAe,EAAA;AACtB,YAAK,IAAA,CAAA,aAAA,CAAc,KAAK,OAAO,CAAA;AAAA;AACjC,SACD;AAAA,OACH;AAAA,KACD,CAAA;AAAA;AACH,EAEQ,WAAc,GAAA;AACpB,IACE,OAAA,IAAA,CAAK,WAAW,IAAO,GAAA,CAAA,IAAK,KAAK,UAAW,CAAA,IAAA,KAAS,KAAK,SAAU,CAAA,IAAA;AAAA;AAG1E;;ACxEgB,SAAA,KAAA,CAAS,QAAuB,KAAqB,EAAA;AACnE,EAAA,IAAI,WAAW,MAAW,EAAA;AACxB,IAAM,MAAA,IAAI,MAAM,qCAAqC,CAAA;AAAA;AAEvD,EAAA,IAAI,UAAU,MAAW,EAAA;AACvB,IAAM,MAAA,IAAI,MAAM,oCAAoC,CAAA;AAAA;AAEtD,EAAI,IAAA,OAAO,WAAW,UAAY,EAAA;AAChC,IAAA,OAAO,OAAO,KAAK,CAAA;AAAA,GACd,MAAA;AACL,IAAO,OAAA,MAAA,CAAO,MAAM,KAAK,CAAA;AAAA;AAE7B;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;;AC/CrE,MAAM,cAAwD,CAAA;AAAA,EAC5D,WAAA,CACG,YACA,YACR,EAAA;AAFQ,IAAA,IAAA,CAAA,UAAA,GAAA,UAAA;AACA,IAAA,IAAA,CAAA,YAAA,GAAA,YAAA;AAER,IAAA,IAAI,eAAe,MAAW,EAAA;AAC5B,MAAM,MAAA,IAAI,MAAM,kDAAkD,CAAA;AAAA;AAEpE,IAAA,IAAI,iBAAiB,MAAW,EAAA;AAC9B,MAAM,MAAA,IAAI,MAAM,oDAAoD,CAAA;AAAA;AACtE;AACF,EAEO,MAAM,KAAwB,EAAA;AACnC,IAAM,MAAA,GAAA,GAAM,IAAI,SAAgB,EAAA;AAChC,IAAM,MAAA,cAAA,GAAiB,IAAI,cAAe,EAAA;AAC1C,IAAA,MAAM,YAAe,GAAA,IAAA,CAAK,YAAa,CAAA,GAAA,CAAI,cAAc,CAAA;AAEzD,IAAA,KAAA;AAAA,MACE,IAAK,CAAA,UAAA;AAAA,MACL,IAAI,SAAA,CAAU,KAAO,EAAA,CAAC,QAAa,KAAA;AACjC,QAAA,IAAI,KAAQ,GAAA,CAAA;AAEZ,QAAA,MAAM,iBAAiB,MAAM;AAC3B,UAAA,IAAI,QAAS,CAAA,KAAA,GAAQ,CAAC,CAAA,KAAM,MAAW,EAAA;AACrC,YAAA,KAAA,GAAQ,KAAQ,GAAA,CAAA;AAChB,YAAO,MAAA,EAAA;AAAA,WACF,MAAA;AACL,YAAA,GAAA,CAAI,WAAW,KAAK,CAAA;AAAA;AACtB,SACF;AAEA,QAAA,SAAS,MAAS,GAAA;AAChB,UAAA,cAAA,CAAe,KAAK,IAAI,CAAA;AACxB,UAAM,MAAA,SAAA,GAAY,SAAS,KAAK,CAAA;AAChC,UAAI,IAAA,QAAA,CAAS,SAAS,CAAG,EAAA;AACvB,YAAA,KAAA;AAAA,cACE,SAAA;AAAA,cACA,IAAI,UAAW,CAAA,CAAC,YAAiB,KAAA;AAC/B,gBAAA,cAAA,CAAe,KAAK,YAAY,CAAA;AAChC,gBAAA,KAAA,CAAM,cAAc,GAAI,CAAA,QAAA,CAAS,KAAM,CAAA,QAAA,EAAU,CAAC,CAAA;AAClD,gBAAe,cAAA,EAAA;AAAA,eAChB;AAAA,aACH;AAAA,WACK,MAAA;AACL,YAAA,cAAA,CAAe,KAAK,SAAS,CAAA;AAC7B,YAAA,KAAA,CAAM,cAAc,GAAI,CAAA,QAAA,CAAS,KAAM,CAAA,QAAA,EAAU,CAAC,CAAA;AAClD,YAAe,cAAA,EAAA;AAAA;AACjB;AAGF,QAAI,IAAA,QAAA,CAAS,KAAK,CAAA,KAAM,MAAW,EAAA;AACjC,UAAO,MAAA,EAAA;AAAA,SACF,MAAA;AACL,UAAK,IAAA,CAAA,IAAI,KAAK,CAAA;AAAA;AAChB,OACD;AAAA,KACH;AACA,IAAO,OAAA,IAAA;AAAA;AAEX;;ACxDO,MAAM,SAAmD,CAAA;AAAA,EACvD,WAAA,CACG,YACA,YACR,EAAA;AAFQ,IAAA,IAAA,CAAA,UAAA,GAAA,UAAA;AACA,IAAA,IAAA,CAAA,YAAA,GAAA,YAAA;AAER,IAAA,IAAI,eAAe,MAAW,EAAA;AAC5B,MAAM,MAAA,IAAI,MAAM,6CAA6C,CAAA;AAAA;AAE/D,IAAA,IAAI,iBAAiB,MAAW,EAAA;AAC9B,MAAM,MAAA,IAAI,MAAM,+CAA+C,CAAA;AAAA;AACjE;AACF,EAEO,MAAM,KAAwB,EAAA;AACnC,IAAM,MAAA,GAAA,GAAM,IAAI,SAAU,EAAA;AAC1B,IAAA,KAAA;AAAA,MACE,IAAK,CAAA,UAAA;AAAA,MACL,IAAI,SAAA,CAAqB,KAAO,EAAA,CAAC,QAAa,KAAA;AAC5C,QAAS,QAAA,CAAA,OAAA,CAAQ,CAAC,GAAA,EAAK,KAAU,KAAA;AAC/B,UAAM,MAAA,WAAA,GAAc,SAAS,GAAG,CAAA,GAC5B,MACA,IAAI,MAAA,CAAO,CAAC,UAAe,KAAA;AACzB,YAAA,IAAA,CAAK,KAAK,UAAU,CAAA;AAAA,WACrB,CAAA;AACL,UAAA,MAAM,YAAe,GAAA,IAAA,CAAK,YAAa,CAAA,GAAA,CAAI,WAAW,CAAA;AACtD,UAAA,KAAA,CAAM,cAAc,GAAI,CAAA,QAAA,CAAS,KAAM,CAAA,QAAA,EAAU,CAAC,CAAA;AAAA,SACnD,CAAA;AAAA,OACF;AAAA,KACH;AACA,IAAA,GAAA,CAAI,WAAsB,KAAK,CAAA;AAC/B,IAAO,OAAA,IAAA;AAAA;AAEX;;ACxCO,MAAM,UAA6C,CAAA;AAAA,EACjD,YAAoB,OAA0B,EAAA;AAA1B,IAAA,IAAA,CAAA,OAAA,GAAA,OAAA;AACzB,IAAA,IAAI,YAAY,MAAW,EAAA;AACzB,MAAM,MAAA,IAAI,MAAM,2CAA2C,CAAA;AAAA;AAC7D;AACF,EAEO,MAAM,KAA2B,EAAA;AACtC,IAAA,IAAI,mBAAyC,GAAA,IAAA;AAC7C,IAAK,IAAA,CAAA,OAAA,CAAQ,OAAQ,CAAA,CAAC,MAAW,KAAA;AAC/B,MAAA,KAAA;AAAA,QACE,MAAA;AAAA,QACA,IAAI,SAAA,CAAqB,KAAO,EAAA,CAACA,MAAU,KAAA;AACzC,UAAI,IAAA,CAAC,mBAAuB,IAAA,mBAAA,KAAwB,MAAQ,EAAA;AAC1D,YAAA,IAAA,CAAKA,QAAY,KAAK,CAAA;AACtB,YAAsB,mBAAA,GAAA,MAAA;AAAA;AACxB,SACD;AAAA,OACH;AAAA,KACD,CAAA;AACD,IAAO,OAAA,IAAA;AAAA;AAEX;;;;;ACXO,MAAM,YAAqD,CAAA;AAAA,EAGzD,YACG,cACR,EAAA;AADQ,IAAA,IAAA,CAAA,cAAA,GAAA,cAAA;AAHV,IAAQD,eAAA,CAAA,IAAA,EAAA,QAAA,EAAS,IAAI,cAAkB,EAAA,CAAA;AAKrC,IAAA,IAAI,mBAAmB,MAAW,EAAA;AAChC,MAAA,MAAM,IAAI,KAAA;AAAA,QACR;AAAA,OACF;AAAA;AACF;AACF,EAEO,GAAG,MAAiB,EAAA;AACzB,IAAK,IAAA,CAAA,cAAA,CAAe,MAAQ,EAAA,IAAA,CAAK,MAAM,CAAA;AACvC,IAAO,OAAA,IAAA;AAAA;AACT,EAEO,MAAM,KAA2B,EAAA;AACtC,IAAK,IAAA,CAAA,MAAA,CAAO,MAAM,KAAK,CAAA;AACvB,IAAO,OAAA,IAAA;AAAA;AAEX;;AChCO,MAAM,aAA4D,CAAA;AAAA,EAChE,WAAA,CACG,WACA,UACR,EAAA;AAFQ,IAAA,IAAA,CAAA,SAAA,GAAA,SAAA;AACA,IAAA,IAAA,CAAA,UAAA,GAAA,UAAA;AAER,IAAA,IAAI,cAAc,MAAW,EAAA;AAC3B,MAAM,MAAA,IAAI,MAAM,gDAAgD,CAAA;AAAA;AAElE,IAAA,IAAI,eAAe,MAAW,EAAA;AAC5B,MAAM,MAAA,IAAI,MAAM,iDAAiD,CAAA;AAAA;AACnE;AACF,EAEO,MAAM,KAAqB,EAAA;AAChC,IAAM,KAAA,CAAA,IAAA,CAAK,YAAY,KAAK,CAAA;AAC5B,IAAO,OAAA,IAAA;AAAA;AACT,EAEO,KAAKC,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;;;;;ACbO,MAAM,UAA+C,CAAA;AAAA,EAGnD,YAAY,YAAkB,EAAA;AAFrC,IAAQ,aAAA,CAAA,IAAA,EAAA,QAAA,CAAA;AAGN,IAAK,IAAA,CAAA,MAAA,GAAS,IAAI,cAAA,CAAe,YAAY,CAAA;AAAA;AAC/C,EAEO,MAAM,KAAqB,EAAA;AAChC,IAAM,KAAA,CAAA,IAAA,CAAK,QAAQ,KAAK,CAAA;AACxB,IAAO,OAAA,IAAA;AAAA;AACT,EAEO,KAAKC,MAAgB,EAAA;AAC1B,IAAA,IAAI,CAAC,IAAA,CAAK,MAAO,CAAA,MAAA,EAAU,EAAA;AACzB,MAAK,IAAA,CAAA,MAAA,CAAO,KAAKA,MAAK,CAAA;AAAA;AAExB,IAAO,OAAA,IAAA;AAAA;AACT,EAEO,IAAsB,GAAA;AAC3B,IAAO,OAAA,IAAA,CAAK,OAAO,IAAK,EAAA;AAAA;AAE5B;;ACpBO,MAAM,YAA0C,CAAA;AAAA,EAC9C,WACG,CAAA,aAAA,EACA,OAAmC,GAAA,EAC3C,EAAA;AAFQ,IAAA,IAAA,CAAA,aAAA,GAAA,aAAA;AACA,IAAA,IAAA,CAAA,OAAA,GAAA,OAAA;AAER,IAAA,IAAI,kBAAkB,MAAW,EAAA;AAC/B,MAAM,MAAA,IAAI,MAAM,mDAAmD,CAAA;AAAA;AACrE;AACF,EAEO,OACF,IACuB,EAAA;AAC1B,IAAA,OAAO,IAAK,IAAK,CAAA,aAAA;AAAA,MACf,GAAG,IAAA;AAAA,MACH,IAAK,CAAA;AAAA,KACP;AAAA;AAEJ;;ACrBO,MAAM,OAAqC,CAAA;AAAA,EACzC,YAAoB,UAAmC,EAAA;AAAnC,IAAA,IAAA,CAAA,UAAA,GAAA,UAAA;AACzB,IAAA,IAAI,eAAe,MAAW,EAAA;AAC5B,MAAM,MAAA,IAAI,MAAM,2CAA2C,CAAA;AAAA;AAC7D;AACF,EAEO,OACF,IACuB,EAAA;AAC1B,IAAO,OAAA,IAAA,CAAK,UAAW,CAAA,GAAG,IAAI,CAAA;AAAA;AAElC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"silentium.cjs","sources":["../src/Guest/Guest.ts","../src/Guest/GuestCast.ts","../src/Patron/PatronPool.ts","../src/Guest/GuestPool.ts","../src/Guest/GuestSync.ts","../src/Guest/GuestObject.ts","../src/Guest/GuestDisposable.ts","../src/Guest/GuestApplied.ts","../src/Guest/GuestExecutorApplied.ts","../src/Patron/Patron.ts","../src/Patron/PatronOnce.ts","../src/Patron/PatronApplied.ts","../src/Patron/PatronExecutorApplied.ts","../src/Source/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/SourceOnce.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\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 if (theValue === undefined) {\n throw new Error(\"GuestSync didnt receive theValue argument\");\n }\n }\n\n public give(value: T): this {\n this.theValue = value;\n return this;\n }\n\n public value() {\n if (!this.theValue) {\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-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/#/guest/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 SourceType<T = any> = SourceExecutorType<T> | SourceObjectType<T>;\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) {\n throw new Error(\"value didnt receive source argument\");\n }\n if (guest === undefined) {\n throw new Error(\"value didnt receive guest argument\");\n }\n if (typeof source === \"function\") {\n return source(guest);\n } else {\n return source.value(guest);\n }\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/#/guest/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/#/guest/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/#/guest/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/#/guest/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-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 { 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 { 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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"}