silentium 0.0.76 → 0.0.78
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 +14 -0
- package/dist/silentium.cjs +7 -1
- package/dist/silentium.cjs.map +1 -1
- package/dist/silentium.d.ts +3 -2
- package/dist/silentium.js +7 -1
- package/dist/silentium.js.map +1 -1
- package/dist/silentium.min.js +1 -1
- package/dist/silentium.min.mjs +1 -1
- package/dist/silentium.min.mjs.map +1 -1
- package/dist/silentium.mjs +7 -1
- package/dist/silentium.mjs.map +1 -1
- package/package.json +1 -1
- package/src/components/Shared.ts +7 -1
- package/src/components/SharedSource.ts +4 -3
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,20 @@
|
|
|
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.78](https://github.com/silentium-lab/silentium/compare/v0.0.77...v0.0.78) (2025-08-31)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* **main:** fix shared source ([6ddab6f](https://github.com/silentium-lab/silentium/commit/6ddab6f80e8e7aad42d5d779d2269a9ec37b436e))
|
|
11
|
+
|
|
12
|
+
### [0.0.77](https://github.com/silentium-lab/silentium/compare/v0.0.76...v0.0.77) (2025-08-30)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### Bug Fixes
|
|
16
|
+
|
|
17
|
+
* **main:** fix shared ([44b8f18](https://github.com/silentium-lab/silentium/commit/44b8f1834658caadcddf92bfe476710cf953e559))
|
|
18
|
+
|
|
5
19
|
### [0.0.76](https://github.com/silentium-lab/silentium/compare/v0.0.75...v0.0.76) (2025-08-30)
|
|
6
20
|
|
|
7
21
|
|
package/dist/silentium.cjs
CHANGED
|
@@ -535,6 +535,11 @@ class Shared extends TheInformation {
|
|
|
535
535
|
pool() {
|
|
536
536
|
return this.ownersPool;
|
|
537
537
|
}
|
|
538
|
+
give(value) {
|
|
539
|
+
this.lastValue = value;
|
|
540
|
+
this.ownersPool.owner().give(value);
|
|
541
|
+
return this;
|
|
542
|
+
}
|
|
538
543
|
}
|
|
539
544
|
|
|
540
545
|
var __defProp = Object.defineProperty;
|
|
@@ -553,7 +558,8 @@ class SharedSource extends TheInformation {
|
|
|
553
558
|
return this;
|
|
554
559
|
}
|
|
555
560
|
give(value) {
|
|
556
|
-
this.
|
|
561
|
+
this.baseSrc.give(value);
|
|
562
|
+
this.sharedSrc.give(value);
|
|
557
563
|
return this;
|
|
558
564
|
}
|
|
559
565
|
}
|
package/dist/silentium.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"silentium.cjs","sources":["../src/base/Destroyable.ts","../src/base/DestroyFunc.ts","../src/base/TheOwner.ts","../src/base/From.ts","../src/base/TheInformation.ts","../src/helpers/isFilled.ts","../src/helpers/OwnerPool.ts","../src/base/Of.ts","../src/base/Lazy.ts","../src/base/OfFunc.ts","../src/base/Void.ts","../src/base/On.ts","../src/components/All.ts","../src/components/Any.ts","../src/components/Applied.ts","../src/components/Chain.ts","../src/components/ExecutorApplied.ts","../src/components/Filtered.ts","../src/components/FromCallback.ts","../src/components/FromEvent.ts","../src/components/FromPromise.ts","../src/components/Late.ts","../src/components/LazyApplied.ts","../src/components/LazyClass.ts","../src/components/Map.ts","../src/components/Once.ts","../src/components/Sequence.ts","../src/components/Shared.ts","../src/components/SharedSource.ts","../src/components/Stream.ts"],"sourcesContent":["const isDestroyable = (dep: unknown): dep is Destroyable => {\n return typeof dep === \"object\" && dep !== null && \"destroy\" in dep;\n};\n\n/**\n * Representation of Destroyable object\n */\nexport class Destroyable {\n private theDeps: any[];\n public constructor(...deps: any[]) {\n this.theDeps = deps ?? [];\n }\n\n public destroy() {\n this.theDeps?.forEach((dep) => {\n if (isDestroyable(dep)) {\n dep.destroy();\n }\n });\n return this;\n }\n\n /**\n * Add dependency what can be destroyed\n */\n public addDep(dep: any) {\n this.theDeps?.push(dep);\n return this;\n }\n\n public dep(dep: any) {\n this.addDep(dep);\n return dep;\n }\n}\n","import { Destroyable } from \"./Destroyable\";\n\n/**\n * Representation of destructor function as object\n */\nexport class DestroyFunc extends Destroyable {\n public constructor(private destructor: () => void) {\n super();\n }\n\n public destroy(): this {\n this.destructor();\n return this;\n }\n}\n","export interface OwnerType<T = unknown> {\n give(value: T): this;\n}\n\n/**\n * Representation of Information Owner\n */\nexport abstract class TheOwner<T = unknown> implements OwnerType<T> {\n public abstract give(value: T): this;\n}\n","import { TheOwner } from \"./TheOwner\";\n\n/**\n * Owner from function\n */\nexport class From<T = unknown> extends TheOwner<T> {\n public constructor(private fn: (value: T) => void) {\n super();\n }\n\n public give(value: T): this {\n this.fn(value);\n return this;\n }\n}\n","import { Destroyable } from \"./Destroyable\";\nimport { Of } from \"./Of\";\nimport { OwnerType } from \"./TheOwner\";\n\nexport interface InformationType<T = unknown> {\n value(o: OwnerType<T>): this;\n}\n\nexport type MaybeInformationType<T = unknown> = InformationType<T> | T;\n\n/**\n * Representation of Information\n */\nexport abstract class TheInformation<T = unknown>\n extends Destroyable\n implements InformationType<T>\n{\n public abstract value(o: OwnerType<T>): this;\n}\n\nexport class MbInfo<T> extends TheInformation<T> {\n private info: InformationType<T>;\n\n public constructor(theInfo: MaybeInformationType<T>) {\n const info =\n typeof theInfo === \"object\" &&\n theInfo !== null &&\n \"value\" in theInfo &&\n typeof theInfo.value === \"function\"\n ? theInfo\n : new Of(theInfo);\n super(info);\n this.info = info;\n }\n\n public value(o: OwnerType<T>): this {\n this.info.value(o);\n return this;\n }\n}\n","export const isFilled = <T>(value?: T): value is T => {\n return value !== undefined && value !== null;\n};\n","import { From, OwnerType } from \"../base\";\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<OwnerType<T>>;\n private innerOwner: OwnerType<T>;\n\n public constructor() {\n this.owners = new Set<OwnerType<T>>();\n this.innerOwner = new From((v) => {\n this.owners.forEach((g) => {\n g.give(v);\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: OwnerType<T>): boolean {\n return this.owners.has(owner);\n }\n\n public add(owner: OwnerType<T>) {\n this.owners.add(owner);\n return this;\n }\n\n public remove(g: OwnerType<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 { OwnerType } from \"./TheOwner\";\nimport { TheInformation } from \"./TheInformation\";\nimport { isFilled } from \"../helpers\";\n\n/**\n * Information from primitive value\n */\nexport class Of<T> extends TheInformation<T> {\n public constructor(private theValue: T) {\n super(theValue);\n }\n\n public value(o: OwnerType<T>): this {\n if (isFilled(this.theValue)) {\n o.give(this.theValue);\n }\n return this;\n }\n}\n","import { Destroyable } from \"./Destroyable\";\nimport { Of } from \"./Of\";\nimport { InformationType } from \"./TheInformation\";\n\n/**\n * Ability to create information after some event\n */\nexport class Lazy<T = unknown> extends Destroyable {\n public constructor(\n protected buildFn?: (...args: InformationType[]) => InformationType<T>,\n ) {\n super();\n }\n\n public get(...args: InformationType[]) {\n args.forEach((dep) => {\n this.addDep(dep);\n });\n return this.buildFn?.(...args) ?? (new Of(null) as InformationType<T>);\n }\n}\n","import { OwnerType } from \"./TheOwner\";\nimport { TheInformation } from \"./TheInformation\";\n\ntype DestructorFnType = () => void;\n\n/**\n * Information of function\n */\nexport class OfFunc<T> extends TheInformation<T> {\n private mbDestructor?: DestructorFnType | void;\n\n public constructor(\n private valueFn: (o: OwnerType<T>) => DestructorFnType | undefined | void,\n ) {\n super(valueFn);\n }\n\n public value(o: OwnerType<T>): this {\n this.mbDestructor = this.valueFn(o);\n return this;\n }\n\n public destroy(): this {\n super.destroy();\n this.mbDestructor?.();\n return this;\n }\n}\n","import { TheOwner } from \"./TheOwner\";\n\n/**\n * Silent owner\n */\nexport class Void extends TheOwner {\n public give(): this {\n return this;\n }\n}\n","import { Destroyable } from \"../base/Destroyable\";\nimport { From } from \"../base/From\";\nimport { InformationType } from \"../base/TheInformation\";\nimport { Void } from \"../base/Void\";\n\n/**\n * Run information with functional owner if needed\n */\nexport class On<T = unknown> extends Destroyable {\n public constructor(src: InformationType<T>, fn?: (value: T) => void) {\n super(src, fn);\n src.value(fn ? new From(fn) : new Void());\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\n\ntype ExtractTypeS<T> = T extends InformationType<infer U> ? U : never;\n\nexport type ExtractTypesFromArrayS<T extends InformationType<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 class All<const T extends InformationType[]> extends TheInformation<\n ExtractTypesFromArrayS<T>\n> {\n private keysKnown: Set<string>;\n private keysFilled = new Set();\n private infos: T;\n\n public constructor(...theInfos: T) {\n super(theInfos);\n this.infos = theInfos;\n this.keysKnown = new Set<string>(Object.keys(theInfos));\n }\n\n public value(o: OwnerType<ExtractTypesFromArrayS<T>>): this {\n const result: Record<string, unknown> = {};\n\n Object.entries(this.infos).forEach(([key, info]) => {\n this.keysKnown.add(key);\n info.value(\n new From((v) => {\n this.keysFilled.add(key);\n result[key] = v;\n if (this.isAllFilled()) {\n o.give(Object.values(result) as ExtractTypesFromArrayS<T>);\n }\n }),\n );\n });\n return this;\n }\n\n private isAllFilled() {\n return (\n this.keysFilled.size > 0 && this.keysFilled.size === this.keysKnown.size\n );\n }\n}\n","import { InformationType, OwnerType, TheInformation } from \"../base\";\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 class Any<T> extends TheInformation<T> {\n private infos: InformationType<T>[];\n\n public constructor(...theInfos: InformationType<T>[]) {\n super(theInfos);\n this.infos = theInfos;\n }\n\n public value(o: OwnerType<T>): this {\n this.infos.forEach((info) => {\n info.value(o);\n });\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\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 class Applied<T, R> extends TheInformation<R> {\n public constructor(\n private baseSrc: InformationType<T>,\n private applier: (v: T) => R,\n ) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<R>): this {\n this.baseSrc.value(\n new From((v) => {\n o.give(this.applier(v));\n }),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\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 class Chain<T extends InformationType[]> extends TheInformation<\n Last<T>\n> {\n private theInfos: T;\n\n public constructor(...infos: T) {\n super(infos);\n this.theInfos = infos;\n }\n\n public value(o: OwnerType<Last<T>>) {\n let lastValue: Last<T> | undefined;\n\n const handleI = (index: number) => {\n const info = this.theInfos[index] as TheInformation<Last<T>>;\n const nextI = this.theInfos[index + 1] as\n | TheInformation<Last<T>>\n | undefined;\n\n info.value(\n new From((v) => {\n if (!nextI) {\n lastValue = v;\n }\n\n if (lastValue) {\n o.give(lastValue);\n }\n\n if (nextI && !lastValue) {\n handleI(index + 1);\n }\n }),\n );\n };\n\n handleI(0);\n\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\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 class ExecutorApplied<T> extends TheInformation<T> {\n public constructor(\n private baseSrc: InformationType<T>,\n private applier: (executor: (v: T) => void) => (v: T) => void,\n ) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.baseSrc.value(\n new From(\n this.applier((v) => {\n o.give(v);\n }),\n ),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\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 class Filtered<T> extends TheInformation<T> {\n public constructor(\n private baseSrc: InformationType<T>,\n private predicate: (v: T) => boolean,\n private defaultValue?: T,\n ) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.baseSrc.value(\n new From((v) => {\n if (this.predicate(v)) {\n o.give(v);\n } else if (this.defaultValue !== undefined) {\n o.give(this.defaultValue);\n }\n }),\n );\n return this;\n }\n}\n","import { OwnerType, TheInformation } from \"../base\";\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 class FromCallback<T> extends TheInformation<T> {\n private theArgs: unknown[];\n\n public constructor(\n private waitForCb: (cb: (v: T) => any, ...args: unknown[]) => unknown,\n ...args: unknown[]\n ) {\n super(waitForCb);\n this.theArgs = args;\n }\n\n public value(o: OwnerType<T>): this {\n this.waitForCb(\n (v) => {\n o.give(v);\n },\n ...this.theArgs,\n );\n return this;\n }\n}\n","import { DestroyFunc } from \"../base/DestroyFunc\";\nimport { From, InformationType, Of, OwnerType, TheInformation } from \"../base\";\nimport { All } from \"./All\";\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 class FromEvent<T = unknown> extends TheInformation<T> {\n public constructor(\n private emitterSrc: InformationType<any>,\n private eventNameSrc: InformationType<string>,\n private subscribeMethodSrc: InformationType<string>,\n private unsubscribeMethodSrc: InformationType<string> = new Of(\"\"),\n ) {\n super(emitterSrc, eventNameSrc, subscribeMethodSrc, unsubscribeMethodSrc);\n }\n\n public value(o: OwnerType<T>): this {\n const a = new All(\n this.emitterSrc,\n this.eventNameSrc,\n this.subscribeMethodSrc,\n this.unsubscribeMethodSrc,\n );\n const handler = (v: T) => {\n o.give(v);\n };\n a.value(\n new From(([emitter, eventName, subscribe, unsubscribe]) => {\n emitter[subscribe](eventName, handler);\n this.addDep(\n new DestroyFunc(() => {\n emitter[unsubscribe](eventName, handler);\n }),\n );\n }),\n );\n return this;\n }\n}\n","import { OwnerType, TheInformation } from \"../base\";\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 class FromPromise<T> extends TheInformation<T> {\n public constructor(\n private p: Promise<T>,\n private errorOwner?: OwnerType,\n ) {\n super(p);\n }\n\n public value(o: OwnerType<T>): this {\n this.p\n .then((v) => {\n o.give(v);\n })\n .catch((e) => {\n this.errorOwner?.give(e);\n });\n return this;\n }\n}\n","import { From, OwnerType, TheInformation } from \"../base\";\nimport { isFilled } from \"../helpers\";\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 class Late<T> extends TheInformation<T> implements OwnerType<T> {\n private theOwner?: OwnerType<T>;\n private lateOwner = new From((v: T) => {\n this.theValue = v;\n this.notify();\n });\n\n public constructor(private theValue?: T) {\n super(theValue);\n }\n\n public value(o: OwnerType<T>): this {\n if (this.theOwner) {\n throw new Error(\n \"Late component gets new owner, when another was already connected!\",\n );\n }\n this.theOwner = o;\n this.notify();\n return this;\n }\n\n public give(v: T) {\n this.theValue = v;\n this.lateOwner.give(v);\n return this;\n }\n\n private notify() {\n if (isFilled(this.theValue) && this.theOwner) {\n this.theOwner.give(this.theValue);\n }\n return this;\n }\n}\n","import { InformationType, Lazy } from \"../base\";\n\n/**\n * Lazy with applied function to its results\n */\nexport class LazyApplied<T> extends Lazy<T> {\n public constructor(\n private baseLazy: Lazy,\n private applier: (i: InformationType) => InformationType<T>,\n ) {\n super();\n }\n\n public get(...args: InformationType[]): InformationType<T> {\n return this.applier(this.baseLazy.get(...args));\n }\n}\n","import { Lazy } from \"../base\";\n\n/**\n * Lazy instance from class constructor\n */\nexport class LazyClass<T> extends Lazy<T> {\n public constructor(constrFn: any) {\n const buildFn = (...args: unknown[]) => new constrFn(...args);\n super(buildFn);\n }\n}\n","import {\n From,\n InformationType,\n Lazy,\n Of,\n OwnerType,\n TheInformation,\n} from \"../base\";\nimport { All } from \"./All\";\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 class Map<T, TG> extends TheInformation<TG[]> {\n public constructor(\n private baseSrc: InformationType<T[]>,\n private targetSrc: Lazy<TG>,\n ) {\n super(baseSrc, targetSrc);\n }\n\n public value(o: OwnerType<TG[]>) {\n this.baseSrc.value(\n new From((v) => {\n const infos: InformationType<TG>[] = [];\n v.forEach((val) => {\n let valInfo: InformationType<T> | T = val;\n if (!(valInfo instanceof TheInformation)) {\n valInfo = new Of(valInfo);\n }\n const info = this.targetSrc.get(valInfo);\n infos.push(info);\n });\n const allI = new All(...infos);\n allI.value(o);\n }),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\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 class Once<T> extends TheInformation<T> {\n public constructor(private baseSrc: InformationType<T>) {\n super();\n }\n\n public value(o: OwnerType<T>): this {\n let isFilled = false;\n this.baseSrc.value(\n new From((v) => {\n if (!isFilled) {\n isFilled = true;\n o.give(v);\n }\n }),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\n\n/**\n * A component that takes one value at a time and returns\n * an array of all previous values\n * https://silentium-lab.github.io/silentium/#/en/information/sequence\n */\nexport class Sequence<T> extends TheInformation<T[]> {\n public constructor(private baseSrc: InformationType<T>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T[]>): this {\n const result: T[] = [];\n this.baseSrc.value(\n new From((v) => {\n result.push(v);\n o.give(result);\n }),\n );\n return this;\n }\n}\n","import { isFilled, OwnerPool } from \"../helpers\";\nimport {\n From,\n InformationType,\n OfFunc,\n OwnerType,\n TheInformation,\n} from \"../base\";\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 class Shared<T> extends TheInformation<T> {\n private lastValue: T | undefined;\n private ownersPool = new OwnerPool<T>();\n\n public constructor(\n private baseSrc: InformationType<T>,\n private stateless = false,\n ) {\n super(baseSrc);\n this.addDep(this.ownersPool);\n this.baseSrc.value(\n new From((v) => {\n this.ownersPool.owner().give(v);\n this.lastValue = v;\n }),\n );\n }\n\n public value(o: OwnerType<T>): this {\n const i = new OfFunc((g: OwnerType<T>) => {\n if (\n !this.stateless &&\n isFilled(this.lastValue) &&\n !this.ownersPool.has(g)\n ) {\n g.give(this.lastValue);\n }\n this.ownersPool.add(g);\n return () => {\n this.ownersPool.remove(g);\n };\n });\n i.value(o);\n this.addDep(i);\n\n return this;\n }\n\n public pool() {\n return this.ownersPool;\n }\n}\n","import { Shared } from \"../components/Shared\";\nimport { InformationType, OwnerType, TheInformation } from \"../base\";\n\nexport class SharedSource<T> extends TheInformation<T> implements OwnerType<T> {\n private sharedSrc: Shared<T>;\n\n public constructor(\n private baseSrc: InformationType<T>,\n stateless = false,\n ) {\n const sharedSrc = new Shared(baseSrc, stateless);\n super(sharedSrc);\n this.sharedSrc = sharedSrc;\n }\n\n public value(o: OwnerType<T>): this {\n this.sharedSrc.value(o);\n return this;\n }\n\n public give(value: T): this {\n this.sharedSrc.pool().owner().give(value);\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\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 class Stream<T> extends TheInformation<T> {\n public constructor(private baseSrc: InformationType<T[]>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.baseSrc.value(\n new From((v) => {\n v.forEach((cv) => {\n o.give(cv);\n });\n }),\n );\n return this;\n }\n}\n"],"names":["__publicField"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"silentium.cjs","sources":["../src/base/Destroyable.ts","../src/base/DestroyFunc.ts","../src/base/TheOwner.ts","../src/base/From.ts","../src/base/TheInformation.ts","../src/helpers/isFilled.ts","../src/helpers/OwnerPool.ts","../src/base/Of.ts","../src/base/Lazy.ts","../src/base/OfFunc.ts","../src/base/Void.ts","../src/base/On.ts","../src/components/All.ts","../src/components/Any.ts","../src/components/Applied.ts","../src/components/Chain.ts","../src/components/ExecutorApplied.ts","../src/components/Filtered.ts","../src/components/FromCallback.ts","../src/components/FromEvent.ts","../src/components/FromPromise.ts","../src/components/Late.ts","../src/components/LazyApplied.ts","../src/components/LazyClass.ts","../src/components/Map.ts","../src/components/Once.ts","../src/components/Sequence.ts","../src/components/Shared.ts","../src/components/SharedSource.ts","../src/components/Stream.ts"],"sourcesContent":["const isDestroyable = (dep: unknown): dep is Destroyable => {\n return typeof dep === \"object\" && dep !== null && \"destroy\" in dep;\n};\n\n/**\n * Representation of Destroyable object\n */\nexport class Destroyable {\n private theDeps: any[];\n public constructor(...deps: any[]) {\n this.theDeps = deps ?? [];\n }\n\n public destroy() {\n this.theDeps?.forEach((dep) => {\n if (isDestroyable(dep)) {\n dep.destroy();\n }\n });\n return this;\n }\n\n /**\n * Add dependency what can be destroyed\n */\n public addDep(dep: any) {\n this.theDeps?.push(dep);\n return this;\n }\n\n public dep(dep: any) {\n this.addDep(dep);\n return dep;\n }\n}\n","import { Destroyable } from \"./Destroyable\";\n\n/**\n * Representation of destructor function as object\n */\nexport class DestroyFunc extends Destroyable {\n public constructor(private destructor: () => void) {\n super();\n }\n\n public destroy(): this {\n this.destructor();\n return this;\n }\n}\n","export interface OwnerType<T = unknown> {\n give(value: T): this;\n}\n\n/**\n * Representation of Information Owner\n */\nexport abstract class TheOwner<T = unknown> implements OwnerType<T> {\n public abstract give(value: T): this;\n}\n","import { TheOwner } from \"./TheOwner\";\n\n/**\n * Owner from function\n */\nexport class From<T = unknown> extends TheOwner<T> {\n public constructor(private fn: (value: T) => void) {\n super();\n }\n\n public give(value: T): this {\n this.fn(value);\n return this;\n }\n}\n","import { Destroyable } from \"./Destroyable\";\nimport { Of } from \"./Of\";\nimport { OwnerType } from \"./TheOwner\";\n\nexport interface InformationType<T = unknown> {\n value(o: OwnerType<T>): this;\n}\n\nexport type MaybeInformationType<T = unknown> = InformationType<T> | T;\n\n/**\n * Representation of Information\n */\nexport abstract class TheInformation<T = unknown>\n extends Destroyable\n implements InformationType<T>\n{\n public abstract value(o: OwnerType<T>): this;\n}\n\nexport class MbInfo<T> extends TheInformation<T> {\n private info: InformationType<T>;\n\n public constructor(theInfo: MaybeInformationType<T>) {\n const info =\n typeof theInfo === \"object\" &&\n theInfo !== null &&\n \"value\" in theInfo &&\n typeof theInfo.value === \"function\"\n ? theInfo\n : new Of(theInfo);\n super(info);\n this.info = info;\n }\n\n public value(o: OwnerType<T>): this {\n this.info.value(o);\n return this;\n }\n}\n","export const isFilled = <T>(value?: T): value is T => {\n return value !== undefined && value !== null;\n};\n","import { From, OwnerType } from \"../base\";\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<OwnerType<T>>;\n private innerOwner: OwnerType<T>;\n\n public constructor() {\n this.owners = new Set<OwnerType<T>>();\n this.innerOwner = new From((v) => {\n this.owners.forEach((g) => {\n g.give(v);\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: OwnerType<T>): boolean {\n return this.owners.has(owner);\n }\n\n public add(owner: OwnerType<T>) {\n this.owners.add(owner);\n return this;\n }\n\n public remove(g: OwnerType<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 { OwnerType } from \"./TheOwner\";\nimport { TheInformation } from \"./TheInformation\";\nimport { isFilled } from \"../helpers\";\n\n/**\n * Information from primitive value\n */\nexport class Of<T> extends TheInformation<T> {\n public constructor(private theValue: T) {\n super(theValue);\n }\n\n public value(o: OwnerType<T>): this {\n if (isFilled(this.theValue)) {\n o.give(this.theValue);\n }\n return this;\n }\n}\n","import { Destroyable } from \"./Destroyable\";\nimport { Of } from \"./Of\";\nimport { InformationType } from \"./TheInformation\";\n\n/**\n * Ability to create information after some event\n */\nexport class Lazy<T = unknown> extends Destroyable {\n public constructor(\n protected buildFn?: (...args: InformationType[]) => InformationType<T>,\n ) {\n super();\n }\n\n public get(...args: InformationType[]) {\n args.forEach((dep) => {\n this.addDep(dep);\n });\n return this.buildFn?.(...args) ?? (new Of(null) as InformationType<T>);\n }\n}\n","import { OwnerType } from \"./TheOwner\";\nimport { TheInformation } from \"./TheInformation\";\n\ntype DestructorFnType = () => void;\n\n/**\n * Information of function\n */\nexport class OfFunc<T> extends TheInformation<T> {\n private mbDestructor?: DestructorFnType | void;\n\n public constructor(\n private valueFn: (o: OwnerType<T>) => DestructorFnType | undefined | void,\n ) {\n super(valueFn);\n }\n\n public value(o: OwnerType<T>): this {\n this.mbDestructor = this.valueFn(o);\n return this;\n }\n\n public destroy(): this {\n super.destroy();\n this.mbDestructor?.();\n return this;\n }\n}\n","import { TheOwner } from \"./TheOwner\";\n\n/**\n * Silent owner\n */\nexport class Void extends TheOwner {\n public give(): this {\n return this;\n }\n}\n","import { Destroyable } from \"../base/Destroyable\";\nimport { From } from \"../base/From\";\nimport { InformationType } from \"../base/TheInformation\";\nimport { Void } from \"../base/Void\";\n\n/**\n * Run information with functional owner if needed\n */\nexport class On<T = unknown> extends Destroyable {\n public constructor(src: InformationType<T>, fn?: (value: T) => void) {\n super(src, fn);\n src.value(fn ? new From(fn) : new Void());\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\n\ntype ExtractTypeS<T> = T extends InformationType<infer U> ? U : never;\n\nexport type ExtractTypesFromArrayS<T extends InformationType<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 class All<const T extends InformationType[]> extends TheInformation<\n ExtractTypesFromArrayS<T>\n> {\n private keysKnown: Set<string>;\n private keysFilled = new Set();\n private infos: T;\n\n public constructor(...theInfos: T) {\n super(theInfos);\n this.infos = theInfos;\n this.keysKnown = new Set<string>(Object.keys(theInfos));\n }\n\n public value(o: OwnerType<ExtractTypesFromArrayS<T>>): this {\n const result: Record<string, unknown> = {};\n\n Object.entries(this.infos).forEach(([key, info]) => {\n this.keysKnown.add(key);\n info.value(\n new From((v) => {\n this.keysFilled.add(key);\n result[key] = v;\n if (this.isAllFilled()) {\n o.give(Object.values(result) as ExtractTypesFromArrayS<T>);\n }\n }),\n );\n });\n return this;\n }\n\n private isAllFilled() {\n return (\n this.keysFilled.size > 0 && this.keysFilled.size === this.keysKnown.size\n );\n }\n}\n","import { InformationType, OwnerType, TheInformation } from \"../base\";\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 class Any<T> extends TheInformation<T> {\n private infos: InformationType<T>[];\n\n public constructor(...theInfos: InformationType<T>[]) {\n super(theInfos);\n this.infos = theInfos;\n }\n\n public value(o: OwnerType<T>): this {\n this.infos.forEach((info) => {\n info.value(o);\n });\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\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 class Applied<T, R> extends TheInformation<R> {\n public constructor(\n private baseSrc: InformationType<T>,\n private applier: (v: T) => R,\n ) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<R>): this {\n this.baseSrc.value(\n new From((v) => {\n o.give(this.applier(v));\n }),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\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 class Chain<T extends InformationType[]> extends TheInformation<\n Last<T>\n> {\n private theInfos: T;\n\n public constructor(...infos: T) {\n super(infos);\n this.theInfos = infos;\n }\n\n public value(o: OwnerType<Last<T>>) {\n let lastValue: Last<T> | undefined;\n\n const handleI = (index: number) => {\n const info = this.theInfos[index] as TheInformation<Last<T>>;\n const nextI = this.theInfos[index + 1] as\n | TheInformation<Last<T>>\n | undefined;\n\n info.value(\n new From((v) => {\n if (!nextI) {\n lastValue = v;\n }\n\n if (lastValue) {\n o.give(lastValue);\n }\n\n if (nextI && !lastValue) {\n handleI(index + 1);\n }\n }),\n );\n };\n\n handleI(0);\n\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\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 class ExecutorApplied<T> extends TheInformation<T> {\n public constructor(\n private baseSrc: InformationType<T>,\n private applier: (executor: (v: T) => void) => (v: T) => void,\n ) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.baseSrc.value(\n new From(\n this.applier((v) => {\n o.give(v);\n }),\n ),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\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 class Filtered<T> extends TheInformation<T> {\n public constructor(\n private baseSrc: InformationType<T>,\n private predicate: (v: T) => boolean,\n private defaultValue?: T,\n ) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.baseSrc.value(\n new From((v) => {\n if (this.predicate(v)) {\n o.give(v);\n } else if (this.defaultValue !== undefined) {\n o.give(this.defaultValue);\n }\n }),\n );\n return this;\n }\n}\n","import { OwnerType, TheInformation } from \"../base\";\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 class FromCallback<T> extends TheInformation<T> {\n private theArgs: unknown[];\n\n public constructor(\n private waitForCb: (cb: (v: T) => any, ...args: unknown[]) => unknown,\n ...args: unknown[]\n ) {\n super(waitForCb);\n this.theArgs = args;\n }\n\n public value(o: OwnerType<T>): this {\n this.waitForCb(\n (v) => {\n o.give(v);\n },\n ...this.theArgs,\n );\n return this;\n }\n}\n","import { DestroyFunc } from \"../base/DestroyFunc\";\nimport { From, InformationType, Of, OwnerType, TheInformation } from \"../base\";\nimport { All } from \"./All\";\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 class FromEvent<T = unknown> extends TheInformation<T> {\n public constructor(\n private emitterSrc: InformationType<any>,\n private eventNameSrc: InformationType<string>,\n private subscribeMethodSrc: InformationType<string>,\n private unsubscribeMethodSrc: InformationType<string> = new Of(\"\"),\n ) {\n super(emitterSrc, eventNameSrc, subscribeMethodSrc, unsubscribeMethodSrc);\n }\n\n public value(o: OwnerType<T>): this {\n const a = new All(\n this.emitterSrc,\n this.eventNameSrc,\n this.subscribeMethodSrc,\n this.unsubscribeMethodSrc,\n );\n const handler = (v: T) => {\n o.give(v);\n };\n a.value(\n new From(([emitter, eventName, subscribe, unsubscribe]) => {\n emitter[subscribe](eventName, handler);\n this.addDep(\n new DestroyFunc(() => {\n emitter[unsubscribe](eventName, handler);\n }),\n );\n }),\n );\n return this;\n }\n}\n","import { OwnerType, TheInformation } from \"../base\";\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 class FromPromise<T> extends TheInformation<T> {\n public constructor(\n private p: Promise<T>,\n private errorOwner?: OwnerType,\n ) {\n super(p);\n }\n\n public value(o: OwnerType<T>): this {\n this.p\n .then((v) => {\n o.give(v);\n })\n .catch((e) => {\n this.errorOwner?.give(e);\n });\n return this;\n }\n}\n","import { From, OwnerType, TheInformation } from \"../base\";\nimport { isFilled } from \"../helpers\";\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 class Late<T> extends TheInformation<T> implements OwnerType<T> {\n private theOwner?: OwnerType<T>;\n private lateOwner = new From((v: T) => {\n this.theValue = v;\n this.notify();\n });\n\n public constructor(private theValue?: T) {\n super(theValue);\n }\n\n public value(o: OwnerType<T>): this {\n if (this.theOwner) {\n throw new Error(\n \"Late component gets new owner, when another was already connected!\",\n );\n }\n this.theOwner = o;\n this.notify();\n return this;\n }\n\n public give(v: T) {\n this.theValue = v;\n this.lateOwner.give(v);\n return this;\n }\n\n private notify() {\n if (isFilled(this.theValue) && this.theOwner) {\n this.theOwner.give(this.theValue);\n }\n return this;\n }\n}\n","import { InformationType, Lazy } from \"../base\";\n\n/**\n * Lazy with applied function to its results\n */\nexport class LazyApplied<T> extends Lazy<T> {\n public constructor(\n private baseLazy: Lazy,\n private applier: (i: InformationType) => InformationType<T>,\n ) {\n super();\n }\n\n public get(...args: InformationType[]): InformationType<T> {\n return this.applier(this.baseLazy.get(...args));\n }\n}\n","import { Lazy } from \"../base\";\n\n/**\n * Lazy instance from class constructor\n */\nexport class LazyClass<T> extends Lazy<T> {\n public constructor(constrFn: any) {\n const buildFn = (...args: unknown[]) => new constrFn(...args);\n super(buildFn);\n }\n}\n","import {\n From,\n InformationType,\n Lazy,\n Of,\n OwnerType,\n TheInformation,\n} from \"../base\";\nimport { All } from \"./All\";\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 class Map<T, TG> extends TheInformation<TG[]> {\n public constructor(\n private baseSrc: InformationType<T[]>,\n private targetSrc: Lazy<TG>,\n ) {\n super(baseSrc, targetSrc);\n }\n\n public value(o: OwnerType<TG[]>) {\n this.baseSrc.value(\n new From((v) => {\n const infos: InformationType<TG>[] = [];\n v.forEach((val) => {\n let valInfo: InformationType<T> | T = val;\n if (!(valInfo instanceof TheInformation)) {\n valInfo = new Of(valInfo);\n }\n const info = this.targetSrc.get(valInfo);\n infos.push(info);\n });\n const allI = new All(...infos);\n allI.value(o);\n }),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\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 class Once<T> extends TheInformation<T> {\n public constructor(private baseSrc: InformationType<T>) {\n super();\n }\n\n public value(o: OwnerType<T>): this {\n let isFilled = false;\n this.baseSrc.value(\n new From((v) => {\n if (!isFilled) {\n isFilled = true;\n o.give(v);\n }\n }),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\n\n/**\n * A component that takes one value at a time and returns\n * an array of all previous values\n * https://silentium-lab.github.io/silentium/#/en/information/sequence\n */\nexport class Sequence<T> extends TheInformation<T[]> {\n public constructor(private baseSrc: InformationType<T>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T[]>): this {\n const result: T[] = [];\n this.baseSrc.value(\n new From((v) => {\n result.push(v);\n o.give(result);\n }),\n );\n return this;\n }\n}\n","import { isFilled, OwnerPool } from \"../helpers\";\nimport {\n From,\n InformationType,\n OfFunc,\n OwnerType,\n TheInformation,\n} from \"../base\";\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 class Shared<T> extends TheInformation<T> implements OwnerType<T> {\n private lastValue: T | undefined;\n private ownersPool = new OwnerPool<T>();\n\n public constructor(\n private baseSrc: InformationType<T>,\n private stateless = false,\n ) {\n super(baseSrc);\n this.addDep(this.ownersPool);\n this.baseSrc.value(\n new From((v) => {\n this.ownersPool.owner().give(v);\n this.lastValue = v;\n }),\n );\n }\n\n public value(o: OwnerType<T>): this {\n const i = new OfFunc((g: OwnerType<T>) => {\n if (\n !this.stateless &&\n isFilled(this.lastValue) &&\n !this.ownersPool.has(g)\n ) {\n g.give(this.lastValue);\n }\n this.ownersPool.add(g);\n return () => {\n this.ownersPool.remove(g);\n };\n });\n i.value(o);\n this.addDep(i);\n\n return this;\n }\n\n public pool() {\n return this.ownersPool;\n }\n\n public give(value: T) {\n this.lastValue = value;\n this.ownersPool.owner().give(value);\n return this;\n }\n}\n","import { Shared } from \"../components/Shared\";\nimport { OwnerType, SourceType, TheInformation } from \"../base\";\n\nexport class SharedSource<T> extends TheInformation<T> implements OwnerType<T> {\n private sharedSrc: Shared<T>;\n\n public constructor(\n private baseSrc: SourceType<T>,\n stateless = false,\n ) {\n const sharedSrc = new Shared(baseSrc, stateless);\n super(sharedSrc);\n this.sharedSrc = sharedSrc;\n }\n\n public value(o: OwnerType<T>): this {\n this.sharedSrc.value(o);\n return this;\n }\n\n public give(value: T): this {\n this.baseSrc.give(value);\n this.sharedSrc.give(value);\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\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 class Stream<T> extends TheInformation<T> {\n public constructor(private baseSrc: InformationType<T[]>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.baseSrc.value(\n new From((v) => {\n v.forEach((cv) => {\n o.give(cv);\n });\n }),\n );\n return this;\n }\n}\n"],"names":["__publicField"],"mappings":";;;;;AAAA,MAAM,aAAA,GAAgB,CAAC,GAAqC,KAAA;AAC1D,EAAA,OAAO,OAAO,GAAA,KAAQ,QAAY,IAAA,GAAA,KAAQ,QAAQ,SAAa,IAAA,GAAA;AACjE,CAAA;AAKO,MAAM,WAAY,CAAA;AAAA,EAEhB,eAAe,IAAa,EAAA;AADnC,IAAQA,eAAA,CAAA,IAAA,EAAA,SAAA,CAAA;AAEN,IAAK,IAAA,CAAA,OAAA,GAAU,QAAQ,EAAC;AAAA;AAC1B,EAEO,OAAU,GAAA;AACf,IAAK,IAAA,CAAA,OAAA,EAAS,OAAQ,CAAA,CAAC,GAAQ,KAAA;AAC7B,MAAI,IAAA,aAAA,CAAc,GAAG,CAAG,EAAA;AACtB,QAAA,GAAA,CAAI,OAAQ,EAAA;AAAA;AACd,KACD,CAAA;AACD,IAAO,OAAA,IAAA;AAAA;AACT;AAAA;AAAA;AAAA,EAKO,OAAO,GAAU,EAAA;AACtB,IAAK,IAAA,CAAA,OAAA,EAAS,KAAK,GAAG,CAAA;AACtB,IAAO,OAAA,IAAA;AAAA;AACT,EAEO,IAAI,GAAU,EAAA;AACnB,IAAA,IAAA,CAAK,OAAO,GAAG,CAAA;AACf,IAAO,OAAA,GAAA;AAAA;AAEX;;AC7BO,MAAM,oBAAoB,WAAY,CAAA;AAAA,EACpC,YAAoB,UAAwB,EAAA;AACjD,IAAM,KAAA,EAAA;AADmB,IAAA,IAAA,CAAA,UAAA,GAAA,UAAA;AAAA;AAE3B,EAEO,OAAgB,GAAA;AACrB,IAAA,IAAA,CAAK,UAAW,EAAA;AAChB,IAAO,OAAA,IAAA;AAAA;AAEX;;ACPO,MAAe,QAA8C,CAAA;AAEpE;;ACJO,MAAM,aAA0B,QAAY,CAAA;AAAA,EAC1C,YAAoB,EAAwB,EAAA;AACjD,IAAM,KAAA,EAAA;AADmB,IAAA,IAAA,CAAA,EAAA,GAAA,EAAA;AAAA;AAE3B,EAEO,KAAK,KAAgB,EAAA;AAC1B,IAAA,IAAA,CAAK,GAAG,KAAK,CAAA;AACb,IAAO,OAAA,IAAA;AAAA;AAEX;;;;;ACDO,MAAe,uBACZ,WAEV,CAAA;AAEA;AAEO,MAAM,eAAkB,cAAkB,CAAA;AAAA,EAGxC,YAAY,OAAkC,EAAA;AACnD,IAAA,MAAM,IACJ,GAAA,OAAO,OAAY,KAAA,QAAA,IACnB,YAAY,IACZ,IAAA,OAAA,IAAW,OACX,IAAA,OAAO,QAAQ,KAAU,KAAA,UAAA,GACrB,OACA,GAAA,IAAI,GAAG,OAAO,CAAA;AACpB,IAAA,KAAA,CAAM,IAAI,CAAA;AAVZ,IAAQA,eAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AAWN,IAAA,IAAA,CAAK,IAAO,GAAA,IAAA;AAAA;AACd,EAEO,MAAM,CAAuB,EAAA;AAClC,IAAK,IAAA,CAAA,IAAA,CAAK,MAAM,CAAC,CAAA;AACjB,IAAO,OAAA,IAAA;AAAA;AAEX;;ACvCa,MAAA,QAAA,GAAW,CAAI,KAA0B,KAAA;AACpD,EAAO,OAAA,KAAA,KAAU,UAAa,KAAU,KAAA,IAAA;AAC1C;;;;;ACKO,MAAM,SAAa,CAAA;AAAA,EAIjB,WAAc,GAAA;AAHrB,IAAQA,eAAA,CAAA,IAAA,EAAA,QAAA,CAAA;AACR,IAAQA,eAAA,CAAA,IAAA,EAAA,YAAA,CAAA;AAGN,IAAK,IAAA,CAAA,MAAA,uBAAa,GAAkB,EAAA;AACpC,IAAA,IAAA,CAAK,UAAa,GAAA,IAAI,IAAK,CAAA,CAAC,CAAM,KAAA;AAChC,MAAK,IAAA,CAAA,MAAA,CAAO,OAAQ,CAAA,CAAC,CAAM,KAAA;AACzB,QAAA,CAAA,CAAE,KAAK,CAAC,CAAA;AAAA,OACT,CAAA;AAAA,KACF,CAAA;AAAA;AACH,EAEO,KAAQ,GAAA;AACb,IAAA,OAAO,IAAK,CAAA,UAAA;AAAA;AACd,EAEO,IAAe,GAAA;AACpB,IAAA,OAAO,KAAK,MAAO,CAAA,IAAA;AAAA;AACrB,EAEO,IAAI,KAA8B,EAAA;AACvC,IAAO,OAAA,IAAA,CAAK,MAAO,CAAA,GAAA,CAAI,KAAK,CAAA;AAAA;AAC9B,EAEO,IAAI,KAAqB,EAAA;AAC9B,IAAK,IAAA,CAAA,MAAA,CAAO,IAAI,KAAK,CAAA;AACrB,IAAO,OAAA,IAAA;AAAA;AACT,EAEO,OAAO,CAAiB,EAAA;AAC7B,IAAK,IAAA,CAAA,MAAA,CAAO,OAAO,CAAC,CAAA;AACpB,IAAO,OAAA,IAAA;AAAA;AACT,EAEO,OAAU,GAAA;AACf,IAAK,IAAA,CAAA,MAAA,CAAO,OAAQ,CAAA,CAAC,CAAM,KAAA;AACzB,MAAA,IAAA,CAAK,OAAO,CAAC,CAAA;AAAA,KACd,CAAA;AACD,IAAO,OAAA,IAAA;AAAA;AAEX;;ACzCO,MAAM,WAAc,cAAkB,CAAA;AAAA,EACpC,YAAoB,QAAa,EAAA;AACtC,IAAA,KAAA,CAAM,QAAQ,CAAA;AADW,IAAA,IAAA,CAAA,QAAA,GAAA,QAAA;AAAA;AAE3B,EAEO,MAAM,CAAuB,EAAA;AAClC,IAAI,IAAA,QAAA,CAAS,IAAK,CAAA,QAAQ,CAAG,EAAA;AAC3B,MAAE,CAAA,CAAA,IAAA,CAAK,KAAK,QAAQ,CAAA;AAAA;AAEtB,IAAO,OAAA,IAAA;AAAA;AAEX;;ACXO,MAAM,aAA0B,WAAY,CAAA;AAAA,EAC1C,YACK,OACV,EAAA;AACA,IAAM,KAAA,EAAA;AAFI,IAAA,IAAA,CAAA,OAAA,GAAA,OAAA;AAAA;AAGZ,EAEO,OAAO,IAAyB,EAAA;AACrC,IAAK,IAAA,CAAA,OAAA,CAAQ,CAAC,GAAQ,KAAA;AACpB,MAAA,IAAA,CAAK,OAAO,GAAG,CAAA;AAAA,KAChB,CAAA;AACD,IAAA,OAAO,KAAK,OAAU,GAAA,GAAG,IAAI,CAAM,IAAA,IAAI,GAAG,IAAI,CAAA;AAAA;AAElD;;;;;ACZO,MAAM,eAAkB,cAAkB,CAAA;AAAA,EAGxC,YACG,OACR,EAAA;AACA,IAAA,KAAA,CAAM,OAAO,CAAA;AAFL,IAAA,IAAA,CAAA,OAAA,GAAA,OAAA;AAHV,IAAQA,eAAA,CAAA,IAAA,EAAA,cAAA,CAAA;AAAA;AAMR,EAEO,MAAM,CAAuB,EAAA;AAClC,IAAK,IAAA,CAAA,YAAA,GAAe,IAAK,CAAA,OAAA,CAAQ,CAAC,CAAA;AAClC,IAAO,OAAA,IAAA;AAAA;AACT,EAEO,OAAgB,GAAA;AACrB,IAAA,KAAA,CAAM,OAAQ,EAAA;AACd,IAAA,IAAA,CAAK,YAAe,IAAA;AACpB,IAAO,OAAA,IAAA;AAAA;AAEX;;ACtBO,MAAM,aAAa,QAAS,CAAA;AAAA,EAC1B,IAAa,GAAA;AAClB,IAAO,OAAA,IAAA;AAAA;AAEX;;ACDO,MAAM,WAAwB,WAAY,CAAA;AAAA,EACxC,WAAA,CAAY,KAAyB,EAAyB,EAAA;AACnE,IAAA,KAAA,CAAM,KAAK,EAAE,CAAA;AACb,IAAI,GAAA,CAAA,KAAA,CAAM,KAAK,IAAI,IAAA,CAAK,EAAE,CAAI,GAAA,IAAI,MAAM,CAAA;AAAA;AAE5C;;;;;ACAO,MAAM,YAA+C,cAE1D,CAAA;AAAA,EAKO,eAAe,QAAa,EAAA;AACjC,IAAA,KAAA,CAAM,QAAQ,CAAA;AALhB,IAAQA,eAAA,CAAA,IAAA,EAAA,WAAA,CAAA;AACR,IAAQA,eAAA,CAAA,IAAA,EAAA,YAAA,sBAAiB,GAAI,EAAA,CAAA;AAC7B,IAAQA,eAAA,CAAA,IAAA,EAAA,OAAA,CAAA;AAIN,IAAA,IAAA,CAAK,KAAQ,GAAA,QAAA;AACb,IAAA,IAAA,CAAK,YAAY,IAAI,GAAA,CAAY,MAAO,CAAA,IAAA,CAAK,QAAQ,CAAC,CAAA;AAAA;AACxD,EAEO,MAAM,CAA+C,EAAA;AAC1D,IAAA,MAAM,SAAkC,EAAC;AAEzC,IAAO,MAAA,CAAA,OAAA,CAAQ,KAAK,KAAK,CAAA,CAAE,QAAQ,CAAC,CAAC,GAAK,EAAA,IAAI,CAAM,KAAA;AAClD,MAAK,IAAA,CAAA,SAAA,CAAU,IAAI,GAAG,CAAA;AACtB,MAAK,IAAA,CAAA,KAAA;AAAA,QACH,IAAI,IAAK,CAAA,CAAC,CAAM,KAAA;AACd,UAAK,IAAA,CAAA,UAAA,CAAW,IAAI,GAAG,CAAA;AACvB,UAAA,MAAA,CAAO,GAAG,CAAI,GAAA,CAAA;AACd,UAAI,IAAA,IAAA,CAAK,aAAe,EAAA;AACtB,YAAA,CAAA,CAAE,IAAK,CAAA,MAAA,CAAO,MAAO,CAAA,MAAM,CAA8B,CAAA;AAAA;AAC3D,SACD;AAAA,OACH;AAAA,KACD,CAAA;AACD,IAAO,OAAA,IAAA;AAAA;AACT,EAEQ,WAAc,GAAA;AACpB,IACE,OAAA,IAAA,CAAK,WAAW,IAAO,GAAA,CAAA,IAAK,KAAK,UAAW,CAAA,IAAA,KAAS,KAAK,SAAU,CAAA,IAAA;AAAA;AAG1E;;;;;AC1CO,MAAM,YAAe,cAAkB,CAAA;AAAA,EAGrC,eAAe,QAAgC,EAAA;AACpD,IAAA,KAAA,CAAM,QAAQ,CAAA;AAHhB,IAAQA,eAAA,CAAA,IAAA,EAAA,OAAA,CAAA;AAIN,IAAA,IAAA,CAAK,KAAQ,GAAA,QAAA;AAAA;AACf,EAEO,MAAM,CAAuB,EAAA;AAClC,IAAK,IAAA,CAAA,KAAA,CAAM,OAAQ,CAAA,CAAC,IAAS,KAAA;AAC3B,MAAA,IAAA,CAAK,MAAM,CAAC,CAAA;AAAA,KACb,CAAA;AACD,IAAO,OAAA,IAAA;AAAA;AAEX;;ACfO,MAAM,gBAAsB,cAAkB,CAAA;AAAA,EAC5C,WAAA,CACG,SACA,OACR,EAAA;AACA,IAAA,KAAA,CAAM,OAAO,CAAA;AAHL,IAAA,IAAA,CAAA,OAAA,GAAA,OAAA;AACA,IAAA,IAAA,CAAA,OAAA,GAAA,OAAA;AAAA;AAGV,EAEO,MAAM,CAAuB,EAAA;AAClC,IAAA,IAAA,CAAK,OAAQ,CAAA,KAAA;AAAA,MACX,IAAI,IAAK,CAAA,CAAC,CAAM,KAAA;AACd,QAAA,CAAA,CAAE,IAAK,CAAA,IAAA,CAAK,OAAQ,CAAA,CAAC,CAAC,CAAA;AAAA,OACvB;AAAA,KACH;AACA,IAAO,OAAA,IAAA;AAAA;AAEX;;;;;ACXO,MAAM,cAA2C,cAEtD,CAAA;AAAA,EAGO,eAAe,KAAU,EAAA;AAC9B,IAAA,KAAA,CAAM,KAAK,CAAA;AAHb,IAAQA,eAAA,CAAA,IAAA,EAAA,UAAA,CAAA;AAIN,IAAA,IAAA,CAAK,QAAW,GAAA,KAAA;AAAA;AAClB,EAEO,MAAM,CAAuB,EAAA;AAClC,IAAI,IAAA,SAAA;AAEJ,IAAM,MAAA,OAAA,GAAU,CAAC,KAAkB,KAAA;AACjC,MAAM,MAAA,IAAA,GAAO,IAAK,CAAA,QAAA,CAAS,KAAK,CAAA;AAChC,MAAA,MAAM,KAAQ,GAAA,IAAA,CAAK,QAAS,CAAA,KAAA,GAAQ,CAAC,CAAA;AAIrC,MAAK,IAAA,CAAA,KAAA;AAAA,QACH,IAAI,IAAK,CAAA,CAAC,CAAM,KAAA;AACd,UAAA,IAAI,CAAC,KAAO,EAAA;AACV,YAAY,SAAA,GAAA,CAAA;AAAA;AAGd,UAAA,IAAI,SAAW,EAAA;AACb,YAAA,CAAA,CAAE,KAAK,SAAS,CAAA;AAAA;AAGlB,UAAI,IAAA,KAAA,IAAS,CAAC,SAAW,EAAA;AACvB,YAAA,OAAA,CAAQ,QAAQ,CAAC,CAAA;AAAA;AACnB,SACD;AAAA,OACH;AAAA,KACF;AAEA,IAAA,OAAA,CAAQ,CAAC,CAAA;AAET,IAAO,OAAA,IAAA;AAAA;AAEX;;AC5CO,MAAM,wBAA2B,cAAkB,CAAA;AAAA,EACjD,WAAA,CACG,SACA,OACR,EAAA;AACA,IAAA,KAAA,CAAM,OAAO,CAAA;AAHL,IAAA,IAAA,CAAA,OAAA,GAAA,OAAA;AACA,IAAA,IAAA,CAAA,OAAA,GAAA,OAAA;AAAA;AAGV,EAEO,MAAM,CAAuB,EAAA;AAClC,IAAA,IAAA,CAAK,OAAQ,CAAA,KAAA;AAAA,MACX,IAAI,IAAA;AAAA,QACF,IAAA,CAAK,OAAQ,CAAA,CAAC,CAAM,KAAA;AAClB,UAAA,CAAA,CAAE,KAAK,CAAC,CAAA;AAAA,SACT;AAAA;AACH,KACF;AACA,IAAO,OAAA,IAAA;AAAA;AAEX;;ACjBO,MAAM,iBAAoB,cAAkB,CAAA;AAAA,EAC1C,WAAA,CACG,OACA,EAAA,SAAA,EACA,YACR,EAAA;AACA,IAAA,KAAA,CAAM,OAAO,CAAA;AAJL,IAAA,IAAA,CAAA,OAAA,GAAA,OAAA;AACA,IAAA,IAAA,CAAA,SAAA,GAAA,SAAA;AACA,IAAA,IAAA,CAAA,YAAA,GAAA,YAAA;AAAA;AAGV,EAEO,MAAM,CAAuB,EAAA;AAClC,IAAA,IAAA,CAAK,OAAQ,CAAA,KAAA;AAAA,MACX,IAAI,IAAK,CAAA,CAAC,CAAM,KAAA;AACd,QAAI,IAAA,IAAA,CAAK,SAAU,CAAA,CAAC,CAAG,EAAA;AACrB,UAAA,CAAA,CAAE,KAAK,CAAC,CAAA;AAAA,SACV,MAAA,IAAW,IAAK,CAAA,YAAA,KAAiB,MAAW,EAAA;AAC1C,UAAE,CAAA,CAAA,IAAA,CAAK,KAAK,YAAY,CAAA;AAAA;AAC1B,OACD;AAAA,KACH;AACA,IAAO,OAAA,IAAA;AAAA;AAEX;;;;;ACrBO,MAAM,qBAAwB,cAAkB,CAAA;AAAA,EAG9C,WAAA,CACG,cACL,IACH,EAAA;AACA,IAAA,KAAA,CAAM,SAAS,CAAA;AAHP,IAAA,IAAA,CAAA,SAAA,GAAA,SAAA;AAHV,IAAQA,eAAA,CAAA,IAAA,EAAA,SAAA,CAAA;AAON,IAAA,IAAA,CAAK,OAAU,GAAA,IAAA;AAAA;AACjB,EAEO,MAAM,CAAuB,EAAA;AAClC,IAAK,IAAA,CAAA,SAAA;AAAA,MACH,CAAC,CAAM,KAAA;AACL,QAAA,CAAA,CAAE,KAAK,CAAC,CAAA;AAAA,OACV;AAAA,MACA,GAAG,IAAK,CAAA;AAAA,KACV;AACA,IAAO,OAAA,IAAA;AAAA;AAEX;;ACnBO,MAAM,kBAA+B,cAAkB,CAAA;AAAA,EACrD,WAAA,CACG,YACA,YACA,EAAA,kBAAA,EACA,uBAAgD,IAAI,EAAA,CAAG,EAAE,CACjE,EAAA;AACA,IAAM,KAAA,CAAA,UAAA,EAAY,YAAc,EAAA,kBAAA,EAAoB,oBAAoB,CAAA;AALhE,IAAA,IAAA,CAAA,UAAA,GAAA,UAAA;AACA,IAAA,IAAA,CAAA,YAAA,GAAA,YAAA;AACA,IAAA,IAAA,CAAA,kBAAA,GAAA,kBAAA;AACA,IAAA,IAAA,CAAA,oBAAA,GAAA,oBAAA;AAAA;AAGV,EAEO,MAAM,CAAuB,EAAA;AAClC,IAAA,MAAM,IAAI,IAAI,GAAA;AAAA,MACZ,IAAK,CAAA,UAAA;AAAA,MACL,IAAK,CAAA,YAAA;AAAA,MACL,IAAK,CAAA,kBAAA;AAAA,MACL,IAAK,CAAA;AAAA,KACP;AACA,IAAM,MAAA,OAAA,GAAU,CAAC,CAAS,KAAA;AACxB,MAAA,CAAA,CAAE,KAAK,CAAC,CAAA;AAAA,KACV;AACA,IAAE,CAAA,CAAA,KAAA;AAAA,MACA,IAAI,KAAK,CAAC,CAAC,SAAS,SAAW,EAAA,SAAA,EAAW,WAAW,CAAM,KAAA;AACzD,QAAQ,OAAA,CAAA,SAAS,CAAE,CAAA,SAAA,EAAW,OAAO,CAAA;AACrC,QAAK,IAAA,CAAA,MAAA;AAAA,UACH,IAAI,YAAY,MAAM;AACpB,YAAQ,OAAA,CAAA,WAAW,CAAE,CAAA,SAAA,EAAW,OAAO,CAAA;AAAA,WACxC;AAAA,SACH;AAAA,OACD;AAAA,KACH;AACA,IAAO,OAAA,IAAA;AAAA;AAEX;;AClCO,MAAM,oBAAuB,cAAkB,CAAA;AAAA,EAC7C,WAAA,CACG,GACA,UACR,EAAA;AACA,IAAA,KAAA,CAAM,CAAC,CAAA;AAHC,IAAA,IAAA,CAAA,CAAA,GAAA,CAAA;AACA,IAAA,IAAA,CAAA,UAAA,GAAA,UAAA;AAAA;AAGV,EAEO,MAAM,CAAuB,EAAA;AAClC,IAAK,IAAA,CAAA,CAAA,CACF,IAAK,CAAA,CAAC,CAAM,KAAA;AACX,MAAA,CAAA,CAAE,KAAK,CAAC,CAAA;AAAA,KACT,CAAA,CACA,KAAM,CAAA,CAAC,CAAM,KAAA;AACZ,MAAK,IAAA,CAAA,UAAA,EAAY,KAAK,CAAC,CAAA;AAAA,KACxB,CAAA;AACH,IAAO,OAAA,IAAA;AAAA;AAEX;;;;;AChBO,MAAM,aAAgB,cAA0C,CAAA;AAAA,EAO9D,YAAoB,QAAc,EAAA;AACvC,IAAA,KAAA,CAAM,QAAQ,CAAA;AADW,IAAA,IAAA,CAAA,QAAA,GAAA,QAAA;AAN3B,IAAQA,eAAA,CAAA,IAAA,EAAA,UAAA,CAAA;AACR,IAAAA,eAAA,CAAA,IAAA,EAAQ,WAAY,EAAA,IAAI,IAAK,CAAA,CAAC,CAAS,KAAA;AACrC,MAAA,IAAA,CAAK,QAAW,GAAA,CAAA;AAChB,MAAA,IAAA,CAAK,MAAO,EAAA;AAAA,KACb,CAAA,CAAA;AAAA;AAID,EAEO,MAAM,CAAuB,EAAA;AAClC,IAAA,IAAI,KAAK,QAAU,EAAA;AACjB,MAAA,MAAM,IAAI,KAAA;AAAA,QACR;AAAA,OACF;AAAA;AAEF,IAAA,IAAA,CAAK,QAAW,GAAA,CAAA;AAChB,IAAA,IAAA,CAAK,MAAO,EAAA;AACZ,IAAO,OAAA,IAAA;AAAA;AACT,EAEO,KAAK,CAAM,EAAA;AAChB,IAAA,IAAA,CAAK,QAAW,GAAA,CAAA;AAChB,IAAK,IAAA,CAAA,SAAA,CAAU,KAAK,CAAC,CAAA;AACrB,IAAO,OAAA,IAAA;AAAA;AACT,EAEQ,MAAS,GAAA;AACf,IAAA,IAAI,QAAS,CAAA,IAAA,CAAK,QAAQ,CAAA,IAAK,KAAK,QAAU,EAAA;AAC5C,MAAK,IAAA,CAAA,QAAA,CAAS,IAAK,CAAA,IAAA,CAAK,QAAQ,CAAA;AAAA;AAElC,IAAO,OAAA,IAAA;AAAA;AAEX;;ACtCO,MAAM,oBAAuB,IAAQ,CAAA;AAAA,EACnC,WAAA,CACG,UACA,OACR,EAAA;AACA,IAAM,KAAA,EAAA;AAHE,IAAA,IAAA,CAAA,QAAA,GAAA,QAAA;AACA,IAAA,IAAA,CAAA,OAAA,GAAA,OAAA;AAAA;AAGV,EAEO,OAAO,IAA6C,EAAA;AACzD,IAAA,OAAO,KAAK,OAAQ,CAAA,IAAA,CAAK,SAAS,GAAI,CAAA,GAAG,IAAI,CAAC,CAAA;AAAA;AAElD;;ACXO,MAAM,kBAAqB,IAAQ,CAAA;AAAA,EACjC,YAAY,QAAe,EAAA;AAChC,IAAA,MAAM,UAAU,CAAI,GAAA,IAAA,KAAoB,IAAI,QAAA,CAAS,GAAG,IAAI,CAAA;AAC5D,IAAA,KAAA,CAAM,OAAO,CAAA;AAAA;AAEjB;;ACKO,MAAM,YAAmB,cAAqB,CAAA;AAAA,EAC5C,WAAA,CACG,SACA,SACR,EAAA;AACA,IAAA,KAAA,CAAM,SAAS,SAAS,CAAA;AAHhB,IAAA,IAAA,CAAA,OAAA,GAAA,OAAA;AACA,IAAA,IAAA,CAAA,SAAA,GAAA,SAAA;AAAA;AAGV,EAEO,MAAM,CAAoB,EAAA;AAC/B,IAAA,IAAA,CAAK,OAAQ,CAAA,KAAA;AAAA,MACX,IAAI,IAAK,CAAA,CAAC,CAAM,KAAA;AACd,QAAA,MAAM,QAA+B,EAAC;AACtC,QAAE,CAAA,CAAA,OAAA,CAAQ,CAAC,GAAQ,KAAA;AACjB,UAAA,IAAI,OAAkC,GAAA,GAAA;AACtC,UAAI,IAAA,EAAE,mBAAmB,cAAiB,CAAA,EAAA;AACxC,YAAU,OAAA,GAAA,IAAI,GAAG,OAAO,CAAA;AAAA;AAE1B,UAAA,MAAM,IAAO,GAAA,IAAA,CAAK,SAAU,CAAA,GAAA,CAAI,OAAO,CAAA;AACvC,UAAA,KAAA,CAAM,KAAK,IAAI,CAAA;AAAA,SAChB,CAAA;AACD,QAAA,MAAM,IAAO,GAAA,IAAI,GAAI,CAAA,GAAG,KAAK,CAAA;AAC7B,QAAA,IAAA,CAAK,MAAM,CAAC,CAAA;AAAA,OACb;AAAA,KACH;AACA,IAAO,OAAA,IAAA;AAAA;AAEX;;ACjCO,MAAM,aAAgB,cAAkB,CAAA;AAAA,EACtC,YAAoB,OAA6B,EAAA;AACtD,IAAM,KAAA,EAAA;AADmB,IAAA,IAAA,CAAA,OAAA,GAAA,OAAA;AAAA;AAE3B,EAEO,MAAM,CAAuB,EAAA;AAClC,IAAA,IAAI,QAAW,GAAA,KAAA;AACf,IAAA,IAAA,CAAK,OAAQ,CAAA,KAAA;AAAA,MACX,IAAI,IAAK,CAAA,CAAC,CAAM,KAAA;AACd,QAAA,IAAI,CAAC,QAAU,EAAA;AACb,UAAW,QAAA,GAAA,IAAA;AACX,UAAA,CAAA,CAAE,KAAK,CAAC,CAAA;AAAA;AACV,OACD;AAAA,KACH;AACA,IAAO,OAAA,IAAA;AAAA;AAEX;;AClBO,MAAM,iBAAoB,cAAoB,CAAA;AAAA,EAC5C,YAAoB,OAA6B,EAAA;AACtD,IAAA,KAAA,CAAM,OAAO,CAAA;AADY,IAAA,IAAA,CAAA,OAAA,GAAA,OAAA;AAAA;AAE3B,EAEO,MAAM,CAAyB,EAAA;AACpC,IAAA,MAAM,SAAc,EAAC;AACrB,IAAA,IAAA,CAAK,OAAQ,CAAA,KAAA;AAAA,MACX,IAAI,IAAK,CAAA,CAAC,CAAM,KAAA;AACd,QAAA,MAAA,CAAO,KAAK,CAAC,CAAA;AACb,QAAA,CAAA,CAAE,KAAK,MAAM,CAAA;AAAA,OACd;AAAA,KACH;AACA,IAAO,OAAA,IAAA;AAAA;AAEX;;;;;ACRO,MAAM,eAAkB,cAA0C,CAAA;AAAA,EAIhE,WAAA,CACG,OACA,EAAA,SAAA,GAAY,KACpB,EAAA;AACA,IAAA,KAAA,CAAM,OAAO,CAAA;AAHL,IAAA,IAAA,CAAA,OAAA,GAAA,OAAA;AACA,IAAA,IAAA,CAAA,SAAA,GAAA,SAAA;AALV,IAAQA,eAAA,CAAA,IAAA,EAAA,WAAA,CAAA;AACR,IAAQA,eAAA,CAAA,IAAA,EAAA,YAAA,EAAa,IAAI,SAAa,EAAA,CAAA;AAOpC,IAAK,IAAA,CAAA,MAAA,CAAO,KAAK,UAAU,CAAA;AAC3B,IAAA,IAAA,CAAK,OAAQ,CAAA,KAAA;AAAA,MACX,IAAI,IAAK,CAAA,CAAC,CAAM,KAAA;AACd,QAAA,IAAA,CAAK,UAAW,CAAA,KAAA,EAAQ,CAAA,IAAA,CAAK,CAAC,CAAA;AAC9B,QAAA,IAAA,CAAK,SAAY,GAAA,CAAA;AAAA,OAClB;AAAA,KACH;AAAA;AACF,EAEO,MAAM,CAAuB,EAAA;AAClC,IAAA,MAAM,CAAI,GAAA,IAAI,MAAO,CAAA,CAAC,CAAoB,KAAA;AACxC,MAAA,IACE,CAAC,IAAA,CAAK,SACN,IAAA,QAAA,CAAS,IAAK,CAAA,SAAS,CACvB,IAAA,CAAC,IAAK,CAAA,UAAA,CAAW,GAAI,CAAA,CAAC,CACtB,EAAA;AACA,QAAE,CAAA,CAAA,IAAA,CAAK,KAAK,SAAS,CAAA;AAAA;AAEvB,MAAK,IAAA,CAAA,UAAA,CAAW,IAAI,CAAC,CAAA;AACrB,MAAA,OAAO,MAAM;AACX,QAAK,IAAA,CAAA,UAAA,CAAW,OAAO,CAAC,CAAA;AAAA,OAC1B;AAAA,KACD,CAAA;AACD,IAAA,CAAA,CAAE,MAAM,CAAC,CAAA;AACT,IAAA,IAAA,CAAK,OAAO,CAAC,CAAA;AAEb,IAAO,OAAA,IAAA;AAAA;AACT,EAEO,IAAO,GAAA;AACZ,IAAA,OAAO,IAAK,CAAA,UAAA;AAAA;AACd,EAEO,KAAK,KAAU,EAAA;AACpB,IAAA,IAAA,CAAK,SAAY,GAAA,KAAA;AACjB,IAAA,IAAA,CAAK,UAAW,CAAA,KAAA,EAAQ,CAAA,IAAA,CAAK,KAAK,CAAA;AAClC,IAAO,OAAA,IAAA;AAAA;AAEX;;;;;AC1DO,MAAM,qBAAwB,cAA0C,CAAA;AAAA,EAGtE,WAAA,CACG,OACR,EAAA,SAAA,GAAY,KACZ,EAAA;AACA,IAAA,MAAM,SAAY,GAAA,IAAI,MAAO,CAAA,OAAA,EAAS,SAAS,CAAA;AAC/C,IAAA,KAAA,CAAM,SAAS,CAAA;AAJP,IAAA,IAAA,CAAA,OAAA,GAAA,OAAA;AAHV,IAAQ,aAAA,CAAA,IAAA,EAAA,WAAA,CAAA;AAQN,IAAA,IAAA,CAAK,SAAY,GAAA,SAAA;AAAA;AACnB,EAEO,MAAM,CAAuB,EAAA;AAClC,IAAK,IAAA,CAAA,SAAA,CAAU,MAAM,CAAC,CAAA;AACtB,IAAO,OAAA,IAAA;AAAA;AACT,EAEO,KAAK,KAAgB,EAAA;AAC1B,IAAK,IAAA,CAAA,OAAA,CAAQ,KAAK,KAAK,CAAA;AACvB,IAAK,IAAA,CAAA,SAAA,CAAU,KAAK,KAAK,CAAA;AACzB,IAAO,OAAA,IAAA;AAAA;AAEX;;ACnBO,MAAM,eAAkB,cAAkB,CAAA;AAAA,EACxC,YAAoB,OAA+B,EAAA;AACxD,IAAA,KAAA,CAAM,OAAO,CAAA;AADY,IAAA,IAAA,CAAA,OAAA,GAAA,OAAA;AAAA;AAE3B,EAEO,MAAM,CAAuB,EAAA;AAClC,IAAA,IAAA,CAAK,OAAQ,CAAA,KAAA;AAAA,MACX,IAAI,IAAK,CAAA,CAAC,CAAM,KAAA;AACd,QAAE,CAAA,CAAA,OAAA,CAAQ,CAAC,EAAO,KAAA;AAChB,UAAA,CAAA,CAAE,KAAK,EAAE,CAAA;AAAA,SACV,CAAA;AAAA,OACF;AAAA,KACH;AACA,IAAO,OAAA,IAAA;AAAA;AAEX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/silentium.d.ts
CHANGED
|
@@ -312,7 +312,7 @@ declare class OwnerPool<T> {
|
|
|
312
312
|
* a single another information object
|
|
313
313
|
* https://silentium-lab.github.io/silentium/#/en/information/pool
|
|
314
314
|
*/
|
|
315
|
-
declare class Shared<T> extends TheInformation<T> {
|
|
315
|
+
declare class Shared<T> extends TheInformation<T> implements OwnerType<T> {
|
|
316
316
|
private baseSrc;
|
|
317
317
|
private stateless;
|
|
318
318
|
private lastValue;
|
|
@@ -320,12 +320,13 @@ declare class Shared<T> extends TheInformation<T> {
|
|
|
320
320
|
constructor(baseSrc: InformationType<T>, stateless?: boolean);
|
|
321
321
|
value(o: OwnerType<T>): this;
|
|
322
322
|
pool(): OwnerPool<T>;
|
|
323
|
+
give(value: T): this;
|
|
323
324
|
}
|
|
324
325
|
|
|
325
326
|
declare class SharedSource<T> extends TheInformation<T> implements OwnerType<T> {
|
|
326
327
|
private baseSrc;
|
|
327
328
|
private sharedSrc;
|
|
328
|
-
constructor(baseSrc:
|
|
329
|
+
constructor(baseSrc: SourceType<T>, stateless?: boolean);
|
|
329
330
|
value(o: OwnerType<T>): this;
|
|
330
331
|
give(value: T): this;
|
|
331
332
|
}
|
package/dist/silentium.js
CHANGED
|
@@ -533,6 +533,11 @@ class Shared extends TheInformation {
|
|
|
533
533
|
pool() {
|
|
534
534
|
return this.ownersPool;
|
|
535
535
|
}
|
|
536
|
+
give(value) {
|
|
537
|
+
this.lastValue = value;
|
|
538
|
+
this.ownersPool.owner().give(value);
|
|
539
|
+
return this;
|
|
540
|
+
}
|
|
536
541
|
}
|
|
537
542
|
|
|
538
543
|
var __defProp = Object.defineProperty;
|
|
@@ -551,7 +556,8 @@ class SharedSource extends TheInformation {
|
|
|
551
556
|
return this;
|
|
552
557
|
}
|
|
553
558
|
give(value) {
|
|
554
|
-
this.
|
|
559
|
+
this.baseSrc.give(value);
|
|
560
|
+
this.sharedSrc.give(value);
|
|
555
561
|
return this;
|
|
556
562
|
}
|
|
557
563
|
}
|
package/dist/silentium.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"silentium.js","sources":["../src/base/Destroyable.ts","../src/base/DestroyFunc.ts","../src/base/TheOwner.ts","../src/base/From.ts","../src/base/TheInformation.ts","../src/helpers/isFilled.ts","../src/helpers/OwnerPool.ts","../src/base/Of.ts","../src/base/Lazy.ts","../src/base/OfFunc.ts","../src/base/Void.ts","../src/base/On.ts","../src/components/All.ts","../src/components/Any.ts","../src/components/Applied.ts","../src/components/Chain.ts","../src/components/ExecutorApplied.ts","../src/components/Filtered.ts","../src/components/FromCallback.ts","../src/components/FromEvent.ts","../src/components/FromPromise.ts","../src/components/Late.ts","../src/components/LazyApplied.ts","../src/components/LazyClass.ts","../src/components/Map.ts","../src/components/Once.ts","../src/components/Sequence.ts","../src/components/Shared.ts","../src/components/SharedSource.ts","../src/components/Stream.ts"],"sourcesContent":["const isDestroyable = (dep: unknown): dep is Destroyable => {\n return typeof dep === \"object\" && dep !== null && \"destroy\" in dep;\n};\n\n/**\n * Representation of Destroyable object\n */\nexport class Destroyable {\n private theDeps: any[];\n public constructor(...deps: any[]) {\n this.theDeps = deps ?? [];\n }\n\n public destroy() {\n this.theDeps?.forEach((dep) => {\n if (isDestroyable(dep)) {\n dep.destroy();\n }\n });\n return this;\n }\n\n /**\n * Add dependency what can be destroyed\n */\n public addDep(dep: any) {\n this.theDeps?.push(dep);\n return this;\n }\n\n public dep(dep: any) {\n this.addDep(dep);\n return dep;\n }\n}\n","import { Destroyable } from \"./Destroyable\";\n\n/**\n * Representation of destructor function as object\n */\nexport class DestroyFunc extends Destroyable {\n public constructor(private destructor: () => void) {\n super();\n }\n\n public destroy(): this {\n this.destructor();\n return this;\n }\n}\n","export interface OwnerType<T = unknown> {\n give(value: T): this;\n}\n\n/**\n * Representation of Information Owner\n */\nexport abstract class TheOwner<T = unknown> implements OwnerType<T> {\n public abstract give(value: T): this;\n}\n","import { TheOwner } from \"./TheOwner\";\n\n/**\n * Owner from function\n */\nexport class From<T = unknown> extends TheOwner<T> {\n public constructor(private fn: (value: T) => void) {\n super();\n }\n\n public give(value: T): this {\n this.fn(value);\n return this;\n }\n}\n","import { Destroyable } from \"./Destroyable\";\nimport { Of } from \"./Of\";\nimport { OwnerType } from \"./TheOwner\";\n\nexport interface InformationType<T = unknown> {\n value(o: OwnerType<T>): this;\n}\n\nexport type MaybeInformationType<T = unknown> = InformationType<T> | T;\n\n/**\n * Representation of Information\n */\nexport abstract class TheInformation<T = unknown>\n extends Destroyable\n implements InformationType<T>\n{\n public abstract value(o: OwnerType<T>): this;\n}\n\nexport class MbInfo<T> extends TheInformation<T> {\n private info: InformationType<T>;\n\n public constructor(theInfo: MaybeInformationType<T>) {\n const info =\n typeof theInfo === \"object\" &&\n theInfo !== null &&\n \"value\" in theInfo &&\n typeof theInfo.value === \"function\"\n ? theInfo\n : new Of(theInfo);\n super(info);\n this.info = info;\n }\n\n public value(o: OwnerType<T>): this {\n this.info.value(o);\n return this;\n }\n}\n","export const isFilled = <T>(value?: T): value is T => {\n return value !== undefined && value !== null;\n};\n","import { From, OwnerType } from \"../base\";\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<OwnerType<T>>;\n private innerOwner: OwnerType<T>;\n\n public constructor() {\n this.owners = new Set<OwnerType<T>>();\n this.innerOwner = new From((v) => {\n this.owners.forEach((g) => {\n g.give(v);\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: OwnerType<T>): boolean {\n return this.owners.has(owner);\n }\n\n public add(owner: OwnerType<T>) {\n this.owners.add(owner);\n return this;\n }\n\n public remove(g: OwnerType<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 { OwnerType } from \"./TheOwner\";\nimport { TheInformation } from \"./TheInformation\";\nimport { isFilled } from \"../helpers\";\n\n/**\n * Information from primitive value\n */\nexport class Of<T> extends TheInformation<T> {\n public constructor(private theValue: T) {\n super(theValue);\n }\n\n public value(o: OwnerType<T>): this {\n if (isFilled(this.theValue)) {\n o.give(this.theValue);\n }\n return this;\n }\n}\n","import { Destroyable } from \"./Destroyable\";\nimport { Of } from \"./Of\";\nimport { InformationType } from \"./TheInformation\";\n\n/**\n * Ability to create information after some event\n */\nexport class Lazy<T = unknown> extends Destroyable {\n public constructor(\n protected buildFn?: (...args: InformationType[]) => InformationType<T>,\n ) {\n super();\n }\n\n public get(...args: InformationType[]) {\n args.forEach((dep) => {\n this.addDep(dep);\n });\n return this.buildFn?.(...args) ?? (new Of(null) as InformationType<T>);\n }\n}\n","import { OwnerType } from \"./TheOwner\";\nimport { TheInformation } from \"./TheInformation\";\n\ntype DestructorFnType = () => void;\n\n/**\n * Information of function\n */\nexport class OfFunc<T> extends TheInformation<T> {\n private mbDestructor?: DestructorFnType | void;\n\n public constructor(\n private valueFn: (o: OwnerType<T>) => DestructorFnType | undefined | void,\n ) {\n super(valueFn);\n }\n\n public value(o: OwnerType<T>): this {\n this.mbDestructor = this.valueFn(o);\n return this;\n }\n\n public destroy(): this {\n super.destroy();\n this.mbDestructor?.();\n return this;\n }\n}\n","import { TheOwner } from \"./TheOwner\";\n\n/**\n * Silent owner\n */\nexport class Void extends TheOwner {\n public give(): this {\n return this;\n }\n}\n","import { Destroyable } from \"../base/Destroyable\";\nimport { From } from \"../base/From\";\nimport { InformationType } from \"../base/TheInformation\";\nimport { Void } from \"../base/Void\";\n\n/**\n * Run information with functional owner if needed\n */\nexport class On<T = unknown> extends Destroyable {\n public constructor(src: InformationType<T>, fn?: (value: T) => void) {\n super(src, fn);\n src.value(fn ? new From(fn) : new Void());\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\n\ntype ExtractTypeS<T> = T extends InformationType<infer U> ? U : never;\n\nexport type ExtractTypesFromArrayS<T extends InformationType<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 class All<const T extends InformationType[]> extends TheInformation<\n ExtractTypesFromArrayS<T>\n> {\n private keysKnown: Set<string>;\n private keysFilled = new Set();\n private infos: T;\n\n public constructor(...theInfos: T) {\n super(theInfos);\n this.infos = theInfos;\n this.keysKnown = new Set<string>(Object.keys(theInfos));\n }\n\n public value(o: OwnerType<ExtractTypesFromArrayS<T>>): this {\n const result: Record<string, unknown> = {};\n\n Object.entries(this.infos).forEach(([key, info]) => {\n this.keysKnown.add(key);\n info.value(\n new From((v) => {\n this.keysFilled.add(key);\n result[key] = v;\n if (this.isAllFilled()) {\n o.give(Object.values(result) as ExtractTypesFromArrayS<T>);\n }\n }),\n );\n });\n return this;\n }\n\n private isAllFilled() {\n return (\n this.keysFilled.size > 0 && this.keysFilled.size === this.keysKnown.size\n );\n }\n}\n","import { InformationType, OwnerType, TheInformation } from \"../base\";\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 class Any<T> extends TheInformation<T> {\n private infos: InformationType<T>[];\n\n public constructor(...theInfos: InformationType<T>[]) {\n super(theInfos);\n this.infos = theInfos;\n }\n\n public value(o: OwnerType<T>): this {\n this.infos.forEach((info) => {\n info.value(o);\n });\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\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 class Applied<T, R> extends TheInformation<R> {\n public constructor(\n private baseSrc: InformationType<T>,\n private applier: (v: T) => R,\n ) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<R>): this {\n this.baseSrc.value(\n new From((v) => {\n o.give(this.applier(v));\n }),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\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 class Chain<T extends InformationType[]> extends TheInformation<\n Last<T>\n> {\n private theInfos: T;\n\n public constructor(...infos: T) {\n super(infos);\n this.theInfos = infos;\n }\n\n public value(o: OwnerType<Last<T>>) {\n let lastValue: Last<T> | undefined;\n\n const handleI = (index: number) => {\n const info = this.theInfos[index] as TheInformation<Last<T>>;\n const nextI = this.theInfos[index + 1] as\n | TheInformation<Last<T>>\n | undefined;\n\n info.value(\n new From((v) => {\n if (!nextI) {\n lastValue = v;\n }\n\n if (lastValue) {\n o.give(lastValue);\n }\n\n if (nextI && !lastValue) {\n handleI(index + 1);\n }\n }),\n );\n };\n\n handleI(0);\n\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\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 class ExecutorApplied<T> extends TheInformation<T> {\n public constructor(\n private baseSrc: InformationType<T>,\n private applier: (executor: (v: T) => void) => (v: T) => void,\n ) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.baseSrc.value(\n new From(\n this.applier((v) => {\n o.give(v);\n }),\n ),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\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 class Filtered<T> extends TheInformation<T> {\n public constructor(\n private baseSrc: InformationType<T>,\n private predicate: (v: T) => boolean,\n private defaultValue?: T,\n ) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.baseSrc.value(\n new From((v) => {\n if (this.predicate(v)) {\n o.give(v);\n } else if (this.defaultValue !== undefined) {\n o.give(this.defaultValue);\n }\n }),\n );\n return this;\n }\n}\n","import { OwnerType, TheInformation } from \"../base\";\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 class FromCallback<T> extends TheInformation<T> {\n private theArgs: unknown[];\n\n public constructor(\n private waitForCb: (cb: (v: T) => any, ...args: unknown[]) => unknown,\n ...args: unknown[]\n ) {\n super(waitForCb);\n this.theArgs = args;\n }\n\n public value(o: OwnerType<T>): this {\n this.waitForCb(\n (v) => {\n o.give(v);\n },\n ...this.theArgs,\n );\n return this;\n }\n}\n","import { DestroyFunc } from \"../base/DestroyFunc\";\nimport { From, InformationType, Of, OwnerType, TheInformation } from \"../base\";\nimport { All } from \"./All\";\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 class FromEvent<T = unknown> extends TheInformation<T> {\n public constructor(\n private emitterSrc: InformationType<any>,\n private eventNameSrc: InformationType<string>,\n private subscribeMethodSrc: InformationType<string>,\n private unsubscribeMethodSrc: InformationType<string> = new Of(\"\"),\n ) {\n super(emitterSrc, eventNameSrc, subscribeMethodSrc, unsubscribeMethodSrc);\n }\n\n public value(o: OwnerType<T>): this {\n const a = new All(\n this.emitterSrc,\n this.eventNameSrc,\n this.subscribeMethodSrc,\n this.unsubscribeMethodSrc,\n );\n const handler = (v: T) => {\n o.give(v);\n };\n a.value(\n new From(([emitter, eventName, subscribe, unsubscribe]) => {\n emitter[subscribe](eventName, handler);\n this.addDep(\n new DestroyFunc(() => {\n emitter[unsubscribe](eventName, handler);\n }),\n );\n }),\n );\n return this;\n }\n}\n","import { OwnerType, TheInformation } from \"../base\";\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 class FromPromise<T> extends TheInformation<T> {\n public constructor(\n private p: Promise<T>,\n private errorOwner?: OwnerType,\n ) {\n super(p);\n }\n\n public value(o: OwnerType<T>): this {\n this.p\n .then((v) => {\n o.give(v);\n })\n .catch((e) => {\n this.errorOwner?.give(e);\n });\n return this;\n }\n}\n","import { From, OwnerType, TheInformation } from \"../base\";\nimport { isFilled } from \"../helpers\";\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 class Late<T> extends TheInformation<T> implements OwnerType<T> {\n private theOwner?: OwnerType<T>;\n private lateOwner = new From((v: T) => {\n this.theValue = v;\n this.notify();\n });\n\n public constructor(private theValue?: T) {\n super(theValue);\n }\n\n public value(o: OwnerType<T>): this {\n if (this.theOwner) {\n throw new Error(\n \"Late component gets new owner, when another was already connected!\",\n );\n }\n this.theOwner = o;\n this.notify();\n return this;\n }\n\n public give(v: T) {\n this.theValue = v;\n this.lateOwner.give(v);\n return this;\n }\n\n private notify() {\n if (isFilled(this.theValue) && this.theOwner) {\n this.theOwner.give(this.theValue);\n }\n return this;\n }\n}\n","import { InformationType, Lazy } from \"../base\";\n\n/**\n * Lazy with applied function to its results\n */\nexport class LazyApplied<T> extends Lazy<T> {\n public constructor(\n private baseLazy: Lazy,\n private applier: (i: InformationType) => InformationType<T>,\n ) {\n super();\n }\n\n public get(...args: InformationType[]): InformationType<T> {\n return this.applier(this.baseLazy.get(...args));\n }\n}\n","import { Lazy } from \"../base\";\n\n/**\n * Lazy instance from class constructor\n */\nexport class LazyClass<T> extends Lazy<T> {\n public constructor(constrFn: any) {\n const buildFn = (...args: unknown[]) => new constrFn(...args);\n super(buildFn);\n }\n}\n","import {\n From,\n InformationType,\n Lazy,\n Of,\n OwnerType,\n TheInformation,\n} from \"../base\";\nimport { All } from \"./All\";\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 class Map<T, TG> extends TheInformation<TG[]> {\n public constructor(\n private baseSrc: InformationType<T[]>,\n private targetSrc: Lazy<TG>,\n ) {\n super(baseSrc, targetSrc);\n }\n\n public value(o: OwnerType<TG[]>) {\n this.baseSrc.value(\n new From((v) => {\n const infos: InformationType<TG>[] = [];\n v.forEach((val) => {\n let valInfo: InformationType<T> | T = val;\n if (!(valInfo instanceof TheInformation)) {\n valInfo = new Of(valInfo);\n }\n const info = this.targetSrc.get(valInfo);\n infos.push(info);\n });\n const allI = new All(...infos);\n allI.value(o);\n }),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\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 class Once<T> extends TheInformation<T> {\n public constructor(private baseSrc: InformationType<T>) {\n super();\n }\n\n public value(o: OwnerType<T>): this {\n let isFilled = false;\n this.baseSrc.value(\n new From((v) => {\n if (!isFilled) {\n isFilled = true;\n o.give(v);\n }\n }),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\n\n/**\n * A component that takes one value at a time and returns\n * an array of all previous values\n * https://silentium-lab.github.io/silentium/#/en/information/sequence\n */\nexport class Sequence<T> extends TheInformation<T[]> {\n public constructor(private baseSrc: InformationType<T>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T[]>): this {\n const result: T[] = [];\n this.baseSrc.value(\n new From((v) => {\n result.push(v);\n o.give(result);\n }),\n );\n return this;\n }\n}\n","import { isFilled, OwnerPool } from \"../helpers\";\nimport {\n From,\n InformationType,\n OfFunc,\n OwnerType,\n TheInformation,\n} from \"../base\";\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 class Shared<T> extends TheInformation<T> {\n private lastValue: T | undefined;\n private ownersPool = new OwnerPool<T>();\n\n public constructor(\n private baseSrc: InformationType<T>,\n private stateless = false,\n ) {\n super(baseSrc);\n this.addDep(this.ownersPool);\n this.baseSrc.value(\n new From((v) => {\n this.ownersPool.owner().give(v);\n this.lastValue = v;\n }),\n );\n }\n\n public value(o: OwnerType<T>): this {\n const i = new OfFunc((g: OwnerType<T>) => {\n if (\n !this.stateless &&\n isFilled(this.lastValue) &&\n !this.ownersPool.has(g)\n ) {\n g.give(this.lastValue);\n }\n this.ownersPool.add(g);\n return () => {\n this.ownersPool.remove(g);\n };\n });\n i.value(o);\n this.addDep(i);\n\n return this;\n }\n\n public pool() {\n return this.ownersPool;\n }\n}\n","import { Shared } from \"../components/Shared\";\nimport { InformationType, OwnerType, TheInformation } from \"../base\";\n\nexport class SharedSource<T> extends TheInformation<T> implements OwnerType<T> {\n private sharedSrc: Shared<T>;\n\n public constructor(\n private baseSrc: InformationType<T>,\n stateless = false,\n ) {\n const sharedSrc = new Shared(baseSrc, stateless);\n super(sharedSrc);\n this.sharedSrc = sharedSrc;\n }\n\n public value(o: OwnerType<T>): this {\n this.sharedSrc.value(o);\n return this;\n }\n\n public give(value: T): this {\n this.sharedSrc.pool().owner().give(value);\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\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 class Stream<T> extends TheInformation<T> {\n public constructor(private baseSrc: InformationType<T[]>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.baseSrc.value(\n new From((v) => {\n v.forEach((cv) => {\n o.give(cv);\n });\n }),\n );\n return this;\n }\n}\n"],"names":["__publicField"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"silentium.js","sources":["../src/base/Destroyable.ts","../src/base/DestroyFunc.ts","../src/base/TheOwner.ts","../src/base/From.ts","../src/base/TheInformation.ts","../src/helpers/isFilled.ts","../src/helpers/OwnerPool.ts","../src/base/Of.ts","../src/base/Lazy.ts","../src/base/OfFunc.ts","../src/base/Void.ts","../src/base/On.ts","../src/components/All.ts","../src/components/Any.ts","../src/components/Applied.ts","../src/components/Chain.ts","../src/components/ExecutorApplied.ts","../src/components/Filtered.ts","../src/components/FromCallback.ts","../src/components/FromEvent.ts","../src/components/FromPromise.ts","../src/components/Late.ts","../src/components/LazyApplied.ts","../src/components/LazyClass.ts","../src/components/Map.ts","../src/components/Once.ts","../src/components/Sequence.ts","../src/components/Shared.ts","../src/components/SharedSource.ts","../src/components/Stream.ts"],"sourcesContent":["const isDestroyable = (dep: unknown): dep is Destroyable => {\n return typeof dep === \"object\" && dep !== null && \"destroy\" in dep;\n};\n\n/**\n * Representation of Destroyable object\n */\nexport class Destroyable {\n private theDeps: any[];\n public constructor(...deps: any[]) {\n this.theDeps = deps ?? [];\n }\n\n public destroy() {\n this.theDeps?.forEach((dep) => {\n if (isDestroyable(dep)) {\n dep.destroy();\n }\n });\n return this;\n }\n\n /**\n * Add dependency what can be destroyed\n */\n public addDep(dep: any) {\n this.theDeps?.push(dep);\n return this;\n }\n\n public dep(dep: any) {\n this.addDep(dep);\n return dep;\n }\n}\n","import { Destroyable } from \"./Destroyable\";\n\n/**\n * Representation of destructor function as object\n */\nexport class DestroyFunc extends Destroyable {\n public constructor(private destructor: () => void) {\n super();\n }\n\n public destroy(): this {\n this.destructor();\n return this;\n }\n}\n","export interface OwnerType<T = unknown> {\n give(value: T): this;\n}\n\n/**\n * Representation of Information Owner\n */\nexport abstract class TheOwner<T = unknown> implements OwnerType<T> {\n public abstract give(value: T): this;\n}\n","import { TheOwner } from \"./TheOwner\";\n\n/**\n * Owner from function\n */\nexport class From<T = unknown> extends TheOwner<T> {\n public constructor(private fn: (value: T) => void) {\n super();\n }\n\n public give(value: T): this {\n this.fn(value);\n return this;\n }\n}\n","import { Destroyable } from \"./Destroyable\";\nimport { Of } from \"./Of\";\nimport { OwnerType } from \"./TheOwner\";\n\nexport interface InformationType<T = unknown> {\n value(o: OwnerType<T>): this;\n}\n\nexport type MaybeInformationType<T = unknown> = InformationType<T> | T;\n\n/**\n * Representation of Information\n */\nexport abstract class TheInformation<T = unknown>\n extends Destroyable\n implements InformationType<T>\n{\n public abstract value(o: OwnerType<T>): this;\n}\n\nexport class MbInfo<T> extends TheInformation<T> {\n private info: InformationType<T>;\n\n public constructor(theInfo: MaybeInformationType<T>) {\n const info =\n typeof theInfo === \"object\" &&\n theInfo !== null &&\n \"value\" in theInfo &&\n typeof theInfo.value === \"function\"\n ? theInfo\n : new Of(theInfo);\n super(info);\n this.info = info;\n }\n\n public value(o: OwnerType<T>): this {\n this.info.value(o);\n return this;\n }\n}\n","export const isFilled = <T>(value?: T): value is T => {\n return value !== undefined && value !== null;\n};\n","import { From, OwnerType } from \"../base\";\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<OwnerType<T>>;\n private innerOwner: OwnerType<T>;\n\n public constructor() {\n this.owners = new Set<OwnerType<T>>();\n this.innerOwner = new From((v) => {\n this.owners.forEach((g) => {\n g.give(v);\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: OwnerType<T>): boolean {\n return this.owners.has(owner);\n }\n\n public add(owner: OwnerType<T>) {\n this.owners.add(owner);\n return this;\n }\n\n public remove(g: OwnerType<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 { OwnerType } from \"./TheOwner\";\nimport { TheInformation } from \"./TheInformation\";\nimport { isFilled } from \"../helpers\";\n\n/**\n * Information from primitive value\n */\nexport class Of<T> extends TheInformation<T> {\n public constructor(private theValue: T) {\n super(theValue);\n }\n\n public value(o: OwnerType<T>): this {\n if (isFilled(this.theValue)) {\n o.give(this.theValue);\n }\n return this;\n }\n}\n","import { Destroyable } from \"./Destroyable\";\nimport { Of } from \"./Of\";\nimport { InformationType } from \"./TheInformation\";\n\n/**\n * Ability to create information after some event\n */\nexport class Lazy<T = unknown> extends Destroyable {\n public constructor(\n protected buildFn?: (...args: InformationType[]) => InformationType<T>,\n ) {\n super();\n }\n\n public get(...args: InformationType[]) {\n args.forEach((dep) => {\n this.addDep(dep);\n });\n return this.buildFn?.(...args) ?? (new Of(null) as InformationType<T>);\n }\n}\n","import { OwnerType } from \"./TheOwner\";\nimport { TheInformation } from \"./TheInformation\";\n\ntype DestructorFnType = () => void;\n\n/**\n * Information of function\n */\nexport class OfFunc<T> extends TheInformation<T> {\n private mbDestructor?: DestructorFnType | void;\n\n public constructor(\n private valueFn: (o: OwnerType<T>) => DestructorFnType | undefined | void,\n ) {\n super(valueFn);\n }\n\n public value(o: OwnerType<T>): this {\n this.mbDestructor = this.valueFn(o);\n return this;\n }\n\n public destroy(): this {\n super.destroy();\n this.mbDestructor?.();\n return this;\n }\n}\n","import { TheOwner } from \"./TheOwner\";\n\n/**\n * Silent owner\n */\nexport class Void extends TheOwner {\n public give(): this {\n return this;\n }\n}\n","import { Destroyable } from \"../base/Destroyable\";\nimport { From } from \"../base/From\";\nimport { InformationType } from \"../base/TheInformation\";\nimport { Void } from \"../base/Void\";\n\n/**\n * Run information with functional owner if needed\n */\nexport class On<T = unknown> extends Destroyable {\n public constructor(src: InformationType<T>, fn?: (value: T) => void) {\n super(src, fn);\n src.value(fn ? new From(fn) : new Void());\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\n\ntype ExtractTypeS<T> = T extends InformationType<infer U> ? U : never;\n\nexport type ExtractTypesFromArrayS<T extends InformationType<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 class All<const T extends InformationType[]> extends TheInformation<\n ExtractTypesFromArrayS<T>\n> {\n private keysKnown: Set<string>;\n private keysFilled = new Set();\n private infos: T;\n\n public constructor(...theInfos: T) {\n super(theInfos);\n this.infos = theInfos;\n this.keysKnown = new Set<string>(Object.keys(theInfos));\n }\n\n public value(o: OwnerType<ExtractTypesFromArrayS<T>>): this {\n const result: Record<string, unknown> = {};\n\n Object.entries(this.infos).forEach(([key, info]) => {\n this.keysKnown.add(key);\n info.value(\n new From((v) => {\n this.keysFilled.add(key);\n result[key] = v;\n if (this.isAllFilled()) {\n o.give(Object.values(result) as ExtractTypesFromArrayS<T>);\n }\n }),\n );\n });\n return this;\n }\n\n private isAllFilled() {\n return (\n this.keysFilled.size > 0 && this.keysFilled.size === this.keysKnown.size\n );\n }\n}\n","import { InformationType, OwnerType, TheInformation } from \"../base\";\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 class Any<T> extends TheInformation<T> {\n private infos: InformationType<T>[];\n\n public constructor(...theInfos: InformationType<T>[]) {\n super(theInfos);\n this.infos = theInfos;\n }\n\n public value(o: OwnerType<T>): this {\n this.infos.forEach((info) => {\n info.value(o);\n });\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\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 class Applied<T, R> extends TheInformation<R> {\n public constructor(\n private baseSrc: InformationType<T>,\n private applier: (v: T) => R,\n ) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<R>): this {\n this.baseSrc.value(\n new From((v) => {\n o.give(this.applier(v));\n }),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\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 class Chain<T extends InformationType[]> extends TheInformation<\n Last<T>\n> {\n private theInfos: T;\n\n public constructor(...infos: T) {\n super(infos);\n this.theInfos = infos;\n }\n\n public value(o: OwnerType<Last<T>>) {\n let lastValue: Last<T> | undefined;\n\n const handleI = (index: number) => {\n const info = this.theInfos[index] as TheInformation<Last<T>>;\n const nextI = this.theInfos[index + 1] as\n | TheInformation<Last<T>>\n | undefined;\n\n info.value(\n new From((v) => {\n if (!nextI) {\n lastValue = v;\n }\n\n if (lastValue) {\n o.give(lastValue);\n }\n\n if (nextI && !lastValue) {\n handleI(index + 1);\n }\n }),\n );\n };\n\n handleI(0);\n\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\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 class ExecutorApplied<T> extends TheInformation<T> {\n public constructor(\n private baseSrc: InformationType<T>,\n private applier: (executor: (v: T) => void) => (v: T) => void,\n ) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.baseSrc.value(\n new From(\n this.applier((v) => {\n o.give(v);\n }),\n ),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\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 class Filtered<T> extends TheInformation<T> {\n public constructor(\n private baseSrc: InformationType<T>,\n private predicate: (v: T) => boolean,\n private defaultValue?: T,\n ) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.baseSrc.value(\n new From((v) => {\n if (this.predicate(v)) {\n o.give(v);\n } else if (this.defaultValue !== undefined) {\n o.give(this.defaultValue);\n }\n }),\n );\n return this;\n }\n}\n","import { OwnerType, TheInformation } from \"../base\";\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 class FromCallback<T> extends TheInformation<T> {\n private theArgs: unknown[];\n\n public constructor(\n private waitForCb: (cb: (v: T) => any, ...args: unknown[]) => unknown,\n ...args: unknown[]\n ) {\n super(waitForCb);\n this.theArgs = args;\n }\n\n public value(o: OwnerType<T>): this {\n this.waitForCb(\n (v) => {\n o.give(v);\n },\n ...this.theArgs,\n );\n return this;\n }\n}\n","import { DestroyFunc } from \"../base/DestroyFunc\";\nimport { From, InformationType, Of, OwnerType, TheInformation } from \"../base\";\nimport { All } from \"./All\";\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 class FromEvent<T = unknown> extends TheInformation<T> {\n public constructor(\n private emitterSrc: InformationType<any>,\n private eventNameSrc: InformationType<string>,\n private subscribeMethodSrc: InformationType<string>,\n private unsubscribeMethodSrc: InformationType<string> = new Of(\"\"),\n ) {\n super(emitterSrc, eventNameSrc, subscribeMethodSrc, unsubscribeMethodSrc);\n }\n\n public value(o: OwnerType<T>): this {\n const a = new All(\n this.emitterSrc,\n this.eventNameSrc,\n this.subscribeMethodSrc,\n this.unsubscribeMethodSrc,\n );\n const handler = (v: T) => {\n o.give(v);\n };\n a.value(\n new From(([emitter, eventName, subscribe, unsubscribe]) => {\n emitter[subscribe](eventName, handler);\n this.addDep(\n new DestroyFunc(() => {\n emitter[unsubscribe](eventName, handler);\n }),\n );\n }),\n );\n return this;\n }\n}\n","import { OwnerType, TheInformation } from \"../base\";\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 class FromPromise<T> extends TheInformation<T> {\n public constructor(\n private p: Promise<T>,\n private errorOwner?: OwnerType,\n ) {\n super(p);\n }\n\n public value(o: OwnerType<T>): this {\n this.p\n .then((v) => {\n o.give(v);\n })\n .catch((e) => {\n this.errorOwner?.give(e);\n });\n return this;\n }\n}\n","import { From, OwnerType, TheInformation } from \"../base\";\nimport { isFilled } from \"../helpers\";\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 class Late<T> extends TheInformation<T> implements OwnerType<T> {\n private theOwner?: OwnerType<T>;\n private lateOwner = new From((v: T) => {\n this.theValue = v;\n this.notify();\n });\n\n public constructor(private theValue?: T) {\n super(theValue);\n }\n\n public value(o: OwnerType<T>): this {\n if (this.theOwner) {\n throw new Error(\n \"Late component gets new owner, when another was already connected!\",\n );\n }\n this.theOwner = o;\n this.notify();\n return this;\n }\n\n public give(v: T) {\n this.theValue = v;\n this.lateOwner.give(v);\n return this;\n }\n\n private notify() {\n if (isFilled(this.theValue) && this.theOwner) {\n this.theOwner.give(this.theValue);\n }\n return this;\n }\n}\n","import { InformationType, Lazy } from \"../base\";\n\n/**\n * Lazy with applied function to its results\n */\nexport class LazyApplied<T> extends Lazy<T> {\n public constructor(\n private baseLazy: Lazy,\n private applier: (i: InformationType) => InformationType<T>,\n ) {\n super();\n }\n\n public get(...args: InformationType[]): InformationType<T> {\n return this.applier(this.baseLazy.get(...args));\n }\n}\n","import { Lazy } from \"../base\";\n\n/**\n * Lazy instance from class constructor\n */\nexport class LazyClass<T> extends Lazy<T> {\n public constructor(constrFn: any) {\n const buildFn = (...args: unknown[]) => new constrFn(...args);\n super(buildFn);\n }\n}\n","import {\n From,\n InformationType,\n Lazy,\n Of,\n OwnerType,\n TheInformation,\n} from \"../base\";\nimport { All } from \"./All\";\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 class Map<T, TG> extends TheInformation<TG[]> {\n public constructor(\n private baseSrc: InformationType<T[]>,\n private targetSrc: Lazy<TG>,\n ) {\n super(baseSrc, targetSrc);\n }\n\n public value(o: OwnerType<TG[]>) {\n this.baseSrc.value(\n new From((v) => {\n const infos: InformationType<TG>[] = [];\n v.forEach((val) => {\n let valInfo: InformationType<T> | T = val;\n if (!(valInfo instanceof TheInformation)) {\n valInfo = new Of(valInfo);\n }\n const info = this.targetSrc.get(valInfo);\n infos.push(info);\n });\n const allI = new All(...infos);\n allI.value(o);\n }),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\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 class Once<T> extends TheInformation<T> {\n public constructor(private baseSrc: InformationType<T>) {\n super();\n }\n\n public value(o: OwnerType<T>): this {\n let isFilled = false;\n this.baseSrc.value(\n new From((v) => {\n if (!isFilled) {\n isFilled = true;\n o.give(v);\n }\n }),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\n\n/**\n * A component that takes one value at a time and returns\n * an array of all previous values\n * https://silentium-lab.github.io/silentium/#/en/information/sequence\n */\nexport class Sequence<T> extends TheInformation<T[]> {\n public constructor(private baseSrc: InformationType<T>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T[]>): this {\n const result: T[] = [];\n this.baseSrc.value(\n new From((v) => {\n result.push(v);\n o.give(result);\n }),\n );\n return this;\n }\n}\n","import { isFilled, OwnerPool } from \"../helpers\";\nimport {\n From,\n InformationType,\n OfFunc,\n OwnerType,\n TheInformation,\n} from \"../base\";\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 class Shared<T> extends TheInformation<T> implements OwnerType<T> {\n private lastValue: T | undefined;\n private ownersPool = new OwnerPool<T>();\n\n public constructor(\n private baseSrc: InformationType<T>,\n private stateless = false,\n ) {\n super(baseSrc);\n this.addDep(this.ownersPool);\n this.baseSrc.value(\n new From((v) => {\n this.ownersPool.owner().give(v);\n this.lastValue = v;\n }),\n );\n }\n\n public value(o: OwnerType<T>): this {\n const i = new OfFunc((g: OwnerType<T>) => {\n if (\n !this.stateless &&\n isFilled(this.lastValue) &&\n !this.ownersPool.has(g)\n ) {\n g.give(this.lastValue);\n }\n this.ownersPool.add(g);\n return () => {\n this.ownersPool.remove(g);\n };\n });\n i.value(o);\n this.addDep(i);\n\n return this;\n }\n\n public pool() {\n return this.ownersPool;\n }\n\n public give(value: T) {\n this.lastValue = value;\n this.ownersPool.owner().give(value);\n return this;\n }\n}\n","import { Shared } from \"../components/Shared\";\nimport { OwnerType, SourceType, TheInformation } from \"../base\";\n\nexport class SharedSource<T> extends TheInformation<T> implements OwnerType<T> {\n private sharedSrc: Shared<T>;\n\n public constructor(\n private baseSrc: SourceType<T>,\n stateless = false,\n ) {\n const sharedSrc = new Shared(baseSrc, stateless);\n super(sharedSrc);\n this.sharedSrc = sharedSrc;\n }\n\n public value(o: OwnerType<T>): this {\n this.sharedSrc.value(o);\n return this;\n }\n\n public give(value: T): this {\n this.baseSrc.give(value);\n this.sharedSrc.give(value);\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\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 class Stream<T> extends TheInformation<T> {\n public constructor(private baseSrc: InformationType<T[]>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.baseSrc.value(\n new From((v) => {\n v.forEach((cv) => {\n o.give(cv);\n });\n }),\n );\n return this;\n }\n}\n"],"names":["__publicField"],"mappings":"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"}
|
package/dist/silentium.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e){"use strict";var t=Object.defineProperty,s=(e,s,r)=>((e,s,r)=>s in e?t(e,s,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[s]=r)(e,s+"",r);class r{constructor(...e){s(this,"theDeps"),this.theDeps=e??[]}destroy(){return this.theDeps?.forEach((e=>{(e=>"object"==typeof e&&null!==e&&"destroy"in e)(e)&&e.destroy()})),this}addDep(e){return this.theDeps?.push(e),this}dep(e){return this.addDep(e),e}}class i extends r{constructor(e){super(),this.destructor=e}destroy(){return this.destructor(),this}}class n{}class a extends n{constructor(e){super(),this.fn=e}give(e){return this.fn(e),this}}var h=Object.defineProperty,o=(e,t,s)=>((e,t,s)=>t in e?h(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s)(e,t+"",s);class u extends r{}const l=e=>null!=e;var c=Object.defineProperty,d=(e,t,s)=>((e,t,s)=>t in e?c(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s)(e,"symbol"!=typeof t?t+"":t,s);class v{constructor(){d(this,"owners"),d(this,"innerOwner"),this.owners=new Set,this.innerOwner=new a((e=>{this.owners.forEach((t=>{t.give(e)}))}))}owner(){return this.innerOwner}size(){return this.owners.size}has(e){return this.owners.has(e)}add(e){return this.owners.add(e),this}remove(e){return this.owners.delete(e),this}destroy(){return this.owners.forEach((e=>{this.remove(e)})),this}}class b extends u{constructor(e){super(e),this.theValue=e}value(e){return l(this.theValue)&&e.give(this.theValue),this}}class
|
|
1
|
+
!function(e){"use strict";var t=Object.defineProperty,s=(e,s,r)=>((e,s,r)=>s in e?t(e,s,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[s]=r)(e,s+"",r);class r{constructor(...e){s(this,"theDeps"),this.theDeps=e??[]}destroy(){return this.theDeps?.forEach((e=>{(e=>"object"==typeof e&&null!==e&&"destroy"in e)(e)&&e.destroy()})),this}addDep(e){return this.theDeps?.push(e),this}dep(e){return this.addDep(e),e}}class i extends r{constructor(e){super(),this.destructor=e}destroy(){return this.destructor(),this}}class n{}class a extends n{constructor(e){super(),this.fn=e}give(e){return this.fn(e),this}}var h=Object.defineProperty,o=(e,t,s)=>((e,t,s)=>t in e?h(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s)(e,t+"",s);class u extends r{}const l=e=>null!=e;var c=Object.defineProperty,d=(e,t,s)=>((e,t,s)=>t in e?c(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s)(e,"symbol"!=typeof t?t+"":t,s);class v{constructor(){d(this,"owners"),d(this,"innerOwner"),this.owners=new Set,this.innerOwner=new a((e=>{this.owners.forEach((t=>{t.give(e)}))}))}owner(){return this.innerOwner}size(){return this.owners.size}has(e){return this.owners.has(e)}add(e){return this.owners.add(e),this}remove(e){return this.owners.delete(e),this}destroy(){return this.owners.forEach((e=>{this.remove(e)})),this}}class b extends u{constructor(e){super(e),this.theValue=e}value(e){return l(this.theValue)&&e.give(this.theValue),this}}class w extends r{constructor(e){super(),this.buildFn=e}get(...e){return e.forEach((e=>{this.addDep(e)})),this.buildFn?.(...e)??new b(null)}}var p=Object.defineProperty,f=(e,t,s)=>((e,t,s)=>t in e?p(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s)(e,t+"",s);class y extends u{constructor(e){super(e),this.valueFn=e,f(this,"mbDestructor")}value(e){return this.mbDestructor=this.valueFn(e),this}destroy(){return super.destroy(),this.mbDestructor?.(),this}}class g extends n{give(){return this}}var S=Object.defineProperty,m=(e,t,s)=>((e,t,s)=>t in e?S(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s)(e,"symbol"!=typeof t?t+"":t,s);class O extends u{constructor(...e){super(e),m(this,"keysKnown"),m(this,"keysFilled",new Set),m(this,"infos"),this.infos=e,this.keysKnown=new Set(Object.keys(e))}value(e){const t={};return Object.entries(this.infos).forEach((([s,r])=>{this.keysKnown.add(s),r.value(new a((r=>{this.keysFilled.add(s),t[s]=r,this.isAllFilled()&&e.give(Object.values(t))})))})),this}isAllFilled(){return this.keysFilled.size>0&&this.keysFilled.size===this.keysKnown.size}}var x=Object.defineProperty,P=(e,t,s)=>((e,t,s)=>t in e?x(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s)(e,t+"",s);var F=Object.defineProperty,V=(e,t,s)=>((e,t,s)=>t in e?F(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s)(e,t+"",s);var j=Object.defineProperty,D=(e,t,s)=>((e,t,s)=>t in e?j(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s)(e,t+"",s);var E=Object.defineProperty,k=(e,t,s)=>((e,t,s)=>t in e?E(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s)(e,"symbol"!=typeof t?t+"":t,s);var z=Object.defineProperty,A=(e,t,s)=>((e,t,s)=>t in e?z(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s)(e,"symbol"!=typeof t?t+"":t,s);class L extends u{constructor(e,t=!1){super(e),this.baseSrc=e,this.stateless=t,A(this,"lastValue"),A(this,"ownersPool",new v),this.addDep(this.ownersPool),this.baseSrc.value(new a((e=>{this.ownersPool.owner().give(e),this.lastValue=e})))}value(e){const t=new y((e=>(this.stateless||!l(this.lastValue)||this.ownersPool.has(e)||e.give(this.lastValue),this.ownersPool.add(e),()=>{this.ownersPool.remove(e)})));return t.value(e),this.addDep(t),this}pool(){return this.ownersPool}give(e){return this.lastValue=e,this.ownersPool.owner().give(e),this}}var I=Object.defineProperty,M=(e,t,s)=>((e,t,s)=>t in e?I(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s)(e,t+"",s);e.All=O,e.Any=class extends u{constructor(...e){super(e),P(this,"infos"),this.infos=e}value(e){return this.infos.forEach((t=>{t.value(e)})),this}},e.Applied=class extends u{constructor(e,t){super(e),this.baseSrc=e,this.applier=t}value(e){return this.baseSrc.value(new a((t=>{e.give(this.applier(t))}))),this}},e.Chain=class extends u{constructor(...e){super(e),V(this,"theInfos"),this.theInfos=e}value(e){let t;const s=r=>{const i=this.theInfos[r],n=this.theInfos[r+1];i.value(new a((i=>{n||(t=i),t&&e.give(t),n&&!t&&s(r+1)})))};return s(0),this}},e.DestroyFunc=i,e.Destroyable=r,e.ExecutorApplied=class extends u{constructor(e,t){super(e),this.baseSrc=e,this.applier=t}value(e){return this.baseSrc.value(new a(this.applier((t=>{e.give(t)})))),this}},e.Filtered=class extends u{constructor(e,t,s){super(e),this.baseSrc=e,this.predicate=t,this.defaultValue=s}value(e){return this.baseSrc.value(new a((t=>{this.predicate(t)?e.give(t):void 0!==this.defaultValue&&e.give(this.defaultValue)}))),this}},e.From=a,e.FromCallback=class extends u{constructor(e,...t){super(e),this.waitForCb=e,D(this,"theArgs"),this.theArgs=t}value(e){return this.waitForCb((t=>{e.give(t)}),...this.theArgs),this}},e.FromEvent=class extends u{constructor(e,t,s,r=new b("")){super(e,t,s,r),this.emitterSrc=e,this.eventNameSrc=t,this.subscribeMethodSrc=s,this.unsubscribeMethodSrc=r}value(e){const t=new O(this.emitterSrc,this.eventNameSrc,this.subscribeMethodSrc,this.unsubscribeMethodSrc),s=t=>{e.give(t)};return t.value(new a((([e,t,r,n])=>{e[r](t,s),this.addDep(new i((()=>{e[n](t,s)})))}))),this}},e.FromPromise=class extends u{constructor(e,t){super(e),this.p=e,this.errorOwner=t}value(e){return this.p.then((t=>{e.give(t)})).catch((e=>{this.errorOwner?.give(e)})),this}},e.Late=class extends u{constructor(e){super(e),this.theValue=e,k(this,"theOwner"),k(this,"lateOwner",new a((e=>{this.theValue=e,this.notify()})))}value(e){if(this.theOwner)throw new Error("Late component gets new owner, when another was already connected!");return this.theOwner=e,this.notify(),this}give(e){return this.theValue=e,this.lateOwner.give(e),this}notify(){return l(this.theValue)&&this.theOwner&&this.theOwner.give(this.theValue),this}},e.Lazy=w,e.LazyApplied=class extends w{constructor(e,t){super(),this.baseLazy=e,this.applier=t}get(...e){return this.applier(this.baseLazy.get(...e))}},e.LazyClass=class extends w{constructor(e){super(((...t)=>new e(...t)))}},e.Map=class extends u{constructor(e,t){super(e,t),this.baseSrc=e,this.targetSrc=t}value(e){return this.baseSrc.value(new a((t=>{const s=[];t.forEach((e=>{let t=e;t instanceof u||(t=new b(t));const r=this.targetSrc.get(t);s.push(r)}));new O(...s).value(e)}))),this}},e.MbInfo=class extends u{constructor(e){const t="object"==typeof e&&null!==e&&"value"in e&&"function"==typeof e.value?e:new b(e);super(t),o(this,"info"),this.info=t}value(e){return this.info.value(e),this}},e.Of=b,e.OfFunc=y,e.On=class extends r{constructor(e,t){super(e,t),e.value(t?new a(t):new g)}},e.Once=class extends u{constructor(e){super(),this.baseSrc=e}value(e){let t=!1;return this.baseSrc.value(new a((s=>{t||(t=!0,e.give(s))}))),this}},e.OwnerPool=v,e.Sequence=class extends u{constructor(e){super(e),this.baseSrc=e}value(e){const t=[];return this.baseSrc.value(new a((s=>{t.push(s),e.give(t)}))),this}},e.Shared=L,e.SharedSource=class extends u{constructor(e,t=!1){const s=new L(e,t);super(s),this.baseSrc=e,M(this,"sharedSrc"),this.sharedSrc=s}value(e){return this.sharedSrc.value(e),this}give(e){return this.baseSrc.give(e),this.sharedSrc.give(e),this}},e.Stream=class extends u{constructor(e){super(e),this.baseSrc=e}value(e){return this.baseSrc.value(new a((t=>{t.forEach((t=>{e.give(t)}))}))),this}},e.TheInformation=u,e.TheOwner=n,e.Void=g,e.isFilled=l}({});
|
package/dist/silentium.min.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var e=Object.defineProperty,t=(t,s,r)=>((t,s,r)=>s in t?e(t,s,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[s]=r)(t,s+"",r);class s{constructor(...e){t(this,"theDeps"),this.theDeps=e??[]}destroy(){return this.theDeps?.forEach((e=>{(e=>"object"==typeof e&&null!==e&&"destroy"in e)(e)&&e.destroy()})),this}addDep(e){return this.theDeps?.push(e),this}dep(e){return this.addDep(e),e}}class r extends s{constructor(e){super(),this.destructor=e}destroy(){return this.destructor(),this}}class i{}class n extends i{constructor(e){super(),this.fn=e}give(e){return this.fn(e),this}}var a=Object.defineProperty,h=(e,t,s)=>((e,t,s)=>t in e?a(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s)(e,t+"",s);class u extends s{}class o extends u{constructor(e){const t="object"==typeof e&&null!==e&&"value"in e&&"function"==typeof e.value?e:new b(e);super(t),h(this,"info"),this.info=t}value(e){return this.info.value(e),this}}const l=e=>null!=e;var c=Object.defineProperty,
|
|
1
|
+
var e=Object.defineProperty,t=(t,s,r)=>((t,s,r)=>s in t?e(t,s,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[s]=r)(t,s+"",r);class s{constructor(...e){t(this,"theDeps"),this.theDeps=e??[]}destroy(){return this.theDeps?.forEach((e=>{(e=>"object"==typeof e&&null!==e&&"destroy"in e)(e)&&e.destroy()})),this}addDep(e){return this.theDeps?.push(e),this}dep(e){return this.addDep(e),e}}class r extends s{constructor(e){super(),this.destructor=e}destroy(){return this.destructor(),this}}class i{}class n extends i{constructor(e){super(),this.fn=e}give(e){return this.fn(e),this}}var a=Object.defineProperty,h=(e,t,s)=>((e,t,s)=>t in e?a(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s)(e,t+"",s);class u extends s{}class o extends u{constructor(e){const t="object"==typeof e&&null!==e&&"value"in e&&"function"==typeof e.value?e:new b(e);super(t),h(this,"info"),this.info=t}value(e){return this.info.value(e),this}}const l=e=>null!=e;var c=Object.defineProperty,v=(e,t,s)=>((e,t,s)=>t in e?c(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s)(e,"symbol"!=typeof t?t+"":t,s);class d{constructor(){v(this,"owners"),v(this,"innerOwner"),this.owners=new Set,this.innerOwner=new n((e=>{this.owners.forEach((t=>{t.give(e)}))}))}owner(){return this.innerOwner}size(){return this.owners.size}has(e){return this.owners.has(e)}add(e){return this.owners.add(e),this}remove(e){return this.owners.delete(e),this}destroy(){return this.owners.forEach((e=>{this.remove(e)})),this}}class b extends u{constructor(e){super(e),this.theValue=e}value(e){return l(this.theValue)&&e.give(this.theValue),this}}class w extends s{constructor(e){super(),this.buildFn=e}get(...e){return e.forEach((e=>{this.addDep(e)})),this.buildFn?.(...e)??new b(null)}}var p=Object.defineProperty,f=(e,t,s)=>((e,t,s)=>t in e?p(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s)(e,t+"",s);class g extends u{constructor(e){super(e),this.valueFn=e,f(this,"mbDestructor")}value(e){return this.mbDestructor=this.valueFn(e),this}destroy(){return super.destroy(),this.mbDestructor?.(),this}}class y extends i{give(){return this}}class S extends s{constructor(e,t){super(e,t),e.value(t?new n(t):new y)}}var x=Object.defineProperty,m=(e,t,s)=>((e,t,s)=>t in e?x(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s)(e,"symbol"!=typeof t?t+"":t,s);class O extends u{constructor(...e){super(e),m(this,"keysKnown"),m(this,"keysFilled",new Set),m(this,"infos"),this.infos=e,this.keysKnown=new Set(Object.keys(e))}value(e){const t={};return Object.entries(this.infos).forEach((([s,r])=>{this.keysKnown.add(s),r.value(new n((r=>{this.keysFilled.add(s),t[s]=r,this.isAllFilled()&&e.give(Object.values(t))})))})),this}isAllFilled(){return this.keysFilled.size>0&&this.keysFilled.size===this.keysKnown.size}}var P=Object.defineProperty,j=(e,t,s)=>((e,t,s)=>t in e?P(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s)(e,t+"",s);class V extends u{constructor(...e){super(e),j(this,"infos"),this.infos=e}value(e){return this.infos.forEach((t=>{t.value(e)})),this}}class D extends u{constructor(e,t){super(e),this.baseSrc=e,this.applier=t}value(e){return this.baseSrc.value(new n((t=>{e.give(this.applier(t))}))),this}}var F=Object.defineProperty,k=(e,t,s)=>((e,t,s)=>t in e?F(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s)(e,t+"",s);class E extends u{constructor(...e){super(e),k(this,"theInfos"),this.theInfos=e}value(e){let t;const s=r=>{const i=this.theInfos[r],a=this.theInfos[r+1];i.value(new n((i=>{a||(t=i),t&&e.give(t),a&&!t&&s(r+1)})))};return s(0),this}}class z extends u{constructor(e,t){super(e),this.baseSrc=e,this.applier=t}value(e){return this.baseSrc.value(new n(this.applier((t=>{e.give(t)})))),this}}class A extends u{constructor(e,t,s){super(e),this.baseSrc=e,this.predicate=t,this.defaultValue=s}value(e){return this.baseSrc.value(new n((t=>{this.predicate(t)?e.give(t):void 0!==this.defaultValue&&e.give(this.defaultValue)}))),this}}var I=Object.defineProperty,K=(e,t,s)=>((e,t,s)=>t in e?I(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s)(e,t+"",s);class M extends u{constructor(e,...t){super(e),this.waitForCb=e,K(this,"theArgs"),this.theArgs=t}value(e){return this.waitForCb((t=>{e.give(t)}),...this.theArgs),this}}class L extends u{constructor(e,t,s,r=new b("")){super(e,t,s,r),this.emitterSrc=e,this.eventNameSrc=t,this.subscribeMethodSrc=s,this.unsubscribeMethodSrc=r}value(e){const t=new O(this.emitterSrc,this.eventNameSrc,this.subscribeMethodSrc,this.unsubscribeMethodSrc),s=t=>{e.give(t)};return t.value(new n((([e,t,i,n])=>{e[i](t,s),this.addDep(new r((()=>{e[n](t,s)})))}))),this}}class C extends u{constructor(e,t){super(e),this.p=e,this.errorOwner=t}value(e){return this.p.then((t=>{e.give(t)})).catch((e=>{this.errorOwner?.give(e)})),this}}var N=Object.defineProperty,q=(e,t,s)=>((e,t,s)=>t in e?N(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s)(e,"symbol"!=typeof t?t+"":t,s);class B extends u{constructor(e){super(e),this.theValue=e,q(this,"theOwner"),q(this,"lateOwner",new n((e=>{this.theValue=e,this.notify()})))}value(e){if(this.theOwner)throw new Error("Late component gets new owner, when another was already connected!");return this.theOwner=e,this.notify(),this}give(e){return this.theValue=e,this.lateOwner.give(e),this}notify(){return l(this.theValue)&&this.theOwner&&this.theOwner.give(this.theValue),this}}class G extends w{constructor(e,t){super(),this.baseLazy=e,this.applier=t}get(...e){return this.applier(this.baseLazy.get(...e))}}class H extends w{constructor(e){super(((...t)=>new e(...t)))}}class J extends u{constructor(e,t){super(e,t),this.baseSrc=e,this.targetSrc=t}value(e){return this.baseSrc.value(new n((t=>{const s=[];t.forEach((e=>{let t=e;t instanceof u||(t=new b(t));const r=this.targetSrc.get(t);s.push(r)}));new O(...s).value(e)}))),this}}class Q extends u{constructor(e){super(),this.baseSrc=e}value(e){let t=!1;return this.baseSrc.value(new n((s=>{t||(t=!0,e.give(s))}))),this}}class R extends u{constructor(e){super(e),this.baseSrc=e}value(e){const t=[];return this.baseSrc.value(new n((s=>{t.push(s),e.give(t)}))),this}}var T=Object.defineProperty,U=(e,t,s)=>((e,t,s)=>t in e?T(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s)(e,"symbol"!=typeof t?t+"":t,s);class W extends u{constructor(e,t=!1){super(e),this.baseSrc=e,this.stateless=t,U(this,"lastValue"),U(this,"ownersPool",new d),this.addDep(this.ownersPool),this.baseSrc.value(new n((e=>{this.ownersPool.owner().give(e),this.lastValue=e})))}value(e){const t=new g((e=>(this.stateless||!l(this.lastValue)||this.ownersPool.has(e)||e.give(this.lastValue),this.ownersPool.add(e),()=>{this.ownersPool.remove(e)})));return t.value(e),this.addDep(t),this}pool(){return this.ownersPool}give(e){return this.lastValue=e,this.ownersPool.owner().give(e),this}}var X=Object.defineProperty,Y=(e,t,s)=>((e,t,s)=>t in e?X(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s)(e,t+"",s);class Z extends u{constructor(e,t=!1){const s=new W(e,t);super(s),this.baseSrc=e,Y(this,"sharedSrc"),this.sharedSrc=s}value(e){return this.sharedSrc.value(e),this}give(e){return this.baseSrc.give(e),this.sharedSrc.give(e),this}}class $ extends u{constructor(e){super(e),this.baseSrc=e}value(e){return this.baseSrc.value(new n((t=>{t.forEach((t=>{e.give(t)}))}))),this}}export{O as All,V as Any,D as Applied,E as Chain,r as DestroyFunc,s as Destroyable,z as ExecutorApplied,A as Filtered,n as From,M as FromCallback,L as FromEvent,C as FromPromise,B as Late,w as Lazy,G as LazyApplied,H as LazyClass,J as Map,o as MbInfo,b as Of,g as OfFunc,S as On,Q as Once,d as OwnerPool,R as Sequence,W as Shared,Z as SharedSource,$ as Stream,u as TheInformation,i as TheOwner,y as Void,l as isFilled};
|
|
2
2
|
//# sourceMappingURL=silentium.min.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"silentium.min.mjs","sources":["../src/base/Destroyable.ts","../src/base/DestroyFunc.ts","../src/base/TheOwner.ts","../src/base/From.ts","../src/base/TheInformation.ts","../src/helpers/isFilled.ts","../src/helpers/OwnerPool.ts","../src/base/Of.ts","../src/base/Lazy.ts","../src/base/OfFunc.ts","../src/base/Void.ts","../src/base/On.ts","../src/components/All.ts","../src/components/Any.ts","../src/components/Applied.ts","../src/components/Chain.ts","../src/components/ExecutorApplied.ts","../src/components/Filtered.ts","../src/components/FromCallback.ts","../src/components/FromEvent.ts","../src/components/FromPromise.ts","../src/components/Late.ts","../src/components/LazyApplied.ts","../src/components/LazyClass.ts","../src/components/Map.ts","../src/components/Once.ts","../src/components/Sequence.ts","../src/components/Shared.ts","../src/components/SharedSource.ts","../src/components/Stream.ts"],"sourcesContent":["const isDestroyable = (dep: unknown): dep is Destroyable => {\n return typeof dep === \"object\" && dep !== null && \"destroy\" in dep;\n};\n\n/**\n * Representation of Destroyable object\n */\nexport class Destroyable {\n private theDeps: any[];\n public constructor(...deps: any[]) {\n this.theDeps = deps ?? [];\n }\n\n public destroy() {\n this.theDeps?.forEach((dep) => {\n if (isDestroyable(dep)) {\n dep.destroy();\n }\n });\n return this;\n }\n\n /**\n * Add dependency what can be destroyed\n */\n public addDep(dep: any) {\n this.theDeps?.push(dep);\n return this;\n }\n\n public dep(dep: any) {\n this.addDep(dep);\n return dep;\n }\n}\n","import { Destroyable } from \"./Destroyable\";\n\n/**\n * Representation of destructor function as object\n */\nexport class DestroyFunc extends Destroyable {\n public constructor(private destructor: () => void) {\n super();\n }\n\n public destroy(): this {\n this.destructor();\n return this;\n }\n}\n","export interface OwnerType<T = unknown> {\n give(value: T): this;\n}\n\n/**\n * Representation of Information Owner\n */\nexport abstract class TheOwner<T = unknown> implements OwnerType<T> {\n public abstract give(value: T): this;\n}\n","import { TheOwner } from \"./TheOwner\";\n\n/**\n * Owner from function\n */\nexport class From<T = unknown> extends TheOwner<T> {\n public constructor(private fn: (value: T) => void) {\n super();\n }\n\n public give(value: T): this {\n this.fn(value);\n return this;\n }\n}\n","import { Destroyable } from \"./Destroyable\";\nimport { Of } from \"./Of\";\nimport { OwnerType } from \"./TheOwner\";\n\nexport interface InformationType<T = unknown> {\n value(o: OwnerType<T>): this;\n}\n\nexport type MaybeInformationType<T = unknown> = InformationType<T> | T;\n\n/**\n * Representation of Information\n */\nexport abstract class TheInformation<T = unknown>\n extends Destroyable\n implements InformationType<T>\n{\n public abstract value(o: OwnerType<T>): this;\n}\n\nexport class MbInfo<T> extends TheInformation<T> {\n private info: InformationType<T>;\n\n public constructor(theInfo: MaybeInformationType<T>) {\n const info =\n typeof theInfo === \"object\" &&\n theInfo !== null &&\n \"value\" in theInfo &&\n typeof theInfo.value === \"function\"\n ? theInfo\n : new Of(theInfo);\n super(info);\n this.info = info;\n }\n\n public value(o: OwnerType<T>): this {\n this.info.value(o);\n return this;\n }\n}\n","export const isFilled = <T>(value?: T): value is T => {\n return value !== undefined && value !== null;\n};\n","import { From, OwnerType } from \"../base\";\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<OwnerType<T>>;\n private innerOwner: OwnerType<T>;\n\n public constructor() {\n this.owners = new Set<OwnerType<T>>();\n this.innerOwner = new From((v) => {\n this.owners.forEach((g) => {\n g.give(v);\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: OwnerType<T>): boolean {\n return this.owners.has(owner);\n }\n\n public add(owner: OwnerType<T>) {\n this.owners.add(owner);\n return this;\n }\n\n public remove(g: OwnerType<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 { OwnerType } from \"./TheOwner\";\nimport { TheInformation } from \"./TheInformation\";\nimport { isFilled } from \"../helpers\";\n\n/**\n * Information from primitive value\n */\nexport class Of<T> extends TheInformation<T> {\n public constructor(private theValue: T) {\n super(theValue);\n }\n\n public value(o: OwnerType<T>): this {\n if (isFilled(this.theValue)) {\n o.give(this.theValue);\n }\n return this;\n }\n}\n","import { Destroyable } from \"./Destroyable\";\nimport { Of } from \"./Of\";\nimport { InformationType } from \"./TheInformation\";\n\n/**\n * Ability to create information after some event\n */\nexport class Lazy<T = unknown> extends Destroyable {\n public constructor(\n protected buildFn?: (...args: InformationType[]) => InformationType<T>,\n ) {\n super();\n }\n\n public get(...args: InformationType[]) {\n args.forEach((dep) => {\n this.addDep(dep);\n });\n return this.buildFn?.(...args) ?? (new Of(null) as InformationType<T>);\n }\n}\n","import { OwnerType } from \"./TheOwner\";\nimport { TheInformation } from \"./TheInformation\";\n\ntype DestructorFnType = () => void;\n\n/**\n * Information of function\n */\nexport class OfFunc<T> extends TheInformation<T> {\n private mbDestructor?: DestructorFnType | void;\n\n public constructor(\n private valueFn: (o: OwnerType<T>) => DestructorFnType | undefined | void,\n ) {\n super(valueFn);\n }\n\n public value(o: OwnerType<T>): this {\n this.mbDestructor = this.valueFn(o);\n return this;\n }\n\n public destroy(): this {\n super.destroy();\n this.mbDestructor?.();\n return this;\n }\n}\n","import { TheOwner } from \"./TheOwner\";\n\n/**\n * Silent owner\n */\nexport class Void extends TheOwner {\n public give(): this {\n return this;\n }\n}\n","import { Destroyable } from \"../base/Destroyable\";\nimport { From } from \"../base/From\";\nimport { InformationType } from \"../base/TheInformation\";\nimport { Void } from \"../base/Void\";\n\n/**\n * Run information with functional owner if needed\n */\nexport class On<T = unknown> extends Destroyable {\n public constructor(src: InformationType<T>, fn?: (value: T) => void) {\n super(src, fn);\n src.value(fn ? new From(fn) : new Void());\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\n\ntype ExtractTypeS<T> = T extends InformationType<infer U> ? U : never;\n\nexport type ExtractTypesFromArrayS<T extends InformationType<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 class All<const T extends InformationType[]> extends TheInformation<\n ExtractTypesFromArrayS<T>\n> {\n private keysKnown: Set<string>;\n private keysFilled = new Set();\n private infos: T;\n\n public constructor(...theInfos: T) {\n super(theInfos);\n this.infos = theInfos;\n this.keysKnown = new Set<string>(Object.keys(theInfos));\n }\n\n public value(o: OwnerType<ExtractTypesFromArrayS<T>>): this {\n const result: Record<string, unknown> = {};\n\n Object.entries(this.infos).forEach(([key, info]) => {\n this.keysKnown.add(key);\n info.value(\n new From((v) => {\n this.keysFilled.add(key);\n result[key] = v;\n if (this.isAllFilled()) {\n o.give(Object.values(result) as ExtractTypesFromArrayS<T>);\n }\n }),\n );\n });\n return this;\n }\n\n private isAllFilled() {\n return (\n this.keysFilled.size > 0 && this.keysFilled.size === this.keysKnown.size\n );\n }\n}\n","import { InformationType, OwnerType, TheInformation } from \"../base\";\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 class Any<T> extends TheInformation<T> {\n private infos: InformationType<T>[];\n\n public constructor(...theInfos: InformationType<T>[]) {\n super(theInfos);\n this.infos = theInfos;\n }\n\n public value(o: OwnerType<T>): this {\n this.infos.forEach((info) => {\n info.value(o);\n });\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\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 class Applied<T, R> extends TheInformation<R> {\n public constructor(\n private baseSrc: InformationType<T>,\n private applier: (v: T) => R,\n ) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<R>): this {\n this.baseSrc.value(\n new From((v) => {\n o.give(this.applier(v));\n }),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\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 class Chain<T extends InformationType[]> extends TheInformation<\n Last<T>\n> {\n private theInfos: T;\n\n public constructor(...infos: T) {\n super(infos);\n this.theInfos = infos;\n }\n\n public value(o: OwnerType<Last<T>>) {\n let lastValue: Last<T> | undefined;\n\n const handleI = (index: number) => {\n const info = this.theInfos[index] as TheInformation<Last<T>>;\n const nextI = this.theInfos[index + 1] as\n | TheInformation<Last<T>>\n | undefined;\n\n info.value(\n new From((v) => {\n if (!nextI) {\n lastValue = v;\n }\n\n if (lastValue) {\n o.give(lastValue);\n }\n\n if (nextI && !lastValue) {\n handleI(index + 1);\n }\n }),\n );\n };\n\n handleI(0);\n\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\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 class ExecutorApplied<T> extends TheInformation<T> {\n public constructor(\n private baseSrc: InformationType<T>,\n private applier: (executor: (v: T) => void) => (v: T) => void,\n ) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.baseSrc.value(\n new From(\n this.applier((v) => {\n o.give(v);\n }),\n ),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\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 class Filtered<T> extends TheInformation<T> {\n public constructor(\n private baseSrc: InformationType<T>,\n private predicate: (v: T) => boolean,\n private defaultValue?: T,\n ) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.baseSrc.value(\n new From((v) => {\n if (this.predicate(v)) {\n o.give(v);\n } else if (this.defaultValue !== undefined) {\n o.give(this.defaultValue);\n }\n }),\n );\n return this;\n }\n}\n","import { OwnerType, TheInformation } from \"../base\";\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 class FromCallback<T> extends TheInformation<T> {\n private theArgs: unknown[];\n\n public constructor(\n private waitForCb: (cb: (v: T) => any, ...args: unknown[]) => unknown,\n ...args: unknown[]\n ) {\n super(waitForCb);\n this.theArgs = args;\n }\n\n public value(o: OwnerType<T>): this {\n this.waitForCb(\n (v) => {\n o.give(v);\n },\n ...this.theArgs,\n );\n return this;\n }\n}\n","import { DestroyFunc } from \"../base/DestroyFunc\";\nimport { From, InformationType, Of, OwnerType, TheInformation } from \"../base\";\nimport { All } from \"./All\";\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 class FromEvent<T = unknown> extends TheInformation<T> {\n public constructor(\n private emitterSrc: InformationType<any>,\n private eventNameSrc: InformationType<string>,\n private subscribeMethodSrc: InformationType<string>,\n private unsubscribeMethodSrc: InformationType<string> = new Of(\"\"),\n ) {\n super(emitterSrc, eventNameSrc, subscribeMethodSrc, unsubscribeMethodSrc);\n }\n\n public value(o: OwnerType<T>): this {\n const a = new All(\n this.emitterSrc,\n this.eventNameSrc,\n this.subscribeMethodSrc,\n this.unsubscribeMethodSrc,\n );\n const handler = (v: T) => {\n o.give(v);\n };\n a.value(\n new From(([emitter, eventName, subscribe, unsubscribe]) => {\n emitter[subscribe](eventName, handler);\n this.addDep(\n new DestroyFunc(() => {\n emitter[unsubscribe](eventName, handler);\n }),\n );\n }),\n );\n return this;\n }\n}\n","import { OwnerType, TheInformation } from \"../base\";\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 class FromPromise<T> extends TheInformation<T> {\n public constructor(\n private p: Promise<T>,\n private errorOwner?: OwnerType,\n ) {\n super(p);\n }\n\n public value(o: OwnerType<T>): this {\n this.p\n .then((v) => {\n o.give(v);\n })\n .catch((e) => {\n this.errorOwner?.give(e);\n });\n return this;\n }\n}\n","import { From, OwnerType, TheInformation } from \"../base\";\nimport { isFilled } from \"../helpers\";\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 class Late<T> extends TheInformation<T> implements OwnerType<T> {\n private theOwner?: OwnerType<T>;\n private lateOwner = new From((v: T) => {\n this.theValue = v;\n this.notify();\n });\n\n public constructor(private theValue?: T) {\n super(theValue);\n }\n\n public value(o: OwnerType<T>): this {\n if (this.theOwner) {\n throw new Error(\n \"Late component gets new owner, when another was already connected!\",\n );\n }\n this.theOwner = o;\n this.notify();\n return this;\n }\n\n public give(v: T) {\n this.theValue = v;\n this.lateOwner.give(v);\n return this;\n }\n\n private notify() {\n if (isFilled(this.theValue) && this.theOwner) {\n this.theOwner.give(this.theValue);\n }\n return this;\n }\n}\n","import { InformationType, Lazy } from \"../base\";\n\n/**\n * Lazy with applied function to its results\n */\nexport class LazyApplied<T> extends Lazy<T> {\n public constructor(\n private baseLazy: Lazy,\n private applier: (i: InformationType) => InformationType<T>,\n ) {\n super();\n }\n\n public get(...args: InformationType[]): InformationType<T> {\n return this.applier(this.baseLazy.get(...args));\n }\n}\n","import { Lazy } from \"../base\";\n\n/**\n * Lazy instance from class constructor\n */\nexport class LazyClass<T> extends Lazy<T> {\n public constructor(constrFn: any) {\n const buildFn = (...args: unknown[]) => new constrFn(...args);\n super(buildFn);\n }\n}\n","import {\n From,\n InformationType,\n Lazy,\n Of,\n OwnerType,\n TheInformation,\n} from \"../base\";\nimport { All } from \"./All\";\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 class Map<T, TG> extends TheInformation<TG[]> {\n public constructor(\n private baseSrc: InformationType<T[]>,\n private targetSrc: Lazy<TG>,\n ) {\n super(baseSrc, targetSrc);\n }\n\n public value(o: OwnerType<TG[]>) {\n this.baseSrc.value(\n new From((v) => {\n const infos: InformationType<TG>[] = [];\n v.forEach((val) => {\n let valInfo: InformationType<T> | T = val;\n if (!(valInfo instanceof TheInformation)) {\n valInfo = new Of(valInfo);\n }\n const info = this.targetSrc.get(valInfo);\n infos.push(info);\n });\n const allI = new All(...infos);\n allI.value(o);\n }),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\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 class Once<T> extends TheInformation<T> {\n public constructor(private baseSrc: InformationType<T>) {\n super();\n }\n\n public value(o: OwnerType<T>): this {\n let isFilled = false;\n this.baseSrc.value(\n new From((v) => {\n if (!isFilled) {\n isFilled = true;\n o.give(v);\n }\n }),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\n\n/**\n * A component that takes one value at a time and returns\n * an array of all previous values\n * https://silentium-lab.github.io/silentium/#/en/information/sequence\n */\nexport class Sequence<T> extends TheInformation<T[]> {\n public constructor(private baseSrc: InformationType<T>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T[]>): this {\n const result: T[] = [];\n this.baseSrc.value(\n new From((v) => {\n result.push(v);\n o.give(result);\n }),\n );\n return this;\n }\n}\n","import { isFilled, OwnerPool } from \"../helpers\";\nimport {\n From,\n InformationType,\n OfFunc,\n OwnerType,\n TheInformation,\n} from \"../base\";\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 class Shared<T> extends TheInformation<T> {\n private lastValue: T | undefined;\n private ownersPool = new OwnerPool<T>();\n\n public constructor(\n private baseSrc: InformationType<T>,\n private stateless = false,\n ) {\n super(baseSrc);\n this.addDep(this.ownersPool);\n this.baseSrc.value(\n new From((v) => {\n this.ownersPool.owner().give(v);\n this.lastValue = v;\n }),\n );\n }\n\n public value(o: OwnerType<T>): this {\n const i = new OfFunc((g: OwnerType<T>) => {\n if (\n !this.stateless &&\n isFilled(this.lastValue) &&\n !this.ownersPool.has(g)\n ) {\n g.give(this.lastValue);\n }\n this.ownersPool.add(g);\n return () => {\n this.ownersPool.remove(g);\n };\n });\n i.value(o);\n this.addDep(i);\n\n return this;\n }\n\n public pool() {\n return this.ownersPool;\n }\n}\n","import { Shared } from \"../components/Shared\";\nimport { InformationType, OwnerType, TheInformation } from \"../base\";\n\nexport class SharedSource<T> extends TheInformation<T> implements OwnerType<T> {\n private sharedSrc: Shared<T>;\n\n public constructor(\n private baseSrc: InformationType<T>,\n stateless = false,\n ) {\n const sharedSrc = new Shared(baseSrc, stateless);\n super(sharedSrc);\n this.sharedSrc = sharedSrc;\n }\n\n public value(o: OwnerType<T>): this {\n this.sharedSrc.value(o);\n return this;\n }\n\n public give(value: T): this {\n this.sharedSrc.pool().owner().give(value);\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\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 class Stream<T> extends TheInformation<T> {\n public constructor(private baseSrc: InformationType<T[]>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.baseSrc.value(\n new From((v) => {\n v.forEach((cv) => {\n o.give(cv);\n });\n }),\n );\n return this;\n }\n}\n"],"names":["Destroyable","constructor","deps","__publicField","this","theDeps","destroy","forEach","dep","isDestroyable","addDep","push","DestroyFunc","destructor","super","TheOwner","From","fn","give","value","TheInformation","MbInfo","theInfo","info","Of","o","isFilled","OwnerPool","owners","Set","innerOwner","v","g","owner","size","has","add","remove","delete","theValue","Lazy","buildFn","get","args","OfFunc","valueFn","mbDestructor","Void","On","src","All","theInfos","infos","keysKnown","Object","keys","result","entries","key","keysFilled","isAllFilled","values","Any","Applied","baseSrc","applier","Chain","lastValue","handleI","index","nextI","ExecutorApplied","Filtered","predicate","defaultValue","FromCallback","waitForCb","theArgs","FromEvent","emitterSrc","eventNameSrc","subscribeMethodSrc","unsubscribeMethodSrc","a","handler","emitter","eventName","subscribe","unsubscribe","FromPromise","p","errorOwner","then","catch","e","Late","notify","theOwner","Error","lateOwner","LazyApplied","baseLazy","LazyClass","constrFn","Map","targetSrc","val","valInfo","Once","Sequence","Shared","stateless","ownersPool","i","pool","SharedSource","sharedSrc","Stream","cv"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"silentium.min.mjs","sources":["../src/base/Destroyable.ts","../src/base/DestroyFunc.ts","../src/base/TheOwner.ts","../src/base/From.ts","../src/base/TheInformation.ts","../src/helpers/isFilled.ts","../src/helpers/OwnerPool.ts","../src/base/Of.ts","../src/base/Lazy.ts","../src/base/OfFunc.ts","../src/base/Void.ts","../src/base/On.ts","../src/components/All.ts","../src/components/Any.ts","../src/components/Applied.ts","../src/components/Chain.ts","../src/components/ExecutorApplied.ts","../src/components/Filtered.ts","../src/components/FromCallback.ts","../src/components/FromEvent.ts","../src/components/FromPromise.ts","../src/components/Late.ts","../src/components/LazyApplied.ts","../src/components/LazyClass.ts","../src/components/Map.ts","../src/components/Once.ts","../src/components/Sequence.ts","../src/components/Shared.ts","../src/components/SharedSource.ts","../src/components/Stream.ts"],"sourcesContent":["const isDestroyable = (dep: unknown): dep is Destroyable => {\n return typeof dep === \"object\" && dep !== null && \"destroy\" in dep;\n};\n\n/**\n * Representation of Destroyable object\n */\nexport class Destroyable {\n private theDeps: any[];\n public constructor(...deps: any[]) {\n this.theDeps = deps ?? [];\n }\n\n public destroy() {\n this.theDeps?.forEach((dep) => {\n if (isDestroyable(dep)) {\n dep.destroy();\n }\n });\n return this;\n }\n\n /**\n * Add dependency what can be destroyed\n */\n public addDep(dep: any) {\n this.theDeps?.push(dep);\n return this;\n }\n\n public dep(dep: any) {\n this.addDep(dep);\n return dep;\n }\n}\n","import { Destroyable } from \"./Destroyable\";\n\n/**\n * Representation of destructor function as object\n */\nexport class DestroyFunc extends Destroyable {\n public constructor(private destructor: () => void) {\n super();\n }\n\n public destroy(): this {\n this.destructor();\n return this;\n }\n}\n","export interface OwnerType<T = unknown> {\n give(value: T): this;\n}\n\n/**\n * Representation of Information Owner\n */\nexport abstract class TheOwner<T = unknown> implements OwnerType<T> {\n public abstract give(value: T): this;\n}\n","import { TheOwner } from \"./TheOwner\";\n\n/**\n * Owner from function\n */\nexport class From<T = unknown> extends TheOwner<T> {\n public constructor(private fn: (value: T) => void) {\n super();\n }\n\n public give(value: T): this {\n this.fn(value);\n return this;\n }\n}\n","import { Destroyable } from \"./Destroyable\";\nimport { Of } from \"./Of\";\nimport { OwnerType } from \"./TheOwner\";\n\nexport interface InformationType<T = unknown> {\n value(o: OwnerType<T>): this;\n}\n\nexport type MaybeInformationType<T = unknown> = InformationType<T> | T;\n\n/**\n * Representation of Information\n */\nexport abstract class TheInformation<T = unknown>\n extends Destroyable\n implements InformationType<T>\n{\n public abstract value(o: OwnerType<T>): this;\n}\n\nexport class MbInfo<T> extends TheInformation<T> {\n private info: InformationType<T>;\n\n public constructor(theInfo: MaybeInformationType<T>) {\n const info =\n typeof theInfo === \"object\" &&\n theInfo !== null &&\n \"value\" in theInfo &&\n typeof theInfo.value === \"function\"\n ? theInfo\n : new Of(theInfo);\n super(info);\n this.info = info;\n }\n\n public value(o: OwnerType<T>): this {\n this.info.value(o);\n return this;\n }\n}\n","export const isFilled = <T>(value?: T): value is T => {\n return value !== undefined && value !== null;\n};\n","import { From, OwnerType } from \"../base\";\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<OwnerType<T>>;\n private innerOwner: OwnerType<T>;\n\n public constructor() {\n this.owners = new Set<OwnerType<T>>();\n this.innerOwner = new From((v) => {\n this.owners.forEach((g) => {\n g.give(v);\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: OwnerType<T>): boolean {\n return this.owners.has(owner);\n }\n\n public add(owner: OwnerType<T>) {\n this.owners.add(owner);\n return this;\n }\n\n public remove(g: OwnerType<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 { OwnerType } from \"./TheOwner\";\nimport { TheInformation } from \"./TheInformation\";\nimport { isFilled } from \"../helpers\";\n\n/**\n * Information from primitive value\n */\nexport class Of<T> extends TheInformation<T> {\n public constructor(private theValue: T) {\n super(theValue);\n }\n\n public value(o: OwnerType<T>): this {\n if (isFilled(this.theValue)) {\n o.give(this.theValue);\n }\n return this;\n }\n}\n","import { Destroyable } from \"./Destroyable\";\nimport { Of } from \"./Of\";\nimport { InformationType } from \"./TheInformation\";\n\n/**\n * Ability to create information after some event\n */\nexport class Lazy<T = unknown> extends Destroyable {\n public constructor(\n protected buildFn?: (...args: InformationType[]) => InformationType<T>,\n ) {\n super();\n }\n\n public get(...args: InformationType[]) {\n args.forEach((dep) => {\n this.addDep(dep);\n });\n return this.buildFn?.(...args) ?? (new Of(null) as InformationType<T>);\n }\n}\n","import { OwnerType } from \"./TheOwner\";\nimport { TheInformation } from \"./TheInformation\";\n\ntype DestructorFnType = () => void;\n\n/**\n * Information of function\n */\nexport class OfFunc<T> extends TheInformation<T> {\n private mbDestructor?: DestructorFnType | void;\n\n public constructor(\n private valueFn: (o: OwnerType<T>) => DestructorFnType | undefined | void,\n ) {\n super(valueFn);\n }\n\n public value(o: OwnerType<T>): this {\n this.mbDestructor = this.valueFn(o);\n return this;\n }\n\n public destroy(): this {\n super.destroy();\n this.mbDestructor?.();\n return this;\n }\n}\n","import { TheOwner } from \"./TheOwner\";\n\n/**\n * Silent owner\n */\nexport class Void extends TheOwner {\n public give(): this {\n return this;\n }\n}\n","import { Destroyable } from \"../base/Destroyable\";\nimport { From } from \"../base/From\";\nimport { InformationType } from \"../base/TheInformation\";\nimport { Void } from \"../base/Void\";\n\n/**\n * Run information with functional owner if needed\n */\nexport class On<T = unknown> extends Destroyable {\n public constructor(src: InformationType<T>, fn?: (value: T) => void) {\n super(src, fn);\n src.value(fn ? new From(fn) : new Void());\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\n\ntype ExtractTypeS<T> = T extends InformationType<infer U> ? U : never;\n\nexport type ExtractTypesFromArrayS<T extends InformationType<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 class All<const T extends InformationType[]> extends TheInformation<\n ExtractTypesFromArrayS<T>\n> {\n private keysKnown: Set<string>;\n private keysFilled = new Set();\n private infos: T;\n\n public constructor(...theInfos: T) {\n super(theInfos);\n this.infos = theInfos;\n this.keysKnown = new Set<string>(Object.keys(theInfos));\n }\n\n public value(o: OwnerType<ExtractTypesFromArrayS<T>>): this {\n const result: Record<string, unknown> = {};\n\n Object.entries(this.infos).forEach(([key, info]) => {\n this.keysKnown.add(key);\n info.value(\n new From((v) => {\n this.keysFilled.add(key);\n result[key] = v;\n if (this.isAllFilled()) {\n o.give(Object.values(result) as ExtractTypesFromArrayS<T>);\n }\n }),\n );\n });\n return this;\n }\n\n private isAllFilled() {\n return (\n this.keysFilled.size > 0 && this.keysFilled.size === this.keysKnown.size\n );\n }\n}\n","import { InformationType, OwnerType, TheInformation } from \"../base\";\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 class Any<T> extends TheInformation<T> {\n private infos: InformationType<T>[];\n\n public constructor(...theInfos: InformationType<T>[]) {\n super(theInfos);\n this.infos = theInfos;\n }\n\n public value(o: OwnerType<T>): this {\n this.infos.forEach((info) => {\n info.value(o);\n });\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\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 class Applied<T, R> extends TheInformation<R> {\n public constructor(\n private baseSrc: InformationType<T>,\n private applier: (v: T) => R,\n ) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<R>): this {\n this.baseSrc.value(\n new From((v) => {\n o.give(this.applier(v));\n }),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\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 class Chain<T extends InformationType[]> extends TheInformation<\n Last<T>\n> {\n private theInfos: T;\n\n public constructor(...infos: T) {\n super(infos);\n this.theInfos = infos;\n }\n\n public value(o: OwnerType<Last<T>>) {\n let lastValue: Last<T> | undefined;\n\n const handleI = (index: number) => {\n const info = this.theInfos[index] as TheInformation<Last<T>>;\n const nextI = this.theInfos[index + 1] as\n | TheInformation<Last<T>>\n | undefined;\n\n info.value(\n new From((v) => {\n if (!nextI) {\n lastValue = v;\n }\n\n if (lastValue) {\n o.give(lastValue);\n }\n\n if (nextI && !lastValue) {\n handleI(index + 1);\n }\n }),\n );\n };\n\n handleI(0);\n\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\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 class ExecutorApplied<T> extends TheInformation<T> {\n public constructor(\n private baseSrc: InformationType<T>,\n private applier: (executor: (v: T) => void) => (v: T) => void,\n ) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.baseSrc.value(\n new From(\n this.applier((v) => {\n o.give(v);\n }),\n ),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\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 class Filtered<T> extends TheInformation<T> {\n public constructor(\n private baseSrc: InformationType<T>,\n private predicate: (v: T) => boolean,\n private defaultValue?: T,\n ) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.baseSrc.value(\n new From((v) => {\n if (this.predicate(v)) {\n o.give(v);\n } else if (this.defaultValue !== undefined) {\n o.give(this.defaultValue);\n }\n }),\n );\n return this;\n }\n}\n","import { OwnerType, TheInformation } from \"../base\";\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 class FromCallback<T> extends TheInformation<T> {\n private theArgs: unknown[];\n\n public constructor(\n private waitForCb: (cb: (v: T) => any, ...args: unknown[]) => unknown,\n ...args: unknown[]\n ) {\n super(waitForCb);\n this.theArgs = args;\n }\n\n public value(o: OwnerType<T>): this {\n this.waitForCb(\n (v) => {\n o.give(v);\n },\n ...this.theArgs,\n );\n return this;\n }\n}\n","import { DestroyFunc } from \"../base/DestroyFunc\";\nimport { From, InformationType, Of, OwnerType, TheInformation } from \"../base\";\nimport { All } from \"./All\";\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 class FromEvent<T = unknown> extends TheInformation<T> {\n public constructor(\n private emitterSrc: InformationType<any>,\n private eventNameSrc: InformationType<string>,\n private subscribeMethodSrc: InformationType<string>,\n private unsubscribeMethodSrc: InformationType<string> = new Of(\"\"),\n ) {\n super(emitterSrc, eventNameSrc, subscribeMethodSrc, unsubscribeMethodSrc);\n }\n\n public value(o: OwnerType<T>): this {\n const a = new All(\n this.emitterSrc,\n this.eventNameSrc,\n this.subscribeMethodSrc,\n this.unsubscribeMethodSrc,\n );\n const handler = (v: T) => {\n o.give(v);\n };\n a.value(\n new From(([emitter, eventName, subscribe, unsubscribe]) => {\n emitter[subscribe](eventName, handler);\n this.addDep(\n new DestroyFunc(() => {\n emitter[unsubscribe](eventName, handler);\n }),\n );\n }),\n );\n return this;\n }\n}\n","import { OwnerType, TheInformation } from \"../base\";\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 class FromPromise<T> extends TheInformation<T> {\n public constructor(\n private p: Promise<T>,\n private errorOwner?: OwnerType,\n ) {\n super(p);\n }\n\n public value(o: OwnerType<T>): this {\n this.p\n .then((v) => {\n o.give(v);\n })\n .catch((e) => {\n this.errorOwner?.give(e);\n });\n return this;\n }\n}\n","import { From, OwnerType, TheInformation } from \"../base\";\nimport { isFilled } from \"../helpers\";\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 class Late<T> extends TheInformation<T> implements OwnerType<T> {\n private theOwner?: OwnerType<T>;\n private lateOwner = new From((v: T) => {\n this.theValue = v;\n this.notify();\n });\n\n public constructor(private theValue?: T) {\n super(theValue);\n }\n\n public value(o: OwnerType<T>): this {\n if (this.theOwner) {\n throw new Error(\n \"Late component gets new owner, when another was already connected!\",\n );\n }\n this.theOwner = o;\n this.notify();\n return this;\n }\n\n public give(v: T) {\n this.theValue = v;\n this.lateOwner.give(v);\n return this;\n }\n\n private notify() {\n if (isFilled(this.theValue) && this.theOwner) {\n this.theOwner.give(this.theValue);\n }\n return this;\n }\n}\n","import { InformationType, Lazy } from \"../base\";\n\n/**\n * Lazy with applied function to its results\n */\nexport class LazyApplied<T> extends Lazy<T> {\n public constructor(\n private baseLazy: Lazy,\n private applier: (i: InformationType) => InformationType<T>,\n ) {\n super();\n }\n\n public get(...args: InformationType[]): InformationType<T> {\n return this.applier(this.baseLazy.get(...args));\n }\n}\n","import { Lazy } from \"../base\";\n\n/**\n * Lazy instance from class constructor\n */\nexport class LazyClass<T> extends Lazy<T> {\n public constructor(constrFn: any) {\n const buildFn = (...args: unknown[]) => new constrFn(...args);\n super(buildFn);\n }\n}\n","import {\n From,\n InformationType,\n Lazy,\n Of,\n OwnerType,\n TheInformation,\n} from \"../base\";\nimport { All } from \"./All\";\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 class Map<T, TG> extends TheInformation<TG[]> {\n public constructor(\n private baseSrc: InformationType<T[]>,\n private targetSrc: Lazy<TG>,\n ) {\n super(baseSrc, targetSrc);\n }\n\n public value(o: OwnerType<TG[]>) {\n this.baseSrc.value(\n new From((v) => {\n const infos: InformationType<TG>[] = [];\n v.forEach((val) => {\n let valInfo: InformationType<T> | T = val;\n if (!(valInfo instanceof TheInformation)) {\n valInfo = new Of(valInfo);\n }\n const info = this.targetSrc.get(valInfo);\n infos.push(info);\n });\n const allI = new All(...infos);\n allI.value(o);\n }),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\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 class Once<T> extends TheInformation<T> {\n public constructor(private baseSrc: InformationType<T>) {\n super();\n }\n\n public value(o: OwnerType<T>): this {\n let isFilled = false;\n this.baseSrc.value(\n new From((v) => {\n if (!isFilled) {\n isFilled = true;\n o.give(v);\n }\n }),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\n\n/**\n * A component that takes one value at a time and returns\n * an array of all previous values\n * https://silentium-lab.github.io/silentium/#/en/information/sequence\n */\nexport class Sequence<T> extends TheInformation<T[]> {\n public constructor(private baseSrc: InformationType<T>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T[]>): this {\n const result: T[] = [];\n this.baseSrc.value(\n new From((v) => {\n result.push(v);\n o.give(result);\n }),\n );\n return this;\n }\n}\n","import { isFilled, OwnerPool } from \"../helpers\";\nimport {\n From,\n InformationType,\n OfFunc,\n OwnerType,\n TheInformation,\n} from \"../base\";\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 class Shared<T> extends TheInformation<T> implements OwnerType<T> {\n private lastValue: T | undefined;\n private ownersPool = new OwnerPool<T>();\n\n public constructor(\n private baseSrc: InformationType<T>,\n private stateless = false,\n ) {\n super(baseSrc);\n this.addDep(this.ownersPool);\n this.baseSrc.value(\n new From((v) => {\n this.ownersPool.owner().give(v);\n this.lastValue = v;\n }),\n );\n }\n\n public value(o: OwnerType<T>): this {\n const i = new OfFunc((g: OwnerType<T>) => {\n if (\n !this.stateless &&\n isFilled(this.lastValue) &&\n !this.ownersPool.has(g)\n ) {\n g.give(this.lastValue);\n }\n this.ownersPool.add(g);\n return () => {\n this.ownersPool.remove(g);\n };\n });\n i.value(o);\n this.addDep(i);\n\n return this;\n }\n\n public pool() {\n return this.ownersPool;\n }\n\n public give(value: T) {\n this.lastValue = value;\n this.ownersPool.owner().give(value);\n return this;\n }\n}\n","import { Shared } from \"../components/Shared\";\nimport { OwnerType, SourceType, TheInformation } from \"../base\";\n\nexport class SharedSource<T> extends TheInformation<T> implements OwnerType<T> {\n private sharedSrc: Shared<T>;\n\n public constructor(\n private baseSrc: SourceType<T>,\n stateless = false,\n ) {\n const sharedSrc = new Shared(baseSrc, stateless);\n super(sharedSrc);\n this.sharedSrc = sharedSrc;\n }\n\n public value(o: OwnerType<T>): this {\n this.sharedSrc.value(o);\n return this;\n }\n\n public give(value: T): this {\n this.baseSrc.give(value);\n this.sharedSrc.give(value);\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\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 class Stream<T> extends TheInformation<T> {\n public constructor(private baseSrc: InformationType<T[]>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.baseSrc.value(\n new From((v) => {\n v.forEach((cv) => {\n o.give(cv);\n });\n }),\n );\n return this;\n }\n}\n"],"names":["Destroyable","constructor","deps","__publicField","this","theDeps","destroy","forEach","dep","isDestroyable","addDep","push","DestroyFunc","destructor","super","TheOwner","From","fn","give","value","TheInformation","MbInfo","theInfo","info","Of","o","isFilled","OwnerPool","owners","Set","innerOwner","v","g","owner","size","has","add","remove","delete","theValue","Lazy","buildFn","get","args","OfFunc","valueFn","mbDestructor","Void","On","src","All","theInfos","infos","keysKnown","Object","keys","result","entries","key","keysFilled","isAllFilled","values","Any","Applied","baseSrc","applier","Chain","lastValue","handleI","index","nextI","ExecutorApplied","Filtered","predicate","defaultValue","FromCallback","waitForCb","theArgs","FromEvent","emitterSrc","eventNameSrc","subscribeMethodSrc","unsubscribeMethodSrc","a","handler","emitter","eventName","subscribe","unsubscribe","FromPromise","p","errorOwner","then","catch","e","Late","notify","theOwner","Error","lateOwner","LazyApplied","baseLazy","LazyClass","constrFn","Map","targetSrc","val","valInfo","Once","Sequence","Shared","stateless","ownersPool","i","pool","SharedSource","sharedSrc","Stream","cv"],"mappings":"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"}
|
package/dist/silentium.mjs
CHANGED
|
@@ -533,6 +533,11 @@ class Shared extends TheInformation {
|
|
|
533
533
|
pool() {
|
|
534
534
|
return this.ownersPool;
|
|
535
535
|
}
|
|
536
|
+
give(value) {
|
|
537
|
+
this.lastValue = value;
|
|
538
|
+
this.ownersPool.owner().give(value);
|
|
539
|
+
return this;
|
|
540
|
+
}
|
|
536
541
|
}
|
|
537
542
|
|
|
538
543
|
var __defProp = Object.defineProperty;
|
|
@@ -551,7 +556,8 @@ class SharedSource extends TheInformation {
|
|
|
551
556
|
return this;
|
|
552
557
|
}
|
|
553
558
|
give(value) {
|
|
554
|
-
this.
|
|
559
|
+
this.baseSrc.give(value);
|
|
560
|
+
this.sharedSrc.give(value);
|
|
555
561
|
return this;
|
|
556
562
|
}
|
|
557
563
|
}
|
package/dist/silentium.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"silentium.mjs","sources":["../src/base/Destroyable.ts","../src/base/DestroyFunc.ts","../src/base/TheOwner.ts","../src/base/From.ts","../src/base/TheInformation.ts","../src/helpers/isFilled.ts","../src/helpers/OwnerPool.ts","../src/base/Of.ts","../src/base/Lazy.ts","../src/base/OfFunc.ts","../src/base/Void.ts","../src/base/On.ts","../src/components/All.ts","../src/components/Any.ts","../src/components/Applied.ts","../src/components/Chain.ts","../src/components/ExecutorApplied.ts","../src/components/Filtered.ts","../src/components/FromCallback.ts","../src/components/FromEvent.ts","../src/components/FromPromise.ts","../src/components/Late.ts","../src/components/LazyApplied.ts","../src/components/LazyClass.ts","../src/components/Map.ts","../src/components/Once.ts","../src/components/Sequence.ts","../src/components/Shared.ts","../src/components/SharedSource.ts","../src/components/Stream.ts"],"sourcesContent":["const isDestroyable = (dep: unknown): dep is Destroyable => {\n return typeof dep === \"object\" && dep !== null && \"destroy\" in dep;\n};\n\n/**\n * Representation of Destroyable object\n */\nexport class Destroyable {\n private theDeps: any[];\n public constructor(...deps: any[]) {\n this.theDeps = deps ?? [];\n }\n\n public destroy() {\n this.theDeps?.forEach((dep) => {\n if (isDestroyable(dep)) {\n dep.destroy();\n }\n });\n return this;\n }\n\n /**\n * Add dependency what can be destroyed\n */\n public addDep(dep: any) {\n this.theDeps?.push(dep);\n return this;\n }\n\n public dep(dep: any) {\n this.addDep(dep);\n return dep;\n }\n}\n","import { Destroyable } from \"./Destroyable\";\n\n/**\n * Representation of destructor function as object\n */\nexport class DestroyFunc extends Destroyable {\n public constructor(private destructor: () => void) {\n super();\n }\n\n public destroy(): this {\n this.destructor();\n return this;\n }\n}\n","export interface OwnerType<T = unknown> {\n give(value: T): this;\n}\n\n/**\n * Representation of Information Owner\n */\nexport abstract class TheOwner<T = unknown> implements OwnerType<T> {\n public abstract give(value: T): this;\n}\n","import { TheOwner } from \"./TheOwner\";\n\n/**\n * Owner from function\n */\nexport class From<T = unknown> extends TheOwner<T> {\n public constructor(private fn: (value: T) => void) {\n super();\n }\n\n public give(value: T): this {\n this.fn(value);\n return this;\n }\n}\n","import { Destroyable } from \"./Destroyable\";\nimport { Of } from \"./Of\";\nimport { OwnerType } from \"./TheOwner\";\n\nexport interface InformationType<T = unknown> {\n value(o: OwnerType<T>): this;\n}\n\nexport type MaybeInformationType<T = unknown> = InformationType<T> | T;\n\n/**\n * Representation of Information\n */\nexport abstract class TheInformation<T = unknown>\n extends Destroyable\n implements InformationType<T>\n{\n public abstract value(o: OwnerType<T>): this;\n}\n\nexport class MbInfo<T> extends TheInformation<T> {\n private info: InformationType<T>;\n\n public constructor(theInfo: MaybeInformationType<T>) {\n const info =\n typeof theInfo === \"object\" &&\n theInfo !== null &&\n \"value\" in theInfo &&\n typeof theInfo.value === \"function\"\n ? theInfo\n : new Of(theInfo);\n super(info);\n this.info = info;\n }\n\n public value(o: OwnerType<T>): this {\n this.info.value(o);\n return this;\n }\n}\n","export const isFilled = <T>(value?: T): value is T => {\n return value !== undefined && value !== null;\n};\n","import { From, OwnerType } from \"../base\";\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<OwnerType<T>>;\n private innerOwner: OwnerType<T>;\n\n public constructor() {\n this.owners = new Set<OwnerType<T>>();\n this.innerOwner = new From((v) => {\n this.owners.forEach((g) => {\n g.give(v);\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: OwnerType<T>): boolean {\n return this.owners.has(owner);\n }\n\n public add(owner: OwnerType<T>) {\n this.owners.add(owner);\n return this;\n }\n\n public remove(g: OwnerType<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 { OwnerType } from \"./TheOwner\";\nimport { TheInformation } from \"./TheInformation\";\nimport { isFilled } from \"../helpers\";\n\n/**\n * Information from primitive value\n */\nexport class Of<T> extends TheInformation<T> {\n public constructor(private theValue: T) {\n super(theValue);\n }\n\n public value(o: OwnerType<T>): this {\n if (isFilled(this.theValue)) {\n o.give(this.theValue);\n }\n return this;\n }\n}\n","import { Destroyable } from \"./Destroyable\";\nimport { Of } from \"./Of\";\nimport { InformationType } from \"./TheInformation\";\n\n/**\n * Ability to create information after some event\n */\nexport class Lazy<T = unknown> extends Destroyable {\n public constructor(\n protected buildFn?: (...args: InformationType[]) => InformationType<T>,\n ) {\n super();\n }\n\n public get(...args: InformationType[]) {\n args.forEach((dep) => {\n this.addDep(dep);\n });\n return this.buildFn?.(...args) ?? (new Of(null) as InformationType<T>);\n }\n}\n","import { OwnerType } from \"./TheOwner\";\nimport { TheInformation } from \"./TheInformation\";\n\ntype DestructorFnType = () => void;\n\n/**\n * Information of function\n */\nexport class OfFunc<T> extends TheInformation<T> {\n private mbDestructor?: DestructorFnType | void;\n\n public constructor(\n private valueFn: (o: OwnerType<T>) => DestructorFnType | undefined | void,\n ) {\n super(valueFn);\n }\n\n public value(o: OwnerType<T>): this {\n this.mbDestructor = this.valueFn(o);\n return this;\n }\n\n public destroy(): this {\n super.destroy();\n this.mbDestructor?.();\n return this;\n }\n}\n","import { TheOwner } from \"./TheOwner\";\n\n/**\n * Silent owner\n */\nexport class Void extends TheOwner {\n public give(): this {\n return this;\n }\n}\n","import { Destroyable } from \"../base/Destroyable\";\nimport { From } from \"../base/From\";\nimport { InformationType } from \"../base/TheInformation\";\nimport { Void } from \"../base/Void\";\n\n/**\n * Run information with functional owner if needed\n */\nexport class On<T = unknown> extends Destroyable {\n public constructor(src: InformationType<T>, fn?: (value: T) => void) {\n super(src, fn);\n src.value(fn ? new From(fn) : new Void());\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\n\ntype ExtractTypeS<T> = T extends InformationType<infer U> ? U : never;\n\nexport type ExtractTypesFromArrayS<T extends InformationType<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 class All<const T extends InformationType[]> extends TheInformation<\n ExtractTypesFromArrayS<T>\n> {\n private keysKnown: Set<string>;\n private keysFilled = new Set();\n private infos: T;\n\n public constructor(...theInfos: T) {\n super(theInfos);\n this.infos = theInfos;\n this.keysKnown = new Set<string>(Object.keys(theInfos));\n }\n\n public value(o: OwnerType<ExtractTypesFromArrayS<T>>): this {\n const result: Record<string, unknown> = {};\n\n Object.entries(this.infos).forEach(([key, info]) => {\n this.keysKnown.add(key);\n info.value(\n new From((v) => {\n this.keysFilled.add(key);\n result[key] = v;\n if (this.isAllFilled()) {\n o.give(Object.values(result) as ExtractTypesFromArrayS<T>);\n }\n }),\n );\n });\n return this;\n }\n\n private isAllFilled() {\n return (\n this.keysFilled.size > 0 && this.keysFilled.size === this.keysKnown.size\n );\n }\n}\n","import { InformationType, OwnerType, TheInformation } from \"../base\";\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 class Any<T> extends TheInformation<T> {\n private infos: InformationType<T>[];\n\n public constructor(...theInfos: InformationType<T>[]) {\n super(theInfos);\n this.infos = theInfos;\n }\n\n public value(o: OwnerType<T>): this {\n this.infos.forEach((info) => {\n info.value(o);\n });\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\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 class Applied<T, R> extends TheInformation<R> {\n public constructor(\n private baseSrc: InformationType<T>,\n private applier: (v: T) => R,\n ) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<R>): this {\n this.baseSrc.value(\n new From((v) => {\n o.give(this.applier(v));\n }),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\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 class Chain<T extends InformationType[]> extends TheInformation<\n Last<T>\n> {\n private theInfos: T;\n\n public constructor(...infos: T) {\n super(infos);\n this.theInfos = infos;\n }\n\n public value(o: OwnerType<Last<T>>) {\n let lastValue: Last<T> | undefined;\n\n const handleI = (index: number) => {\n const info = this.theInfos[index] as TheInformation<Last<T>>;\n const nextI = this.theInfos[index + 1] as\n | TheInformation<Last<T>>\n | undefined;\n\n info.value(\n new From((v) => {\n if (!nextI) {\n lastValue = v;\n }\n\n if (lastValue) {\n o.give(lastValue);\n }\n\n if (nextI && !lastValue) {\n handleI(index + 1);\n }\n }),\n );\n };\n\n handleI(0);\n\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\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 class ExecutorApplied<T> extends TheInformation<T> {\n public constructor(\n private baseSrc: InformationType<T>,\n private applier: (executor: (v: T) => void) => (v: T) => void,\n ) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.baseSrc.value(\n new From(\n this.applier((v) => {\n o.give(v);\n }),\n ),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\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 class Filtered<T> extends TheInformation<T> {\n public constructor(\n private baseSrc: InformationType<T>,\n private predicate: (v: T) => boolean,\n private defaultValue?: T,\n ) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.baseSrc.value(\n new From((v) => {\n if (this.predicate(v)) {\n o.give(v);\n } else if (this.defaultValue !== undefined) {\n o.give(this.defaultValue);\n }\n }),\n );\n return this;\n }\n}\n","import { OwnerType, TheInformation } from \"../base\";\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 class FromCallback<T> extends TheInformation<T> {\n private theArgs: unknown[];\n\n public constructor(\n private waitForCb: (cb: (v: T) => any, ...args: unknown[]) => unknown,\n ...args: unknown[]\n ) {\n super(waitForCb);\n this.theArgs = args;\n }\n\n public value(o: OwnerType<T>): this {\n this.waitForCb(\n (v) => {\n o.give(v);\n },\n ...this.theArgs,\n );\n return this;\n }\n}\n","import { DestroyFunc } from \"../base/DestroyFunc\";\nimport { From, InformationType, Of, OwnerType, TheInformation } from \"../base\";\nimport { All } from \"./All\";\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 class FromEvent<T = unknown> extends TheInformation<T> {\n public constructor(\n private emitterSrc: InformationType<any>,\n private eventNameSrc: InformationType<string>,\n private subscribeMethodSrc: InformationType<string>,\n private unsubscribeMethodSrc: InformationType<string> = new Of(\"\"),\n ) {\n super(emitterSrc, eventNameSrc, subscribeMethodSrc, unsubscribeMethodSrc);\n }\n\n public value(o: OwnerType<T>): this {\n const a = new All(\n this.emitterSrc,\n this.eventNameSrc,\n this.subscribeMethodSrc,\n this.unsubscribeMethodSrc,\n );\n const handler = (v: T) => {\n o.give(v);\n };\n a.value(\n new From(([emitter, eventName, subscribe, unsubscribe]) => {\n emitter[subscribe](eventName, handler);\n this.addDep(\n new DestroyFunc(() => {\n emitter[unsubscribe](eventName, handler);\n }),\n );\n }),\n );\n return this;\n }\n}\n","import { OwnerType, TheInformation } from \"../base\";\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 class FromPromise<T> extends TheInformation<T> {\n public constructor(\n private p: Promise<T>,\n private errorOwner?: OwnerType,\n ) {\n super(p);\n }\n\n public value(o: OwnerType<T>): this {\n this.p\n .then((v) => {\n o.give(v);\n })\n .catch((e) => {\n this.errorOwner?.give(e);\n });\n return this;\n }\n}\n","import { From, OwnerType, TheInformation } from \"../base\";\nimport { isFilled } from \"../helpers\";\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 class Late<T> extends TheInformation<T> implements OwnerType<T> {\n private theOwner?: OwnerType<T>;\n private lateOwner = new From((v: T) => {\n this.theValue = v;\n this.notify();\n });\n\n public constructor(private theValue?: T) {\n super(theValue);\n }\n\n public value(o: OwnerType<T>): this {\n if (this.theOwner) {\n throw new Error(\n \"Late component gets new owner, when another was already connected!\",\n );\n }\n this.theOwner = o;\n this.notify();\n return this;\n }\n\n public give(v: T) {\n this.theValue = v;\n this.lateOwner.give(v);\n return this;\n }\n\n private notify() {\n if (isFilled(this.theValue) && this.theOwner) {\n this.theOwner.give(this.theValue);\n }\n return this;\n }\n}\n","import { InformationType, Lazy } from \"../base\";\n\n/**\n * Lazy with applied function to its results\n */\nexport class LazyApplied<T> extends Lazy<T> {\n public constructor(\n private baseLazy: Lazy,\n private applier: (i: InformationType) => InformationType<T>,\n ) {\n super();\n }\n\n public get(...args: InformationType[]): InformationType<T> {\n return this.applier(this.baseLazy.get(...args));\n }\n}\n","import { Lazy } from \"../base\";\n\n/**\n * Lazy instance from class constructor\n */\nexport class LazyClass<T> extends Lazy<T> {\n public constructor(constrFn: any) {\n const buildFn = (...args: unknown[]) => new constrFn(...args);\n super(buildFn);\n }\n}\n","import {\n From,\n InformationType,\n Lazy,\n Of,\n OwnerType,\n TheInformation,\n} from \"../base\";\nimport { All } from \"./All\";\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 class Map<T, TG> extends TheInformation<TG[]> {\n public constructor(\n private baseSrc: InformationType<T[]>,\n private targetSrc: Lazy<TG>,\n ) {\n super(baseSrc, targetSrc);\n }\n\n public value(o: OwnerType<TG[]>) {\n this.baseSrc.value(\n new From((v) => {\n const infos: InformationType<TG>[] = [];\n v.forEach((val) => {\n let valInfo: InformationType<T> | T = val;\n if (!(valInfo instanceof TheInformation)) {\n valInfo = new Of(valInfo);\n }\n const info = this.targetSrc.get(valInfo);\n infos.push(info);\n });\n const allI = new All(...infos);\n allI.value(o);\n }),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\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 class Once<T> extends TheInformation<T> {\n public constructor(private baseSrc: InformationType<T>) {\n super();\n }\n\n public value(o: OwnerType<T>): this {\n let isFilled = false;\n this.baseSrc.value(\n new From((v) => {\n if (!isFilled) {\n isFilled = true;\n o.give(v);\n }\n }),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\n\n/**\n * A component that takes one value at a time and returns\n * an array of all previous values\n * https://silentium-lab.github.io/silentium/#/en/information/sequence\n */\nexport class Sequence<T> extends TheInformation<T[]> {\n public constructor(private baseSrc: InformationType<T>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T[]>): this {\n const result: T[] = [];\n this.baseSrc.value(\n new From((v) => {\n result.push(v);\n o.give(result);\n }),\n );\n return this;\n }\n}\n","import { isFilled, OwnerPool } from \"../helpers\";\nimport {\n From,\n InformationType,\n OfFunc,\n OwnerType,\n TheInformation,\n} from \"../base\";\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 class Shared<T> extends TheInformation<T> {\n private lastValue: T | undefined;\n private ownersPool = new OwnerPool<T>();\n\n public constructor(\n private baseSrc: InformationType<T>,\n private stateless = false,\n ) {\n super(baseSrc);\n this.addDep(this.ownersPool);\n this.baseSrc.value(\n new From((v) => {\n this.ownersPool.owner().give(v);\n this.lastValue = v;\n }),\n );\n }\n\n public value(o: OwnerType<T>): this {\n const i = new OfFunc((g: OwnerType<T>) => {\n if (\n !this.stateless &&\n isFilled(this.lastValue) &&\n !this.ownersPool.has(g)\n ) {\n g.give(this.lastValue);\n }\n this.ownersPool.add(g);\n return () => {\n this.ownersPool.remove(g);\n };\n });\n i.value(o);\n this.addDep(i);\n\n return this;\n }\n\n public pool() {\n return this.ownersPool;\n }\n}\n","import { Shared } from \"../components/Shared\";\nimport { InformationType, OwnerType, TheInformation } from \"../base\";\n\nexport class SharedSource<T> extends TheInformation<T> implements OwnerType<T> {\n private sharedSrc: Shared<T>;\n\n public constructor(\n private baseSrc: InformationType<T>,\n stateless = false,\n ) {\n const sharedSrc = new Shared(baseSrc, stateless);\n super(sharedSrc);\n this.sharedSrc = sharedSrc;\n }\n\n public value(o: OwnerType<T>): this {\n this.sharedSrc.value(o);\n return this;\n }\n\n public give(value: T): this {\n this.sharedSrc.pool().owner().give(value);\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\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 class Stream<T> extends TheInformation<T> {\n public constructor(private baseSrc: InformationType<T[]>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.baseSrc.value(\n new From((v) => {\n v.forEach((cv) => {\n o.give(cv);\n });\n }),\n );\n return this;\n }\n}\n"],"names":["__publicField"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"silentium.mjs","sources":["../src/base/Destroyable.ts","../src/base/DestroyFunc.ts","../src/base/TheOwner.ts","../src/base/From.ts","../src/base/TheInformation.ts","../src/helpers/isFilled.ts","../src/helpers/OwnerPool.ts","../src/base/Of.ts","../src/base/Lazy.ts","../src/base/OfFunc.ts","../src/base/Void.ts","../src/base/On.ts","../src/components/All.ts","../src/components/Any.ts","../src/components/Applied.ts","../src/components/Chain.ts","../src/components/ExecutorApplied.ts","../src/components/Filtered.ts","../src/components/FromCallback.ts","../src/components/FromEvent.ts","../src/components/FromPromise.ts","../src/components/Late.ts","../src/components/LazyApplied.ts","../src/components/LazyClass.ts","../src/components/Map.ts","../src/components/Once.ts","../src/components/Sequence.ts","../src/components/Shared.ts","../src/components/SharedSource.ts","../src/components/Stream.ts"],"sourcesContent":["const isDestroyable = (dep: unknown): dep is Destroyable => {\n return typeof dep === \"object\" && dep !== null && \"destroy\" in dep;\n};\n\n/**\n * Representation of Destroyable object\n */\nexport class Destroyable {\n private theDeps: any[];\n public constructor(...deps: any[]) {\n this.theDeps = deps ?? [];\n }\n\n public destroy() {\n this.theDeps?.forEach((dep) => {\n if (isDestroyable(dep)) {\n dep.destroy();\n }\n });\n return this;\n }\n\n /**\n * Add dependency what can be destroyed\n */\n public addDep(dep: any) {\n this.theDeps?.push(dep);\n return this;\n }\n\n public dep(dep: any) {\n this.addDep(dep);\n return dep;\n }\n}\n","import { Destroyable } from \"./Destroyable\";\n\n/**\n * Representation of destructor function as object\n */\nexport class DestroyFunc extends Destroyable {\n public constructor(private destructor: () => void) {\n super();\n }\n\n public destroy(): this {\n this.destructor();\n return this;\n }\n}\n","export interface OwnerType<T = unknown> {\n give(value: T): this;\n}\n\n/**\n * Representation of Information Owner\n */\nexport abstract class TheOwner<T = unknown> implements OwnerType<T> {\n public abstract give(value: T): this;\n}\n","import { TheOwner } from \"./TheOwner\";\n\n/**\n * Owner from function\n */\nexport class From<T = unknown> extends TheOwner<T> {\n public constructor(private fn: (value: T) => void) {\n super();\n }\n\n public give(value: T): this {\n this.fn(value);\n return this;\n }\n}\n","import { Destroyable } from \"./Destroyable\";\nimport { Of } from \"./Of\";\nimport { OwnerType } from \"./TheOwner\";\n\nexport interface InformationType<T = unknown> {\n value(o: OwnerType<T>): this;\n}\n\nexport type MaybeInformationType<T = unknown> = InformationType<T> | T;\n\n/**\n * Representation of Information\n */\nexport abstract class TheInformation<T = unknown>\n extends Destroyable\n implements InformationType<T>\n{\n public abstract value(o: OwnerType<T>): this;\n}\n\nexport class MbInfo<T> extends TheInformation<T> {\n private info: InformationType<T>;\n\n public constructor(theInfo: MaybeInformationType<T>) {\n const info =\n typeof theInfo === \"object\" &&\n theInfo !== null &&\n \"value\" in theInfo &&\n typeof theInfo.value === \"function\"\n ? theInfo\n : new Of(theInfo);\n super(info);\n this.info = info;\n }\n\n public value(o: OwnerType<T>): this {\n this.info.value(o);\n return this;\n }\n}\n","export const isFilled = <T>(value?: T): value is T => {\n return value !== undefined && value !== null;\n};\n","import { From, OwnerType } from \"../base\";\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<OwnerType<T>>;\n private innerOwner: OwnerType<T>;\n\n public constructor() {\n this.owners = new Set<OwnerType<T>>();\n this.innerOwner = new From((v) => {\n this.owners.forEach((g) => {\n g.give(v);\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: OwnerType<T>): boolean {\n return this.owners.has(owner);\n }\n\n public add(owner: OwnerType<T>) {\n this.owners.add(owner);\n return this;\n }\n\n public remove(g: OwnerType<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 { OwnerType } from \"./TheOwner\";\nimport { TheInformation } from \"./TheInformation\";\nimport { isFilled } from \"../helpers\";\n\n/**\n * Information from primitive value\n */\nexport class Of<T> extends TheInformation<T> {\n public constructor(private theValue: T) {\n super(theValue);\n }\n\n public value(o: OwnerType<T>): this {\n if (isFilled(this.theValue)) {\n o.give(this.theValue);\n }\n return this;\n }\n}\n","import { Destroyable } from \"./Destroyable\";\nimport { Of } from \"./Of\";\nimport { InformationType } from \"./TheInformation\";\n\n/**\n * Ability to create information after some event\n */\nexport class Lazy<T = unknown> extends Destroyable {\n public constructor(\n protected buildFn?: (...args: InformationType[]) => InformationType<T>,\n ) {\n super();\n }\n\n public get(...args: InformationType[]) {\n args.forEach((dep) => {\n this.addDep(dep);\n });\n return this.buildFn?.(...args) ?? (new Of(null) as InformationType<T>);\n }\n}\n","import { OwnerType } from \"./TheOwner\";\nimport { TheInformation } from \"./TheInformation\";\n\ntype DestructorFnType = () => void;\n\n/**\n * Information of function\n */\nexport class OfFunc<T> extends TheInformation<T> {\n private mbDestructor?: DestructorFnType | void;\n\n public constructor(\n private valueFn: (o: OwnerType<T>) => DestructorFnType | undefined | void,\n ) {\n super(valueFn);\n }\n\n public value(o: OwnerType<T>): this {\n this.mbDestructor = this.valueFn(o);\n return this;\n }\n\n public destroy(): this {\n super.destroy();\n this.mbDestructor?.();\n return this;\n }\n}\n","import { TheOwner } from \"./TheOwner\";\n\n/**\n * Silent owner\n */\nexport class Void extends TheOwner {\n public give(): this {\n return this;\n }\n}\n","import { Destroyable } from \"../base/Destroyable\";\nimport { From } from \"../base/From\";\nimport { InformationType } from \"../base/TheInformation\";\nimport { Void } from \"../base/Void\";\n\n/**\n * Run information with functional owner if needed\n */\nexport class On<T = unknown> extends Destroyable {\n public constructor(src: InformationType<T>, fn?: (value: T) => void) {\n super(src, fn);\n src.value(fn ? new From(fn) : new Void());\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\n\ntype ExtractTypeS<T> = T extends InformationType<infer U> ? U : never;\n\nexport type ExtractTypesFromArrayS<T extends InformationType<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 class All<const T extends InformationType[]> extends TheInformation<\n ExtractTypesFromArrayS<T>\n> {\n private keysKnown: Set<string>;\n private keysFilled = new Set();\n private infos: T;\n\n public constructor(...theInfos: T) {\n super(theInfos);\n this.infos = theInfos;\n this.keysKnown = new Set<string>(Object.keys(theInfos));\n }\n\n public value(o: OwnerType<ExtractTypesFromArrayS<T>>): this {\n const result: Record<string, unknown> = {};\n\n Object.entries(this.infos).forEach(([key, info]) => {\n this.keysKnown.add(key);\n info.value(\n new From((v) => {\n this.keysFilled.add(key);\n result[key] = v;\n if (this.isAllFilled()) {\n o.give(Object.values(result) as ExtractTypesFromArrayS<T>);\n }\n }),\n );\n });\n return this;\n }\n\n private isAllFilled() {\n return (\n this.keysFilled.size > 0 && this.keysFilled.size === this.keysKnown.size\n );\n }\n}\n","import { InformationType, OwnerType, TheInformation } from \"../base\";\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 class Any<T> extends TheInformation<T> {\n private infos: InformationType<T>[];\n\n public constructor(...theInfos: InformationType<T>[]) {\n super(theInfos);\n this.infos = theInfos;\n }\n\n public value(o: OwnerType<T>): this {\n this.infos.forEach((info) => {\n info.value(o);\n });\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\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 class Applied<T, R> extends TheInformation<R> {\n public constructor(\n private baseSrc: InformationType<T>,\n private applier: (v: T) => R,\n ) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<R>): this {\n this.baseSrc.value(\n new From((v) => {\n o.give(this.applier(v));\n }),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\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 class Chain<T extends InformationType[]> extends TheInformation<\n Last<T>\n> {\n private theInfos: T;\n\n public constructor(...infos: T) {\n super(infos);\n this.theInfos = infos;\n }\n\n public value(o: OwnerType<Last<T>>) {\n let lastValue: Last<T> | undefined;\n\n const handleI = (index: number) => {\n const info = this.theInfos[index] as TheInformation<Last<T>>;\n const nextI = this.theInfos[index + 1] as\n | TheInformation<Last<T>>\n | undefined;\n\n info.value(\n new From((v) => {\n if (!nextI) {\n lastValue = v;\n }\n\n if (lastValue) {\n o.give(lastValue);\n }\n\n if (nextI && !lastValue) {\n handleI(index + 1);\n }\n }),\n );\n };\n\n handleI(0);\n\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\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 class ExecutorApplied<T> extends TheInformation<T> {\n public constructor(\n private baseSrc: InformationType<T>,\n private applier: (executor: (v: T) => void) => (v: T) => void,\n ) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.baseSrc.value(\n new From(\n this.applier((v) => {\n o.give(v);\n }),\n ),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\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 class Filtered<T> extends TheInformation<T> {\n public constructor(\n private baseSrc: InformationType<T>,\n private predicate: (v: T) => boolean,\n private defaultValue?: T,\n ) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.baseSrc.value(\n new From((v) => {\n if (this.predicate(v)) {\n o.give(v);\n } else if (this.defaultValue !== undefined) {\n o.give(this.defaultValue);\n }\n }),\n );\n return this;\n }\n}\n","import { OwnerType, TheInformation } from \"../base\";\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 class FromCallback<T> extends TheInformation<T> {\n private theArgs: unknown[];\n\n public constructor(\n private waitForCb: (cb: (v: T) => any, ...args: unknown[]) => unknown,\n ...args: unknown[]\n ) {\n super(waitForCb);\n this.theArgs = args;\n }\n\n public value(o: OwnerType<T>): this {\n this.waitForCb(\n (v) => {\n o.give(v);\n },\n ...this.theArgs,\n );\n return this;\n }\n}\n","import { DestroyFunc } from \"../base/DestroyFunc\";\nimport { From, InformationType, Of, OwnerType, TheInformation } from \"../base\";\nimport { All } from \"./All\";\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 class FromEvent<T = unknown> extends TheInformation<T> {\n public constructor(\n private emitterSrc: InformationType<any>,\n private eventNameSrc: InformationType<string>,\n private subscribeMethodSrc: InformationType<string>,\n private unsubscribeMethodSrc: InformationType<string> = new Of(\"\"),\n ) {\n super(emitterSrc, eventNameSrc, subscribeMethodSrc, unsubscribeMethodSrc);\n }\n\n public value(o: OwnerType<T>): this {\n const a = new All(\n this.emitterSrc,\n this.eventNameSrc,\n this.subscribeMethodSrc,\n this.unsubscribeMethodSrc,\n );\n const handler = (v: T) => {\n o.give(v);\n };\n a.value(\n new From(([emitter, eventName, subscribe, unsubscribe]) => {\n emitter[subscribe](eventName, handler);\n this.addDep(\n new DestroyFunc(() => {\n emitter[unsubscribe](eventName, handler);\n }),\n );\n }),\n );\n return this;\n }\n}\n","import { OwnerType, TheInformation } from \"../base\";\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 class FromPromise<T> extends TheInformation<T> {\n public constructor(\n private p: Promise<T>,\n private errorOwner?: OwnerType,\n ) {\n super(p);\n }\n\n public value(o: OwnerType<T>): this {\n this.p\n .then((v) => {\n o.give(v);\n })\n .catch((e) => {\n this.errorOwner?.give(e);\n });\n return this;\n }\n}\n","import { From, OwnerType, TheInformation } from \"../base\";\nimport { isFilled } from \"../helpers\";\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 class Late<T> extends TheInformation<T> implements OwnerType<T> {\n private theOwner?: OwnerType<T>;\n private lateOwner = new From((v: T) => {\n this.theValue = v;\n this.notify();\n });\n\n public constructor(private theValue?: T) {\n super(theValue);\n }\n\n public value(o: OwnerType<T>): this {\n if (this.theOwner) {\n throw new Error(\n \"Late component gets new owner, when another was already connected!\",\n );\n }\n this.theOwner = o;\n this.notify();\n return this;\n }\n\n public give(v: T) {\n this.theValue = v;\n this.lateOwner.give(v);\n return this;\n }\n\n private notify() {\n if (isFilled(this.theValue) && this.theOwner) {\n this.theOwner.give(this.theValue);\n }\n return this;\n }\n}\n","import { InformationType, Lazy } from \"../base\";\n\n/**\n * Lazy with applied function to its results\n */\nexport class LazyApplied<T> extends Lazy<T> {\n public constructor(\n private baseLazy: Lazy,\n private applier: (i: InformationType) => InformationType<T>,\n ) {\n super();\n }\n\n public get(...args: InformationType[]): InformationType<T> {\n return this.applier(this.baseLazy.get(...args));\n }\n}\n","import { Lazy } from \"../base\";\n\n/**\n * Lazy instance from class constructor\n */\nexport class LazyClass<T> extends Lazy<T> {\n public constructor(constrFn: any) {\n const buildFn = (...args: unknown[]) => new constrFn(...args);\n super(buildFn);\n }\n}\n","import {\n From,\n InformationType,\n Lazy,\n Of,\n OwnerType,\n TheInformation,\n} from \"../base\";\nimport { All } from \"./All\";\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 class Map<T, TG> extends TheInformation<TG[]> {\n public constructor(\n private baseSrc: InformationType<T[]>,\n private targetSrc: Lazy<TG>,\n ) {\n super(baseSrc, targetSrc);\n }\n\n public value(o: OwnerType<TG[]>) {\n this.baseSrc.value(\n new From((v) => {\n const infos: InformationType<TG>[] = [];\n v.forEach((val) => {\n let valInfo: InformationType<T> | T = val;\n if (!(valInfo instanceof TheInformation)) {\n valInfo = new Of(valInfo);\n }\n const info = this.targetSrc.get(valInfo);\n infos.push(info);\n });\n const allI = new All(...infos);\n allI.value(o);\n }),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\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 class Once<T> extends TheInformation<T> {\n public constructor(private baseSrc: InformationType<T>) {\n super();\n }\n\n public value(o: OwnerType<T>): this {\n let isFilled = false;\n this.baseSrc.value(\n new From((v) => {\n if (!isFilled) {\n isFilled = true;\n o.give(v);\n }\n }),\n );\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\n\n/**\n * A component that takes one value at a time and returns\n * an array of all previous values\n * https://silentium-lab.github.io/silentium/#/en/information/sequence\n */\nexport class Sequence<T> extends TheInformation<T[]> {\n public constructor(private baseSrc: InformationType<T>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T[]>): this {\n const result: T[] = [];\n this.baseSrc.value(\n new From((v) => {\n result.push(v);\n o.give(result);\n }),\n );\n return this;\n }\n}\n","import { isFilled, OwnerPool } from \"../helpers\";\nimport {\n From,\n InformationType,\n OfFunc,\n OwnerType,\n TheInformation,\n} from \"../base\";\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 class Shared<T> extends TheInformation<T> implements OwnerType<T> {\n private lastValue: T | undefined;\n private ownersPool = new OwnerPool<T>();\n\n public constructor(\n private baseSrc: InformationType<T>,\n private stateless = false,\n ) {\n super(baseSrc);\n this.addDep(this.ownersPool);\n this.baseSrc.value(\n new From((v) => {\n this.ownersPool.owner().give(v);\n this.lastValue = v;\n }),\n );\n }\n\n public value(o: OwnerType<T>): this {\n const i = new OfFunc((g: OwnerType<T>) => {\n if (\n !this.stateless &&\n isFilled(this.lastValue) &&\n !this.ownersPool.has(g)\n ) {\n g.give(this.lastValue);\n }\n this.ownersPool.add(g);\n return () => {\n this.ownersPool.remove(g);\n };\n });\n i.value(o);\n this.addDep(i);\n\n return this;\n }\n\n public pool() {\n return this.ownersPool;\n }\n\n public give(value: T) {\n this.lastValue = value;\n this.ownersPool.owner().give(value);\n return this;\n }\n}\n","import { Shared } from \"../components/Shared\";\nimport { OwnerType, SourceType, TheInformation } from \"../base\";\n\nexport class SharedSource<T> extends TheInformation<T> implements OwnerType<T> {\n private sharedSrc: Shared<T>;\n\n public constructor(\n private baseSrc: SourceType<T>,\n stateless = false,\n ) {\n const sharedSrc = new Shared(baseSrc, stateless);\n super(sharedSrc);\n this.sharedSrc = sharedSrc;\n }\n\n public value(o: OwnerType<T>): this {\n this.sharedSrc.value(o);\n return this;\n }\n\n public give(value: T): this {\n this.baseSrc.give(value);\n this.sharedSrc.give(value);\n return this;\n }\n}\n","import { From, InformationType, OwnerType, TheInformation } from \"../base\";\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 class Stream<T> extends TheInformation<T> {\n public constructor(private baseSrc: InformationType<T[]>) {\n super(baseSrc);\n }\n\n public value(o: OwnerType<T>): this {\n this.baseSrc.value(\n new From((v) => {\n v.forEach((cv) => {\n o.give(cv);\n });\n }),\n );\n return this;\n }\n}\n"],"names":["__publicField"],"mappings":"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"}
|
package/package.json
CHANGED
package/src/components/Shared.ts
CHANGED
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
* a single another information object
|
|
13
13
|
* https://silentium-lab.github.io/silentium/#/en/information/pool
|
|
14
14
|
*/
|
|
15
|
-
export class Shared<T> extends TheInformation<T> {
|
|
15
|
+
export class Shared<T> extends TheInformation<T> implements OwnerType<T> {
|
|
16
16
|
private lastValue: T | undefined;
|
|
17
17
|
private ownersPool = new OwnerPool<T>();
|
|
18
18
|
|
|
@@ -53,4 +53,10 @@ export class Shared<T> extends TheInformation<T> {
|
|
|
53
53
|
public pool() {
|
|
54
54
|
return this.ownersPool;
|
|
55
55
|
}
|
|
56
|
+
|
|
57
|
+
public give(value: T) {
|
|
58
|
+
this.lastValue = value;
|
|
59
|
+
this.ownersPool.owner().give(value);
|
|
60
|
+
return this;
|
|
61
|
+
}
|
|
56
62
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Shared } from "../components/Shared";
|
|
2
|
-
import {
|
|
2
|
+
import { OwnerType, SourceType, TheInformation } from "../base";
|
|
3
3
|
|
|
4
4
|
export class SharedSource<T> extends TheInformation<T> implements OwnerType<T> {
|
|
5
5
|
private sharedSrc: Shared<T>;
|
|
6
6
|
|
|
7
7
|
public constructor(
|
|
8
|
-
private baseSrc:
|
|
8
|
+
private baseSrc: SourceType<T>,
|
|
9
9
|
stateless = false,
|
|
10
10
|
) {
|
|
11
11
|
const sharedSrc = new Shared(baseSrc, stateless);
|
|
@@ -19,7 +19,8 @@ export class SharedSource<T> extends TheInformation<T> implements OwnerType<T> {
|
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
public give(value: T): this {
|
|
22
|
-
this.
|
|
22
|
+
this.baseSrc.give(value);
|
|
23
|
+
this.sharedSrc.give(value);
|
|
23
24
|
return this;
|
|
24
25
|
}
|
|
25
26
|
}
|