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,2 +1,3 @@
1
1
  import { Logger } from "@miqro/core";
2
2
  export declare function inflateMD2HTML(inFile: string, logger?: Logger): string;
3
+ export declare function inflateMDString2HTML(text: string, logger?: Logger): string;
@@ -2,12 +2,8 @@ import * as showdown from "showdown";
2
2
  import { readFileSync } from "node:fs";
3
3
  export function inflateMD2HTML(inFile, logger) {
4
4
  try {
5
- const converter = new showdown.default.Converter();
6
- converter.setFlavor('github');
7
- /*converter.setOption("tables", true);
8
- converter.setOption("rawHeaderId", true);*/
9
5
  const text = readFileSync(inFile).toString();
10
- const html = converter.makeHtml(text);
6
+ const html = inflateMDString2HTML(text);
11
7
  return html;
12
8
  }
13
9
  catch (e) {
@@ -16,4 +12,11 @@ export function inflateMD2HTML(inFile, logger) {
16
12
  throw e;
17
13
  }
18
14
  }
19
- //# sourceMappingURL=md.js.map
15
+ export function inflateMDString2HTML(text, logger) {
16
+ const converter = new showdown.default.Converter();
17
+ converter.setFlavor('github');
18
+ /*converter.setOption("tables", true);
19
+ converter.setOption("rawHeaderId", true);*/
20
+ const html = converter.makeHtml(text);
21
+ return html;
22
+ }
@@ -35,4 +35,3 @@ export async function setupAUTH(logger, servicePath, service, mainRouter, inflat
35
35
  }
36
36
  }
37
37
  }
38
- //# sourceMappingURL=setup-auth.js.map
@@ -35,4 +35,3 @@ export async function setupCORS(logger, servicePath, service, mainRouter, inflat
35
35
  }
36
36
  }
37
37
  }
38
- //# sourceMappingURL=setup-cors.js.map
@@ -96,4 +96,3 @@ export async function inflateDBMigrations(logger, service, dbName, inflateDir, e
96
96
  }
97
97
  return false;
98
98
  }
99
- //# sourceMappingURL=setup-db.js.map
@@ -0,0 +1,3 @@
1
+ import { Logger, Router } from "@miqro/core";
2
+ import { InflateError } from "../common/jsx.js";
3
+ export declare function setupError(logger: Logger, servicePath: string, service: string, mainRouter: Router, inflateDir: string | undefined | false, inflateSea: boolean, errors: InflateError[]): Promise<void>;
@@ -0,0 +1,40 @@
1
+ import { importErrorConfigModule, inflateJSX } from "../common/jsx.js";
2
+ import { getErrorConfigPath } from "../common/paths.js";
3
+ import { basename, dirname, join, relative, resolve } from "node:path";
4
+ import { mkdirSync, writeFileSync } from "node:fs";
5
+ import { cwd } from "node:process";
6
+ export async function setupError(logger, servicePath, service, mainRouter, inflateDir, inflateSea, errors) {
7
+ const errorPath = getErrorConfigPath(servicePath); //resolve(process.cwd(), service, "auth.ts");
8
+ if (errorPath) {
9
+ try {
10
+ const errorModule = await importErrorConfigModule(errorPath, logger);
11
+ logger.debug("setting up error handling from [%s]", join(service, basename(errorPath)));
12
+ if (errorModule && errorModule.catch) {
13
+ for (const m of errorModule.catch) {
14
+ mainRouter.catch(m);
15
+ }
16
+ }
17
+ if (inflateDir && inflateSea) {
18
+ const inflatePath = resolve(inflateDir, service, "catch.js");
19
+ mkdirSync(dirname(inflatePath), {
20
+ recursive: true
21
+ });
22
+ logger.log("writing [%s]", relative(cwd(), inflatePath));
23
+ writeFileSync(inflatePath, await inflateJSX(errorPath, {
24
+ embemedJSX: false,
25
+ minify: false,
26
+ useExport: true,
27
+ logger
28
+ }));
29
+ }
30
+ }
31
+ catch (e) {
32
+ errors.push({
33
+ filePath: errorPath,
34
+ error: e
35
+ });
36
+ logger.error("error with " + errorPath);
37
+ logger.error(e);
38
+ }
39
+ }
40
+ }
@@ -13,12 +13,17 @@ import { setupAUTH } from "./setup-auth.js";
13
13
  import { getRoutes } from "../services/utils/get-route.js";
