miqro 5.0.5 → 6.0.4

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 (372) hide show
  1. package/.eslintrc +15 -0
  2. package/README.md +618 -20
  3. package/bin/miqro +34 -0
  4. package/build/editor.bundle.js +61154 -0
  5. package/build/esm/editor/auth.d.ts +6 -0
  6. package/build/esm/editor/auth.js +42 -0
  7. package/build/esm/editor/auth.js.map +1 -0
  8. package/build/esm/editor/common/admin-interface.d.ts +36 -0
  9. package/build/esm/editor/common/admin-interface.js +45 -0
  10. package/build/esm/editor/common/admin-interface.js.map +1 -0
  11. package/build/esm/editor/common/constants.d.ts +4 -0
  12. package/build/esm/editor/common/constants.js +21 -0
  13. package/build/esm/editor/common/constants.js.map +1 -0
  14. package/build/esm/editor/common/constants.server.d.ts +2 -0
  15. package/build/esm/editor/common/constants.server.js +5 -0
  16. package/build/esm/editor/common/constants.server.js.map +1 -0
  17. package/build/esm/editor/common/editor-index.d.ts +2 -0
  18. package/build/esm/editor/common/editor-index.js +15 -0
  19. package/build/esm/editor/common/editor-index.js.map +1 -0
  20. package/build/esm/editor/common/html-encode.d.ts +1 -0
  21. package/build/esm/editor/common/html-encode.js +15 -0
  22. package/build/esm/editor/common/html-encode.js.map +1 -0
  23. package/build/esm/editor/common/log-socket.d.ts +13 -0
  24. package/build/esm/editor/common/log-socket.js +68 -0
  25. package/build/esm/editor/common/log-socket.js.map +1 -0
  26. package/build/esm/editor/common/templates.d.ts +11 -0
  27. package/build/esm/editor/common/templates.js +444 -0
  28. package/build/esm/editor/common/templates.js.map +1 -0
  29. package/build/esm/editor/components/api-preview.d.ts +11 -0
  30. package/build/esm/editor/components/api-preview.js +91 -0
  31. package/build/esm/editor/components/api-preview.js.map +1 -0
  32. package/build/esm/editor/components/editor.d.ts +16 -0
  33. package/build/esm/editor/components/editor.js +355 -0
  34. package/build/esm/editor/components/editor.js.map +1 -0
  35. package/build/esm/editor/components/file-browser.d.ts +37 -0
  36. package/build/esm/editor/components/file-browser.js +122 -0
  37. package/build/esm/editor/components/file-browser.js.map +1 -0
  38. package/build/esm/editor/components/file-editor-toolbar.d.ts +22 -0
  39. package/build/esm/editor/components/file-editor-toolbar.js +94 -0
  40. package/build/esm/editor/components/file-editor-toolbar.js.map +1 -0
  41. package/build/esm/editor/components/file-editor.d.ts +32 -0
  42. package/build/esm/editor/components/file-editor.js +60 -0
  43. package/build/esm/editor/components/file-editor.js.map +1 -0
  44. package/build/esm/editor/components/filter-query.d.ts +1 -0
  45. package/build/esm/editor/components/filter-query.js +23 -0
  46. package/build/esm/editor/components/filter-query.js.map +1 -0
  47. package/build/esm/editor/components/highlight-text-area.d.ts +11 -0
  48. package/build/esm/editor/components/highlight-text-area.js +139 -0
  49. package/build/esm/editor/components/highlight-text-area.js.map +1 -0
  50. package/build/esm/editor/components/log-viewer.d.ts +6 -0
  51. package/build/esm/editor/components/log-viewer.js +70 -0
  52. package/build/esm/editor/components/log-viewer.js.map +1 -0
  53. package/build/esm/editor/components/new-file.d.ts +10 -0
  54. package/build/esm/editor/components/new-file.js +118 -0
  55. package/build/esm/editor/components/new-file.js.map +1 -0
  56. package/build/esm/editor/components/scroll-query.d.ts +7 -0
  57. package/build/esm/editor/components/scroll-query.js +22 -0
  58. package/build/esm/editor/components/scroll-query.js.map +1 -0
  59. package/build/esm/editor/components/start-page.d.ts +13 -0
  60. package/build/esm/editor/components/start-page.js +31 -0
  61. package/build/esm/editor/components/start-page.js.map +1 -0
  62. package/build/esm/editor/http/admin/editor/api/fs/delete.api.d.ts +3 -0
  63. package/build/esm/editor/http/admin/editor/api/fs/delete.api.js +30 -0
  64. package/build/esm/editor/http/admin/editor/api/fs/delete.api.js.map +1 -0
  65. package/build/esm/editor/http/admin/editor/api/fs/read.api.d.ts +5 -0
  66. package/build/esm/editor/http/admin/editor/api/fs/read.api.js +50 -0
  67. package/build/esm/editor/http/admin/editor/api/fs/read.api.js.map +1 -0
  68. package/build/esm/editor/http/admin/editor/api/fs/rename.api.d.ts +4 -0
  69. package/build/esm/editor/http/admin/editor/api/fs/rename.api.js +40 -0
  70. package/build/esm/editor/http/admin/editor/api/fs/rename.api.js.map +1 -0
  71. package/build/esm/editor/http/admin/editor/api/fs/scan.api.d.ts +26 -0
  72. package/build/esm/editor/http/admin/editor/api/fs/scan.api.js +150 -0
  73. package/build/esm/editor/http/admin/editor/api/fs/scan.api.js.map +1 -0
  74. package/build/esm/editor/http/admin/editor/api/fs/write.api.d.ts +3 -0
  75. package/build/esm/editor/http/admin/editor/api/fs/write.api.js +39 -0
  76. package/build/esm/editor/http/admin/editor/api/fs/write.api.js.map +1 -0
  77. package/build/esm/editor/http/admin/editor/api/server/reload.api.d.ts +10 -0
  78. package/build/esm/editor/http/admin/editor/api/server/reload.api.js +46 -0
  79. package/build/esm/editor/http/admin/editor/api/server/reload.api.js.map +1 -0
  80. package/build/esm/editor/http/admin/editor/api/server/restart.api.d.ts +10 -0
  81. package/build/esm/editor/http/admin/editor/api/server/restart.api.js +46 -0
  82. package/build/esm/editor/http/admin/editor/api/server/restart.api.js.map +1 -0
  83. package/build/esm/editor/http/admin/editor/editor.js +8 -0
  84. package/build/esm/editor/http/admin/editor/editor.js.map +1 -0
  85. package/build/esm/editor/http/admin/editor/index.api.d.ts +3 -0
  86. package/build/esm/editor/http/admin/editor/index.api.js +22 -0
  87. package/build/esm/editor/http/admin/editor/index.api.js.map +1 -0
  88. package/build/esm/editor/server.d.ts +3 -0
  89. package/build/esm/editor/server.js +50 -0
  90. package/build/esm/editor/server.js.map +1 -0
  91. package/build/esm/editor/ws.d.ts +3 -0
  92. package/build/esm/editor/ws.js +12 -0
  93. package/build/esm/editor/ws.js.map +1 -0
  94. package/build/esm/src/bin/compile.d.ts +3 -0
  95. package/build/esm/src/bin/compile.js +31 -0
  96. package/build/esm/src/bin/compile.js.map +1 -0
  97. package/build/{utils/doc/md.d.ts → esm/src/bin/doc-md.d.ts} +2 -4
  98. package/build/{utils/doc/md.js → esm/src/bin/doc-md.js} +32 -18
  99. package/build/esm/src/bin/doc-md.js.map +1 -0
  100. package/build/esm/src/bin/generate-doc.d.ts +4 -0
  101. package/build/esm/src/bin/generate-doc.js +47 -0
  102. package/build/esm/src/bin/generate-doc.js.map +1 -0
  103. package/build/esm/src/bin/test.d.ts +3 -0
  104. package/build/esm/src/bin/test.js +68 -0
  105. package/build/esm/src/bin/test.js.map +1 -0
  106. package/build/esm/src/bin/types.d.ts +3 -0
  107. package/build/esm/src/bin/types.js +21 -0
  108. package/build/esm/src/bin/types.js.map +1 -0
  109. package/build/esm/src/cluster.js +11 -0
  110. package/build/esm/src/cluster.js.map +1 -0
  111. package/build/esm/src/common/arguments.d.ts +22 -0
  112. package/build/esm/src/common/arguments.js +310 -0
  113. package/build/esm/src/common/arguments.js.map +1 -0
  114. package/build/esm/src/common/assets.d.ts +11 -0
  115. package/build/esm/src/common/assets.js +121 -0
  116. package/build/esm/src/common/assets.js.map +1 -0
  117. package/build/esm/src/common/checksum.d.ts +19 -0
  118. package/build/esm/src/common/checksum.js +57 -0
  119. package/build/esm/src/common/checksum.js.map +1 -0
  120. package/build/esm/src/common/constants.d.ts +10 -0
  121. package/build/esm/src/common/constants.js +14 -0
  122. package/build/esm/src/common/constants.js.map +1 -0
  123. package/build/esm/src/common/content-type.d.ts +4 -0
  124. package/build/esm/src/common/content-type.js +82 -0
  125. package/build/esm/src/common/content-type.js.map +1 -0
  126. package/build/esm/src/common/esbuild.d.ts +17 -0
  127. package/build/esm/src/common/esbuild.js +79 -0
  128. package/build/esm/src/common/esbuild.js.map +1 -0
  129. package/build/esm/src/common/exit.d.ts +2 -0
  130. package/build/esm/src/common/exit.js +84 -0
  131. package/build/esm/src/common/exit.js.map +1 -0
  132. package/build/esm/src/common/fs.d.ts +8 -0
  133. package/build/esm/src/common/fs.js +17 -0
  134. package/build/esm/src/common/fs.js.map +1 -0
  135. package/build/esm/src/common/help.d.ts +3 -0
  136. package/build/esm/src/common/help.js +44 -0
  137. package/build/esm/src/common/help.js.map +1 -0
  138. package/build/esm/src/common/jsx.d.ts +52 -0
  139. package/build/esm/src/common/jsx.js +365 -0
  140. package/build/esm/src/common/jsx.js.map +1 -0
  141. package/build/esm/src/common/paths.d.ts +14 -0
  142. package/build/esm/src/common/paths.js +110 -0
  143. package/build/esm/src/common/paths.js.map +1 -0
  144. package/build/esm/src/common/watch.d.ts +3 -0
  145. package/build/esm/src/common/watch.js +74 -0
  146. package/build/esm/src/common/watch.js.map +1 -0
  147. package/build/esm/src/inflate/inflate-sea.d.ts +5 -0
  148. package/build/esm/src/inflate/inflate-sea.js +175 -0
  149. package/build/esm/src/inflate/inflate-sea.js.map +1 -0
  150. package/build/esm/src/inflate/inflate.d.ts +14 -0
  151. package/build/esm/src/inflate/inflate.js +65 -0
  152. package/build/esm/src/inflate/inflate.js.map +1 -0
  153. package/build/esm/src/inflate/md.d.ts +2 -0
  154. package/build/esm/src/inflate/md.js +19 -0
  155. package/build/esm/src/inflate/md.js.map +1 -0
  156. package/build/esm/src/inflate/setup-auth.d.ts +3 -0
  157. package/build/esm/src/inflate/setup-auth.js +38 -0
  158. package/build/esm/src/inflate/setup-auth.js.map +1 -0
  159. package/build/esm/src/inflate/setup-cors.d.ts +3 -0
  160. package/build/esm/src/inflate/setup-cors.js +38 -0
  161. package/build/esm/src/inflate/setup-cors.js.map +1 -0
  162. package/build/esm/src/inflate/setup-db.d.ts +8 -0
  163. package/build/esm/src/inflate/setup-db.js +99 -0
  164. package/build/esm/src/inflate/setup-db.js.map +1 -0
  165. package/build/esm/src/inflate/setup-http.d.ts +37 -0
  166. package/build/esm/src/inflate/setup-http.js +543 -0
  167. package/build/esm/src/inflate/setup-http.js.map +1 -0
  168. package/build/esm/src/inflate/setup-log.d.ts +7 -0
  169. package/build/esm/src/inflate/setup-log.js +37 -0
  170. package/build/esm/src/inflate/setup-log.js.map +1 -0
  171. package/build/esm/src/inflate/setup-server-config.d.ts +7 -0
  172. package/build/esm/src/inflate/setup-server-config.js +37 -0
  173. package/build/esm/src/inflate/setup-server-config.js.map +1 -0
  174. package/build/esm/src/inflate/setup-test.d.ts +2 -0
  175. package/build/esm/src/inflate/setup-test.js +22 -0
  176. package/build/esm/src/inflate/setup-test.js.map +1 -0
  177. package/build/esm/src/inflate/setup-ws.d.ts +4 -0
  178. package/build/esm/src/inflate/setup-ws.js +46 -0
  179. package/build/esm/src/inflate/setup-ws.js.map +1 -0
  180. package/build/esm/src/inflate/utils/sea-utils.d.ts +2 -0
  181. package/build/esm/src/inflate/utils/sea-utils.js +13 -0
  182. package/build/esm/src/inflate/utils/sea-utils.js.map +1 -0
  183. package/build/esm/src/lib.d.ts +13 -0
  184. package/build/esm/src/lib.js +17 -0
  185. package/build/esm/src/lib.js.map +1 -0
  186. package/build/esm/src/main.d.ts +2 -0
  187. package/build/esm/src/main.js +92 -0
  188. package/build/esm/src/main.js.map +1 -0
  189. package/build/esm/src/services/app.d.ts +88 -0
  190. package/build/esm/src/services/app.js +619 -0
  191. package/build/esm/src/services/app.js.map +1 -0
  192. package/build/esm/src/services/editor.d.ts +3 -0
  193. package/build/esm/src/services/editor.js +61 -0
  194. package/build/esm/src/services/editor.js.map +1 -0
  195. package/build/esm/src/services/globals.d.ts +3 -0
  196. package/build/esm/src/services/globals.js +139 -0
  197. package/build/esm/src/services/globals.js.map +1 -0
  198. package/build/esm/src/services/hot-reload.d.ts +1 -0
  199. package/build/esm/src/services/hot-reload.js +45 -0
  200. package/build/esm/src/services/hot-reload.js.map +1 -0
  201. package/build/esm/src/services/migrations.d.ts +4 -0
  202. package/build/esm/src/services/migrations.js +61 -0
  203. package/build/esm/src/services/migrations.js.map +1 -0
  204. package/build/esm/src/services/utils/cache.d.ts +19 -0
  205. package/build/esm/src/services/utils/cache.js +85 -0
  206. package/build/esm/src/services/utils/cache.js.map +1 -0
  207. package/build/esm/src/services/utils/cluster-cache.d.ts +20 -0
  208. package/build/esm/src/services/utils/cluster-cache.js +211 -0
  209. package/build/esm/src/services/utils/cluster-cache.js.map +1 -0
  210. package/build/esm/src/services/utils/cluster-ws.d.ts +24 -0
  211. package/build/esm/src/services/utils/cluster-ws.js +176 -0
  212. package/build/esm/src/services/utils/cluster-ws.js.map +1 -0
  213. package/build/esm/src/services/utils/db-manager.d.ts +20 -0
  214. package/build/esm/src/services/utils/db-manager.js +59 -0
  215. package/build/esm/src/services/utils/db-manager.js.map +1 -0
  216. package/build/esm/src/services/utils/get-route.d.ts +9 -0
  217. package/build/esm/src/services/utils/get-route.js +58 -0
  218. package/build/esm/src/services/utils/get-route.js.map +1 -0
  219. package/build/esm/src/services/utils/log.d.ts +17 -0
  220. package/build/esm/src/services/utils/log.js +74 -0
  221. package/build/esm/src/services/utils/log.js.map +1 -0
  222. package/build/esm/src/services/utils/server-interface.d.ts +41 -0
  223. package/build/esm/src/services/utils/server-interface.js +74 -0
  224. package/build/esm/src/services/utils/server-interface.js.map +1 -0
  225. package/build/esm/src/services/utils/websocketmanager.d.ts +23 -0
  226. package/build/esm/src/services/utils/websocketmanager.js +128 -0
  227. package/build/esm/src/services/utils/websocketmanager.js.map +1 -0
  228. package/build/esm/src/types.d.ts +166 -0
  229. package/build/esm/src/types.js +2 -0
  230. package/build/esm/src/types.js.map +1 -0
  231. package/build/jsx.dom.js +1585 -0
  232. package/build/lib.cjs +14009 -0
  233. package/build/postject.base64.cjs +1 -0
  234. package/editor/auth.ts +51 -0
  235. package/editor/common/admin-interface.ts +84 -0
  236. package/editor/common/constants.server.ts +5 -0
  237. package/editor/common/constants.ts +21 -0
  238. package/editor/common/editor-index.tsx +17 -0
  239. package/editor/common/html-encode.ts +14 -0
  240. package/editor/common/log-socket.tsx +82 -0
  241. package/editor/common/templates.ts +448 -0
  242. package/editor/components/api-preview.tsx +116 -0
  243. package/editor/components/editor.tsx +483 -0
  244. package/editor/components/file-browser.tsx +295 -0
  245. package/editor/components/file-editor-toolbar.tsx +187 -0
  246. package/editor/components/file-editor.tsx +122 -0
  247. package/editor/components/filter-query.tsx +22 -0
  248. package/editor/components/highlight-text-area.tsx +159 -0
  249. package/editor/components/log-viewer.tsx +110 -0
  250. package/editor/components/new-file.tsx +169 -0
  251. package/editor/components/scroll-query.tsx +22 -0
  252. package/editor/components/start-page.tsx +49 -0
  253. package/editor/http/admin/editor/api/fs/delete.api.tsx +32 -0
  254. package/editor/http/admin/editor/api/fs/read.api.tsx +55 -0
  255. package/editor/http/admin/editor/api/fs/rename.api.tsx +41 -0
  256. package/editor/http/admin/editor/api/fs/scan.api.tsx +181 -0
  257. package/editor/http/admin/editor/api/fs/write.api.tsx +41 -0
  258. package/editor/http/admin/editor/api/server/reload.api.ts +52 -0
  259. package/editor/http/admin/editor/api/server/restart.api.tsx +52 -0
  260. package/editor/http/admin/editor/editor.tsx +8 -0
  261. package/editor/http/admin/editor/font.ttf +0 -0
  262. package/editor/http/admin/editor/index.api.tsx +39 -0
  263. package/editor/http/admin/editor/style.css +620 -0
  264. package/editor/server.ts +57 -0
  265. package/editor/static/android-chrome-192x192.png +0 -0
  266. package/editor/static/android-chrome-512x512.png +0 -0
  267. package/editor/static/apple-touch-icon.png +0 -0
  268. package/editor/static/editor.bundle.in.mjs +20 -0
  269. package/editor/static/favicon-16x16.png +0 -0
  270. package/editor/static/favicon-32x32.png +0 -0
  271. package/editor/static/favicon.ico +0 -0
  272. package/editor/static/site.webmanifest +19 -0
  273. package/editor/ws.ts +15 -0
  274. package/package.json +43 -24
  275. package/package.json--OLD +36 -0
  276. package/sea/app.sh +33 -0
  277. package/sea/base64.js +3 -0
  278. package/sea/basic-compile.base64.sh +1 -0
  279. package/sea/basic-compile.sh +73 -0
  280. package/sea/basic-config.json +9 -0
  281. package/sea/compile.sh +124 -0
  282. package/sea/copy-types.sh +46 -0
  283. package/sea/editor-assets/editor.bundle.in.mjs +19 -0
  284. package/sea/esbuild.sh +31 -0
  285. package/sea/generate-global-types-asset-json.js +34 -0
  286. package/sea/install-esbuild.sh +53 -0
  287. package/sea/install-nodejs.sh +49 -0
  288. package/sea/main.sh +34 -0
  289. package/sea/node.sh +33 -0
  290. package/sea/node.version.tag +1 -0
  291. package/sea/precompile.sh +7 -0
  292. package/sea/release-tar.sh +5 -0
  293. package/sea/sign-add.sh +22 -0
  294. package/sea/sign-remove.sh +22 -0
  295. package/sea/tsc.sh +1 -0
  296. package/sea/types.json +1 -0
  297. package/src/bin/compile.ts +35 -0
  298. package/src/bin/doc-md.ts +210 -0
  299. package/src/bin/generate-doc.ts +55 -0
  300. package/src/bin/test.ts +92 -0
  301. package/src/bin/types.ts +22 -0
  302. package/src/cluster.ts +16 -0
  303. package/src/common/arguments.ts +366 -0
  304. package/src/common/assets.ts +124 -0
  305. package/src/common/checksum.ts +58 -0
  306. package/src/common/constants.ts +18 -0
  307. package/src/common/content-type.ts +84 -0
  308. package/src/common/esbuild.ts +94 -0
  309. package/src/common/exit.ts +91 -0
  310. package/src/common/fs.ts +17 -0
  311. package/src/common/help.ts +46 -0
  312. package/src/common/jsx.ts +414 -0
  313. package/src/common/paths.ts +117 -0
  314. package/src/common/watch.ts +80 -0
  315. package/src/inflate/inflate-sea.ts +193 -0
  316. package/src/inflate/inflate.ts +96 -0
  317. package/src/inflate/md.ts +20 -0
  318. package/src/inflate/setup-auth.ts +40 -0
  319. package/src/inflate/setup-cors.ts +40 -0
  320. package/src/inflate/setup-db.ts +113 -0
  321. package/src/inflate/setup-http.ts +643 -0
  322. package/src/inflate/setup-log.ts +44 -0
  323. package/src/inflate/setup-server-config.ts +47 -0
  324. package/src/inflate/setup-test.ts +23 -0
  325. package/src/inflate/setup-ws.ts +48 -0
  326. package/src/inflate/utils/sea-utils.ts +14 -0
  327. package/src/lib.ts +19 -0
  328. package/src/main.ts +87 -0
  329. package/src/services/app.ts +718 -0
  330. package/src/services/editor.tsx +93 -0
  331. package/src/services/globals.ts +143 -0
  332. package/src/services/hot-reload.ts +46 -0
  333. package/src/services/migrations.ts +66 -0
  334. package/src/services/utils/cache.ts +88 -0
  335. package/src/services/utils/cluster-cache.ts +225 -0
  336. package/src/services/utils/cluster-ws.ts +192 -0
  337. package/src/services/utils/db-manager.ts +79 -0
  338. package/src/services/utils/get-route.ts +70 -0
  339. package/src/services/utils/log.ts +91 -0
  340. package/src/services/utils/server-interface.ts +166 -0
  341. package/src/services/utils/websocketmanager.ts +139 -0
  342. package/src/types/@esbuild.d.ts +1 -0
  343. package/src/types/@miqro/core.d.ts +2 -0
  344. package/src/types/@miqro/jsx.d.ts +2 -0
  345. package/src/types/@miqro/parser.d.ts +2 -0
  346. package/src/types/@miqro/query.d.ts +2 -0
  347. package/src/types/@miqro/request.d.ts +2 -0
  348. package/src/types/@miqro/test.d.ts +2 -0
  349. package/src/types/@miqro.d.ts +1 -0
  350. package/src/types/@types.d.ts +1 -0
  351. package/src/types/browser.globals.d.ts +9 -0
  352. package/src/types/globals.d.ts +2 -0
  353. package/src/types/jsx.globals.d.ts +37 -0
  354. package/src/types/miqro.d.ts +109 -0
  355. package/src/types/postject.d.ts +1 -0
  356. package/src/types/server.globals.d.ts +72 -0
  357. package/src/types.ts +199 -0
  358. package/tsconfig.json +35 -0
  359. package/build/cli.js +0 -4
  360. package/build/cmd-map.d.ts +0 -90
  361. package/build/cmd-map.js +0 -460
  362. package/build/index.js +0 -2
  363. package/build/utils/doc/json.d.ts +0 -7
  364. package/build/utils/doc/json.js +0 -12
  365. package/build/utils/exec.d.ts +0 -32
  366. package/build/utils/exec.js +0 -102
  367. package/build/utils/templates.d.ts +0 -33
  368. package/build/utils/templates.js +0 -302
  369. package/build/utils/watch.d.ts +0 -1
  370. package/build/utils/watch.js +0 -35
  371. /package/build/{index.d.ts → esm/editor/http/admin/editor/editor.d.ts} +0 -0
  372. /package/build/{cli.d.ts → esm/src/cluster.d.ts} +0 -0
