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,27 @@
1
+ // @ts-check
2
+
3
+ /**
4
+ * Checks for a @preserve JSDoc block containing literal '@'+'[blank]'+'typedef'.
5
+ * Returns the modified string, or false if no such block exists.
6
+ * @param {string} sourceCode - The full source string/file content.
7
+ * @returns {string | false} The modified full string, or false if no target block matches.
8
+ */
9
+ export const cleanPreserveTypedef = (sourceCode) => {
10
+ // A strict regex that ensures a block has both @preserve AND [blank] inside it
11
+ const validationRegex = /\/\*\*([\s\S]*?@preserve[\s\S]*?@\[blank\]typedef[\s\S]*?)\*\//i;
12
+
13
+ // 1. If the file doesn't have the target block combination, bail out immediately
14
+ if (!validationRegex.test(sourceCode)) {
15
+ return false;
16
+ }
17
+
18
+ // 2. We have a guaranteed match, now safely perform the replacement loop
19
+ const jsDocRegex = /\/\*\*([\s\S]*?)\*\//g;
20
+
21
+ return sourceCode.replace(jsDocRegex, (fullMatch, commentContent) => {
22
+ if (commentContent.includes('@preserve')) {
23
+ return fullMatch.replace(/@\[blank\]typedef/gi, '@typedef');
24
+ }
25
+ return fullMatch;
26
+ });
27
+ };
@@ -7,48 +7,12 @@ import { TryAsync } from '../function/TryAsync.mjs';
7
7
  import { Console } from '../class/Console.mjs';
8
8
  import { Timeout } from '../function/Timeout.mjs';
9
9
  import { LitExp } from '../class/LitExp.mjs';
10
+ import { Preferrence } from '../common/Preferrence.mjs';
10
11
 
11
12
  /**
12
13
  * @typedef {'shouldProceedNextCheck'|'waitForRewrite'|'doNotProcess'} RetType
13
14
  */
14
15
 
15
- /**
16
- * @param {string} path
17
- * @param {BufferEncoding} [encoding]
18
- * @returns {Promise<RetType>}
19
- */
20
- export const correctBeforeParse = async (path, encoding = 'utf-8') => {
21
- const validExportName = basename(path).split('.')[0] ?? '';
22
- const firstLetter = validExportName[0];
23
- const isStartWithCapital = firstLetter?.toUpperCase() === firstLetter;
24
- if (validExportName === '' || isStartWithCapital === false) {
25
- return 'doNotProcess';
26
- }
27
- const content = (await readFile(path, { encoding: 'utf-8' })).toString();
28
- const [resFunctionCheck, errorFunctionCheck] = await checkIsFunction(
29
- content,
30
- validExportName,
31
- path,
32
- encoding
33
- );
34
- if (errorFunctionCheck) {
35
- return 'doNotProcess';
36
- }
37
- if (resFunctionCheck === 'waitForRewrite') {
38
- return 'waitForRewrite';
39
- }
40
- const [resClassCheck, errorClassCheck] = await checkIsClass(
41
- content,
42
- validExportName,
43
- path,
44
- encoding
45
- );
46
- if (errorClassCheck) {
47
- return 'doNotProcess';
48
- }
49
- return resClassCheck;
50
- };
51
-
52
16
  /**
53
17
  * @type {(content:string,
54
18
  * validExportName:string,
@@ -59,7 +23,7 @@ const checkIsFunction = async (content, validExportName, path, encoding) => {
59
23
  return await TryAsync(async () => {
60
24
  const regexConst = new RegExp(
61
25
  `export\\s+const\\s+${validExportName}\\s+\\=\\s*?(?:async|)\\s*?\\(([\\s\\S]*?)\\)\\s*?\=\>`,
62
- 'g'
26
+ 'g',
63
27
  );
64
28
  const matches = content.matchAll(regexConst).toArray()[0];
65
29
  const useConst = regexConst.test(content);
@@ -69,9 +33,13 @@ const checkIsFunction = async (content, validExportName, path, encoding) => {
69
33
  const newContent = content.replace(fullString, declaratorReplaceMent);
70
34
  await Timeout(100); // to wait for pretify on autoSave;
71
35
  await writeFile(path, newContent, { encoding });
72
- Console.info({
73
- vivthJSAutoDoc: `successfully modify '${path}' exported function to regullar function declaration, for correct type emition;`,
74
- });
36
+ Console.info(
37
+ `successfully modify '${path}' exported function to regullar function declaration, for correct type emition;`,
38
+
39
+ {
40
+ now: true,
41
+ },
42
+ );
75
43
  return 'waitForRewrite';
76
44
  }
77
45
  return 'shouldProceedNextCheck';
@@ -91,7 +59,7 @@ const checkIsClass = async (content, validExportName, path, encoding) => {
91
59
  */
