miqro 5.0.5 → 6.0.4

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 (372) hide show
  1. package/.eslintrc +15 -0
  2. package/README.md +618 -20
  3. package/bin/miqro +34 -0
  4. package/build/editor.bundle.js +61154 -0
  5. package/build/esm/editor/auth.d.ts +6 -0
  6. package/build/esm/editor/auth.js +42 -0
  7. package/build/esm/editor/auth.js.map +1 -0
  8. package/build/esm/editor/common/admin-interface.d.ts +36 -0
  9. package/build/esm/editor/common/admin-interface.js +45 -0
  10. package/build/esm/editor/common/admin-interface.js.map +1 -0
  11. package/build/esm/editor/common/constants.d.ts +4 -0
  12. package/build/esm/editor/common/constants.js +21 -0
  13. package/build/esm/editor/common/constants.js.map +1 -0
  14. package/build/esm/editor/common/constants.server.d.ts +2 -0
  15. package/build/esm/editor/common/constants.server.js +5 -0
  16. package/build/esm/editor/common/constants.server.js.map +1 -0
  17. package/build/esm/editor/common/editor-index.d.ts +2 -0
  18. package/build/esm/editor/common/editor-index.js +15 -0
  19. package/build/esm/editor/common/editor-index.js.map +1 -0
  20. package/build/esm/editor/common/html-encode.d.ts +1 -0
  21. package/build/esm/editor/common/html-encode.js +15 -0
  22. package/build/esm/editor/common/html-encode.js.map +1 -0
  23. package/build/esm/editor/common/log-socket.d.ts +13 -0
  24. package/build/esm/editor/common/log-socket.js +68 -0
  25. package/build/esm/editor/common/log-socket.js.map +1 -0
  26. package/build/esm/editor/common/templates.d.ts +11 -0
  27. package/build/esm/editor/common/templates.js +444 -0
  28. package/build/esm/editor/common/templates.js.map +1 -0
  29. package/build/esm/editor/components/api-preview.d.ts +11 -0
  30. package/build/esm/editor/components/api-preview.js +91 -0
  31. package/build/esm/editor/components/api-preview.js.map +1 -0
  32. package/build/esm/editor/components/editor.d.ts +16 -0
  33. package/build/esm/editor/components/editor.js +355 -0
  34. package/build/esm/editor/components/editor.js.map +1 -0
  35. package/build/esm/editor/components/file-browser.d.ts +37 -0
  36. package/build/esm/editor/components/file-browser.js +122 -0
  37. package/build/esm/editor/components/file-browser.js.map +1 -0
  38. package/build/esm/editor/components/file-editor-toolbar.d.ts +22 -0
  39. package/build/esm/editor/components/file-editor-toolbar.js +94 -0
  40. package/build/esm/editor/components/file-editor-toolbar.js.map +1 -0
  41. package/build/esm/editor/components/file-editor.d.ts +32 -0
  42. package/build/esm/editor/components/file-editor.js +60 -0
  43. package/build/esm/editor/components/file-editor.js.map +1 -0
  44. package/build/esm/editor/components/filter-query.d.ts +1 -0
  45. package/build/esm/editor/components/filter-query.js +23 -0
  46. package/build/esm/editor/components/filter-query.js.map +1 -0
  47. package/build/esm/editor/components/highlight-text-area.d.ts +11 -0
  48. package/build/esm/editor/components/highlight-text-area.js +139 -0
  49. package/build/esm/editor/components/highlight-text-area.js.map +1 -0
  50. package/build/esm/editor/components/log-viewer.d.ts +6 -0
  51. package/build/esm/editor/components/log-viewer.js +70 -0
  52. package/build/esm/editor/components/log-viewer.js.map +1 -0
  53. package/build/esm/editor/components/new-file.d.ts +10 -0
  54. package/build/esm/editor/components/new-file.js +118 -0
  55. package/build/esm/editor/components/new-file.js.map +1 -0
  56. package/build/esm/editor/components/scroll-query.d.ts +7 -0
  57. package/build/esm/editor/components/scroll-query.js +22 -0
  58. package/build/esm/editor/components/scroll-query.js.map +1 -0
  59. package/build/esm/editor/components/start-page.d.ts +13 -0
  60. package/build/esm/editor/components/start-page.js +31 -0
  61. package/build/esm/editor/components/start-page.js.map +1 -0
  62. package/build/esm/editor/http/admin/editor/api/fs/delete.api.d.ts +3 -0
  63. package/build/esm/editor/http/admin/editor/api/fs/delete.api.js +30 -0
  64. package/build/esm/editor/http/admin/editor/api/fs/delete.api.js.map +1 -0
  65. package/build/esm/editor/http/admin/editor/api/fs/read.api.d.ts +5 -0
  66. package/build/esm/editor/http/admin/editor/api/fs/read.api.js +50 -0
  67. package/build/esm/editor/http/admin/editor/api/fs/read.api.js.map +1 -0
  68. package/build/esm/editor/http/admin/editor/api/fs/rename.api.d.ts +4 -0
  69. package/build/esm/editor/http/admin/editor/api/fs/rename.api.js +40 -0
  70. package/build/esm/editor/http/admin/editor/api/fs/rename.api.js.map +1 -0
  71. package/build/esm/editor/http/admin/editor/api/fs/scan.api.d.ts +26 -0
  72. package/build/esm/editor/http/admin/editor/api/fs/scan.api.js +150 -0
  73. package/build/esm/editor/http/admin/editor/api/fs/scan.api.js.map +1 -0
  74. package/build/esm/editor/http/admin/editor/api/fs/write.api.d.ts +3 -0
  75. package/build/esm/editor/http/admin/editor/api/fs/write.api.js +39 -0
  76. package/build/esm/editor/http/admin/editor/api/fs/write.api.js.map +1 -0
  77. package/build/esm/editor/http/admin/editor/api/server/reload.api.d.ts +10 -0
  78. package/build/esm/editor/http/admin/editor/api/server/reload.api.js +46 -0
  79. package/build/esm/editor/http/admin/editor/api/server/reload.api.js.map +1 -0
  80. package/build/esm/editor/http/admin/editor/api/server/restart.api.d.ts +10 -0
  81. package/build/esm/editor/http/admin/editor/api/server/restart.api.js +46 -0
  82. package/build/esm/editor/http/admin/editor/api/server/restart.api.js.map +1 -0
  83. package/build/esm/editor/http/admin/editor/editor.js +8 -0
  84. package/build/esm/editor/http/admin/editor/editor.js.map +1 -0
  85. package/build/esm/editor/http/admin/editor/index.api.d.ts +3 -0
  86. package/build/esm/editor/http/admin/editor/index.api.js +22 -0
  87. package/build/esm/editor/http/admin/editor/index.api.js.map +1 -0
  88. package/build/esm/editor/server.d.ts +3 -0
  89. package/build/esm/editor/server.js +50 -0
  90. package/build/esm/editor/server.js.map +1 -0
  91. package/build/esm/editor/ws.d.ts +3 -0
  92. package/build/esm/editor/ws.js +12 -0
  93. package/build/esm/editor/ws.js.map +1 -0
  94. package/build/esm/src/bin/compile.d.ts +3 -0
  95. package/build/esm/src/bin/compile.js +31 -0
  96. package/build/esm/src/bin/compile.js.map +1 -0
  97. package/build/{utils/doc/md.d.ts → esm/src/bin/doc-md.d.ts} +2 -4
  98. package/build/{utils/doc/md.js → esm/src/bin/doc-md.js} +32 -18
  99. package/build/esm/src/bin/doc-md.js.map +1 -0
  100. package/build/esm/src/bin/generate-doc.d.ts +4 -0
  101. package/build/esm/src/bin/generate-doc.js +47 -0
  102. package/build/esm/src/bin/generate-doc.js.map +1 -0
  103. package/build/esm/src/bin/test.d.ts +3 -0
  104. package/build/esm/src/bin/test.js +68 -0
  105. package/build/esm/src/bin/test.js.map +1 -0
  106. package/build/esm/src/bin/types.d.ts +3 -0
  107. package/build/esm/src/bin/types.js +21 -0
  108. package/build/esm/src/bin/types.js.map +1 -0
  109. package/build/esm/src/cluster.js +11 -0
  110. package/build/esm/src/cluster.js.map +1 -0
  111. package/build/esm/src/common/arguments.d.ts +22 -0
  112. package/build/esm/src/common/arguments.js +310 -0
  113. package/build/esm/src/common/arguments.js.map +1 -0
  114. package/build/esm/src/common/assets.d.ts +11 -0
  115. package/build/esm/src/common/assets.js +121 -0
  116. package/build/esm/src/common/assets.js.map +1 -0
  117. package/build/esm/src/common/checksum.d.ts +19 -0
  118. package/build/esm/src/common/checksum.js +57 -0
  119. package/build/esm/src/common/checksum.js.map +1 -0
  120. package/build/esm/src/common/constants.d.ts +10 -0
  121. package/build/esm/src/common/constants.js +14 -0
  122. package/build/esm/src/common/constants.js.map +1 -0
  123. package/build/esm/src/common/content-type.d.ts +4 -0
  124. package/build/esm/src/common/content-type.js +82 -0
  125. package/build/esm/src/common/content-type.js.map +1 -0
  126. package/build/esm/src/common/esbuild.d.ts +17 -0
  127. package/build/esm/src/common/esbuild.js +79 -0
  128. package/build/esm/src/common/esbuild.js.map +1 -0
  129. package/build/esm/src/common/exit.d.ts +2 -0
  130. package/build/esm/src/common/exit.js +84 -0
  131. package/build/esm/src/common/exit.js.map +1 -0
  132. package/build/esm/src/common/fs.d.ts +8 -0
  133. package/build/esm/src/common/fs.js +17 -0
  134. package/build/esm/src/common/fs.js.map +1 -0
  135. package/build/esm/src/common/help.d.ts +3 -0
  136. package/build/esm/src/common/help.js +44 -0
  137. package/build/esm/src/common/help.js.map +1 -0
  138. package/build/esm/src/common/jsx.d.ts +52 -0
  139. package/build/esm/src/common/jsx.js +365 -0
  140. package/build/esm/src/common/jsx.js.map +1 -0
  141. package/build/esm/src/common/paths.d.ts +14 -0
  142. package/build/esm/src/common/paths.js +110 -0
  143. package/build/esm/src/common/paths.js.map +1 -0
  144. package/build/esm/src/common/watch.d.ts +3 -0
  145. package/build/esm/src/common/watch.js +74 -0
  146. package/build/esm/src/common/watch.js.map +1 -0
  147. package/build/esm/src/inflate/inflate-sea.d.ts +5 -0
  148. package/build/esm/src/inflate/inflate-sea.js +175 -0
  149. package/build/esm/src/inflate/inflate-sea.js.map +1 -0
  150. package/build/esm/src/inflate/inflate.d.ts +14 -0
  151. package/build/esm/src/inflate/inflate.js +65 -0
  152. package/build/esm/src/inflate/inflate.js.map +1 -0
  153. package/build/esm/src/inflate/md.d.ts +2 -0
  154. package/build/esm/src/inflate/md.js +19 -0
  155. package/build/esm/src/inflate/md.js.map +1 -0
  156. package/build/esm/src/inflate/setup-auth.d.ts +3 -0
  157. package/build/esm/src/inflate/setup-auth.js +38 -0
  158. package/build/esm/src/inflate/setup-auth.js.map +1 -0
  159. package/build/esm/src/inflate/setup-cors.d.ts +3 -0
  160. package/build/esm/src/inflate/setup-cors.js +38 -0
  161. package/build/esm/src/inflate/setup-cors.js.map +1 -0
  162. package/build/esm/src/inflate/setup-db.d.ts +8 -0
  163. package/build/esm/src/inflate/setup-db.js +99 -0
  164. package/build/esm/src/inflate/setup-db.js.map +1 -0
  165. package/build/esm/src/inflate/setup-http.d.ts +37 -0
  166. package/build/esm/src/inflate/setup-http.js +543 -0
  167. package/build/esm/src/inflate/setup-http.js.map +1 -0
  168. package/build/esm/src/inflate/setup-log.d.ts +7 -0
  169. package/build/esm/src/inflate/setup-log.js +37 -0
  170. package/build/esm/src/inflate/setup-log.js.map +1 -0
  171. package/build/esm/src/inflate/setup-server-config.d.ts +7 -0
  172. package/build/esm/src/inflate/setup-server-config.js +37 -0
  173. package/build/esm/src/inflate/setup-server-config.js.map +1 -0
  174. package/build/esm/src/inflate/setup-test.d.ts +2 -0
  175. package/build/esm/src/inflate/setup-test.js +22 -0
  176. package/build/esm/src/inflate/setup-test.js.map +1 -0
  177. package/build/esm/src/inflate/setup-ws.d.ts +4 -0
  178. package/build/esm/src/inflate/setup-ws.js +46 -0
  179. package/build/esm/src/inflate/setup-ws.js.map +1 -0
  180. package/build/esm/src/inflate/utils/sea-utils.d.ts +2 -0
  181. package/build/esm/src/inflate/utils/sea-utils.js +13 -0
  182. package/build/esm/src/inflate/utils/sea-utils.js.map +1 -0
  183. package/build/esm/src/lib.d.ts +13 -0
  184. package/build/esm/src/lib.js +17 -0
  185. package/build/esm/src/lib.js.map +1 -0
  186. package/build/esm/src/main.d.ts +2 -0
  187. package/build/esm/src/main.js +92 -0
  188. package/build/esm/src/main.js.map +1 -0
  189. package/build/esm/src/services/app.d.ts +88 -0
  190. package/build/esm/src/services/app.js +619 -0
  191. package/build/esm/src/services/app.js.map +1 -0
  192. package/build/esm/src/services/editor.d.ts +3 -0
  193. package/build/esm/src/services/editor.js +61 -0
  194. package/build/esm/src/services/editor.js.map +1 -0
  195. package/build/esm/src/services/globals.d.ts +3 -0
  196. package/build/esm/src/services/globals.js +139 -0
  197. package/build/esm/src/services/globals.js.map +1 -0
  198. package/build/esm/src/services/hot-reload.d.ts +1 -0
  199. package/build/esm/src/services/hot-reload.js +45 -0
  200. package/build/esm/src/services/hot-reload.js.map +1 -0
  201. package/build/esm/src/services/migrations.d.ts +4 -0
  202. package/build/esm/src/services/migrations.js +61 -0
  203. package/build/esm/src/services/migrations.js.map +1 -0
  204. package/build/esm/src/services/utils/cache.d.ts +19 -0
  205. package/build/esm/src/services/utils/cache.js +85 -0
  206. package/build/esm/src/services/utils/cache.js.map +1 -0
  207. package/build/esm/src/services/utils/cluster-cache.d.ts +20 -0
  208. package/build/esm/src/services/utils/cluster-cache.js +211 -0
  209. package/build/esm/src/services/utils/cluster-cache.js.map +1 -0
  210. package/build/esm/src/services/utils/cluster-ws.d.ts +24 -0
  211. package/build/esm/src/services/utils/cluster-ws.js +176 -0
  212. package/build/esm/src/services/utils/cluster-ws.js.map +1 -0
  213. package/build/esm/src/services/utils/db-manager.d.ts +20 -0
  214. package/build/esm/src/services/utils/db-manager.js +59 -0
  215. package/build/esm/src/services/utils/db-manager.js.map +1 -0
  216. package/build/esm/src/services/utils/get-route.d.ts +9 -0
  217. package/build/esm/src/services/utils/get-route.js +58 -0
  218. package/build/esm/src/services/utils/get-route.js.map +1 -0
  219. package/build/esm/src/services/utils/log.d.ts +17 -0
  220. package/build/esm/src/services/utils/log.js +74 -0
  221. package/build/esm/src/services/utils/log.js.map +1 -0
  222. package/build/esm/src/services/utils/server-interface.d.ts +41 -0
  223. package/build/esm/src/services/utils/server-interface.js +74 -0
  224. package/build/esm/src/services/utils/server-interface.js.map +1 -0
  225. package/build/esm/src/services/utils/websocketmanager.d.ts +23 -0
  226. package/build/esm/src/services/utils/websocketmanager.js +128 -0
  227. package/build/esm/src/services/utils/websocketmanager.js.map +1 -0
  228. package/build/esm/src/types.d.ts +166 -0
  229. package/build/esm/src/types.js +2 -0
  230. package/build/esm/src/types.js.map +1 -0
  231. package/build/jsx.dom.js +1585 -0
  232. package/build/lib.cjs +14009 -0
  233. package/build/postject.base64.cjs +1 -0
  234. package/editor/auth.ts +51 -0
  235. package/editor/common/admin-interface.ts +84 -0
  236. package/editor/common/constants.server.ts +5 -0
  237. package/editor/common/constants.ts +21 -0
  238. package/editor/common/editor-index.tsx +17 -0
  239. package/editor/common/html-encode.ts +14 -0
  240. package/editor/common/log-socket.tsx +82 -0
  241. package/editor/common/templates.ts +448 -0
  242. package/editor/components/api-preview.tsx +116 -0
  243. package/editor/components/editor.tsx +483 -0
  244. package/editor/components/file-browser.tsx +295 -0
  245. package/editor/components/file-editor-toolbar.tsx +187 -0
  246. package/editor/components/file-editor.tsx +122 -0
  247. package/editor/components/filter-query.tsx +22 -0
  248. package/editor/components/highlight-text-area.tsx +159 -0
  249. package/editor/components/log-viewer.tsx +110 -0
  250. package/editor/components/new-file.tsx +169 -0
  251. package/editor/components/scroll-query.tsx +22 -0
  252. package/editor/components/start-page.tsx +49 -0
  253. package/editor/http/admin/editor/api/fs/delete.api.tsx +32 -0
  254. package/editor/http/admin/editor/api/fs/read.api.tsx +55 -0
  255. package/editor/http/admin/editor/api/fs/rename.api.tsx +41 -0
  256. package/editor/http/admin/editor/api/fs/scan.api.tsx +181 -0
  257. package/editor/http/admin/editor/api/fs/write.api.tsx +41 -0
  258. package/editor/http/admin/editor/api/server/reload.api.ts +52 -0
  259. package/editor/http/admin/editor/api/server/restart.api.tsx +52 -0
  260. package/editor/http/admin/editor/editor.tsx +8 -0
  261. package/editor/http/admin/editor/font.ttf +0 -0
  262. package/editor/http/admin/editor/index.api.tsx +39 -0
  263. package/editor/http/admin/editor/style.css +620 -0
  264. package/editor/server.ts +57 -0
  265. package/editor/static/android-chrome-192x192.png +0 -0
  266. package/editor/static/android-chrome-512x512.png +0 -0
  267. package/editor/static/apple-touch-icon.png +0 -0
  268. package/editor/static/editor.bundle.in.mjs +20 -0
  269. package/editor/static/favicon-16x16.png +0 -0
  270. package/editor/static/favicon-32x32.png +0 -0
  271. package/editor/static/favicon.ico +0 -0
  272. package/editor/static/site.webmanifest +19 -0
  273. package/editor/ws.ts +15 -0
  274. package/package.json +43 -24
  275. package/package.json--OLD +36 -0
  276. package/sea/app.sh +33 -0
  277. package/sea/base64.js +3 -0
  278. package/sea/basic-compile.base64.sh +1 -0
  279. package/sea/basic-compile.sh +73 -0
  280. package/sea/basic-config.json +9 -0
  281. package/sea/compile.sh +124 -0
  282. package/sea/copy-types.sh +46 -0
  283. package/sea/editor-assets/editor.bundle.in.mjs +19 -0
  284. package/sea/esbuild.sh +31 -0
  285. package/sea/generate-global-types-asset-json.js +34 -0
  286. package/sea/install-esbuild.sh +53 -0
  287. package/sea/install-nodejs.sh +49 -0
  288. package/sea/main.sh +34 -0
  289. package/sea/node.sh +33 -0
  290. package/sea/node.version.tag +1 -0
  291. package/sea/precompile.sh +7 -0
  292. package/sea/release-tar.sh +5 -0
  293. package/sea/sign-add.sh +22 -0
  294. package/sea/sign-remove.sh +22 -0
  295. package/sea/tsc.sh +1 -0
  296. package/sea/types.json +1 -0
  297. package/src/bin/compile.ts +35 -0
  298. package/src/bin/doc-md.ts +210 -0
  299. package/src/bin/generate-doc.ts +55 -0
  300. package/src/bin/test.ts +92 -0
  301. package/src/bin/types.ts +22 -0
  302. package/src/cluster.ts +16 -0
  303. package/src/common/arguments.ts +366 -0
  304. package/src/common/assets.ts +124 -0
  305. package/src/common/checksum.ts +58 -0
  306. package/src/common/constants.ts +18 -0
  307. package/src/common/content-type.ts +84 -0
  308. package/src/common/esbuild.ts +94 -0
  309. package/src/common/exit.ts +91 -0
  310. package/src/common/fs.ts +17 -0
  311. package/src/common/help.ts +46 -0
  312. package/src/common/jsx.ts +414 -0
  313. package/src/common/paths.ts +117 -0
  314. package/src/common/watch.ts +80 -0
  315. package/src/inflate/inflate-sea.ts +193 -0
  316. package/src/inflate/inflate.ts +96 -0
  317. package/src/inflate/md.ts +20 -0
  318. package/src/inflate/setup-auth.ts +40 -0
  319. package/src/inflate/setup-cors.ts +40 -0
  320. package/src/inflate/setup-db.ts +113 -0
  321. package/src/inflate/setup-http.ts +643 -0
  322. package/src/inflate/setup-log.ts +44 -0
  323. package/src/inflate/setup-server-config.ts +47 -0
  324. package/src/inflate/setup-test.ts +23 -0
  325. package/src/inflate/setup-ws.ts +48 -0
  326. package/src/inflate/utils/sea-utils.ts +14 -0
  327. package/src/lib.ts +19 -0
  328. package/src/main.ts +87 -0
  329. package/src/services/app.ts +718 -0
  330. package/src/services/editor.tsx +93 -0
  331. package/src/services/globals.ts +143 -0
  332. package/src/services/hot-reload.ts +46 -0
  333. package/src/services/migrations.ts +66 -0
  334. package/src/services/utils/cache.ts +88 -0
  335. package/src/services/utils/cluster-cache.ts +225 -0
  336. package/src/services/utils/cluster-ws.ts +192 -0
  337. package/src/services/utils/db-manager.ts +79 -0
  338. package/src/services/utils/get-route.ts +70 -0
  339. package/src/services/utils/log.ts +91 -0
  340. package/src/services/utils/server-interface.ts +166 -0
  341. package/src/services/utils/websocketmanager.ts +139 -0
  342. package/src/types/@esbuild.d.ts +1 -0
  343. package/src/types/@miqro/core.d.ts +2 -0
  344. package/src/types/@miqro/jsx.d.ts +2 -0
  345. package/src/types/@miqro/parser.d.ts +2 -0
  346. package/src/types/@miqro/query.d.ts +2 -0
  347. package/src/types/@miqro/request.d.ts +2 -0
  348. package/src/types/@miqro/test.d.ts +2 -0
  349. package/src/types/@miqro.d.ts +1 -0
  350. package/src/types/@types.d.ts +1 -0
  351. package/src/types/browser.globals.d.ts +9 -0
  352. package/src/types/globals.d.ts +2 -0
  353. package/src/types/jsx.globals.d.ts +37 -0
  354. package/src/types/miqro.d.ts +109 -0
  355. package/src/types/postject.d.ts +1 -0
  356. package/src/types/server.globals.d.ts +72 -0
  357. package/src/types.ts +199 -0
  358. package/tsconfig.json +35 -0
  359. package/build/cli.js +0 -4
  360. package/build/cmd-map.d.ts +0 -90
  361. package/build/cmd-map.js +0 -460
  362. package/build/index.js +0 -2
  363. package/build/utils/doc/json.d.ts +0 -7
  364. package/build/utils/doc/json.js +0 -12
  365. package/build/utils/exec.d.ts +0 -32
  366. package/build/utils/exec.js +0 -102
  367. package/build/utils/templates.d.ts +0 -33
  368. package/build/utils/templates.js +0 -302
  369. package/build/utils/watch.d.ts +0 -1
  370. package/build/utils/watch.js +0 -35
  371. /package/build/{index.d.ts → esm/editor/http/admin/editor/editor.d.ts} +0 -0
  372. /package/build/{cli.d.ts → esm/src/cluster.d.ts} +0 -0