14
14
  import { describeFilePath } from "../common/fs.js";
15
15
  import { inflateMD2HTML } from "./md.js";
16
+ import { setupMiddleware } from "./setup-middleware.js";
17
+ import { setupError } from "./setup-error.js";
16
18
  export async function setupHTTPRouter(server, logger, hotreload, servicePath, service, routeFileMap, staticFileMap, inflateDir, inflateSea, errors) {
17
19
  const mainRouter = new Router();
18
20
  const apiRouterPath = getHTTPRouterPath(servicePath); //resolve(process.cwd(), service, "http");
21
+ let middlewareConfig = null;
22
+ await setupError(logger, servicePath, service, mainRouter, inflateDir, inflateSea, errors);
23
+ await setupCORS(logger, servicePath, service, mainRouter, inflateDir, inflateSea, errors);
24
+ await setupAUTH(logger, servicePath, service, mainRouter, inflateDir, inflateSea, errors);
25
+ middlewareConfig = await setupMiddleware(logger, servicePath, service, mainRouter, inflateDir, inflateSea, errors);
19
26
  if (apiRouterPath) {
20
- await setupCORS(logger, servicePath, service, mainRouter, inflateDir, inflateSea, errors);
21
- await setupAUTH(logger, servicePath, service, mainRouter, inflateDir, inflateSea, errors);
22
27
  logger.trace("setting up http routes from [%s]", service);
23
28
  const { router: httpRouter } = await createRouterFromDirectory(server, hotreload, service, logger, apiRouterPath, errors, routeFileMap, staticFileMap, inflateDir, inflateSea);
24
29
  mainRouter.use(httpRouter);
@@ -29,6 +34,11 @@ export async function setupHTTPRouter(server, logger, hotreload, servicePath, se
29
34
  const staticRouter = createStaticRouterFromDirectory(service, logger, staticFilesPath, inflateDir, routeFileMap, staticFileMap);
30
35
  mainRouter.use(staticRouter);
31
36
  }
37
+ if (middlewareConfig && middlewareConfig.post) {
38
+ for (const m of middlewareConfig.post) {
39
+ mainRouter.use(m);
40
+ }
41
+ }
32
42
  return mainRouter;
33
43
  }
34
44
  function createStaticRoute(service, logger, router, dir, file, inflateDir, routeFileMap, staticFileMap) {
@@ -508,7 +518,7 @@ async function createRouterFromDirectory(server, hotreload, service, logger, dir
508
518
  };
509
519
  }
510
520
  export function scanFiles(path, ret = []) {
511
- const files = readdirSync(path);
521
+ const files = readdirSync(path).sort();
512
522
  for (const file of files) {
513
523
  const filePath = pathResolve(path, file);
514
524
  if (statSync(filePath).isDirectory()) {
@@ -540,4 +550,3 @@ async function getJSON(req, res, url, basePath, out) {
540
550
  const toRender = await (typeof out === "function" ? out(req, res) : out);
541
551
  return JSON.stringify(toRender, undefined, 2);
542
552
  }
543
- //# sourceMappingURL=setup-http.js.map
@@ -34,4 +34,3 @@ export async function setupLogConfig(logger, servicePath, service, logConfigMap,
34
34
  }
35
35
  }
36
36
  }
37
- //# sourceMappingURL=setup-log.js.map
@@ -0,0 +1,4 @@
1
+ import { Logger, Router } from "@miqro/core";
2
+ import { InflateError } from "../common/jsx.js";
3
+ import { MiddlewareConfig } from "../types.js";
4
+ export declare function setupMiddleware(logger: Logger, servicePath: string, service: string, mainRouter: Router, inflateDir: string | undefined | false, inflateSea: boolean, errors: InflateError[]): Promise<MiddlewareConfig | null>;
@@ -0,0 +1,42 @@
1
+ import { importMiddlewareConfigModule, inflateJSX } from "../common/jsx.js";
2
+ import { getMiddlewareConfigPath } from "../common/paths.js";
3
+ import { basename, dirname, join, relative, resolve } from "node:path";
4
+ import { mkdirSync, writeFileSync } from "node:fs";
5
+ import { cwd } from "node:process";
6
+ export async function setupMiddleware(logger, servicePath, service, mainRouter, inflateDir, inflateSea, errors) {
7
+ const middlewarePath = getMiddlewareConfigPath(servicePath); //resolve(process.cwd(), service, "auth.ts");
8
+ if (middlewarePath) {
9
+ try {
10
+ const middewareModule = await importMiddlewareConfigModule(middlewarePath, logger);
11
+ logger.debug("setting up middleware from [%s]", join(service, basename(middlewarePath)));
12
+ if (middewareModule && middewareModule.middleware) {
13
+ for (const m of middewareModule.middleware) {
14
+ mainRouter.use(m);
15
+ }
16
+ }
17
+ if (inflateDir && inflateSea) {
18
+ const inflatePath = resolve(inflateDir, service, "middleware.js");
19
+ mkdirSync(dirname(inflatePath), {
20
+ recursive: true
21
+ });
22
+ logger.log("writing [%s]", relative(cwd(), inflatePath));
23
+ writeFileSync(inflatePath, await inflateJSX(middlewarePath, {
24
+ embemedJSX: false,
25
+ minify: false,
26
+ useExport: true,
27
+ logger
28
+ }));
29
+ }
30
+ return middewareModule;
31
+ }
32
+ catch (e) {
33
+ errors.push({
34
+ filePath: middlewarePath,
35
+ error: e
36
+ });
37
+ logger.error("error with " + middlewarePath);
38
+ logger.error(e);
39
+ }
40
+ }
41
+ return null;
42
+ }
@@ -34,4 +34,3 @@ export async function setupServerConfig(logger, servicePath, service, serverConf
34
34
  }
35
35
  }
36
36
  }
