miqro 6.0.14 → 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 (322) hide show
  1. package/README.md +12 -0
  2. package/build/editor.bundle.js +37 -50409
  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.js +0 -1
  9. package/build/esm/src/common/content-type.js +0 -1
  10. package/build/esm/src/common/esbuild.js +0 -1
  11. package/build/esm/src/common/exit.js +0 -1
  12. package/build/esm/src/common/fs.js +0 -1
  13. package/build/esm/src/common/help.d.ts +1 -1
  14. package/build/esm/src/common/help.js +4 -1
  15. package/build/esm/src/common/jsx.d.ts +8 -1
  16. package/build/esm/src/common/jsx.js +84 -2
  17. package/build/esm/src/common/paths.d.ts +4 -0
  18. package/build/esm/src/common/paths.js +41 -2
  19. package/build/esm/src/common/watch.js +0 -1
  20. package/build/esm/src/inflate/inflate-sea.js +27 -16
  21. package/build/esm/src/inflate/inflate.js +2 -1
  22. package/build/esm/src/inflate/md.d.ts +1 -0
  23. package/build/esm/src/inflate/md.js +9 -6
  24. package/build/esm/src/inflate/setup-auth.js +0 -1
  25. package/build/esm/src/inflate/setup-cors.js +0 -1
  26. package/build/esm/src/inflate/setup-db.js +0 -1
  27. package/build/esm/src/inflate/setup-error.d.ts +3 -0
  28. package/build/esm/src/inflate/setup-error.js +40 -0
  29. package/build/esm/src/inflate/setup-http.js +13 -4
  30. package/build/esm/src/inflate/setup-log.js +0 -1
  31. package/build/esm/src/inflate/setup-middleware.d.ts +4 -0
  32. package/build/esm/src/inflate/setup-middleware.js +42 -0
  33. package/build/esm/src/inflate/setup-server-config.js +0 -1
  34. package/build/esm/src/inflate/setup-test.js +0 -1
  35. package/build/esm/src/inflate/setup-ws.js +0 -1
  36. package/build/esm/src/inflate/setup.doc.d.ts +4 -0
  37. package/build/esm/src/inflate/setup.doc.js +62 -0
  38. package/build/esm/src/inflate/utils/sea-utils.js +0 -1
  39. package/build/esm/src/lib.js +0 -1
  40. package/build/esm/src/main.js +3 -4
  41. package/build/esm/src/services/app.d.ts +1 -0
  42. package/build/esm/src/services/app.js +18 -2
  43. package/build/esm/src/services/editor.js +0 -1
  44. package/build/esm/src/services/globals.js +0 -1
  45. package/build/esm/src/services/hot-reload.js +0 -1
  46. package/build/esm/src/services/migrations.js +0 -1
  47. package/build/esm/src/services/utils/admin-interface.js +0 -1
  48. package/build/esm/src/services/utils/cache.js +0 -1
  49. package/build/esm/src/services/utils/cluster-cache.js +0 -1
  50. package/build/esm/src/services/utils/cluster-ws.js +0 -1
  51. package/build/esm/src/services/utils/db-manager.js +0 -1
  52. package/build/esm/src/services/utils/get-route.js +0 -1
  53. package/build/esm/src/services/utils/log-transport.js +0 -1
  54. package/build/esm/src/services/utils/log.js +2 -2
  55. package/build/esm/src/services/utils/server-interface.js +0 -1
  56. package/build/esm/src/services/utils/websocketmanager.js +0 -1
  57. package/build/esm/src/types.d.ts +16 -1
  58. package/build/esm/src/types.js +0 -1
  59. package/build/lib.cjs +890 -322
  60. package/package.json +4 -2
  61. package/sea/types.json +1 -1
  62. package/tsconfig.json +1 -1
  63. package/bin/miqro +0 -34
  64. package/build/esm/editor/auth.d.ts +0 -6
  65. package/build/esm/editor/auth.js +0 -42
  66. package/build/esm/editor/auth.js.map +0 -1
  67. package/build/esm/editor/common/admin-interface.d.ts +0 -36
  68. package/build/esm/editor/common/admin-interface.js +0 -45
  69. package/build/esm/editor/common/admin-interface.js.map +0 -1
  70. package/build/esm/editor/common/constants.d.ts +0 -4
  71. package/build/esm/editor/common/constants.js +0 -21
  72. package/build/esm/editor/common/constants.js.map +0 -1
  73. package/build/esm/editor/common/constants.server.d.ts +0 -2
  74. package/build/esm/editor/common/constants.server.js +0 -5
  75. package/build/esm/editor/common/constants.server.js.map +0 -1
  76. package/build/esm/editor/common/editor-index.d.ts +0 -2
  77. package/build/esm/editor/common/editor-index.js +0 -15
  78. package/build/esm/editor/common/editor-index.js.map +0 -1
  79. package/build/esm/editor/common/html-encode.d.ts +0 -1
  80. package/build/esm/editor/common/html-encode.js +0 -15
  81. package/build/esm/editor/common/html-encode.js.map +0 -1
  82. package/build/esm/editor/common/log-socket.d.ts +0 -15
  83. package/build/esm/editor/common/log-socket.js +0 -71
  84. package/build/esm/editor/common/log-socket.js.map +0 -1
  85. package/build/esm/editor/common/templates.d.ts +0 -11
  86. package/build/esm/editor/common/templates.js +0 -444
  87. package/build/esm/editor/common/templates.js.map +0 -1
  88. package/build/esm/editor/components/api-preview.d.ts +0 -11
  89. package/build/esm/editor/components/api-preview.js +0 -91
  90. package/build/esm/editor/components/api-preview.js.map +0 -1
  91. package/build/esm/editor/components/editor.d.ts +0 -16
  92. package/build/esm/editor/components/editor.js +0 -358
  93. package/build/esm/editor/components/editor.js.map +0 -1
  94. package/build/esm/editor/components/file-browser.d.ts +0 -37
  95. package/build/esm/editor/components/file-browser.js +0 -127
  96. package/build/esm/editor/components/file-browser.js.map +0 -1
  97. package/build/esm/editor/components/file-editor-toolbar.d.ts +0 -22
  98. package/build/esm/editor/components/file-editor-toolbar.js +0 -94
  99. package/build/esm/editor/components/file-editor-toolbar.js.map +0 -1
  100. package/build/esm/editor/components/file-editor.d.ts +0 -32
  101. package/build/esm/editor/components/file-editor.js +0 -60
  102. package/build/esm/editor/components/file-editor.js.map +0 -1
  103. package/build/esm/editor/components/filter-query.d.ts +0 -1
  104. package/build/esm/editor/components/filter-query.js +0 -23
  105. package/build/esm/editor/components/filter-query.js.map +0 -1
  106. package/build/esm/editor/components/highlight-text-area.d.ts +0 -11
  107. package/build/esm/editor/components/highlight-text-area.js +0 -139
  108. package/build/esm/editor/components/highlight-text-area.js.map +0 -1
  109. package/build/esm/editor/components/log-viewer.d.ts +0 -6
  110. package/build/esm/editor/components/log-viewer.js +0 -70
  111. package/build/esm/editor/components/log-viewer.js.map +0 -1
  112. package/build/esm/editor/components/new-file.d.ts +0 -10
  113. package/build/esm/editor/components/new-file.js +0 -118
  114. package/build/esm/editor/components/new-file.js.map +0 -1
  115. package/build/esm/editor/components/scroll-query.d.ts +0 -7
  116. package/build/esm/editor/components/scroll-query.js +0 -22
  117. package/build/esm/editor/components/scroll-query.js.map +0 -1
  118. package/build/esm/editor/components/start-page.d.ts +0 -13
  119. package/build/esm/editor/components/start-page.js +0 -31
  120. package/build/esm/editor/components/start-page.js.map +0 -1
  121. package/build/esm/editor/http/admin/editor/api/fs/delete.api.d.ts +0 -3
  122. package/build/esm/editor/http/admin/editor/api/fs/delete.api.js +0 -30
  123. package/build/esm/editor/http/admin/editor/api/fs/delete.api.js.map +0 -1
  124. package/build/esm/editor/http/admin/editor/api/fs/read.api.d.ts +0 -5
  125. package/build/esm/editor/http/admin/editor/api/fs/read.api.js +0 -50
  126. package/build/esm/editor/http/admin/editor/api/fs/read.api.js.map +0 -1
  127. package/build/esm/editor/http/admin/editor/api/fs/rename.api.d.ts +0 -4
  128. package/build/esm/editor/http/admin/editor/api/fs/rename.api.js +0 -40
  129. package/build/esm/editor/http/admin/editor/api/fs/rename.api.js.map +0 -1
  130. package/build/esm/editor/http/admin/editor/api/fs/scan.api.d.ts +0 -26
  131. package/build/esm/editor/http/admin/editor/api/fs/scan.api.js +0 -150
  132. package/build/esm/editor/http/admin/editor/api/fs/scan.api.js.map +0 -1
  133. package/build/esm/editor/http/admin/editor/api/fs/write.api.d.ts +0 -3
  134. package/build/esm/editor/http/admin/editor/api/fs/write.api.js +0 -39
  135. package/build/esm/editor/http/admin/editor/api/fs/write.api.js.map +0 -1
  136. package/build/esm/editor/http/admin/editor/api/server/reload.api.d.ts +0 -10
  137. package/build/esm/editor/http/admin/editor/api/server/reload.api.js +0 -47
  138. package/build/esm/editor/http/admin/editor/api/server/reload.api.js.map +0 -1
  139. package/build/esm/editor/http/admin/editor/api/server/restart.api.d.ts +0 -10
  140. package/build/esm/editor/http/admin/editor/api/server/restart.api.js +0 -46
  141. package/build/esm/editor/http/admin/editor/api/server/restart.api.js.map +0 -1
  142. package/build/esm/editor/http/admin/editor/editor.d.ts +0 -1
  143. package/build/esm/editor/http/admin/editor/editor.js +0 -8
  144. package/build/esm/editor/http/admin/editor/editor.js.map +0 -1
  145. package/build/esm/editor/http/admin/editor/index.api.d.ts +0 -3
  146. package/build/esm/editor/http/admin/editor/index.api.js +0 -22
  147. package/build/esm/editor/http/admin/editor/index.api.js.map +0 -1
  148. package/build/esm/editor/server.d.ts +0 -3
  149. package/build/esm/editor/server.js +0 -50
  150. package/build/esm/editor/server.js.map +0 -1
  151. package/build/esm/editor/ws.d.ts +0 -3
  152. package/build/esm/editor/ws.js +0 -12
  153. package/build/esm/editor/ws.js.map +0 -1
  154. package/build/esm/src/bin/compile.d.ts +0 -3
  155. package/build/esm/src/bin/compile.js +0 -31
  156. package/build/esm/src/bin/compile.js.map +0 -1
  157. package/build/esm/src/bin/doc-md.d.ts +0 -17
  158. package/build/esm/src/bin/doc-md.js +0 -187
  159. package/build/esm/src/bin/doc-md.js.map +0 -1
  160. package/build/esm/src/bin/generate-doc.d.ts +0 -4
  161. package/build/esm/src/bin/generate-doc.js +0 -49
  162. package/build/esm/src/bin/generate-doc.js.map +0 -1
  163. package/build/esm/src/bin/test.d.ts +0 -3
  164. package/build/esm/src/bin/test.js +0 -68
  165. package/build/esm/src/bin/test.js.map +0 -1
  166. package/build/esm/src/bin/types.d.ts +0 -3
  167. package/build/esm/src/bin/types.js +0 -21
  168. package/build/esm/src/bin/types.js.map +0 -1
  169. package/build/esm/src/cluster.js.map +0 -1
  170. package/build/esm/src/common/arguments.js.map +0 -1
  171. package/build/esm/src/common/assets.js.map +0 -1
  172. package/build/esm/src/common/checksum.js.map +0 -1
  173. package/build/esm/src/common/constants.js.map +0 -1
  174. package/build/esm/src/common/content-type.js.map +0 -1
  175. package/build/esm/src/common/esbuild.js.map +0 -1
  176. package/build/esm/src/common/exit.js.map +0 -1
  177. package/build/esm/src/common/fs.js.map +0 -1
  178. package/build/esm/src/common/help.js.map +0 -1
  179. package/build/esm/src/common/jsx.js.map +0 -1
  180. package/build/esm/src/common/paths.js.map +0 -1
  181. package/build/esm/src/common/watch.js.map +0 -1
  182. package/build/esm/src/inflate/inflate-sea.js.map +0 -1
  183. package/build/esm/src/inflate/inflate.js.map +0 -1
  184. package/build/esm/src/inflate/md.js.map +0 -1
  185. package/build/esm/src/inflate/setup-auth.js.map +0 -1
  186. package/build/esm/src/inflate/setup-cors.js.map +0 -1
  187. package/build/esm/src/inflate/setup-db.js.map +0 -1
  188. package/build/esm/src/inflate/setup-http.js.map +0 -1
  189. package/build/esm/src/inflate/setup-log.js.map +0 -1
  190. package/build/esm/src/inflate/setup-server-config.js.map +0 -1
  191. package/build/esm/src/inflate/setup-test.js.map +0 -1
  192. package/build/esm/src/inflate/setup-ws.js.map +0 -1
  193. package/build/esm/src/inflate/utils/sea-utils.js.map +0 -1
  194. package/build/esm/src/lib.js.map +0 -1
  195. package/build/esm/src/main.js.map +0 -1
  196. package/build/esm/src/services/app.js.map +0 -1
  197. package/build/esm/src/services/editor.js.map +0 -1
  198. package/build/esm/src/services/globals.js.map +0 -1
  199. package/build/esm/src/services/hot-reload.js.map +0 -1
  200. package/build/esm/src/services/migrations.js.map +0 -1
  201. package/build/esm/src/services/utils/admin-interface.js.map +0 -1
  202. package/build/esm/src/services/utils/cache.js.map +0 -1
  203. package/build/esm/src/services/utils/cluster-cache.js.map +0 -1
  204. package/build/esm/src/services/utils/cluster-ws.js.map +0 -1
  205. package/build/esm/src/services/utils/db-manager.js.map +0 -1
  206. package/build/esm/src/services/utils/get-route.js.map +0 -1
  207. package/build/esm/src/services/utils/log-transport.js.map +0 -1
  208. package/build/esm/src/services/utils/log.js.map +0 -1
  209. package/build/esm/src/services/utils/server-interface.js.map +0 -1
  210. package/build/esm/src/services/utils/websocketmanager.js.map +0 -1
  211. package/build/esm/src/types.js.map +0 -1
  212. package/editor/auth.ts +0 -51
  213. package/editor/common/admin-interface.ts +0 -84
  214. package/editor/common/constants.server.ts +0 -5
  215. package/editor/common/constants.ts +0 -21
  216. package/editor/common/editor-index.tsx +0 -17
  217. package/editor/common/html-encode.ts +0 -14
  218. package/editor/common/log-socket.tsx +0 -85
  219. package/editor/common/templates.ts +0 -448
  220. package/editor/components/api-preview.tsx +0 -116
  221. package/editor/components/editor.tsx +0 -486
  222. package/editor/components/file-browser.tsx +0 -308
  223. package/editor/components/file-editor-toolbar.tsx +0 -191
  224. package/editor/components/file-editor.tsx +0 -122
  225. package/editor/components/filter-query.tsx +0 -22
  226. package/editor/components/highlight-text-area.tsx +0 -159
  227. package/editor/components/log-viewer.tsx +0 -110
  228. package/editor/components/new-file.tsx +0 -169
  229. package/editor/components/scroll-query.tsx +0 -22
  230. package/editor/components/start-page.tsx +0 -49
  231. package/editor/http/admin/editor/api/fs/delete.api.tsx +0 -32
  232. package/editor/http/admin/editor/api/fs/read.api.tsx +0 -55
  233. package/editor/http/admin/editor/api/fs/rename.api.tsx +0 -41
  234. package/editor/http/admin/editor/api/fs/scan.api.tsx +0 -181
  235. package/editor/http/admin/editor/api/fs/write.api.tsx +0 -41
  236. package/editor/http/admin/editor/api/server/reload.api.ts +0 -53
  237. package/editor/http/admin/editor/api/server/restart.api.tsx +0 -52
  238. package/editor/http/admin/editor/editor.tsx +0 -8
  239. package/editor/http/admin/editor/index.api.tsx +0 -39
  240. package/editor/server.ts +0 -57
  241. package/editor/static/android-chrome-192x192.png +0 -0
  242. package/editor/static/android-chrome-512x512.png +0 -0
  243. package/editor/static/apple-touch-icon.png +0 -0
  244. package/editor/static/editor.bundle.in.mjs +0 -20
  245. package/editor/static/favicon-16x16.png +0 -0
  246. package/editor/static/favicon-32x32.png +0 -0
  247. package/editor/static/favicon.ico +0 -0
  248. package/editor/static/site.webmanifest +0 -19
  249. package/editor/ws.ts +0 -15
  250. package/sea/base64.js +0 -3
  251. package/sea/compile.sh +0 -127
  252. package/sea/copy-types.sh +0 -46
  253. package/sea/editor-assets/editor.bundle.in.mjs +0 -19
  254. package/sea/generate-global-types-asset-json.js +0 -34
  255. package/sea/release-tar.sh +0 -5
  256. package/sea/tsc.sh +0 -1
  257. package/sea/version.tag.js +0 -11
  258. package/src/bin/compile.ts +0 -35
  259. package/src/bin/doc-md.ts +0 -210
  260. package/src/bin/generate-doc.ts +0 -58
  261. package/src/bin/test.ts +0 -92
  262. package/src/bin/types.ts +0 -22
  263. package/src/cluster.ts +0 -27
  264. package/src/common/arguments.ts +0 -382
  265. package/src/common/assets.ts +0 -128
  266. package/src/common/checksum.ts +0 -58
  267. package/src/common/constants.ts +0 -18
  268. package/src/common/content-type.ts +0 -84
  269. package/src/common/esbuild.ts +0 -94
  270. package/src/common/exit.ts +0 -91
  271. package/src/common/fs.ts +0 -17
  272. package/src/common/help.ts +0 -47
  273. package/src/common/jsx.ts +0 -426
  274. package/src/common/paths.ts +0 -117
  275. package/src/common/watch.ts +0 -85
  276. package/src/inflate/inflate-sea.ts +0 -194
  277. package/src/inflate/inflate.ts +0 -96
  278. package/src/inflate/md.ts +0 -20
  279. package/src/inflate/setup-auth.ts +0 -40
  280. package/src/inflate/setup-cors.ts +0 -40
  281. package/src/inflate/setup-db.ts +0 -113
  282. package/src/inflate/setup-http.ts +0 -643
  283. package/src/inflate/setup-log.ts +0 -44
  284. package/src/inflate/setup-server-config.ts +0 -47
  285. package/src/inflate/setup-test.ts +0 -23
  286. package/src/inflate/setup-ws.ts +0 -48
  287. package/src/inflate/utils/sea-utils.ts +0 -14
  288. package/src/lib.ts +0 -19
  289. package/src/main.ts +0 -87
  290. package/src/services/app.ts +0 -640
  291. package/src/services/editor.tsx +0 -101
  292. package/src/services/globals.ts +0 -143
  293. package/src/services/hot-reload.ts +0 -48
  294. package/src/services/migrations.ts +0 -66
  295. package/src/services/utils/admin-interface.ts +0 -37
  296. package/src/services/utils/cache.ts +0 -88
  297. package/src/services/utils/cluster-cache.ts +0 -230
  298. package/src/services/utils/cluster-ws.ts +0 -197
  299. package/src/services/utils/db-manager.ts +0 -92
  300. package/src/services/utils/get-route.ts +0 -70
  301. package/src/services/utils/log-transport.ts +0 -75
  302. package/src/services/utils/log.ts +0 -91
  303. package/src/services/utils/server-interface.ts +0 -172
  304. package/src/services/utils/websocketmanager.ts +0 -149
  305. package/src/types/@esbuild.d.ts +0 -1
  306. package/src/types/@miqro/core.d.ts +0 -2
  307. package/src/types/@miqro/jsx.d.ts +0 -2
  308. package/src/types/@miqro/parser.d.ts +0 -2
  309. package/src/types/@miqro/query.d.ts +0 -2
  310. package/src/types/@miqro/request.d.ts +0 -2
  311. package/src/types/@miqro/test.d.ts +0 -2
  312. package/src/types/@miqro.d.ts +0 -1
  313. package/src/types/@types.d.ts +0 -1
  314. package/src/types/browser.globals.d.ts +0 -9
  315. package/src/types/globals.d.ts +0 -2
  316. package/src/types/jsx.globals.d.ts +0 -37
  317. package/src/types/miqro.d.ts +0 -111
  318. package/src/types/postject.d.ts +0 -1
  319. package/src/types/server.globals.d.ts +0 -72
  320. package/src/types.ts +0 -204
  321. /package/{editor/http/admin/editor → build}/font.ttf +0 -0
  322. /package/{editor/http/admin/editor → build}/style.css +0 -0
@@ -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>;
@@ -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);
@@ -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
@@ -43,4 +43,3 @@ socket.addEventListener("error", (err) => {
43
43
  /*export function isHotReloadEnabled() {
44
44
  return checkEnvVariable("HOT_RELOAD", "0") === "1";
45
45
  }*/
46
- //# 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