@@ -1,90 +0,0 @@
1
- export declare const usage = "npx miqro <command> [args]\n";
2
- export declare const CMD_MAP: {
3
- "new:api": {
4
- cb: () => void;
5
- tabs: number;
6
- description: string;
7
- };
8
- "new:api:main": {
9
- cb: () => void;
10
- tabs: number;
11
- description: string;
12
- };
13
- "new:api:route": {
14
- cb: () => void;
15
- tabs: number;
16
- description: string;
17
- };
18
- "new:api:route:test": {
19
- cb: () => void;
20
- tabs: number;
21
- description: string;
22
- };
23
- config: {
24
- cb: () => void;
25
- tabs: number;
26
- description: string;
27
- };
28
- "config:bash": {
29
- cb: () => void;
30
- tabs: number;
31
- description: string;
32
- };
33
- "config:env": {
34
- cb: () => void;
35
- tabs: number;
36
- description: string;
37
- };
38
- "config:init": {
39
- cb: () => void;
40
- tabs: number;
41
- description: string;
42
- };
43
- doc: {
44
- tabs: number;
45
- cb: () => Promise<void>;
46
- description: string;
47
- };
48
- "doc:md": {
49
- cb: () => Promise<void>;
50
- tabs: number;
51
- description: string;
52
- };
53
- start: {
54
- tabs: number;
55
- cb: typeof start;
56
- description: string;
57
- };
58
- cluster: {
59
- tabs: number;
60
- cb: typeof start;
61
- description: string;
62
- };
63
- watch: {
64
- cb: () => void;
65
- tabs: number;
66
- description: string;
67
- };
68
- serve: {
69
- tabs: number;
70
- cb: () => Promise<void>;
71
- description: string;
72
- };
73
- "migration:up": {
74
- tabs: number;
75
- description: string;
76
- cb: () => Promise<void>;
77
- };
78
- "migration:down": {
79
- tabs: number;
80
- description: string;
81
- cb: () => Promise<void>;
82
- };
83
- help: {
84
- cb: () => void;
85
- tabs: number;
86
- description: string;
87
- };
88
- };
89
- declare function start(): void;
90
- export {};
package/build/cmd-map.js DELETED
@@ -1,460 +0,0 @@
1
- import { resolve } from "path";
2
- import { existsSync, lstatSync, mkdirSync, statSync, writeFileSync } from "fs";
3
- import { apiRouteTemplate, gitignoreTemplate, mainTemplates, packageTemplate, templates, testTemplates } from "./utils/templates.js";
4
- import { App, ConfigPathResolver, LoggerHandler, Proxy, ReadBuffer, Static, getLogger, loadConfig, normalizePath } from "@miqro/core";
5
- import { getDOCJSON } from "./utils/doc/json.js";
6
- import { getMDDoc } from "./utils/doc/md.js";
7
- import { mainPath } from "@miqro/runner";
8
- import { setupWatch } from "./utils/watch.js";
9
- import { extractFlags, getUsage, execSync } from "./utils/exec.js";
10
- import { migration } from "@miqro/query";
11
- export const usage = "npx miqro <command> [args]\n";
12
- export const CMD_MAP = {
13
- ["new:api"]: {
14
- //section: "api development",
15
- cb: () => {
16
- const usageTS = `usage: npx miqro new:api <identifier ex: NEW_APP>`;
17
- if (process.argv.length !== 4 || process.argv[3].length < 1) {
18
- throw new Error(usageTS);
19
- }
20
- const identifier = process.argv[3].toLocaleLowerCase();
21
- const appFolder = resolve(process.cwd(), identifier);
22
- if (existsSync(appFolder)) {
23
- throw new Error(`${appFolder} already exists!`);
24
- }
25
- console.log(`creating ${appFolder}`);
26
- mkdirSync(appFolder, {
27
- recursive: true
28
- });
29
- writeFileSync(resolve(appFolder, "package.json"), packageTemplate["ts"](identifier));
30
- execSync(`npm install miqro --save-dev`, {
31
- cwd: appFolder
32
- });
33
- execSync(`npm install @miqro/core --save`, {
34
- cwd: appFolder
35
- });
36
- writeFileSync(resolve(appFolder, "tsconfig.json"), `{
37
- "compileOnSave": true,
38
- "compilerOptions": {
39
- "lib": ["es2021"],
40
- "module": "Node16",
41
- "moduleResolution": "Node16",
42
- "target": "es2021",
43
- "strict": false,
44
- "outDir": "./build/",
45
- "removeComments": true,
46
- "noImplicitAny": false,
47
- "preserveConstEnums": true,
48
- "sourceMap": true,
49
- "esModuleInterop": true,
50
- "declaration": true
51
- },
52
- "exclude": [
53
- "node_modules",
54
- "test"
55
- ],
56
- "include": [
57
- "src"
58
- ]
59
- }`);
60
- execSync(`npm install typescript --save-dev`, {
61
- cwd: appFolder
62
- });
63
- execSync(`npm install @types/node --save-dev`, {
64
- cwd: appFolder
65
- });
66
- writeFileSync(resolve(appFolder, ".gitignore"), gitignoreTemplate.ts());
67
- execSync(`npm install @miqro/test-http --save-dev`, {
68
- cwd: appFolder
69
- });
70
- execSync(`npx miqro new:api:main src_main`, {
71
- cwd: appFolder
72
- });
73
- execSync(`npx miqro new:api:route src_api_health`, {
74
- cwd: appFolder
75
- });
76
- mkdirSync(resolve(appFolder, "test"), {
77
- recursive: true
78
- });
79
- execSync(`npx miqro new:api:route:test test_api_health`, {
80
- cwd: appFolder
81
- });
82
- console.log("");
83
- console.log("");
84
- console.log(`new project created on ${appFolder}`);
85
- console.log(`cd ${identifier}`);
86
- console.log(`npm run start`);
87
- console.log("");
88
- }, tabs: 4, description: `create a new project.`
89
- },
90
- ["new:api:main"]: {
91
- //section: "http scaffolding",
92
- cb: () => {
93
- if (process.argv.length !== 4 || process.argv[3].length < 1) {
94
- throw new Error(`usage: [NODE_ENV=development] npx miqro new:api:main <identifier ex: NEW_APP>`);
95
- }
96
- const identifier = process.argv[3].toLocaleLowerCase();
97
- const split = identifier.split("_");
98
- const dots = split.filter(s => s.indexOf(".") !== -1);
99
- if (dots.length > 0) {
100
- throw new Error(`identifier cannot contain dots\narguments: <identifier ex: SRC_MAIN>`);
101
- }
102
- loadConfig();
103
- const path = resolve(ConfigPathResolver.getBaseDirname(), ...split.splice(0, split.length - 1));
104
- const ext = existsSync(resolve(ConfigPathResolver.getBaseDirname(), "tsconfig.json")) ? "ts" : "js";
105
- const filePath = resolve(path, `${split[0]}.${ext}`);
106
- if (existsSync(filePath)) {
107
- throw new Error(`file ${filePath} already exists! doing nothing`);
108
- }
109
- console.log(`creating ${filePath}`);
110
- mkdirSync(path, {
111
- recursive: true
112
- });
113
- writeFileSync(filePath, mainTemplates[ext]());
114
- console.log(`file ${filePath} created`);
115
- },
116
- tabs: 3,
117
- description: `creates a new main file.`
118
- },
119
- ["new:api:route"]: {
120
- cb: () => {
121
- const nUsage = `usage: [NODE_ENV=development] npx miqro new:api:main <identifier ex: NEW_APP>`;
122
- if (process.argv.length !== 4 || process.argv[3].length < 1) {
123
- throw new Error(nUsage);
124
- }
125
- const identifier = process.argv[3].toLocaleLowerCase();
126
- const split = identifier.split("_").map(s => s.trim()).filter(s => s);
127
- const dots = split.filter(s => s.indexOf(".") !== -1);
128
- if (dots.length > 0) {
129
- throw new Error(`identifier cannot contain dots\n${nUsage}`);
130
- }
131
- loadConfig();
132
- const path = resolve(ConfigPathResolver.getBaseDirname(), ...split.splice(0, split.length - 1));
133
- const ext = existsSync(resolve(ConfigPathResolver.getBaseDirname(), "tsconfig.json")) ? "ts" : "js";
134
- const noMethod = ["post", "get", "put", "delete", "patch", "options"].indexOf(split[0].toLocaleLowerCase()) === -1;
135
- const filePath = resolve(path, `${split[0]}.${ext}`);
136
- if (existsSync(filePath)) {
137
- throw new Error(`file ${filePath} already exists! doing nothing`);
138
- }
139
- console.log(`creating ${filePath}`);
140
- mkdirSync(path, {
141
- recursive: true
142
- });
143
- writeFileSync(filePath, apiRouteTemplate[ext](noMethod));
144
- }, tabs: 3, description: `creates a new route.`
145
- },
146
- ["new:api:route:test"]: {
147
- cb: () => {
148
- if (process.argv.length !== 4 || process.argv[3].length < 1) {
149
- throw new Error(`usage: [NODE_ENV=development] npx miqro new:test <identifier ex: TEST_SOMEFILE>`);
150
- }
151
- const identifier = process.argv[3].toLocaleLowerCase();
152
- const split = identifier.split("_");
153
- const dots = split.filter(s => s.indexOf(".") !== -1);
154
- if (dots.length > 0) {
155
- throw new Error(`identifier cannot contain dots\narguments: <identifier ex: TEST_SOMETEST>`);
156
- }
157
- loadConfig();
158
- const path = resolve(ConfigPathResolver.getBaseDirname(), ...split.splice(0, split.length - 1));
159
- const filePath = resolve(path, `${split[0]}.test.js`);
160
- if (existsSync(filePath)) {
161
- throw new Error(`file ${filePath} already exists! doing nothing`);
162
- }
163
- console.log(`creating ${filePath}`);
164
- mkdirSync(path, {
165
- recursive: true
166
- });
167
- writeFileSync(filePath, testTemplates.js(split[0]));
168
- console.log(`file ${filePath} created`);
169
- }, tabs: 2, description: `create new test.js file for an APIRouter.`
170
- },
171
- ["config"]: {
172
- //section: "config management",
173
- cb: () => {
174
- const logger = console;
175
- if (process.argv.length !== 3) {
176
- throw new Error(`invalid number of args. ${"usage: [NODE_ENV=development] npx miqro config"}`);
177
- }
178
- const configOut = loadConfig();
179
- const config = configOut.combined;
180
- logger.info(JSON.stringify(config, undefined, 2));
181
- },
182
- tabs: 4,
183
- description: `print config as a json.`
184
- },
185
- ["config:bash"]: {
186
- cb: () => {
187
- const logger = console;
188
- if (process.argv.length !== 3) {
189
- throw new Error(`invalid number of args. usage: [NODE_ENV=development] npx miqro config:bash`);
190
- }
191
- const configOut = loadConfig();
192
- const config = configOut.combined;
193
- const keys = Object.keys(config);
194
- for (const key of keys) {
195
- logger.info(`export ${key}=${config[key]}`);
196
- }
197
- },
198
- tabs: 3,
199
- description: `print config as a bash script.`
200
- },
201
- ["config:env"]: {
202
- cb: () => {
203
- const logger = console;
204
- if (process.argv.length !== 3) {
205
- throw new Error(`invalid number of args. usage: [NODE_ENV=development] npx miqro config:env`);
206
- }
207
- const configOut = loadConfig();
208
- const config = configOut.combined;
209
- const keys = Object.keys(config);
210
- for (const key of keys) {
211
- logger.info(`${key}=${config[key]}`);
212
- }
213
- },
214
- tabs: 3,
215
- description: `print config as a env file.`
216
- },
217
- ["config:init"]: {
218
- cb: () => {
219
- const logger = console;
220
- if (process.argv.length !== 3) {
221
- throw new Error(`invalid number of args. usage: [NODE_ENV=development] npx miqro config:init`);
222
- }
223
- loadConfig();
224
- const configPath = ConfigPathResolver.getConfigDirname();
225
- const initEnvFile = (path, template) => {
226
- if (!existsSync(path)) {
227
- logger.warn(`creating ${path} env file`);
228
- writeFileSync(path, template);
229
- }
230
- else {
231
- logger.warn(`${path} already exists!. init will not create it.`);
232
- }
233
- };
234
- if (!existsSync(configPath)) {
235
- logger.warn(`[${configPath}] doesnt exists!`);
236
- mkdirSync(configPath, {
237
- recursive: true
238
- });
239
- }
240
- initEnvFile(resolve(configPath, `log.env`), templates.logEnvFile);
241
- initEnvFile(resolve(configPath, `auth.env`), templates.authEnvFile);
242
- initEnvFile(resolve(configPath, `features.env`), templates.featuresEnvFile);
243
- }, tabs: 3, description: `inits your config folder.`
244
- },
245
- ["doc"]: {
246
- //section: "api documentation",
247
- tabs: 4,
248
- cb: async () => {
249
- if (process.argv.length < 5 || process.argv.length > 7) {
250
- throw new Error(`usage: [NODE_ENV=development] npx miqro doc <api_folder> <subPath> [apiName] [ignore]`);
251
- }
252
- const dirname = process.argv[3];
253
- const subPath = process.argv[4];
254
- const apiName = process.argv[5];
255
- const ignore = process.argv[6];
256
- loadConfig();
257
- console.log(JSON.stringify(await getDOCJSON({ dirname, subPath, apiName, ignore: ignore ? ignore.split(",") : undefined }), undefined, 2));
258
- },
259
- description: `api folder auto doc as a json.`
260
- },
261
- ["doc:md"]: {
262
- cb: async () => {
263
- if (process.argv.length < 5 || process.argv.length > 7) {
264
- throw new Error(`usage: [NODE_ENV=development] npx miqro doc <api_folder> <subPath> [apiName] [ignore]`);
265
- }
266
- const dirname = process.argv[3];
267
- const subPath = process.argv[4];
268
- const apiName = process.argv[5];
269
- const ignore = process.argv[6];
270
- loadConfig();
271
- console.log(await getMDDoc({ dirname, subPath, apiName, ignore: ignore.split(",") }));
272
- },
273
- tabs: 4,
274
- description: `api folder auto doc as a markdown.`
275
- },
276
- ["start"]: {
277
- //section: "start helpers",
278
- tabs: 4,
279
- cb: start,
280
- description: `start script in cluster mode.`
281
- },
282
- ["cluster"]: {
283
- tabs: 4,
284
- cb: start,
285
- description: `alias for start command.`
286
- },
287
- ["watch"]: {
288
- //section: "watch",
289
- cb: () => {
290
- const usageMessage = (message) => `${message ? `${message}.\n` : ""}usage: npx miqro watch <directory> <cmd>`;
291
- if (process.argv.length < 5) {
292
- throw new Error(usageMessage("invalid number of args"));
293
- }
294
- const directory = process.argv[3];
295
- const cmd = process.argv.slice(4).join(" ");
296
- const timeout = process.env.WATCH_TIMEOUT ? parseInt(process.env.WATCH_TIMEOUT, 10) : undefined;
297
- if (!existsSync(directory) || !statSync(directory).isDirectory()) {
298
- throw new Error(usageMessage("directory not found!"));
299
- }
300
- console.log(`setting up watch on ${directory} with cmd ${cmd}`);
301
- setupWatch(directory, cmd, timeout);
302
- },
303
- tabs: 4,
304
- description: `watch folder for changes.`
305
- },
306
- ["serve"]: {
307
- //section: "serve static files",
308
- tabs: 4,
309
- cb: async () => {
310
- const nUsage = `usage: [NODE_ENV=development] npx miqro serve [directory=./] [path=/] [--index404 ./index.html] [--proxy-cert-ignore] [--port 8080] [--proxy /api=https://host/api]`;
311
- const flags = extractFlags(process.argv.slice(3), {
312
- flags: {
313
- "help": {
314
- description: "get help page", hasValue: false
315
- },
316
- "index404Status": {
317
- description: "status to handle index404 status", hasValue: true
318
- },
319
- "index404": {
320
- description: "file to handle 404", hasValue: true
321
- }, "proxy": {
322
- description: "proxy", hasValue: true
323
- }, "proxy-cert-ignore": {
324
- description: "proxy ignore certs", hasValue: false
325
- }, "port": {
326
- description: "port", hasValue: true
327
- }
328
- }
329
- });
330
- if (flags.flags.help !== undefined) {
331
- console.log(nUsage);
332
- process.exit(102);
333
- }
334
- if (flags.files.length > 2) {
335
- throw new Error(`invalid arguments.\n${nUsage}`);
336
- }
337
- if (flags.flags.index404 instanceof Array) {
338
- throw new Error(`invalid index404!.\n${nUsage}`);
339
- }
340
- if (flags.flags.port instanceof Array) {
341
- throw new Error(`invalid port!.\n${nUsage}`);
342
- }
343
- let [directory, path] = flags.files;
344
- path = path ? path : "/";
345
- directory = directory ? directory : process.cwd();
346
- loadConfig();
347
- const PORT = flags.flags.port ? flags.flags.port : (process.env.PORT ? process.env.PORT : 8080);
348
- if (PORT === undefined) {
349
- throw new Error(`invalid port!.\n${nUsage}`);
350
- }
351
- if (!existsSync(directory) || !statSync(directory).isDirectory()) {
352
- throw new Error(`${directory} directory not found!\n${nUsage}`);
353
- }
354
- const app = new App();
355
- app.use(LoggerHandler());
356
- const proxyList = flags.flags.proxy instanceof Array ? flags.flags.proxy : [flags.flags.proxy];
357
- for (const proxy of proxyList) {
358
- if (proxy) {
359
- const proxySplit = proxy.split("=");
360
- if (proxySplit.length !== 2) {
361
- throw new Error("proxy must be in the form. /path=proxy");
362
- }
363
- const proxyPath = normalizePath(proxySplit[0]);
364
- const proxyURL = new URL(proxySplit[1]);
365
- proxyURL.pathname = normalizePath(proxyURL.pathname);
366
- const proxyRouter = Proxy({
367
- url: proxyURL.toString(), rejectUnauthorized: flags.flags["proxy-cert-ignore"] ? true : false
368
- });
369
- console.log("setting up proxy to %s on %s", proxyURL.toString(), proxyPath);
370
- proxyRouter.use(ReadBuffer());
371
- app.use(proxyRouter, proxyPath);
372
- }
373
- }
374
- app.use(Static({
375
- directory,
376
- list: true,
377
- index404: flags.flags.index404 ? flags.flags.index404 : undefined,
378
- index404Status: flags.flags.index404Status ? parseInt(flags.flags.index404Status, 10) : undefined
379
- }), path);
380
- await app.listen(PORT);
381
- console.log("serving " + directory + " on http://localhost:%s%s", PORT, path);
382
- }, description: `serve static files.`
383
- },
384
- ["migration:up"]: {
385
- tabs: 3,
386
- description: "'up' on migrations in order.",
387
- cb: async () => {
388
- const usageMessage = (message) => `${message ? `${message}.\n` : ""}usage: npx miqro migration:up <db.js> <migrations-folder|migration-file>`;
389
- if (process.argv.length < 5) {
390
- throw new Error(usageMessage("invalid number of args"));
391
- }
392
- const dbJSPath = resolve(process.cwd(), process.argv[3]);
393
- const migrationFolder = resolve(process.cwd(), process.argv[4]);
394
- if (!existsSync(migrationFolder)) {
395
- throw new Error(usageMessage(`invalid args. [${migrationFolder}] doesnt exists!`));
396
- }
397
- if (lstatSync(migrationFolder).isSymbolicLink()) {
398
- throw new Error(usageMessage(`invalid args. [${migrationFolder}] simbolic links not supported.`));
399
- }
400
- if (!lstatSync(migrationFolder).isDirectory()) {
401
- const db = (await import(dbJSPath)).default;
402
- await db.connect();
403
- await migration.init(db, getLogger("migrationUp"));
404
- await migration.up.file(db, migrationFolder, getLogger("migrationUp"));
405
- await db.disconnect();
406
- }
407
- else {
408
- const db = (await import(dbJSPath)).default;
409
- await db.connect();
410
- await migration.up.folder(db, migrationFolder, getLogger("migrationUp"));
411
- await db.disconnect();
412
- }
413
- }
414
- },
415
- ["migration:down"]: {
416
- tabs: 3,
417
- description: "'down' on migrations in reverse.",
418
- cb: async () => {
419
- const usageMessage = (message) => `${message ? `${message}.\n` : ""}usage: npx miqro migration:down <db.js> <migrations-folder|migration-file>`;
420
- if (process.argv.length < 5) {
421
- throw new Error(usageMessage("invalid number of args"));
422
- }
423
- const dbJSPath = resolve(process.cwd(), process.argv[3]);
424
- const migrationFolder = resolve(process.cwd(), process.argv[4]);
425
- if (!existsSync(migrationFolder)) {
426
- throw new Error(usageMessage(`invalid args. [${migrationFolder}] doesnt exists!`));
427
- }
428
- if (lstatSync(migrationFolder).isSymbolicLink()) {
429
- throw new Error(usageMessage(`invalid args. [${migrationFolder}] simbolic links not supported.`));
430
- }
431
- if (!lstatSync(migrationFolder).isDirectory()) {
432
- const db = (await import(dbJSPath)).default;
433
- await db.connect();
434
- await migration.init(db, getLogger("migrationDown"));
435
- await migration.down.file(db, migrationFolder, getLogger("migrationDown"));
436
- await db.disconnect();
437
- }
438
- else {
439
- const db = (await import(dbJSPath)).default;
440
- await db.connect();
441
- await migration.down.folder(db, migrationFolder, getLogger("migrationDown"));
442
- await db.disconnect();
443
- }
444
- }
445
- },
446
- ["help"]: {
447
- //section: "help",
448
- cb: () => {
449
- console.log(getUsage(CMD_MAP, usage));
450
- },
451
- tabs: 4, description: "prints this page"
452
- }
453
- };
454
- function start() {
455
- if (process.argv.length <= 3) {
456
- throw new Error(`invalid number of args\nusage: CLUSTER_COUNT=os.cpus().length [CLUSTER_AUTO_BROADCAST=true|false] [CLUSTER_DISABLE_RESTART=true|false] npx miqro start <script> [...args]`);
457
- }
458
- loadConfig();
459
- execSync(`${process.argv[0]} ${mainPath()} ${process.argv.slice(3).join(" ")}`);
460
- }
package/build/index.js DELETED
@@ -1,2 +0,0 @@
1
- console.warn("this package is just a development cli");
2
- export {};
@@ -1,7 +0,0 @@
1
- import { Logger, RouterJSONDoc } from "@miqro/core";
2
- export declare const getDOCJSON: ({ dirname, subPath, apiName, ignore }: {
3
- ignore?: string[] | undefined;
4
- apiName?: string | undefined;
5
- dirname: string;
6
- subPath: string;
7
- }, logger?: Logger) => Promise<RouterJSONDoc>;
@@ -1,12 +0,0 @@
1
- import { APIRouter, ConfigPathResolver } from "@miqro/core";
2
- import { resolve } from "path";
3
- export const getDOCJSON = async ({ dirname, subPath, apiName, ignore }, logger) => {
4
- //const apiTraverse = traverseAPIRouteDir(basename(dirname).toUpperCase(), resolve(ConfigPathResolver.getBaseDirname(), dirname), subPath, undefined, logger);
5
- const router = await APIRouter({
6
- apiName,
7
- dirname: resolve(ConfigPathResolver.getBaseDirname(), dirname),
8
- path: subPath,
9
- ignore
10
- }, logger);
11
- return router.getJSONDoc();
12
- };
@@ -1,32 +0,0 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- /// <reference types="node" resolution-mode="require"/>
3
- import { ExecSyncOptionsWithBufferEncoding } from "child_process";
4
- export declare const execSync: (cmd: string, options?: ExecSyncOptionsWithBufferEncoding) => void;
5
- export type Callback<T = any> = (...args: any[]) => T;
6
- export declare const extractFlags: (args: string[], options?: {
7
- flags: {
8
- [name: string]: {
9
- description?: string | undefined;
10
- hasValue?: boolean | undefined;
11
- };
12
- };
13
- } | undefined) => {
14
- flags: {
15
- [key: string]: string | (string | null)[] | null;
16
- };
17
- files: string[];
18
- };
19
- export declare function getUsage(cmds: CMDMap, usage: string): string;
20
- interface CMDMap {
21
- [key: string]: {
22
- cb: Callback<void> | Callback<Promise<void>>;
23
- description: string;
24
- section?: string;
25
- tabs?: number;
26
- };
27
- }
28
- export declare const mainCMD: (cmds: CMDMap, usage: string, logger: Console | {
29
- error: (...args: any[]) => void;
30
- info: (...args: any[]) => void;
31
- }, cmdArg?: string, exit?: boolean) => void;
32
- export {};