37
- //# sourceMappingURL=setup-server-config.js.map
@@ -19,4 +19,3 @@ export async function setupTests(logger, servicePath) {
19
19
  return Promise.resolve();
20
20
  }));
21
21
  }
22
- //# sourceMappingURL=setup-test.js.map
@@ -43,4 +43,3 @@ export async function inflateWSConfig(logger, servicePath, service, wsConfigList
43
43
  }
44
44
  }
45
45
  }
46
- //# sourceMappingURL=setup-ws.js.map
@@ -0,0 +1,4 @@
1
+ import { Logger, Router } from "@miqro/core";
2
+ import { InflateError } from "../common/jsx.js";
3
+ import { RouteFileMap } from "./setup-http.js";
4
+ export declare function setupDoc(logger: Logger, servicePath: string, service: string, mainRouter: Router, fileMap: RouteFileMap, inflateDir: string | undefined | false, errors: InflateError[]): Promise<any>;
@@ -0,0 +1,62 @@
1
+ import { importDocConfigModule } from "../common/jsx.js";
2
+ import { getDocConfigPath } from "../common/paths.js";
3
+ import { basename, dirname, join, relative } from "node:path";
4
+ import { mkdirSync, writeFileSync } from "node:fs";
5
+ import { cwd } from "node:process";
6
+ import { getDocOutput } from "../bin/generate-doc.js";
7
+ import { CONTENT_TYPE_MAP } from "../common/content-type.js";
8
+ export async function setupDoc(logger, servicePath, service, mainRouter, fileMap, inflateDir, errors) {
9
+ const docPath = getDocConfigPath(servicePath); //resolve(process.cwd(), service, "auth.ts");
10
+ if (docPath) {
11
+ try {
12
+ const docModule = await importDocConfigModule(docPath, logger);
13
+ logger.debug("setting up error handling from [%s]", join(service, basename(docPath)));
14
+ if (docModule && docModule.publish) {
15
+ const paths = Object.keys(docModule.publish);
16
+ for (const path of paths) {
17
+ const config = docModule.publish[path];
18
+ const body = await getDocOutput(mainRouter, fileMap, config.all, config.type);
19
+ mainRouter.get(path, async (_, res) => {
20
+ switch (config.type) {
21
+ case "MD": {
22
+ const contentType = CONTENT_TYPE_MAP[".md"];
23
+ return await res.asyncEnd({
24
+ headers: {
25
+ "content-type": contentType
26
+ },
27
+ status: 200,
28
+ body
29
+ });
30
+ }
31
+ case "JSON": {
32
+ return await res.json(body);
33
+ }
34
+ case "HTML": {
35
+ return await res.html(body);
36
+ }
37
+ default:
38
+ return true;
39
+ }
40
+ });
41
+ if (inflateDir) {
42
+ const inflatePath = join(inflateDir, service, "static", path);
43
+ mkdirSync(dirname(inflatePath), {
44
+ recursive: true
45
+ });
46
+ logger.log("writing [%s]", relative(cwd(), inflatePath));
47
+ writeFileSync(inflatePath, body);
48
+ }
49
+ }
50
+ }
51
+ }
52
+ catch (e) {
53
+ errors.push({
54
+ filePath: docPath,
55
+ error: e
56
+ });
57
+ logger.error("error with " + docPath);
58
+ logger.error(e);
59
+ }
60
+ }
61
+ return null;
62
+ }
@@ -10,4 +10,3 @@ export async function appendAPIModule(router, dir, filePath, module) {
10
10
  router.use(module.handler, r.path, r.method, r.options);
11
11
  }
