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
@@ -0,0 +1,253 @@
1
+ // @ts-check
2
+
3
+ import { dirname, extname, join } from 'node:path';
4
+
5
+ import { createPackageFromFiles } from '@electron/asar';
6
+
7
+ import { Paths } from '../class/Paths.mjs';
8
+ import { LitExp } from '../class/LitExp.mjs';
9
+ import { TryAsync } from '../function/TryAsync.mjs';
10
+ import { commonContentFixesBundled } from './adds/ToBundledJSPlugin.mjs';
11
+ import { Console } from '../class/Console.mjs';
12
+ import { EsBundler } from './EsBundler.mjs';
13
+ import { CreateTransform } from './adds/CreateTransform.mjs';
14
+ import { GetFilesFromDir } from '../function/GetFilesFromDir.mjs';
15
+ import { readFile } from 'node:fs/promises';
16
+ import { Preferrence } from '../common/Preferrence.mjs';
17
+
18
+ /**
19
+ * @description
20
+ * - collections of static method to process content for:
21
+ * >- `FSasar`;
22
+ * - mostly used internally;
23
+ */
24
+ export class FSAnalyzer {
25
+ /**
26
+ * @typedef {typeof import('@electron/asar')["createPackageFromFiles"]} createPackageFromFiles
27
+ */
28
+ /**
29
+ * @description
30
+ * - to be used on bundled content;
31
+ * @param {string} entryPoint
32
+ * @param {string} content
33
+ * @param {Object} asarConfig
34
+ * @param {Parameters<createPackageFromFiles>[3]} [asarConfig.InputMetadata]
35
+ * @param {Parameters<createPackageFromFiles>[4]} [asarConfig.options]
36
+ * @param {string} bundledJSFilePath
37
+ * @returns {ReturnType<typeof TryAsync<string>>}
38
+ * @example
39
+ * import { readFile } from 'node:fs/promises';
40
+ *
41
+ * import { FSAnalyzer } from 'vivth/node';
42
+ * import { Preferrence } from 'vivth/neutral';
43
+ *
44
+ * const filePath = 'README.md';
45
+ * const [resultFinalContent, errorFinalContent] = await FSAnalyzer.finalContent(
46
+ * filePath,
47
+ * await readFile(filePath, {encoding: Preferrence.encoding}),
48
+ * 'esm',
49
+ * {},
50
+ * ...args
51
+ * );
52
+ */
53
+ static finalContent = async (entryPoint, content, asarConfig, bundledJSFilePath) => {
54
+ return await TryAsync(async () => {
55
+ content = commonContentFixesBundled(entryPoint, content);
56
+ FSAnalyzer.#analyze_asarFile(Paths.root, content, asarConfig, bundledJSFilePath);
57
+ return content;
58
+ });
59
+ };
60
+
61
+ /**
62
+ * return regex as string from template literal that are supposed to be regex
63
+ * @param {string} str
64
+ * @returns {RegExp}
65
+ */
66
+ static #hydrateRegex = (str) => {
67
+ const arr = str.split('/');
68
+ str = `/${arr[1]}/`;
69
+ const match = str.match(/^\/(.*)\/([a-z]*)$/);
70
+ if (match === null) {
71
+ throw { str, message: 'Invalid regex string format' };
72
+ }
73
+ const [, pattern = '', flags] = match;
74
+ return new RegExp(pattern, flags);
75
+ };
76
+
77
+ /**
78
+ * @param {string} rootPath
79
+ * @param {string} content
80
+ * @param {Parameters<typeof FSAnalyzer["finalContent"]>[2]} asarConfig
81
+ * @param {string} bundledJSFile
82
+ * @returns {Promise<void>}
83
+ */
84
+ static #analyze_asarFile = async (rootPath, content, asarConfig, bundledJSFile) => {
85
+ rootPath = Paths.normalize(rootPath);
86
+ const [literalBundle, errorPrepareRegexBundle] = LitExp.prepare({
87
+ ref: /[\w][\w\d]*/,
88
+ method: /\.vivthBundles\s*?\(\s*?['"]/,
89
+ path: /[\w\W\/\.]*/,
90
+ methodClosing: /['"]/,
91
+ closing: /\s*[,);]/,
92
+ });
93
+ const [literalFile, errorPrepareRegexFile] = LitExp.prepare({
94
+ ref: /[\w][\w\d]*/,
95
+ method: /\.vivthFile\s*?\(\s*?['"]/,
96
+ path: /[\w\W\/\.]*/,
97
+ methodClosing: /['"]/,
98
+ closing: /\s*[,);]/,
99
+ });
100
+ const [literalDir, errorPrepareRegexDir] = LitExp.prepare({
101
+ ref: /[\w][\w\d]*/,
102
+ method: /\.vivthDir\s*?\(\s*?['"]/,
103
+ path: /[\w\W\/\.]*/,
104
+ methodClosing: /['"]\s*?,\s*?/,
105
+ rule: false,
106
+ closing: /\s*[,);]/,
107
+ });
108
+ if (errorPrepareRegexBundle || errorPrepareRegexFile || errorPrepareRegexDir) {
109
+ Console.error(
110
+ {
111
+ errorPrepareRegexBundle,
112
+ errorPrepareRegexFile,
113
+ errorPrepareRegexDir,
114
+ },
115
+ { now: true },
116
+ );
117
+ return;
118
+ }
119
+ const templateBundle = literalBundle`${'ref'}${'method'}${'path'}${'methodClosing'}${'closing'}`;
120
+ const templateFile = literalFile`${'ref'}${'method'}${'path'}${'methodClosing'}${'closing'}`;
121
+ const templateDir = literalDir`${'ref'}${'method'}${'path'}${'methodClosing'}${'rule'}${'closing'}`;
122
+ const [resultMatchingBundle, errorMatchingBundle] =
123
+ templateBundle.evaluate.matchedAllAndGrouped(content, {
124
+ flags: 'gm',
125
+ whiteSpaceSensitive: false,
126
+ });
127
+ const [resultMatchingFile, errorMatchingFile] = templateFile.evaluate.matchedAllAndGrouped(
128
+ content,
129
+ {
130
+ flags: 'gm',
131
+ whiteSpaceSensitive: false,
132
+ },
133
+ );
134
+ const [resultMatchingDir, errorMatchingDir] = templateDir.evaluate.matchedAllAndGrouped(
135
+ content,
136
+ {
137
+ flags: 'gm',
138
+ whiteSpaceSensitive: false,
139
+ },
140
+ );
141
+ if (errorMatchingBundle || errorMatchingFile || errorMatchingDir) {
142
+ Console.error({ errorMatchingBundle, errorMatchingFile, errorMatchingDir }, { now: true });
143
+ return;
144
+ }
145
+ const { InputMetadata = {}, options = {} } = asarConfig;
146
+ const asarPath = bundledJSFile.replace(new RegExp(`${extname(bundledJSFile)}\$`, ''), '.asar');
147
+ const {
148
+ result: { named: namedBundle },
149
+ // regexp: regexBundle,
150
+ } = resultMatchingBundle;
151
+ const {
152
+ result: { named: namedFile },
153
+ // regexp: regexFile,
154
+ } = resultMatchingFile;
155
+ const {
156
+ result: { named: namedDir },
157
+ // regexp: regexDir,
158
+ } = resultMatchingDir;
159
+ // Console.info({
160
+ // regexBundle,
161
+ // regexFile,
162
+ // regexDir,
163
+ // });
164
+ /**
165
+ * @type {Set<string>}
166
+ */
167
+ const fileNames = new Set();
168
+ /**
169
+ * @type {Map<string, string>}
170
+ */
171
+ const checkBundle = new Map();
172
+ /**
173
+ * @type {Set<string>}
174
+ */
175
+ const checkFile = new Set();
176
+ /**
177
+ * @type {Set<string>}
178
+ */
179
+ const checkDir = new Set();
180
+ for (let i = 0; i < namedBundle.length; i++) {
181
+ const res = namedBundle[i];
182
+ if (res === undefined) {
183
+ continue;
184
+ }
185
+ const fullPath = Paths.normalize(join(Paths.root, res.path));
186
+ const extension = extname(fullPath);
187
+ if (checkBundle.has(fullPath)) {
188
+ continue;
189
+ }
190
+ const [stringRes, errorBundling] = await EsBundler(
191
+ {
192
+ content: await readFile(fullPath, { encoding: Preferrence.encoding }),
193
+ // @ts-expect-error
194
+ extension,
195
+ root: dirname(fullPath),
196
+ withBinHeader: false,
197
+ },
198
+ {
199
+ format: 'esm',
200
+ minify: true,
201
+ absWorkingDir: dirname(fullPath),
202
+ },
203
+ );
204
+ if (errorBundling) {
205
+ Console.error({ errorBundling }, { now: true });
206
+ continue;
207
+ }
208
+ fileNames.add(fullPath);
209
+ checkBundle.set(fullPath, commonContentFixesBundled(fullPath, stringRes));
210
+ }
211
+ for (let i = 0; i < namedDir.length; i++) {
212
+ const res = namedDir[i];
213
+ if (res === undefined) {
214
+ continue;
215
+ }
216
+ const { path, rule } = res;
217
+ const fullPath = Paths.normalize(join(Paths.root, path));
218
+ if (checkDir.has(fullPath)) {
219
+ continue;
220
+ }
221
+ checkDir.add(fullPath);
222
+ const rule_ = FSAnalyzer.#hydrateRegex(rule.trim());
223
+ await GetFilesFromDir(fullPath, rule_, fileNames);
224
+ }
225
+ for (let i = 0; i < namedFile.length; i++) {
226
+ const res = namedFile[i];
227
+ if (res === undefined) {
228
+ continue;
229
+ }
230
+
231
+ const fullPath = Paths.normalize(join(Paths.root, res.path));
232
+ if (checkFile.has(fullPath)) {
233
+ continue;
234
+ }
235
+ checkFile.add(fullPath);
236
+ fileNames.add(fullPath);
237
+ }
238
+ const optionsTransform = options.transform;
239
+ options.transform = (filePath) => {
240
+ filePath = Paths.normalize(filePath);
241
+ const newStringFromBundle = checkBundle.get(filePath);
242
+ if (newStringFromBundle) {
243
+ return CreateTransform(newStringFromBundle);
244
+ }
245
+ const res = optionsTransform?.(filePath);
246
+ if (!res) {
247
+ return;
248
+ }
249
+ return res;
250
+ };
251
+ await createPackageFromFiles(rootPath, asarPath, Array.from(fileNames), InputMetadata, options);
252
+ };
253
+ }
@@ -0,0 +1,128 @@
1
+ // @ts-check
2
+
3
+ import { extname, join, relative } from 'node:path';
4
+
5
+ import { extractFile, getRawHeader } from '@electron/asar';
6
+
7
+ import { TrySync } from '../function/TrySync.mjs';
8
+ import { Console } from '../class/Console.mjs';
9
+ import { emptyBufferValue } from './adds/emptyBufferValue.mjs';
10
+ import { PathFSFile } from './adds/PathFSFile.mjs';
11
+ import { Paths } from '../class/Paths.mjs';
12
+ import { PipeSync } from '../function/PipeSync.mjs';
13
+ import { argv0 } from 'node:process';
14
+ import { fileURLToPath } from 'node:url';
15
+
16
+ // @ts-check
17
+
18
+ /**
19
+ * @type {undefined|string}
20
+ */
21
+ let archievePath_ = undefined;
22
+
23
+ const asarPath = () => {
24
+ if (!archievePath_) {
25
+ const thisPath = fileURLToPath(import.meta.url);
26
+ const check0 = argv0.replace(new RegExp(`${extname(argv0)}\$`, ''), '.asar/');
27
+ const check1 = thisPath.replace(new RegExp(`${extname(thisPath)}\$`, ''), '.asar/');
28
+ if (check0.startsWith(Paths.root)) {
29
+ archievePath_ = check0;
30
+ } else {
31
+ /**
32
+ * ```js
33
+ * else if (check1.startsWith(root)) {
34
+ * archievePath_ = check1;
35
+ * }
36
+ * ```
37
+ */
38
+ archievePath_ = check1;
39
+ }
40
+ }
41
+ return Paths.normalize(archievePath_);
42
+ };
43
+
44
+ export class FSasar {
45
+ /**
46
+ * @typedef {import('./adds/PathFSDir.mjs').PathFSDir} PathFSDir
47
+ */
48
+ /**
49
+ * @param {PathFSFile} filePathFromProject
50
+ * @returns {Promise<undefined|Buffer<ArrayBufferLike>>}
51
+ */
52
+ static file = async (filePathFromProject) => {
53
+ const [buffer, errorFileNotFound] = TrySync(() => {
54
+ const archievePath = asarPath();
55
+ return extractFile(archievePath, Paths.nativeSep(filePathFromProject.path), true);
56
+ });
57
+ if (!errorFileNotFound) {
58
+ return buffer;
59
+ }
60
+ Console.error(
61
+ { filePathFromProject: filePathFromProject.path, errorFileNotFound },
62
+ { now: true },
63
+ );
64
+ return emptyBufferValue();
65
+ };
66
+ /**
67
+ * @description
68
+ * - helper function for asar dir;
69
+ * @param {PathFSDir} pathFSDirInstance
70
+ * @returns {{
71
+ * forEachFiles:(loopCallback:(pathDetail:{inputRelative:string, asar:string})=>void)=>void,
72
+ * getFile:(relativeFromDir:string)=> ReturnType<typeof FSasar["file"]>
73
+ * }}
74
+ * - forEachFiles are looped async without awaiting any iterations;
75
+ */
76
+ static dir = (pathFSDirInstance) => {
77
+ return {
78
+ forEachFiles: (loopCallback) => {
79
+ /**
80
+ * @param {Record<string, import('@electron/asar').DirectoryRecord | import('@electron/asar').FileRecord>} headerRef
81
+ * @param {string} relativePath
82
+ */
83
+ const check = (headerRef, relativePath = './') => {
84
+ for (const name in headerRef) {
85
+ if (!Object.hasOwn(headerRef, name)) {
86
+ continue;
87
+ }
88
+ const val = headerRef[name];
89
+ if (!val) {
90
+ continue;
91
+ }
92
+ if ('files' in val) {
93
+ check(val.files, join(relativePath, name));
94
+ continue;
95
+ }
96
+ if ('size' in val) {
97
+ const filePath = Paths.normalize(join(relativePath, name));
98
+ loopCallback({
99
+ asar: filePath,
100
+ inputRelative: Paths.normalize(relative(pathFSDirInstance.path, filePath)),
101
+ });
102
+ }
103
+ }
104
+ };
105
+ let files = getRawHeader(asarPath()).header.files;
106
+ const pathFSDirInstance_ = pathFSDirInstance.path.split('/');
107
+ for (let i = 0; i < pathFSDirInstance_.length; i++) {
108
+ const val = pathFSDirInstance_[i];
109
+ if (!val || !files[val] || !('files' in files[val])) {
110
+ continue;
111
+ }
112
+ files = files[val].files;
113
+ }
114
+ check(files, pathFSDirInstance.path);
115
+ },
116
+ getFile: async (filePathRelativeFromDir) => {
117
+ const path_ = PipeSync(
118
+ Paths.normalize(join(pathFSDirInstance.path, filePathRelativeFromDir)),
119
+ (path_) => Paths.normalize(relative(Paths.root, path_)),
120
+ );
121
+ if (!path_.match(pathFSDirInstance.rule)) {
122
+ return emptyBufferValue();
123
+ }
124
+ return FSasar.file(PathFSFile.vivthFile(path_));
125
+ },
126
+ };
127
+ };
128
+ }
@@ -0,0 +1,96 @@
1
+ // @ts-check
2
+
3
+ import { dirname, join, relative } from 'node:path';
4
+ import { readFile } from 'node:fs/promises';
5
+
6
+ import { Paths } from '../class/Paths.mjs';
7
+ import { TryAsync } from '../function/TryAsync.mjs';
8
+ import { Console } from '../class/Console.mjs';
9
+ import { emptyBufferValue } from './adds/emptyBufferValue.mjs';
10
+ import { GetFilesFromDir } from '../function/GetFilesFromDir.mjs';
11
+ import { ForOfSync } from '../function/ForOfSync.mjs';
12
+ import { PipeSync } from '../function/PipeSync.mjs';
13
+ import { PathFSFile } from './adds/PathFSFile.mjs';
14
+
15
+ /**
16
+ * @description
17
+ * - class helper to bundle assets files as `.asar`;
18
+ * >- as `type: "buffer"`;
19
+ * >- uses `[at]electron/asar` under the hood;
20
+ * - use only if you are planning to use [CompileJS](#compilejs);
21
+ * >- the class static methods don't obfuscate target file;
22
+ * >- don't embed any sensitive content using this methods of `CompileJS`;
23
+ * >- it's better to place it on `.env`;
24
+ */
25
+ export class FSasar {
26
+ /**
27
+ * @typedef {import('./adds/PathFSDir.mjs').PathFSDir} PathFSDir
28
+ */
29
+ /**
30
+ * @description
31
+ * @param {PathFSFile} pathFSFPathFSFileInstance
32
+ * @returns {Promise<Buffer<ArrayBufferLike>>}
33
+ * @example
34
+ * import { FSasar, PathFSFile } from 'vivth/node';
35
+ *
36
+ * const fileBuffer = await FSasar.file(PathFSFile.vivth[blank]File('../function/myModule.mjs'));
37
+ */
38
+ static async file(pathFSFPathFSFileInstance) {
39
+ const [buffer, errorFileNotFound] = await TryAsync(async () => {
40
+ const buf = await readFile(join(Paths.root, pathFSFPathFSFileInstance.path));
41
+ return Buffer.from(buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength));
42
+ });
43
+ if (errorFileNotFound) {
44
+ Console.error({ errorFileNotFound }, { now: true });
45
+ return emptyBufferValue();
46
+ }
47
+ return buffer;
48
+ }
49
+ /**
50
+ * @description
51
+ * - helper function for asar dir;
52
+ * @param {PathFSDir} pathFSDirInstance
53
+ * @returns {{
54
+ * forEachFiles:(loopCallback:(pathDetail:{inputRelative:string, asar:string})=>void)=>void,
55
+ * getFile:(relativeFromDir:string)=> ReturnType<typeof FSasar["file"]>
56
+ * }}
57
+ * - forEachFiles are looped async without awaiting any iterations;
58
+ * @example
59
+ * import { FSasar, PathFSDir } from 'vivth/node';
60
+ *
61
+ * const { forEachFiles, getFile } = FSasar.dir(PathFSDir.vivthDir('../function/', /[\s\S]\*[noblank]/)); // without `[noblank]`;
62
+ * forEachFiles(async ({ inputRelative, asar }) => {
63
+ * // handle `inputRelative` with getFile; OR
64
+ * // handle `asar` with FSasar.file
65
+ * });
66
+ */
67
+ static dir = (pathFSDirInstance) => {
68
+ return {
69
+ forEachFiles: (loopCallback) => {
70
+ const relativeTo = join(Paths.root, pathFSDirInstance.path);
71
+ GetFilesFromDir(relativeTo, pathFSDirInstance.rule, new Set()).then((filePaths) => {
72
+ ForOfSync(filePaths, (filePath) => {
73
+ loopCallback({
74
+ inputRelative: Paths.normalize(relative(relativeTo, filePath)),
75
+ asar: Paths.normalize(relative(Paths.root, filePath)),
76
+ });
77
+ });
78
+ });
79
+ },
80
+ getFile: async (filePathRelativeFromDir) => {
81
+ const path_ = PipeSync(
82
+ join(pathFSDirInstance.path, filePathRelativeFromDir),
83
+ (path_) => relative(dirname(pathFSDirInstance.callerPath), path_),
84
+ (path_) => Paths.normalize(path_),
85
+ );
86
+ if (!path_.match(pathFSDirInstance.rule)) {
87
+ return emptyBufferValue();
88
+ }
89
+
90
+ return FSasar.file(
91
+ PathFSFile.vivthFile(path_, { shouldNotIncludes: '/vivth/src/bundler/FSasar.mjs' }),
92
+ );
93
+ },
94
+ };
95
+ };
96
+ }