silentium 0.0.55 → 0.0.57

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,22 @@
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.57](https://github.com/silentium-lab/silentium/compare/v0.0.56...v0.0.57) (2025-07-05)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * **67:** ap helper to call fns with primitives ([dad122c](https://github.com/silentium-lab/silentium/commit/dad122c074aca920b817b462911ac33c09aaebf9))
11
+ * **67:** commitizen fix on first position ([de91951](https://github.com/silentium-lab/silentium/commit/de9195154da419d0096bd6662ed63102b1525f46))
12
+
13
+ ### [0.0.56](https://github.com/silentium-lab/silentium/compare/v0.0.55...v0.0.56) (2025-07-03)
14
+
15
+
16
+ ### Bug Fixes
17
+
18
+ * **main:** chain fix ([3402552](https://github.com/silentium-lab/silentium/commit/340255232c855fbe1d8ae0e44b33e0844b183b24))
19
+ * **main:** cz script didnt commit all files ([7fa6745](https://github.com/silentium-lab/silentium/commit/7fa6745e438a1d16738d46499175446c4a26e279))
20
+
5
21
  ### [0.0.55](https://github.com/silentium-lab/silentium/compare/v0.0.54...v0.0.55) (2025-07-03)
6
22
 
7
23
 
package/commitizen.cjs CHANGED
@@ -7,6 +7,10 @@ function getGitBranch() {
7
7
 
8
8
  module.exports = {
9
9
  types: [
10
+ {
11
+ value: "fix",
12
+ name: "fix: Bug fixes",
13
+ },
10
14
  {
11
15
  value: "feat",
12
16
  name: "feat: Adding new functionality",
@@ -15,10 +19,6 @@ module.exports = {
15
19
  value: "refactor",
16
20
  name: "refactor: Code edits without fixing bugs or adding new features",
17
21
  },
18
- {
19
- value: "fix",
20
- name: "fix: Bug fixes",
21
- },
22
22
  {
23
23
  value: "build",
24
24
  name: "build: Building a project or changing external dependencies",
@@ -13,6 +13,7 @@ const _Information = class _Information {
13
13
  __publicField$2(this, "owner");
14
14
  __publicField$2(this, "executedCbs");
15
15
  __publicField$2(this, "alreadyExecuted", false);
16
+ __publicField$2(this, "debugCbs", []);
16
17
  _Information.instances += 1;
17
18
  }
18
19
  /**
@@ -21,6 +22,7 @@ const _Information = class _Information {
21
22
  next(value) {
22
23
  if (this.owner !== void 0) {
23
24
  this.owner.give(value);
25
+ this.doDebug("next value", value);
24
26
  }
25
27
  return this;
26
28
  }
@@ -65,6 +67,7 @@ const _Information = class _Information {
65
67
  this.owner = void 0;
66
68
  this.executedCbs = void 0;
67
69
  this.destructor = void 0;
70
+ this.doDebug("destroyed");
68
71
  return this;
69
72
  }
70
73
  /**
@@ -81,6 +84,7 @@ const _Information = class _Information {
81
84
  return `#info_${this.theName}_${_Information.instances}`;
82
85
  }
83
86
  executed(cb) {
87
+ this.doDebug("executed");
84
88
  if (!this.executedCbs) {
85
89
  this.executedCbs = [];
86
90
  }
@@ -93,6 +97,13 @@ const _Information = class _Information {
93
97
  hasOwner() {
94
98
  return !!this.owner;
95
99
  }
100
+ debug(cb) {
101
+ this.debugCbs.push(cb);
102
+ return this;
103
+ }
104
+ doDebug(...data) {
105
+ this.debugCbs.forEach((cb) => cb(...data));
106
+ }
96
107
  };
97
108
  __publicField$2(_Information, "instances", 0);
98
109
  let Information = _Information;
@@ -106,7 +117,7 @@ class Owner {
106
117
  this.ownerFn = ownerFn;
107
118
  this.errorFn = errorFn;
108
119
  this.disposedFn = disposedFn;
109
- __publicField$1(this, "cbs", []);
120
+ __publicField$1(this, "debugCbs", []);
110
121
  }
111
122
  give(value) {
112
123
  this.doDebug("value", value);
@@ -126,11 +137,11 @@ class Owner {
126
137
  return this.disposedFn !== void 0 ? this.disposedFn() : false;
127
138
  }
128
139
  debug(cb) {
129
- this.cbs.push(cb);
140
+ this.debugCbs.push(cb);
130
141
  return this;
131
142
  }
132
143
  doDebug(...data) {
133
- this.cbs.forEach((cb) => cb(...data));
144
+ this.debugCbs.forEach((cb) => cb(...data));
134
145
  }
135
146
  }
136
147
  const O = (ownerFn) => new Owner(ownerFn);
@@ -196,7 +207,8 @@ const chain = (...infos) => {
196
207
  const info = I((g) => {
197
208
  theOwner = g;
198
209
  });
199
- info.executed(() => {
210
+ info.executed((g) => {
211
+ theOwner = g;
200
212
  handleI(0);
201
213
  });
202
214
  return info;
@@ -531,6 +543,14 @@ const lazyClass = (constructorFn, modules = {}) => {
531
543
  };
532
544
  };
533
545
 
546
+ const ap = (fn, ...args) => {
547
+ return fn(
548
+ ...args.map((arg) => {
549
+ return arg instanceof Information ? arg : I(arg);
550
+ })
551
+ );
552
+ };
553
+
534
554
  exports.I = I;
535
555
  exports.Information = Information;
536
556
  exports.O = O;
@@ -538,6 +558,7 @@ exports.Owner = Owner;
538
558
  exports.OwnerPool = OwnerPool;
539
559
  exports.all = all;
540
560
  exports.any = any;
561
+ exports.ap = ap;
541
562
  exports.applied = applied;
542
563
  exports.chain = chain;
543
564
  exports.executorApplied = executorApplied;
@@ -1 +1 @@
1
- {"version":3,"file":"silentium.cjs","sources":["../src/Information/Information.ts","../src/Owner/Owner.ts","../src/Information/All.ts","../src/Information/Any.ts","../src/Information/Chain.ts","../src/Information/ExecutorApplied.ts","../src/Information/Applied.ts","../src/Information/Filtered.ts","../src/Owner/OwnerApplied.ts","../src/Owner/OwnerExecutorApplied.ts","../src/Owner/OwnerSync.ts","../src/Information/Lazy.ts","../src/Information/Map.ts","../src/Information/Of.ts","../src/Information/Once.ts","../src/utils/OwnerPool.ts","../src/Information/Pool.ts","../src/Information/Sequence.ts","../src/Information/Stream.ts","../src/Information/FromCallback.ts","../src/Information/FromEvent.ts","../src/Information/FromPromise.ts","../src/utils/Lazy.ts","../src/utils/LazyClass.ts"],"sourcesContent":["import { Owner } from \"../Owner/Owner\";\nimport { InformationDataType } from \"../types/InformationType\";\n\ntype InfoExecutorType<T> = (g: Owner<T>) => (() => void | undefined) | void;\ntype InfoObjectType<T> = {\n value: InfoExecutorType<T>;\n};\n\ntype InformationExecutedCb<T> = (g: Owner<T>) => void;\n\n/**\n * Main information representation\n * https://silentium-lab.github.io/silentium/#/en/information\n */\nexport class Information<T = any> {\n private static instances = 0;\n private theSubInfos: Information<unknown>[] = [];\n private destructor?: () => void;\n private owner?: Owner<T>;\n private executedCbs?: InformationExecutedCb<T>[];\n private alreadyExecuted = false;\n\n public constructor(\n private info?:\n | InfoObjectType<T>\n | InfoExecutorType<T>\n | InformationDataType<T>,\n private theName = \"unknown\",\n private onlyOneOwner = true,\n ) {\n Information.instances += 1;\n }\n\n /**\n * Следующее значение источника\n */\n private next(value: T) {\n if (this.owner !== undefined) {\n this.owner.give(value);\n }\n return this;\n }\n\n /**\n * Возможность гостю получить информацию от источника\n */\n public value(owner: Owner<T>) {\n if (this.onlyOneOwner && this.owner !== undefined) {\n throw new Error(`owner already connected to info ${this.name()}`);\n }\n\n this.owner = owner;\n if (this.executedCbs !== undefined && !this.alreadyExecuted) {\n this.executedCbs.forEach((cb) => cb(owner));\n this.alreadyExecuted = true;\n }\n\n if (this.info === undefined) {\n return this;\n }\n\n if (typeof this.info === \"function\") {\n const mbDestructor = this.info(owner);\n if (\n this.destructor === undefined &&\n mbDestructor !== undefined &&\n this.info !== mbDestructor &&\n typeof mbDestructor === \"function\"\n ) {\n this.destructor = mbDestructor as () => void;\n }\n } else if (\n typeof this.info === \"object\" &&\n this.info !== null &&\n \"value\" in this.info &&\n typeof this.info.value === \"function\"\n ) {\n this.info.value(owner);\n } else {\n this.next(this.info as T);\n }\n\n return this;\n }\n\n /**\n * Ability to destroy the information info\n */\n public destroy() {\n while (this.theSubInfos.length > 0) {\n const subInfo = this.theSubInfos.shift();\n subInfo?.destroy();\n }\n if (this.destructor) {\n this.destructor();\n }\n this.owner = undefined;\n this.executedCbs = undefined;\n this.destructor = undefined;\n return this;\n }\n\n /**\n * The ability to link another info to the current info\n */\n public subInfo(info: Information<any>) {\n this.theSubInfos.push(info);\n return this;\n }\n\n public subInfos() {\n return this.theSubInfos;\n }\n\n public name() {\n return `#info_${this.theName}_${Information.instances}`;\n }\n\n public executed(cb: InformationExecutedCb<T>) {\n if (!this.executedCbs) {\n this.executedCbs = [];\n }\n this.executedCbs.push(cb);\n if (this.alreadyExecuted && this.owner !== undefined) {\n cb(this.owner);\n }\n return this;\n }\n\n public hasOwner(): boolean {\n return !!this.owner;\n }\n}\n\nexport const I = <T>(\n info?:\n | Information<T>\n | InfoObjectType<T>\n | InfoExecutorType<T>\n | InformationDataType<T>,\n theName = \"unknown\",\n onlyOneOwner = true,\n) =>\n info instanceof Information\n ? info\n : new Information(info, theName, onlyOneOwner);\n","import { OwnerExecutorType } from \"../types/OwnerType\";\n\ntype OwnerDebugCB = (...data: unknown[]) => void;\n\n/**\n * Information owner, if information\n * has owner than information executed\n * https://silentium-lab.github.io/silentium/#/en/owner\n */\nexport class Owner<T = any> {\n private cbs: OwnerDebugCB[] = [];\n\n public constructor(\n private ownerFn: OwnerExecutorType<T>,\n private errorFn?: (cause: unknown) => void,\n private disposedFn?: () => boolean,\n ) {}\n\n public give(value: T) {\n this.doDebug(\"value\", value);\n if (!this.disposed()) {\n this.ownerFn(value);\n }\n return this;\n }\n\n public error(cause: unknown) {\n this.doDebug(\"error\", cause);\n if (this.errorFn !== undefined) {\n this.errorFn(cause);\n }\n return this;\n }\n\n public disposed() {\n return this.disposedFn !== undefined ? this.disposedFn() : false;\n }\n\n public debug(cb: OwnerDebugCB) {\n this.cbs.push(cb);\n return this;\n }\n\n private doDebug(...data: unknown[]) {\n this.cbs.forEach((cb) => cb(...data));\n }\n}\n\nexport const O = <T>(ownerFn: OwnerExecutorType<T>) => new Owner(ownerFn);\n","import { Owner } from \"../Owner/Owner\";\nimport { InformationType } from \"../types/InformationType\";\nimport { Information } from \"./Information\";\n\ntype ExtractType<T> = T extends InformationType<infer U> ? U : never;\ntype ExtractTypeS<T> = T extends Information<infer U> ? U : never;\n\nexport type ExtractTypesFromArray<T extends InformationType<any>[]> = {\n [K in keyof T]: ExtractType<T[K]>;\n};\n\nexport type ExtractTypesFromArrayS<T extends Information<any>[]> = {\n [K in keyof T]: ExtractTypeS<T[K]>;\n};\n\n/**\n * Combines multiple information sources into a single unified source\n * represented as an array containing values from all sources\n * https://silentium-lab.github.io/silentium/#/en/information/all\n */\nexport const all = <const T extends Information[]>(...infos: T) => {\n const i = new Information<ExtractTypesFromArrayS<T>>((g) => {\n const keysKnown = new Set<string>(Object.keys(infos));\n const keysFilled = new Set();\n const isAllFilled = () => {\n return keysFilled.size > 0 && keysFilled.size === keysKnown.size;\n };\n const result: Record<string, unknown> = {};\n\n Object.entries(infos).forEach(([key, info]) => {\n i.subInfo(info);\n keysKnown.add(key);\n info.value(\n new Owner((v) => {\n keysFilled.add(key);\n result[key] = v;\n if (isAllFilled()) {\n g.give(Object.values(result) as ExtractTypesFromArrayS<T>);\n }\n }),\n );\n });\n });\n\n return i;\n};\n","import { I, Information } from \"./Information\";\n\n/**\n * From a set of information sources we get\n * a common response from any source for a single owner\n * https://silentium-lab.github.io/silentium/#/en/information/any\n */\nexport const any = <T>(...infos: Information<T>[]) => {\n const info = I((g) => {\n infos.forEach((info) => {\n info.value(g);\n info.subInfo(info);\n });\n });\n\n return info;\n};\n","import { O, Owner } from \"../Owner/Owner\";\nimport { I, Information } from \"./Information\";\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\ntype Last<T extends any[]> = T extends [...infer U, infer L] ? L : never;\n\n/**\n * The set of information sources forms a sequential chain where each source provides\n * an answer. The final answer will be the output result. If any source in the chain\n * provides a new answer, the component's overall response will be repeated.\n * https://silentium-lab.github.io/silentium/#/en/information/applied\n */\nexport const chain = <T extends Information[]>(\n ...infos: T\n): Information<Last<T>> => {\n let theOwner: Owner<Last<T>> | undefined;\n let lastValue: Last<T> | undefined;\n const respondedI = new WeakMap();\n\n const handleI = (index: number) => {\n const info = infos[index];\n const nextI = infos[index + 1];\n\n info.value(\n O((v) => {\n if (!nextI) {\n lastValue = v;\n theOwner?.give(v);\n }\n\n if (nextI && lastValue !== undefined && theOwner !== undefined) {\n theOwner.give(lastValue);\n }\n\n if (nextI && !respondedI.has(info)) {\n handleI(index + 1);\n }\n\n respondedI.set(info, 1);\n }),\n );\n };\n\n const info = I<Last<T>>((g) => {\n theOwner = g;\n });\n\n info.executed(() => {\n handleI(0);\n });\n\n return info;\n};\n","import { Owner } from \"../Owner/Owner\";\nimport { Information } from \"./Information\";\n\n/**\n * Information to which a function is applied in order\n * to control the value passing process\n * https://silentium-lab.github.io/silentium/#/en/information/applied\n */\nexport const executorApplied = <T>(\n base: Information<T>,\n applier: (executor: Owner<T>) => Owner<T>,\n) => {\n const i = new Information<T>((g) => {\n base.value(applier(g));\n });\n i.subInfo(base);\n\n return i;\n};\n","import { O } from \"../Owner/Owner\";\nimport { I, Information } from \"./Information\";\n\n/**\n * Information to which the function was applied to change the value\n * https://silentium-lab.github.io/silentium/#/en/information/applied\n */\nexport const applied = <T, R>(base: Information<T>, applier: (v: T) => R) => {\n const info = I((g) => {\n base.value(\n O((v) => {\n g.give(applier(v));\n }),\n );\n });\n info.subInfo(base);\n\n return info;\n};\n","import { O } from \"../Owner/Owner\";\nimport { Information } from \"./Information\";\n\n/**\n * Information whose value is being validated\n * via a predicate; if the predicate returns true, the value\n * can be passed to the output\n * https://silentium-lab.github.io/silentium/#/en/information/filtered\n */\nexport const filtered = <T>(\n base: Information<T>,\n predicate: (v: T) => boolean,\n defaultValue?: T,\n) => {\n return new Information<T>((g) => {\n base.value(\n O((v) => {\n if (predicate(v)) {\n g.give(v);\n } else if (defaultValue !== undefined) {\n g.give(defaultValue);\n }\n }),\n );\n }).subInfo(base);\n};\n","import { Owner } from \"./Owner\";\n\n/**\n * Owner to which a function is applied that modifies the incoming\n * value it receives\n * https://silentium-lab.github.io/silentium/#/en/owner/applied\n */\nexport const ownerApplied = <T, R>(\n base: Owner<R>,\n applier: (value: T) => R,\n) => {\n return new Owner<T>(\n (v) => {\n base.give(applier(v));\n },\n (cause) => {\n base.error(cause);\n },\n () => base.disposed(),\n );\n};\n","import { Owner } from \"./Owner\";\n\n/**\n * Owner to which the function is applied that\n * controls the conditions for passing the value\n * https://silentium-lab.github.io/silentium/#/en/owner/executor-applied\n */\nexport const ownerExecutorApplied = <T>(\n base: Owner<T>,\n applier: (ge: (v: T) => void) => (v: T) => void,\n) => {\n const executor = applier((v) => base.give(v));\n return new Owner<T>((v) => {\n executor(v);\n });\n};\n","import { Information } from \"../Information\";\nimport { O } from \".\";\n\nexport interface InfoSync<T> {\n syncValue(): T;\n filled(): boolean;\n}\n\n/**\n * Owner that can return a synchronous value\n * from the information passed to it. If there is no value and no\n * defaultValue, an error will occur\n * https://silentium-lab.github.io/silentium/#/en/owner/sync\n */\nexport const ownerSync = <T>(\n base: Information<T>,\n defaultValue?: T,\n): InfoSync<T> => {\n let lastValue: T | undefined;\n\n base.value(\n O((v) => {\n lastValue = v;\n }),\n );\n\n return {\n syncValue() {\n if (lastValue === undefined && defaultValue === undefined) {\n throw new Error(\"info sync is empty\");\n }\n return (lastValue ?? defaultValue) as T;\n },\n filled() {\n return lastValue !== undefined;\n },\n };\n};\n","import { O } from \"../Owner\";\nimport { LazyType } from \"../types/LazyType\";\nimport { Information } from \"./Information\";\n\n/**\n * Helps in the process of executing information to create\n * a new information object and also destroy it if\n * destruction information is received\n * https://silentium-lab.github.io/silentium/#/en/information/lazy\n */\nexport const lazyS = <T>(\n lazyI: LazyType<Information<T>>,\n destroyI?: Information<unknown>,\n) => {\n const info = new Information<T>((g) => {\n const instance = lazyI.get();\n info.subInfo(instance);\n instance.value(g);\n });\n\n if (destroyI) {\n info.subInfo(destroyI);\n destroyI.value(\n O(() => {\n info.destroy();\n }),\n );\n }\n\n return info;\n};\n","import { InformationDataType } from \"../types\";\nimport { O } from \"../Owner/Owner\";\nimport { LazyType } from \"../types/LazyType\";\nimport { all } from \"./All\";\nimport { I, Information } from \"./Information\";\n\n/**\n * Component that applies an info object constructor to each data item,\n * producing an information source with new values\n * https://silentium-lab.github.io/silentium/#/en/information/map\n */\nexport const map = <T, TG>(\n base: Information<T[]>,\n targetI: LazyType<Information<TG>>,\n) => {\n const i = new Information<TG[]>((g) => {\n base.value(\n O((v) => {\n const infos: Information<TG>[] = [];\n v.forEach((val) => {\n let valInfo: Information<T> | T = val;\n if (!(valInfo instanceof Information)) {\n valInfo = I(val as InformationDataType<T>);\n }\n const info = targetI.get(valInfo);\n infos.push(info);\n });\n const allI = all(...infos).value(g);\n i.subInfo(allI);\n }),\n );\n });\n i.subInfo(base);\n\n return i;\n};\n","import { Owner } from \"../Owner\";\nimport { Information } from \"./Information\";\nimport { InformationDataType } from \"../types/InformationType\";\n\n/**\n * A component that allows creating linked objects of information and its owner\n * in such a way that if a new value is assigned to the owner, this value\n * will become the value of the linked information source\n * https://silentium-lab.github.io/silentium/#/en/information/of\n */\nexport const of = <T>(incomeI?: InformationDataType<T>) => {\n let sharedValue = incomeI as T;\n let relatedO: Owner<T> | undefined;\n\n const notifyO = () => {\n if (relatedO !== undefined) {\n relatedO.give(sharedValue);\n }\n };\n\n const info = new Information<T>((g) => {\n relatedO = g;\n if (sharedValue !== undefined && sharedValue !== null) {\n notifyO();\n }\n }, \"of\");\n\n return [\n info,\n new Owner<T>((v) => {\n sharedValue = v;\n notifyO();\n }),\n ] as const;\n};\n","import { O } from \"../Owner\";\nimport { Information } from \"./Information\";\n\n/**\n * Limits the number of values from the information source\n * to a single value - once the first value is emitted, no more\n * values are delivered from the source\n * https://silentium-lab.github.io/silentium/#/en/information/once\n */\nexport const once = <T>(base: Information<T>) => {\n const info = new Information<T>((g) => {\n let isFilled = false;\n base.value(\n O((v) => {\n if (!isFilled) {\n isFilled = true;\n g.give(v);\n }\n }),\n );\n });\n info.subInfo(base);\n\n return info;\n};\n","import { Owner } from \"../Owner\";\n\n/**\n * Helps maintain an owner list allowing different\n * owners to get information from a common source\n * https://silentium-lab.github.io/silentium/#/en/utils/owner-pool\n */\nexport class OwnerPool<T> {\n private owners: Set<Owner<T>>;\n private innerOwner: Owner<T>;\n\n public constructor() {\n this.owners = new Set<Owner<T>>();\n this.innerOwner = new Owner(\n (v) => {\n this.owners.forEach((g) => {\n g.give(v);\n });\n },\n (cause) => {\n this.owners.forEach((g) => {\n g.error(cause);\n });\n },\n );\n }\n\n public owner() {\n return this.innerOwner;\n }\n\n public size(): number {\n return this.owners.size;\n }\n\n public has(owner: Owner<T>): boolean {\n return this.owners.has(owner);\n }\n\n public add(shouldBePatron: Owner<T>) {\n this.owners.add(shouldBePatron);\n return this;\n }\n\n public remove(g: Owner<T>) {\n this.owners.delete(g);\n return this;\n }\n\n public destroy() {\n this.owners.forEach((g) => {\n this.remove(g);\n });\n return this;\n }\n}\n","import { Owner } from \"../Owner\";\nimport { Information } from \"./Information\";\nimport { OwnerPool } from \"../utils/OwnerPool\";\n\n/**\n * An information object that helps multiple owners access\n * a single another information object\n * https://silentium-lab.github.io/silentium/#/en/information/pool\n */\nexport const pool = <T>(base: Information<T>) => {\n const ownersPool = new OwnerPool<T>();\n let lastValue: T | undefined;\n\n const i = new Information<T>(\n (g) => {\n if (lastValue !== undefined && !ownersPool.has(g)) {\n g.give(lastValue);\n }\n ownersPool.add(g);\n\n return () => {\n ownersPool.destroy();\n };\n },\n \"pool\",\n false,\n );\n i.subInfo(base);\n\n i.executed(() => {\n const gp = ownersPool.owner();\n base.value(\n new Owner((v) => {\n gp.give(v);\n lastValue = v;\n }),\n );\n });\n\n return [i, ownersPool] as const;\n};\n\nexport const poolStateless = <T>(base: Information<T>) => {\n const ownersPool = new OwnerPool<T>();\n\n const i = new Information<T>(\n (g) => {\n ownersPool.add(g);\n\n return () => {\n ownersPool.destroy();\n };\n },\n \"pool\",\n false,\n );\n i.subInfo(base);\n\n i.executed((g) => {\n ownersPool.add(g);\n base.value(ownersPool.owner());\n });\n\n return [i, ownersPool] as const;\n};\n","import { I, Information } from \"../Information\";\nimport { O } from \"../Owner\";\n\n/**\n * A component that takes one value at a time and returns an array\n * https://silentium-lab.github.io/silentium/#/en/information/sequence\n */\nexport const sequence = <T>(base: Information<T>): Information<T[]> => {\n const i = I<T[]>((o) => {\n const result: T[] = [];\n\n base.value(\n O((v) => {\n result.push(v);\n o.give(result);\n }),\n );\n });\n i.subInfo(base);\n\n return i;\n};\n","import { I, Information } from \"../Information\";\nimport { O } from \"../Owner\";\n\n/**\n * Component that receives a data array and yields values one by one\n * https://silentium-lab.github.io/silentium/#/en/information/stream\n */\nexport const stream = <T>(base: Information<T[]>): Information<T> => {\n const i = I<T>((o) => {\n base.value(\n O((v) => {\n v.forEach((cv) => {\n o.give(cv);\n });\n }),\n );\n });\n\n return i;\n};\n","import { I } from \"../Information\";\n\n/**\n * When receiving a reference to a function expecting a callback, the component\n * creates its own callback, and the data received in this callback\n * will become the value of the information object\n * https://silentium-lab.github.io/silentium/#/en/information/from-callback\n */\nexport const fromCallback = <T>(waitForCb: (cb: (v: T) => any) => unknown) => {\n return I((o) => {\n waitForCb((v) => {\n o.give(v);\n });\n });\n};\n","import { I } from \"../Information\";\n\n/**\n * A component that receives data from an event and\n * presents it as an information object\n * https://silentium-lab.github.io/silentium/#/en/information/from-event\n */\nexport const fromEvent = <T extends []>(\n emitter: any,\n eventName: string,\n subscribeMethod: string,\n unsubscribeMethod?: string,\n) => {\n return I((o) => {\n const handler = (...args: T) => {\n o.give(args);\n };\n emitter[subscribeMethod](eventName, handler);\n return () => {\n if (unsubscribeMethod !== undefined) {\n emitter[unsubscribeMethod](eventName, handler);\n }\n };\n });\n};\n","import { I, Information } from \"../Information/Information\";\n\n/**\n * Component that gets a value from a promise and\n * presents it as information\n * https://silentium-lab.github.io/silentium/#/en/information/from-promise\n */\nexport const fromPromise = <T>(p: Promise<T>): Information<T> => {\n return I((o) => {\n p.then((v) => {\n o.give(v);\n }).catch((e) => {\n o.error(e);\n });\n });\n};\n","import { LazyType } from \"../types/LazyType\";\n\n/**\n * Helps to get lazy instance of dependency\n * @url https://silentium-lab.github.io/silentium/#/utils/lazy\n */\nexport const lazy = <T>(buildingFn: (...args: any[]) => T): LazyType<T> => {\n if (buildingFn === undefined) {\n throw new Error(\"lazy didn't receive buildingFn argument\");\n }\n\n return {\n get<R extends unknown[], CT = null>(...args: R): CT extends null ? T : CT {\n return buildingFn(...args) as CT extends null ? T : CT;\n },\n };\n};\n","import { LazyType } from \"../types/LazyType\";\n\ninterface Constructable<T> {\n new (...args: unknown[]): T;\n}\n\ninterface Prototyped<T> {\n prototype: T;\n}\n\n/**\n * Helps create an object from a class\n * https://silentium-lab.github.io/silentium/#/en/utils/lazy-class\n */\nexport const lazyClass = <T>(\n constructorFn: Prototyped<T>,\n modules: Record<string, unknown> = {},\n): LazyType<T> => {\n if (constructorFn === undefined) {\n throw new Error(\"PrivateClass didn't receive constructorFn argument\");\n }\n\n return {\n get<R extends unknown[], CT = null>(...args: R): CT extends null ? T : CT {\n return new (constructorFn as Constructable<T>)(\n ...args,\n modules,\n ) as CT extends null ? T : CT;\n },\n };\n};\n"],"names":["__publicField","info"],"mappings":"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"}
1
+ {"version":3,"file":"silentium.cjs","sources":["../src/Information/Information.ts","../src/Owner/Owner.ts","../src/Information/All.ts","../src/Information/Any.ts","../src/Information/Chain.ts","../src/Information/ExecutorApplied.ts","../src/Information/Applied.ts","../src/Information/Filtered.ts","../src/Owner/OwnerApplied.ts","../src/Owner/OwnerExecutorApplied.ts","../src/Owner/OwnerSync.ts","../src/Information/Lazy.ts","../src/Information/Map.ts","../src/Information/Of.ts","../src/Information/Once.ts","../src/utils/OwnerPool.ts","../src/Information/Pool.ts","../src/Information/Sequence.ts","../src/Information/Stream.ts","../src/Information/FromCallback.ts","../src/Information/FromEvent.ts","../src/Information/FromPromise.ts","../src/utils/Lazy.ts","../src/utils/LazyClass.ts","../src/utils/Ap.ts"],"sourcesContent":["import { DebugCbType } from \"src/types\";\nimport { Owner } from \"../Owner/Owner\";\nimport { InformationDataType } from \"../types/InformationType\";\n\ntype InfoExecutorType<T> = (g: Owner<T>) => (() => void | undefined) | void;\ntype InfoObjectType<T> = {\n value: InfoExecutorType<T>;\n};\n\ntype InformationExecutedCb<T> = (g: Owner<T>) => void;\n\n/**\n * Main information representation\n * https://silentium-lab.github.io/silentium/#/en/information\n */\nexport class Information<T = any> {\n private static instances = 0;\n private theSubInfos: Information<unknown>[] = [];\n private destructor?: () => void;\n private owner?: Owner<T>;\n private executedCbs?: InformationExecutedCb<T>[];\n private alreadyExecuted = false;\n private debugCbs: DebugCbType[] = [];\n\n public constructor(\n private info?:\n | InfoObjectType<T>\n | InfoExecutorType<T>\n | InformationDataType<T>,\n private theName = \"unknown\",\n private onlyOneOwner = true,\n ) {\n Information.instances += 1;\n }\n\n /**\n * Следующее значение источника\n */\n private next(value: T) {\n if (this.owner !== undefined) {\n this.owner.give(value);\n this.doDebug(\"next value\", value);\n }\n return this;\n }\n\n /**\n * Возможность гостю получить информацию от источника\n */\n public value(owner: Owner<T>) {\n if (this.onlyOneOwner && this.owner !== undefined) {\n throw new Error(`owner already connected to info ${this.name()}`);\n }\n\n this.owner = owner;\n if (this.executedCbs !== undefined && !this.alreadyExecuted) {\n this.executedCbs.forEach((cb) => cb(owner));\n this.alreadyExecuted = true;\n }\n\n if (this.info === undefined) {\n return this;\n }\n\n if (typeof this.info === \"function\") {\n const mbDestructor = this.info(owner);\n if (\n this.destructor === undefined &&\n mbDestructor !== undefined &&\n this.info !== mbDestructor &&\n typeof mbDestructor === \"function\"\n ) {\n this.destructor = mbDestructor as () => void;\n }\n } else if (\n typeof this.info === \"object\" &&\n this.info !== null &&\n \"value\" in this.info &&\n typeof this.info.value === \"function\"\n ) {\n this.info.value(owner);\n } else {\n this.next(this.info as T);\n }\n\n return this;\n }\n\n /**\n * Ability to destroy the information info\n */\n public destroy() {\n while (this.theSubInfos.length > 0) {\n const subInfo = this.theSubInfos.shift();\n subInfo?.destroy();\n }\n if (this.destructor) {\n this.destructor();\n }\n this.owner = undefined;\n this.executedCbs = undefined;\n this.destructor = undefined;\n this.doDebug(\"destroyed\");\n return this;\n }\n\n /**\n * The ability to link another info to the current info\n */\n public subInfo(info: Information<any>) {\n this.theSubInfos.push(info);\n return this;\n }\n\n public subInfos() {\n return this.theSubInfos;\n }\n\n public name() {\n return `#info_${this.theName}_${Information.instances}`;\n }\n\n public executed(cb: InformationExecutedCb<T>) {\n this.doDebug(\"executed\");\n if (!this.executedCbs) {\n this.executedCbs = [];\n }\n this.executedCbs.push(cb);\n if (this.alreadyExecuted && this.owner !== undefined) {\n cb(this.owner);\n }\n return this;\n }\n\n public hasOwner(): boolean {\n return !!this.owner;\n }\n\n public debug(cb: DebugCbType) {\n this.debugCbs.push(cb);\n return this;\n }\n\n private doDebug(...data: unknown[]) {\n this.debugCbs.forEach((cb) => cb(...data));\n }\n}\n\nexport const I = <T>(\n info?:\n | Information<T>\n | InfoObjectType<T>\n | InfoExecutorType<T>\n | InformationDataType<T>,\n theName = \"unknown\",\n onlyOneOwner = true,\n) =>\n info instanceof Information\n ? info\n : new Information(info, theName, onlyOneOwner);\n","import { DebugCbType } from \"src/types\";\nimport { OwnerExecutorType } from \"../types/OwnerType\";\n\n/**\n * Information owner, if information\n * has owner than information executed\n * https://silentium-lab.github.io/silentium/#/en/owner\n */\nexport class Owner<T = any> {\n private debugCbs: DebugCbType[] = [];\n\n public constructor(\n private ownerFn: OwnerExecutorType<T>,\n private errorFn?: (cause: unknown) => void,\n private disposedFn?: () => boolean,\n ) {}\n\n public give(value: T) {\n this.doDebug(\"value\", value);\n if (!this.disposed()) {\n this.ownerFn(value);\n }\n return this;\n }\n\n public error(cause: unknown) {\n this.doDebug(\"error\", cause);\n if (this.errorFn !== undefined) {\n this.errorFn(cause);\n }\n return this;\n }\n\n public disposed() {\n return this.disposedFn !== undefined ? this.disposedFn() : false;\n }\n\n public debug(cb: DebugCbType) {\n this.debugCbs.push(cb);\n return this;\n }\n\n private doDebug(...data: unknown[]) {\n this.debugCbs.forEach((cb) => cb(...data));\n }\n}\n\nexport const O = <T>(ownerFn: OwnerExecutorType<T>) => new Owner(ownerFn);\n","import { Owner } from \"../Owner/Owner\";\nimport { InformationType } from \"../types/InformationType\";\nimport { Information } from \"./Information\";\n\ntype ExtractType<T> = T extends InformationType<infer U> ? U : never;\ntype ExtractTypeS<T> = T extends Information<infer U> ? U : never;\n\nexport type ExtractTypesFromArray<T extends InformationType<any>[]> = {\n [K in keyof T]: ExtractType<T[K]>;\n};\n\nexport type ExtractTypesFromArrayS<T extends Information<any>[]> = {\n [K in keyof T]: ExtractTypeS<T[K]>;\n};\n\n/**\n * Combines multiple information sources into a single unified source\n * represented as an array containing values from all sources\n * https://silentium-lab.github.io/silentium/#/en/information/all\n */\nexport const all = <const T extends Information[]>(...infos: T) => {\n const i = new Information<ExtractTypesFromArrayS<T>>((g) => {\n const keysKnown = new Set<string>(Object.keys(infos));\n const keysFilled = new Set();\n const isAllFilled = () => {\n return keysFilled.size > 0 && keysFilled.size === keysKnown.size;\n };\n const result: Record<string, unknown> = {};\n\n Object.entries(infos).forEach(([key, info]) => {\n i.subInfo(info);\n keysKnown.add(key);\n info.value(\n new Owner((v) => {\n keysFilled.add(key);\n result[key] = v;\n if (isAllFilled()) {\n g.give(Object.values(result) as ExtractTypesFromArrayS<T>);\n }\n }),\n );\n });\n });\n\n return i;\n};\n","import { I, Information } from \"./Information\";\n\n/**\n * From a set of information sources we get\n * a common response from any source for a single owner\n * https://silentium-lab.github.io/silentium/#/en/information/any\n */\nexport const any = <T>(...infos: Information<T>[]) => {\n const info = I((g) => {\n infos.forEach((info) => {\n info.value(g);\n info.subInfo(info);\n });\n });\n\n return info;\n};\n","import { O, Owner } from \"../Owner/Owner\";\nimport { I, Information } from \"./Information\";\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\ntype Last<T extends any[]> = T extends [...infer U, infer L] ? L : never;\n\n/**\n * The set of information sources forms a sequential chain where each source provides\n * an answer. The final answer will be the output result. If any source in the chain\n * provides a new answer, the component's overall response will be repeated.\n * https://silentium-lab.github.io/silentium/#/en/information/applied\n */\nexport const chain = <T extends Information[]>(\n ...infos: T\n): Information<Last<T>> => {\n let theOwner: Owner<Last<T>> | undefined;\n let lastValue: Last<T> | undefined;\n const respondedI = new WeakMap();\n\n const handleI = (index: number) => {\n const info = infos[index];\n const nextI = infos[index + 1];\n\n info.value(\n O((v) => {\n if (!nextI) {\n lastValue = v;\n theOwner?.give(v);\n }\n\n if (nextI && lastValue !== undefined && theOwner !== undefined) {\n theOwner.give(lastValue);\n }\n\n if (nextI && !respondedI.has(info)) {\n handleI(index + 1);\n }\n\n respondedI.set(info, 1);\n }),\n );\n };\n\n const info = I<Last<T>>((g) => {\n theOwner = g;\n });\n\n info.executed((g) => {\n theOwner = g;\n handleI(0);\n });\n\n return info;\n};\n","import { Owner } from \"../Owner/Owner\";\nimport { Information } from \"./Information\";\n\n/**\n * Information to which a function is applied in order\n * to control the value passing process\n * https://silentium-lab.github.io/silentium/#/en/information/applied\n */\nexport const executorApplied = <T>(\n base: Information<T>,\n applier: (executor: Owner<T>) => Owner<T>,\n) => {\n const i = new Information<T>((g) => {\n base.value(applier(g));\n });\n i.subInfo(base);\n\n return i;\n};\n","import { O } from \"../Owner/Owner\";\nimport { I, Information } from \"./Information\";\n\n/**\n * Information to which the function was applied to change the value\n * https://silentium-lab.github.io/silentium/#/en/information/applied\n */\nexport const applied = <T, R>(base: Information<T>, applier: (v: T) => R) => {\n const info = I((g) => {\n base.value(\n O((v) => {\n g.give(applier(v));\n }),\n );\n });\n info.subInfo(base);\n\n return info;\n};\n","import { O } from \"../Owner/Owner\";\nimport { Information } from \"./Information\";\n\n/**\n * Information whose value is being validated\n * via a predicate; if the predicate returns true, the value\n * can be passed to the output\n * https://silentium-lab.github.io/silentium/#/en/information/filtered\n */\nexport const filtered = <T>(\n base: Information<T>,\n predicate: (v: T) => boolean,\n defaultValue?: T,\n) => {\n return new Information<T>((g) => {\n base.value(\n O((v) => {\n if (predicate(v)) {\n g.give(v);\n } else if (defaultValue !== undefined) {\n g.give(defaultValue);\n }\n }),\n );\n }).subInfo(base);\n};\n","import { Owner } from \"./Owner\";\n\n/**\n * Owner to which a function is applied that modifies the incoming\n * value it receives\n * https://silentium-lab.github.io/silentium/#/en/owner/applied\n */\nexport const ownerApplied = <T, R>(\n base: Owner<R>,\n applier: (value: T) => R,\n) => {\n return new Owner<T>(\n (v) => {\n base.give(applier(v));\n },\n (cause) => {\n base.error(cause);\n },\n () => base.disposed(),\n );\n};\n","import { Owner } from \"./Owner\";\n\n/**\n * Owner to which the function is applied that\n * controls the conditions for passing the value\n * https://silentium-lab.github.io/silentium/#/en/owner/executor-applied\n */\nexport const ownerExecutorApplied = <T>(\n base: Owner<T>,\n applier: (ge: (v: T) => void) => (v: T) => void,\n) => {\n const executor = applier((v) => base.give(v));\n return new Owner<T>((v) => {\n executor(v);\n });\n};\n","import { Information } from \"../Information\";\nimport { O } from \".\";\n\nexport interface InfoSync<T> {\n syncValue(): T;\n filled(): boolean;\n}\n\n/**\n * Owner that can return a synchronous value\n * from the information passed to it. If there is no value and no\n * defaultValue, an error will occur\n * https://silentium-lab.github.io/silentium/#/en/owner/sync\n */\nexport const ownerSync = <T>(\n base: Information<T>,\n defaultValue?: T,\n): InfoSync<T> => {\n let lastValue: T | undefined;\n\n base.value(\n O((v) => {\n lastValue = v;\n }),\n );\n\n return {\n syncValue() {\n if (lastValue === undefined && defaultValue === undefined) {\n throw new Error(\"info sync is empty\");\n }\n return (lastValue ?? defaultValue) as T;\n },\n filled() {\n return lastValue !== undefined;\n },\n };\n};\n","import { O } from \"../Owner\";\nimport { LazyType } from \"../types/LazyType\";\nimport { Information } from \"./Information\";\n\n/**\n * Helps in the process of executing information to create\n * a new information object and also destroy it if\n * destruction information is received\n * https://silentium-lab.github.io/silentium/#/en/information/lazy\n */\nexport const lazyS = <T>(\n lazyI: LazyType<Information<T>>,\n destroyI?: Information<unknown>,\n) => {\n const info = new Information<T>((g) => {\n const instance = lazyI.get();\n info.subInfo(instance);\n instance.value(g);\n });\n\n if (destroyI) {\n info.subInfo(destroyI);\n destroyI.value(\n O(() => {\n info.destroy();\n }),\n );\n }\n\n return info;\n};\n","import { InformationDataType } from \"../types\";\nimport { O } from \"../Owner/Owner\";\nimport { LazyType } from \"../types/LazyType\";\nimport { all } from \"./All\";\nimport { I, Information } from \"./Information\";\n\n/**\n * Component that applies an info object constructor to each data item,\n * producing an information source with new values\n * https://silentium-lab.github.io/silentium/#/en/information/map\n */\nexport const map = <T, TG>(\n base: Information<T[]>,\n targetI: LazyType<Information<TG>>,\n) => {\n const i = new Information<TG[]>((g) => {\n base.value(\n O((v) => {\n const infos: Information<TG>[] = [];\n v.forEach((val) => {\n let valInfo: Information<T> | T = val;\n if (!(valInfo instanceof Information)) {\n valInfo = I(val as InformationDataType<T>);\n }\n const info = targetI.get(valInfo);\n infos.push(info);\n });\n const allI = all(...infos).value(g);\n i.subInfo(allI);\n }),\n );\n });\n i.subInfo(base);\n\n return i;\n};\n","import { Owner } from \"../Owner\";\nimport { Information } from \"./Information\";\nimport { InformationDataType } from \"../types/InformationType\";\n\n/**\n * A component that allows creating linked objects of information and its owner\n * in such a way that if a new value is assigned to the owner, this value\n * will become the value of the linked information source\n * https://silentium-lab.github.io/silentium/#/en/information/of\n */\nexport const of = <T>(incomeI?: InformationDataType<T>) => {\n let sharedValue = incomeI as T;\n let relatedO: Owner<T> | undefined;\n\n const notifyO = () => {\n if (relatedO !== undefined) {\n relatedO.give(sharedValue);\n }\n };\n\n const info = new Information<T>((g) => {\n relatedO = g;\n if (sharedValue !== undefined && sharedValue !== null) {\n notifyO();\n }\n }, \"of\");\n\n return [\n info,\n new Owner<T>((v) => {\n sharedValue = v;\n notifyO();\n }),\n ] as const;\n};\n","import { O } from \"../Owner\";\nimport { Information } from \"./Information\";\n\n/**\n * Limits the number of values from the information source\n * to a single value - once the first value is emitted, no more\n * values are delivered from the source\n * https://silentium-lab.github.io/silentium/#/en/information/once\n */\nexport const once = <T>(base: Information<T>) => {\n const info = new Information<T>((g) => {\n let isFilled = false;\n base.value(\n O((v) => {\n if (!isFilled) {\n isFilled = true;\n g.give(v);\n }\n }),\n );\n });\n info.subInfo(base);\n\n return info;\n};\n","import { Owner } from \"../Owner\";\n\n/**\n * Helps maintain an owner list allowing different\n * owners to get information from a common source\n * https://silentium-lab.github.io/silentium/#/en/utils/owner-pool\n */\nexport class OwnerPool<T> {\n private owners: Set<Owner<T>>;\n private innerOwner: Owner<T>;\n\n public constructor() {\n this.owners = new Set<Owner<T>>();\n this.innerOwner = new Owner(\n (v) => {\n this.owners.forEach((g) => {\n g.give(v);\n });\n },\n (cause) => {\n this.owners.forEach((g) => {\n g.error(cause);\n });\n },\n );\n }\n\n public owner() {\n return this.innerOwner;\n }\n\n public size(): number {\n return this.owners.size;\n }\n\n public has(owner: Owner<T>): boolean {\n return this.owners.has(owner);\n }\n\n public add(shouldBePatron: Owner<T>) {\n this.owners.add(shouldBePatron);\n return this;\n }\n\n public remove(g: Owner<T>) {\n this.owners.delete(g);\n return this;\n }\n\n public destroy() {\n this.owners.forEach((g) => {\n this.remove(g);\n });\n return this;\n }\n}\n","import { Owner } from \"../Owner\";\nimport { Information } from \"./Information\";\nimport { OwnerPool } from \"../utils/OwnerPool\";\n\n/**\n * An information object that helps multiple owners access\n * a single another information object\n * https://silentium-lab.github.io/silentium/#/en/information/pool\n */\nexport const pool = <T>(base: Information<T>) => {\n const ownersPool = new OwnerPool<T>();\n let lastValue: T | undefined;\n\n const i = new Information<T>(\n (g) => {\n if (lastValue !== undefined && !ownersPool.has(g)) {\n g.give(lastValue);\n }\n ownersPool.add(g);\n\n return () => {\n ownersPool.destroy();\n };\n },\n \"pool\",\n false,\n );\n i.subInfo(base);\n\n i.executed(() => {\n const gp = ownersPool.owner();\n base.value(\n new Owner((v) => {\n gp.give(v);\n lastValue = v;\n }),\n );\n });\n\n return [i, ownersPool] as const;\n};\n\nexport const poolStateless = <T>(base: Information<T>) => {\n const ownersPool = new OwnerPool<T>();\n\n const i = new Information<T>(\n (g) => {\n ownersPool.add(g);\n\n return () => {\n ownersPool.destroy();\n };\n },\n \"pool\",\n false,\n );\n i.subInfo(base);\n\n i.executed((g) => {\n ownersPool.add(g);\n base.value(ownersPool.owner());\n });\n\n return [i, ownersPool] as const;\n};\n","import { I, Information } from \"../Information\";\nimport { O } from \"../Owner\";\n\n/**\n * A component that takes one value at a time and returns an array\n * https://silentium-lab.github.io/silentium/#/en/information/sequence\n */\nexport const sequence = <T>(base: Information<T>): Information<T[]> => {\n const i = I<T[]>((o) => {\n const result: T[] = [];\n\n base.value(\n O((v) => {\n result.push(v);\n o.give(result);\n }),\n );\n });\n i.subInfo(base);\n\n return i;\n};\n","import { I, Information } from \"../Information\";\nimport { O } from \"../Owner\";\n\n/**\n * Component that receives a data array and yields values one by one\n * https://silentium-lab.github.io/silentium/#/en/information/stream\n */\nexport const stream = <T>(base: Information<T[]>): Information<T> => {\n const i = I<T>((o) => {\n base.value(\n O((v) => {\n v.forEach((cv) => {\n o.give(cv);\n });\n }),\n );\n });\n\n return i;\n};\n","import { I } from \"../Information\";\n\n/**\n * When receiving a reference to a function expecting a callback, the component\n * creates its own callback, and the data received in this callback\n * will become the value of the information object\n * https://silentium-lab.github.io/silentium/#/en/information/from-callback\n */\nexport const fromCallback = <T>(waitForCb: (cb: (v: T) => any) => unknown) => {\n return I((o) => {\n waitForCb((v) => {\n o.give(v);\n });\n });\n};\n","import { I } from \"../Information\";\n\n/**\n * A component that receives data from an event and\n * presents it as an information object\n * https://silentium-lab.github.io/silentium/#/en/information/from-event\n */\nexport const fromEvent = <T extends []>(\n emitter: any,\n eventName: string,\n subscribeMethod: string,\n unsubscribeMethod?: string,\n) => {\n return I((o) => {\n const handler = (...args: T) => {\n o.give(args);\n };\n emitter[subscribeMethod](eventName, handler);\n return () => {\n if (unsubscribeMethod !== undefined) {\n emitter[unsubscribeMethod](eventName, handler);\n }\n };\n });\n};\n","import { I, Information } from \"../Information/Information\";\n\n/**\n * Component that gets a value from a promise and\n * presents it as information\n * https://silentium-lab.github.io/silentium/#/en/information/from-promise\n */\nexport const fromPromise = <T>(p: Promise<T>): Information<T> => {\n return I((o) => {\n p.then((v) => {\n o.give(v);\n }).catch((e) => {\n o.error(e);\n });\n });\n};\n","import { LazyType } from \"../types/LazyType\";\n\n/**\n * Helps to get lazy instance of dependency\n * @url https://silentium-lab.github.io/silentium/#/utils/lazy\n */\nexport const lazy = <T>(buildingFn: (...args: any[]) => T): LazyType<T> => {\n if (buildingFn === undefined) {\n throw new Error(\"lazy didn't receive buildingFn argument\");\n }\n\n return {\n get<R extends unknown[], CT = null>(...args: R): CT extends null ? T : CT {\n return buildingFn(...args) as CT extends null ? T : CT;\n },\n };\n};\n","import { LazyType } from \"../types/LazyType\";\n\ninterface Constructable<T> {\n new (...args: unknown[]): T;\n}\n\ninterface Prototyped<T> {\n prototype: T;\n}\n\n/**\n * Helps create an object from a class\n * https://silentium-lab.github.io/silentium/#/en/utils/lazy-class\n */\nexport const lazyClass = <T>(\n constructorFn: Prototyped<T>,\n modules: Record<string, unknown> = {},\n): LazyType<T> => {\n if (constructorFn === undefined) {\n throw new Error(\"PrivateClass didn't receive constructorFn argument\");\n }\n\n return {\n get<R extends unknown[], CT = null>(...args: R): CT extends null ? T : CT {\n return new (constructorFn as Constructable<T>)(\n ...args,\n modules,\n ) as CT extends null ? T : CT;\n },\n };\n};\n","import { InformationDataType } from \"src/types\";\nimport { I, Information } from \"../Information\";\n\nexport const ap = <T>(\n fn: (...args: Information[]) => Information<T>,\n ...args: unknown[]\n) => {\n return fn(\n ...args.map((arg) => {\n return arg instanceof Information\n ? arg\n : I(arg as InformationDataType<any>);\n }),\n );\n};\n"],"names":["__publicField","info"],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ import { DebugCbType as DebugCbType$1 } from 'src/types';
2
+
1
3
  type ownerIntroduction = "owner" | "patron";
2
4
  type OwnerExecutorType<T = any, This = void> = (value: T) => This;
3
5
  interface OwnerObjectType<T = any> {
@@ -6,7 +8,6 @@ interface OwnerObjectType<T = any> {
6
8
  }
7
9
  type OwnerType<T = any> = OwnerExecutorType<T> | OwnerObjectType<T>;
8
10
 
9
- type OwnerDebugCB = (...data: unknown[]) => void;
10
11
  /**
11
12
  * Information owner, if information
12
13
  * has owner than information executed
@@ -16,12 +17,12 @@ declare class Owner<T = any> {
16
17
  private ownerFn;
17
18
  private errorFn?;
18
19
  private disposedFn?;
19
- private cbs;
20
+ private debugCbs;
20
21
  constructor(ownerFn: OwnerExecutorType<T>, errorFn?: ((cause: unknown) => void) | undefined, disposedFn?: (() => boolean) | undefined);
21
22
  give(value: T): this;
22
23
  error(cause: unknown): this;
23
24
  disposed(): boolean;
24
- debug(cb: OwnerDebugCB): this;
25
+ debug(cb: DebugCbType$1): this;
25
26
  private doDebug;
26
27
  }
27
28
  declare const O: <T>(ownerFn: OwnerExecutorType<T>) => Owner<T>;
@@ -52,6 +53,7 @@ declare class Information<T = any> {
52
53
  private owner?;
53
54
  private executedCbs?;
54
55
  private alreadyExecuted;
56
+ private debugCbs;
55
57
  constructor(info?: (InfoObjectType<T> | InfoExecutorType<T> | InformationDataType<T>) | undefined, theName?: string, onlyOneOwner?: boolean);
56
58
  /**
57
59
  * Следующее значение источника
@@ -73,6 +75,8 @@ declare class Information<T = any> {
73
75
  name(): string;
74
76
  executed(cb: InformationExecutedCb<T>): this;
75
77
  hasOwner(): boolean;
78
+ debug(cb: DebugCbType$1): this;
79
+ private doDebug;
76
80
  }
77
81
  declare const I: <T>(info?: Information<T> | InfoObjectType<T> | InfoExecutorType<T> | InformationDataType<T>, theName?: string, onlyOneOwner?: boolean) => Information<T>;
78
82
 
@@ -248,6 +252,8 @@ declare const fromEvent: <T extends []>(emitter: any, eventName: string, subscri
248
252
  */
249
253
  declare const fromPromise: <T>(p: Promise<T>) => Information<T>;
250
254
 
255
+ type DebugCbType = (...data: unknown[]) => void;
256
+
251
257
  /**
252
258
  * Helps to get lazy instance of dependency
253
259
  * @url https://silentium-lab.github.io/silentium/#/utils/lazy
@@ -263,4 +269,6 @@ interface Prototyped<T> {
263
269
  */
264
270
  declare const lazyClass: <T>(constructorFn: Prototyped<T>, modules?: Record<string, unknown>) => LazyType<T>;
265
271
 
266
- export { type ExtractTypesFromArray, type ExtractTypesFromArrayS, I, type InfoSync, Information, type InformationDataType, type InformationExecutorType, type InformationObjectType, type InformationType, type LazyType, O, Owner, type OwnerExecutorType, type OwnerObjectType, OwnerPool, type OwnerType, all, any, applied, chain, executorApplied, filtered, fromCallback, fromEvent, fromPromise, lazy, lazyClass, lazyS, map, of, once, ownerApplied, ownerExecutorApplied, ownerSync, pool, poolStateless, sequence, stream };
272
+ declare const ap: <T>(fn: (...args: Information[]) => Information<T>, ...args: unknown[]) => Information<T>;
273
+
274
+ export { type DebugCbType, type ExtractTypesFromArray, type ExtractTypesFromArrayS, I, type InfoSync, Information, type InformationDataType, type InformationExecutorType, type InformationObjectType, type InformationType, type LazyType, O, Owner, type OwnerExecutorType, type OwnerObjectType, OwnerPool, type OwnerType, all, any, ap, applied, chain, executorApplied, filtered, fromCallback, fromEvent, fromPromise, lazy, lazyClass, lazyS, map, of, once, ownerApplied, ownerExecutorApplied, ownerSync, pool, poolStateless, sequence, stream };
package/dist/silentium.js CHANGED
@@ -11,6 +11,7 @@ const _Information = class _Information {
11
11
  __publicField$2(this, "owner");
12
12
  __publicField$2(this, "executedCbs");
13
13
  __publicField$2(this, "alreadyExecuted", false);
14
+ __publicField$2(this, "debugCbs", []);
14
15
  _Information.instances += 1;
15
16
  }
16
17
  /**
@@ -19,6 +20,7 @@ const _Information = class _Information {
19
20
  next(value) {
20
21
  if (this.owner !== void 0) {
21
22
  this.owner.give(value);
23
+ this.doDebug("next value", value);
22
24
  }
23
25
  return this;
24
26
  }
@@ -63,6 +65,7 @@ const _Information = class _Information {
63
65
  this.owner = void 0;
64
66
  this.executedCbs = void 0;
65
67
  this.destructor = void 0;
68
+ this.doDebug("destroyed");
66
69
  return this;
67
70
  }
68
71
  /**
@@ -79,6 +82,7 @@ const _Information = class _Information {
79
82
  return `#info_${this.theName}_${_Information.instances}`;
80
83
  }
81
84
  executed(cb) {
85
+ this.doDebug("executed");
82
86
  if (!this.executedCbs) {
83
87
  this.executedCbs = [];
84
88
  }
@@ -91,6 +95,13 @@ const _Information = class _Information {
91
95
  hasOwner() {
92
96
  return !!this.owner;
93
97
  }
98
+ debug(cb) {
99
+ this.debugCbs.push(cb);
100
+ return this;
101
+ }
102
+ doDebug(...data) {
103
+ this.debugCbs.forEach((cb) => cb(...data));
104
+ }
94
105
  };
95
106
  __publicField$2(_Information, "instances", 0);
96
107
  let Information = _Information;
@@ -104,7 +115,7 @@ class Owner {
104
115
  this.ownerFn = ownerFn;
105
116
  this.errorFn = errorFn;
106
117
  this.disposedFn = disposedFn;
107
- __publicField$1(this, "cbs", []);
118
+ __publicField$1(this, "debugCbs", []);
108
119
  }
109
120
  give(value) {
110
121
  this.doDebug("value", value);
@@ -124,11 +135,11 @@ class Owner {
124
135
  return this.disposedFn !== void 0 ? this.disposedFn() : false;
125
136
  }
126
137
  debug(cb) {
127
- this.cbs.push(cb);
138
+ this.debugCbs.push(cb);
128
139
  return this;
129
140
  }
130
141
  doDebug(...data) {
131
- this.cbs.forEach((cb) => cb(...data));
142
+ this.debugCbs.forEach((cb) => cb(...data));
132
143
  }
133
144
  }
134
145
  const O = (ownerFn) => new Owner(ownerFn);
@@ -194,7 +205,8 @@ const chain = (...infos) => {
194
205
  const info = I((g) => {
195
206
  theOwner = g;
196
207
  });
197
- info.executed(() => {
208
+ info.executed((g) => {
209
+ theOwner = g;
198
210
  handleI(0);
199
211
  });
200
212
  return info;
@@ -529,5 +541,13 @@ const lazyClass = (constructorFn, modules = {}) => {
529
541
  };
530
542
  };
531
543
 
532
- export { I, Information, O, Owner, OwnerPool, all, any, applied, chain, executorApplied, filtered, fromCallback, fromEvent, fromPromise, lazy, lazyClass, lazyS, map, of, once, ownerApplied, ownerExecutorApplied, ownerSync, pool, poolStateless, sequence, stream };
544
+ const ap = (fn, ...args) => {
545
+ return fn(
546
+ ...args.map((arg) => {
547
+ return arg instanceof Information ? arg : I(arg);
548
+ })
549
+ );
550
+ };
551
+
552
+ export { I, Information, O, Owner, OwnerPool, all, any, ap, applied, chain, executorApplied, filtered, fromCallback, fromEvent, fromPromise, lazy, lazyClass, lazyS, map, of, once, ownerApplied, ownerExecutorApplied, ownerSync, pool, poolStateless, sequence, stream };
533
553
  //# sourceMappingURL=silentium.js.map