miqro 6.0.13 → 6.1.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 (323) hide show
  1. package/README.md +12 -0
  2. package/build/editor.bundle.js +41 -50413
  3. package/build/esm/src/cluster.js +0 -1
  4. package/build/esm/src/common/arguments.d.ts +12 -0
  5. package/build/esm/src/common/arguments.js +111 -10
  6. package/build/esm/src/common/assets.js +2 -3
  7. package/build/esm/src/common/checksum.js +0 -1
  8. package/build/esm/src/common/constants.d.ts +1 -0
  9. package/build/esm/src/common/constants.js +2 -3
  10. package/build/esm/src/common/content-type.js +0 -1
  11. package/build/esm/src/common/esbuild.js +0 -1
  12. package/build/esm/src/common/exit.js +0 -1
  13. package/build/esm/src/common/fs.js +0 -1
  14. package/build/esm/src/common/help.d.ts +1 -1
  15. package/build/esm/src/common/help.js +4 -1
  16. package/build/esm/src/common/jsx.d.ts +8 -1
  17. package/build/esm/src/common/jsx.js +84 -2
  18. package/build/esm/src/common/paths.d.ts +4 -0
  19. package/build/esm/src/common/paths.js +41 -2
  20. package/build/esm/src/common/watch.js +0 -1
  21. package/build/esm/src/inflate/inflate-sea.js +27 -16
  22. package/build/esm/src/inflate/inflate.js +2 -1
  23. package/build/esm/src/inflate/md.d.ts +1 -0
  24. package/build/esm/src/inflate/md.js +9 -6
  25. package/build/esm/src/inflate/setup-auth.js +0 -1
  26. package/build/esm/src/inflate/setup-cors.js +0 -1
  27. package/build/esm/src/inflate/setup-db.js +0 -1
  28. package/build/esm/src/inflate/setup-error.d.ts +3 -0
  29. package/build/esm/src/inflate/setup-error.js +40 -0
  30. package/build/esm/src/inflate/setup-http.js +13 -4
  31. package/build/esm/src/inflate/setup-log.js +0 -1
  32. package/build/esm/src/inflate/setup-middleware.d.ts +4 -0
  33. package/build/esm/src/inflate/setup-middleware.js +42 -0
  34. package/build/esm/src/inflate/setup-server-config.js +0 -1
  35. package/build/esm/src/inflate/setup-test.js +0 -1
  36. package/build/esm/src/inflate/setup-ws.js +0 -1
  37. package/build/esm/src/inflate/setup.doc.d.ts +4 -0
  38. package/build/esm/src/inflate/setup.doc.js +62 -0
  39. package/build/esm/src/inflate/utils/sea-utils.js +0 -1
  40. package/build/esm/src/lib.js +0 -1
  41. package/build/esm/src/main.js +3 -4
  42. package/build/esm/src/services/app.d.ts +1 -0
  43. package/build/esm/src/services/app.js +21 -5
  44. package/build/esm/src/services/editor.js +0 -1
  45. package/build/esm/src/services/globals.js +0 -1
  46. package/build/esm/src/services/hot-reload.js +2 -2
  47. package/build/esm/src/services/migrations.js +0 -1
  48. package/build/esm/src/services/utils/admin-interface.js +0 -1
  49. package/build/esm/src/services/utils/cache.js +0 -1
  50. package/build/esm/src/services/utils/cluster-cache.js +0 -1
  51. package/build/esm/src/services/utils/cluster-ws.js +0 -1
  52. package/build/esm/src/services/utils/db-manager.js +0 -1
  53. package/build/esm/src/services/utils/get-route.js +0 -1
  54. package/build/esm/src/services/utils/log-transport.js +0 -1
  55. package/build/esm/src/services/utils/log.js +2 -2
  56. package/build/esm/src/services/utils/server-interface.js +0 -1
  57. package/build/esm/src/services/utils/websocketmanager.js +0 -1
  58. package/build/esm/src/types.d.ts +16 -1
  59. package/build/esm/src/types.js +0 -1
  60. package/build/lib.cjs +895 -326
  61. package/package.json +4 -2
  62. package/sea/types.json +1 -1
  63. package/tsconfig.json +1 -1
  64. package/bin/miqro +0 -34
  65. package/build/esm/editor/auth.d.ts +0 -6
  66. package/build/esm/editor/auth.js +0 -42
  67. package/build/esm/editor/auth.js.map +0 -1
  68. package/build/esm/editor/common/admin-interface.d.ts +0 -36
  69. package/build/esm/editor/common/admin-interface.js +0 -45
  70. package/build/esm/editor/common/admin-interface.js.map +0 -1
  71. package/build/esm/editor/common/constants.d.ts +0 -4
  72. package/build/esm/editor/common/constants.js +0 -21
  73. package/build/esm/editor/common/constants.js.map +0 -1
  74. package/build/esm/editor/common/constants.server.d.ts +0 -2
  75. package/build/esm/editor/common/constants.server.js +0 -5
  76. package/build/esm/editor/common/constants.server.js.map +0 -1
  77. package/build/esm/editor/common/editor-index.d.ts +0 -2
  78. package/build/esm/editor/common/editor-index.js +0 -15
  79. package/build/esm/editor/common/editor-index.js.map +0 -1
  80. package/build/esm/editor/common/html-encode.d.ts +0 -1
  81. package/build/esm/editor/common/html-encode.js +0 -15
  82. package/build/esm/editor/common/html-encode.js.map +0 -1
  83. package/build/esm/editor/common/log-socket.d.ts +0 -15
  84. package/build/esm/editor/common/log-socket.js +0 -71
  85. package/build/esm/editor/common/log-socket.js.map +0 -1
  86. package/build/esm/editor/common/templates.d.ts +0 -11
  87. package/build/esm/editor/common/templates.js +0 -444
  88. package/build/esm/editor/common/templates.js.map +0 -1
  89. package/build/esm/editor/components/api-preview.d.ts +0 -11
  90. package/build/esm/editor/components/api-preview.js +0 -91
  91. package/build/esm/editor/components/api-preview.js.map +0 -1
  92. package/build/esm/editor/components/editor.d.ts +0 -16
  93. package/build/esm/editor/components/editor.js +0 -358
  94. package/build/esm/editor/components/editor.js.map +0 -1
  95. package/build/esm/editor/components/file-browser.d.ts +0 -37
  96. package/build/esm/editor/components/file-browser.js +0 -127
  97. package/build/esm/editor/components/file-browser.js.map +0 -1
  98. package/build/esm/editor/components/file-editor-toolbar.d.ts +0 -22
  99. package/build/esm/editor/components/file-editor-toolbar.js +0 -94
  100. package/build/esm/editor/components/file-editor-toolbar.js.map +0 -1
  101. package/build/esm/editor/components/file-editor.d.ts +0 -32
  102. package/build/esm/editor/components/file-editor.js +0 -60
  103. package/build/esm/editor/components/file-editor.js.map +0 -1
  104. package/build/esm/editor/components/filter-query.d.ts +0 -1
  105. package/build/esm/editor/components/filter-query.js +0 -23
  106. package/build/esm/editor/components/filter-query.js.map +0 -1
  107. package/build/esm/editor/components/highlight-text-area.d.ts +0 -11
  108. package/build/esm/editor/components/highlight-text-area.js +0 -139
  109. package/build/esm/editor/components/highlight-text-area.js.map +0 -1
  110. package/build/esm/editor/components/log-viewer.d.ts +0 -6
  111. package/build/esm/editor/components/log-viewer.js +0 -70
  112. package/build/esm/editor/components/log-viewer.js.map +0 -1
  113. package/build/esm/editor/components/new-file.d.ts +0 -10
  114. package/build/esm/editor/components/new-file.js +0 -118
  115. package/build/esm/editor/components/new-file.js.map +0 -1
  116. package/build/esm/editor/components/scroll-query.d.ts +0 -7
  117. package/build/esm/editor/components/scroll-query.js +0 -22
  118. package/build/esm/editor/components/scroll-query.js.map +0 -1
  119. package/build/esm/editor/components/start-page.d.ts +0 -13
  120. package/build/esm/editor/components/start-page.js +0 -31
  121. package/build/esm/editor/components/start-page.js.map +0 -1
  122. package/build/esm/editor/http/admin/editor/api/fs/delete.api.d.ts +0 -3
  123. package/build/esm/editor/http/admin/editor/api/fs/delete.api.js +0 -30
  124. package/build/esm/editor/http/admin/editor/api/fs/delete.api.js.map +0 -1
  125. package/build/esm/editor/http/admin/editor/api/fs/read.api.d.ts +0 -5
  126. package/build/esm/editor/http/admin/editor/api/fs/read.api.js +0 -50
  127. package/build/esm/editor/http/admin/editor/api/fs/read.api.js.map +0 -1
  128. package/build/esm/editor/http/admin/editor/api/fs/rename.api.d.ts +0 -4
  129. package/build/esm/editor/http/admin/editor/api/fs/rename.api.js +0 -40
  130. package/build/esm/editor/http/admin/editor/api/fs/rename.api.js.map +0 -1
  131. package/build/esm/editor/http/admin/editor/api/fs/scan.api.d.ts +0 -26
  132. package/build/esm/editor/http/admin/editor/api/fs/scan.api.js +0 -150
  133. package/build/esm/editor/http/admin/editor/api/fs/scan.api.js.map +0 -1
  134. package/build/esm/editor/http/admin/editor/api/fs/write.api.d.ts +0 -3
  135. package/build/esm/editor/http/admin/editor/api/fs/write.api.js +0 -39
  136. package/build/esm/editor/http/admin/editor/api/fs/write.api.js.map +0 -1
  137. package/build/esm/editor/http/admin/editor/api/server/reload.api.d.ts +0 -10
  138. package/build/esm/editor/http/admin/editor/api/server/reload.api.js +0 -47
  139. package/build/esm/editor/http/admin/editor/api/server/reload.api.js.map +0 -1
  140. package/build/esm/editor/http/admin/editor/api/server/restart.api.d.ts +0 -10
  141. package/build/esm/editor/http/admin/editor/api/server/restart.api.js +0 -46
  142. package/build/esm/editor/http/admin/editor/api/server/restart.api.js.map +0 -1
  143. package/build/esm/editor/http/admin/editor/editor.d.ts +0 -1
  144. package/build/esm/editor/http/admin/editor/editor.js +0 -8
  145. package/build/esm/editor/http/admin/editor/editor.js.map +0 -1
  146. package/build/esm/editor/http/admin/editor/index.api.d.ts +0 -3
  147. package/build/esm/editor/http/admin/editor/index.api.js +0 -22
  148. package/build/esm/editor/http/admin/editor/index.api.js.map +0 -1
  149. package/build/esm/editor/server.d.ts +0 -3
  150. package/build/esm/editor/server.js +0 -50
  151. package/build/esm/editor/server.js.map +0 -1
  152. package/build/esm/editor/ws.d.ts +0 -3
  153. package/build/esm/editor/ws.js +0 -12
  154. package/build/esm/editor/ws.js.map +0 -1
  155. package/build/esm/src/bin/compile.d.ts +0 -3
  156. package/build/esm/src/bin/compile.js +0 -31
  157. package/build/esm/src/bin/compile.js.map +0 -1
  158. package/build/esm/src/bin/doc-md.d.ts +0 -17
  159. package/build/esm/src/bin/doc-md.js +0 -187
  160. package/build/esm/src/bin/doc-md.js.map +0 -1
  161. package/build/esm/src/bin/generate-doc.d.ts +0 -4
  162. package/build/esm/src/bin/generate-doc.js +0 -49
  163. package/build/esm/src/bin/generate-doc.js.map +0 -1
  164. package/build/esm/src/bin/test.d.ts +0 -3
  165. package/build/esm/src/bin/test.js +0 -68
  166. package/build/esm/src/bin/test.js.map +0 -1
  167. package/build/esm/src/bin/types.d.ts +0 -3
  168. package/build/esm/src/bin/types.js +0 -21
  169. package/build/esm/src/bin/types.js.map +0 -1
  170. package/build/esm/src/cluster.js.map +0 -1
  171. package/build/esm/src/common/arguments.js.map +0 -1
  172. package/build/esm/src/common/assets.js.map +0 -1
  173. package/build/esm/src/common/checksum.js.map +0 -1
  174. package/build/esm/src/common/constants.js.map +0 -1
  175. package/build/esm/src/common/content-type.js.map +0 -1
  176. package/build/esm/src/common/esbuild.js.map +0 -1
  177. package/build/esm/src/common/exit.js.map +0 -1
  178. package/build/esm/src/common/fs.js.map +0 -1
  179. package/build/esm/src/common/help.js.map +0 -1
  180. package/build/esm/src/common/jsx.js.map +0 -1
  181. package/build/esm/src/common/paths.js.map +0 -1
  182. package/build/esm/src/common/watch.js.map +0 -1
  183. package/build/esm/src/inflate/inflate-sea.js.map +0 -1
  184. package/build/esm/src/inflate/inflate.js.map +0 -1
  185. package/build/esm/src/inflate/md.js.map +0 -1
  186. package/build/esm/src/inflate/setup-auth.js.map +0 -1
  187. package/build/esm/src/inflate/setup-cors.js.map +0 -1
  188. package/build/esm/src/inflate/setup-db.js.map +0 -1
  189. package/build/esm/src/inflate/setup-http.js.map +0 -1
  190. package/build/esm/src/inflate/setup-log.js.map +0 -1
  191. package/build/esm/src/inflate/setup-server-config.js.map +0 -1
  192. package/build/esm/src/inflate/setup-test.js.map +0 -1
  193. package/build/esm/src/inflate/setup-ws.js.map +0 -1
  194. package/build/esm/src/inflate/utils/sea-utils.js.map +0 -1
  195. package/build/esm/src/lib.js.map +0 -1
  196. package/build/esm/src/main.js.map +0 -1
  197. package/build/esm/src/services/app.js.map +0 -1
  198. package/build/esm/src/services/editor.js.map +0 -1
  199. package/build/esm/src/services/globals.js.map +0 -1
  200. package/build/esm/src/services/hot-reload.js.map +0 -1
  201. package/build/esm/src/services/migrations.js.map +0 -1
  202. package/build/esm/src/services/utils/admin-interface.js.map +0 -1
  203. package/build/esm/src/services/utils/cache.js.map +0 -1
  204. package/build/esm/src/services/utils/cluster-cache.js.map +0 -1
  205. package/build/esm/src/services/utils/cluster-ws.js.map +0 -1
  206. package/build/esm/src/services/utils/db-manager.js.map +0 -1
  207. package/build/esm/src/services/utils/get-route.js.map +0 -1
  208. package/build/esm/src/services/utils/log-transport.js.map +0 -1
  209. package/build/esm/src/services/utils/log.js.map +0 -1
  210. package/build/esm/src/services/utils/server-interface.js.map +0 -1
  211. package/build/esm/src/services/utils/websocketmanager.js.map +0 -1
  212. package/build/esm/src/types.js.map +0 -1
  213. package/editor/auth.ts +0 -51
  214. package/editor/common/admin-interface.ts +0 -84
  215. package/editor/common/constants.server.ts +0 -5
  216. package/editor/common/constants.ts +0 -21
  217. package/editor/common/editor-index.tsx +0 -17
  218. package/editor/common/html-encode.ts +0 -14
  219. package/editor/common/log-socket.tsx +0 -85
  220. package/editor/common/templates.ts +0 -448
  221. package/editor/components/api-preview.tsx +0 -116
  222. package/editor/components/editor.tsx +0 -486
  223. package/editor/components/file-browser.tsx +0 -308
  224. package/editor/components/file-editor-toolbar.tsx +0 -191
  225. package/editor/components/file-editor.tsx +0 -122
  226. package/editor/components/filter-query.tsx +0 -22
  227. package/editor/components/highlight-text-area.tsx +0 -159
  228. package/editor/components/log-viewer.tsx +0 -110
  229. package/editor/components/new-file.tsx +0 -169
  230. package/editor/components/scroll-query.tsx +0 -22
  231. package/editor/components/start-page.tsx +0 -49
  232. package/editor/http/admin/editor/api/fs/delete.api.tsx +0 -32
  233. package/editor/http/admin/editor/api/fs/read.api.tsx +0 -55
  234. package/editor/http/admin/editor/api/fs/rename.api.tsx +0 -41
  235. package/editor/http/admin/editor/api/fs/scan.api.tsx +0 -181
  236. package/editor/http/admin/editor/api/fs/write.api.tsx +0 -41
  237. package/editor/http/admin/editor/api/server/reload.api.ts +0 -53
  238. package/editor/http/admin/editor/api/server/restart.api.tsx +0 -52
  239. package/editor/http/admin/editor/editor.tsx +0 -8
  240. package/editor/http/admin/editor/index.api.tsx +0 -39
  241. package/editor/server.ts +0 -57
  242. package/editor/static/android-chrome-192x192.png +0 -0
  243. package/editor/static/android-chrome-512x512.png +0 -0
  244. package/editor/static/apple-touch-icon.png +0 -0
  245. package/editor/static/editor.bundle.in.mjs +0 -20
  246. package/editor/static/favicon-16x16.png +0 -0
  247. package/editor/static/favicon-32x32.png +0 -0
  248. package/editor/static/favicon.ico +0 -0
  249. package/editor/static/site.webmanifest +0 -19
  250. package/editor/ws.ts +0 -15
  251. package/sea/base64.js +0 -3
  252. package/sea/compile.sh +0 -127
  253. package/sea/copy-types.sh +0 -46
  254. package/sea/editor-assets/editor.bundle.in.mjs +0 -19
  255. package/sea/generate-global-types-asset-json.js +0 -34
  256. package/sea/release-tar.sh +0 -5
  257. package/sea/tsc.sh +0 -1
  258. package/sea/version.tag.js +0 -11
  259. package/src/bin/compile.ts +0 -35
  260. package/src/bin/doc-md.ts +0 -210
  261. package/src/bin/generate-doc.ts +0 -58
  262. package/src/bin/test.ts +0 -92
  263. package/src/bin/types.ts +0 -22
  264. package/src/cluster.ts +0 -27
  265. package/src/common/arguments.ts +0 -382
  266. package/src/common/assets.ts +0 -128
  267. package/src/common/checksum.ts +0 -58
  268. package/src/common/constants.ts +0 -18
  269. package/src/common/content-type.ts +0 -84
  270. package/src/common/esbuild.ts +0 -94
  271. package/src/common/exit.ts +0 -91
  272. package/src/common/fs.ts +0 -17
  273. package/src/common/help.ts +0 -47
  274. package/src/common/jsx.ts +0 -426
  275. package/src/common/paths.ts +0 -117
  276. package/src/common/watch.ts +0 -85
  277. package/src/inflate/inflate-sea.ts +0 -194
  278. package/src/inflate/inflate.ts +0 -96
  279. package/src/inflate/md.ts +0 -20
  280. package/src/inflate/setup-auth.ts +0 -40
  281. package/src/inflate/setup-cors.ts +0 -40
  282. package/src/inflate/setup-db.ts +0 -113
  283. package/src/inflate/setup-http.ts +0 -643
  284. package/src/inflate/setup-log.ts +0 -44
  285. package/src/inflate/setup-server-config.ts +0 -47
  286. package/src/inflate/setup-test.ts +0 -23
  287. package/src/inflate/setup-ws.ts +0 -48
  288. package/src/inflate/utils/sea-utils.ts +0 -14
  289. package/src/lib.ts +0 -19
  290. package/src/main.ts +0 -87
  291. package/src/services/app.ts +0 -640
  292. package/src/services/editor.tsx +0 -101
  293. package/src/services/globals.ts +0 -143
  294. package/src/services/hot-reload.ts +0 -46
  295. package/src/services/migrations.ts +0 -66
  296. package/src/services/utils/admin-interface.ts +0 -37
  297. package/src/services/utils/cache.ts +0 -88
  298. package/src/services/utils/cluster-cache.ts +0 -230
  299. package/src/services/utils/cluster-ws.ts +0 -197
  300. package/src/services/utils/db-manager.ts +0 -92
  301. package/src/services/utils/get-route.ts +0 -70
  302. package/src/services/utils/log-transport.ts +0 -75
  303. package/src/services/utils/log.ts +0 -91
  304. package/src/services/utils/server-interface.ts +0 -172
  305. package/src/services/utils/websocketmanager.ts +0 -149
  306. package/src/types/@esbuild.d.ts +0 -1
  307. package/src/types/@miqro/core.d.ts +0 -2
  308. package/src/types/@miqro/jsx.d.ts +0 -2
  309. package/src/types/@miqro/parser.d.ts +0 -2
  310. package/src/types/@miqro/query.d.ts +0 -2
  311. package/src/types/@miqro/request.d.ts +0 -2
  312. package/src/types/@miqro/test.d.ts +0 -2
  313. package/src/types/@miqro.d.ts +0 -1
  314. package/src/types/@types.d.ts +0 -1
  315. package/src/types/browser.globals.d.ts +0 -9
  316. package/src/types/globals.d.ts +0 -2
  317. package/src/types/jsx.globals.d.ts +0 -37
  318. package/src/types/miqro.d.ts +0 -111
  319. package/src/types/postject.d.ts +0 -1
  320. package/src/types/server.globals.d.ts +0 -72
  321. package/src/types.ts +0 -204
  322. /package/{editor/http/admin/editor → build}/font.ttf +0 -0
  323. /package/{editor/http/admin/editor → build}/style.css +0 -0
