vivth 1.4.9 → 1.5.0

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 (379) hide show
  1. package/README.md +6060 -2037
  2. package/README.src.md +22 -14
  3. package/bun.lock +154 -194
  4. package/dev/auto/.src.ignore +25 -0
  5. package/dev/auto-doc.mjs +137 -0
  6. package/generated/types/generated/vivth/exports/all.d.mts +145 -0
  7. package/generated/types/generated/vivth/exports/neutral.d.mts +105 -0
  8. package/generated/types/generated/vivth/exports/node.d.mts +40 -0
  9. package/generated/types/src/bundler/CompileAS.d.mts +30 -0
  10. package/generated/types/src/bundler/CompileJS.d.mts +109 -0
  11. package/{types → generated/types}/src/bundler/CreateESPlugin.d.mts +1 -1
  12. package/{types → generated/types}/src/bundler/EsBundler.d.mts +9 -7
  13. package/generated/types/src/bundler/FSAnalyzer.d.mts +58 -0
  14. package/generated/types/src/bundler/FSasar.bundled.d.mts +28 -0
  15. package/generated/types/src/bundler/FSasar.d.mts +51 -0
  16. package/generated/types/src/bundler/FileSelfMapper.d.mts +137 -0
  17. package/generated/types/src/bundler/JSDirMapper.d.mts +128 -0
  18. package/generated/types/src/bundler/RunWatchThenCompileJSOnSafeExit.d.mts +63 -0
  19. package/generated/types/src/bundler/adds/BrowserExternals.d.mts +21 -0
  20. package/generated/types/src/bundler/adds/CreateTransform.d.mts +26 -0
  21. package/generated/types/src/bundler/adds/LastEditedUnix.d.mts +5 -0
  22. package/generated/types/src/bundler/adds/NodeModuleList.d.mts +15 -0
  23. package/generated/types/src/bundler/adds/PathFSBundles.bundled.d.mts +25 -0
  24. package/generated/types/src/bundler/adds/PathFSBundles.d.mts +48 -0
  25. package/generated/types/src/bundler/adds/PathFSDir.bundled.d.mts +30 -0
  26. package/generated/types/src/bundler/adds/PathFSDir.d.mts +48 -0
  27. package/generated/types/src/bundler/adds/PathFSFile.bundled.d.mts +25 -0
  28. package/generated/types/src/bundler/adds/PathFSFile.d.mts +40 -0
  29. package/{types → generated/types}/src/bundler/adds/ToBundledJSPlugin.d.mts +6 -6
  30. package/generated/types/src/bundler/adds/autoExternalize.d.mts +2 -0
  31. package/generated/types/src/bundler/adds/emptyBufferValue.d.mts +1 -0
  32. package/generated/types/src/bundler/adds/isModuleTheBundledVersion.d.mts +1 -0
  33. package/generated/types/src/bundler/adds/onEndEsBuildErrorLogger.d.mts +1 -0
  34. package/generated/types/src/bundler/adds/resolveJSDependencyPath.d.mts +1 -0
  35. package/generated/types/src/class/AwaitSignal.d.mts +48 -0
  36. package/generated/types/src/class/Console.d.mts +82 -0
  37. package/generated/types/src/class/DataLog.d.mts +25 -0
  38. package/generated/types/src/class/Derived.d.mts +74 -0
  39. package/generated/types/src/class/Effect.d.mts +213 -0
  40. package/{types → generated/types}/src/class/EnvSignal.d.mts +6 -2
  41. package/generated/types/src/class/EsWatcher.d.mts +36 -0
  42. package/{types → generated/types}/src/class/EventSignal.d.mts +39 -39
  43. package/generated/types/src/class/FSDirArchWatcher.d.mts +110 -0
  44. package/{types → generated/types}/src/class/FileSafe.d.mts +32 -16
  45. package/generated/types/src/class/ForEach.d.mts +57 -0
  46. package/generated/types/src/class/ForSignal.d.mts +63 -0
  47. package/generated/types/src/class/GetterSetter.d.mts +38 -0
  48. package/generated/types/src/class/JSONFileHandler.d.mts +50 -0
  49. package/{types → generated/types}/src/class/ListSignal.d.mts +49 -15
  50. package/{types → generated/types}/src/class/LitExp.d.mts +18 -18
  51. package/generated/types/src/class/ObjectSignal.d.mts +267 -0
  52. package/generated/types/src/class/Paths.d.mts +95 -0
  53. package/generated/types/src/class/Prettivy.d.mts +26 -0
  54. package/{types → generated/types}/src/class/QChannel.d.mts +24 -16
  55. package/generated/types/src/class/SafeExit.d.mts +69 -0
  56. package/{types → generated/types}/src/class/Setup.d.mts +29 -16
  57. package/{types → generated/types}/src/class/Signal.d.mts +29 -15
  58. package/generated/types/src/class/SignalCollection.d.mts +96 -0
  59. package/{types → generated/types}/src/class/WalkThrough.d.mts +4 -19
  60. package/generated/types/src/class/WorkerMainThread.bundled.d.mts +83 -0
  61. package/{types → generated/types}/src/class/WorkerMainThread.d.mts +33 -39
  62. package/{types → generated/types}/src/class/WorkerThread.d.mts +11 -5
  63. package/{types → generated/types}/src/common/Base64URL.d.mts +2 -1
  64. package/generated/types/src/common/Base64URLFromFile.d.mts +20 -0
  65. package/generated/types/src/common/BundledV.bundled.d.mts +3 -0
  66. package/generated/types/src/common/BundledV.d.mts +36 -0
  67. package/{types → generated/types}/src/common/CreateStringID.d.mts +5 -4
  68. package/generated/types/src/common/EnvMode.d.mts +79 -0
  69. package/generated/types/src/common/FactoryKey.d.mts +9 -0
  70. package/generated/types/src/common/Preferrence.d.mts +25 -0
  71. package/{types → generated/types}/src/common/Trace.d.mts +1 -1
  72. package/{types → generated/types}/src/common/TracePath.d.mts +1 -1
  73. package/generated/types/src/common/VivthUnBundledCodeBlock.d.mts +6 -0
  74. package/generated/types/src/doc/JSautoDOC.d.mts +172 -0
  75. package/generated/types/src/doc/cleanPreserveTypedef.d.mts +1 -0
  76. package/{types/src/doc/parsedFile.d.mts → generated/types/src/doc/parsedFileForDOC.d.mts} +56 -27
  77. package/generated/types/src/function/ClearRequireCache.d.mts +1 -0
  78. package/{types → generated/types}/src/function/CreateImmutable.d.mts +5 -4
  79. package/{types → generated/types}/src/function/EventCheck.d.mts +3 -1
  80. package/{types → generated/types}/src/function/EventObject.d.mts +2 -6
  81. package/generated/types/src/function/ForInAsync.d.mts +36 -0
  82. package/generated/types/src/function/ForInSync.d.mts +36 -0
  83. package/generated/types/src/function/ForOfAsync.d.mts +25 -0
  84. package/generated/types/src/function/ForOfSync.d.mts +36 -0
  85. package/generated/types/src/function/GetBufferFromRelativePath.d.mts +15 -0
  86. package/generated/types/src/function/GetFilesFromDir.d.mts +14 -0
  87. package/generated/types/src/function/GetMaxFilenameLength.d.mts +9 -0
  88. package/generated/types/src/function/GetModuleEsbuildPlatform.d.mts +13 -0
  89. package/{types → generated/types}/src/function/GetNamedImportAlias.d.mts +1 -1
  90. package/generated/types/src/function/GetRuntime.d.mts +2 -0
  91. package/generated/types/src/function/InstantiateAssemblyScript.d.mts +15 -0
  92. package/{types → generated/types}/src/function/IsAsync.d.mts +1 -1
  93. package/generated/types/src/function/IsInstanceOf.d.mts +25 -0
  94. package/generated/types/src/function/IsSameFile.d.mts +16 -0
  95. package/generated/types/src/function/IsStringLooksLikeAPath.d.mts +16 -0
  96. package/generated/types/src/function/IsTypeOf.d.mts +25 -0
  97. package/{types → generated/types}/src/function/LazyFactory.d.mts +9 -10
  98. package/generated/types/src/function/MonkeyPatch.d.mts +33 -0
  99. package/generated/types/src/function/NewAnimationTimeline.d.mts +24 -0
  100. package/generated/types/src/function/NewChainable.d.mts +35 -0
  101. package/generated/types/src/function/NewDynamicsExport.d.mts +49 -0
  102. package/generated/types/src/function/NewObjectWrapper.d.mts +10 -0
  103. package/generated/types/src/function/ObjectRegistrar.d.mts +17 -0
  104. package/generated/types/src/function/ParseSQLFile.d.mts +25 -0
  105. package/generated/types/src/function/PipeAsync.d.mts +19 -0
  106. package/generated/types/src/function/PipeSync.d.mts +17 -0
  107. package/generated/types/src/function/SafeImport.d.mts +21 -0
  108. package/generated/types/src/function/TemplateLiteral.d.mts +23 -0
  109. package/{types → generated/types}/src/function/Timeout.d.mts +1 -1
  110. package/{types → generated/types}/src/function/Tries.d.mts +4 -4
  111. package/{types → generated/types}/src/function/TryAsync.d.mts +2 -2
  112. package/{types → generated/types}/src/function/TryNew.d.mts +1 -1
  113. package/generated/types/src/function/TsToMjs.d.mts +27 -0
  114. package/generated/types/src/function/UniqueFSTempName.d.mts +9 -0
  115. package/generated/types/src/function/errorToMessage.d.mts +5 -0
  116. package/generated/types/src/neinth/VivthyNeinth.d.mts +202 -0
  117. package/generated/types/src/typehints/ArrayToKeys.d.mts +23 -0
  118. package/generated/types/src/typehints/AssemblyScriptExportsType.d.mts +4 -0
  119. package/generated/types/src/typehints/AssemblyScriptLoaderInstantiate.d.mts +4 -0
  120. package/generated/types/src/typehints/AutoDocASOptions.d.mts +15 -0
  121. package/generated/types/src/typehints/ChainableType.d.mts +3 -0
  122. package/generated/types/src/typehints/ComponentDecorator_Constructor.d.mts +3 -0
  123. package/generated/types/src/typehints/ConsoleAdditionalSettingType.d.mts +3 -0
  124. package/generated/types/src/typehints/Decorator.d.mts +11 -0
  125. package/generated/types/src/typehints/DecoratorMonkeyPatch.d.mts +15 -0
  126. package/{types/src/types → generated/types/src/typehints}/DevTestCB.d.mts +2 -2
  127. package/generated/types/src/typehints/EnvModeType.d.mts +4 -0
  128. package/generated/types/src/typehints/ListArg.d.mts +4 -0
  129. package/generated/types/src/typehints/MonkeyPatchedType.d.mts +1 -0
  130. package/generated/types/src/typehints/ParametersFollowingN.d.mts +13 -0
  131. package/generated/types/src/typehints/PrefixedKeysOf.d.mts +1 -0
  132. package/generated/types/src/typehints/Runtime.d.mts +4 -0
  133. package/generated/types/src/typehints/SafeImportReturnType.d.mts +1 -0
  134. package/generated/types/src/typehints/StylePropRefType.d.mts +2 -0
  135. package/generated/types/src/typehints/TemplateLiteralValueHandler.d.mts +10 -0
  136. package/generated/types/src/typehints/VLifecycleCallbacks.d.mts +6 -0
  137. package/generated/types/src/typehints/VivthCleanup.d.mts +12 -0
  138. package/generated/types/src/web/BrowserDirMapper.d.mts +70 -0
  139. package/generated/types/src/web/EnsureValidTag.d.mts +7 -0
  140. package/generated/types/src/web/ViteAddDynamics.d.mts +28 -0
  141. package/generated/types/src/web/ViteGetAllHTMLFile.d.mts +9 -0
  142. package/generated/types/src/web/WC_extendsA.d.mts +135 -0
  143. package/generated/types/src/web/WC_extendsB.d.mts +135 -0
  144. package/generated/types/src/web/bindings/WC_StyleProp_bind.d.mts +42 -0
  145. package/generated/types/src/web/bindings/WC_createElement_bind.d.mts +51 -0
  146. package/generated/types/src/web/bindings/WC_createNamedSlot.d.mts +26 -0
  147. package/generated/types/src/web/bindings/WC_litRender_bind.d.mts +20 -0
  148. package/generated/types/src/web/bindings/WC_litStyleMap.d.mts +7 -0
  149. package/generated/types/src/web/common/CSS.d.mts +23 -0
  150. package/generated/types/src/web/common/E.d.mts +41 -0
  151. package/generated/types/src/web/common/NewStyleSheetAsync.d.mts +15 -0
  152. package/generated/types/src/web/common/NewStyleSheetSync.d.mts +15 -0
  153. package/generated/types/src/web/common/WC_TagName_type.d.mts +15 -0
  154. package/generated/types/src/web/signals/IsInViewPortSignal.d.mts +52 -0
  155. package/generated/types/src/web/signals/ObserverSignal.d.mts +32 -0
  156. package/generated/types/src/web/signals/WC_litRef.d.mts +26 -0
  157. package/generated/types/src/web/signals/WC_loopedSiblingsRef.d.mts +44 -0
  158. package/generated/vivth/exports/all.mjs +233 -0
  159. package/generated/vivth/exports/neutral.mjs +193 -0
  160. package/generated/vivth/exports/node.mjs +46 -0
  161. package/package.json +50 -14
  162. package/src/bundler/CompileAS.mjs +36 -0
  163. package/src/bundler/CompileJS.mjs +98 -171
  164. package/src/bundler/CreateESPlugin.mjs +1 -1
  165. package/src/bundler/EsBundler.mjs +38 -13
  166. package/src/bundler/FSAnalyzer.mjs +253 -0
  167. package/src/bundler/FSasar.bundled.mjs +128 -0
  168. package/src/bundler/FSasar.mjs +96 -0
  169. package/src/bundler/FileSelfMapper.mjs +491 -0
  170. package/src/bundler/JSDirMapper.mjs +528 -0
  171. package/src/bundler/RunWatchThenCompileJSOnSafeExit.mjs +129 -0
  172. package/src/bundler/adds/BrowserExternals.mjs +37 -0
  173. package/src/bundler/adds/CreateTransform.mjs +36 -0
  174. package/src/bundler/adds/LastEditedUnix.mjs +12 -0
  175. package/src/bundler/adds/NodeModuleList.mjs +33 -0
  176. package/src/bundler/adds/PathFSBundles.bundled.mjs +41 -0
  177. package/src/bundler/adds/PathFSBundles.mjs +91 -0
  178. package/src/bundler/adds/PathFSDir.bundled.mjs +53 -0
  179. package/src/bundler/adds/PathFSDir.mjs +100 -0
  180. package/src/bundler/adds/PathFSFile.bundled.mjs +40 -0
  181. package/src/bundler/adds/PathFSFile.mjs +85 -0
  182. package/src/bundler/adds/ToBundledJSPlugin.mjs +116 -55
  183. package/src/bundler/adds/autoExternalize.mjs +81 -0
  184. package/src/bundler/adds/emptyBufferValue.mjs +5 -0
  185. package/src/bundler/adds/isModuleTheBundledVersion.mjs +10 -0
  186. package/src/bundler/adds/onEndEsBuildErrorLogger.mjs +34 -0
  187. package/src/bundler/adds/resolveJSDependencyPath.mjs +17 -0
  188. package/src/class/AwaitSignal.mjs +119 -0
  189. package/src/class/Console.mjs +36 -14
  190. package/src/class/DataLog.mjs +29 -0
  191. package/src/class/Derived.mjs +67 -55
  192. package/src/class/Effect.mjs +270 -84
  193. package/src/class/EnvSignal.mjs +11 -8
  194. package/src/class/EsWatcher.mjs +60 -0
  195. package/src/class/EventSignal.mjs +46 -58
  196. package/src/class/FSDirArchWatcher.mjs +246 -0
  197. package/src/class/FileSafe.mjs +72 -24
  198. package/src/class/ForEach.mjs +78 -0
  199. package/src/class/ForSignal.mjs +115 -0
  200. package/src/class/GetterSetter.mjs +40 -0
  201. package/src/class/JSONFileHandler.mjs +90 -0
  202. package/src/class/ListSignal.mjs +68 -26
  203. package/src/class/LitExp.mjs +59 -36
  204. package/src/class/ObjectSignal.mjs +225 -0
  205. package/src/class/Paths.mjs +56 -20
  206. package/src/class/Prettivy.mjs +51 -0
  207. package/src/class/QChannel.mjs +48 -26
  208. package/src/class/SafeExit.mjs +156 -99
  209. package/src/class/Setup.mjs +28 -16
  210. package/src/class/Signal.mjs +50 -27
  211. package/src/class/SignalCollection.mjs +130 -0
  212. package/src/class/WalkThrough.mjs +6 -23
  213. package/src/class/{WorkerMainThreadBundled.mjs → WorkerMainThread.bundled.mjs} +61 -84
  214. package/src/class/WorkerMainThread.mjs +103 -102
  215. package/src/class/WorkerThread.mjs +24 -17
  216. package/src/common/Base64URL.mjs +6 -3
  217. package/src/common/Base64URLFromFile.mjs +17 -4
  218. package/src/common/BundledV.bundled.mjs +7 -0
  219. package/src/common/BundledV.mjs +45 -0
  220. package/src/common/CreateStringID.mjs +8 -7
  221. package/src/common/EnvMode.mjs +172 -0
  222. package/src/common/FactoryKey.mjs +11 -0
  223. package/src/common/Preferrence.mjs +27 -0
  224. package/src/common/Trace.mjs +1 -1
  225. package/src/common/TracePath.mjs +53 -3
  226. package/src/common/VivthUnBundledCodeBlock.mjs +8 -0
  227. package/src/doc/JSautoDOC.mjs +673 -284
  228. package/src/doc/cleanPreserveTypedef.mjs +27 -0
  229. package/src/doc/correctBeforeParse.mjs +57 -48
  230. package/src/doc/{parsedFile.mjs → parsedFileForDOC.mjs} +133 -120
  231. package/src/function/ClearRequireCache.mjs +33 -0
  232. package/src/function/CreateImmutable.mjs +40 -37
  233. package/src/function/EventCheck.mjs +5 -2
  234. package/src/function/EventObject.mjs +2 -6
  235. package/src/function/ForInAsync.mjs +76 -0
  236. package/src/function/ForInSync.mjs +87 -0
  237. package/src/function/ForOfAsync.mjs +61 -0
  238. package/src/function/ForOfSync.mjs +70 -0
  239. package/src/function/GetBufferFromRelativePath.mjs +25 -0
  240. package/src/function/GetFilesFromDir.mjs +49 -0
  241. package/src/function/GetMaxFilenameLength.mjs +32 -0
  242. package/src/function/GetModuleEsbuildPlatform.mjs +118 -0
  243. package/src/function/GetNamedImportAlias.mjs +2 -2
  244. package/src/function/GetRuntime.mjs +10 -14
  245. package/src/function/InstantiateAssemblyScript.mjs +22 -0
  246. package/src/function/IsAsync.mjs +1 -1
  247. package/src/function/IsInstanceOf.mjs +29 -0
  248. package/src/function/IsSameFile.mjs +41 -0
  249. package/src/function/IsStringLooksLikeAPath.mjs +20 -0
  250. package/src/function/IsTypeOf.mjs +27 -0
  251. package/src/function/IsTypeOf.mts +31 -0
  252. package/src/function/LazyFactory.mjs +25 -23
  253. package/src/function/MonkeyPatch.mjs +38 -0
  254. package/src/function/NewAnimationTimeline.mjs +55 -0
  255. package/src/function/NewChainable.mjs +69 -0
  256. package/src/function/NewDynamicsExport.mjs +312 -0
  257. package/src/function/NewObjectWrapper.mjs +14 -0
  258. package/src/function/ObjectRegistrar.mjs +23 -0
  259. package/src/function/ParseSQLFile.mjs +129 -0
  260. package/src/function/PipeAsync.mjs +30 -0
  261. package/src/function/PipeSync.mjs +28 -0
  262. package/src/function/SafeImport.mjs +77 -0
  263. package/src/function/TemplateLiteral.mjs +42 -23
  264. package/src/function/Timeout.mjs +4 -4
  265. package/src/function/Tries.mjs +22 -16
  266. package/src/function/TryAsync.mjs +3 -2
  267. package/src/function/TryNew.mjs +1 -1
  268. package/src/function/TsToMjs.mjs +184 -21
  269. package/src/function/UniqueFSTempName.mjs +33 -0
  270. package/src/function/errorToMessage.mjs +21 -0
  271. package/src/function/resolveErrorArray.mjs +15 -1
  272. package/src/neinth/VivthyNeinth.mjs +487 -0
  273. package/src/typehints/ArrayToKeys.mjs +17 -0
  274. package/src/typehints/ArrayToKeys.mts +31 -0
  275. package/src/typehints/AssemblyScriptExportsType.mjs +7 -0
  276. package/src/typehints/AssemblyScriptLoaderInstantiate.mjs +7 -0
  277. package/src/typehints/AutoDocASOptions.mjs +14 -0
  278. package/src/typehints/ChainableType.mjs +11 -0
  279. package/src/typehints/ComponentDecorator_Constructor.mjs +10 -0
  280. package/src/typehints/ConsoleAdditionalSettingType.mjs +6 -0
  281. package/src/typehints/Decorator.mjs +9 -0
  282. package/src/typehints/Decorator.mts +31 -0
  283. package/src/typehints/DecoratorMonkeyPatch.mjs +10 -0
  284. package/src/typehints/DecoratorMonkeyPatch.mts +43 -0
  285. package/src/{types → typehints}/DevTestCB.mjs +2 -2
  286. package/src/typehints/EnvModeType.mjs +6 -0
  287. package/src/{types → typehints}/ListArg.mjs +1 -1
  288. package/src/{types → typehints}/LitExpResultType.mjs +1 -1
  289. package/src/typehints/MonkeyPatchedType.mjs +13 -0
  290. package/src/typehints/ParametersFollowingN.mjs +8 -0
  291. package/src/typehints/ParametersFollowingN.mts +17 -0
  292. package/src/typehints/PrefixedKeysOf.mjs +9 -0
  293. package/src/typehints/Runtime.mjs +6 -0
  294. package/src/typehints/SafeImportReturnType.mjs +6 -0
  295. package/src/typehints/StylePropRefType.mjs +12 -0
  296. package/src/typehints/TemplateLiteralValueHandler.mjs +14 -0
  297. package/src/typehints/VLifecycleCallbacks.mjs +10 -0
  298. package/src/typehints/VivthCleanup.mjs +14 -0
  299. package/src/web/BrowserDirMapper.mjs +255 -0
  300. package/src/web/EnsureValidTag.mjs +5 -0
  301. package/src/web/EnsureValidTag.mts +10 -0
  302. package/src/web/ViteAddDynamics.mjs +34 -0
  303. package/src/web/ViteGetAllHTMLFile.mjs +97 -0
  304. package/src/web/WC_extendsA.mjs +330 -0
  305. package/src/web/WC_extendsB.mjs +332 -0
  306. package/src/web/bindings/WC_StyleProp_bind.mjs +70 -0
  307. package/src/web/bindings/WC_createElement_bind.mjs +95 -0
  308. package/src/web/bindings/WC_createNamedSlot.mjs +29 -0
  309. package/src/web/bindings/WC_litRender_bind.mjs +26 -0
  310. package/src/web/bindings/WC_litStyleMap.mjs +14 -0
  311. package/src/web/common/CSS.mjs +35 -0
  312. package/src/web/common/E.mjs +126 -0
  313. package/src/web/common/NewStyleSheetAsync.mjs +21 -0
  314. package/src/web/common/NewStyleSheetSync.mjs +21 -0
  315. package/src/web/common/WC_TagName_type.mjs +10 -0
  316. package/src/web/common/WC_TagName_type.mts +36 -0
  317. package/src/web/signals/IsInViewPortSignal.mjs +140 -0
  318. package/src/web/signals/ObserverSignal.mjs +93 -0
  319. package/src/web/signals/WC_litRef.mjs +61 -0
  320. package/src/web/signals/WC_loopedSiblingsRef.mjs +100 -0
  321. package/tsconfig.json +44 -41
  322. package/index.mjs +0 -91
  323. package/src/bundler/FSInline.mjs +0 -67
  324. package/src/bundler/FSInlineAnalyzer.mjs +0 -228
  325. package/src/bundler/FSInlineBundled.mjs +0 -38
  326. package/src/bundler/adds/externals.mjs +0 -8
  327. package/src/class/ListDerived.mjs +0 -42
  328. package/src/common/Dev.mjs +0 -134
  329. package/src/common/DevBundled.mjs +0 -5
  330. package/src/common/lazie.mjs +0 -3
  331. package/src/types/IsListSignal.mjs +0 -6
  332. package/src/types/Runtime.mjs +0 -6
  333. package/src/types/VivthDevCodeBlockStringType.mjs +0 -6
  334. package/types/index.d.mts +0 -58
  335. package/types/src/bundler/CompileJS.d.mts +0 -119
  336. package/types/src/bundler/FSInline.d.mts +0 -50
  337. package/types/src/bundler/FSInlineAnalyzer.d.mts +0 -37
  338. package/types/src/bundler/FSInlineBundled.d.mts +0 -22
  339. package/types/src/bundler/adds/externals.d.mts +0 -1
  340. package/types/src/class/Console.d.mts +0 -71
  341. package/types/src/class/Derived.d.mts +0 -98
  342. package/types/src/class/Effect.d.mts +0 -216
  343. package/types/src/class/ListDerived.d.mts +0 -38
  344. package/types/src/class/Paths.d.mts +0 -69
  345. package/types/src/class/SafeExit.d.mts +0 -103
  346. package/types/src/class/WorkerMainThreadBundled.d.mts +0 -83
  347. package/types/src/common/Base64URLFromFile.d.mts +0 -16
  348. package/types/src/common/Dev.d.mts +0 -68
  349. package/types/src/common/DevBundled.d.mts +0 -3
  350. package/types/src/common/lazie.d.mts +0 -1
  351. package/types/src/doc/JSautoDOC.d.mts +0 -83
  352. package/types/src/function/GetRuntime.d.mts +0 -2
  353. package/types/src/function/TemplateLiteral.d.mts +0 -22
  354. package/types/src/function/TsToMjs.d.mts +0 -23
  355. package/types/src/types/IsListSignal.d.mts +0 -4
  356. package/types/src/types/ListArg.d.mts +0 -4
  357. package/types/src/types/Runtime.d.mts +0 -4
  358. package/types/src/types/VivthDevCodeBlockStringType.d.mts +0 -4
  359. /package/{types → generated/types}/src/bundler/adds/pluginVivthBundle.d.mts +0 -0
  360. /package/{types → generated/types}/src/class/WorkerResult.d.mts +0 -0
  361. /package/{types → generated/types}/src/common/EventNameSpace.d.mts +0 -0
  362. /package/{types → generated/types}/src/common/eventObjects.d.mts +0 -0
  363. /package/{types → generated/types}/src/common/keys.d.mts +0 -0
  364. /package/{types → generated/types}/src/doc/correctBeforeParse.d.mts +0 -0
  365. /package/{types → generated/types}/src/function/TrySync.d.mts +0 -0
  366. /package/{types → generated/types}/src/function/resolveErrorArray.d.mts +0 -0
  367. /package/{types/src/types → generated/types/src/typehints}/AnyButUndefined.d.mts +0 -0
  368. /package/{types/src/types → generated/types/src/typehints}/ExtnameType.d.mts +0 -0
  369. /package/{types/src/types → generated/types/src/typehints}/LitExpKeyType.d.mts +0 -0
  370. /package/{types/src/types → generated/types/src/typehints}/LitExpResultType.d.mts +0 -0
  371. /package/{types/src/types → generated/types/src/typehints}/MutationType.d.mts +0 -0
  372. /package/{types/src/types → generated/types/src/typehints}/QCBFIFOReturn.d.mts +0 -0
  373. /package/{types/src/types → generated/types/src/typehints}/QCBReturn.d.mts +0 -0
  374. /package/src/{types → typehints}/AnyButUndefined.mjs +0 -0
  375. /package/src/{types → typehints}/ExtnameType.mjs +0 -0
  376. /package/src/{types → typehints}/LitExpKeyType.mjs +0 -0
  377. /package/src/{types → typehints}/MutationType.mjs +0 -0
  378. /package/src/{types → typehints}/QCBFIFOReturn.mjs +0 -0
  379. /package/src/{types → typehints}/QCBReturn.mjs +0 -0