@@ -0,0 +1,139 @@
1
+ import { Logger } from "@miqro/core";
2
+ import { LOG_SOCKET_PATH } from "../../../editor/common/constants.js";
3
+ import { ClusterWebSocketServer2 } from "./cluster-ws.js";
4
+ import { WSConfig } from "../../types.js";
5
+
6
+ export interface WebSocketManagerOptions {
7
+ logger?: Logger | Console;
8
+ name?: string;
9
+ avoidLogSocket?: boolean;
10
+ }
11
+
12
+ export class WebSocketManager {
13
+ public runningGlobalWSMap = new Map<string, ClusterWebSocketServer2>();
14
+ public logger?: Logger | Console | null = null;
15
+ public name: string;
16
+ public avoidLogSocket: boolean;
17
+ constructor(options?: WebSocketManagerOptions) {
18
+ this.onUpgrade = this.onUpgrade.bind(this);
19
+ this.logger = options && options.logger ? options.logger : null;
20
+ this.name = options && options.name ? options.name : "WebSocketManager";
21
+ this.avoidLogSocket = options && options.avoidLogSocket ? options.avoidLogSocket : false;
22
+ }
23
+ public deleteAllWS() {
24
+ this.runningGlobalWSMap.clear();
25
+ }
26
+
27
+ public getWS(path: string): ClusterWebSocketServer2 | undefined {
28
+ return this.runningGlobalWSMap.get(path);
29
+ }
30
+
31
+ public replaceALLWS(list: WSConfig[]) {
32
+ this.deleteAllWS();
33
+ for (const wsConfig of list) {
34
+ if (!wsConfig.disabled) {
35
+ if (this.runningGlobalWSMap.has(wsConfig.path)) {
36
+ throw new Error(`ws on path ${wsConfig.path} already setup!`);
37
+ }
38
+ this.logger?.debug("setting up websocket on [%s]", wsConfig.path);
39
+ const server = new ClusterWebSocketServer2(wsConfig.path, wsConfig);
40
+ this.runningGlobalWSMap.set(wsConfig.path, server);
41
+ }
42
+ }
43
+ }
44
+
45
+ public replaceALLWSBuLOGSocket(list: WSConfig[]) {
46
+ for (const path of this.runningGlobalWSMap.keys()) {
47
+ if (path !== LOG_SOCKET_PATH || !this.avoidLogSocket) {
48
+ this.runningGlobalWSMap.delete(path);
49
+ }
50
+ }
51
+ for (const wsConfig of list) {
52
+ if (!wsConfig.disabled) {
53
+ if (wsConfig.path !== LOG_SOCKET_PATH || !this.avoidLogSocket) {
54
+ if (this.runningGlobalWSMap.has(wsConfig.path)) {
55
+ throw new Error(`ws on path ${wsConfig.path} already setup!`);
56
+ }
57
+ this.logger?.debug("setting up websocket on [%s]", wsConfig.path);
58
+ const server = new ClusterWebSocketServer2(this.name + wsConfig.path, wsConfig);
59
+ this.runningGlobalWSMap.set(wsConfig.path, server);
60
+ }
61
+ }
62
+ }
63
+ }
64
+
65
+ /*public setupWS(path: string, server: ClusterWebSocketServer2) {
66
+ if (this.runningGlobalWSMap.has(path)) {
67
+ throw new Error(`ws on path ${path} already setup!`);
68
+ }
69
+ this.runningGlobalWSMap.set(path, server);
70
+ }*/
71
+
72
+ public disconnectAllFrom(path: string) {
73
+ try {
74
+ this.logger?.debug("disconnect all from [%s]", path);
75
+ const ws = this.getWS(path);
76
+ if (ws) {
77
+ const clients = ws.clients.values();
78
+ if (clients) {
79
+ for (const client of clients) {
80
+ try {
81
+ client.socket.destroy();
82
+ } catch (e2) {
83
+ this.logger?.error("error disconnecting web socket client");
84
+ this.logger?.error(e2);
85
+ }
86
+ }
87
+ }
88
+ ws.dispose();
89
+ }
90
+ } catch (e) {
91
+ this.logger?.error("error disconnecting web socket clients");
92
+ this.logger?.error(e.message);
93
+ }
94
+ }
95
+
96
+ public disconnectAllButLOGSocket() {
97
+ try {
98
+ for (const wsPath of this.runningGlobalWSMap.keys()) {
99
+ if (wsPath !== LOG_SOCKET_PATH || !this.avoidLogSocket) {
100
+ this.disconnectAllFrom(wsPath);
101
+ }
102
+ }
103
+ } catch (e) {
104
+ this.logger?.error("error disconnecting web socket clients");
105
+ this.logger?.error(e.message);
106
+ }
107
+ }
108
+
109
+ public disconnectAll() {
110
+ try {
111
+ for (const wsPath of this.runningGlobalWSMap.keys()) {
112
+ this.disconnectAllFrom(wsPath);
113
+ }
114
+ } catch (e) {
115
+ this.logger?.error("error disconnecting web socket clients");
116
+ this.logger?.error(e.message);
117
+ }
118
+ }
119
+
120
+ public onUpgrade(req, socket, head) {
121
+ try {
122
+ const wsServer = this.getWS(req.path);
123
+ if (wsServer) {
124
+ return wsServer.onUpgrade(req, socket, head);
125
+ } else {
126
+ socket.destroy();
127
+ }
128
+ } catch (e) {
129
+ this.logger?.error(e);
130
+ }
131
+ }
132
+ }
133
+
134
+ /*export interface WSMapConfig {
135
+ [path: string]: {
136
+ name: string;
137
+ options: WSConfig;
138
+ } | undefined;
139
+ }*/
@@ -0,0 +1 @@
1
+ import "../globals.js";
@@ -0,0 +1,2 @@
1
+ import "../globals.js";
2
+ export * from "@miqro/core/lib.js";
@@ -0,0 +1,2 @@
1
+ import "../globals.js";
2
+ export * from "@miqro/jsx/esm/lib.js";
@@ -0,0 +1,2 @@
1
+ import "../globals.js";
2
+ export * from "@miqro/parser/lib.js";
@@ -0,0 +1,2 @@
1
+ import "../globals.js";
2
+ export * from "@miqro/query/lib.js";
@@ -0,0 +1,2 @@
1
+ import "../globals.js";
2
+ export * from "@miqro/request/lib.js";
@@ -0,0 +1,2 @@
1
+ import "../globals.js";
2
+ export * from "@miqro/test/dist/index.js";
@@ -0,0 +1 @@
1
+ import "../globals.js";
@@ -0,0 +1 @@
1
+ import "../globals.js";
@@ -0,0 +1,9 @@
1
+ import "./jsx.globals.js";
2
+ import { RuntimeElementDefinitionOptions, Component } from "@miqro/jsx/esm/lib.js";
3
+
4
+ declare global {
5
+ // only available browser side
6
+ var jsx: {
7
+ define: (tagName: string, component: Component, options?: RuntimeElementDefinitionOptions) => void;
8
+ }
9
+ }
@@ -0,0 +1,2 @@
1
+ import "./browser.globals.js";
2
+ import "./server.globals.js";
@@ -0,0 +1,37 @@
1
+ import * as jsxLib from "@miqro/jsx/esm/lib.js";
2
+
3
+ declare global {
4
+ // jsx only for the default value of tsconfig.json
5
+ var React: {};
6
+ var jsx: {
7
+ useRuntime: typeof jsxLib.useRuntime;
8
+ usePathname: typeof jsxLib.usePathname;
9
+ Link: typeof jsxLib.Link;
10
+ Router: typeof jsxLib.Router;
11
+ createContext: typeof jsxLib.createContext;
12
+ useContext: typeof jsxLib.useContext;
13
+ useState: typeof jsxLib.useState;
14
+ useEffect: typeof jsxLib.useEffect;
15
+ useQuery: typeof jsxLib.useQuery;
16
+ useRef: typeof jsxLib.useRef;
17
+ useElement: typeof jsxLib.useElement;
18
+ useRefresh: typeof jsxLib.useRefresh;
19
+ }
20
+ /*var useRuntime: typeof jsxLib.useRuntime;
21
+ var usePathname: typeof jsxLib.usePathname;
22
+ var Link: typeof jsxLib.Link;
23
+ var Router: typeof jsxLib.Router;
24
+ var createContext: typeof jsxLib.createContext;
25
+ var useContext: typeof jsxLib.useContext;
26
+ var useState: typeof jsxLib.useState;
27
+ var useEffect: typeof jsxLib.useEffect;
28
+ var useQuery: typeof jsxLib.useQuery;
29
+ var useRef: typeof jsxLib.useRef;
30
+ var useElement: typeof jsxLib.useElement;
31
+ var useRefresh: typeof jsxLib.useRefresh;*/
32
+ var JSX: {
33
+ createElement: typeof jsxLib.createElement;
34
+ Fragment: typeof jsxLib.Fragment;
35
+ enableDebugLog: typeof jsxLib.enableDebugLog;
36
+ }
37
+ }
@@ -0,0 +1,109 @@
1
+ import "./globals.js";
2
+ import { Database, Migration } from "@miqro/query/lib.js";
3
+ import { CORSOptions, LogLevel, LoggerTransportWriteArgs, Request, Response, WebSocketServer, Logger, WebSocketServerOptions, SessionHandlerOptions, RouteOptions, Handler } from "@miqro/core/lib.js";
4
+ import { ParserInterface } from "@miqro/parser/lib.js";
5
+
6
+ /*export * from "@miqro/core/lib.js";
7
+ export * from "@miqro/query/lib.js";*/
8
+
9
+ export interface AuthConfig extends SessionHandlerOptions {
10
+
11
+ }
12
+
13
+ export interface CORSConfig extends CORSOptions {
14
+
15
+ }
16
+
17
+ export interface WSConfig extends WebSocketServerOptions {
18
+ path: string;
19
+ disabled?: boolean;
20
+ }
21
+
22
+ export interface ServerConfig {
23
+ start?: (server: ServerInterface) => Promise<void> | void;
24
+ preload?: (server: ServerInterface) => Promise<void> | void;
25
+ load?: (server: ServerInterface) => Promise<void> | void;
26
+ unload?: (server: ServerInterface) => void;
27
+ stop?: (server: ServerInterface) => void;
28
+ }
29
+
30
+ export interface DBConfig {
31
+ dialect?: string;
32
+ storage?: string;
33
+ url?: string;
34
+ disabled?: boolean;
35
+ name: string;
36
+ }
37
+
38
+ export interface CacheInterface {
39
+ get<T = any>(key: string): T | undefined;
40
+ set: (key: string, value: unknown) => void;
41
+ unset: (key: string) => void;
42
+ has: (key: string) => boolean;
43
+
44
+ set_add: (key: string, value: unknown) => void;
45
+ set_delete: (key: string, value: unknown) => void;
46
+ set_has: (key: string, value: unknown) => boolean;
47
+ set_clear: (key: string) => void;
48
+
49
+ array_push: (key: string, value: unknown) => void;
50
+ array_clear: (key: string) => void;
51
+ }
52
+
53
+ export interface APIOptions extends Partial<RouteOptions> {
54
+ basePath?: string;
55
+ path?: string | string[];
56
+ method?: string | string[];
57
+ parser?: ParserInterface;
58
+ middleware?: Handler | Handler[];
59
+ session?: SessionHandlerOptions | Handler;
60
+ }
61
+
62
+ export interface NamedMigration {
63
+ name: string;
64
+ service: string;
65
+ dbName: string;
66
+ }
67
+
68
+ export interface LogConfig {
69
+ level?: LogLevel;
70
+ replaceConsoleTransport?: boolean;
71
+ replaceFileTransport?: boolean;
72
+ write: (args: LoggerTransportWriteArgs) => Promise<void> | void;
73
+ }
74
+
75
+ export interface MigrateOptions {
76
+ direction: "up" | "down";
77
+ service?: string;
78
+ dbName?: string;
79
+ name?: string;
80
+ }
81
+
82
+ export interface ServerInterface {
83
+ // null values are if the feature has been disabled
84
+ db: {
85
+ get(name: string): Database | null;
86
+ getMigrations(): NamedMigration[];
87
+ migrate(options?: MigrateOptions): Promise<void>;
88
+ },
89
+ ws: {
90
+ get(path: string): WebSocketServer | undefined;
91
+ disconnectAll(path: string): void;
92
+ };
93
+ cache: CacheInterface;
94
+ localCache: CacheInterface;
95
+ logger: Logger;
96
+ isPrimaryWorker: () => boolean;
97
+ openBrowser: (path: string) => void;
98
+ getLogger: (identifier: string, options?: { level?: any; transports?: any[]; formatter?: any; }) => Logger;
99
+ }
100
+
101
+ export interface ServerRequest extends Request {
102
+ server?: ServerInterface;
103
+ }
104
+
105
+ export interface ServerResponse extends Response {
106
+ }
107
+
108
+ export { App, LoggerHandler, Router } from "@miqro/core/lib.js";
109
+ export { migration } from "@miqro/query/lib.js";
@@ -0,0 +1 @@
1
+ import "../globals.js";
@@ -0,0 +1,72 @@
1
+ import "./jsx.globals.js";
2
+
3
+ import { Logger, WebSocketServer, ReadBuffer, URLEncodedParser, JSONParser, TextParser, CORS, SessionHandler } from "@miqro/core/lib.js";
4
+ import { request } from "./@miqro/request.js";
5
+ import { RuntimeHTMLElement, Runtime, RuntimeContainer, RuntimeURL, RuntimeOptions, RuntimeShadowRootInit } from "./@miqro/jsx.js";
6
+
7
+ declare global {
8
+ // only available server side
9
+ var server: {
10
+ /*// null values are if the feature has been disabled
11
+ db: {
12
+ get(name: string): Database | null;
13
+ },
14
+ ws: {
15
+ get(path: string): WebSocketServer | undefined;
16
+ disconnectAll(path: string): void;
17
+ };
18
+ cache: {
19
+ get: (key: string) => any;
20
+ set: (key: string, value: unknown) => void;
21
+ delete: (key: string) => void;
22
+ has: (key: string) => boolean;
23
+ };
24
+ logger: Logger;*/
25
+ middleware: {
26
+ buffer: typeof ReadBuffer;
27
+ url: typeof URLEncodedParser;
28
+ json: typeof JSONParser;
29
+ text: typeof TextParser;
30
+ cors: typeof CORS;
31
+ session: typeof SessionHandler;
32
+ }
33
+ encodeHTML: (str: string) => string;
34
+ inflateMDtoHTML: (str: string) => string;
35
+ }
36
+
37
+ var test: {
38
+ PORT: string;
39
+ request: typeof request,
40
+ logger: Logger,
41
+ sleep: (ms: number) => Promise<void>,
42
+ jsx: {
43
+ createRuntime: (args?: {
44
+ basePath?: string | null;
45
+ url?: RuntimeURL;
46
+ logger?: {
47
+ log: Function,
48
+ error: Function
49
+ }
50
+ }) => Runtime;
51
+ test: (cb: (container: RuntimeContainer, root: RuntimeHTMLElement, runtime: Runtime) => (Promise<void> | void), args?: {
52
+ runtimeOptions?: {
53
+ basePath?: string | null;
54
+ url?: RuntimeURL;
55
+ logger?: {
56
+ log: Function;
57
+ error: Function;
58
+ };
59
+ },
60
+ containerOptions?: {
61
+ runtimeOptions?: RuntimeOptions;
62
+ shadowInit?: boolean | RuntimeShadowRootInit;
63
+ };
64
+ }) => () => Promise<void>;
65
+ }
66
+ }
67
+
68
+ var it: Function;
69
+ var describe: Function;
70
+ var before: Function;
71
+ var after: Function;
72
+ }
package/src/types.ts ADDED
@@ -0,0 +1,199 @@
1
+ import { Database } from "@miqro/query";
2
+ import { WebSocketServerOptions, SessionHandlerOptions, Logger, WebSocketServer, ReadBuffer, URLEncodedParser, JSONParser, TextParser, CORS, SessionHandler, RouteOptions, Handler, Request, Response, LogLevel, LoggerTransportWriteArgs, CORSOptions } from "@miqro/core";
3
+ import { request } from "@miqro/request";
4
+ import { ParserInterface } from "@miqro/parser";
5
+ import { RuntimeHTMLElement, Runtime, RuntimeContainer, RuntimeURL, RuntimeOptions, RuntimeShadowRootInit } from "@miqro/jsx";
6
+ import {
7
+ RuntimeElementDefinitionOptions,
8
+ Component,
9
+ createElement,
10
+ Fragment,
11
+ enableDebugLog
12
+ } from "@miqro/jsx";
13
+ import * as jsxLib from "@miqro/jsx";
14
+
15
+ declare global {
16
+ // jsx only for the default value of tsconfig.json
17
+ //var React: {};
18
+ var JSX: {
19
+ createElement: typeof createElement;
20
+ Fragment: typeof Fragment;
21
+ enableDebugLog: typeof enableDebugLog;
22
+ }
23
+ }
24
+
25
+ declare global {
26
+ // only available browser side
27
+ var jsx: {
28
+ define: (tagName: string, component: Component, options?: RuntimeElementDefinitionOptions) => void;
29
+ useRuntime: typeof jsxLib.useRuntime;
30
+ usePathname: typeof jsxLib.usePathname;
31
+ Link: typeof jsxLib.Link;
32
+ Router: typeof jsxLib.Router;
33
+ createContext: typeof jsxLib.createContext;
34
+ useContext: typeof jsxLib.useContext;
35
+ useState: typeof jsxLib.useState;
36
+ useEffect: typeof jsxLib.useEffect;
37
+ useQuery: typeof jsxLib.useQuery;
38
+ useRef: typeof jsxLib.useRef;
39
+ useElement: typeof jsxLib.useElement;
40
+ useRefresh: typeof jsxLib.useRefresh;
41
+ }
42
+ }
43
+
44
+ export interface ServerGlobal {
45
+ encodeHTML: (str: string) => string;
46
+ inflateMDtoHTML: (str: string) => string;
47
+ middleware: {
48
+ buffer: typeof ReadBuffer;
49
+ url: typeof URLEncodedParser;
50
+ json: typeof JSONParser;
51
+ text: typeof TextParser;
52
+ cors: typeof CORS;
53
+ session: typeof SessionHandler;
54
+ };
55
+ }
56
+
57
+ export interface CacheInterface {
58
+ get<T = any>(key: string): T | undefined;
59
+ set: (key: string, value: unknown) => void;
60
+ unset: (key: string) => void;
61
+ has: (key: string) => boolean;
62
+
63
+ set_add: (key: string, value: unknown) => void;
64
+ set_delete: (key: string, value: unknown) => void;
65
+ set_has: (key: string, value: unknown) => boolean;
66
+ set_clear: (key: string) => void;
67
+
68
+ array_push: (key: string, value: unknown) => void;
69
+ array_clear: (key: string) => void;
70
+ }
71
+
72
+ export interface NamedMigration {
73
+ name: string;
74
+ service: string;
75
+ dbName: string;
76
+ }
77
+
78
+ export interface MigrateOptions {
79
+ direction: "up" | "down";
80
+ service?: string;
81
+ dbName?: string;
82
+ name?: string;
83
+ }
84
+
85
+ export interface LogConfig {
86
+ level?: LogLevel;
87
+ replaceConsoleTransport?: boolean;
88
+ replaceFileTransport?: boolean;
89
+ write: (args: LoggerTransportWriteArgs) => Promise<void> | void;
90
+ }
91
+
92
+ export interface ServerInterface {
93
+ // null values are if the feature has been disabled
94
+ db: {
95
+ get(name: string): Database | null;
96
+ getMigrations(): NamedMigration[];
97
+ migrate(options: MigrateOptions): Promise<void>;
98
+ },
99
+ ws: {
100
+ get(path: string): WebSocketServer | undefined;
101
+ disconnectAll(path: string): void;
102
+ };
103
+ cache: CacheInterface;
104
+ localCache: CacheInterface;
105
+ logger?: Logger;
106
+ isPrimaryWorker: () => boolean;
107
+ openBrowser: (path: string) => void;
108
+ getLogger: (identifier: string, options?: { level?: any; transports?: any[]; formatter?: any; }) => Logger;
109
+ }
110
+
111
+ export interface ServerRequest extends Request {
112
+ server?: ServerInterface;
113
+ }
114
+
115
+ export interface ServerResponse extends Response {
116
+ }
117
+
118
+ export interface TestHelperGlobal {
119
+ PORT: string;
120
+ request: typeof request,
121
+ logger: Logger,
122
+ sleep: (ms: number) => Promise<void>,
123
+ jsx: {
124
+ createRuntime: (args?: {
125
+ basePath?: string | null;
126
+ url?: RuntimeURL;
127
+ logger?: {
128
+ log: Function,
129
+ error: Function
130
+ }
131
+ }) => Runtime;
132
+ test: (cb: (container: RuntimeContainer, root: RuntimeHTMLElement, runtime: Runtime) => (Promise<void> | void), args?: {
133
+ runtimeOptions?: {
134
+ basePath?: string | null;
135
+ url?: RuntimeURL;
136
+ logger?: {
137
+ log: Function;
138
+ error: Function;
139
+ };
140
+ },
141
+ containerOptions?: {
142
+ runtimeOptions?: RuntimeOptions;
143
+ shadowInit?: boolean | RuntimeShadowRootInit;
144
+ };
145
+ }) => () => Promise<void>;
146
+ }
147
+ }
148
+
149
+ declare global {
150
+ // only available server side
151
+ var server: ServerGlobal;
152
+
153
+ //var utils: UtilsGlobal;
154
+
155
+ var test: TestHelperGlobal;
156
+
157
+ var it: Function;
158
+ var describe: Function;
159
+ var before: Function;
160
+ var after: Function;
161
+ }
162
+
163
+ export interface AuthConfig extends SessionHandlerOptions {
164
+
165
+ }
166
+
167
+ export interface WSConfig extends WebSocketServerOptions {
168
+ path: string;
169
+ disabled?: boolean;
170
+ }
171
+
172
+ export interface CORSConfig extends CORSOptions {
173
+
174
+ }
175
+
176
+ export interface ServerConfig {
177
+ preload?: (server: ServerInterface) => Promise<void> | void;
178
+ start?: (server: ServerInterface) => Promise<void> | void;
179
+ load?: (server: ServerInterface) => Promise<void> | void;
180
+ unload?: (server: ServerInterface) => void;
181
+ stop?: (server: ServerInterface) => void;
182
+ }
183
+
184
+ export interface DBConfig {
185
+ dialect?: string;
186
+ storage?: string;
187
+ url?: string;
188
+ disabled?: boolean;
189
+ name: string;
190
+ }
191
+
192
+ export interface APIOptions extends Partial<RouteOptions> {
193
+ basePath?: string;
194
+ path?: string | string[];
195
+ method?: string | string[];
196
+ parser?: ParserInterface;
197
+ middleware?: Handler | Handler[];
198
+ session?: SessionHandlerOptions | Handler;
199
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,35 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "es2022",
4
+ "noEmit": false,
5
+ "sourceMap": true,
6
+ "declaration": true,
7
+ "outDir": "./build/esm",
8
+ "strict": false,
9
+ "module": "NodeNext",
10
+ "lib": ["es2021", "dom"],
11
+ "jsx": "react",
12
+ "jsxFactory": "JSX.createElement",
13
+ "jsxFragmentFactory": "JSX.Fragment",
14
+ "moduleResolution": "nodenext"
15
+ /*"typeRoots": [
16
+ "./.types",
17
+ ".types",
18
+ "./node_modules/",
19
+ "./node_modules/@types"
20
+ ]*/
21
+ },
22
+ "include": [
23
+ "src/**/*",
24
+ "editor/**/*"
25
+ ],
26
+ "exclude": [
27
+ "node_modules",
28
+ "sea",
29
+ "test",
30
+ ".types",
31
+ "node_modules/@miqro/jsx/build/esm/jsx.d.ts",
32
+ ".types/@miqro/jsx/esm/jsx.d.ts",
33
+ "src/types/"
34
+ ]
35
+ }
package/build/cli.js DELETED
@@ -1,4 +0,0 @@
1
- #!/usr/bin/env node
2
- import { CMD_MAP, usage } from "./cmd-map.js";
3
- import { mainCMD } from "./utils/exec.js";
4
- mainCMD(CMD_MAP, usage, console);