@@ -1,91 +0,0 @@
1
- import { ConsoleTransport, getEnvVariable, Logger, LoggerTransport, MinimalLogger, newURL, normalizePath, Request, WriteArgs } from "@miqro/core";
2
- import { format } from "node:util";
3
-
4
- const DEFAULT_ENV_NAME = "LOG_LEVEL";
5
-
6
- export interface LogProviderOptions {
7
- name?: string;
8
- transports: LoggerTransport[];
9
- formatter: (args: WriteArgs) => string;
10
- }
11
-
12
- export const DEFAULT_FORMATTER = ({ identifier, level, message, optionalParams }: WriteArgs) => format(`${new Date().toISOString()} PID[${process.pid}] ` +
13
- `${identifier ? `[${identifier}] ` : ""}` +
14
- `${level !== "info" ? (level === "error" || level === "warn" ? `[${level.toUpperCase()}] ` : `[${level}] `) : ""}` +
15
- `${message}`, ...optionalParams)
16
-
17
- export class LogProvider {
18
-
19
- public options: LogProviderOptions;
20
- public constructor(options?: LogProviderOptions) {
21
- this.options = {
22
- formatter: options && options.formatter ? options.formatter : DEFAULT_FORMATTER,
23
- transports: options && options.transports ? options.transports : [ConsoleTransport()]
24
- };
25
- this.requestLoggerFactory = this.requestLoggerFactory.bind(this);
26
- }
27
-
28
- public requestLoggerFactory(uuid: string, req: Request): MinimalLogger {
29
- let path = "";
30
- let query = "";
31
- let urlParsingError;
32
- let method = "GET";
33
- let remoteAddress: string | undefined = "";
34
- try {
35
- const url = newURL(req.url ? req.url : "/") as URL;
36
- query = url.searchParams.toString();
37
- path = normalizePath(url.pathname); // normalized path
38
- method = req.method ? req.method.toUpperCase() as string : "GET";
39
- remoteAddress = req.socket.remoteAddress;
40
- } catch (e) {
41
- urlParsingError = e;
42
- }
43
- const pathToEnv = path.replace(/\//ig, "_").replace(/\./ig, "_").replace(/-/ig, "_").toUpperCase();
44
- const WORKER_IDENTIFIER = process.env["CLUSTER_NODE_NUMBER"] ? `WORKER_${process.env["CLUSTER_NODE_NUMBER"]}_` : "";
45
- const identifier = `${pathToEnv === "_" ? "" : `${pathToEnv.substring(1)}`}${pathToEnv.charAt(pathToEnv.length - 1) !== "_" ? "_" : ""}${method.toUpperCase()}`;
46
- const upgrade = req.headers.connection?.indexOf("Upgrade") !== -1;
47
-
48
- const logger = this.getLogger(
49
- `${WORKER_IDENTIFIER}${identifier}`, {
50
- formatter: (args: WriteArgs) => {
51
- args.message = `%s${upgrade ? " UPGRADE" : ""} %s%s [%s] (%s) ${args.message}`;
52
- args.optionalParams = [method, path, query ? `?${query}` : "", uuid, remoteAddress].concat(args.optionalParams);
53
- args.meta.push(req);
54
- args.meta.push(uuid);
55
- return this.options.formatter(args);
56
- }
57
- });
58
-
59
-
60
- if (urlParsingError) {
61
- logger.error(urlParsingError);
62
- }
63
-
64
- return logger;
65
- };
66
-
67
- public getLogger(identifier: string, options?: { level?: any; transports?: any[]; formatter?: any; }): Logger {
68
-
69
- identifier = this.options.name ?
70
- `${this.options.name}${identifier ?
71
- `_${identifier}` : ""}`.toUpperCase() :
72
- identifier ? identifier.toUpperCase() : "";
73
-
74
- const envVarName = `LOG_LEVEL_${identifier}`;
75
- const level = options && options.level ? options.level : getEnvVariable(envVarName) ? getEnvVariable(envVarName) : getEnvVariable(DEFAULT_ENV_NAME, "info");
76
-
77
- const logger = new Logger(identifier, level, {
78
- transports: [],
79
- formatter: options && options.formatter ? options.formatter : this.options.formatter
80
- });
81
- for (const t of this.options.transports) {
82
- logger.addTransport(t);
83
- }
84
- if (options && options.transports) {
85
- for (const t of options.transports) {
86
- logger.addTransport(t);
87
- }
88
- }
89
- return logger;
90
- }
91
- }
@@ -1,172 +0,0 @@
1
- import { WebSocketServer, Logger } from "@miqro/core";
2
- import { Database } from "@miqro/query";
3
- import cluster from "node:cluster";
4
- import { CacheInterface, MigrateOptions, NamedMigration, ServerInterface } from "../../types.js";
5
- import { DBManager } from "./db-manager.js";
6
- import { Miqro } from "../app.js";
7
- import { WebSocketManager } from "./websocketmanager.js";
8
- import { execSync } from "node:child_process";
9
- import { LogProvider } from "./log.js";
10
-
11
- /*
12
- {
13
- cache: this.cache,
14
- localCache: this.localCache,
15
- db: {
16
- get: (name: string) => {
17
- return this.dbManager.getDB(name);
18
- },
19
- getMigrations: () => {
20
- if (this.inflated) {
21
- const ret: NamedMigration[] = [];
22
- for (const d of this.inflated.dbList) {
23
- ret.push(...(d.migrations.map(m => {
24
- return {
25
- name: m.name,
26
- service: m.service,
27
- dbName: m.dbName
28
- }
29
- })));
30
- }
31
- return ret;
32
- }
33
- return [];
34
- },
35
- migrate: (options) => {
36
- return this.migrate(options);
37
- },
38
- },
39
- ws: {
40
- get: (path: string) => {
41
- if (path === LOG_SOCKET_PATH) {
42
- throw new Error("cannot use this path");
43
- }
44
- return this.webSocketManager.getWS(path);
45
- },
46
- disconnectAll: (path: string) => {
47
- if (path === LOG_SOCKET_PATH) {
48
- throw new Error("cannot use this path");
49
- }
50
- this.webSocketManager.disconnectAllFrom(path);
51
- }
52
- },
53
- isPrimaryWorker: () => {
54
- return cluster.isPrimary || process.env["CLUSTER_NODE_NUMBER"] === "0";
55
- },
56
- openBrowser: (path: string) => {
57
- const PORT = this.options.port;
58
- const URL = `http://localhost:${PORT}${path}`;
59
- const DEFAULT_OPEN = process.platform === "win32" ? "explorer" : process.platform === "darwin" ? "open" : "xdg-open";
60
- const OPEN = process.env["BROWSER"] ? process.env["BROWSER"] === "none" ? false : process.env["BROWSER"] : DEFAULT_OPEN;
61
- if (OPEN) {
62
- const openCMD = `${OPEN} "${URL}"`;
63
- this.logger?.info("opening browser with [%s]", openCMD);
64
- execSync(openCMD);
65
- } else {
66
- this.logger?.warn("ignoring browser [%s]", process.env["BROWSER"]);
67
- }
68
- },
69
- logger: this.logger,
70
- getLogger: (identifier: string, options?: { level?: any; transports?: any[]; formatter?: any; }) => {
71
- return this.loggerProvider.getLogger(identifier, options);
72
- }
73
- }*/
74
-
75
- export interface ServerInterfaceImplOptions {
76
- cache: CacheInterface;
77
- localCache: CacheInterface;
78
- dbManager: DBManager;
79
- wsManager: WebSocketManager;
80
- logger?: Logger;
81
- app?: Miqro;
82
- port?: string;
83
- loggerProvider?: LogProvider;
84
- }
85
-
86
- export class ServerInterfaceImpl implements ServerInterface {
87
- public cache: CacheInterface;
88
- public localCache: CacheInterface;
89
- public logger?: Logger;
90
- public port?: string;
91
-
92
- public db: {
93
- get(name: string): Database | null;
94
- getMigrations(): NamedMigration[];
95
- migrate(options: MigrateOptions): Promise<void>;
96
- };
97
- public ws: {
98
- get(path: string): WebSocketServer | undefined;
99
- disconnectAll(path: string): void;
100
- };
101
- public loggerProvider?: LogProvider;
102
-
103
- constructor(options: ServerInterfaceImplOptions) {
104
- this.cache = options.cache;
105
- this.localCache = options.localCache;
106
- this.logger = options.logger ? options.logger : options.loggerProvider ? options.loggerProvider.getLogger("server") : undefined;
107
- this.port = options.port;
108
-
109
- const dbManager = options.dbManager;
110
- const wsManager = options.wsManager;
111
- this.loggerProvider = options.loggerProvider;
112
- const app = options.app;
113
-
114
- this.db = Object.freeze({
115
- get: (name: string) => {
116
- return dbManager.getDB(name);
117
- },
118
- getMigrations: () => {
119
- if (app?.inflated) {
120
- const ret: NamedMigration[] = [];
121
- for (const d of app?.inflated.dbList) {
122
- ret.push(...(d.migrations.map(m => {
123
- return {
124
- name: m.name,
125
- service: m.service,
126
- dbName: m.dbName
127
- }
128
- })));
129
- }
130
- return ret;
131
- }
132
- return [];
133
- },
134
- migrate: (options: MigrateOptions) => {
135
- return app?.migrate(options);
136
- }
137
- });
138
- this.ws = Object.freeze({
139
- get: (name: string) => {
140
- return wsManager?.getWS(name);
141
- },
142
- disconnectAll: (path: string) => {
143
- return wsManager?.disconnectAllButLOGSocket();
144
- }
145
- });
146
- }
147
- public getWorkerNumber(): number {
148
- return cluster.isPrimary || process.env["CLUSTER_NODE_NUMBER"] === undefined ? 0 : parseInt(process.env["CLUSTER_NODE_NUMBER"], 10);
149
- }
150
- public getWorkerCount(): number {
151
- return cluster.isPrimary || process.env["CLUSTER_NODE_NUMBER"] === undefined || process.env["CLUSTER_COUNT"] === undefined ? 1 : parseInt(process.env["CLUSTER_COUNT"], 10);
152
- }
153
- public isPrimaryWorker(): boolean {
154
- return cluster.isPrimary || process.env["CLUSTER_NODE_NUMBER"] === "0";
155
- }
156
- public openBrowser(path: string): void {
157
- const PORT = this.port;
158
- const URL = `http://localhost${PORT ? `:${PORT}` : ""}${path}`;
159
- const DEFAULT_OPEN = process.platform === "win32" ? "explorer" : process.platform === "darwin" ? "open" : "xdg-open";
160
- const OPEN = process.env["BROWSER"] ? process.env["BROWSER"] === "none" ? false : process.env["BROWSER"] : DEFAULT_OPEN;
161
- if (OPEN) {
162
- const openCMD = `${OPEN} "${URL}"`;
163
- this.logger?.info("opening browser with [%s]", openCMD);
164
- execSync(openCMD);
165
- } else {
166
- this.logger?.warn("ignoring browser [%s]", process.env["BROWSER"]);
167
- }
168
- }
169
- public getLogger(identifier: string, options?: { level?: any; transports?: any[]; formatter?: any; }): Logger {
170
- return this.loggerProvider?.getLogger(identifier, options);
171
- }
172
- }
@@ -1,149 +0,0 @@
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
-
24
- public deleteWS(path: string) {
25
- const ws = this.runningGlobalWSMap.get(path);
26
- this.disconnectAllFrom(path);
27
- ws.dispose();
28
- this.runningGlobalWSMap.delete(path);
29
- }
30
-
31
- public deleteAllWS() {
32
- for (const path of this.runningGlobalWSMap.keys()) {
33
- this.deleteWS(path);
34
- }
35
- }
36
-
37
- public getWS(path: string): ClusterWebSocketServer2 | undefined {
38
- return this.runningGlobalWSMap.get(path);
39
- }
40
-
41
- public replaceALLWS(list: WSConfig[]) {
42
- this.deleteAllWS();
43
- for (const wsConfig of list) {
44
- if (!wsConfig.disabled) {
45
- if (this.runningGlobalWSMap.has(wsConfig.path)) {
46
- throw new Error(`ws on path ${wsConfig.path} already setup!`);
47
- }
48
- this.logger?.debug("setting up websocket on [%s]", wsConfig.path);
49
- const server = new ClusterWebSocketServer2(wsConfig.path, wsConfig);
50
- this.runningGlobalWSMap.set(wsConfig.path, server);
51
- }
52
- }
53
- }
54
-
55
- public replaceALLWSBuLOGSocket(list: WSConfig[]) {
56
- for (const path of this.runningGlobalWSMap.keys()) {
57
- if (path !== LOG_SOCKET_PATH || !this.avoidLogSocket) {
58
- this.deleteWS(path);
59
- }
60
- }
61
- for (const wsConfig of list) {
62
- if (!wsConfig.disabled) {
63
- if (wsConfig.path !== LOG_SOCKET_PATH || !this.avoidLogSocket) {
64
- if (this.runningGlobalWSMap.has(wsConfig.path)) {
65
- throw new Error(`ws on path ${wsConfig.path} already setup!`);
66
- }
67
- this.logger?.debug("setting up websocket on [%s]", wsConfig.path);
68
- const server = new ClusterWebSocketServer2(this.name + wsConfig.path, wsConfig);
69
- this.runningGlobalWSMap.set(wsConfig.path, server);
70
- }
71
- }
72
- }
73
- }
74
-
75
- /*public setupWS(path: string, server: ClusterWebSocketServer2) {
76
- if (this.runningGlobalWSMap.has(path)) {
77
- throw new Error(`ws on path ${path} already setup!`);
78
- }
79
- this.runningGlobalWSMap.set(path, server);
80
- }*/
81
-
82
- public disconnectAllFrom(path: string) {
83
- try {
84
- this.logger?.debug("disconnect all from [%s]", path);
85
- const ws = this.getWS(path);
86
- if (ws) {
87
- const clients = ws.clients.values();
88
- if (clients) {
89
- for (const client of clients) {
90
- try {
91
- client.socket.destroy();
92
- } catch (e2) {
93
- this.logger?.error("error disconnecting web socket client");
94
- this.logger?.error(e2);
95
- }
96
- }
97
- }
98
- //ws.dispose();
99
- }
100
- } catch (e) {
101
- this.logger?.error("error disconnecting web socket clients");
102
- this.logger?.error(e.message);
103
- }
104
- }
105
-
106
- public disconnectAllButLOGSocket() {
107
- try {
108
- for (const wsPath of this.runningGlobalWSMap.keys()) {
109
- if (wsPath !== LOG_SOCKET_PATH || !this.avoidLogSocket) {
110
- this.disconnectAllFrom(wsPath);
111
- }
112
- }
113
- } catch (e) {
114
- this.logger?.error("error disconnecting web socket clients");
115
- this.logger?.error(e.message);
116
- }
117
- }
118
-
119
- public disconnectAll() {
120
- try {
121
- for (const wsPath of this.runningGlobalWSMap.keys()) {
122
- this.disconnectAllFrom(wsPath);
123
- }
124
- } catch (e) {
125
- this.logger?.error("error disconnecting web socket clients");
126
- this.logger?.error(e.message);
127
- }
128
- }
129
-
130
- public onUpgrade(req, socket, head) {
131
- try {
132
- const wsServer = this.getWS(req.path);
133
- if (wsServer) {
134
- return wsServer.onUpgrade(req, socket, head);
135
- } else {
136
- socket.destroy();
137
- }
138
- } catch (e) {
139
- this.logger?.error(e);
140
- }
141
- }
142
- }
143
-
144
- /*export interface WSMapConfig {
145
- [path: string]: {
146
- name: string;
147
- options: WSConfig;
148
- } | undefined;
149
- }*/
@@ -1 +0,0 @@
1
- import "../globals.js";
@@ -1,2 +0,0 @@
1
- import "../globals.js";
2
- export * from "@miqro/core/lib.js";
@@ -1,2 +0,0 @@
1
- import "../globals.js";
2
- export * from "@miqro/jsx/esm/lib.js";
@@ -1,2 +0,0 @@
1
- import "../globals.js";
2
- export * from "@miqro/parser/lib.js";
@@ -1,2 +0,0 @@
1
- import "../globals.js";
2
- export * from "@miqro/query/lib.js";
@@ -1,2 +0,0 @@
1
- import "../globals.js";
2
- export * from "@miqro/request/lib.js";
@@ -1,2 +0,0 @@
1
- import "../globals.js";
2
- export * from "@miqro/test/dist/index.js";
@@ -1 +0,0 @@
1
- import "../globals.js";
@@ -1 +0,0 @@
1
- import "../globals.js";
@@ -1,9 +0,0 @@
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
- }
@@ -1,2 +0,0 @@
1
- import "./browser.globals.js";
2
- import "./server.globals.js";
@@ -1,37 +0,0 @@
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
- }
@@ -1,111 +0,0 @@
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
- getWorkerNumber: () => number;
98
- getWorkerCount: () => number;
99
- openBrowser: (path: string) => void;
100
- getLogger: (identifier: string, options?: { level?: any; transports?: any[]; formatter?: any; }) => Logger;
101
- }
102
-
103
- export interface ServerRequest extends Request {
104
- server?: ServerInterface;
105
- }
106
-
107
- export interface ServerResponse extends Response {
108
- }
109
-
110
- export { App, LoggerHandler, Router, APIRoute } from "@miqro/core/lib.js";
111
- export { migration, Migration } from "@miqro/query/lib.js";
@@ -1 +0,0 @@
1
- import "../globals.js";
@@ -1,72 +0,0 @@
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
- }