@@ -0,0 +1,30 @@
1
+ export class PathFSDir {
2
+ /**
3
+ * @param {string} relativePath
4
+ * @param {RegExp} rule
5
+ * @param {{shouldNotIncludes:string}} [options]
6
+ * @returns {PathFSDir}
7
+ */
8
+ static vivthDir: (relativePath: string, rule: RegExp, options?: {
9
+ shouldNotIncludes: string;
10
+ }) => PathFSDir;
11
+ /**
12
+ * @param {Parameters<typeof PathFSDir["vivthDir"]>[0]} relativePath
13
+ * @param {Parameters<typeof PathFSDir["vivthDir"]>[2]} [_options]
14
+ * @param {Parameters<typeof PathFSDir["vivthDir"]>[1]} [rule]
15
+ */
16
+ constructor(relativePath: Parameters<(typeof PathFSDir)["vivthDir"]>[0], _options?: Parameters<(typeof PathFSDir)["vivthDir"]>[2], rule?: Parameters<(typeof PathFSDir)["vivthDir"]>[1]);
17
+ /**
18
+ * @type {RegExp}
19
+ */
20
+ get rule(): RegExp;
21
+ /**
22
+ * @returns {string}
23
+ */
24
+ get path(): string;
25
+ /**
26
+ * @returns {string}
27
+ */
28
+ get callerPath(): string;
29
+ #private;
30
+ }
@@ -0,0 +1,48 @@
1
+ /**
2
+ * @description
3
+ * - includes all files, that match the rule to `.asar` specification;
4
+ */
5
+ export class PathFSDir {
6
+ /**
7
+ * @description
8
+ * @param {string} relativePath
9
+ * - relativePath to the `dirname` of the file you are calling this method;
10
+ * @param {RegExp} rule
11
+ * @param {Parameters<typeof import('./PathFSBundles.mjs').PathFSBundles["vivthBundles"]>[1]} [options]
12
+ * @returns {PathFSDir}
13
+ * @example
14
+ * import { PathFSDir } from 'vivth/node';
15
+ *
16
+ * PathFSDir.vivthDir('../src/', /[\s\S]\*[blank]/);
17
+ * // visible for ide inline check: without `[blank]`;
18
+ */
19
+ static vivthDir: (relativePath: string, rule: RegExp, options?: Parameters<typeof import("./PathFSBundles.mjs").PathFSBundles["vivthBundles"]>[1]) => PathFSDir;
20
+ /**
21
+ * @private
22
+ * @param {Parameters<typeof PathFSDir["vivthDir"]>[0]} relativePath
23
+ * @param {Parameters<typeof PathFSDir["vivthDir"]>[2]} [options]
24
+ * @param {Parameters<typeof PathFSDir["vivthDir"]>[1]} [rule]
25
+ */
26
+ private constructor();
27
+ /**
28
+ * @description
29
+ * - rule for dir, to get file any file match the rule inside that directory;
30
+ * @type {RegExp}
31
+ */
32
+ get rule(): RegExp;
33
+ /**
34
+ * @description
35
+ * - relative path of the target to the project root;
36
+ * @returns {string}
37
+ */
38
+ get path(): string;
39
+ /**
40
+ * @description
41
+ * - depending on whether running on bundled or not;
42
+ * - unBundled: absolute disk path of the file caller;
43
+ * - bundled: `blankstring`;
44
+ * @returns {string}
45
+ */
46
+ get callerPath(): string;
47
+ #private;
48
+ }
@@ -0,0 +1,25 @@
1
+ export class PathFSFile {
2
+ /**
3
+ * @param {string} relativePath
4
+ * @param {{shouldNotIncludes:string}} [options]
5
+ * @returns {PathFSFile}
6
+ */
7
+ static vivthFile: (relativePath: string, options?: {
8
+ shouldNotIncludes: string;
9
+ }) => PathFSFile;
10
+ /**
11
+ * @private
12
+ * @param {Parameters<typeof PathFSFile["vivthFile"]>[0]} relativePath
13
+ * @param {Parameters<typeof PathFSFile["vivthFile"]>[1]} [_options]
14
+ */
15
+ private constructor();
16
+ /**
17
+ * @returns {string}
18
+ */
19
+ get path(): string;
20
+ /**
21
+ * @returns {string}
22
+ */
23
+ get callerPath(): string;
24
+ #private;
25
+ }
@@ -0,0 +1,40 @@
1
+ /**
2
+ * @description
3
+ * >- the file are added to `asar` AS IS, OR
4
+ * >- transformed according to the `asar.options.transform` value;
5
+ */
6
+ export class PathFSFile {
7
+ /**
8
+ * @description
9
+ * @param {string} relativePath
10
+ * - to the dirname of the file you are calling this method;
11
+ * @param {Parameters<typeof import('./PathFSBundles.mjs').PathFSBundles["vivthBundles"]>[1]} [options]
12
+ * @returns {PathFSFile}
13
+ * @example
14
+ * import { PathFSFile } from 'vivth/node';
15
+ *
16
+ * PathFSFile.vivthFile('../CompileAS.mjs');
17
+ */
18
+ static vivthFile: (relativePath: string, options?: Parameters<typeof import("./PathFSBundles.mjs").PathFSBundles["vivthBundles"]>[1]) => PathFSFile;
19
+ /**
20
+ * @private
21
+ * @param {Parameters<typeof PathFSFile["vivthFile"]>[0]} relativePath
22
+ * @param {Parameters<typeof PathFSFile["vivthFile"]>[1]} [options]
23
+ */
24
+ private constructor();
25
+ /**
26
+ * @description
27
+ * - relative path of the target to the project root;
28
+ * @returns {string}
29
+ */
30
+ get path(): string;
31
+ /**
32
+ * @description
33
+ * - depending on whether running on bundled or not;
34
+ * - unBundled: absolute disk path of the file caller;
35
+ * - bundled: `blankstring`;
36
+ * @returns {string}
37
+ */
38
+ get callerPath(): string;
39
+ #private;
40
+ }
@@ -1,19 +1,19 @@
1
1
  /**
2
2
  * @description
3
- * - generate `esbuild.Plugin` for changing dev time file into runtime file;
3
+ * - generate `esbuild.Plugin` for changing unbundled time file into runtime file;
4
4
  * - on using esbuild with this plugin, it will:
5
5
  * >- replace any module that have similiar file name but ended with Bundled(before extname);
6
- * >- works on `.mts`|`.ts`|`.mjs`|`.cjs`|`.js`;
7
- * >- `${fileName}.mjs` -> seek for and use `${fileName}Bundled.mjs`, if not found use `${fileName}.mjs`;
8
- * >- removes `Dev.vivthDevCodeBlock` code block;
6
+ * >- works on `.mts`|`.ts`|`.mjs`|`.js`;
7
+ * >- `${fileName}.mjs` -> seek for and use `${fileName}.bundled.mjs`, if not found use `${fileName}.mjs`;
8
+ * >- removes `BundledV.vivthUnBundledCodeBlock` code block;
9
9
  * @param {string} includedInPath
10
10
  * - is generalized path, you can freely uses forward or backward slash;
11
11
  * @returns {ReturnType<CreateESPlugin>}
12
12
  * @example
13
- * import { ToBundledJSPlugin } from 'vivth';
13
+ * import { ToBundledJSPlugin } from 'vivth/node';
14
14
  *
15
15
  * export const myBundledPlugin = ToBundledJSPlugin('/myProjectName/src/');
16
16
  */