12
12
  }
13
- //# sourceMappingURL=sea-utils.js.map
@@ -14,4 +14,3 @@ export { appendAPIModule } from "./inflate/utils/sea-utils.js";
14
14
  export { ServerInterfaceImpl } from "./services/utils/server-interface.js";
15
15
  export { App, LoggerHandler, Router } from "@miqro/core";
16
16
  export { migration } from "@miqro/query";
17
- //# sourceMappingURL=lib.js.map
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { getPORT, parseArguments } from "./common/arguments.js";
2
+ import { parseArguments } from "./common/arguments.js";
3
3
  import { EXIT_CODES } from "./common/constants.js";
4
4
  import { testMain } from "./bin/test.js";
5
5
  import { compileSH } from "./bin/compile.js";
@@ -16,8 +16,8 @@ async function main(args) {
16
16
  else {
17
17
  const app = new Miqro({
18
18
  editor: args.editor,
19
- name: "server",
20
- port: args.test ? TEST_SOCKET : getPORT(),
19
+ name: args.name ? args.name : undefined,
20
+ port: args.test ? TEST_SOCKET : args.port,
21
21
  services: args.services,
22
22
  hotreload: args.test ? false : args.hotreload
23
23
  });
@@ -89,4 +89,3 @@ catch (e) {
89
89
  console.error(e.message);
90
90
  process.exit(EXIT_CODES.ABNORMAL);
91
91
  }
92
- //# sourceMappingURL=main.js.map
@@ -64,6 +64,7 @@ export declare class Miqro {
64
64
  stopWatch: () => void;
65
65
  };
66
66
  constructor(options?: Partial<MiqroOptions>);
67
+ static import(inFile: string, options?: Partial<MiqroOptions>, inflate?: Partial<InflateOptions>): Promise<Miqro>;
67
68
  connect(): void;
68
69
  disconnect(): void;
69
70
  inflateWith(inflated?: Partial<InflatedResult>): Promise<void>;
@@ -10,7 +10,7 @@ import editorWSConfig from "../../editor/ws.js";
10
10
  import editorServerConfig from "../../editor/server.js";
11
11
  import { ClusterCache } from "./utils/cluster-cache.js";
12
12
  import { createEditorRouter } from "./editor.js";
13
- import { EDITOR_CONFIG_KEY } from "../common/constants.js";
13
+ import { EDITOR_CONFIG_KEY, HOT_RELOAD_PATH } from "../common/constants.js";
14
14
  import { watchAndServer } from "../common/watch.js";
15
15
  import { LocalCache } from "./utils/cache.js";
16
16
  import { initGlobals } from "./globals.js";
@@ -20,9 +20,11 @@ import { setupExitHandlers } from "../common/exit.js";
20
20
  import { inflateDBConfig, inflateDBMigrations } from "../inflate/setup-db.js";
21
21
  import { getServicePath } from "../common/paths.js";
22
22
  import { ServerInterfaceImpl } from "./utils/server-interface.js";
23
- import { getPORT } from "../common/arguments.js";
23
+ import { getPORT, importMiqroJSON } from "../common/arguments.js";
24
24
  import { createLogProviderOptions } from "./utils/log-transport.js";
25
25
  import { createAdminInterface } from "./utils/admin-interface.js";
26
+ import { dirname, join, relative, resolve } from "node:path";
27
+ import { cwd } from "node:process";
26
28
  export const MiqroApplicationMessageType = "$$$MiqroApplicationMessageType$$$";
27
29
  export class Miqro {
28
30
  status = "stopped";
@@ -112,6 +114,21 @@ export class Miqro {
112
114
  this.adminInterface = createAdminInterface(this);
113
115
  setupExitHandlers(this);
114
116
  }
117
+ static async import(inFile, options, inflate) {
118
+ const miqroJSON = importMiqroJSON(resolve(inFile));
119
+ const miqroJSONDir = dirname(resolve(inFile));
120
+ const app = new Miqro({
121
+ name: miqroJSON.name ? miqroJSON.name : undefined,
122
+ port: miqroJSON.port ? String(miqroJSON.port) : undefined,
123
+ services: miqroJSON.services ? miqroJSON.services.map(s => join(relative(cwd(), miqroJSONDir), s)) : undefined,
124
+ ...(options ? options : {}),
125
+ });
126
+ await app.inflate({
127
+ inflateDir: miqroJSON.inflateDir ? String(miqroJSON.inflateDir) : undefined,
128
+ ...(inflate ? inflate : {}),
129
+ });
130
+ return app;
131
+ }
115
132
  connect() {
116
133
  if (process.send) {
117
134
  process.removeListener("message", this.listener);
@@ -255,9 +272,9 @@ export class Miqro {
255
272
  serverConfigMap[EDITOR_CONFIG_KEY] = editorServerConfig;
256
273
  }
257
274
  if (this.options?.hotreload /* && !options?.inflateTests*/) {
258
- this.logger?.debug("setting up websocket on [/hot-reload]");
275
+ this.logger?.debug("setting up websocket on [%s]", HOT_RELOAD_PATH);
259
276
  wsConfigList.push({
260
- path: "/hot-reload/"
277
+ path: HOT_RELOAD_PATH
261
278
  });
262
279
  }
263
280
  await notifiyServerConfig(this.logger, this.serverInterface, this.adminInterface, serverConfigMap, "preload");
@@ -535,4 +552,3 @@ export function notifiyServerConfigSync(app, method) {
535
552
  });
536
553
  }
537
554
  }
538
- //# sourceMappingURL=app.js.map
@@ -65,4 +65,3 @@ function getHandler(/*auth: Handler, */ router) {
65
65
  handler: router.handler
66
66
  };
67
67
  }
68
- //# sourceMappingURL=editor.js.map
@@ -136,4 +136,3 @@ export function assertGlobalTampered() {
136
136
  process.exit(EXIT_CODES.GLOBALS_ALTERED);
137
137
  }
138
138
  }
