silentium-components 0.0.82 → 0.0.83

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/silentium-components.cjs +130 -130
  3. package/dist/silentium-components.cjs.map +1 -1
  4. package/dist/silentium-components.d.ts +9 -9
  5. package/dist/silentium-components.js +131 -131
  6. package/dist/silentium-components.js.map +1 -1
  7. package/dist/silentium-components.min.js +1 -1
  8. package/dist/silentium-components.min.mjs +1 -1
  9. package/dist/silentium-components.min.mjs.map +1 -1
  10. package/dist/silentium-components.mjs +131 -131
  11. package/dist/silentium-components.mjs.map +1 -1
  12. package/package.json +2 -2
  13. package/src/behaviors/Branch._main.test.ts +2 -2
  14. package/src/behaviors/Branch._values.test.ts +2 -2
  15. package/src/behaviors/Branch.branchesDontAffectResult.test.ts +2 -2
  16. package/src/behaviors/Branch.dontRespondAfterRespond.test.ts +5 -5
  17. package/src/behaviors/Branch.ts +5 -5
  18. package/src/behaviors/BranchLazy._main.test.ts +4 -4
  19. package/src/behaviors/BranchLazy.ts +8 -8
  20. package/src/behaviors/Const.test.ts +3 -3
  21. package/src/behaviors/Const.ts +5 -5
  22. package/src/behaviors/Deadline._main.test.ts +2 -2
  23. package/src/behaviors/Deadline._value.test.ts +3 -3
  24. package/src/behaviors/Deadline.ts +9 -9
  25. package/src/behaviors/Deferred.test.ts +3 -3
  26. package/src/behaviors/Deferred.ts +5 -11
  27. package/src/behaviors/Detached.test.ts +3 -3
  28. package/src/behaviors/Detached.ts +2 -2
  29. package/src/behaviors/Dirty.test.ts +2 -2
  30. package/src/behaviors/Dirty.ts +5 -5
  31. package/src/behaviors/Loading.test.ts +2 -2
  32. package/src/behaviors/Loading.ts +6 -6
  33. package/src/behaviors/Lock.test.ts +2 -2
  34. package/src/behaviors/Lock.ts +5 -5
  35. package/src/behaviors/Memo.test.ts +4 -4
  36. package/src/behaviors/Memo.ts +5 -5
  37. package/src/behaviors/OnlyChanged.test.ts +3 -3
  38. package/src/behaviors/OnlyChanged.ts +5 -5
  39. package/src/behaviors/Part.test.ts +3 -3
  40. package/src/behaviors/Part.ts +5 -5
  41. package/src/behaviors/Path._keyRaw.test.ts +2 -2
  42. package/src/behaviors/Path._main.test.ts +2 -2
  43. package/src/behaviors/Path.index.test.ts +2 -2
  44. package/src/behaviors/Path.nested.test.ts +2 -2
  45. package/src/behaviors/Path.ts +5 -5
  46. package/src/behaviors/Polling.ts +5 -5
  47. package/src/behaviors/Shot._main.test.ts +3 -3
  48. package/src/behaviors/Shot._onlyChanged.test.ts +3 -3
  49. package/src/behaviors/Shot.ts +5 -11
  50. package/src/behaviors/Task.test.ts +5 -5
  51. package/src/behaviors/Task.ts +2 -2
  52. package/src/behaviors/Tick.test.ts +2 -2
  53. package/src/behaviors/Tick.ts +5 -5
  54. package/src/behaviors/Transaction.ts +6 -6
  55. package/src/boolean/And.test.ts +2 -2
  56. package/src/boolean/And.ts +5 -5
  57. package/src/boolean/Bool.test.ts +2 -2
  58. package/src/boolean/Bool.ts +2 -2
  59. package/src/boolean/Not.test.ts +2 -2
  60. package/src/boolean/Not.ts +5 -5
  61. package/src/boolean/Or.test.ts +2 -2
  62. package/src/boolean/Or.ts +5 -5
  63. package/src/formats/FromJson.ts +6 -6
  64. package/src/formats/ToJson.ts +6 -6
  65. package/src/lists/First.test.ts +2 -2
  66. package/src/lists/First.ts +2 -2
  67. package/src/navigation/Router._destroy.test.ts +7 -7
  68. package/src/navigation/Router._firstMatch.test.ts +7 -7
  69. package/src/navigation/Router._main.test.ts +7 -7
  70. package/src/navigation/Router._nested.test.ts +16 -16
  71. package/src/navigation/Router.ts +11 -11
  72. package/src/strings/Concatenated.test.ts +2 -2
  73. package/src/strings/Concatenated.ts +5 -5
  74. package/src/strings/Template._main.test.ts +3 -3
  75. package/src/strings/Template._place.test.ts +2 -2
  76. package/src/strings/Template.ts +3 -3
  77. package/src/structures/HashTable.test.ts +2 -2
  78. package/src/structures/HashTable.ts +5 -5
  79. package/src/structures/Record._main.test.ts +2 -2
  80. package/src/structures/Record._mixed.test.ts +2 -2
  81. package/src/structures/Record.concatenated.test.ts +4 -4
  82. package/src/structures/Record.nested.test.ts +2 -2
  83. package/src/structures/Record.ts +5 -5
  84. package/src/system/RegexpMatch._group.test.ts +2 -2
  85. package/src/system/RegexpMatch._main.test.ts +2 -2
  86. package/src/system/RegexpMatch.ts +5 -5
  87. package/src/system/RegexpMatched.test.ts +2 -2
  88. package/src/system/RegexpMatched.ts +5 -5
  89. package/src/system/RegexpReplaced.test.ts +2 -2
  90. package/src/system/RegexpReplaced.ts +5 -5
  91. package/src/system/Set.test.ts +2 -2
  92. package/src/system/Set.ts +5 -5
