vivth 1.4.10 → 1.5.1

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 +28 -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 +78 -42
  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} +56 -77
  214. package/src/class/WorkerMainThread.mjs +98 -94
  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 -142
  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
@@ -1,22 +1,24 @@
1
1
  /**
2
2
  * @description
3
- * - opinionated bundler for extension below using esbuild;
3
+ * - opinionated bundler for limited extensions using esbuild;
4
4
  * - bundles all imports into a single output string;
5
5
  * @param {Object} options
6
6
  * @param {string} options.content
7
7
  * - the code can also uses composites from the result from multiple readFiles;
8
8
  * @param {string} options.root
9
9
  * - use dirname of said fileString path;
10
- * @param {'.mts'|'.ts'|'.mjs'|'.cjs'} options.extension
10
+ * @param {'.mts'|'.ts'|'.mjs'} options.extension
11
+ * - supported extension;
11
12
  * @param {boolean} [options.withBinHeader]
12
13
  * @param {Omit<Parameters<build>[0],
13
- * 'entryPoints'|'bundle'|'write'|'sourcemap'>
14
+ * 'entryPoints'|'bundle'|'write'|'sourcemap'|'outdir'|'splitting'|'format'>
14
15
  * } [esbuildOptions]
16
+ * - assume `esm`;
15
17
  * @returns {ReturnType<typeof TryAsync<string>>}
16
18
  * @example
17
- * import { EsBundler } from 'vivth';
19
+ * import { EsBundler } from 'vivth/node';
18
20
  *
19
- * const bundledString = EsBundler(
21
+ * const [bundledString, errorBundling] = EsBundler(
20
22
  * {
21
23
  * content: ``,
22
24
  * extension: '.mts',
@@ -29,8 +31,8 @@
29
31
  export function EsBundler({ content, extension, root, withBinHeader }: {
30
32
  content: string;
31
33
  root: string;
32
- extension: ".mts" | ".ts" | ".mjs" | ".cjs";
34
+ extension: ".mts" | ".ts" | ".mjs";
33
35
  withBinHeader?: boolean | undefined;
34
- }, esbuildOptions?: Omit<Parameters<typeof build>[0], "entryPoints" | "bundle" | "write" | "sourcemap">): ReturnType<typeof TryAsync<string>>;
36
+ }, esbuildOptions?: Omit<Parameters<typeof build>[0], "entryPoints" | "bundle" | "write" | "sourcemap" | "outdir" | "splitting" | "format">): ReturnType<typeof TryAsync<string>>;
35
37
  import { build } from 'esbuild';
36
38
  import { TryAsync } from '../function/TryAsync.mjs';
@@ -0,0 +1,58 @@
1
+ /**
2
+ * @description
3
+ * - collections of static method to process content for:
4
+ * >- `FSasar`;
5
+ * - mostly used internally;
6
+ */
7
+ export class FSAnalyzer {
8
+ /**
9
+ * @typedef {typeof import('@electron/asar')["createPackageFromFiles"]} createPackageFromFiles
10
+ */
11
+ /**
12
+ * @description
13
+ * - to be used on bundled content;
14
+ * @param {string} entryPoint
15
+ * @param {string} content
16
+ * @param {Object} asarConfig
17
+ * @param {Parameters<createPackageFromFiles>[3]} [asarConfig.InputMetadata]
18
+ * @param {Parameters<createPackageFromFiles>[4]} [asarConfig.options]
19
+ * @param {string} bundledJSFilePath
20
+ * @returns {ReturnType<typeof TryAsync<string>>}
21
+ * @example
22
+ * import { readFile } from 'node:fs/promises';
23
+ *
24
+ * import { FSAnalyzer } from 'vivth/node';
25
+ * import { Preferrence } from 'vivth/neutral';
26
+ *
27
+ * const filePath = 'README.md';
28
+ * const [resultFinalContent, errorFinalContent] = await FSAnalyzer.finalContent(
29
+ * filePath,
30
+ * await readFile(filePath, {encoding: Preferrence.encoding}),
31
+ * 'esm',
32
+ * {},
33
+ * ...args
34
+ * );
35
+ */
36
+ static finalContent: (entryPoint: string, content: string, asarConfig: {
37
+ InputMetadata?: Parameters<typeof createPackageFromFiles>[3];
38
+ options?: Parameters<typeof createPackageFromFiles>[4];
39
+ }, bundledJSFilePath: string) => ReturnType<typeof TryAsync<string>>;
40
+ /**
41
+ * return regex as string from template literal that are supposed to be regex
42
+ * @param {string} str
43
+ * @returns {RegExp}
44
+ */
45
+ static #hydrateRegex: (str: string) => RegExp;
46
+ /**
47
+ * @param {string} rootPath
48
+ * @param {string} content
49
+ * @param {Parameters<typeof FSAnalyzer["finalContent"]>[2]} asarConfig
50
+ * @param {string} bundledJSFile
51
+ * @returns {Promise<void>}
52
+ */
53
+ static #analyze_asarFile: (rootPath: string, content: string, asarConfig: Parameters<(typeof FSAnalyzer)["finalContent"]>[2], bundledJSFile: string) => Promise<void>;
54
+ }
55
+ import { TryAsync } from '../function/TryAsync.mjs';
56
+ type createPackageFromFiles = typeof import("@electron/asar")["createPackageFromFiles"];
57
+ import { createPackageFromFiles } from '@electron/asar';
58
+ export {};
@@ -0,0 +1,28 @@
1
+ export class FSasar {
2
+ /**
3
+ * @typedef {import('./adds/PathFSDir.mjs').PathFSDir} PathFSDir
4
+ */
5
+ /**
6
+ * @param {PathFSFile} filePathFromProject
7
+ * @returns {Promise<undefined|Buffer<ArrayBufferLike>>}
8
+ */
9
+ static file: (filePathFromProject: PathFSFile) => Promise<undefined | Buffer<ArrayBufferLike>>;
10
+ /**
11
+ * @description
12
+ * - helper function for asar dir;
13
+ * @param {PathFSDir} pathFSDirInstance
14
+ * @returns {{
15
+ * forEachFiles:(loopCallback:(pathDetail:{inputRelative:string, asar:string})=>void)=>void,
16
+ * getFile:(relativeFromDir:string)=> ReturnType<typeof FSasar["file"]>
17
+ * }}
18
+ * - forEachFiles are looped async without awaiting any iterations;
19
+ */
20
+ static dir: (pathFSDirInstance: import("./adds/PathFSDir.mjs").PathFSDir) => {
21
+ forEachFiles: (loopCallback: (pathDetail: {
22
+ inputRelative: string;
23
+ asar: string;
24
+ }) => void) => void;
25
+ getFile: (relativeFromDir: string) => ReturnType<(typeof FSasar)["file"]>;
26
+ };
27
+ }
28
+ import { PathFSFile } from './adds/PathFSFile.mjs';
@@ -0,0 +1,51 @@
1
+ /**
2
+ * @description
3
+ * - class helper to bundle assets files as `.asar`;
4
+ * >- as `type: "buffer"`;
5
+ * >- uses `[at]electron/asar` under the hood;
6
+ * - use only if you are planning to use [CompileJS](#compilejs);
7
+ * >- the class static methods don't obfuscate target file;
8
+ * >- don't embed any sensitive content using this methods of `CompileJS`;
9
+ * >- it's better to place it on `.env`;
10
+ */
11
+ export class FSasar {
12
+ /**
13
+ * @typedef {import('./adds/PathFSDir.mjs').PathFSDir} PathFSDir
14
+ */
15
+ /**
16
+ * @description
17
+ * @param {PathFSFile} pathFSFPathFSFileInstance
18
+ * @returns {Promise<Buffer<ArrayBufferLike>>}
19
+ * @example
20
+ * import { FSasar, PathFSFile } from 'vivth/node';
21
+ *
22
+ * const fileBuffer = await FSasar.file(PathFSFile.vivth[blank]File('../function/myModule.mjs'));
23
+ */
24
+ static file(pathFSFPathFSFileInstance: PathFSFile): Promise<Buffer<ArrayBufferLike>>;
25
+ /**
26
+ * @description
27
+ * - helper function for asar dir;
28
+ * @param {PathFSDir} pathFSDirInstance
29
+ * @returns {{
30
+ * forEachFiles:(loopCallback:(pathDetail:{inputRelative:string, asar:string})=>void)=>void,
31
+ * getFile:(relativeFromDir:string)=> ReturnType<typeof FSasar["file"]>
32
+ * }}
33
+ * - forEachFiles are looped async without awaiting any iterations;
34
+ * @example
35
+ * import { FSasar, PathFSDir } from 'vivth/node';
36
+ *
37
+ * const { forEachFiles, getFile } = FSasar.dir(PathFSDir.vivthDir('../function/', /[\s\S]\*[noblank]/)); // without `[noblank]`;
38
+ * forEachFiles(async ({ inputRelative, asar }) => {
39
+ * // handle `inputRelative` with getFile; OR
40
+ * // handle `asar` with FSasar.file
41
+ * });
42
+ */
43
+ static dir: (pathFSDirInstance: import("./adds/PathFSDir.mjs").PathFSDir) => {
44
+ forEachFiles: (loopCallback: (pathDetail: {
45
+ inputRelative: string;
46
+ asar: string;
47
+ }) => void) => void;
48
+ getFile: (relativeFromDir: string) => ReturnType<(typeof FSasar)["file"]>;
49
+ };
50
+ }
51
+ import { PathFSFile } from './adds/PathFSFile.mjs';
@@ -0,0 +1,137 @@
1
+ /**
2
+ * @typedef {import('../typehints/VivthCleanup.mjs').VivthCleanup} VivthCleanup
3
+ */
4
+ /**
5
+ * @description
6
+ * - each file can define it's own `targetPaths` inline by adding comment then fullpath on the begining of the file:
7
+ * >- `mjs`;
8
+ * ```js
9
+ * // D://my/path/something.mjs
10
+ * // D://my/path/something-else.mjs
11
+ *
12
+ * console.log('hello');
13
+ * ```
14
+ * >- `scss`;
15
+ * ```scss
16
+ * /*[blank] D://my/path/something.css *[blank]/
17
+ *
18
+ * $somecolor: black;
19
+ *
20
+ * body {
21
+ * background-color: $somecolor;
22
+ * }
23
+ * ```
24
+ * >- `.ignore`;
25
+ * ```.ignore
26
+ * # D:/my/project/root/.gitignore
27
+ * # D:/my/project/root/.npmignore
28
+ *
29
+ * /dev/
30
+ * ```
31
+ * - files extention:
32
+ * >- `js`/`ts` files will be compiled with `vivth/node.EsWathcer`, using `option.esbuild` as argument;
33
+ * >- `sass`/`scss` it will be compiled to `css` first;
34
+ * >- other than those files, they will be just copied to `targetPaths`;
35
+ * - for runtime example see file `/dev/auto/` on source code;
36
+ * @implements {VivthCleanup}
37
+ */
38
+ export class FileSelfMapper implements VivthCleanup {
39
+ /**
40
+ * @param { string } path
41
+ * @param { (path:{mapTo:string, src:string}, content:string)=>(string|false) } [postprosess]
42
+ * @returns { Promise<void> }
43
+ */
44
+ static #writeCommon: (path: string, postprosess?: (path: {
45
+ mapTo: string;
46
+ src: string;
47
+ }, content: string) => (string | false)) => Promise<void>;
48
+ /**
49
+ * @param { string } path
50
+ * @returns { Promise<void> }
51
+ */
52
+ static #bundleSCSS: (path: string) => Promise<void>;
53
+ /**
54
+ * @param {string[]} esbuildExternal
55
+ * @returns {Set<string>}
56
+ */
57
+ static #createBrowserExternals: (esbuildExternal: string[]) => Set<string>;
58
+ /**
59
+ * @param {()=>boolean} isLastOnQ
60
+ * @param {string} path
61
+ * @param {string} tempPath
62
+ * @param {string} target
63
+ * @returns {Promise<void>}
64
+ */
65
+ static #onJSDependencyChanges1: (isLastOnQ: () => boolean, path: string, tempPath: string, target: string) => Promise<void>;
66
+ /**
67
+ * @param {()=>boolean} isLastOnQ
68
+ * @param {string} path
69
+ * @param {string} tempPath
70
+ * @param {QChannel<string>} q
71
+ * @returns {Promise<void>}
72
+ */
73
+ static #onJSDependencyChanges0: (isLastOnQ: () => boolean, path: string, tempPath: string, q: QChannel<string>) => Promise<void>;
74
+ /**
75
+ * @param {string} tempPath
76
+ * @param {string} path
77
+ * @param {QChannel<string>} q
78
+ * @returns {Promise<void>}
79
+ */
80
+ static #onJSDependencyChanges: (tempPath: string, path: string, q: QChannel<string>) => Promise<void>;
81
+ /**
82
+ * @param { string } path
83
+ * @returns { Promise<{
84
+ * targetPaths: Set<string>,
85
+ * content: string,
86
+ * }> }
87
+ */
88
+ static #getTargetPath: (path: string) => Promise<{
89
+ targetPaths: Set<string>;
90
+ content: string;
91
+ }>;
92
+ /**
93
+ * @param {string} watcherFullPath
94
+ * @param {string} path
95
+ * @returns { string }
96
+ */
97
+ static #getRelative: (watcherFullPath: string, path: string) => string;
98
+ /**
99
+ * @description
100
+ * @param {string} watchPath
101
+ * - `relative`(to `Paths.root`) OR `absolute`, both are accepted;
102
+ * @param {Object} options
103
+ * @param {Omit<Parameters<import('esbuild')["context"]>[0], "write"|"minify"|"format"|"mainFields"|"outfile"|"bundle">} [options.esbuild]
104
+ * - `logLimit`: default = `3`;
105
+ * - `outFile`: auto determined by comment line on top level of each files;
106
+ * - `minify`: determined by file `relativePath`(to dirname of `watchpath`) name included `.min.`;
107
+ * - `format`: determined by file `relativePath`(to dirname of `watchpath`) name included `.esm.` or `.iife.`;
108
+ * - `mainFields`: `module,main`;
109
+ * - `bundle`: automatically added by `vivth.FileSelfMapper`;
110
+ * - `write`: automatically added by `vivth.FileSelfMapper`;
111
+ * @param {boolean} [options.deleteTempFilesAfterExit]
112
+ * @param {(path:{mapTo:string, src:string}, content:string)=>(string|false)} [options.postProcessDirectCopy]
113
+ * - works for:
114
+ * >- `.js`;
115
+ * >- anything that are not `sass` and `module js/ts`;
116
+ * - return `false` to exclude `target` from mapping;
117
+ * @example
118
+ * import { FileSelfMapper } from 'vivth/node';
119
+ *
120
+ * new FileSelfMapper('../ssg-assets/', {
121
+ * esbuild: {},
122
+ * // deleteTempFilesAfterExit: true,
123
+ * });
124
+ */
125
+ constructor(watchPath: string, options: {
126
+ esbuild?: Omit<import("esbuild").SameShape<import("esbuild").BuildOptions, import("esbuild").BuildOptions>, "bundle" | "outfile" | "mainFields" | "write" | "format" | "minify"> | undefined;
127
+ deleteTempFilesAfterExit?: boolean | undefined;
128
+ postProcessDirectCopy?: ((path: {
129
+ mapTo: string;
130
+ src: string;
131
+ }, content: string) => (string | false)) | undefined;
132
+ });
133
+ vivthCleanup: () => Promise<void>;
134
+ #private;
135
+ }
136
+ export type VivthCleanup = import("../typehints/VivthCleanup.mjs").VivthCleanup;
137
+ import { QChannel } from '../class/QChannel.mjs';
@@ -0,0 +1,128 @@
1
+ /**
2
+ * @typedef {import('../typehints/VivthCleanup.mjs').VivthCleanup} VivthCleanup
3
+ */
4
+ /**
5
+ * @import {Stats} from 'node:fs'
6
+ * @import {EventName} from 'chokidar/handler.js'
7
+ * @import {Plugin,BuildOptions} from 'esbuild'
8
+ */
9
+ /**
10
+ * @description
11
+ * - class helper for one to one Mapping JS files;
12
+ * - only bundles `.mts` AND `.mjs` in the `path.watch` directory, extension restriction to module as to enforce:
13
+ * >- `esm` style input;
14
+ * >- to not confuse IDE and esbuild resolver of extensionless static import;
15
+ * @template {BuildOptions} OPT
16
+ * @implements {VivthCleanup}
17
+ */
18
+ export class JSDirMapper<OPT extends BuildOptions> implements VivthCleanup {
19
+ /**
20
+ * @param {string} path
21
+ * @returns {string}
22
+ */
23
+ static #correctEndpointExt: (path: string) => string;
24
+ /**
25
+ * @description
26
+ * @param {Object} path
27
+ * - `relative`(to `Paths.root`) OR `absolute`, both are accepted;
28
+ * - handles:
29
+ * >- `.mts`,`.mjs`: bundled;
30
+ * >- `.css`: minified;
31
+ * >-`.scss`, `sass`: two step bundling;
32
+ * >>- bundle to `.s.css` at source path;
33
+ * >>- write to `.s.css` on target path;
34
+ * >- `.as.ts` and it's companion `js` will be dealt accordingly based on `options.asTsToMjsHandler`;
35
+ * >>- `.ts` and `.js` that are not `.wasm` related are ignored;
36
+ * >- everything else will be copied as is;
37
+ * @param {string} path.watch
38
+ * - watch this path for changes;
39
+ * @param {string} path.mapTo
40
+ * - bundles to this path
41
+ * @param {(
42
+ * arg0:
43
+ * {
44
+ * source:string;
45
+ * target:string;
46
+ * eventName:EventName;
47
+ * }
48
+ * )=>Promise<{
49
+ * shouldProcessDefault:
50
+ * boolean|{selfCleanup:()=>Promise<void>};
51
+ * }>
52
+ * } [path.filter]
53
+ * - handler trap before sending it to
54
+ * @param {Object} options
55
+ * @param {Object} options.esbuild
56
+ * @param {Omit<ConstructorParameters<typeof EsWatcher<OPT>>[0],
57
+ * "entryPoints"|
58
+ * "outFile"|
59
+ * "write"|
60
+ * "format"|
61
+ * "bundle"|
62
+ * "logLevel"|
63
+ * "mainFields"
64
+ * >} options.esbuild.buildOptions
65
+ * - `logLimit`: default = `3`;
66
+ * - `entryPoints`: auto filled with `path.watch` + filepath;
67
+ * - `outFile`: auto filled with `path.mapTo` + filepath(suffixed with `.mjs`);
68
+ * - `write`: auto filled by `vivth.JSDirMapper`;
69
+ * - `mainFields`: auto filled by `vivth.JSDirMapper`, ['module', 'main'];
70
+ * - `format`: auto filled by `vivth.JSDirMapper`, always `esm`;
71
+ * - `bundle`: auto filled by `vivth.JSDirMapper`, always `true`;
72
+ * - `logLevel`: auto filled by `vivth.JSDirMapper`;
73
+ * @param {ConstructorParameters<typeof EsWatcher<OPT>>[1]} [options.esbuild.watchOption]
74
+ * @param {Parameters<typeof TsToMjs>[1]} [options.asTsToMjsHandler]
75
+ * - argument[1] used for `.as.ts` extention(assemblyscript to `.wasm` + `.mjs` loader):
76
+ * >- handled via `vivth.TsToMjs`;
77
+ * >- preferably to be isolated on a single folder;
78
+ * - when falsy -> ignore `.as.ts`;
79
+ * @example
80
+ * import process from 'node:process';
81
+ *
82
+ * import { SafeExit, Paths, JSDirMapper } from 'vivth/node';
83
+ *
84
+ * new Paths({
85
+ * root: process.env.INIT_CWD ?? process.cwd(),
86
+ * });
87
+ *
88
+ * new SafeExit('SIGINT', 'SIGTERM');
89
+ *
90
+ * new JSDirMapper(
91
+ * {
92
+ * mapTo: '/test/jsdirmapped/',
93
+ * watch: '/test/jsdirmapper/',
94
+ * },
95
+ * {
96
+ * esbuild: { buildOptions: { platform: 'browser' } },
97
+ * asTsToMjsHandler: { assemblyScriptOptions: {} },
98
+ * },
99
+ * );
100
+ *
101
+ */
102
+ constructor({ mapTo, watch, filter }: {
103
+ watch: string;
104
+ mapTo: string;
105
+ filter?: ((arg0: {
106
+ source: string;
107
+ target: string;
108
+ eventName: EventName;
109
+ }) => Promise<{
110
+ shouldProcessDefault: boolean | {
111
+ selfCleanup: () => Promise<void>;
112
+ };
113
+ }>) | undefined;
114
+ }, { esbuild, asTsToMjsHandler }: {
115
+ esbuild: {
116
+ buildOptions: Omit<ConstructorParameters<typeof EsWatcher<OPT>>[0], "entryPoints" | "outFile" | "write" | "format" | "bundle" | "logLevel" | "mainFields">;
117
+ watchOption?: ConstructorParameters<typeof EsWatcher<OPT>>[1];
118
+ };
119
+ asTsToMjsHandler?: Parameters<typeof TsToMjs>[1];
120
+ });
121
+ vivthCleanup: () => Promise<void>;
122
+ #private;
123
+ }
124
+ export type VivthCleanup = import("../typehints/VivthCleanup.mjs").VivthCleanup;
125
+ import type { BuildOptions } from 'esbuild';
126
+ import type { EventName } from 'chokidar/handler.js';
127
+ import { EsWatcher } from '../class/EsWatcher.mjs';
128
+ import { TsToMjs } from '../function/TsToMjs.mjs';
@@ -0,0 +1,63 @@
1
+ /**
2
+ * @description
3
+ * - function to:
4
+ * >- spawn watcher on `source`;
5
+ * >- run the `source`;
6
+ * >- compile `source` to target on `SafeExit`;
7
+ * - this function assume `Paths` and `SafeExit` to be instantiated;
8
+ * @param {Object} options
9
+ * @param {boolean} options.showLog
10
+ * @param {string} options.source
11
+ * - filepath for source;
12
+ * - `relative`(to `Paths.root`) OR `absolute`, both are accepted;
13
+ * @param {string} options.target
14
+ * - dirpath for compile target;
15
+ * - `relative`(to `Paths.root`) OR `absolute`, both are accepted;
16
+ * @param {string[]} [options.additionalSpawnArgument]
17
+ * @param {Omit<
18
+ * Parameters<typeof import('./CompileJS.mjs').CompileJS>[0],
19
+ * "entryPoint"|
20
+ * "outDir"
21
+ * >} [options.compileJSargs]
22
+ * @returns {ReturnType<typeof TryAsync<import('../typehints/VivthCleanup.mjs').VivthCleanup>>}
23
+ * @example
24
+ * import { RunWatchThenCompileJSOnSafeExit } from "vivth/node";
25
+ *
26
+ * // assume `Paths` and `SafeExit` to be instantiated;
27
+ * await RunWatchThenCompileJSOnSafeExit({
28
+ * showLog: false,
29
+ * source: '/test/watchrun/hi.mjs',
30
+ * target: '/test/watchrun/compile-bun/',
31
+ * compileJSargs: {
32
+ * minifyFirst: false,
33
+ * esbuildOptions: {},
34
+ * compilerArguments: {
35
+ * target: 'bun-win-x64',
36
+ * },
37
+ * asar: {},
38
+ * encoding: 'utf-8',
39
+ * },
40
+ * })
41
+ */
42
+ export function RunWatchThenCompileJSOnSafeExit({ source, target, additionalSpawnArgument, compileJSargs, showLog, }: {
43
+ showLog: boolean;
44
+ source: string;
45
+ target: string;
46
+ additionalSpawnArgument?: string[] | undefined;
47
+ compileJSargs?: Omit<{
48
+ entryPoint: string;
49
+ encoding?: BufferEncoding | undefined;
50
+ preprocessEntryPoint?: ((entryPointContent: string) => string) | undefined;
51
+ minifyFirst?: boolean | undefined;
52
+ asar?: {
53
+ InputMetadata?: Parameters<typeof import("@electron/asar")["createPackageFromFiles"]>[3];
54
+ options?: Parameters<typeof import("@electron/asar")["createPackageFromFiles"]>[4];
55
+ } | undefined;
56
+ outDir: string;
57
+ bunCompilerArguments?: Record<string, string | string[]> | undefined;
58
+ esBundlerPlugins?: import("esbuild").Plugin[] | undefined;
59
+ esbuildOptions?: Parameters<typeof import("./EsBundler.mjs").EsBundler>[1];
60
+ additionalCommandArgument?: string[] | undefined;
61
+ }, "entryPoint" | "outDir"> | undefined;
62
+ }): ReturnType<typeof TryAsync<import("../typehints/VivthCleanup.mjs").VivthCleanup>>;
63
+ import { TryAsync } from '../function/TryAsync.mjs';
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @description
3
+ * - esbuild external `Set` for browser platform;
4
+ * - this Set is automatically applied to [FileSelfMapper](#fileselfmapper) and [EsBundler](#esbundler) if platform is equal to browser;
5
+ * - while `vivth` already exports environtment specific(`node`, `browser`, `neutral`) via `vivth/node.JSAutoDoc`, there are possibility of other library might bleeded out when trying to:
6
+ * >- use esbuild;
7
+ * >- earlier version of `vivth`;
8
+ * >- importing from `vivth`, which is definitely bleeded out, and you need to import from proper `exports`;
9
+ * >- importing from `vivth/all`, which is definitely bleeded out, and you need to import from proper `exports`;
10
+ * @type {Set<string>}
11
+ * @example
12
+ * import { BrowserExternals } from 'vivth/node';
13
+ * import { build } from 'esbuild';
14
+ *
15
+ * await build({
16
+ * ...esbuildOptions,
17
+ * platform: 'browser',
18
+ * external: Array.from(BrowserExternals),
19
+ * });
20
+ */
21
+ export const BrowserExternals: Set<string>;
@@ -0,0 +1,26 @@
1
+ /**
2
+ * @description
3
+ * - function helper to turn string into `node:stream.Transform` instance;
4
+ * - usefull for generating return value for `asar.options.transform`;
5
+ * @param {string} content
6
+ * @returns {Transform}
7
+ * @example
8
+ * import { CreateTransform } from 'vivth/node';
9
+ *
10
+ * // asar input context:
11
+ * const transform = (filePath) => {
12
+ * filePath = Paths.normalize(filePath);
13
+ * const newStringFromBundle = checkBundle.get*(filePath);
14
+ * if (newStringFromBundle) {
15
+ * return CreateTransform(newStringFromBundle);
16
+ * }
17
+ * const res = optionsTransform?.(filePath);
18
+ * if (!res) {
19
+ * return;
20
+ * }
21
+ * return res;
22
+ * };
23
+ * //
24
+ */
25
+ export function CreateTransform(content: string): Transform;
26
+ import { Transform } from 'node:stream';
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @param {any} fullPath
3
+ * @returns {Promise<number>}
4
+ */
5
+ export function LastEditedUnix(fullPath: any): Promise<number>;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @description
3
+ * - generate Set of `node` built in modules;
4
+ * @returns {Set<string>}
5
+ * @example
6
+ * import { build } from "esbuild";
7
+ * import { NodeModuleList } from "vivth/node";
8
+ *
9
+ * await build({
10
+ * ...buildOptions,
11
+ * platform: "browser",
12
+ * external: Array.from(NodeModuleList()),
13
+ * });
14
+ */
15
+ export function NodeModuleList(): Set<string>;
@@ -0,0 +1,25 @@
1
+ export class PathFSBundles {
2
+ /**
3
+ * @param {string} relativePath
4
+ * @param {{shouldNotIncludes:string}} [options]
5
+ * @returns {PathFSBundles}
6
+ */
7
+ static vivthBundles: (relativePath: string, options?: {
8
+ shouldNotIncludes: string;
9
+ }) => PathFSBundles;
10
+ /**
11
+ * @private
12
+ * @param {Parameters<typeof PathFSBundles["vivthBundles"]>[0]} relativePath
13
+ * @param {Parameters<typeof PathFSBundles["vivthBundles"]>[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,48 @@
1
+ /**
2
+ * @description
3
+ * - when used with `EsBundler+ToBundledJSPlugin` the file on the dir that are match the rule are `Bundled` first before being put on the `.asar`;
4
+ */
5
+ export class PathFSBundles {
6
+ /**
7
+ * @description
8
+ * @param {string} relativePath
9
+ * - to the dirname of the file you are calling this method;
10
+ * @param {{shouldNotIncludes:string}} [options]
11
+ * - `shouldNotIncludes`:
12
+ * >- when this method receive non immediate string(declared on other file),
13
+ * >- `shouldNotIncludes` should be filled with the string like,
14
+ * >- `/${libname}/path/to/file/this/method/is/being/called.extname`;
15
+ * @returns {PathFSBundles}
16
+ * @example
17
+ * // D://true/path/mypath.mjs
18
+ * import { PathFSBundles } from 'vivth/node';
19
+ *
20
+ * PathFSBundles.vivthBundles('../src/entryPoint.mjs', {
21
+ * shouldNotIncludes: 'D://true/path/mypath.mjs',
22
+ * });
23
+ */
24
+ static vivthBundles: (relativePath: string, options?: {
25
+ shouldNotIncludes: string;
26
+ }) => PathFSBundles;
27
+ /**
28
+ * @private
29
+ * @param {Parameters<typeof PathFSBundles["vivthBundles"]>[0]} relativePath
30
+ * @param {Parameters<typeof PathFSBundles["vivthBundles"]>[1]} [options]
31
+ */
32
+ private constructor();
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
+ * @returns {string}
43
+ * - unBundled: `absolutePath` on disk of the file caller;
44
+ * - bundled: `blankString`;
45
+ */
46
+ get callerPath(): string;
47
+ #private;
48
+ }