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,117 +0,0 @@
1
- import { checkEnvVariable } from "@miqro/core";
2
- import { randomUUID } from "node:crypto";
3
- import { existsSync, statSync } from "node:fs";
4
- import { tmpdir } from "node:os";
5
- import { resolve } from "node:path";
6
- import { cwd, platform } from "node:process";
7
-
8
- export const JSX_TMP_DIR = checkEnvVariable(`JSX_TMP`, resolve(tmpdir(), "jsx_tmp"));
9
-
10
- export const TEST_SOCKET = resolve(JSX_TMP_DIR, `test.${randomUUID()}.sock`);
11
-
12
- export function getServicePath(service: string) {
13
- return resolve(cwd(), service);
14
- }
15
-
16
- export function getLogConfigPath(servicePath: string) {
17
- const logConfigPath = resolve(servicePath, "log.ts");
18
- const logConfigPathJS = resolve(servicePath, "log.js");
19
- if (existsSync(logConfigPath) && !statSync(logConfigPath).isDirectory()) {
20
- return logConfigPath;
21
- } else if (existsSync(logConfigPathJS) && !statSync(logConfigPathJS).isDirectory()) {
22
- return logConfigPathJS;
23
- }
24
- return false;
25
- }
26
-
27
- export function getCORSConfigPath(servicePath: string) {
28
- const corsPath = resolve(servicePath, "cors.ts");
29
- const corsPathJS = resolve(servicePath, "cors.js");
30
- if (existsSync(corsPath) && !statSync(corsPath).isDirectory()) {
31
- return corsPath;
32
- } else if (existsSync(corsPathJS) && !statSync(corsPathJS).isDirectory()) {
33
- return corsPathJS;
34
- }
35
- return false;
36
- }
37
-
38
- export function getServerConfigPath(servicePath: string) {
39
- const serverPath = resolve(servicePath, "server.ts");
40
- const serverPathJS = resolve(servicePath, "server.js");
41
- if (existsSync(serverPath)) {
42
- return serverPath;
43
- } else if (existsSync(serverPathJS)) {
44
- return serverPathJS;
45
- }
46
- return false;
47
- }
48
-
49
- export function getWSConfigPath(servicePath: string) {
50
- const wsPath = resolve(servicePath, "ws.ts");
51
- const wsPathJS = resolve(servicePath, "ws.js");
52
- if (existsSync(wsPath)) {
53
- return wsPath;
54
- } else if (existsSync(wsPathJS)) {
55
- return wsPathJS;
56
- }
57
- return false;
58
- }
59
-
60
- export function getDBConfigPath(servicePath: string) {
61
- const dbPath = resolve(servicePath, "db.ts");
62
- const dbPathJS = resolve(servicePath, "db.js");
63
- if (existsSync(dbPath)) {
64
- return dbPath;
65
- } else if (existsSync(dbPathJS)) {
66
- return dbPathJS;
67
- }
68
- return false;
69
- }
70
-
71
- export function getStaticFilesPath(servicePath: string) {
72
- const staticFilesPath = resolve(servicePath, "static");
73
- if (existsSync(staticFilesPath) && statSync(staticFilesPath).isDirectory()) {
74
- return staticFilesPath;
75
- }
76
- return false;
77
- }
78
-
79
- export function getAuthConfigPath(servicePath: string) {
80
- const authPath = resolve(servicePath, "auth.ts");
81
- const authPathJS = resolve(servicePath, "auth.js");
82
- if (existsSync(authPath) && !statSync(authPath).isDirectory()) {
83
- return authPath;
84
- } else if (existsSync(authPath) && !statSync(authPath).isDirectory()) {
85
- return authPathJS;
86
- }
87
- return false;
88
- }
89
-
90
- export function getHTTPRouterPath(servicePath: string) {
91
- const apiRouterPath = resolve(servicePath, "http");
92
- if (existsSync(apiRouterPath) && statSync(apiRouterPath).isDirectory()) {
93
- return apiRouterPath;
94
- }
95
- return false;
96
- }
97
-
98
- export function getMigrationsPath(servicePath: string) {
99
- const migrationsFolderPath = resolve(servicePath, "migration");
100
- if (existsSync(migrationsFolderPath) && statSync(migrationsFolderPath).isDirectory()) {
101
- return migrationsFolderPath;
102
- }
103
- return false;
104
- }
105
-
106
- export function getESBuildBinaryPath() {
107
- if(platform === "win32") {
108
- return resolve(JSX_TMP_DIR, String(process.pid), "esbuild.exe");
109
- } else {
110
- return resolve(JSX_TMP_DIR, String(process.pid), "esbuild");
111
- }
112
- }
113
-
114
- export function getJSXJSPath() {
115
- return resolve(JSX_TMP_DIR, String(process.pid), "jsx.js");
116
- }
117
-
@@ -1,85 +0,0 @@
1
- import "../services/globals.js";
2
- import { FSWatcher, existsSync, readdirSync, statSync, watch } from "node:fs";
3
- import { resolve } from "node:path";
4
- import { Miqro } from "../services/app.js";
5
-
6
- export async function watchAndServer(app: Miqro) {
7
- let timeout: any;
8
- const watchLogger = app.logger;
9
- const watchers: FSWatcher[] = [];
10
-
11
- /*await start({
12
- logger,
13
- webSocketManager,
14
- dbManager,
15
- services,
16
- editor,
17
- inflateTests: false,
18
- inflateDir: false,
19
- inflateSea: false,
20
- runOnTestPort: false
21
- });*/
22
-
23
- //await app.start();
24
-
25
- function watchHandler(eventType: any, filename: any) {
26
- stopWatch();
27
- watchLogger?.debug(`event type is: ${eventType}`);
28
- if (filename) {
29
- watchLogger?.debug(`filename provided: ${filename}`);
30
- } else {
31
- watchLogger?.debug('filename not provided');
32
- }
33
- watchLogger?.info(`${eventType} on ${filename}`);
34
- clearTimeout(timeout);
35
- timeout = setTimeout(async () => {
36
- try {
37
- stopWatch();
38
- setTimeout(async () => {
39
- watchLogger?.debug("closed");
40
- await app.reload();
41
- reWatch();
42
- }, 500);
43
- } catch (e) {
44
- watchLogger?.error(e);
45
- }
46
- }, 2000);
47
- }
48
-
49
- function watchDir(toWatch: string) {
50
- const files = existsSync(toWatch) ? readdirSync(toWatch) : [];
51
- for (const file of files) {
52
- const filePath = resolve(toWatch, file);
53
- if (statSync(filePath).isDirectory()) {
54
- watchDir(filePath);
55
- } else {
56
- //console.log("toWatch=" + filePath);
57
- watchers.push(watch(filePath, watchHandler));
58
- }
59
- }
60
- }
61
-
62
- function stopWatch() {
63
- const toClose = watchers.splice(0, watchers.length);
64
- for (const watcher of toClose) {
65
- watcher.close();
66
- }
67
- }
68
-
69
-
70
- function reWatch() {
71
- stopWatch();
72
- for (const service of app.options.services) {
73
- const toWatch = resolve(process.cwd(), service);
74
- watchDir(toWatch);
75
- }
76
- }
77
-
78
- watchLogger?.info("watching for changes on [%s]", app.options.services.join(","));
79
- reWatch();
80
- return {
81
- stopWatch: () => {
82
- stopWatch();
83
- }
84
- };
85
- }
@@ -1,194 +0,0 @@
1
- import { Logger } from "@miqro/core";
2
- import { chmodSync, constants, mkdirSync, writeFileSync } from "node:fs";
3
- import { dirname, extname, join, relative, resolve } from "node:path";
4
- import { cwd, platform } from "node:process";
5
-
6
- import { RouteFileMap, StaticFileMap } from "./setup-http.js";
7
- import { getAuthConfigPath, getCORSConfigPath, getDBConfigPath, getMigrationsPath, getServerConfigPath, getServicePath, getWSConfigPath } from "../common/paths.js";
8
- import { getAsset } from "../common/assets.js";
9
- import { migration } from "@miqro/query";
10
-
11
- //export const libCJSBuffer = Buffer.from(getAsset("lib.cjs"));
12
- /*export const COMPILESH = Buffer.from(Buffer.from(getAsset("compile.base64.sh")).toString(), "base64");
13
- export const SIGN_REMOVESH = Buffer.from(getAsset("sign-remove.sh"));
14
- export const SIGN_ADDSH = Buffer.from(getAsset("sign-add.sh"));
15
- export const INSTALLNODEJSSH = Buffer.from(getAsset("install-nodejs.sh"));
16
- export const APPSH = Buffer.from(getAsset("app.sh"));
17
- export const NODESH = Buffer.from(getAsset("node.sh"));
18
- export const SEACONFIGJSON = Buffer.from(getAsset("sea.basic.config.json"));
19
- export const POSTJECTCJS = Buffer.from(Buffer.from(getAsset("postject.base64.cjs")).toString(), "base64");*/
20
-
21
- export async function inflateSeaAssets(logger: Logger, inflateDir: string) {
22
- const esbuildBinaryBuffer = Buffer.from(getAsset("esbuild-binary"));
23
- if (platform === "win32") {
24
- writeFile(logger, resolve(inflateDir, "sea", "esbuild.exe"), esbuildBinaryBuffer);
25
- chmodSync(resolve(inflateDir, "sea", "esbuild.exe"), constants.S_IXUSR | constants.S_IRUSR | constants.S_IWUSR);
26
- } else {
27
- writeFile(logger, resolve(inflateDir, "sea", "esbuild"), esbuildBinaryBuffer);
28
- chmodSync(resolve(inflateDir, "sea", "esbuild"), constants.S_IXUSR | constants.S_IRUSR | constants.S_IWUSR);
29
- }
30
- writeFile(logger, resolve(inflateDir, "sea", "postject.cjs"), Buffer.from(Buffer.from(getAsset("postject.base64.cjs")).toString(), "base64"));
31
- writeFile(logger, resolve(inflateDir, "sea", "config.json"), Buffer.from(getAsset("sea.basic.config.json")));
32
- writeFile(logger, resolve(inflateDir, "sea", "run.sh"), Buffer.from(getAsset("app.sh")));
33
- writeFile(logger, resolve(inflateDir, "sea", "node.sh"), Buffer.from(getAsset("node.sh")));
34
- writeFile(logger, resolve(inflateDir, "compile.sh"), Buffer.from(Buffer.from(getAsset("compile.base64.sh")).toString(), "base64"));
35
- writeFile(logger, resolve(inflateDir, "sea", "sign-add.sh"), Buffer.from(getAsset("sign-add.sh")));
36
- writeFile(logger, resolve(inflateDir, "sea", "sign-remove.sh"), Buffer.from(getAsset("sign-remove.sh")));
37
- writeFile(logger, resolve(inflateDir, "install-nodejs.sh"), Buffer.from(getAsset("install-nodejs.sh")));
38
- }
39
-
40
- export async function inflateAppForSea(logger: Logger, inflateDir: string, services: string[]) {
41
-
42
- inflateSeaAssets(logger, inflateDir);
43
-
44
- writeFile(logger, resolve(inflateDir, "sea", "lib.cjs"), Buffer.from(getAsset("lib.cjs")));
45
-
46
- const WSLIST = services.filter(service => getWSConfigPath(resolve(cwd(), service))).map(service => {
47
- return `(await import("../${service}/ws.js")).default`;
48
- }).join(",")
49
-
50
- const SERVERCONFIGLIST = services.filter(service => getServerConfigPath(resolve(cwd(), service))).map(service => {
51
- return `(await import("../${service}/server.js")).default`;
52
- }).join(",\n");
53
-
54
- const DBCONFIGLIST = services.filter(service => getDBConfigPath(resolve(cwd(), service))).map(service => {
55
- return `new Promise(async (resolve, reject) => {
56
- try {
57
- const db = await dbManager.setupDB((await import("../${service}/db.js")).default);
58
- await (await import("./${service}/migration-up.js")).runMigrations(db);
59
- resolve();
60
- } catch(e) {
61
- reject(e);
62
- }
63
-
64
- })`;
65
- }).join(",");
66
-
67
- writeFile(logger, join(inflateDir, "sea", "package.json"), `{ "type": "module", "private": true }`);
68
-
69
- writeFile(logger, join(inflateDir, "sea", "app.cjs"), `const { ServerInterfaceImpl, ServerRequestHandler, WebSocketManager, initGlobals, DBManager, App, LoggerHandler, LogProvider, LocalCache, ClusterCache } = require("./lib.cjs");
70
-
71
- async function main() {
72
- const PORT = process.env["PORT"] ? process.env["PORT"] : 8080;
73
- const logProvider = new LogProvider();
74
- const localCache = new LocalCache();
75
- const cache = new ClusterCache();
76
- const webSocketManager = new WebSocketManager();
77
- const dbManager = new DBManager();
78
- await initGlobals();
79
- const serverInterface = new ServerInterfaceImpl({
80
- cache,
81
- localCache,
82
- logProvider,
83
- wsManager: webSocketManager,
84
- logger: logProvider.getLogger("server"),
85
- dbManager,
86
- port: PORT
87
- });
88
-
89
- await Promise.all([${DBCONFIGLIST}]);
90
-
91
- ${!WSLIST ? "" : `\n webSocketManager.replaceALLWS(await Promise.all([${WSLIST}]))`}
92
- const app = new App({
93
- onUpgrade: webSocketManager.onUpgrade
94
- });
95
- ${SERVERCONFIGLIST ? `\n await Promise.all([${SERVERCONFIGLIST}].filter(config=>config.preload).map(config=>config.preload(serverInterface)));\n` : ""}
96
- app.use(ServerRequestHandler(serverInterface));
97
- app.use(LoggerHandler());
98
- ${services.map(service => {
99
- const servicePath = getServicePath(service);
100
- return `${getCORSConfigPath(servicePath) ? `app.use(server.middleware.cors((await import("../${service}/cors.js")).default));` : ""}`
101
- })}
102
- ${services.map(service => {
103
- const servicePath = getServicePath(service);
104
- return `${getAuthConfigPath(servicePath) ? `app.use(server.middleware.session((await import("../${service}/auth.js")).default));` : ""}`
105
- })}
106
- ${services.map(service => `
107
- app.use(await (await import("./${join(service, "api-router.js")}")).setupRouter());
108
- app.use(await (await import("./${join(service, "static-router.js")}")).setupRouter())`).join("\n")}
109
- ${SERVERCONFIGLIST ? `\n await Promise.all([${SERVERCONFIGLIST}].filter(config=>config.load).map(config=>config.load(serverInterface)));\n` : ""}
110
-
111
-
112
- await app.listen(PORT);
113
- ${SERVERCONFIGLIST ? `\n await Promise.all([${SERVERCONFIGLIST}].filter(config=>config.start).map(config=>config.start(serverInterface)));` : ""}
114
- }
115
- main().catch(e=>console.error(e));
116
- `
117
- );
118
- }
119
-
120
- export async function inflateServiceForSea(logger: Logger, inflateDir: string, service: string, servicePath: string/*, serviceMigrations: string[]*/, serviceRouteFileMap: RouteFileMap, serviceStaticFileMap: StaticFileMap) {
121
- const migrationsFolderPath = getMigrationsPath(servicePath);
122
-
123
- const serviceMigrations: string[] = migrationsFolderPath ? migration.getSortedMigrations(migrationsFolderPath) : [];
124
- writeFile(logger, join(inflateDir, "sea", service, "api-router.js"), `import { appendAPIModule, Router } from "./../lib.cjs";\n
125
- export async function setupRouter() {
126
- const router = new Router();
127
-
128
- ${Object.keys(serviceRouteFileMap)
129
- .map(filePath => serviceRouteFileMap[filePath])
130
- .filter(data => data.previewMethod === "api")
131
- .map(data => data.routes.map(r => {
132
- const rPath = r.inflatePath;
133
- if (rPath) {
134
- const apiInflatedPath = join("..", "..", service, "http", rPath + ".api.js");
135
- return ` await appendAPIModule(router, "../../${service}/http", "./${apiInflatedPath}", (await import("./${apiInflatedPath}")).default);`;
136
- } else {
137
- return "";
138
- }
139
- }).filter(l => l)[0])
140
- .join("\n")}
141
-
142
- return router;
143
- }`);
144
-
145
- writeFile(logger, join(inflateDir, "sea", service, "migration-up.js"), `import { migration } from "./../lib.cjs";\n
146
- export async function runMigrations(db) {
147
- await migration.init(db);
148
- ${serviceMigrations.map(file => {
149
- const name = `${file.substring(0, file.length - extname(file).length)}`;
150
- return ` await migration.up.module(db, "${name}", (await import("../../${service}/migration/${name}.js")).default)`;
151
- }).join("\n")}
152
- }`);
153
-
154
- writeFile(logger, join(inflateDir, "sea", service, "migration-down.js"), `import { migration } from "./../lib.cjs";\n
155
- export async function runMigrations(db) {
156
- await migration.init(db);
157
- ${serviceMigrations.reverse().map(file => {
158
- const name = `${file.substring(0, file.length - extname(file).length)}`;
159
- return ` await migration.down.module(db, "${name}", (await import("../../${service}/migration/${name}.js")).default)`;
160
- }).join("\n")}
161
- }`);
162
-
163
- const staticFiles = Object.keys(serviceStaticFileMap);
164
- /*if (staticFiles.length !== 0) {
165
- writeFile(logger, join(inflateDir, "sea", service, "static.base64.json"), JSON.stringify(serviceStaticFileMap));
166
- }*/
167
- writeFile(logger, join(inflateDir, "sea", service, "static-router.js"), `import { appendAPIModule, Router } from "./../lib.cjs";\n
168
- export async function setupRouter() {
169
- const router = new Router();
170
- ${staticFiles.length === 0 ? "" : `
171
- ${staticFiles.map((filePath) => {
172
- return ` router.get("${serviceStaticFileMap[filePath].path}", async (_, res) => {
173
- return res.asyncEnd({
174
- status: 200,
175
- headers: {
176
- ["Content-Type"]: "${serviceStaticFileMap[filePath].contentType}"
177
- },
178
- body: Buffer.from("${serviceStaticFileMap[filePath].body.toString("base64")}", "base64")
179
- });
180
- });`;
181
- }).join("\n")}
182
- `}
183
- return router;
184
- }`);
185
-
186
- }
187
-
188
- function writeFile(logger: Logger, path: string, buffer: Buffer | string) {
189
- logger.log("writing [%s]", relative(cwd(), path));
190
- mkdirSync(dirname(path), {
191
- recursive: true
192
- });
193
- writeFileSync(path, buffer);
194
- }
@@ -1,96 +0,0 @@
1
- import { InflateError } from "../common/jsx.js";
2
- import { Logger, Router } from "@miqro/core";
3
- import { RouteFileMap, setupHTTPRouter, StaticFileMap } from "./setup-http.js";
4
- //import { WSMapConfig } from "./utils/websocketmanager.js";
5
- //import { ServerConfigMap, setupServerConfig } from "./setup-server-config.js";
6
- import { assertGlobalTampered } from "../services/globals.js";
7
- import { getServicePath } from "../common/paths.js";
8
- import { inflateWSConfig } from "./setup-ws.js";
9
- import { inflateAppForSea, inflateServiceForSea } from "./inflate-sea.js";
10
- import { ServerInterface, WSConfig } from "../types.js";
11
- import { LogConfigMap, setupLogConfig } from "./setup-log.js";
12
-
13
- export interface InflateAppOptions {
14
- logger?: Logger;
15
- services: string[];
16
- //dbManager: DBManager;
17
- inflateDir: string | undefined | false;
18
- inflateSea: boolean;
19
- //editor: boolean;
20
- //inflateTests: boolean;
21
- hotreload?: boolean;
22
- serverInterface: ServerInterface;
23
- }
24
-
25
- export async function inflateApp({ serverInterface, logger, hotreload, services/*, dbManager*/, inflateDir, inflateSea/*, editor, inflateTests*/ }: InflateAppOptions): Promise<[Router, InflateError[] | null, RouteFileMap, WSConfig[]/*, ServerConfigMap*/, LogConfigMap]> {
26
- logger.trace("inflateApp");
27
- const errors: InflateError[] = [];
28
- //const migrations: string[] = [];
29
- let routeFileMap: RouteFileMap = {};
30
- const wsConfigList: WSConfig[] = [];
31
- const router = new Router();
32
- const logConfigMap: LogConfigMap = {};
33
- //const serverConfigMap: ServerConfigMap = {};
34
-
35
- router.use(assertGlobalTampered);
36
-
37
- /*if (editor) {
38
- logger.info("setting up editor on %s", BASEEDITOR_PATH);
39
- const editorRouter = await createEditorRouter();
40
- router.use(editorRouter);
41
- logger.info("setting up ws on [%s]", LOG_SOCKET_PATH);
42
- wsConfigList.push(editorWSConfig);
43
- serverConfigMap[EDITOR_CONFIG_KEY] = editorServerConfig;
44
- }*/
45
-
46
-
47
-
48
- for (const service of services) {
49
- const serviceRouteFileMap: RouteFileMap = {};
50
- const serviceStaticFileMap: StaticFileMap | null = inflateSea ? {} : null;
51
- const servicePath = getServicePath(service);
52
-
53
- /*const migrationsFolderPath = getMigrationsPath(servicePath);
54
-
55
- const serviceMigrations: string[] = migrationsFolderPath ? migration.getSortedMigrations(migrationsFolderPath) : [];*/
56
-
57
- /*const db = dbManager.getDB(service) ? dbManager.getDB(service) : await setupDB(logger, service, dbManager, inflateDir);;
58
-
59
- if (db && (cluster.isPrimary || process.env["CLUSTER_NODE_NUMBER"] === "0")) {
60
- await runMigrations(logger, db, servicePath, service, inflateDir, serviceMigrations);
61
- }
62
- if (db) {
63
- migrations.push(...serviceMigrations);
64
- }*/
65
-
66
- //await setupDB(logger, service, dbConfigList, inflateDir);
67
-
68
- await setupLogConfig(logger, servicePath, service, logConfigMap, inflateSea ? inflateDir : false, errors);
69
-
70
- router.use(await setupHTTPRouter(serverInterface, logger, hotreload ? hotreload : false, servicePath, service, serviceRouteFileMap, serviceStaticFileMap, inflateDir, inflateSea, errors));
71
- routeFileMap = {
72
- ...routeFileMap,
73
- ...serviceRouteFileMap
74
- };
75
-
76
- await inflateWSConfig(logger, servicePath, service, wsConfigList, inflateSea ? inflateDir : undefined, errors);
77
-
78
- //await setupServerConfig(logger, servicePath, service, serverConfigMap, inflateSea ? inflateDir : undefined, errors);
79
-
80
- if (inflateDir && inflateSea) {
81
- await inflateServiceForSea(logger, inflateDir, service, servicePath /*, serviceMigrations*/, serviceRouteFileMap, serviceStaticFileMap);
82
- }
83
-
84
- /*if (inflateTests) {
85
- await setupTests(logger, servicePath);
86
- }*/
87
- }
88
-
89
- if (inflateDir && inflateSea) {
90
- await inflateAppForSea(logger, inflateDir, services);
91
- }
92
-
93
- router.use(assertGlobalTampered);
94
-
95
- return errors.length === 0 ? [router, null, routeFileMap/*, migrations*/, wsConfigList/*, serverConfigMap*/, logConfigMap] : [router, errors, routeFileMap/*, migrations*/, wsConfigList/*, serverConfigMap*/, logConfigMap];
96
- }
package/src/inflate/md.ts DELETED
@@ -1,20 +0,0 @@
1
-
2
- import * as showdown from "showdown";
3
- import { readFileSync } from "node:fs";
4
- import { Logger } from "@miqro/core";
5
-
6
- export function inflateMD2HTML(inFile: string, logger?: Logger): string {
7
- try {
8
- const converter = new (showdown as any).default.Converter();
9
- converter.setFlavor('github');
10
- /*converter.setOption("tables", true);
11
- converter.setOption("rawHeaderId", true);*/
12
- const text = readFileSync(inFile).toString();
13
- const html = converter.makeHtml(text);
14
- return html;
15
- } catch (e) {
16
- logger?.error("error with: " + inFile);
17
- logger?.error(e);
18
- throw e;
19
- }
20
- }
@@ -1,40 +0,0 @@
1
- import { Logger, Router, SessionHandler } from "@miqro/core";
2
- import { importAuthModule, InflateError, inflateJSX } from "../common/jsx.js";
3
- import { getAuthConfigPath } from "../common/paths.js";
4
- import { basename, dirname, join, relative, resolve } from "node:path";
5
- import { mkdirSync, writeFileSync } from "node:fs";
6
- import { cwd } from "node:process";
7
-
8
- export async function setupAUTH(logger: Logger, servicePath: string, service: string, mainRouter: Router, inflateDir: string | undefined | false, inflateSea: boolean, errors: InflateError[]) {
9
- const authPath = getAuthConfigPath(servicePath); //resolve(process.cwd(), service, "auth.ts");
10
-
11
- if (authPath) {
12
- try {
13
- const authModule = await importAuthModule(authPath, logger);
14
- logger.debug("setting up authentication from [%s]", join(service, basename(authPath)));
15
- mainRouter.use(SessionHandler(authModule));
16
-
17
- if (inflateDir && inflateSea) {
18
- const inflatePath = resolve(inflateDir, service, "auth.js");
19
- mkdirSync(dirname(inflatePath), {
20
- recursive: true
21
- });
22
- logger.log("writing [%s]", relative(cwd(), inflatePath));
23
- writeFileSync(inflatePath, await inflateJSX(authPath, {
24
- embemedJSX: false,
25
- minify: false,
26
- useExport: true,
27
- logger
28
- }));
29
- }
30
-
31
- } catch (e) {
32
- errors.push({
33
- filePath: authPath,
34
- error: e
35
- });
36
- logger.error("error with " + authPath);
37
- logger.error(e);
38
- }
39
- }
40
- }
@@ -1,40 +0,0 @@
1
- import { mkdirSync, writeFileSync } from "node:fs";
2
- import { importCORSModule, InflateError, inflateJSX } from "../common/jsx.js";
3
- import { getCORSConfigPath } from "../common/paths.js";
4
- import { CORS, Logger, Router } from "@miqro/core";
5
- import { basename, dirname, join, relative, resolve } from "node:path";
6
- import { cwd } from "node:process";
7
-
8
- export async function setupCORS(logger: Logger, servicePath: string, service: string, mainRouter: Router, inflateDir: string | undefined | false, inflateSea: boolean, errors: InflateError[]) {
9
- const corsPath = getCORSConfigPath(servicePath);
10
-
11
- if (corsPath) {
12
- try {
13
- const corsOptions = await importCORSModule(corsPath, logger);
14
- logger.debug("setting up cors from [%s]", join(service, basename(corsPath)));
15
- mainRouter.use(CORS(corsOptions));
16
-
17
- if (inflateDir && inflateSea) {
18
- const inflatePath = resolve(inflateDir, service, "cors.js");
19
- mkdirSync(dirname(inflatePath), {
20
- recursive: true
21
- });
22
- logger.log("writing [%s]", relative(cwd(), inflatePath));
23
- writeFileSync(inflatePath, await inflateJSX(corsPath, {
24
- embemedJSX: false,
25
- minify: false,
26
- useExport: true,
27
- logger
28
- }));
29
- }
30
-
31
- } catch (e) {
32
- errors.push({
33
- filePath: corsPath,
34
- error: e
35
- });
36
- logger.error("error with " + corsPath);
37
- logger.error(e);
38
- }
39
- }
40
- }