@@ -1 +1 @@
1
- {"version":3,"file":"silentium-components.cjs","sources":["../src/behaviors/Branch.ts","../src/behaviors/BranchLazy.ts","../src/behaviors/Const.ts","../src/behaviors/Deadline.ts","../src/behaviors/Deferred.ts","../src/behaviors/Detached.ts","../src/behaviors/Dirty.ts","../src/behaviors/Loading.ts","../src/behaviors/Lock.ts","../src/behaviors/Memo.ts","../src/behaviors/OnlyChanged.ts","../src/behaviors/Part.ts","../src/behaviors/Path.ts","../src/behaviors/Polling.ts","../src/behaviors/Shot.ts","../src/behaviors/Task.ts","../src/behaviors/Tick.ts","../src/behaviors/Transaction.ts","../src/structures/HashTable.ts","../src/structures/Record.ts","../src/strings/Concatenated.ts","../src/strings/Template.ts","../src/system/RegexpMatched.ts","../src/system/RegexpReplaced.ts","../src/system/RegexpMatch.ts","../src/system/Set.ts","../src/navigation/Router.ts","../src/boolean/And.ts","../src/boolean/Or.ts","../src/boolean/Not.ts","../src/boolean/Bool.ts","../src/formats/FromJson.ts","../src/formats/ToJson.ts","../src/lists/First.ts"],"sourcesContent":["import {\n ActualMessage,\n MaybeMessage,\n Message,\n Primitive,\n Transport,\n} from \"silentium\";\n\n/**\n * Allows switching between left and right messages depending on condition\n * https://silentium-lab.github.io/silentium-components/#/behaviors/branch\n */\nexport function Branch<Then, Else>(\n _condition: MaybeMessage<boolean>,\n _left: MaybeMessage<Then>,\n _right?: MaybeMessage<Else>,\n) {\n const $condition = ActualMessage(_condition);\n const $left = ActualMessage(_left);\n const $right = _right && ActualMessage(_right);\n return Message<Then | Else>((transport) => {\n const left = Primitive($left);\n let right: ReturnType<typeof Primitive<Else>>;\n if ($right !== undefined) {\n right = Primitive($right);\n }\n $condition.to(\n Transport((v) => {\n let result: Then | Else | null = null;\n if (v) {\n result = left.primitive();\n } else if (right) {\n result = right.primitive();\n }\n if (result !== null) {\n transport.use(result);\n }\n }),\n );\n });\n}\n","import {\n DestroyableType,\n DestroyContainer,\n Message,\n MessageType,\n Transport,\n TransportType,\n} from \"silentium\";\n\n/**\n * Depending on the $condition message,\n * creates a new left or right message.\n * When condition changes, old messages are destroyed\n * and new ones are created.\n */\nexport function BranchLazy<Then, Else>(\n $condition: MessageType<boolean>,\n $left: TransportType<void, MessageType<Then>>,\n $right?: TransportType<void, MessageType<Else>>,\n): MessageType<Then | Else> & DestroyableType {\n return Message((transport) => {\n const dc = DestroyContainer();\n const destructor = () => {\n dc.destroy();\n };\n $condition.to(\n Transport((v) => {\n destructor();\n let instance: MessageType<Then | Else> | undefined;\n if (v) {\n instance = $left.use();\n } else if ($right) {\n instance = $right.use();\n }\n if (instance !== undefined) {\n instance.to(transport);\n dc.add(instance);\n }\n }),\n );\n return destructor;\n });\n}\n","import { Message, MessageType, Transport } from \"silentium\";\n\n/**\n * Constant value that will be\n * returned on each value from\n * the $trigger message\n */\nexport function Constant<T>(\n permanent: T,\n $trigger: MessageType,\n): MessageType<T> {\n return Message((transport) => {\n $trigger.to(\n Transport(() => {\n transport.use(permanent);\n }),\n );\n });\n}\n","import {\n ActualMessage,\n Filtered,\n MaybeMessage,\n Message,\n MessageType,\n Shared,\n Transport,\n TransportType,\n} from \"silentium\";\n\n/**\n * Will return an error via error transport if\n * time runs out from $timeout; if $base manages to\n * respond before $timeout then the value from base will be returned\n */\nexport function Deadline<T>(\n error: TransportType<Error>,\n $base: MessageType<T>,\n _timeout: MaybeMessage<number>,\n) {\n const $timeout = ActualMessage(_timeout);\n return Message<T>((transport) => {\n let timer: ReturnType<typeof setTimeout> | number = 0;\n const base = Shared($base, true);\n $timeout.to(\n Transport((timeout) => {\n if (timer) {\n clearTimeout(timer);\n }\n let timeoutReached = false;\n\n timer = setTimeout(() => {\n if (timeoutReached) {\n return;\n }\n timeoutReached = true;\n error.use(new Error(\"Timeout reached in Deadline\"));\n }, timeout);\n\n const f = Filtered(base, () => !timeoutReached);\n f.to(transport);\n\n base.to(\n Transport(() => {\n timeoutReached = true;\n }),\n );\n }),\n );\n });\n}\n","import {\n isFilled,\n Message,\n MessageType,\n Primitive,\n Transport,\n} from \"silentium\";\n\n/**\n * Defer one source after another, gives values Of baseSrc only when triggerSrc responds\n * https://silentium-lab.github.io/silentium-components/#/behaviors/deferred\n */\nexport function Deferred<T>(\n $base: MessageType<T>,\n $trigger: MessageType<unknown>,\n) {\n return Message((transport) => {\n const base = Primitive($base);\n $trigger.to(\n Transport(() => {\n const value = base.primitive();\n if (isFilled(value)) {\n transport.use(value);\n }\n }),\n );\n });\n}\n","import { isFilled, Message, MessageType, Primitive } from \"silentium\";\n\n/**\n * Message separate from the base\n * allows to take one value from the base\n * but not react to new values of the base message\n */\nexport function Detached<T>($base: MessageType<T>): MessageType<T> {\n return Message((transport) => {\n const v = Primitive($base).primitive();\n if (isFilled(v)) {\n transport.use(v);\n }\n });\n}\n","import {\n All,\n Applied,\n Late,\n MessageType,\n SourceType,\n Transport,\n TransportType,\n} from \"silentium\";\n\n/**\n * Takes source and remember it first value\n * returns new record, what will contain only fields what was changed\n * https://silentium-lab.github.io/silentium-components/#/behaviors/dirty\n */\nexport function Dirty<T>(\n $base: MessageType<T>,\n keep: string[] = [],\n exclude: string[] = [],\n cloner?: (v: T) => T,\n): SourceType<T> {\n return new DirtySource($base, keep, exclude, cloner);\n}\n\nclass DirtySource<T> implements SourceType<T> {\n private $comparing = Late<T>();\n private cloner: (v: T) => T;\n\n public constructor(\n private $base: MessageType<T>,\n private keep: string[] = [],\n private exclude: string[] = [],\n cloner?: (v: T) => T,\n ) {\n if (cloner === undefined) {\n this.cloner = (value) => JSON.parse(JSON.stringify(value));\n } else {\n this.cloner = cloner;\n }\n }\n\n public to(transport: TransportType<T>) {\n const $comparing = Applied(this.$comparing, this.cloner);\n All($comparing, this.$base).to(\n Transport(([comparing, base]) => {\n if (!comparing) {\n return;\n }\n transport.use(\n Object.fromEntries(\n Object.entries(comparing).filter(([key, value]) => {\n if (this.keep.includes(key)) {\n return true;\n }\n if (this.exclude.includes(key)) {\n return false;\n }\n return value !== (base as Record<string, unknown>)[key];\n }),\n ) as T,\n );\n }),\n );\n return this;\n }\n\n public use(v: T) {\n this.$comparing.use(v);\n return this;\n }\n}\n","import { Message, MessageType, Transport } from \"silentium\";\n\n/**\n * Representation Of loading process\n * first message begins loading\n * second message stops loading\n * https://silentium-lab.github.io/silentium-components/#/behaviors/loading\n */\nexport function Loading(\n $loadingStart: MessageType<unknown>,\n $loadingFinish: MessageType<unknown>,\n) {\n return Message<boolean>((transport) => {\n $loadingStart.to(Transport(() => transport.use(true)));\n $loadingFinish.to(Transport(() => transport.use(false)));\n });\n}\n","import { Filtered, Message, MessageType, Transport } from \"silentium\";\n\n/**\n * Allows locking messages\n * if a $lock message arrives\n * https://silentium-lab.github.io/silentium-components/#/behaviors/lock\n */\nexport function Lock<T>($base: MessageType<T>, $lock: MessageType<boolean>) {\n return Message<T>((transport) => {\n let locked = false;\n $lock.to(\n Transport((newLock) => {\n locked = newLock;\n }),\n );\n const i = Filtered($base, () => !locked);\n i.to(transport);\n });\n}\n","import { isFilled, Message, MessageType, Transport } from \"silentium\";\n\n/**\n * Didn't respond if new value Of baseSrc equals to old value\n * https://silentium-lab.github.io/silentium-components/#/behaviors/memo\n */\nexport function Memo<T>($base: MessageType<T>) {\n return Message<T>((transport) => {\n let last: T | null = null;\n $base.to(\n Transport((v) => {\n if (v !== last && isFilled(v)) {\n transport.use(v);\n last = v;\n }\n }),\n );\n });\n}\n","import { Message, MessageType, Transport } from \"silentium\";\n\n/**\n * Represents source what was changed at least once\n * https://silentium-lab.github.io/silentium-components/#/behaviors/only-changed\n */\nexport function OnlyChanged<T>($base: MessageType<T>) {\n return Message<T>((transport) => {\n let first = false;\n $base.to(\n Transport((v) => {\n if (first === false) {\n first = true;\n } else {\n transport.use(v);\n }\n }),\n );\n });\n}\n","import {\n ActualMessage,\n All,\n isFilled,\n MaybeMessage,\n MessageType,\n Primitive,\n Shared,\n SharedSource,\n SourceType,\n Transport,\n TransportType,\n} from \"silentium\";\n\n/**\n * Return source Of record path\n * https://silentium-lab.github.io/silentium-components/#/behaviors/path\n */\nexport function Part<\n R,\n T extends object | Array<any> = any,\n K extends string = any,\n>($base: SourceType<T>, $key: MaybeMessage<K>): SourceType<R> {\n return new PartImpl($base, ActualMessage($key));\n}\n\nclass PartImpl<R, T extends object | Array<any>, K extends string = any>\n implements SourceType<R>\n{\n private $base: SourceType<T>;\n private $keyed: MessageType<K>;\n\n public constructor($base: SourceType<T>, $key: MessageType<K>) {\n this.$base = SharedSource($base);\n this.$keyed = Shared($key);\n }\n\n public to(transport: TransportType<R, null>): this {\n All(this.$base, this.$keyed).to(\n Transport(([base, keyed]) => {\n const keys = keyed.split(\".\");\n let value: unknown = base;\n keys.forEach((key) => {\n value = (value as Record<string, unknown>)[key];\n });\n if (value !== undefined && value !== base) {\n transport.use(value as R);\n }\n }),\n );\n return this;\n }\n\n public use(value: R): this {\n const key = Primitive(this.$keyed);\n if (isFilled(key)) {\n const base = Primitive(this.$base);\n this.$base.use({\n ...base.primitiveWithException(),\n [key.primitiveWithException()]: value,\n } as T);\n }\n return this;\n }\n}\n","import {\n ActualMessage,\n All,\n MaybeMessage,\n Message,\n MessageType,\n Transport,\n} from \"silentium\";\n\n/**\n * Return source Of record path\n * https://silentium-lab.github.io/silentium-components/#/behaviors/path\n */\nexport function Path<\n R,\n T extends object | Array<any> = any,\n K extends string = any,\n>($base: MessageType<T>, _keyed: MaybeMessage<K>) {\n const $keyed = ActualMessage(_keyed);\n return Message<R>((transport) => {\n All($base, $keyed).to(\n Transport(([base, keyed]) => {\n const keys = keyed.split(\".\");\n let value: unknown = base;\n keys.forEach((key) => {\n value = (value as Record<string, unknown>)[key];\n });\n if (value !== undefined && value !== base) {\n transport.use(value as R);\n }\n }),\n );\n });\n}\n","import { Message, MessageType, Transport } from \"silentium\";\n\n/**\n * Active polling of $base message\n * synchronized with $trigger message\n */\nexport function Polling<T>($base: MessageType<T>, $trigger: MessageType<T>) {\n return Message<T>((transport) => {\n $trigger.to(\n Transport(() => {\n $base.to(transport);\n }),\n );\n });\n}\n","import {\n isFilled,\n Message,\n MessageType,\n Primitive,\n Transport,\n} from \"silentium\";\n\n/**\n * Helps to represent only last fresh value Of some source, refreshing controls by shotSrc\n * https://silentium-lab.github.io/silentium-components/#/behaviors/shot\n */\nexport function Shot<T>($target: MessageType<T>, $trigger: MessageType) {\n return Message<T>((transport) => {\n const targetSync = Primitive($target);\n targetSync.primitive();\n $trigger.to(\n Transport(() => {\n const value = targetSync.primitive();\n if (isFilled(value)) {\n transport.use(value);\n }\n }),\n );\n });\n}\n","import { ExecutorApplied, Message, MessageType } from \"silentium\";\n\n/**\n * Defer a message to the event loop\n * so that it executes once within\n * a certain timer firing interval\n */\nexport function Task<T>(baseSrc: MessageType<T>, delay: number = 0) {\n return Message<T>((transport) => {\n let prevTimer: unknown | null = null;\n ExecutorApplied(baseSrc, (fn) => {\n return (v) => {\n if (prevTimer) {\n clearTimeout(prevTimer as number);\n }\n prevTimer = setTimeout(() => {\n fn(v);\n }, delay);\n };\n }).to(transport);\n });\n}\n","import { Message, MessageType, Transport } from \"silentium\";\n\n/**\n * Accumulates the last value Of the source and returns one result once per tick\n * https://silentium-lab.github.io/silentium-components/#/behaviors/tick\n */\nexport function Tick<T>($base: MessageType<T>) {\n return Message((transport) => {\n let microtaskScheduled = false;\n let lastValue: T | null = null;\n\n const scheduleMicrotask = () => {\n microtaskScheduled = true;\n queueMicrotask(() => {\n microtaskScheduled = false;\n if (lastValue !== null) {\n transport.use(lastValue);\n lastValue = null;\n }\n });\n };\n\n $base.to(\n Transport((v) => {\n lastValue = v;\n if (!microtaskScheduled) {\n scheduleMicrotask();\n }\n }),\n );\n });\n}\n","import {\n ConstructorType,\n DestroyableType,\n LateShared,\n Message,\n MessageType,\n Of,\n Transport,\n} from \"silentium\";\nimport { Detached } from \"../behaviors/Detached\";\n\n/**\n * Do something on message value.\n * Each message value will create new builder instance\n */\nexport function Transaction<T, R = unknown>(\n $base: MessageType<T>,\n builder: ConstructorType<\n [MessageType<T>, ...MessageType<any>[]],\n MessageType<R>\n >,\n ...args: MessageType[]\n) {\n return Message<R>((transport) => {\n const $res = LateShared<R>();\n const destructors: DestroyableType[] = [];\n\n $base.to(\n Transport((v) => {\n const $msg = builder(Of(v), ...args.map((a) => Detached(a)));\n destructors.push($msg as unknown as DestroyableType);\n $msg.to($res);\n }),\n );\n $res.to(transport);\n\n return () => {\n destructors.forEach((d) => d?.destroy());\n destructors.length = 0;\n };\n });\n}\n","import { Message, MessageType, Transport } from \"silentium\";\n\n/**\n * By receiving a message with a key and value, collects a table\n * of all previously received messages in the form of a structure\n * https://silentium-lab.github.io/silentium-components/#/structures/hash-table\n */\nexport function HashTable<T>($base: MessageType<[string, unknown]>) {\n return Message<T>((transport) => {\n const record: Record<string, unknown> = {};\n\n $base.to(\n Transport(([key, value]) => {\n record[key] = value;\n transport.use(record as T);\n }),\n );\n });\n}\n","import { All, isMessage, Message, MessageType, Of, Transport } from \"silentium\";\n\ntype UnWrap<T> = T extends MessageType<infer U> ? U : T;\n\n/**\n * Returns record Of data from record Of sources\n * https://silentium-lab.github.io/silentium-components/#/structures/record\n */\nexport function Record<T>(record: Record<string, T>) {\n return Message<Record<string, UnWrap<T>>>((transport) => {\n const keys = Object.keys(record);\n keys.forEach((key) => {\n if (!isMessage(record[key])) {\n record[key] = Of(record[key]) as any;\n }\n });\n All(...(Object.values(record) as any)).to(\n Transport((entries) => {\n const record: Record<string, any> = {};\n entries.forEach((entry, index) => {\n record[keys[index]] = entry;\n });\n transport.use(record);\n }),\n );\n });\n}\n","import { All, Message, MessageType, Of, Transport } from \"silentium\";\n\n/**\n * Join sources Of strings to one source\n * https://silentium-lab.github.io/silentium-components/#/string/concatenated\n */\nexport function Concatenated(\n sources: MessageType<string>[],\n joinPartSrc: MessageType<string> = Of(\"\"),\n) {\n return Message<string>((transport) => {\n All(joinPartSrc, ...sources).to(\n Transport(([joinPart, ...strings]) => {\n transport.use(strings.join(joinPart));\n }),\n );\n });\n}\n","import {\n All,\n Applied,\n DestroyableType,\n DestroyContainer,\n isDestroyable,\n MessageType,\n Of,\n TransportType,\n} from \"silentium\";\nimport { Record } from \"../structures\";\n\n/**\n * Allows creating a string template with\n * variables inserted into it; when variables change,\n * the template value will change\n */\nexport function Template(\n $src: MessageType<string> = Of(\"\"),\n $places: MessageType<Record<string, unknown>> = Of({}),\n) {\n return new TemplateImpl($src, $places);\n}\n\nclass TemplateImpl implements MessageType<string>, DestroyableType {\n private dc = DestroyContainer();\n private vars: Record<string, MessageType> = {\n $TPL: Of(\"$TPL\"),\n };\n\n public constructor(\n private $src: MessageType<string> = Of(\"\"),\n private $places: MessageType<Record<string, unknown>> = Of({}),\n ) {}\n\n public to(transport: TransportType<string>): this {\n const $vars = Record(this.vars);\n Applied(All(this.$src, this.$places, $vars), ([base, rules, vars]) => {\n Object.entries(rules).forEach(([ph, val]) => {\n base = base.replaceAll(ph, String(val));\n });\n Object.entries(vars).forEach(([ph, val]) => {\n base = base.replaceAll(ph, String(val));\n });\n\n return base;\n }).to(transport);\n return this;\n }\n\n public template(value: string) {\n this.$src = Of(value);\n }\n\n /**\n * Ability to register variable\n * in concrete place Of template\n */\n public var(src: MessageType<string>) {\n const places = Object.keys(this.vars).length;\n const varName = `$var${places}`;\n if (isDestroyable(src)) {\n this.dc.add(src);\n }\n this.vars[varName] = src;\n return varName;\n }\n\n public destroy(): this {\n this.dc.destroy();\n return this;\n }\n}\n","import { All, Message, MessageType, Of, Transport } from \"silentium\";\n\n/**\n * Boolean source what checks what string matches pattern\n * https://silentium-lab.github.io/silentium-components/#/system/regexp-matched\n */\nexport function RegexpMatched(\n patternSrc: MessageType<string>,\n valueSrc: MessageType<string>,\n flagsSrc: MessageType<string> = Of(\"\"),\n) {\n return Message<boolean>((transport) => {\n All(patternSrc, valueSrc, flagsSrc).to(\n Transport(([pattern, value, flags]) => {\n transport.use(new RegExp(pattern, flags).test(value));\n }),\n );\n });\n}\n","import { All, Message, MessageType, Of, Transport } from \"silentium\";\n\n/**\n * Returns string replaced by regular expression pattern\n * https://silentium-lab.github.io/silentium-components/#/system/regexp-replaced\n */\nexport function RegexpReplaced(\n valueSrc: MessageType<string>,\n patternSrc: MessageType<string>,\n replaceValueSrc: MessageType<string>,\n flagsSrc: MessageType<string> = Of(\"\"),\n) {\n return Message<string>((transport) => {\n All(patternSrc, valueSrc, replaceValueSrc, flagsSrc).to(\n Transport(([pattern, value, replaceValue, flags]) => {\n transport.use(\n String(value).replace(new RegExp(pattern, flags), replaceValue),\n );\n }),\n );\n });\n}\n","import { All, Message, MessageType, Of, Transport } from \"silentium\";\n\n/**\n * First match Of regexp\n * https://silentium-lab.github.io/silentium-components/#/system/regexp-matched\n */\nexport function RegexpMatch(\n patternSrc: MessageType<string>,\n valueSrc: MessageType<string>,\n flagsSrc: MessageType<string> = Of(\"\"),\n) {\n return Message<string[]>((transport) => {\n All(patternSrc, valueSrc, flagsSrc).to(\n Transport(([pattern, value, flags]) => {\n const result = new RegExp(pattern, flags).exec(value);\n transport.use(result ?? []);\n }),\n );\n });\n}\n","import { All, Message, MessageType, Transport } from \"silentium\";\n\n/**\n * Ability to mutate some object, helpful when integrate to procedure systems\n * https://silentium-lab.github.io/silentium-components/#/system/set\n */\nexport function Set<T extends Record<string, unknown>>(\n baseSrc: MessageType<T>,\n keySrc: MessageType<string>,\n valueSrc: MessageType<unknown>,\n) {\n return Message<T>((transport) => {\n All(baseSrc, keySrc, valueSrc).to(\n Transport(([base, key, value]) => {\n (base as Record<string, unknown>)[key] = value;\n transport.use(base);\n }),\n );\n });\n}\n","import {\n All,\n DestroyableType,\n DestroyContainer,\n Message,\n MessageType,\n Of,\n Transport,\n TransportType,\n} from \"silentium\";\nimport { RegexpMatched } from \"../system\";\n\nexport interface Route<T> {\n pattern: string;\n patternFlags?: string;\n message: TransportType<void, MessageType<T>>;\n}\n\n/**\n * Router component what will return template if url matches pattern\n * https://silentium-lab.github.io/silentium-components/#/navigation/router\n */\nexport function Router<T = \"string\">(\n $url: MessageType<string>,\n $routes: MessageType<Route<T>[]>,\n $default: TransportType<void, MessageType<T>>,\n): MessageType<T> & DestroyableType {\n return Message<T>((transport) => {\n const dc = DestroyContainer();\n const destructor = () => {\n dc.destroy();\n };\n All($routes, $url).to(\n Transport(([routes, url]) => {\n destructor();\n const $matches = All(\n ...routes.map((r) =>\n RegexpMatched(\n Of(r.pattern),\n Of(url),\n r.patternFlags ? Of(r.patternFlags) : undefined,\n ),\n ),\n );\n $matches.to(\n Transport((matches) => {\n const index = matches.findIndex((v) => v === true);\n\n if (index === -1) {\n const instance = $default.use();\n dc.add(instance);\n instance.to(transport);\n }\n\n if (index > -1) {\n const instance = routes[index].message.use();\n dc.add(instance);\n instance.to(transport);\n }\n }),\n );\n }),\n );\n\n return destructor;\n });\n}\n","import { All, Message, MessageType, Transport } from \"silentium\";\n\n/**\n * Logical AND over two messages\n * https://silentium-lab.github.io/silentium-components/#/boolean/and\n */\nexport function And($one: MessageType<boolean>, $two: MessageType<boolean>) {\n return Message<boolean>((transport) => {\n All($one, $two).to(\n Transport(([one, two]) => {\n transport.use(one && two);\n }),\n );\n });\n}\n","import { All, Message, MessageType, Transport } from \"silentium\";\n\n/**\n * Logical OR over two messages\n * https://silentium-lab.github.io/silentium-components/#/boolean/or\n */\nexport function Or($one: MessageType<boolean>, $two: MessageType<boolean>) {\n return Message<boolean>((transport) => {\n All($one, $two).to(\n Transport(([one, two]) => {\n transport.use(one || two);\n }),\n );\n });\n}\n","import { Message, MessageType, Transport } from \"silentium\";\n\n/**\n * Logical negation of message\n * https://silentium-lab.github.io/silentium-components/#/boolean/not\n */\nexport function Not($base: MessageType<boolean>) {\n return Message<boolean>((transport) => {\n $base.to(\n Transport((v) => {\n transport.use(!v);\n }),\n );\n });\n}\n","import { Applied, Message, MessageType } from \"silentium\";\n\n/**\n * Convert Any source to boolean source\n * https://silentium-lab.github.io/silentium-components/#/boolean/bool\n */\nexport function Bool($base: MessageType) {\n return Message<boolean>((transport) => {\n Applied($base, Boolean).to(transport);\n });\n}\n","import { Message, MessageType, Transport, TransportType } from \"silentium\";\n\n/**\n * Represents object from json\n */\nexport function FromJson<T = Record<string, unknown>>(\n $json: MessageType<string>,\n error?: TransportType,\n) {\n return Message<T>((transport) => {\n $json.to(\n Transport((json) => {\n try {\n transport.use(JSON.parse(json));\n } catch (e) {\n error?.use(new Error(`Failed to parse JSON: ${e}`));\n }\n }),\n );\n });\n}\n","import { Message, MessageType, Transport, TransportType } from \"silentium\";\n\n/**\n * Represents json from object\n */\nexport function ToJson($data: MessageType, error?: TransportType) {\n return Message<string>((transport) => {\n $data.to(\n Transport((data: unknown) => {\n try {\n transport.use(JSON.stringify(data));\n } catch {\n error?.use(new Error(\"Failed to convert to JSON\"));\n }\n }),\n );\n });\n}\n","import { Applied, Message, MessageType } from \"silentium\";\n\n/**\n * Represents the first element Of an array.\n */\nexport function First<T extends Array<unknown>>($base: MessageType<T>) {\n return Message<T[0]>((transport) => {\n Applied($base, (a) => a[0]).to(transport);\n });\n}\n"],"names":["ActualMessage","Message","Primitive","Transport","DestroyContainer","Shared","Filtered","isFilled","__publicField","Late","Applied","All","SharedSource","ExecutorApplied","LateShared","Of","isMessage","record","isDestroyable"],"mappings":"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"}
1
+ {"version":3,"file":"silentium-components.cjs","sources":["../src/behaviors/Branch.ts","../src/behaviors/BranchLazy.ts","../src/behaviors/Const.ts","../src/behaviors/Deadline.ts","../src/behaviors/Deferred.ts","../src/behaviors/Detached.ts","../src/behaviors/Dirty.ts","../src/behaviors/Loading.ts","../src/behaviors/Lock.ts","../src/behaviors/Memo.ts","../src/behaviors/OnlyChanged.ts","../src/behaviors/Part.ts","../src/behaviors/Path.ts","../src/behaviors/Polling.ts","../src/behaviors/Shot.ts","../src/behaviors/Task.ts","../src/behaviors/Tick.ts","../src/behaviors/Transaction.ts","../src/structures/HashTable.ts","../src/structures/Record.ts","../src/strings/Concatenated.ts","../src/strings/Template.ts","../src/system/RegexpMatched.ts","../src/system/RegexpReplaced.ts","../src/system/RegexpMatch.ts","../src/system/Set.ts","../src/navigation/Router.ts","../src/boolean/And.ts","../src/boolean/Or.ts","../src/boolean/Not.ts","../src/boolean/Bool.ts","../src/formats/FromJson.ts","../src/formats/ToJson.ts","../src/lists/First.ts"],"sourcesContent":["import {\n ActualMessage,\n MaybeMessage,\n Message,\n Primitive,\n Tap,\n} from \"silentium\";\n\n/**\n * Allows switching between left and right messages depending on condition\n * https://silentium-lab.github.io/silentium-components/#/behaviors/branch\n */\nexport function Branch<Then, Else>(\n _condition: MaybeMessage<boolean>,\n _left: MaybeMessage<Then>,\n _right?: MaybeMessage<Else>,\n) {\n const $condition = ActualMessage(_condition);\n const $left = ActualMessage(_left);\n const $right = _right && ActualMessage(_right);\n return Message<Then | Else>(function () {\n const left = Primitive($left);\n let right: ReturnType<typeof Primitive<Else>>;\n if ($right !== undefined) {\n right = Primitive($right);\n }\n $condition.pipe(\n Tap((v) => {\n let result: Then | Else | null = null;\n if (v) {\n result = left.primitive();\n } else if (right) {\n result = right.primitive();\n }\n if (result !== null) {\n this.use(result);\n }\n }),\n );\n });\n}\n","import {\n DestroyableType,\n DestroyContainer,\n Message,\n MessageType,\n Tap,\n TapType,\n} from \"silentium\";\n\n/**\n * Depending on the $condition message,\n * creates a new left or right message.\n * When condition changes, old messages are destroyed\n * and new ones are created.\n */\nexport function BranchLazy<Then, Else>(\n $condition: MessageType<boolean>,\n $left: TapType<void, MessageType<Then>>,\n $right?: TapType<void, MessageType<Else>>,\n): MessageType<Then | Else> & DestroyableType {\n return Message(function () {\n const dc = DestroyContainer();\n const destructor = () => {\n dc.destroy();\n };\n $condition.pipe(\n Tap((v) => {\n destructor();\n let instance: MessageType<Then | Else> | undefined;\n if (v) {\n instance = $left.use();\n } else if ($right) {\n instance = $right.use();\n }\n if (instance !== undefined) {\n instance.pipe(this);\n dc.add(instance);\n }\n }),\n );\n return destructor;\n });\n}\n","import { Message, MessageType, Tap } from \"silentium\";\n\n/**\n * Constant value that will be\n * returned on each value from\n * the $trigger message\n */\nexport function Constant<T>(\n permanent: T,\n $trigger: MessageType,\n): MessageType<T> {\n return Message(function () {\n $trigger.pipe(\n Tap(() => {\n this.use(permanent);\n }),\n );\n });\n}\n","import {\n ActualMessage,\n Filtered,\n MaybeMessage,\n Message,\n MessageType,\n Shared,\n Tap,\n TapType,\n} from \"silentium\";\n\n/**\n * Will return an error via error transport if\n * time runs out from $timeout; if $base manages to\n * respond before $timeout then the value from base will be returned\n */\nexport function Deadline<T>(\n error: TapType<Error>,\n $base: MessageType<T>,\n _timeout: MaybeMessage<number>,\n) {\n const $timeout = ActualMessage(_timeout);\n return Message<T>(function () {\n let timer: ReturnType<typeof setTimeout> | number = 0;\n const base = Shared($base, true);\n $timeout.pipe(\n Tap((timeout) => {\n if (timer) {\n clearTimeout(timer);\n }\n let timeoutReached = false;\n\n timer = setTimeout(() => {\n if (timeoutReached) {\n return;\n }\n timeoutReached = true;\n error.use(new Error(\"Timeout reached in Deadline\"));\n }, timeout);\n\n const f = Filtered(base, () => !timeoutReached);\n f.pipe(this);\n\n base.pipe(\n Tap(() => {\n timeoutReached = true;\n }),\n );\n }),\n );\n });\n}\n","import { isFilled, Message, MessageType, Primitive, Tap } from \"silentium\";\n\n/**\n * Defer one source after another, gives values Of baseSrc only when triggerSrc responds\n * https://silentium-lab.github.io/silentium-components/#/behaviors/deferred\n */\nexport function Deferred<T>(\n $base: MessageType<T>,\n $trigger: MessageType<unknown>,\n) {\n return Message(function () {\n const base = Primitive($base);\n $trigger.pipe(\n Tap(() => {\n const value = base.primitive();\n if (isFilled(value)) {\n this.use(value);\n }\n }),\n );\n });\n}\n","import { isFilled, Message, MessageType, Primitive } from \"silentium\";\n\n/**\n * Message separate from the base\n * allows to take one value from the base\n * but not react to new values of the base message\n */\nexport function Detached<T>($base: MessageType<T>): MessageType<T> {\n return Message(function () {\n const v = Primitive($base).primitive();\n if (isFilled(v)) {\n this.use(v);\n }\n });\n}\n","import {\n All,\n Applied,\n Late,\n MessageType,\n SourceType,\n Tap,\n TapType,\n} from \"silentium\";\n\n/**\n * Takes source and remember it first value\n * returns new record, what will contain only fields what was changed\n * https://silentium-lab.github.io/silentium-components/#/behaviors/dirty\n */\nexport function Dirty<T>(\n $base: MessageType<T>,\n keep: string[] = [],\n exclude: string[] = [],\n cloner?: (v: T) => T,\n): SourceType<T> {\n return new DirtySource($base, keep, exclude, cloner);\n}\n\nclass DirtySource<T> implements SourceType<T> {\n private $comparing = Late<T>();\n private cloner: (v: T) => T;\n\n public constructor(\n private $base: MessageType<T>,\n private keep: string[] = [],\n private exclude: string[] = [],\n cloner?: (v: T) => T,\n ) {\n if (cloner === undefined) {\n this.cloner = (value) => JSON.parse(JSON.stringify(value));\n } else {\n this.cloner = cloner;\n }\n }\n\n public pipe(transport: TapType<T>) {\n const $comparing = Applied(this.$comparing, this.cloner);\n All($comparing, this.$base).pipe(\n Tap(([comparing, base]) => {\n if (!comparing) {\n return;\n }\n transport.use(\n Object.fromEntries(\n Object.entries(comparing).filter(([key, value]) => {\n if (this.keep.includes(key)) {\n return true;\n }\n if (this.exclude.includes(key)) {\n return false;\n }\n return value !== (base as Record<string, unknown>)[key];\n }),\n ) as T,\n );\n }),\n );\n return this;\n }\n\n public use(v: T) {\n this.$comparing.use(v);\n return this;\n }\n}\n","import { Message, MessageType, Tap } from \"silentium\";\n\n/**\n * Representation Of loading process\n * first message begins loading\n * second message stops loading\n * https://silentium-lab.github.io/silentium-components/#/behaviors/loading\n */\nexport function Loading(\n $start: MessageType<unknown>,\n $finish: MessageType<unknown>,\n) {\n return Message<boolean>(function () {\n $start.pipe(Tap(() => this.use(true)));\n $finish.pipe(Tap(() => this.use(false)));\n });\n}\n","import { Filtered, Message, MessageType, Tap } from \"silentium\";\n\n/**\n * Allows locking messages\n * if a $lock message arrives\n * https://silentium-lab.github.io/silentium-components/#/behaviors/lock\n */\nexport function Lock<T>($base: MessageType<T>, $lock: MessageType<boolean>) {\n return Message<T>(function () {\n let locked = false;\n $lock.pipe(\n Tap((newLock) => {\n locked = newLock;\n }),\n );\n const i = Filtered($base, () => !locked);\n i.pipe(this);\n });\n}\n","import { isFilled, Message, MessageType, Tap } from \"silentium\";\n\n/**\n * Didn't respond if new value Of baseSrc equals to old value\n * https://silentium-lab.github.io/silentium-components/#/behaviors/memo\n */\nexport function Memo<T>($base: MessageType<T>) {\n return Message<T>(function () {\n let last: T | null = null;\n $base.pipe(\n Tap((v) => {\n if (v !== last && isFilled(v)) {\n this.use(v);\n last = v;\n }\n }),\n );\n });\n}\n","import { Message, MessageType, Tap } from \"silentium\";\n\n/**\n * Represents source what was changed at least once\n * https://silentium-lab.github.io/silentium-components/#/behaviors/only-changed\n */\nexport function OnlyChanged<T>($base: MessageType<T>) {\n return Message<T>(function () {\n let first = false;\n $base.pipe(\n Tap((v) => {\n if (first === false) {\n first = true;\n } else {\n this.use(v);\n }\n }),\n );\n });\n}\n","import {\n ActualMessage,\n All,\n isFilled,\n MaybeMessage,\n MessageType,\n Primitive,\n Shared,\n SharedSource,\n SourceType,\n Tap,\n TapType,\n} from \"silentium\";\n\n/**\n * Return source Of record path\n * https://silentium-lab.github.io/silentium-components/#/behaviors/path\n */\nexport function Part<\n R,\n T extends object | Array<any> = any,\n K extends string = any,\n>($base: SourceType<T>, $key: MaybeMessage<K>): SourceType<R> {\n return new PartImpl($base, ActualMessage($key));\n}\n\nclass PartImpl<R, T extends object | Array<any>, K extends string = any>\n implements SourceType<R>\n{\n private $base: SourceType<T>;\n private $keyed: MessageType<K>;\n\n public constructor($base: SourceType<T>, $key: MessageType<K>) {\n this.$base = SharedSource($base);\n this.$keyed = Shared($key);\n }\n\n public pipe(transport: TapType<R, null>): this {\n All(this.$base, this.$keyed).pipe(\n Tap(([base, keyed]) => {\n const keys = keyed.split(\".\");\n let value: unknown = base;\n keys.forEach((key) => {\n value = (value as Record<string, unknown>)[key];\n });\n if (value !== undefined && value !== base) {\n transport.use(value as R);\n }\n }),\n );\n return this;\n }\n\n public use(value: R): this {\n const key = Primitive(this.$keyed);\n if (isFilled(key)) {\n const base = Primitive(this.$base);\n this.$base.use({\n ...base.primitiveWithException(),\n [key.primitiveWithException()]: value,\n } as T);\n }\n return this;\n }\n}\n","import {\n ActualMessage,\n All,\n MaybeMessage,\n Message,\n MessageType,\n Tap,\n} from \"silentium\";\n\n/**\n * Return source Of record path\n * https://silentium-lab.github.io/silentium-components/#/behaviors/path\n */\nexport function Path<\n R,\n T extends object | Array<any> = any,\n K extends string = any,\n>($base: MessageType<T>, _keyed: MaybeMessage<K>) {\n const $keyed = ActualMessage(_keyed);\n return Message<R>(function () {\n All($base, $keyed).pipe(\n Tap(([base, keyed]) => {\n const keys = keyed.split(\".\");\n let value: unknown = base;\n keys.forEach((key) => {\n value = (value as Record<string, unknown>)[key];\n });\n if (value !== undefined && value !== base) {\n this.use(value as R);\n }\n }),\n );\n });\n}\n","import { Message, MessageType, Tap } from \"silentium\";\n\n/**\n * Active polling of $base message\n * synchronized with $trigger message\n */\nexport function Polling<T>($base: MessageType<T>, $trigger: MessageType<T>) {\n return Message<T>(function () {\n $trigger.pipe(\n Tap(() => {\n $base.pipe(this);\n }),\n );\n });\n}\n","import { isFilled, Message, MessageType, Primitive, Tap } from \"silentium\";\n\n/**\n * Helps to represent only last fresh value Of some source, refreshing controls by shotSrc\n * https://silentium-lab.github.io/silentium-components/#/behaviors/shot\n */\nexport function Shot<T>($target: MessageType<T>, $trigger: MessageType) {\n return Message<T>(function () {\n const targetSync = Primitive($target);\n targetSync.primitive();\n $trigger.pipe(\n Tap(() => {\n const value = targetSync.primitive();\n if (isFilled(value)) {\n this.use(value);\n }\n }),\n );\n });\n}\n","import { ExecutorApplied, Message, MessageType } from \"silentium\";\n\n/**\n * Defer a message to the event loop\n * so that it executes once within\n * a certain timer firing interval\n */\nexport function Task<T>(baseSrc: MessageType<T>, delay: number = 0) {\n return Message<T>(function () {\n let prevTimer: unknown | null = null;\n ExecutorApplied(baseSrc, (fn) => {\n return (v) => {\n if (prevTimer) {\n clearTimeout(prevTimer as number);\n }\n prevTimer = setTimeout(() => {\n fn(v);\n }, delay);\n };\n }).pipe(this);\n });\n}\n","import { Message, MessageType, Tap } from \"silentium\";\n\n/**\n * Accumulates the last value Of the source and returns one result once per tick\n * https://silentium-lab.github.io/silentium-components/#/behaviors/tick\n */\nexport function Tick<T>($base: MessageType<T>) {\n return Message(function () {\n let microtaskScheduled = false;\n let lastValue: T | null = null;\n\n const scheduleMicrotask = () => {\n microtaskScheduled = true;\n queueMicrotask(() => {\n microtaskScheduled = false;\n if (lastValue !== null) {\n this.use(lastValue);\n lastValue = null;\n }\n });\n };\n\n $base.pipe(\n Tap((v) => {\n lastValue = v;\n if (!microtaskScheduled) {\n scheduleMicrotask();\n }\n }),\n );\n });\n}\n","import {\n ConstructorType,\n DestroyableType,\n LateShared,\n Message,\n MessageType,\n Of,\n Tap,\n} from \"silentium\";\nimport { Detached } from \"../behaviors/Detached\";\n\n/**\n * Do something on message value.\n * Each message value will create new builder instance\n */\nexport function Transaction<T, R = unknown>(\n $base: MessageType<T>,\n builder: ConstructorType<\n [MessageType<T>, ...MessageType<any>[]],\n MessageType<R>\n >,\n ...args: MessageType[]\n) {\n return Message<R>(function () {\n const $res = LateShared<R>();\n const destructors: DestroyableType[] = [];\n\n $base.pipe(\n Tap((v) => {\n const $msg = builder(Of(v), ...args.map((a) => Detached(a)));\n destructors.push($msg as unknown as DestroyableType);\n $msg.pipe($res);\n }),\n );\n $res.pipe(this);\n\n return () => {\n destructors.forEach((d) => d?.destroy());\n destructors.length = 0;\n };\n });\n}\n","import { Message, MessageType, Tap } from \"silentium\";\n\n/**\n * By receiving a message with a key and value, collects a table\n * of all previously received messages in the form of a structure\n * https://silentium-lab.github.io/silentium-components/#/structures/hash-table\n */\nexport function HashTable<T>($base: MessageType<[string, unknown]>) {\n return Message<T>(function () {\n const record: Record<string, unknown> = {};\n\n $base.pipe(\n Tap(([key, value]) => {\n record[key] = value;\n this.use(record as T);\n }),\n );\n });\n}\n","import { All, isMessage, Message, MessageType, Of, Tap } from \"silentium\";\n\ntype UnWrap<T> = T extends MessageType<infer U> ? U : T;\n\n/**\n * Returns record Of data from record Of sources\n * https://silentium-lab.github.io/silentium-components/#/structures/record\n */\nexport function Record<T>(record: Record<string, T>) {\n return Message<Record<string, UnWrap<T>>>(function () {\n const keys = Object.keys(record);\n keys.forEach((key) => {\n if (!isMessage(record[key])) {\n record[key] = Of(record[key]) as any;\n }\n });\n All(...(Object.values(record) as any)).pipe(\n Tap((entries) => {\n const record: Record<string, any> = {};\n entries.forEach((entry, index) => {\n record[keys[index]] = entry;\n });\n this.use(record);\n }),\n );\n });\n}\n","import { All, Message, MessageType, Of, Tap } from \"silentium\";\n\n/**\n * Join sources Of strings to one source\n * https://silentium-lab.github.io/silentium-components/#/string/concatenated\n */\nexport function Concatenated(\n sources: MessageType<string>[],\n joinPartSrc: MessageType<string> = Of(\"\"),\n) {\n return Message<string>(function () {\n All(joinPartSrc, ...sources).pipe(\n Tap(([joinPart, ...strings]) => {\n this.use(strings.join(joinPart));\n }),\n );\n });\n}\n","import {\n All,\n Applied,\n DestroyableType,\n DestroyContainer,\n isDestroyable,\n MessageType,\n Of,\n TapType,\n} from \"silentium\";\nimport { Record } from \"../structures\";\n\n/**\n * Allows creating a string template with\n * variables inserted into it; when variables change,\n * the template value will change\n */\nexport function Template(\n $src: MessageType<string> = Of(\"\"),\n $places: MessageType<Record<string, unknown>> = Of({}),\n) {\n return new TemplateImpl($src, $places);\n}\n\nclass TemplateImpl implements MessageType<string>, DestroyableType {\n private dc = DestroyContainer();\n private vars: Record<string, MessageType> = {\n $TPL: Of(\"$TPL\"),\n };\n\n public constructor(\n private $src: MessageType<string> = Of(\"\"),\n private $places: MessageType<Record<string, unknown>> = Of({}),\n ) {}\n\n public pipe(transport: TapType<string>): this {\n const $vars = Record(this.vars);\n Applied(All(this.$src, this.$places, $vars), ([base, rules, vars]) => {\n Object.entries(rules).forEach(([ph, val]) => {\n base = base.replaceAll(ph, String(val));\n });\n Object.entries(vars).forEach(([ph, val]) => {\n base = base.replaceAll(ph, String(val));\n });\n\n return base;\n }).pipe(transport);\n return this;\n }\n\n public template(value: string) {\n this.$src = Of(value);\n }\n\n /**\n * Ability to register variable\n * in concrete place Of template\n */\n public var(src: MessageType<string>) {\n const places = Object.keys(this.vars).length;\n const varName = `$var${places}`;\n if (isDestroyable(src)) {\n this.dc.add(src);\n }\n this.vars[varName] = src;\n return varName;\n }\n\n public destroy(): this {\n this.dc.destroy();\n return this;\n }\n}\n","import { All, Message, MessageType, Of, Tap } from \"silentium\";\n\n/**\n * Boolean source what checks what string matches pattern\n * https://silentium-lab.github.io/silentium-components/#/system/regexp-matched\n */\nexport function RegexpMatched(\n patternSrc: MessageType<string>,\n valueSrc: MessageType<string>,\n flagsSrc: MessageType<string> = Of(\"\"),\n) {\n return Message<boolean>(function () {\n All(patternSrc, valueSrc, flagsSrc).pipe(\n Tap(([pattern, value, flags]) => {\n this.use(new RegExp(pattern, flags).test(value));\n }),\n );\n });\n}\n","import { All, Message, MessageType, Of, Tap } from \"silentium\";\n\n/**\n * Returns string replaced by regular expression pattern\n * https://silentium-lab.github.io/silentium-components/#/system/regexp-replaced\n */\nexport function RegexpReplaced(\n valueSrc: MessageType<string>,\n patternSrc: MessageType<string>,\n replaceValueSrc: MessageType<string>,\n flagsSrc: MessageType<string> = Of(\"\"),\n) {\n return Message<string>(function () {\n All(patternSrc, valueSrc, replaceValueSrc, flagsSrc).pipe(\n Tap(([pattern, value, replaceValue, flags]) => {\n this.use(\n String(value).replace(new RegExp(pattern, flags), replaceValue),\n );\n }),\n );\n });\n}\n","import { All, Message, MessageType, Of, Tap } from \"silentium\";\n\n/**\n * First match Of regexp\n * https://silentium-lab.github.io/silentium-components/#/system/regexp-matched\n */\nexport function RegexpMatch(\n patternSrc: MessageType<string>,\n valueSrc: MessageType<string>,\n flagsSrc: MessageType<string> = Of(\"\"),\n) {\n return Message<string[]>(function () {\n All(patternSrc, valueSrc, flagsSrc).pipe(\n Tap(([pattern, value, flags]) => {\n const result = new RegExp(pattern, flags).exec(value);\n this.use(result ?? []);\n }),\n );\n });\n}\n","import { All, Message, MessageType, Tap } from \"silentium\";\n\n/**\n * Ability to mutate some object, helpful when integrate to procedure systems\n * https://silentium-lab.github.io/silentium-components/#/system/set\n */\nexport function Set<T extends Record<string, unknown>>(\n baseSrc: MessageType<T>,\n keySrc: MessageType<string>,\n valueSrc: MessageType<unknown>,\n) {\n return Message<T>(function () {\n All(baseSrc, keySrc, valueSrc).pipe(\n Tap(([base, key, value]) => {\n (base as Record<string, unknown>)[key] = value;\n this.use(base);\n }),\n );\n });\n}\n","import {\n All,\n DestroyableType,\n DestroyContainer,\n Message,\n MessageType,\n Of,\n Tap,\n TapType,\n} from \"silentium\";\nimport { RegexpMatched } from \"../system\";\n\nexport interface Route<T> {\n pattern: string;\n patternFlags?: string;\n message: TapType<void, MessageType<T>>;\n}\n\n/**\n * Router component what will return template if url matches pattern\n * https://silentium-lab.github.io/silentium-components/#/navigation/router\n */\nexport function Router<T = \"string\">(\n $url: MessageType<string>,\n $routes: MessageType<Route<T>[]>,\n $default: TapType<void, MessageType<T>>,\n): MessageType<T> & DestroyableType {\n return Message<T>(function () {\n const dc = DestroyContainer();\n const destructor = () => {\n dc.destroy();\n };\n All($routes, $url).pipe(\n Tap(([routes, url]) => {\n destructor();\n const $matches = All(\n ...routes.map((r) =>\n RegexpMatched(\n Of(r.pattern),\n Of(url),\n r.patternFlags ? Of(r.patternFlags) : undefined,\n ),\n ),\n );\n $matches.pipe(\n Tap((matches) => {\n const index = matches.findIndex((v) => v === true);\n\n if (index === -1) {\n const instance = $default.use();\n dc.add(instance);\n instance.pipe(this);\n }\n\n if (index > -1) {\n const instance = routes[index].message.use();\n dc.add(instance);\n instance.pipe(this);\n }\n }),\n );\n }),\n );\n\n return destructor;\n });\n}\n","import { All, Message, MessageType, Tap } from \"silentium\";\n\n/**\n * Logical AND over two messages\n * https://silentium-lab.github.io/silentium-components/#/boolean/and\n */\nexport function And($one: MessageType<boolean>, $two: MessageType<boolean>) {\n return Message<boolean>(function () {\n All($one, $two).pipe(\n Tap(([one, two]) => {\n this.use(!!(one && two));\n }),\n );\n });\n}\n","import { All, Message, MessageType, Tap } from \"silentium\";\n\n/**\n * Logical OR over two messages\n * https://silentium-lab.github.io/silentium-components/#/boolean/or\n */\nexport function Or($one: MessageType<boolean>, $two: MessageType<boolean>) {\n return Message<boolean>(function () {\n All($one, $two).pipe(\n Tap(([one, two]) => {\n this.use(!!(one || two));\n }),\n );\n });\n}\n","import { Message, MessageType, Tap } from \"silentium\";\n\n/**\n * Logical negation of message\n * https://silentium-lab.github.io/silentium-components/#/boolean/not\n */\nexport function Not($base: MessageType<boolean>) {\n return Message<boolean>(function () {\n $base.pipe(\n Tap((v) => {\n this.use(!v);\n }),\n );\n });\n}\n","import { Applied, Message, MessageType } from \"silentium\";\n\n/**\n * Convert Any source to boolean source\n * https://silentium-lab.github.io/silentium-components/#/boolean/bool\n */\nexport function Bool($base: MessageType) {\n return Message<boolean>(function () {\n Applied($base, Boolean).pipe(this);\n });\n}\n","import { Message, MessageType, Tap, TapType } from \"silentium\";\n\n/**\n * Represents object from json\n */\nexport function FromJson<T = Record<string, unknown>>(\n $json: MessageType<string>,\n error?: TapType,\n) {\n return Message<T>(function () {\n $json.pipe(\n Tap((json) => {\n try {\n this.use(JSON.parse(json));\n } catch (e) {\n error?.use(new Error(`Failed to parse JSON: ${e}`));\n }\n }),\n );\n });\n}\n","import { Message, MessageType, Tap, TapType } from \"silentium\";\n\n/**\n * Represents json from object\n */\nexport function ToJson($data: MessageType, error?: TapType) {\n return Message<string>(function () {\n $data.pipe(\n Tap((data: unknown) => {\n try {\n this.use(JSON.stringify(data));\n } catch {\n error?.use(new Error(\"Failed to convert to JSON\"));\n }\n }),\n );\n });\n}\n","import { Applied, Message, MessageType } from \"silentium\";\n\n/**\n * Represents the first element Of an array.\n */\nexport function First<T extends Array<unknown>>($base: MessageType<T>) {\n return Message<T[0]>(function () {\n Applied($base, (a) => a[0]).pipe(this);\n });\n}\n"],"names":["ActualMessage","Message","Primitive","Tap","DestroyContainer","Shared","Filtered","isFilled","__publicField","Late","Applied","All","SharedSource","ExecutorApplied","LateShared","Of","isMessage","record","isDestroyable"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as silentium from 'silentium';
2
- import { MaybeMessage, MessageType, TransportType, DestroyableType, SourceType, ConstructorType } from 'silentium';
2
+ import { MaybeMessage, MessageType, TapType, DestroyableType, SourceType, ConstructorType } from 'silentium';
3
3
 
4
4
  /**
5
5
  * Allows switching between left and right messages depending on condition
@@ -13,7 +13,7 @@ declare function Branch<Then, Else>(_condition: MaybeMessage<boolean>, _left: Ma
13
13
  * When condition changes, old messages are destroyed
14
14
  * and new ones are created.
15
15
  */
16
- declare function BranchLazy<Then, Else>($condition: MessageType<boolean>, $left: TransportType<void, MessageType<Then>>, $right?: TransportType<void, MessageType<Else>>): MessageType<Then | Else> & DestroyableType;
16
+ declare function BranchLazy<Then, Else>($condition: MessageType<boolean>, $left: TapType<void, MessageType<Then>>, $right?: TapType<void, MessageType<Else>>): MessageType<Then | Else> & DestroyableType;
17
17
 
18
18
  /**
19
19
  * Constant value that will be
@@ -27,7 +27,7 @@ declare function Constant<T>(permanent: T, $trigger: MessageType): MessageType<T
27
27
  * time runs out from $timeout; if $base manages to
28
28
  * respond before $timeout then the value from base will be returned
29
29
  */
30
- declare function Deadline<T>(error: TransportType<Error>, $base: MessageType<T>, _timeout: MaybeMessage<number>): silentium.MessageImpl<T>;
30
+ declare function Deadline<T>(error: TapType<Error>, $base: MessageType<T>, _timeout: MaybeMessage<number>): silentium.MessageImpl<T>;
31
31
 
32
32
  /**
33
33
  * Defer one source after another, gives values Of baseSrc only when triggerSrc responds
@@ -55,7 +55,7 @@ declare function Dirty<T>($base: MessageType<T>, keep?: string[], exclude?: stri
55
55
  * second message stops loading
56
56
  * https://silentium-lab.github.io/silentium-components/#/behaviors/loading
57
57
  */
58
- declare function Loading($loadingStart: MessageType<unknown>, $loadingFinish: MessageType<unknown>): silentium.MessageImpl<boolean>;
58
+ declare function Loading($start: MessageType<unknown>, $finish: MessageType<unknown>): silentium.MessageImpl<boolean>;
59
59
 
60
60
  /**
61
61
  * Allows locking messages
@@ -154,7 +154,7 @@ declare class TemplateImpl implements MessageType<string>, DestroyableType {
154
154
  private dc;
155
155
  private vars;
156
156
  constructor($src?: MessageType<string>, $places?: MessageType<Record<string, unknown>>);
157
- to(transport: TransportType<string>): this;
157
+ pipe(transport: TapType<string>): this;
158
158
  template(value: string): void;
159
159
  /**
160
160
  * Ability to register variable
@@ -167,13 +167,13 @@ declare class TemplateImpl implements MessageType<string>, DestroyableType {
167
167
  interface Route<T> {
168
168
  pattern: string;
169
169
  patternFlags?: string;
170
- message: TransportType<void, MessageType<T>>;
170
+ message: TapType<void, MessageType<T>>;
171
171
  }
172
172
  /**
173
173
  * Router component what will return template if url matches pattern
174
174
  * https://silentium-lab.github.io/silentium-components/#/navigation/router
175
175
  */
176
- declare function Router<T = "string">($url: MessageType<string>, $routes: MessageType<Route<T>[]>, $default: TransportType<void, MessageType<T>>): MessageType<T> & DestroyableType;
176
+ declare function Router<T = "string">($url: MessageType<string>, $routes: MessageType<Route<T>[]>, $default: TapType<void, MessageType<T>>): MessageType<T> & DestroyableType;
177
177
 
178
178
  /**
179
179
  * Boolean source what checks what string matches pattern
@@ -226,12 +226,12 @@ declare function Bool($base: MessageType): silentium.MessageImpl<boolean>;
226
226
  /**
227
227
  * Represents object from json
228
228
  */
229
- declare function FromJson<T = Record<string, unknown>>($json: MessageType<string>, error?: TransportType): silentium.MessageImpl<T>;
229
+ declare function FromJson<T = Record<string, unknown>>($json: MessageType<string>, error?: TapType): silentium.MessageImpl<T>;
230
230
 
231
231
  /**
232
232
  * Represents json from object
233
233
  */
234
- declare function ToJson($data: MessageType, error?: TransportType): silentium.MessageImpl<string>;
234
+ declare function ToJson($data: MessageType, error?: TapType): silentium.MessageImpl<string>;
235
235
 
236
236
  /**
237
237
  * Represents the first element Of an array.