17
17
  export function ToBundledJSPlugin(includedInPath: string): ReturnType<typeof CreateESPlugin>;
18
- export function removeVivthDevCodeBlock(originalContent_: string): string;
18
+ export function commonContentFixesBundled(filePath: string, originalContent_: string): string;
19
19
  import { CreateESPlugin } from '../CreateESPlugin.mjs';
@@ -0,0 +1,2 @@
1
+ export function autoExternalize(path: string, targetPath: string, watchPath: string, mapToPath: string, depMap: Map<string, Set<string>>, esbuildPathRebuild: Map<string, () => Promise<any>>): Plugin;
2
+ import type { Plugin } from 'esbuild';
@@ -0,0 +1 @@
1
+ export function emptyBufferValue(): Buffer<ArrayBuffer>;
@@ -0,0 +1 @@
1
+ export function isModuleTheBundledVersion(path: string, ext: string): boolean;
@@ -0,0 +1 @@
1
+ export function onEndEsBuildErrorLogger(errorData: import("esbuild").Message[]): void;
@@ -0,0 +1 @@
1
+ export function resolveJSDependencyPath(jspath: string): Promise<boolean>;
@@ -0,0 +1,48 @@
1
+ /**
2
+ * @typedef {import('../typehints/VivthCleanup.mjs').VivthCleanup} VivthCleanup
3
+ */
4
+ /**
5
+ * @description
6
+ * - `Signal` to unwrap `Promise`;
7
+ * - useful to create underlying mechanism for something like react `Suspense` component;
8
+ * - auto queued for last unwrap request;
9
+ * @template {any} VALUE
10
+ * @template {any[]} ARGS
11
+ * @extends {Signal<VALUE|Promise<VALUE>|Error>}
12
+ * @implements {VivthCleanup}
13
+ * @example
14
+ * import { AwaitSignal, Effect } from 'vivth/neutral'
15
+ * const bigAwaitSignal = new AwaitSignal(fetch('../SomethingReallyBig'));
16
+ * new Effect(async({ subscribe })=>{
17
+ * const myBigLoadProgress = subscribe(bigAwaitSignal).value;
18
+ * const isError = IsInstanceOf(myBigLoadProgress, Error);
19
+ * if(isError){
20
+ * // handle error here
21
+ * return;
22
+ * }
23
+ * const isAPromise = IsInstanceOf(myBigLoadProgress, Promise);
24
+ * if(isAPromise){
25
+ * // handle suspense here;
26
+ * return;
27
+ * }
28
+ * // handle ready state here;
29
+ * })
30
+ */
31
+ export class AwaitSignal<VALUE extends unknown, ARGS extends any[]> extends Signal<Error | VALUE | Promise<VALUE>> implements VivthCleanup {
32
+ /**
33
+ * @param {(...args:ARGS)=>Promise<VALUE>} callback
34
+ * @param {ARGS} firstCallArguments
35
+ */
36
+ constructor(callback: (...args: ARGS) => Promise<VALUE>, ...firstCallArguments: ARGS);
37
+ retryCount: number;
38
+ /**
39
+ * @param {number} maxRetries
40
+ * - `0` for no limit;
41
+ * @param {ARGS} args
42
+ * - integer of retryCount;
43
+ */
44
+ retry: (maxRetries: number, ...args: ARGS) => void;
45
+ #private;
46
+ }
47
+ export type VivthCleanup = import("../typehints/VivthCleanup.mjs").VivthCleanup;
48
+ import { Signal } from './Signal.mjs';
@@ -0,0 +1,82 @@
1
+ /**
2
+ * @description
3
+ * - class with static methods to print to standard console with bare minimum ANSI styles;
4
+ */
5
+ export class Console {
6
+ static #ansi: {
7
+ reset: string;
8
+ bold: string;
9
+ colors: {
10
+ log: string;
11
+ info: string;
12
+ warn: string;
13
+ error: string;
14
+ };
15
+ };
16
+ /**
17
+ * @param {any} data
18
+ * @param {import("../typehints/ConsoleAdditionalSettingType.mjs").ConsoleAdditionalSettingType} args
19
+ * @return {object}
20
+ */
21
+ static #addArgsHandler: (data: any, { now: now_ }: import("../typehints/ConsoleAdditionalSettingType.mjs").ConsoleAdditionalSettingType) => object;
22
+ /**
23
+ * @param {string} prefix
24
+ * @param {'log'|'info'|'error'|'warn'} mode
25
+ * @param {any} data
26
+ * @param {import("../typehints/ConsoleAdditionalSettingType.mjs").ConsoleAdditionalSettingType} [addArgs]
27
+ * @returns {void}
28
+ */
29
+ static #call: (prefix: string, mode: "log" | "info" | "error" | "warn", data: any, addArgs?: import("../typehints/ConsoleAdditionalSettingType.mjs").ConsoleAdditionalSettingType) => void;
30
+ /**
31
+ * @description
32
+ * @param {any} data
33
+ * @param {import("../typehints/ConsoleAdditionalSettingType.mjs").ConsoleAdditionalSettingType} [addArgs]
34
+ * @returns {void}
35
+ * @example
36
+ * import { Console } from 'vivth/neutral';
37
+ *
38
+ * Console.log({
39
+ * hello: 'world!!',
40
+ * });
41
+ */
42
+ static log: (data: any, addArgs?: import("../typehints/ConsoleAdditionalSettingType.mjs").ConsoleAdditionalSettingType) => void;
43
+ /**
44
+ * @description
45
+ * @param {any} data
46
+ * @param {import("../typehints/ConsoleAdditionalSettingType.mjs").ConsoleAdditionalSettingType} [addArgs]
47
+ * @returns {void}
48
+ * @example
49
+ * import { Console } from 'vivth/neutral';
50
+ *
51
+ * Console.info({
52
+ * hello: 'world!!',
53
+ * });
54
+ */
55
+ static info: (data: any, addArgs?: import("../typehints/ConsoleAdditionalSettingType.mjs").ConsoleAdditionalSettingType) => void;
56
+ /**
57
+ * @description
58
+ * @param {any} data
59
+ * @param {import("../typehints/ConsoleAdditionalSettingType.mjs").ConsoleAdditionalSettingType} [addArgs]
60
+ * @returns {void}
61
+ * @example
62
+ * import { Console } from 'vivth/neutral';
63
+ *
64
+ * Console.warn({
65
+ * hello: 'world!!',
66
+ * });
67
+ */
68
+ static warn: (data: any, addArgs?: import("../typehints/ConsoleAdditionalSettingType.mjs").ConsoleAdditionalSettingType) => void;
69
+ /**
70
+ * @description
71
+ * @param {any} data
72
+ * @param {import("../typehints/ConsoleAdditionalSettingType.mjs").ConsoleAdditionalSettingType} [addArgs]
73
+ * @returns {void}
74
+ * @example
75
+ * import { Console } from 'vivth/neutral';
76
+ *
77
+ * Console.error({
78
+ * hello: 'world!!',
79
+ * });
80
+ */
81
+ static error: (data: any, addArgs?: import("../typehints/ConsoleAdditionalSettingType.mjs").ConsoleAdditionalSettingType) => void;
82
+ }
@@ -0,0 +1,25 @@
1
+ /**
2
+ * @description
3
+ * - class helper for signal performant logging, more or less just for type hinting;
4
+ * - internally used as Signal value logging instance;
5
+ * @template {any} VALUE
6
+ */
7
+ export class DataLog<VALUE extends unknown> {
8
+ /**
9
+ * @description
10
+ * @param {VALUE} value
11
+ */
12
+ constructor(value: VALUE);
13
+ /**
14
+ * @description
15
+ * - data value;
16
+ * @type {VALUE}
17
+ */
18
+ value: VALUE;
19
+ /**
20
+ * @description
21
+ * - occurence unix timestamp;
22
+ * @type {number}
23
+ */
24
+ timeStamp: number;
25
+ }
@@ -0,0 +1,74 @@
1
+ /**
2
+ * @description
3
+ * - a class for creating derived version of [Signal](#signal);
4
+ * @template VALUE
5
+ * @extends Signal<VALUE|undefined>
6
+ */
7
+ export class Derived<VALUE> extends Signal<VALUE | undefined> {
8
+ /**
9
+ * @description
10
+ * - Derived used [Signal](#signal) and [Effect](#effect) under the hood;
11
+ * @param {(
12
+ * effectInstanceOptions: Parameters<ConstructorParameters<typeof Effect>[0]>[0] &
13
+ * {
14
+ * dontUpdate:Derived<VALUE>["dontUpdate"]
15
+ * }
16
+ * ) => Promise<Derived<VALUE>["dontUpdate"] | VALUE>
17
+ * } derivedFunction
18
+ * @param {ConstructorParameters<typeof Effect>[1]} [maxTimelapseBeingDebounced]
19
+ * - prevent rapid changes from being unhandled more than the value;
20
+ * - in miliseconds;
21
+ * - default: `2_000`;
22
+ * @example
23
+ * import { Signal, Derived } from 'vivth/neutral';
24
+ *
25
+ * const count = new Signal(0);
26
+ * const double = new Derived(async({
27
+ * subscribe,
28
+ * // : registrar callback for this derived instance, immediately return the signal instance
29
+ * }) => {
30
+ * return subscribe(count).value \* 2;
31
+ * // double listen to count changes, by returning the value, double.value also changes
32
+ * // notice the count.value are accessed double, but it's all safe,
33
+ * // since the wrapped one is the only one that are recorded as notifier.
34
+ * });
35
+ *
36
+ * count.value++;
37
+ */
38
+ constructor(derivedFunction: (effectInstanceOptions: Parameters<ConstructorParameters<typeof Effect>[0]>[0] & {
39
+ dontUpdate: Derived<VALUE>["dontUpdate"];
40
+ }) => Promise<Derived<VALUE>["dontUpdate"] | VALUE>, maxTimelapseBeingDebounced?: ConstructorParameters<typeof Effect>[1]);
41
+ /**
42
+ * @description
43
+ * - return this value to not to update the value of this instance, even when returning early;
44
+ * @type {Symbol}
45
+ * @example
46
+ * import { Signal, Derived } from 'vivth/neutral';
47
+ *
48
+ * const count = new Signal(0);
49
+ * const double = new Derived(async({
50
+ * subscribe,
51
+ * isLastCalled,
52
+ * }) => {
53
+ * if(!(await isLastCalled(100))) {
54
+ * return this.dontUpdate;
55
+ * }
56
+ * const currentValue = subscribe(count).value;
57
+ * const res = await fetch(`some/path/${curentValue.toString()}`);
58
+ * if (
59
+ * !(await isLastCalled()) ||
60
+ * !res
61
+ * ) {
62
+ * // returning early prevent race condition, even if the earlier fetch return late;
63
+ * return this.dontUpdate;
64
+ * // returning this.dontUpdate, will not modify the derived instance value;
65
+ * }
66
+ * count.value++;
67
+ * return res;
68
+ * });
69
+ *
70
+ */
71
+ dontUpdate: Symbol;
72
+ }
73
+ import { Signal } from './Signal.mjs';
74
+ import { Effect } from './Effect.mjs';
@@ -0,0 +1,213 @@
1
+ /**
2
+ * @typedef { import('../typehints/VivthCleanup.mjs').VivthCleanup } VivthCleanup
3
+ */
4
+ /**
5
+ * @type {Map<Effect, Set<Signal<any>>>}
6
+ */
7
+ export const mapOfEffects: Map<Effect, Set<Signal<any>>>;
8
+ /**
9
+ * @description
10
+ * - a class for creating effect;
11
+ * - behaviour:
12
+ * >- doesn't autosubscribe at first run;
13
+ * >- it is using passed <b>subscribe</b> named `arg0` options as subscriber;
14
+ * >- doesn't block other queues during first run;
15
+ * >- can dynamically subscribes to signal, even on conditionals, that are not run during first run;
16
+ * @implements {VivthCleanup}
17
+ */
18
+ export class Effect implements VivthCleanup {
19
+ /**
20
+ * @type {WeakMap<Object, ()=>void>}
21
+ */
22
+ static #mapCurrentCleanupCallback: WeakMap<Object, () => void>;
23
+ /**
24
+ * @description
25
+ * @param {(
26
+ * arg0: Effect["options"]
27
+ * ) => Promise<void>
28
+ * } effect
29
+ * @param {number} [maxTimelapseBeingDebounced]
30
+ * - prevent rapid changes from being unhandled more than the value;
31
+ * - in miliseconds;
32
+ * - default: `2_000`;
33
+ * @example
34
+ * import { Signal, Derived, Effect, Console } from 'vivth/neutral';
35
+ *
36
+ * const count = new Signal(0);
37
+ *
38
+ * // double listen to count changes
39
+ * const double = new Derived(async({subscribe}) => subscribe(count).value \* 2);
40
+ *
41
+ * new Effect(async ({
42
+ * subscribe, // : registrar callback for this effect instance, immediately return the signal instance
43
+ * removeEffect, // : disable this effect instance from reacting to dependency changes;
44
+ * isLastCalled, // : check whether this callback run is this instance last called effect;
45
+ * }) => {
46
+ * const { value: currentValue, prev: prevValue } = subscribe(double); // effect listen to double changes
47
+ * Console.log({ currentValue, prevValue });
48
+ * })
49
+ *
50
+ * count.value++;
51
+ */
52
+ constructor(effect: (arg0: Effect["options"]) => Promise<void>, maxTimelapseBeingDebounced?: number);
53
+ vivthCleanup: () => Promise<void>;
54
+ /**
55
+ * @description
56
+ * - collections of methods to handle effect calls of this instance;
57
+ */
58
+ options: {
59
+ /**
60
+ * @instance options
61
+ * @description
62
+ * - subscribe to `Signal_instance`;
63
+ * - normally it's passed as argument to constructor, however it is also accessible from `options` property;
64
+ * @template {Signal<any>} SIGV
65
+ * @param {SIGV} signalInstance
66
+ * @returns {SIGV}
67
+ * @example
68
+ * import { Signal, Effect } from 'vivth/neutral';
69
+ *
70
+ * const signal1 = new Signal(0);
71
+ * const signal2 = new Signal(true);
72
+ * const signal3 = new Signal(true);
73
+ * const effect = new Effect(async ({ subscribe }) => {
74
+ * const signal1Value = subscribe(signal1).value;
75
+ * if(signal1Value % 2){
76
+ * // only subscribe to signal3, on conditional block
77
+ * const signal3Value = subscribe(signal3).value;
78
+ * }
79
+ * })
80
+ * effect.options.subscribe(signal2);
81
+ */
82
+ subscribe: <SIGV extends Signal<any>>(signalInstance: SIGV) => SIGV;
83
+ /**
84
+ * @instance options
85
+ * @description
86
+ * - the same with `.options.subscribe`, but for batches subscription;
87
+ * - ideal for first run which to add signal to subscription on main condition;
88
+ * - normally it's passed as argument to constructor, however it is also accessible from `options` property;
89
+ * @template {ReadonlyArray<any>} T
90
+ * @param {T} signalInstances
91
+ * @returns {T}
92
+ * @example
93
+ * import { Signal, Effect } from 'vivth/neutral';
94
+ *
95
+ * const signal1 = new Signal(0);
96
+ * const signal2 = new Signal(true);
97
+ * const effect = new Effect(async ({ subscribes }) => {
98
+ * const [{value: signal1Value}, {value: signal2Value}]= subscribes([signal1, signal2]);
99
+ * })
100
+ */
101
+ subscribes: <T extends ReadonlyArray<any>>(signalInstances: T) => T;
102
+ /**
103
+ * @instance options
104
+ * @description
105
+ * - normally it's passed as argument to constructor, however it is also accessible from `options` property;
106
+ * @type {()=>void}
107
+ * @example
108
+ * import { Effect } from 'vivth/neutral';
109
+ *
110
+ * const effect = new Effect(async ({removeEffect}) => {
111
+ * if(someCondition){
112
+ * removeEffect();
113
+ * return
114
+ * }
115
+ * })
116
+ * // OR
117
+ * effect.options.removeEffect();
118
+ */
119
+ removeEffect: () => void;
120
+ /**
121
+ * @description
122
+ * - remove inputed signal from this `Effect_instance`;
123
+ * - if effect signal has no other `Signal_instance` to listen to, it will then completely rendered non reactive;
124
+ * - normally it's passed as argument to constructor, however it is also accessible from `options` property;
125
+ * @param {Signal<any>} signalInstance
126
+ * @returns {void}
127
+ * @example
128
+ * import { Effect, Signal } from 'vivth/neutral';
129
+ *
130
+ * const count = new Signal(0);
131
+ * const effect = new Effect(async ({ subscribe }) => {
132
+ * console.log(subscribe(count).value); // will subscribe count changes;
133
+ * })
134
+ * count.value++; // will increase the count and trigger effect;
135
+ * effect.options.removeSignal(count);
136
+ * count.value++; // will increase the count but will no longer trigger effect;
137
+ */
138
+ removeSignal: (signalInstance: Signal<any>) => void;
139
+ /**
140
+ * @description
141
+ * - remove inputed `SignalCollection` from this `Effect_instance`;
142
+ * - normally it's passed as argument to constructor, however it is also accessible from `options` property;
143
+ * @param {import('./SignalCollection.mjs').SignalCollection<Record<string, Signal<any>>>} collectionInstance
144
+ * @returns {void}
145
+ * @example
146
+ * import { Signal, Derived, Effect, SignalCollection } from 'vivth/neutral';
147
+ *
148
+ * const a = new Signal('a');
149
+ * const b = new Signal('b');
150
+ * const c = new Derived(async ({ subscribe }) => {
151
+ * return `${subscribe(b).value}_b`;
152
+ * });
153
+ * const f = new SignalCollection({ a, c });
154
+ *
155
+ * const e = new Effect(async ({ subscribe, isLastCalled, removeCollection }) => {
156
+ * const {
157
+ * a: { value: aa }, // safely desctructured and auto subscribed
158
+ * c: { value: cc }, // safely desctructured and auto subscribed
159
+ * } = f.signals(subscribe);
160
+ * if(!await isLastCalled(100)) {
161
+ * return; // impertaive debounce
162
+ * }
163
+ * // removeCollection(f); // standard call from outside callback;
164
+ * });
165
+ * // optional call from outside callback;
166
+ * e.options.removeCollection(f)
167
+ */
168
+ removeCollection: (collectionInstance: import("./SignalCollection.mjs").SignalCollection<Record<string, Signal<any>>>) => void;
169
+ /**
170
+ * @instance options
171
+ * @description
172
+ * @returns {(timeoutMS?:number)=>Promise<boolean>}
173
+ * - timeoutMS only necessary if the operation doesn't naturally await;
174
+ * - if it's operation such as `fetch`, you can just leave it blank;
175
+ * @example
176
+ *
177
+ * import { Effect } from 'vivth/neutral';
178
+ *
179
+ * const effect = new Effect(async ({ isLastCalled }) => {
180
+ * if (!(await isLastCalled(100))) {
181
+ * return;
182
+ * }
183
+ * // OR
184
+ * const res = await fetch('some/path');
185
+ * if (!(await isLastCalled(
186
+ * // no need to add timeoutMS argument, as fetch are naturally add delay;
187
+ * ))) {
188
+ * return;
189
+ * }
190
+ * })
191
+ */
192
+ readonly isLastCalled: (timeoutMS?: number) => Promise<boolean>;
193
+ } & {
194
+ [FactoryKey]: FACTORY;
195
+ };
196
+ /**
197
+ * @description
198
+ * - normally is to let to be automatically run when dependency signals changes, however it's also accessible as instance method;
199
+ * @type {()=>void}
200
+ * @example
201
+ * import { Effect } from 'vivth/neutral';
202
+ *
203
+ * const effect = new Effect(async ()=>{
204
+ * // code
205
+ * })
206
+ * effect.run();
207
+ */
208
+ run: () => void;
209
+ #private;
210
+ }
211
+ export type VivthCleanup = import("../typehints/VivthCleanup.mjs").VivthCleanup;
212
+ import { Signal } from './Signal.mjs';
213
+ import { FactoryKey } from '../common/FactoryKey.mjs';
@@ -8,6 +8,10 @@ export class EnvSignal<VALUE> {
8
8
  * @description
9
9
  * - create `EnvSignal` instance;
10
10
  * @param {VALUE} initialValue
11
+ * @example
12
+ * import { EnvSignal } from 'vivth/neutral';
13
+ *
14
+ * export const myEnv = new EnvSignal(true);
11
15
  */
12
16
  constructor(initialValue: VALUE);
13
17
  /**
@@ -15,7 +19,7 @@ export class EnvSignal<VALUE> {
15
19
  * - exposed property to listen to;
16
20
  * @type {Derived<VALUE>}
17
21
  * @example
18
- * import { EnvSignal, Effect } from 'vivth';
22
+ * import { EnvSignal, Effect } from 'vivth/neutral';
19
23
  *
20
24
  * export const myEnv = new EnvSignal(true);
21
25
  * new Effect(async ({ subscribe }) => {
@@ -31,7 +35,7 @@ export class EnvSignal<VALUE> {
31
35
  * @param {VALUE} correctedValue
32
36
  * @returns {void}
33
37
  * @example
34
- * import { EnvSignal } from 'vivth';
38
+ * import { EnvSignal } from 'vivth/neutral';
35
39
  *
36
40
  * export const myEnv = new EnvSignal(true);
37
41
  *