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
@@ -1,181 +0,0 @@
1
- import { APIRoute } from "@miqro/core";
2
- import { existsSync, readdirSync, statSync } from "node:fs";
3
- import { basename, dirname, extname, join, relative, resolve, sep } from "node:path";
4
- import { BASE_PATH } from "../../../../../common/constants.server.js";
5
- import { AdminRequest } from "../../../../../common/admin-interface.js";
6
-
7
- export interface ScannedFile {
8
- filePath: string;
9
- ext: string;
10
- fileName: string;
11
- name: string;
12
- subExt: string;
13
- subName: string;
14
- language: string;
15
- previewPath?: string;
16
- dirs: string[];
17
- apiPreview?: {
18
- path: string;
19
- method: string;
20
- }[];
21
- }
22
-
23
- export default {
24
- method: "GET",
25
- path: "/scan",
26
- description: "admin editor file scan endpoint",
27
- middleware: [server.middleware.json()],
28
- request: {
29
- body: false
30
- },
31
- response: {
32
- status: [200, 400]
33
- },
34
- handler: async (req: AdminRequest, res) => {
35
- const admin = req.editor;
36
- const services = admin ? admin.getServices() : ["."];
37
- return res.json({
38
- files: scanDir(req),
39
- services
40
- });
41
- },
42
- } as APIRoute;
43
-
44
- export function scanDir(req: AdminRequest, basePath: string = BASE_PATH, ret: ScannedFile[] = []): ScannedFile[] {
45
- const admin = req.editor;
46
- const services = admin ? admin.getServices() : ["."];
47
- services.forEach(service => {
48
- scanDirInternal(req, resolve(basePath, service), ret);
49
- });
50
- return ret;
51
- }
52
-
53
- function scanDirInternal(req, path: string = BASE_PATH, ret: ScannedFile[] = []): ScannedFile[] {
54
- if (!existsSync(path)) {
55
- return ret;
56
- }
57
- const files = readdirSync(path);
58
- for (const file of files) {
59
- if (shouldIgnoreFile(file)) {
60
- continue;
61
- }
62
- const filePath = resolve(path, file);
63
- if (statSync(filePath).isDirectory()) {
64
- scanDirInternal(req, filePath, ret);
65
- continue;
66
- } else {
67
- const ext = extname(filePath);
68
- const fileName = basename(filePath);
69
- const name = fileName.substring(0, fileName.length - ext.length);
70
- const subExt = extname(name);
71
- const subName = name.substring(0, name.length - subExt.length);
72
-
73
- ret.push({
74
- dirs: getFileDirs(relative(BASE_PATH, filePath)),
75
- language: getLanguage(filePath),
76
- filePath: relative(BASE_PATH, filePath),
77
- ext,
78
- fileName,
79
- name,
80
- subExt,
81
- subName,
82
- previewPath: getPreview(req, filePath),
83
- apiPreview: getAPIPreview(req, filePath)
84
- });
85
- }
86
- }
87
- return ret;
88
- }
89
-
90
- function shouldIgnoreFile(file) {
91
- return file === ".git" || file === ".types" || file === ".DS_Store" || file === "node_modules";
92
- }
93
-
94
- function getFileDirs(filePath: string): string[] {
95
- const dirs: string[] = [];
96
- let dir = dirname(filePath);
97
- while (dir !== sep && dir !== "" && dir !== "." && dir !== BASE_PATH) {
98
-
99
- dirs.push(dir);
100
- dir = dirname(dir);
101
-
102
- }
103
- return dirs.reverse().map(d => basename(d));
104
-
105
- }
106
-
107
- export function getLanguage(filePath: string): string {
108
- const ext = extname(filePath);
109
- const fileName = basename(filePath);
110
- switch (ext.toLocaleLowerCase()) {
111
- case ".py":
112
- return "python";
113
- case ".sh":
114
- return "bash";
115
- case ".webmanifest":
116
- case ".json":
117
- return "json";
118
- case ".xml":
119
- return "xml";
120
- case ".jsx":
121
- case ".js":
122
- return "javascript";
123
- case ".tsx":
124
- case ".ts":
125
- case "d.ts":
126
- return "typescript";
127
- case ".htm":
128
- case ".html":
129
- return "html";
130
- case ".scss":
131
- case ".css":
132
- return "css";
133
- case ".md":
134
- return "markdown";
135
- case ".c":
136
- return "c";
137
- case ".h":
138
- case ".cpp":
139
- return "cpp";
140
- case ".yml":
141
- case ".yaml":
142
- return "yaml";
143
- case ".txt":
144
- case ".log":
145
- return "text";
146
- default:
147
- switch (fileName) {
148
- case "dockerfile":
149
- return "dockerfile";
150
- case ".gitignore":
151
- return "text";
152
- }
153
- return "text";
154
- }
155
- }
156
-
157
- export function getPreview(req: AdminRequest, filePath: string): undefined | string {
158
- const admin = req.editor;
159
- const inflateData = admin ? admin.getRouteFileMap()[filePath] : undefined;
160
- if (inflateData) {
161
- return inflateData.previewMethod === "html" ? inflateData.routes[0].path : undefined;
162
- }
163
- return undefined;
164
- }
165
-
166
- export function getAPIPreview(req, filePath: string): undefined | {
167
- path: string;
168
- method: string;
169
- }[] {
170
- const admin = req.editor;
171
- const inflateData = admin ? admin.getRouteFileMap()[filePath] : undefined;
172
- if (inflateData) {
173
- return inflateData.previewMethod === "api" ? inflateData.routes.map(r => {
174
- return {
175
- path: r.path,
176
- method: r.method ? r.method : "GET"
177
- };
178
- }) : undefined;
179
- }
180
- return undefined;
181
- }
@@ -1,41 +0,0 @@
1
- import { APIRoute } from "@miqro/core";
2
- import { existsSync, mkdirSync, writeFileSync } from "node:fs";
3
- import { getPath } from "./read.api.js";
4
- import { dirname } from "node:path";
5
-
6
- export default {
7
- middleware: [server.middleware.json()],
8
- method: "POST",
9
- path: "/write",
10
- description: "admin editor file write endpoint",
11
- request: {
12
- body: {
13
- path: "string",
14
- contents: "string",
15
- override: "boolean?"
16
- }
17
- },
18
- response: {
19
- status: [200, 400],
20
- body: {
21
- message: "string"
22
- }
23
- },
24
- handler: async (req, res) => {
25
- const { path, contents, override } = req.body;
26
- await writeFile(path, contents, override);
27
- return res.json({
28
- message: "OK"
29
- });
30
- }
31
- } as APIRoute;
32
-
33
- async function writeFile(path: string, contents: string, override?: boolean) {
34
- if (existsSync(getPath(path)) && !override) {
35
- throw new Error("file already exists!");
36
- }
37
- mkdirSync(dirname(getPath(path)), {
38
- recursive: true
39
- });
40
- writeFileSync(getPath(path), contents);
41
- }
@@ -1,53 +0,0 @@
1
- import { APIRoute } from "@miqro/core";
2
- import { relative } from "node:path";
3
- import { BASE_PATH } from "../../../../../common/constants.server.js";
4
- import { AdminRequest } from "../../../../../common/admin-interface.js";
5
-
6
- export default {
7
- method: "POST",
8
- path: "/reload",
9
- description: "admin editor server reload endpoint. reloads the server without closing the port",
10
- middleware: [],
11
- request: {
12
- body: false
13
- },
14
- response: {
15
- status: [200, 400],
16
- body: {
17
- message: "string",
18
- reloadString: "string",
19
- migrations: "string[]",
20
- errors: {
21
- allowNull: true,
22
- type: "array",
23
- arrayType: "object",
24
- properties: {
25
- filePath: "string",
26
- error: "string"
27
- }
28
- }
29
- }
30
- },
31
- handler: async (req: AdminRequest, res) => {
32
- const errors = await req?.editor?.reload();
33
- const parsedErrors = parseInflateErrors(errors);
34
- return res.json({
35
- message: "OK",
36
- reloadString: req.uuid,
37
- migrations: req?.editor?.getMigrations().map(m => m.name),
38
- errors: parsedErrors ? parsedErrors : []
39
- });
40
- },
41
- } as APIRoute;
42
-
43
- export function parseInflateErrors(errors: {
44
- filePath: string;
45
- error: Error;
46
- }[] | null) {
47
- return errors?.map(error => {
48
- return {
49
- filePath: relative(BASE_PATH, error.filePath),
50
- error: error.error.message
51
- }
52
- });
53
- }
@@ -1,52 +0,0 @@
1
- import { APIRoute } from "@miqro/core";
2
- import { relative } from "node:path";
3
- import { BASE_PATH } from "../../../../../common/constants.server.js";
4
- import { AdminRequest } from "../../../../../common/admin-interface.js";
5
-
6
- export default {
7
- method: "POST",
8
- path: "/restart",
9
- description: "admin editor server restart endpoint",
10
- middleware: [server.middleware.json()],
11
- request: {
12
- body: false
13
- },
14
- response: {
15
- status: [200, 400],
16
- body: {
17
- message: "string",
18
- reloadString: "string",
19
- migrations: "string[]",
20
- errors: {
21
- allowNull: true,
22
- type: "array",
23
- arrayType: "object",
24
- properties: {
25
- filePath: "string",
26
- error: "string"
27
- }
28
- }
29
- }
30
- },
31
- handler: async (req: AdminRequest, res) => {
32
- const errors = await req?.editor?.restart();
33
- return res.json({
34
- message: "OK",
35
- reloadString: req.uuid,
36
- migrations: req?.editor?.getMigrations().map(m => m.name),
37
- errors: parseInflateErrors(errors)
38
- });
39
- },
40
- } as APIRoute;
41
-
42
- export function parseInflateErrors(errors: {
43
- filePath: string;
44
- error: Error;
45
- }[] | null) {
46
- return errors?.map(error => {
47
- return {
48
- filePath: relative(BASE_PATH, error.filePath),
49
- error: error.error.message
50
- }
51
- });
52
- }
@@ -1,8 +0,0 @@
1
- //import "../../../../.types/browser.globals";
2
- import { Editor } from "../../../components/editor.js";
3
-
4
- window.addEventListener("load", async (event) => {
5
- jsx.define("editor-component", Editor, {
6
- shadowInit: false
7
- });
8
- });
@@ -1,39 +0,0 @@
1
- import { APIRoute, Response } from "@miqro/core";
2
- import { scanDir } from "./api/fs/scan.api.js";
3
- import { HTMLEncode } from "../../../common/html-encode.js";
4
- import { AdminRequest } from "../../../common/admin-interface.js";
5
-
6
- export default {
7
- description: "ADMIN EDITOR GUI",
8
- path: "/",
9
- method: "GET",
10
- handler: async (req: AdminRequest, res: Response) => {
11
- const admin = req.editor;
12
- const errors = admin ? admin.getInflateErrors() : [];
13
- const files = scanDir(req);
14
- const migrations = admin ? admin.getMigrations().map(m => m.name) : [];
15
- const services = admin ? admin.getServices() : ["."];
16
-
17
- return res.html("<!DOCTYPE html>" + String(<html>
18
- <head>
19
- <link rel="stylesheet" href="/admin/editor/style.css" />
20
- </head>
21
- <body>
22
-
23
- <script type="module" src="/admin/editor/editor.js" />
24
- <editor-component
25
- disablelog="true"
26
- disablepreview="true"
27
- disablereload="true"
28
- class="main-container"
29
- reloadstring={`${req?.uuid}`}
30
- migrations={`${HTMLEncode(JSON.stringify(migrations))}`}
31
- services={`${HTMLEncode(JSON.stringify(services))}`}
32
- errors={`${HTMLEncode(JSON.stringify(errors))}`}
33
- files={`${HTMLEncode(JSON.stringify(files))}`}>
34
- <noscript>Enable JavaScript</noscript>
35
- </editor-component>
36
- </body></html>)
37
- );
38
- }
39
- } as APIRoute;
package/editor/server.ts DELETED
@@ -1,57 +0,0 @@
1
- import { randomUUID } from "node:crypto";
2
- import { ServerConfig, ServerInterface } from "../src/types.js";
3
- import { BASEEDITOR_PATH } from "./common/constants.js";
4
- import { existsSync, readFileSync } from "node:fs";
5
- import { relative, resolve } from "node:path";
6
- import { ADMIN_EDITOR_AUTH_KEY, ADMIN_EDITOR_AUTH_QUERY } from "./auth.js";
7
- import { EditorAdminInterface } from "./common/admin-interface.js";
8
- //import { getEditorAdmin } from "./common/admin-interface.js";
9
-
10
- const ADMIN_EDITOR_BROWSER_OPEN_KEY = "ADMIN_EDITOR_BROWSER_OPEN_KEY$$";
11
-
12
- export default {
13
- preload: (serverInterface: ServerInterface, adminInterface: EditorAdminInterface) => {
14
- //console.dir(server);
15
- if (serverInterface?.isPrimaryWorker()) {
16
- const cache = (adminInterface ? adminInterface.getCache() : serverInterface.cache);
17
- if (!cache.has(ADMIN_EDITOR_AUTH_KEY)) {
18
- const adminKEYPath = resolve(".admin_key");
19
- if (existsSync(adminKEYPath)) {
20
- serverInterface.logger.warn("loading static ADMIN_KEY from [%s]", relative(process.cwd(), adminKEYPath));
21
- cache.set(ADMIN_EDITOR_AUTH_KEY, readFileSync(adminKEYPath).toString().trim());
22
- } else {
23
- cache.set(ADMIN_EDITOR_AUTH_KEY, randomUUID());
24
- }
25
- }
26
- }
27
- },
28
- start: (serverInterface: ServerInterface, adminInterface: EditorAdminInterface) => {
29
- //console.dir(server);
30
- const cache = (adminInterface ? adminInterface.getCache() : serverInterface.cache);
31
- if (!cache.has(ADMIN_EDITOR_BROWSER_OPEN_KEY)) {
32
-
33
- const KEY = cache.get(ADMIN_EDITOR_AUTH_KEY);
34
-
35
- const adminPath = `${BASEEDITOR_PATH}?${ADMIN_EDITOR_AUTH_QUERY}=${KEY}`;
36
-
37
- if (serverInterface?.isPrimaryWorker()) {
38
- serverInterface.logger.log("\n\n\tADMIN_EDITOR\n\n\t%s\n\n", adminPath);
39
- }
40
-
41
- //const DEFAULT_OPEN = process.platform === "win32" ? "explorer" : process.platform === "darwin" ? "open" : "xdg-open";
42
-
43
- //const OPEN = process.env["BROWSER"] ? process.env["BROWSER"] === "none" ? false : process.env["BROWSER"] : DEFAULT_OPEN;
44
-
45
- if (serverInterface.isPrimaryWorker()) {
46
- cache.set(ADMIN_EDITOR_BROWSER_OPEN_KEY, true);
47
- try {
48
- serverInterface.openBrowser(`${BASEEDITOR_PATH}?${ADMIN_EDITOR_AUTH_QUERY}=${KEY}`);
49
- //serverInterface.logger.log(`${OPEN} "${adminPath}"`);
50
- //execSync(`${OPEN} "${adminPath}"`);
51
- } catch (e) {
52
- serverInterface.logger.error(e.message);
53
- }
54
- }
55
- }
56
- }
57
- } as ServerConfig;
Binary file
@@ -1,20 +0,0 @@
1
- import { useElement, useRefresh, useQuery, define, Router, Link, useState, useEffect, useRef, createElement, Fragment } from "../../node_modules/@miqro/jsx-dom/build/jsx-dom.esm.bundle.js";
2
- globalThis.jsx = Object.freeze({
3
- useState,
4
- useEffect,
5
- useQuery,
6
- useRef,
7
- useElement,
8
- useRefresh,
9
- createElement,
10
- Fragment,
11
- Link,
12
- Router
13
- });
14
- globalThis.browser = Object.freeze({
15
- define
16
- });
17
-
18
- import * as lib from "../../editor/components/bundle.js";
19
-
20
- export const editor = lib;
Binary file
Binary file
Binary file
@@ -1,19 +0,0 @@
1
- {
2
- "name": "editor",
3
- "short_name": "editor",
4
- "icons": [
5
- {
6
- "src": "/android-chrome-192x192.png",
7
- "sizes": "192x192",
8
- "type": "image/png"
9
- },
10
- {
11
- "src": "/android-chrome-512x512.png",
12
- "sizes": "512x512",
13
- "type": "image/png"
14
- }
15
- ],
16
- "theme_color": "#ffffff",
17
- "background_color": "#ffffff",
18
- "display": "standalone"
19
- }
package/editor/ws.ts DELETED
@@ -1,15 +0,0 @@
1
- import { WSConfig } from "../src/types.js";
2
- import { LOG_SOCKET_PATH } from "./common/constants.js";
3
- import { AdminRequest } from "./common/admin-interface.js";
4
-
5
- export default {
6
- path: LOG_SOCKET_PATH,
7
- validate(req: AdminRequest) {
8
- const admin = req.editor;
9
- const cache = (admin ? admin.getCache() : req.server.cache);
10
-
11
- const KEY = cache.get("AUTH_KEY");
12
- const cookieToken = req.cookies["auth"];
13
- return cookieToken === KEY ? true : false;
14
- },
15
- } as WSConfig;
package/sea/base64.js DELETED
@@ -1,3 +0,0 @@
1
- import { readFileSync } from "node:fs";
2
-
3
- console.log(Buffer.from(readFileSync(process.argv[2])).toString("base64"));
package/sea/compile.sh DELETED
@@ -1,127 +0,0 @@
1
- #!/usr/bin/env sh
2
-
3
- export NODE_OPTIONS="--experimental-sqlite"
4
-
5
- sh sea/precompile.sh
6
-
7
- NODE_BIN="sh sea/node.sh"
8
- SIGN_REMOVE_BIN="sh sea/sign-remove.sh"
9
- SIGN_ADD_BIN="sh sea/sign-add.sh"
10
- ESBUILD_BIN="sh sea/esbuild.sh"
11
- TSC_BIN="sh sea/tsc.sh"
12
-
13
- #types.json
14
- sh sea/copy-types.sh
15
- $NODE_BIN sea/generate-global-types-asset-json.js
16
-
17
- #version.tag
18
- $NODE_BIN sea/version.tag.js
19
-
20
- rm -Rf bin;
21
- mkdir -p bin/;
22
- rm -Rf build;
23
- mkdir -p build/;
24
-
25
- #check source code with tsc
26
- echo $TSC_BIN
27
- $TSC_BIN
28
-
29
- #CURRENT_GIT_BRANCH=`git rev-parse --abbrev-ref HEAD`
30
- #CURRENT_GIT_SHORT_HASH=`git rev-parse --short HEAD`
31
- #CURRENT_DATE=`date +"%y-%m-%d"`
32
- #VERSION_TAG="${CURRENT_DATE}_${CURRENT_GIT_SHORT_HASH}_${CURRENT_GIT_BRANCH}"
33
-
34
- #echo $VERSION_TAG > sea/version.tag
35
-
36
- # jsx.js
37
- cp node_modules/@miqro/jsx-dom/build/jsx-dom.esm.bundle.js build/jsx.dom.js
38
-
39
- # postject.js
40
- $ESBUILD_BIN node_modules/postject/dist/cli.js --log-level=silent --bundle --platform=node --outfile=build/postject.cjs
41
- $NODE_BIN sea/base64.js build/postject.cjs > build/postject.base64.cjs
42
- $NODE_BIN sea/base64.js sea/basic-compile.sh > sea/basic-compile.base64.sh
43
- POSTJECT_BIN="${NODE_BIN} build/postject.cjs"
44
-
45
- # editor.bundle.js
46
- $ESBUILD_BIN --log-level=silent --external:node:process --external:node:path --platform=neutral --bundle --loader:.js=jsx --jsx-factory=jsx.createElement --jsx-fragment=jsx.Fragment sea/editor-assets/editor.bundle.in.mjs --outfile=build/editor.bundle.js
47
-
48
- # main.js
49
- $ESBUILD_BIN src/main.ts --log-level=silent --bundle --platform=node --outfile=build/main.js --external:sqlite3 --external:pg --external:esbuild
50
- #cp build/main.js build/main.bundle.cjs
51
-
52
- #lib.js
53
- $ESBUILD_BIN src/lib.ts --log-level=silent --bundle --platform=node --outfile=build/lib.cjs --external:sqlite3 --external:pg --external:esbuild --external:node:assert --external:node:util --external:node:path
54
-
55
- # sea-config.blob
56
-
57
- $NODE_BIN --experimental-sqlite --experimental-sea-config sea/config/sea-config-darwin-arm64.json
58
- $NODE_BIN --experimental-sea-config sea/config/sea-config-darwin-x64.json
59
-
60
- $NODE_BIN --experimental-sea-config sea/config/sea-config-linux-arm64.json
61
- $NODE_BIN --experimental-sea-config sea/config/sea-config-linux-x64.json
62
-
63
- #$NODE_BIN --experimental-sea-config sea/config/sea-config-win-arm64.json
64
- #$NODE_BIN --experimental-sea-config sea/config/sea-config-win-x64.json
65
-
66
- # bin/
67
-
68
- TARGET_BIN_NAME="miqro"
69
-
70
- TARGET_LINUX_X64="bin/linux-x64/${TARGET_BIN_NAME}"
71
- TARGET_LINUX_ARM64="bin/linux-arm64/${TARGET_BIN_NAME}"
72
-
73
- TARGET_DARWIN_ARM64="bin/darwin-arm64/${TARGET_BIN_NAME}"
74
- TARGET_DARWIN_X64="bin/darwin-x64/${TARGET_BIN_NAME}"
75
-
76
- #TARGET_WIN_X64="bin/win-x64/${TARGET_BIN_NAME}.exe"
77
- #TARGET_WIN_ARM64="bin/win-arm64/${TARGET_BIN_NAME}.exe"
78
-
79
- mkdir -p bin/linux-x64
80
- mkdir -p bin/linux-arm64
81
-
82
- mkdir -p bin/darwin-x64
83
- mkdir -p bin/darwin-arm64
84
-
85
- #mkdir -p bin/win-x64
86
- #mkdir -p bin/win-arm64
87
-
88
- cp sea/deps/nodejs/darwin/arm64/node "${TARGET_DARWIN_ARM64}"
89
- cp sea/deps/nodejs/darwin/x64/node "${TARGET_DARWIN_X64}"
90
-
91
- cp sea/deps/nodejs/linux/x64/node "${TARGET_LINUX_X64}"
92
- cp sea/deps/nodejs/linux/arm64/node "${TARGET_LINUX_ARM64}"
93
-
94
- #cp sea/deps/nodejs/win/x64/node.exe "${TARGET_WIN_X64}"
95
- #cp sea/deps/nodejs/win/x64/node.exe "${TARGET_WIN_ARM64}"
96
-
97
- $SIGN_REMOVE_BIN "${TARGET_DARWIN_ARM64}"
98
- $SIGN_REMOVE_BIN "${TARGET_DARWIN_X64}"
99
-
100
- chmod +w "${TARGET_LINUX_ARM64}"
101
- chmod +w "${TARGET_LINUX_X64}"
102
-
103
- chmod +w "${TARGET_DARWIN_ARM64}"
104
- chmod +w "${TARGET_DARWIN_X64}"
105
-
106
- #chmod +w "${TARGET_WIN_X64}"
107
- #chmod +w "${TARGET_WIN_ARM64}"
108
-
109
- # copy main script
110
-
111
- cp sea/main.sh bin/$TARGET_BIN_NAME
112
- chmod +x bin/$TARGET_BIN_NAME
113
-
114
- # inject blob
115
-
116
- $POSTJECT_BIN "${TARGET_DARWIN_ARM64}" NODE_SEA_BLOB build/sea-prep-darwin-arm64.blob --sentinel-fuse NODE_SEA_FUSE_fce680ab2cc467b6e072b8b5df1996b2 --macho-segment-name NODE_SEA
117
- $SIGN_ADD_BIN "${TARGET_DARWIN_ARM64}"
118
- $POSTJECT_BIN "${TARGET_DARWIN_X64}" NODE_SEA_BLOB build/sea-prep-darwin-x64.blob --sentinel-fuse NODE_SEA_FUSE_fce680ab2cc467b6e072b8b5df1996b2 --macho-segment-name NODE_SEA
119
- $SIGN_ADD_BIN "${TARGET_DARWIN_X64}"
120
-
121
- $POSTJECT_BIN "${TARGET_LINUX_ARM64}" NODE_SEA_BLOB build/sea-prep-linux-arm64.blob --sentinel-fuse NODE_SEA_FUSE_fce680ab2cc467b6e072b8b5df1996b2
122
- $POSTJECT_BIN "${TARGET_LINUX_X64}" NODE_SEA_BLOB build/sea-prep-linux-x64.blob --sentinel-fuse NODE_SEA_FUSE_fce680ab2cc467b6e072b8b5df1996b2
123
-
124
- #$POSTJECT_BIN "${TARGET_WIN_X64}" NODE_SEA_BLOB build/sea-prep-win-x64.blob --sentinel-fuse NODE_SEA_FUSE_fce680ab2cc467b6e072b8b5df1996b2
125
- #$POSTJECT_BIN "${TARGET_WIN_ARM64}" NODE_SEA_BLOB build/sea-prep-win-arm64.blob --sentinel-fuse NODE_SEA_FUSE_fce680ab2cc467b6e072b8b5df1996b2
126
-
127
-