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
@@ -0,0 +1,366 @@
1
+ import { checkEnvVariable } from "@miqro/core";
2
+ import { existsSync, statSync } from "node:fs";
3
+ import { resolve } from "node:path";
4
+ import { cwd, env, platform, arch } from "node:process";
5
+
6
+ import { EXIT_CODES } from "./constants.js";
7
+ import { tmpdir } from "node:os";
8
+ import { randomUUID } from "node:crypto";
9
+ import { BIN_NAME, help, usage } from "./help.js";
10
+ import { TEST_SOCKET } from "./paths.js";
11
+ import { isSea } from "node:sea";
12
+ import cluster from "node:cluster";
13
+ import { getVersion } from "./assets.js";
14
+
15
+ export function getPORT() {
16
+ return checkEnvVariable("PORT", "8080");
17
+ }
18
+
19
+ export interface Arguments {
20
+ installTypes: boolean;
21
+ installTSConfig: boolean;
22
+ test: boolean;
23
+ inflate: boolean;
24
+ generateDoc: boolean;
25
+ generateDocOut: string;
26
+ generateDocType: "JSON" | "MD";
27
+ migrateUp: boolean;
28
+ migrateDown: boolean;
29
+ compile: boolean;
30
+ inflateSEA: boolean;
31
+ inflateDir: string;
32
+ services: string[];
33
+ editor: boolean;
34
+ hotreload: boolean;
35
+ }
36
+
37
+ /**
38
+ * parse process.argv arguments
39
+ */
40
+ export function parseArguments(): Arguments {
41
+ //env["LOG_FILE"] = env["LOG_FILE"] ? env["LOG_FILE"] : "./server.log";
42
+
43
+ const args = cluster.isPrimary ? process.argv.slice(2, process.argv.length) : process.argv.slice(3, process.argv.length);
44
+ const flags: {
45
+ installTypes: boolean | null;
46
+ installTSConfig: boolean | null;
47
+ inflate: boolean | null;
48
+ generateDoc: boolean | null;
49
+ generateDocOut?: string | null;
50
+ generateDocType?: string | null;
51
+ test: boolean;
52
+ migrateUp: boolean | null;
53
+ migrateDown: boolean | null;
54
+ compile: boolean | null;
55
+ inflateSEA: boolean | null;
56
+ editor: boolean | null;
57
+ inflateDir?: string | null;
58
+ hotreload?: boolean | null;
59
+ } = {
60
+ hotreload: null,
61
+ installTypes: null,
62
+ installTSConfig: null,
63
+ migrateUp: null,
64
+ migrateDown: null,
65
+ inflateSEA: null,
66
+ compile: null,
67
+ test: null,
68
+ inflate: null,
69
+ generateDoc: null,
70
+ generateDocOut: null,
71
+ generateDocType: null,
72
+ editor: null,
73
+ inflateDir: null
74
+ };
75
+ const services: string[] = [];
76
+
77
+ for (let i = 0; i < args.length; i++) {
78
+ const argument = args[i];
79
+ switch (argument) {
80
+ case "-v":
81
+ case "--version":
82
+ const { VERSION, NODE_VERSION, ESBUILD_VERSION } = getVersion();
83
+ if (isSea()) {
84
+ console.log("version [%s]", VERSION);
85
+ console.log("Node.js version [%s]", NODE_VERSION);
86
+ console.log("esbuild version [%s]", ESBUILD_VERSION);
87
+ }
88
+ console.log("platform [%s-%s]", platform, arch);
89
+ process.exit(EXIT_CODES.NORMAL_EXIT);
90
+ case "-h":
91
+ case "--help":
92
+ console.log(usage);
93
+ console.log(help);
94
+ process.exit(EXIT_CODES.NORMAL_EXIT);
95
+ case "--install-tsconfig":
96
+ if (flags.inflate !== null || flags.installTSConfig !== null) {
97
+ console.error("bad arguments.");
98
+ console.error(usage);
99
+ process.exit(EXIT_CODES.BAD_ARGUMENTS);
100
+ }
101
+ flags.installTSConfig = true;
102
+ continue;
103
+ case "--watch":
104
+ if (flags.hotreload !== null) {
105
+ console.error("bad arguments.");
106
+ console.error(usage);
107
+ process.exit(EXIT_CODES.BAD_ARGUMENTS);
108
+ }
109
+ flags.hotreload = true;
110
+ continue;
111
+ case "--generate-doc":
112
+ if (flags.generateDoc !== null) {
113
+ console.error("bad arguments.");
114
+ console.error(usage);
115
+ process.exit(EXIT_CODES.BAD_ARGUMENTS);
116
+ }
117
+ flags.generateDoc = true;
118
+ continue;
119
+ case "--generate-doc-out":
120
+ if (flags.generateDocOut !== null) {
121
+ console.error("bad arguments. --generate-doc-out already set.");
122
+ console.error(usage);
123
+ process.exit(EXIT_CODES.BAD_ARGUMENTS);
124
+ }
125
+ flags.generateDocOut = args[i + 1];
126
+ if (typeof flags.generateDocOut !== "string") {
127
+ console.error("bad arguments. --generate-doc-out missing value.");
128
+ console.error(usage);
129
+ process.exit(EXIT_CODES.BAD_ARGUMENTS);
130
+ }
131
+ i++;
132
+ continue;
133
+ case "--generate-doc-type":
134
+ if (flags.generateDocType !== null) {
135
+ console.error("bad arguments. --generate-doc-type already set.");
136
+ console.error(usage);
137
+ process.exit(EXIT_CODES.BAD_ARGUMENTS);
138
+ }
139
+ const gDt = String(args[i + 1]).toUpperCase() as any;
140
+ if (typeof gDt !== "string" || (gDt !== "JSON" && gDt !== "MD")) {
141
+ console.error("bad arguments. --generate-doc-type can be json or md.");
142
+ console.error(usage);
143
+ process.exit(EXIT_CODES.BAD_ARGUMENTS);
144
+ }
145
+ flags.generateDocType = gDt;
146
+ i++;
147
+ continue;
148
+ case "--compile":
149
+ if (flags.compile !== null) {
150
+ if (flags.inflateDir === null) {
151
+ flags.inflateDir = resolve(tmpdir(), `${BIN_NAME}-compile`, randomUUID());
152
+ }
153
+ console.error("bad arguments. --compile already set");
154
+ console.error(usage);
155
+ process.exit(EXIT_CODES.BAD_ARGUMENTS);
156
+ }
157
+ flags.compile = true;
158
+ flags.inflateSEA = true;
159
+ flags.inflate = true;
160
+ continue;
161
+ case "--install-types":
162
+ if (flags.inflate !== null || flags.installTypes !== null) {
163
+ console.error("bad arguments.");
164
+ console.error(usage);
165
+ process.exit(EXIT_CODES.BAD_ARGUMENTS);
166
+ }
167
+ flags.installTypes = true;
168
+ continue;
169
+ case "--editor":
170
+ if (flags.editor !== null) {
171
+ console.error("bad arguments.");
172
+ console.error(usage);
173
+ process.exit(EXIT_CODES.BAD_ARGUMENTS);
174
+ }
175
+ flags.editor = true;
176
+ continue;
177
+ case "--inflate-sea":
178
+ if (flags.inflateSEA !== null) {
179
+ console.error("bad arguments. --inflate-sea already set.");
180
+ console.error(usage);
181
+ process.exit(EXIT_CODES.BAD_ARGUMENTS);
182
+ }
183
+ flags.inflateSEA = true;
184
+ continue;
185
+ case "--migrate-up":
186
+ if (flags.migrateUp !== null) {
187
+ console.error("bad arguments.");
188
+ console.error(usage);
189
+ process.exit(EXIT_CODES.BAD_ARGUMENTS);
190
+ }
191
+ env["HOT_RELOAD"] = env["HOT_RELOAD"] ? env["HOT_RELOAD"] : "0";
192
+ flags.migrateUp = true;
193
+ continue;
194
+ case "--migrate-down":
195
+ if (flags.migrateDown !== null) {
196
+ console.error("bad arguments.");
197
+ console.error(usage);
198
+ process.exit(EXIT_CODES.BAD_ARGUMENTS);
199
+ }
200
+ env["HOT_RELOAD"] = env["HOT_RELOAD"] ? env["HOT_RELOAD"] : "0";
201
+ flags.migrateDown = true;
202
+ continue;
203
+ case "--inflate":
204
+ if (flags.inflate !== null) {
205
+ console.error("bad arguments.");
206
+ console.error(usage);
207
+ process.exit(EXIT_CODES.BAD_ARGUMENTS);
208
+ }
209
+ env["HOT_RELOAD"] = env["HOT_RELOAD"] ? env["HOT_RELOAD"] : "0";
210
+ flags.inflate = true;
211
+ continue;
212
+ case "--test":
213
+ if (flags.test !== null) {
214
+ console.error("bad arguments.");
215
+ console.error(usage);
216
+ process.exit(EXIT_CODES.BAD_ARGUMENTS);
217
+ }
218
+ env["HOT_RELOAD"] = env["HOT_RELOAD"] ? env["HOT_RELOAD"] : "0";
219
+ env["BROWSER"] = env["BROWSER"] ? env["BROWSER"] : "none";
220
+ env["PORT"] = TEST_SOCKET;
221
+ flags.test = true;
222
+ continue;
223
+ case "--service":
224
+ if (args[i + 1] === undefined) {
225
+ console.error("bad arguments. service directory not provided.");
226
+ console.error(usage);
227
+ process.exit(EXIT_CODES.BAD_ARGUMENTS);
228
+ }
229
+ services.push(args[i + 1]);
230
+ i++;
231
+ continue;
232
+ case "--inflate-dir":
233
+ if (flags.inflateDir !== null && flags.compile === null) {
234
+ console.error("bad arguments. --inflate-dir already set.");
235
+ console.error(usage);
236
+ process.exit(EXIT_CODES.BAD_ARGUMENTS);
237
+ }
238
+ flags.inflateDir = args[i + 1];
239
+ if (typeof flags.inflateDir !== "string") {
240
+ console.error("bad arguments. inflate directory not provided.");
241
+ console.error(usage);
242
+ process.exit(EXIT_CODES.BAD_ARGUMENTS);
243
+ }
244
+ i++;
245
+ continue;
246
+ default:
247
+ //console.error("IGNORING bad arguments. [%s]", argument);
248
+ //continue;
249
+ console.error("bad argument. [%s]", argument);
250
+ console.error(usage);
251
+ console.log(help);
252
+ process.exit(EXIT_CODES.BAD_ARGUMENTS);
253
+ /*flags.inflate = flags.inflate ? flags.inflate : false;
254
+ flags.editor = flags.editor ? flags.editor : false;
255
+ flags.inflateDir = flags.inflateDir ? flags.inflateDir : undefined;
256
+ services.push(argument);
257
+ continue;*/
258
+ }
259
+ }
260
+
261
+ if (process.env["CLUSTER_NODE_NUMBER"]) {
262
+ env["HOT_RELOAD"] = env["HOT_RELOAD"] ? env["HOT_RELOAD"] : "0";
263
+ }
264
+
265
+ flags.inflate = flags.inflate ? flags.inflate : false;
266
+ flags.editor = flags.editor ? flags.editor : false;
267
+ flags.test = flags.test ? flags.test : false;
268
+ flags.inflateDir = flags.inflateDir ? flags.inflateDir : undefined;
269
+
270
+ if (services.length === 0 && (!flags.installTSConfig && !flags.installTypes)) {
271
+ flags.inflateDir = flags.inflateDir ? flags.inflateDir : undefined;
272
+ console.error(`bad arguments. missing --service argument`);
273
+ console.error(usage);
274
+ process.exit(EXIT_CODES.BAD_ARGUMENTS);
275
+ }
276
+
277
+ const notDirServices = services.filter(service => existsSync(resolve(process.cwd(), service)) && !statSync(resolve(process.cwd(), service)).isDirectory());
278
+
279
+ if (notDirServices.length > 0) {
280
+ console.error(`bad arguments. [${notDirServices.join(",")}] are not directories.`);
281
+ console.error(usage);
282
+ process.exit(EXIT_CODES.BAD_ARGUMENTS);
283
+ }
284
+
285
+ if (flags.inflateDir && existsSync(resolve(cwd(), flags.inflateDir)) && !statSync(resolve(cwd(), flags.inflateDir)).isDirectory()) {
286
+ console.error("bad arguments. inflate directory not a directory.");
287
+ console.error(usage);
288
+ process.exit(EXIT_CODES.BAD_ARGUMENTS);
289
+ }
290
+
291
+ if (!flags.inflate && flags.inflateDir) {
292
+ console.error("bad arguments. to use --inflate-dir you must use --inflate.");
293
+ console.error(usage);
294
+ process.exit(EXIT_CODES.BAD_ARGUMENTS);
295
+ }
296
+
297
+ if (flags.inflate === null || flags.inflateDir === null) {
298
+ console.error("for ts");
299
+ process.exit(EXIT_CODES.BAD_ARGUMENTS);
300
+ }
301
+
302
+ if (flags.inflate && flags.editor) {
303
+ console.error("bad arguments. cannot use --inflate with --editor");
304
+ process.exit(EXIT_CODES.BAD_ARGUMENTS);
305
+ }
306
+
307
+ if (flags.inflate && (flags.installTypes || flags.installTSConfig)) {
308
+ console.error("bad arguments. cannot use --inflate with --install-types");
309
+ process.exit(EXIT_CODES.BAD_ARGUMENTS);
310
+ }
311
+
312
+ if (flags.inflateSEA && !flags.inflate) {
313
+ console.error("bad arguments. cannot use --inflate-sea without --inflate");
314
+ process.exit(EXIT_CODES.BAD_ARGUMENTS);
315
+ }
316
+
317
+ if (flags.editor && (flags.installTypes || flags.installTSConfig)) {
318
+ console.error("bad arguments. cannot use --editor with --install-types");
319
+ process.exit(EXIT_CODES.BAD_ARGUMENTS);
320
+ }
321
+
322
+ if (flags.test && (flags.editor)) {
323
+ console.error("bad arguments. cannot use --editor with --test");
324
+ process.exit(EXIT_CODES.BAD_ARGUMENTS);
325
+ }
326
+
327
+ if (flags.migrateUp && (flags.editor || flags.compile || flags.test || flags.migrateDown || flags.inflate)) {
328
+ console.error("bad arguments. cannot use with --migrate-up");
329
+ process.exit(EXIT_CODES.BAD_ARGUMENTS);
330
+ }
331
+
332
+ if (flags.migrateDown && (flags.editor || flags.compile || flags.test || flags.migrateUp || flags.inflate)) {
333
+ console.error("bad arguments. cannot use with --migrate-down");
334
+ process.exit(EXIT_CODES.BAD_ARGUMENTS);
335
+ }
336
+
337
+ if (flags.generateDoc && (flags.editor || flags.compile || flags.test || flags.migrateUp || flags.inflate || flags.migrateDown)) {
338
+ console.error("bad arguments. cannot use with --generate-doc");
339
+ process.exit(EXIT_CODES.BAD_ARGUMENTS);
340
+ }
341
+
342
+ if ((flags.generateDocOut || flags.generateDocType) && !flags.generateDoc) {
343
+ console.error("bad arguments. cannot use without --generate-doc");
344
+ process.exit(EXIT_CODES.BAD_ARGUMENTS);
345
+ }
346
+
347
+ const generateDocType = flags.generateDocType ? flags.generateDocType as any : "MD";
348
+
349
+ return {
350
+ hotreload: flags.hotreload ? true : false,
351
+ installTypes: flags.installTypes ? true : false,
352
+ installTSConfig: flags.installTSConfig ? true : false,
353
+ inflate: flags.inflate,
354
+ migrateUp: flags.migrateUp ? true : false,
355
+ migrateDown: flags.migrateDown ? true : false,
356
+ test: flags.test ? true : false,
357
+ compile: flags.compile,
358
+ inflateSEA: flags.inflateSEA ? true : false,
359
+ inflateDir: flags.inflateDir ? resolve(process.cwd(), flags.inflateDir) : resolve(process.cwd(), "inflated"),
360
+ generateDoc: flags.generateDoc = flags.generateDoc ? flags.generateDoc : false,
361
+ generateDocOut: flags.generateDocOut ? resolve(process.cwd(), flags.generateDocOut) : generateDocType === "MD" ? resolve(process.cwd(), "API.md") : resolve(process.cwd(), "API.json"),
362
+ generateDocType,
363
+ services,
364
+ editor: flags.editor ? true : false
365
+ }
366
+ }
@@ -0,0 +1,124 @@
1
+ import { Logger, MinimalLogger } from "@miqro/core";
2
+ import { chmodSync, constants, existsSync, mkdirSync, readFileSync, unlinkSync, writeFileSync } from "node:fs";
3
+ import { getAsset as seaGetAsset, isSea } from "node:sea";
4
+ import { dirname, resolve } from "node:path";
5
+ import { calculateChecksum, calculateChecksumFromBuffer } from "./checksum.js";
6
+ import { arch, cwd, platform } from "node:process";
7
+ import { fileURLToPath } from 'node:url';
8
+ import { initESBuild } from "./esbuild.js";
9
+ import { initJSXJS } from "./jsx.js";
10
+
11
+ const __package_dirname = import.meta.url ? resolve(dirname(fileURLToPath(import.meta.url)), "..", "..", "..", "..") : null;
12
+
13
+ const ASSETS_ROUTER = {
14
+ "lib.cjs": "build/lib.cjs",
15
+ "version.tag": "sea/version.tag",
16
+ "node.version.tag": "sea/node.version.tag",
17
+ "esbuild.version.tag": "sea/esbuild.version.tag",
18
+ "postject.base64.cjs": "build/postject.base64.cjs",
19
+ "sea.basic.config.json": "sea/basic-config.json",
20
+ "node.sh": "sea/node.sh",
21
+ "install-nodejs.sh": "sea/install-nodejs.sh",
22
+ "compile.base64.sh": "sea/basic-compile.base64.sh",
23
+ "sign-remove.sh": "sea/sign-remove.sh",
24
+ "sign-add.sh": "sea/sign-add.sh",
25
+ "app.sh": "sea/app.sh",
26
+ "jsx.dom.js": "build/jsx.dom.js",
27
+ "types.json": "sea/types.json",
28
+ "editor-assets/editor.bundle.js": "build/editor.bundle.js",
29
+ "editor-assets/style.css": "editor/http/admin/editor/style.css",
30
+ "editor-assets/font.ttf": "editor/http/admin/editor/font.ttf"
31
+ }
32
+
33
+ export function getAsset(key: string): ArrayBuffer {
34
+ if (isSea()) {
35
+ return seaGetAsset(key);
36
+ } else {
37
+ if (!ASSETS_ROUTER[key]) {
38
+ if (key === "esbuild-binary") {
39
+ if (__package_dirname === null) {
40
+ return readFileSync(resolve(`./sea/esbuild`));
41
+ } else {
42
+ return readFileSync(resolve(__package_dirname, `./node_modules/@esbuild/${platform}-${arch}/bin/esbuild`));
43
+ }
44
+ } else {
45
+ throw new Error("asset not registered!");
46
+ }
47
+ }
48
+ return readFileSync(resolve(__package_dirname, ASSETS_ROUTER[key]));
49
+ }
50
+ }
51
+
52
+ export function getVersion() {
53
+ const VERSION = !isSea() ? "" : Buffer.from(getAsset("version.tag")).toString().trim();
54
+ const NODE_VERSION = !isSea() ? "" : Buffer.from(getAsset("node.version.tag")).toString().trim();
55
+ const ESBUILD_VERSION = !isSea() ? "" : Buffer.from(getAsset("esbuild.version.tag")).toString().trim();
56
+ return {
57
+ VERSION,
58
+ NODE_VERSION,
59
+ ESBUILD_VERSION
60
+ }
61
+ }
62
+
63
+ export async function initAssets(logger: Logger) {
64
+ const { VERSION, NODE_VERSION, ESBUILD_VERSION } = getVersion();
65
+ if (isSea()) {
66
+ logger.debug("version [%s]", VERSION);
67
+ logger.debug("Node.js version [%s]", NODE_VERSION);
68
+ logger.debug("esbuild version [%s]", ESBUILD_VERSION);
69
+ }
70
+ logger.debug("platform [%s-%s]", platform, arch);
71
+ await Promise.all([initJSXJS(logger), initESBuild(logger)]);
72
+ }
73
+
74
+ export async function initTypes(logger: MinimalLogger) {
75
+ const typesJSON = JSON.parse(Buffer.from(getAsset("types.json")).toString("utf-8"));
76
+ await Promise.all(Object.keys(typesJSON).map(typeFile =>
77
+ initAsset(logger, resolve(cwd(), "." + typeFile), Buffer.from(typesJSON[typeFile], "base64"))
78
+ ));
79
+ }
80
+
81
+ export async function validateAsset(logger: MinimalLogger | undefined, path: string, internalChecksum: string): Promise<boolean> {
82
+ mkdirSync(dirname(path), {
83
+ recursive: true
84
+ });
85
+ if (existsSync(path)) {
86
+ logger?.trace("validating [%s]", path);
87
+ const checksum = await calculateChecksum(path);
88
+ //const internalChecksum = await calculateChecksumFromBuffer(buffer);
89
+ if (internalChecksum !== checksum) {
90
+ logger?.trace("invalid [%s] checksum", path);
91
+ return false;
92
+ } else {
93
+ logger?.trace("validated [%s]", path);
94
+ return true;
95
+ }
96
+ } else {
97
+ logger?.trace("invalid [%s] doesnt exists", path);
98
+ return false;
99
+ }
100
+ }
101
+
102
+ export async function initAsset(logger: MinimalLogger, path: string, buffer: Buffer, executable?: boolean, checksum?: Promise<string>, logInstallasInfo = true) {
103
+ const valid = await validateAsset(logger, path, checksum === undefined ? await calculateChecksumFromBuffer(buffer) : await checksum);
104
+ if (existsSync(path)) {
105
+ if (!valid) {
106
+ logger.info("updating [%s]", path);
107
+ unlinkSync(path);
108
+ writeFileSync(path, buffer);
109
+ if (executable) {
110
+ chmodSync(path, constants.S_IXUSR | constants.S_IRUSR | constants.S_IWUSR);
111
+ }
112
+ }
113
+ } else {
114
+ if (!logInstallasInfo) {
115
+ logger.debug("installing [%s]", path);
116
+ } else {
117
+ logger.info("installing [%s]", path);
118
+ }
119
+ writeFileSync(path, buffer);
120
+ if (executable) {
121
+ chmodSync(path, constants.S_IXUSR | constants.S_IRUSR | constants.S_IWUSR);
122
+ }
123
+ }
124
+ }
@@ -0,0 +1,58 @@
1
+ import { createHash } from "node:crypto";
2
+ import { createReadStream } from "node:fs";
3
+ import { Readable } from "node:stream";
4
+
5
+ /**
6
+ *
7
+ * @param {string} filePath
8
+ * @returns {Promise<string>} the checksum
9
+ */
10
+ export async function calculateChecksum(filePath: string): Promise<string> {
11
+ return calculateChecksumFromStream(createReadStream(filePath));
12
+ }
13
+
14
+ /**
15
+ *
16
+ * @param {string} filePath
17
+ * @returns {Promise<string>} the checksum
18
+ */
19
+ export async function calculateChecksumFromStream(input: Readable): Promise<string> {
20
+ return new Promise<string>((resolve, reject) => {
21
+ try {
22
+ const hash = createHash('sha256');
23
+ input.on('readable', () => {
24
+ // Only one element is going to be produced by the
25
+ // hash stream.
26
+ const data = input.read();
27
+ if (data)
28
+ hash.update(data);
29
+ else {
30
+ //log(`${hash.digest('hex')} ${filename}`);
31
+ resolve(hash.digest('hex').toString());
32
+ }
33
+ });
34
+ input.on("error", (e) => {
35
+ reject(e);
36
+ });
37
+ } catch (e) {
38
+ reject(e);
39
+ }
40
+ });
41
+ }
42
+
43
+ /**
44
+ *
45
+ * @param {string} filePath
46
+ * @returns {Promise<string>} the checksum
47
+ */
48
+ export async function calculateChecksumFromBuffer(buffer: Buffer): Promise<string> {
49
+ return new Promise<string>((resolve, reject) => {
50
+ try {
51
+ const hash = createHash('sha256');
52
+ hash.update(buffer);
53
+ resolve(hash.digest('hex').toString());
54
+ } catch (e) {
55
+ reject(e);
56
+ }
57
+ });
58
+ }
@@ -0,0 +1,18 @@
1
+ import { checkEnvVariable } from "@miqro/core";
2
+
3
+ export const EXIT_CODES = {
4
+ BAD_ARGUMENTS: 10,
5
+ NORMAL_EXIT: 0,
6
+ GLOBALS_ALTERED: 80,
7
+ ABNORMAL: 98,
8
+ ABNORMAL_UNCONTROLLED: 99,
9
+ TEST_FAILED: 30,
10
+ }
11
+
12
+ export const CLEAR_JSX_CACHE = checkEnvVariable("CLEAR_JSX_CACHE", "1") === "1";
13
+
14
+ export const EDITOR_CONFIG_KEY = "$$editor$$";
15
+
16
+ //export const SERVER_IDENTIFIER = cluster.isPrimary ? "SERVER" : process.env["CLUSTER_NODE_NUMBER"] ? `WORKER_${process.env["CLUSTER_NODE_NUMBER"]}` : "WORKER";
17
+
18
+ //export const DB_IDENTIFIER = cluster.isPrimary ? "DATABASE" : process.env["CLUSTER_NODE_NUMBER"] ? `WORKER_${process.env["CLUSTER_NODE_NUMBER"]}_DATABASE` : "WORKER_DATABASE";
@@ -0,0 +1,84 @@
1
+ export const DEFAULT_CONTENT_TYPE = "application/octet-stream";
2
+
3
+ export const CONTENT_TYPE_MAP: {
4
+ [key: string]: string | undefined;
5
+ } = {
6
+ ".aac": "audio/aac",
7
+ ".abw": "application/x-abiword",
8
+ ".arc": "application/x-freearc",
9
+ ".avif": "image/avif",
10
+ ".avi": "video/x-msvideo",
11
+ ".azw": "application/vnd.amazon.ebook",
12
+ ".bin": "application/octet-stream",
13
+ ".bmp": "image/bmp",
14
+ ".bz": "application/x-bzip",
15
+ ".bz2": "application/x-bzip2",
16
+ ".cda": "application/x-cdf",
17
+ ".csh": "application/x-csh",
18
+ ".css": "text/css",
19
+ ".csv": "text/csv",
20
+ ".doc": "application/msword",
21
+ ".docx": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
22
+ ".eot": "application/vnd.ms-fontobject",
23
+ ".epub": "application/epub+zip",
24
+ ".gz": "application/gzip",
25
+ ".gif": "image/gif",
26
+ ".htm": "text/html",
27
+ ".html": "text/html",
28
+ ".ico": "image/vnd.microsoft.icon",
29
+ ".ics": "text/calendar",
30
+ ".jar": "application/java-archive",
31
+ ".jpeg": "image/jpeg",
32
+ ".jpg": "image/jpeg",
33
+ ".js": "text/javascript",
34
+ ".json": "application/json",
35
+ ".jsonld": "application/ld+json",
36
+ ".mid": "audio/midi audio/x-midi",
37
+ ".midi": "audio/midi audio/x-midi",
38
+ ".mjs": "text/javascript",
39
+ ".mp3": "audio/mpeg",
40
+ ".mp4": "video/mp4",
41
+ ".mpeg": "video/mpeg",
42
+ ".mpkg": "application/vnd.apple.installer+xml",
43
+ ".odp": "application/vnd.oasis.opendocument.presentation",
44
+ ".ods": "application/vnd.oasis.opendocument.spreadsheet",
45
+ ".odt": "application/vnd.oasis.opendocument.text",
46
+ ".oga": "audio/ogg",
47
+ ".ogv": "video/ogg",
48
+ ".ogx": "application/ogg",
49
+ ".opus": "audio/opus",
50
+ ".otf": "font/otf",
51
+ ".png": "image/png",
52
+ ".pdf": "application/pdf",
53
+ ".php": "application/x-httpd-php",
54
+ ".ppt": "application/vnd.ms-powerpoint",
55
+ ".pptx": "application/vnd.openxmlformats-officedocument.presentationml.presentation",
56
+ ".rar": "application/vnd.rar",
57
+ ".rtf": "application/rtf",
58
+ ".sh": "application/x-sh",
59
+ ".svg": "image/svg+xml",
60
+ ".swf": "application/x-shockwave-flash",
61
+ ".tar": "application/x-tar",
62
+ ".tif": "image/tiff",
63
+ ".tiff": "image/tiff",
64
+ ".ts": "video/mp2t",
65
+ ".ttf": "font/ttf",
66
+ ".txt": "text/plain",
67
+ ".vsd": "application/vnd.visio",
68
+ ".wav": "audio/wav",
69
+ ".weba": "audio/webm",
70
+ ".webm": "video/webm",
71
+ ".webp": "image/webp",
72
+ ".md": "text/markdown",
73
+ ".woff": "font/woff",
74
+ ".woff2": "font/woff2",
75
+ ".xhtml": "application/xhtml+xml",
76
+ ".xls": "application/vnd.ms-excel",
77
+ ".xlsx": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
78
+ ".xml": "application/xml",
79
+ ".xul": "application/vnd.mozilla.xul+xml",
80
+ ".zip": "application/zip",
81
+ ".3gp": "video/3gpp; audio/3gpp",
82
+ ".3g2": "video/3gpp2; audio/3gpp2",
83
+ ".7z": "application/x-7z-compressed"
84
+ };