139
- //# sourceMappingURL=globals.js.map
@@ -1,10 +1,11 @@
1
1
  //import { checkEnvVariable } from "@miqro/core";
2
+ import { HOT_RELOAD_PATH } from "../common/constants.js";
2
3
  export function getHotReloadScript() {
3
4
  const HOT_RELOAD_JS_SCRIPT = `
4
5
  // Create WebSocket connection.
5
6
 
6
7
  function getSocket() {
7
- return new WebSocket("/hot-reload");
8
+ return new WebSocket("${HOT_RELOAD_PATH}");
8
9
  }
9
10
 
10
11
  const socket = getSocket();
@@ -42,4 +43,3 @@ socket.addEventListener("error", (err) => {
42
43
  /*export function isHotReloadEnabled() {
43
44
  return checkEnvVariable("HOT_RELOAD", "0") === "1";
44
45
  }*/
45
- //# sourceMappingURL=hot-reload.js.map
@@ -58,4 +58,3 @@ export async function runMigrationsDown(logger, db, servicePath, service, inflat
58
58
  }
59
59
  return migrations;
60
60
  }
61
- //# sourceMappingURL=migrations.js.map
@@ -31,4 +31,3 @@ export function createAdminInterface(app) {
31
31
  }
32
32
  };
33
33
  }
34
- //# sourceMappingURL=admin-interface.js.map
@@ -82,4 +82,3 @@ export class LocalCache {
82
82
  this.localCache.set(key, []);
83
83
  }
84
84
  }
85
- //# sourceMappingURL=cache.js.map
@@ -212,4 +212,3 @@ export class ClusterCache {
212
212
  this.localCache.set(key, []);
213
213
  }
214
214
  }
215
- //# sourceMappingURL=cluster-cache.js.map
@@ -177,4 +177,3 @@ export class ClusterWebSocketServer2 extends WebSocketServer {
177
177
  return !this.clients.has(uuid) && !this.remoteClients.has(uuid);
178
178
  }
179
179
  }
180
- //# sourceMappingURL=cluster-ws.js.map
@@ -68,4 +68,3 @@ export class DBManager {
68
68
  this.map.set(name, db);
69
69
  }
70
70
  }
71
- //# sourceMappingURL=db-manager.js.map
@@ -55,4 +55,3 @@ export function getRoutes(prePath, defaultPath, apiOptions) {
55
55
  }
56
56
  return ret;
57
57
  }
58
- //# sourceMappingURL=get-route.js.map
@@ -72,4 +72,3 @@ export function createLogProviderOptions(app) {
72
72
  ...(app.options.logProviderOptions ? app.options.logProviderOptions : {})
73
73
  };
74
74
  }
75
- //# sourceMappingURL=log-transport.js.map
@@ -10,7 +10,8 @@ export class LogProvider {
10
10
  constructor(options) {
11
11
  this.options = {
12
12
  formatter: options && options.formatter ? options.formatter : DEFAULT_FORMATTER,
13
- transports: options && options.transports ? options.transports : [ConsoleTransport()]
13
+ transports: options && options.transports ? options.transports : [ConsoleTransport()],
14
+ name: options?.name
14
15
  };
15
16
  this.requestLoggerFactory = this.requestLoggerFactory.bind(this);
16
17
  }
@@ -71,4 +72,3 @@ export class LogProvider {
71
72
  return logger;
72
73
  }
73
74
  }
74
- //# sourceMappingURL=log.js.map
@@ -77,4 +77,3 @@ export class ServerInterfaceImpl {
77
77
  return this.loggerProvider?.getLogger(identifier, options);
78
78
  }
79
79
  }
80
- //# sourceMappingURL=server-interface.js.map
@@ -133,4 +133,3 @@ export class WebSocketManager {
133
133
  options: WSConfig;
134
134
  } | undefined;
135
135
  }*/
136
- //# sourceMappingURL=websocketmanager.js.map
@@ -1,5 +1,5 @@
1
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";
2
+ import { WebSocketServerOptions, SessionHandlerOptions, Logger, WebSocketServer, ReadBuffer, URLEncodedParser, JSONParser, TextParser, CORS, SessionHandler, RouteOptions, Handler, Request, Response, LogLevel, LoggerTransportWriteArgs, CORSOptions, HandlerWithOptions, ErrorHandler } from "@miqro/core";
3
3
  import { request } from "@miqro/request";
4
4
  import { ParserInterface } from "@miqro/parser";
5
5
  import { RuntimeHTMLElement, Runtime, RuntimeContainer, RuntimeURL, RuntimeOptions, RuntimeShadowRootInit } from "@miqro/jsx";
@@ -140,6 +140,21 @@ declare global {
140
140
  }
141
141
  export interface AuthConfig extends SessionHandlerOptions {
142
142
  }
143
+ export interface MiddlewareConfig {
144
+ middleware?: Array<HandlerWithOptions | Handler>;
145
+ post?: Array<HandlerWithOptions | Handler>;
146
+ }
147
+ export interface ErrorConfig {
148
+ catch?: Array<ErrorHandler>;
149
+ }
150
+ export interface DocConfig {
151
+ publish: {
152
+ [path: string]: {
153
+ type?: "HTML" | "MD" | "JSON";
154
+ all?: boolean;
155
+ };
156
+ };
157
+ }
143
158
  export interface WSConfig extends WebSocketServerOptions {
144
159
  path: string;
145
160
  disabled?: boolean;
@@ -1,2 +1 @@
1
1
  export {};
2
- //# sourceMappingURL=types.js.map