92
60
  async () => {
93
61
  const isAClassRegex = new RegExp(`export\\s+class\\s+${validExportName}`, 'g');
94
- if (isAClassRegex.test(content) === false) {
62
+ if (!isAClassRegex.test(content)) {
95
63
  return 'shouldProceedNextCheck';
96
64
  }
97
65
  let rewrite = false;
@@ -105,9 +73,9 @@ const checkIsClass = async (content, validExportName, path, encoding) => {
105
73
  const check = new RegExp(
106
74
  `(?<opening>${LitExp.escape(val).replace(
107
75
  /\s+/g,
108
- `\\\s*`
76
+ `\\\s*`,
109
77
  )}\\\s*?(?:static\\\s+|))(?<funcname>(?:\#|)[a-zA-Z0-9]*)\\\s*?\\\=\\\s*?(?<async_>async\\\s*?|)\\\((?<parameters>[\\\s\\\S]*?)\\\)\\\s*?=>`,
110
- 'g'
78
+ 'g',
111
79
  );
112
80
  const [checkContent] = content.matchAll(check).toArray();
113
81
  if (checkContent === undefined) {
@@ -128,12 +96,53 @@ const checkIsClass = async (content, validExportName, path, encoding) => {
128
96
  if (rewrite) {
129
97
  await Timeout(100); // to wait for pretify on autoSave;
130
98
  await writeFile(path, content, { encoding });
131
- Console.info({
132
- vivthJSAutoDoc: `successfully modify '${path}' class/instance method(s), that has generic template, for correct type emition;`,
133
- });
99
+ Console.info(
100
+ `successfully modify '${path}' class/instance method(s), that has generic template, for correct type emition;`,
101
+
102
+ {
103
+ now: true,
104
+ },
105
+ );
134
106
  return 'waitForRewrite';
135
107
  }
136
108
  return 'shouldProceedNextCheck';
137
- }
109
+ },
110
+ );
111
+ };
112
+
113
+ /**
114
+ * @param {string} path
115
+ * @param {BufferEncoding} [encoding]
116
+ * @returns {Promise<RetType>}
117
+ */
118
+ export const correctBeforeParse = async (path, encoding = Preferrence.encoding) => {
119
+ const validExportName = basename(path).split('.')[0] ?? '';
120
+ const firstLetter = validExportName[0];
121
+ const isStartWithCapital = firstLetter?.toUpperCase() === firstLetter;
122
+ if (validExportName === '' || !isStartWithCapital) {
123
+ return 'doNotProcess';
124
+ }
125
+ const content = (await readFile(path, { encoding })).toString();
126
+ const [resFunctionCheck, errorFunctionCheck] = await checkIsFunction(
127
+ content,
128
+ validExportName,
129
+ path,
130
+ encoding,
138
131
  );
132
+ if (errorFunctionCheck) {
133
+ return 'doNotProcess';
134
+ }
135
+ if (resFunctionCheck === 'waitForRewrite') {
136
+ return 'waitForRewrite';
137
+ }
138
+ const [resClassCheck, errorClassCheck] = await checkIsClass(
139
+ content,
140
+ validExportName,
141
+ path,
142
+ encoding,
143
+ );
144
+ if (errorClassCheck) {
145
+ return 'doNotProcess';
146
+ }
147
+ return resClassCheck;
139
148
  };
@@ -2,15 +2,20 @@
2
2
 
3
3
  import { readFile } from 'node:fs/promises';
4
4
  import { Stats } from 'node:fs';
5
- import { normalize, basename, join, relative, extname, dirname, resolve } from 'node:path';
5
+ import { basename, join, relative, extname, dirname, resolve } from 'node:path';
6
6
 
7
7
  import { Paths } from '../class/Paths.mjs';
8
8
  import { LazyFactory } from '../function/LazyFactory.mjs';
9
9
  import { TrySync } from '../function/TrySync.mjs';
10
10
  import { Console } from '../class/Console.mjs';
11
11
  import { TryAsync } from '../function/TryAsync.mjs';
12
+ import { Preferrence } from '../common/Preferrence.mjs';
13
+ import { GetModuleEsbuildPlatform } from '../function/GetModuleEsbuildPlatform.mjs';
14
+ import { multiExportEntryPointsPath } from './JSautoDOC.mjs';
15
+ import { SafeImport } from '../function/SafeImport.mjs';
16
+ import { isModuleTheBundledVersion } from '../bundler/adds/isModuleTheBundledVersion.mjs';
12
17
 
13
- export class parsedFile {
18
+ export class parsedFileForDOC {
14
19
  /**
15
20
  * @typedef {{
16
21
  * instanceOrStatic:{parent:string, type:string},
@@ -23,25 +28,29 @@ export class parsedFile {
23
28
  * }} refType
24
29
  */
25
30
  /**
26
- * @param {string} path__
27
- * @param {import('fs').Stats} _stats
31
+ * @param {string} path
32
+ * - `relative`(to `Paths.root`) OR `absolute`, both are accepted;
33
+ * @param {import('fs').Stats} [stats]
28
34
  * @param {BufferEncoding} [encoding]
29
35
  */
30
- constructor(path__, _stats, encoding = 'utf-8') {
31
- if (Paths.root === undefined) {
32
- return;
33
- }
34
- this.#stats = _stats;
36
+ constructor(path, stats, encoding = Preferrence.encoding) {
37
+ this.#stats = stats;
35
38
  const root = Paths.root.replace(/\\/g, '/');
36
- if (Paths.normalize(path__).startsWith(root)) {
37
- this.#fullPath = path__;
38
- } else {
39
- this.#fullPath = join(root, path__);
40
- }
41
- this.#relativePath = Paths.normalize(relative(root, this.#fullPath));
39
+ this.#fullPath = Paths.diskAbsolute(path);
40
+ this.#relativePath = Paths.normalize(
41
+ relative(join(root, multiExportEntryPointsPath), this.#fullPath),
42
+ );
42
43
  this.#encoding = encoding;
44
+ this.platform = GetModuleEsbuildPlatform(this.#fullPath);
43
45
  }
46
+ /**
47
+ * @type {Promise<"browser" | "node" | "neutral" | "unsupported">}
48
+ */
49
+ platform;
44
50
  parse = async () => {
51
+ if (isModuleTheBundledVersion(this.path.full, this.ext.withDot)) {
52
+ return;
53
+ }
45
54
  const { details, error, exportName } = await this.content.parsed();
46
55
  if (error || exportName === undefined) {
47
56
  return;
@@ -74,11 +83,11 @@ export class parsedFile {
74
83
  const interpreted = this.#interpreteArrayDesc(
75
84
  exportName,
76
85
  instanceOrStaticDef,
77
- fullDescription,
86
+ fullDescription.replace(/\[at\]/g, '@'),
78
87
  isExport,
79
88
  typeOfVar,
80
89
  getterOrSetter,
81
- namedVar
90
+ namedVar,
82
91
  );
83
92
  if (interpreted === undefined) {
84
93
  return;
@@ -88,6 +97,13 @@ export class parsedFile {
88
97
  };
89
98
  documented = LazyFactory(() => {
90
99
  return {
100
+ /**
101
+ *
102
+ * @returns {Promise<{
103
+ * module: string;
104
+ * readme: string;
105
+ * } | undefined>}
106
+ */
91
107
  typedef: async () => {
92
108
  const relativePath = this.path.relative;
93
109
  if (relativePath === '') {
@@ -129,11 +145,11 @@ export class parsedFile {
129
145
  * @param {string} exportName
130
146
  * @param {string} relativePath
131
147
  * @param {string} content
132
- * @returns {parsedFile["parsedType"]}
148
+ * @returns {parsedFileForDOC["parsedType"]}
133
149
  */
134
150
  #parseTypedef = (exportName, relativePath, content) => {
135
151
  const rootPath = Paths.root;
136
- if (rootPath === undefined || parsedFile.#isExportNameValid(exportName) === false) {
152
+ if (!parsedFileForDOC.#isExportNameValid(exportName)) {
137
153
  return undefined;
138
154
  }
139
155
  if (this.parsedType === undefined) {
@@ -145,7 +161,7 @@ export class parsedFile {
145
161
  if (val === undefined) {
146
162
  return;
147
163
  }
148
- if (/import\(['"][\s\S]*['"]\)/g.test(val) === false) {
164
+ if (!/import\(['"][\s\S]*['"]\)/g.test(val)) {
149
165
  return val;
150
166
  }
151
167
  const res = /import\(['"]([\s\S]*)['"]\)/g.exec(val);
@@ -156,10 +172,10 @@ export class parsedFile {
156
172
  if (importDec === undefined) {
157
173
  return;
158
174
  }
159
- const correctedPath = Paths.normalize(normalize(join(relativeDir, importDec)));
175
+ const correctedPath = Paths.normalize(join(relativeDir, importDec));
160
176
  const rep = val.replace(
161
177
  importDec,
162
- correctedPath.startsWith('.') ? correctedPath : `./${correctedPath}`
178
+ correctedPath.startsWith('.') ? correctedPath : `./${correctedPath}`,
163
179
  );
164
180
  return rep;
165
181
  })
@@ -169,18 +185,15 @@ export class parsedFile {
169
185
  return false;
170
186
  }
171
187
  return new RegExp(
172
- `(?:@typedef|@callback)[\\s\\S]*?${baseNameNoExt}\\s?[\\s\\S]*?`,
173
- ''
188
+ `(?:@typedef|@callback)[\\s\\S]*?${baseNameNoExt}[\\s]?[\\s\\S]*?`,
189
+ '',
174
190
  ).test(captured);
175
191
  });
176
192
  if (res0 === undefined) {
177
193
  return undefined;
178
194
  }
179
195
  const [res] = res0;
180
- if (
181
- //
182
- !res.length
183
- ) {
196
+ if (!res.length) {
184
197
  return undefined;
185
198
  }
186
199
  const templates = res
@@ -192,15 +205,15 @@ export class parsedFile {
192
205
 
193
206
  this.parsedType = {
194
207
  module: `/**-templates-
195
- * @typedef {import('./${relativePath}').${exportName}${
196
- templates.length
197
- ? `<${templates
198
- .map(({ name }) => {
199
- return name;
200
- })
201
- .join(',')}>`
202
- : ''
203
- }} ${exportName}
208
+ * @typedef {import('${relativePath}').${exportName}${
209
+ templates.length
210
+ ? `<${templates
211
+ .map(({ name }) => {
212
+ return name;
213
+ })
214
+ .join(',')}>`
215
+ : ''
216
+ }} ${exportName}
204
217
  */`
205
218
  .replace(/\\/g, '/')
206
219
  .replace(
@@ -213,15 +226,18 @@ export class parsedFile {
213
226
  if (matched && comment) {
214
227
  comment = comment.replace(
215
228
  matched,
216
- `.${Paths.normalizesForRoot(
217
- relative(rootPath, resolve(dirname(this.#fullPath), matched))
218
- )}`
229
+ `.${Paths.normalizeForRoot(
230
+ relative(
231
+ join(rootPath, multiExportEntryPointsPath),
232
+ resolve(dirname(this.#fullPath), matched),
233
+ ),
234
+ )}`,
219
235
  );
220
236
  }
221
237
  return comment;
222
238
  })
223
239
  .join('\n')
224
- : ''
240
+ : '',
225
241
  ),
226
242
  readme,
227
243
  };
@@ -245,15 +261,15 @@ export class parsedFile {
245
261
  isExport_,
246
262
  typeOfVar,
247
263
  getterOrSetter,
248
- namedVar
264
+ namedVar,
249
265
  ) => {
250
266
  const type = instanceOrStaticDef.includes('@instance')
251
267
  ? 'instance'
252
268
  : instanceOrStaticDef.includes('@static')
253
- ? 'static'
254
- : instanceOrStaticDef.includes('@helper')
255
- ? 'helper'
256
- : '';
269
+ ? 'static'
270
+ : instanceOrStaticDef.includes('@helper')
271
+ ? 'helper'
272
+ : '';
257
273
  const parentSrc = instanceOrStaticDef
258
274
  .matchAll(/(?:@instance|@static|@helper)\s+(\w+)/gm)
259
275
  .toArray();
@@ -283,10 +299,10 @@ export class parsedFile {
283
299
  reference = isExport
284
300
  ? `${exportName}`
285
301
  : typeOfVar === 'static'
286
- ? `${exportName}.${namedVar}`
287
- : typeOfVar === ''
288
- ? `${exportName}_instance.${namedVar}`
289
- : '';
302
+ ? `${exportName}.${namedVar}`
303
+ : typeOfVar === ''
304
+ ? `${exportName}_instance.${namedVar}`
305
+ : '';
290
306
  break;
291
307
  }
292
308
  if (getterOrSetter !== '') {
@@ -325,10 +341,16 @@ export class parsedFile {
325
341
  .replace(/\s*(?<!\\)\*\s/g, '\n')
326
342
  .trim();
327
343
  fullDescTrue.shift();
328
- let example;
344
+ /**
345
+ * @type {string}
346
+ */
347
+ let example = '';
329
348
  let jsPreview = `\n\`\`\`js
330
349
  /**
331
- * @${fullDescTrue.join('@').replace(/(?<!\\)\*/g, '\n *')}
350
+ * @${fullDescTrue
351
+ .join('@')
352
+ .replace(/(?<!\\)\*/g, '\n *')
353
+ .replace(/\s+\*/g, '\n\t\*')}
332
354
  */\n\`\`\``;
333
355
  const [example_] = jsPreview.matchAll(/@example([\s\S]*)\*\//gm).toArray();
334
356
  if (example_ === undefined) {
@@ -348,33 +370,41 @@ export class parsedFile {
348
370
  ? `${jsPreview
349
371
  .replace(/\/\*\*[\s\*]*\*\//g, '')
350
372
  .replace(/\`\`\`js[\s]*\`\`\`/gm, '')
351
- .replace(/\*[\*\s]*\*\//g, '*/')}${
352
- example ? `\n - <i>example</i>:\n\`\`\`js${example}\n\`\`\``.replace(/\\\*/g, '*') : ''
353
- }`
373
+ .replace(/\*[\*\s]*\*\//g, '*/')
374
+ .replace(/\[at\]/g, '@')}${
375
+ !!example
376
+ ? `\n - <i>example</i>:\n\`\`\`js\n${`${
377
+ /** */
378
+ example.trimEnd().replace(/\\\@/g, '@')
379
+ }\n`
380
+ .replace(/\n+/g, '\n')
381
+ .replace(/^\s([\w\W])/, '$1')}\`\`\``.replace(/\\\*/g, '*')
382
+ : ''
383
+ }`.replace(/\[at\]/g, '@')
354
384
  : '',
355
385
  };
356
386
  };
357
387
  /**
358
388
  * @type {undefined|{exportName:undefined, details:undefined, error:{fullpath:string, message:string}}
359
- * | {exportName:string|undefined, details:ReturnType<typeof parsedFile["getDescription"]>, error:undefined}
389
+ * | {exportName:string|undefined, details:ReturnType<typeof parsedFileForDOC["getDescription"]>, error:undefined}
360
390
  * }
361
391
  */
362
392
  #parsed;
363
393
  /**
364
394
  * @returns {Promise<{exportName:undefined, details:undefined, error:{fullpath:string, message:string}}
365
- * | {exportName:string|undefined, details:ReturnType<typeof parsedFile["getDescription"]>, error:undefined}
395
+ * | {exportName:string|undefined, details:ReturnType<typeof parsedFileForDOC["getDescription"]>, error:undefined}
366
396
  * >}
367
397
  */
368
398
  #parse = async () => {
369
399
  const fullpath = this.#fullPath;
370
400
  const content = await this.content.string();
371
401
  if (content === undefined) {
372
- const error = { fullpath, message: 'invalid file content' };
373
- Console.error(error);
374
- return { exportName: undefined, details: undefined, error };
402
+ const errorParse = { fullpath, message: 'invalid file content' };
403
+ Console.error({ errorParse }, { now: true });
404
+ return { exportName: undefined, details: undefined, error: errorParse };
375
405
  }
376
406
  const supposedName = this.baseName.noExt.split('.')[0];
377
- if (supposedName === undefined || this.#getTopExport(supposedName, content) === false) {
407
+ if (supposedName === undefined || !this.#getTopExport(supposedName, content)) {
378
408
  return {
379
409
  details: undefined,
380
410
  exportName: undefined,
@@ -383,7 +413,7 @@ export class parsedFile {
383
413
  }
384
414
  this.hasValidExportObject = true;
385
415
  return {
386
- details: parsedFile.getDescription(content),
416
+ details: parsedFileForDOC.getDescription(content),
387
417
  exportName: supposedName,
388
418
  error: undefined,
389
419
  };
@@ -395,12 +425,12 @@ export class parsedFile {
395
425
  * @returns {boolean}
396
426
  */
397
427
  #getTopExport = (name, content) => {
398
- if (parsedFile.#isExportNameValid(name) === false) {
428
+ if (!parsedFileForDOC.#isExportNameValid(name)) {
399
429
  return false;
400
430
  }
401
431
  const regex = new RegExp(
402
- `export\\s*(?:(?:async\\s*|)function|const|class|\\{)\\s*${name}`,
403
- 'g'
432
+ `export\\s*(?:(?:async\\s*|)function|const|class|\\{)\\s*${name}\[\\W\]`,
433
+ 'g',
404
434
  );
405
435
  return regex.test(content);
406
436
  };
@@ -410,8 +440,8 @@ export class parsedFile {
410
440
  */
411
441
  static getDescription = (content) => {
412
442
  const regexp =
413
- /(\/\*\*([\s\S]*?)(?:@description)([\s\S]*?)\*\/\s?(export|\s?)\s?(static|class|const|function|async\s+function|\s?)\s?(?:async|)\s?(get|set|)\s+?(\w+))/gm;
414
- const modified = content.replace(/\r\n+/g, ' ');
443
+ /(\/\*\*([\s\S]*?)(?:@description)([\s\S]*?)\*\/\s*(?:@\w+(?:\([\s\S]*?\))?\s*)*(export|\s?)\s?(static|class|const|function|async\s+function|\s?)\s?(?:async|)\s?(get|set|)\s+?(\w+))/gm;
444
+ const modified = content.replace(/\s*\/\/\s+\@ts-[\w-]+\s*/gm, ' ').replace(/\r\n+/g, ' ');
415
445
  const matches = modified.matchAll(regexp).toArray();
416
446
  return matches;
417
447
  };
@@ -424,33 +454,28 @@ export class parsedFile {
424
454
  */
425
455
  #relativePath = '';
426
456
  /**
427
- * @returns {Promise<boolean>}
457
+ * @returns {boolean|undefined}
428
458
  */
429
- isFile = async () => {
430
- return this.#stats.isFile();
431
- };
459
+ get isFile() {
460
+ return this.#stats?.isFile();
461
+ }
432
462
  /**
433
- * @returns {Promise<boolean>}
463
+ * @returns {boolean|undefined}
434
464
  */
435
- isDirectory = async () => {
436
- return this.#stats.isDirectory();
437
- };
438
-
465
+ get isDirectory() {
466
+ return this.#stats?.isDirectory();
467
+ }
439
468
  baseName = LazyFactory(() => {
440
469
  const this_ = this;
441
470
  return {
442
471
  /**
443
472
  * @returns {string}
444
473
  */
445
- get withExt() {
446
- return basename(this_.#fullPath);
447
- },
474
+ withExt: basename(this_.#fullPath),
448
475
  /**
449
476
  * @returns {string}
450
477
  */
451
- get noExt() {
452
- return basename(this_.#fullPath, extname(this_.#fullPath));
453
- },
478
+ noExt: basename(this_.#fullPath, extname(this_.#fullPath)),
454
479
  };
455
480
  });
456
481
  path = LazyFactory(() => {
@@ -476,15 +501,11 @@ export class parsedFile {
476
501
  /**
477
502
  * @returns {string}
478
503
  */
479
- get relative() {
480
- return dirname(this_.#relativePath);
481
- },
504
+ relative: dirname(this_.#relativePath),
482
505
  /**
483
506
  * @returns {string}
484
507
  */
485
- get full() {
486
- return dirname(this_.#fullPath);
487
- },
508
+ full: dirname(this_.#fullPath),
488
509
  };
489
510
  }
490
511
  get ext() {
@@ -493,15 +514,11 @@ export class parsedFile {
493
514
  /**
494
515
  * @returns {string|undefined}
495
516
  */
496
- get withDot() {
497
- return extname(this_.#fullPath);
498
- },
517
+ withDot: extname(this_.#fullPath),
499
518
  /**
500
519
  * @returns {string|undefined}
501
520
  */
502
- get noDot() {
503
- return extname(this_.#fullPath).replace(/^\./, '');
504
- },
521
+ noDot: extname(this_.#fullPath).replace(/^\./, ''),
505
522
  };
506
523
  }
507
524
  /**
@@ -509,24 +526,23 @@ export class parsedFile {
509
526
  */
510
527
  #encoding;
511
528
  /**
512
- * @type {Stats}
529
+ * @type {Stats|undefined}
513
530
  */
514
- // @ts-expect-error
515
531
  #stats;
516
532
  get timeStamp() {
517
533
  const this_ = this;
518
534
  return {
519
535
  /**
520
- * @returns {Promise<number>}
536
+ * @returns {Promise<number|undefined>}
521
537
  */
522
538
  lastModified: async () => {
523
- return this_.#stats.mtimeMs;
539
+ return this_.#stats?.mtimeMs;
524
540
  },
525
541
  /**
526
- * @returns {Promise<number>}
542
+ * @returns {Promise<number|undefined>}
527
543
  */
528
544
  createdAt: async () => {
529
- return this_.#stats.birthtimeMs;
545
+ return this_.#stats?.birthtimeMs;
530
546
  },
531
547
  };
532
548
  }
@@ -541,7 +557,7 @@ export class parsedFile {
541
557
  * @return {Promise<string|undefined>}
542
558
  */
543
559
  string: async () => {
544
- if ((await this_.isFile()) === false) {
560
+ if (!this_.isFile) {
545
561
  return undefined;
546
562
  }
547
563
  const [raw, error] = await TryAsync(async () => {
@@ -551,13 +567,21 @@ export class parsedFile {
551
567
  this_.#rawContent = raw;
552
568
  return this_.#rawContent;
553
569
  }
554
- Console.error({
555
- error,
556
- fullPath: this_.#fullPath,
557
- message2: 'failed to read fullPath',
558
- });
570
+ Console.error(
571
+ {
572
+ error,
573
+ fullPath: this_.#fullPath,
574
+ message: 'failed to read fullPath',
575
+ },
576
+ { now: true },
577
+ );
559
578
  return undefined;
560
579
  },
580
+ /**
581
+ *
582
+ * @returns {Promise<{exportName:undefined, details:undefined, error:{fullpath:string, message:string}}|
583
+ * {exportName:string|undefined, details:ReturnType<typeof parsedFileForDOC["getDescription"]>, error:undefined}>}
584
+ */
561
585
  parsed: async () => {
562
586
  if (this_.#parsed === undefined) {
563
587
  this_.#parsed = await this_.#parse();
@@ -566,24 +590,13 @@ export class parsedFile {
566
590
  },
567
591
  };
568
592
  });
593
+
569
594
  /**
570
595
  * @returns {ReturnType<typeof TryAsync<any>>}
571
596
  */
572
597
  importAsModuleJS = async () => {
573
- const realTimePath = `${this.#fullPath}?${Date.now()}`;
574
- let [importedModule, error] = await TryAsync(async () => {
575
- return await import(`file://${realTimePath}`);
576
- });
577
- if (error === undefined) {
578
- return [importedModule, undefined];
579
- }
580
- [importedModule, error] = await TryAsync(async () => {
581
- return await import(realTimePath);
598
+ return await TryAsync(async () => {
599
+ return await SafeImport(this.path.full);
582
600
  });
583
- if (error === undefined) {
584
- return [importedModule, undefined];
585
- }
586
- Console.error({ error, timeStamp: Date.now() });
587
- return [undefined, error];
588
601
  };
589
602
  }