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,382 +0,0 @@
1
- import { checkEnvVariable } from "@miqro/core";
2
- import { existsSync, readFileSync, 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 { __package_dirname, 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
- generateDocAll: boolean;
27
- generateDocType: "JSON" | "MD";
28
- migrateUp: boolean;
29
- migrateDown: boolean;
30
- compile: boolean;
31
- inflateSEA: boolean;
32
- inflateDir: string;
33
- services: string[];
34
- editor: boolean;
35
- hotreload: boolean;
36
- }
37
-
38
- /**
39
- * parse process.argv arguments
40
- */
41
- export function parseArguments(): Arguments {
42
- //env["LOG_FILE"] = env["LOG_FILE"] ? env["LOG_FILE"] : "./server.log";
43
-
44
- const args = cluster.isPrimary ? process.argv.slice(2, process.argv.length) : process.argv.slice(3, process.argv.length);
45
- const flags: {
46
- installTypes: boolean | null;
47
- installTSConfig: boolean | null;
48
- inflate: boolean | null;
49
- generateDoc: boolean | null;
50
- generateDocAll: boolean | null;
51
- generateDocOut?: string | null;
52
- generateDocType?: string | null;
53
- test: boolean;
54
- migrateUp: boolean | null;
55
- migrateDown: boolean | null;
56
- compile: boolean | null;
57
- inflateSEA: boolean | null;
58
- editor: boolean | null;
59
- inflateDir?: string | null;
60
- hotreload?: boolean | null;
61
- } = {
62
- hotreload: null,
63
- installTypes: null,
64
- installTSConfig: null,
65
- migrateUp: null,
66
- migrateDown: null,
67
- inflateSEA: null,
68
- compile: null,
69
- test: null,
70
- inflate: null,
71
- generateDoc: null,
72
- generateDocAll: null,
73
- generateDocOut: null,
74
- generateDocType: null,
75
- editor: null,
76
- inflateDir: null
77
- };
78
- const services: string[] = [];
79
-
80
- for (let i = 0; i < args.length; i++) {
81
- const argument = args[i];
82
- switch (argument) {
83
- case "-v":
84
- case "--version":
85
- const { VERSION, NODE_VERSION, ESBUILD_VERSION } = getVersion();
86
- if (isSea()) {
87
- console.log("version [%s]", VERSION);
88
- console.log("Node.js version [%s]", NODE_VERSION);
89
- console.log("esbuild version [%s]", ESBUILD_VERSION);
90
- console.log("platform [%s-%s]", platform, arch);
91
- } else {
92
- const packageJSON = JSON.parse(readFileSync(resolve(__package_dirname, "package.json")).toString());
93
- const VERSION = packageJSON.version;
94
- console.log("version [%s]", VERSION);
95
- }
96
- process.exit(EXIT_CODES.NORMAL_EXIT);
97
- case "-h":
98
- case "--help":
99
- console.log(usage);
100
- console.log(help);
101
- process.exit(EXIT_CODES.NORMAL_EXIT);
102
- case "--install-tsconfig":
103
- if (flags.inflate !== null || flags.installTSConfig !== null) {
104
- console.error("bad arguments.");
105
- console.error(usage);
106
- process.exit(EXIT_CODES.BAD_ARGUMENTS);
107
- }
108
- flags.installTSConfig = true;
109
- continue;
110
- case "--watch":
111
- if (flags.hotreload !== null) {
112
- console.error("bad arguments.");
113
- console.error(usage);
114
- process.exit(EXIT_CODES.BAD_ARGUMENTS);
115
- }
116
- flags.hotreload = true;
117
- continue;
118
- case "--generate-doc":
119
- if (flags.generateDoc !== null) {
120
- console.error("bad arguments.");
121
- console.error(usage);
122
- process.exit(EXIT_CODES.BAD_ARGUMENTS);
123
- }
124
- flags.generateDoc = true;
125
- continue;
126
- case "--generate-doc-all":
127
- if (flags.generateDocAll !== null) {
128
- console.error("bad arguments.");
129
- console.error(usage);
130
- process.exit(EXIT_CODES.BAD_ARGUMENTS);
131
- }
132
- flags.generateDocAll = true;
133
- continue;
134
- case "--generate-doc-out":
135
- if (flags.generateDocOut !== null) {
136
- console.error("bad arguments. --generate-doc-out already set.");
137
- console.error(usage);
138
- process.exit(EXIT_CODES.BAD_ARGUMENTS);
139
- }
140
- flags.generateDocOut = args[i + 1];
141
- if (typeof flags.generateDocOut !== "string") {
142
- console.error("bad arguments. --generate-doc-out missing value.");
143
- console.error(usage);
144
- process.exit(EXIT_CODES.BAD_ARGUMENTS);
145
- }
146
- i++;
147
- continue;
148
- case "--generate-doc-type":
149
- if (flags.generateDocType !== null) {
150
- console.error("bad arguments. --generate-doc-type already set.");
151
- console.error(usage);
152
- process.exit(EXIT_CODES.BAD_ARGUMENTS);
153
- }
154
- const gDt = String(args[i + 1]).toUpperCase() as any;
155
- if (typeof gDt !== "string" || (gDt !== "JSON" && gDt !== "MD")) {
156
- console.error("bad arguments. --generate-doc-type can be json or md.");
157
- console.error(usage);
158
- process.exit(EXIT_CODES.BAD_ARGUMENTS);
159
- }
160
- flags.generateDocType = gDt;
161
- i++;
162
- continue;
163
- case "--compile":
164
- if (flags.compile !== null) {
165
- if (flags.inflateDir === null) {
166
- flags.inflateDir = resolve(tmpdir(), `${BIN_NAME}-compile`, randomUUID());
167
- }
168
- console.error("bad arguments. --compile already set");
169
- console.error(usage);
170
- process.exit(EXIT_CODES.BAD_ARGUMENTS);
171
- }
172
- flags.compile = true;
173
- flags.inflateSEA = true;
174
- flags.inflate = true;
175
- continue;
176
- case "--install-types":
177
- if (flags.inflate !== null || flags.installTypes !== null) {
178
- console.error("bad arguments.");
179
- console.error(usage);
180
- process.exit(EXIT_CODES.BAD_ARGUMENTS);
181
- }
182
- flags.installTypes = true;
183
- continue;
184
- case "--editor":
185
- if (flags.editor !== null) {
186
- console.error("bad arguments.");
187
- console.error(usage);
188
- process.exit(EXIT_CODES.BAD_ARGUMENTS);
189
- }
190
- flags.editor = true;
191
- continue;
192
- case "--inflate-sea":
193
- if (flags.inflateSEA !== null) {
194
- console.error("bad arguments. --inflate-sea already set.");
195
- console.error(usage);
196
- process.exit(EXIT_CODES.BAD_ARGUMENTS);
197
- }
198
- flags.inflateSEA = true;
199
- continue;
200
- case "--migrate-up":
201
- if (flags.migrateUp !== null) {
202
- console.error("bad arguments.");
203
- console.error(usage);
204
- process.exit(EXIT_CODES.BAD_ARGUMENTS);
205
- }
206
- env["HOT_RELOAD"] = env["HOT_RELOAD"] ? env["HOT_RELOAD"] : "0";
207
- flags.migrateUp = true;
208
- continue;
209
- case "--migrate-down":
210
- if (flags.migrateDown !== null) {
211
- console.error("bad arguments.");
212
- console.error(usage);
213
- process.exit(EXIT_CODES.BAD_ARGUMENTS);
214
- }
215
- env["HOT_RELOAD"] = env["HOT_RELOAD"] ? env["HOT_RELOAD"] : "0";
216
- flags.migrateDown = true;
217
- continue;
218
- case "--inflate":
219
- if (flags.inflate !== null) {
220
- console.error("bad arguments.");
221
- console.error(usage);
222
- process.exit(EXIT_CODES.BAD_ARGUMENTS);
223
- }
224
- env["HOT_RELOAD"] = env["HOT_RELOAD"] ? env["HOT_RELOAD"] : "0";
225
- flags.inflate = true;
226
- continue;
227
- case "--test":
228
- if (flags.test !== null) {
229
- console.error("bad arguments.");
230
- console.error(usage);
231
- process.exit(EXIT_CODES.BAD_ARGUMENTS);
232
- }
233
- env["HOT_RELOAD"] = env["HOT_RELOAD"] ? env["HOT_RELOAD"] : "0";
234
- env["BROWSER"] = env["BROWSER"] ? env["BROWSER"] : "none";
235
- env["PORT"] = TEST_SOCKET;
236
- flags.test = true;
237
- continue;
238
- case "--service":
239
- if (args[i + 1] === undefined) {
240
- console.error("bad arguments. service directory not provided.");
241
- console.error(usage);
242
- process.exit(EXIT_CODES.BAD_ARGUMENTS);
243
- }
244
- services.push(args[i + 1]);
245
- i++;
246
- continue;
247
- case "--inflate-dir":
248
- if (flags.inflateDir !== null && flags.compile === null) {
249
- console.error("bad arguments. --inflate-dir already set.");
250
- console.error(usage);
251
- process.exit(EXIT_CODES.BAD_ARGUMENTS);
252
- }
253
- flags.inflateDir = args[i + 1];
254
- if (typeof flags.inflateDir !== "string") {
255
- console.error("bad arguments. inflate directory not provided.");
256
- console.error(usage);
257
- process.exit(EXIT_CODES.BAD_ARGUMENTS);
258
- }
259
- i++;
260
- continue;
261
- default:
262
- //console.error("IGNORING bad arguments. [%s]", argument);
263
- //continue;
264
- console.error("bad argument. [%s]", argument);
265
- console.error(usage);
266
- console.log(help);
267
- process.exit(EXIT_CODES.BAD_ARGUMENTS);
268
- /*flags.inflate = flags.inflate ? flags.inflate : false;
269
- flags.editor = flags.editor ? flags.editor : false;
270
- flags.inflateDir = flags.inflateDir ? flags.inflateDir : undefined;
271
- services.push(argument);
272
- continue;*/
273
- }
274
- }
275
-
276
- if (process.env["CLUSTER_NODE_NUMBER"]) {
277
- env["HOT_RELOAD"] = env["HOT_RELOAD"] ? env["HOT_RELOAD"] : "0";
278
- }
279
-
280
- flags.inflate = flags.inflate ? flags.inflate : false;
281
- flags.editor = flags.editor ? flags.editor : false;
282
- flags.test = flags.test ? flags.test : false;
283
- flags.inflateDir = flags.inflateDir ? flags.inflateDir : undefined;
284
-
285
- if (services.length === 0 && (!flags.installTSConfig && !flags.installTypes)) {
286
- flags.inflateDir = flags.inflateDir ? flags.inflateDir : undefined;
287
- console.error(`bad arguments. missing --service argument`);
288
- console.error(usage);
289
- process.exit(EXIT_CODES.BAD_ARGUMENTS);
290
- }
291
-
292
- const notDirServices = services.filter(service => existsSync(resolve(process.cwd(), service)) && !statSync(resolve(process.cwd(), service)).isDirectory());
293
-
294
- if (notDirServices.length > 0) {
295
- console.error(`bad arguments. [${notDirServices.join(",")}] are not directories.`);
296
- console.error(usage);
297
- process.exit(EXIT_CODES.BAD_ARGUMENTS);
298
- }
299
-
300
- if (flags.inflateDir && existsSync(resolve(cwd(), flags.inflateDir)) && !statSync(resolve(cwd(), flags.inflateDir)).isDirectory()) {
301
- console.error("bad arguments. inflate directory not a directory.");
302
- console.error(usage);
303
- process.exit(EXIT_CODES.BAD_ARGUMENTS);
304
- }
305
-
306
- if (!flags.inflate && flags.inflateDir) {
307
- console.error("bad arguments. to use --inflate-dir you must use --inflate.");
308
- console.error(usage);
309
- process.exit(EXIT_CODES.BAD_ARGUMENTS);
310
- }
311
-
312
- if (flags.inflate === null || flags.inflateDir === null) {
313
- console.error("for ts");
314
- process.exit(EXIT_CODES.BAD_ARGUMENTS);
315
- }
316
-
317
- if (flags.inflate && flags.editor) {
318
- console.error("bad arguments. cannot use --inflate with --editor");
319
- process.exit(EXIT_CODES.BAD_ARGUMENTS);
320
- }
321
-
322
- if (flags.inflate && (flags.installTypes || flags.installTSConfig)) {
323
- console.error("bad arguments. cannot use --inflate with --install-types");
324
- process.exit(EXIT_CODES.BAD_ARGUMENTS);
325
- }
326
-
327
- if (flags.inflateSEA && !flags.inflate) {
328
- console.error("bad arguments. cannot use --inflate-sea without --inflate");
329
- process.exit(EXIT_CODES.BAD_ARGUMENTS);
330
- }
331
-
332
- if (flags.editor && (flags.installTypes || flags.installTSConfig)) {
333
- console.error("bad arguments. cannot use --editor with --install-types");
334
- process.exit(EXIT_CODES.BAD_ARGUMENTS);
335
- }
336
-
337
- if (flags.test && (flags.hotreload || flags.editor || flags.compile || flags.inflate)) {
338
- console.error("bad arguments. cannot use --editor with --test");
339
- process.exit(EXIT_CODES.BAD_ARGUMENTS);
340
- }
341
-
342
- if (flags.migrateUp && (flags.hotreload || flags.editor || flags.compile || flags.test || flags.migrateDown || flags.inflate)) {
343
- console.error("bad arguments. cannot use with --migrate-up");
344
- process.exit(EXIT_CODES.BAD_ARGUMENTS);
345
- }
346
-
347
- if (flags.migrateDown && (flags.hotreload || flags.editor || flags.compile || flags.test || flags.migrateUp || flags.inflate)) {
348
- console.error("bad arguments. cannot use with --migrate-down");
349
- process.exit(EXIT_CODES.BAD_ARGUMENTS);
350
- }
351
-
352
- if (flags.generateDoc && (flags.hotreload || flags.editor || flags.compile || flags.test || flags.migrateUp || flags.inflate || flags.migrateDown)) {
353
- console.error("bad arguments. cannot use with --generate-doc");
354
- process.exit(EXIT_CODES.BAD_ARGUMENTS);
355
- }
356
-
357
- if ((flags.generateDocAll || flags.generateDocOut || flags.generateDocType) && !flags.generateDoc) {
358
- console.error("bad arguments. cannot use without --generate-doc");
359
- process.exit(EXIT_CODES.BAD_ARGUMENTS);
360
- }
361
-
362
- const generateDocType = flags.generateDocType ? flags.generateDocType as any : "MD";
363
-
364
- return {
365
- generateDocAll: flags.generateDocAll ? true : false,
366
- hotreload: flags.hotreload ? true : false,
367
- installTypes: flags.installTypes ? true : false,
368
- installTSConfig: flags.installTSConfig ? true : false,
369
- inflate: flags.inflate,
370
- migrateUp: flags.migrateUp ? true : false,
371
- migrateDown: flags.migrateDown ? true : false,
372
- test: flags.test ? true : false,
373
- compile: flags.compile,
374
- inflateSEA: flags.inflateSEA ? true : false,
375
- inflateDir: flags.inflateDir ? resolve(process.cwd(), flags.inflateDir) : resolve(process.cwd(), "inflated"),
376
- generateDoc: flags.generateDoc = flags.generateDoc ? flags.generateDoc : false,
377
- generateDocOut: flags.generateDocOut ? resolve(process.cwd(), flags.generateDocOut) : generateDocType === "MD" ? resolve(process.cwd(), "API.md") : resolve(process.cwd(), "API.json"),
378
- generateDocType,
379
- services,
380
- editor: flags.editor ? true : false
381
- }
382
- }
@@ -1,128 +0,0 @@
1
- //import { createRequire } from 'node:module';
2
- import { Logger, MinimalLogger } from "@miqro/core";
3
- import { chmodSync, constants, existsSync, mkdirSync, readFileSync, unlinkSync, writeFileSync } from "node:fs";
4
- import { getAsset as seaGetAsset, isSea } from "node:sea";
5
- import { dirname, resolve } from "node:path";
6
- import { calculateChecksum, calculateChecksumFromBuffer } from "./checksum.js";
7
- import { arch, cwd, platform } from "node:process";
8
- import { fileURLToPath } from 'node:url';
9
- import { initESBuild } from "./esbuild.js";
10
- import { initJSXJS } from "./jsx.js";
11
- //const require = createRequire(import.meta.url);
12
-
13
- export const __package_dirname = import.meta.url ? resolve(dirname(fileURLToPath(import.meta.url)), "..", "..", "..", "..") : null;
14
-
15
- const ASSETS_ROUTER = {
16
- "lib.cjs": "build/lib.cjs",
17
- "version.tag": "sea/version.tag",
18
- "node.version.tag": "sea/node.version.tag",
19
- "esbuild.version.tag": "sea/esbuild.version.tag",
20
- "postject.base64.cjs": "build/postject.base64.cjs",
21
- "sea.basic.config.json": "sea/basic-config.json",
22
- "node.sh": "sea/node.sh",
23
- "install-nodejs.sh": "sea/install-nodejs.sh",
24
- "compile.base64.sh": "sea/basic-compile.base64.sh",
25
- "sign-remove.sh": "sea/sign-remove.sh",
26
- "sign-add.sh": "sea/sign-add.sh",
27
- "app.sh": "sea/app.sh",
28
- "jsx.dom.js": "build/jsx.dom.js",
29
- "types.json": "sea/types.json",
30
- "editor-assets/editor.bundle.js": "build/editor.bundle.js",
31
- "editor-assets/style.css": "editor/http/admin/editor/style.css",
32
- "editor-assets/font.ttf": "editor/http/admin/editor/font.ttf"
33
- }
34
-
35
- export function getAsset(key: string): ArrayBuffer {
36
- if (isSea()) {
37
- return seaGetAsset(key);
38
- } else {
39
- if (!ASSETS_ROUTER[key]) {
40
- if (key === "esbuild-binary") {
41
- if (__package_dirname === null) {
42
- return readFileSync(resolve(`./sea/esbuild`));
43
- } else {
44
- //return readFileSync(resolve(__package_dirname, `./node_modules/@esbuild/${platform}-${arch}/bin/esbuild`));
45
- const esBinaryPath = resolve(dirname(import.meta.resolve(`esbuild`).substring("file://".length)), "..", "..", "@esbuild", `${platform}-${arch}`);
46
- return readFileSync(resolve(esBinaryPath, "bin", "esbuild"));
47
- }
48
- } else {
49
- throw new Error("asset not registered!");
50
- }
51
- }
52
- return readFileSync(resolve(__package_dirname, ASSETS_ROUTER[key]));
53
- }
54
- }
55
-
56
- export function getVersion() {
57
- const VERSION = !isSea() ? "" : Buffer.from(getAsset("version.tag")).toString().trim();
58
- const NODE_VERSION = !isSea() ? "" : Buffer.from(getAsset("node.version.tag")).toString().trim();
59
- const ESBUILD_VERSION = !isSea() ? "" : Buffer.from(getAsset("esbuild.version.tag")).toString().trim();
60
- return {
61
- VERSION,
62
- NODE_VERSION,
63
- ESBUILD_VERSION
64
- }
65
- }
66
-
67
- export async function initAssets(logger: Logger) {
68
- const { VERSION, NODE_VERSION, ESBUILD_VERSION } = getVersion();
69
- if (isSea()) {
70
- logger.debug("version [%s]", VERSION);
71
- logger.debug("Node.js version [%s]", NODE_VERSION);
72
- logger.debug("esbuild version [%s]", ESBUILD_VERSION);
73
- }
74
- logger.debug("platform [%s-%s]", platform, arch);
75
- await Promise.all([initJSXJS(logger), initESBuild(logger)]);
76
- }
77
-
78
- export async function initTypes(logger: MinimalLogger) {
79
- const typesJSON = JSON.parse(Buffer.from(getAsset("types.json")).toString("utf-8"));
80
- await Promise.all(Object.keys(typesJSON).map(typeFile =>
81
- initAsset(logger, resolve(cwd(), "." + typeFile), Buffer.from(typesJSON[typeFile], "base64"))
82
- ));
83
- }
84
-
85
- export async function validateAsset(logger: MinimalLogger | undefined, path: string, internalChecksum: string): Promise<boolean> {
86
- mkdirSync(dirname(path), {
87
- recursive: true
88
- });
89
- if (existsSync(path)) {
90
- logger?.trace("validating [%s]", path);
91
- const checksum = await calculateChecksum(path);
92
- //const internalChecksum = await calculateChecksumFromBuffer(buffer);
93
- if (internalChecksum !== checksum) {
94
- logger?.trace("invalid [%s] checksum", path);
95
- return false;
96
- } else {
97
- logger?.trace("validated [%s]", path);
98
- return true;
99
- }
100
- } else {
101
- logger?.trace("invalid [%s] doesnt exists", path);
102
- return false;
103
- }
104
- }
105
-
106
- export async function initAsset(logger: MinimalLogger, path: string, buffer: Buffer, executable?: boolean, checksum?: Promise<string>, logInstallasInfo = true) {
107
- const valid = await validateAsset(logger, path, checksum === undefined ? await calculateChecksumFromBuffer(buffer) : await checksum);
108
- if (existsSync(path)) {
109
- if (!valid) {
110
- logger.info("updating [%s]", path);
111
- unlinkSync(path);
112
- writeFileSync(path, buffer);
113
- if (executable) {
114
- chmodSync(path, constants.S_IXUSR | constants.S_IRUSR | constants.S_IWUSR);
115
- }
116
- }
117
- } else {
118
- if (!logInstallasInfo) {
119
- logger.debug("installing [%s]", path);
120
- } else {
121
- logger.info("installing [%s]", path);
122
- }
123
- writeFileSync(path, buffer);
124
- if (executable) {
125
- chmodSync(path, constants.S_IXUSR | constants.S_IRUSR | constants.S_IWUSR);
126
- }
127
- }
128
- }
@@ -1,58 +0,0 @@
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
- }
@@ -1,18 +0,0 @@
1
- export const EXIT_CODES = {
2
- BAD_ARGUMENTS: 10,
3
- NORMAL_EXIT: 0,
4
- GLOBALS_ALTERED: 80,
5
- ABNORMAL: 98,
6
- ABNORMAL_UNCONTROLLED: 99,
7
- TEST_FAILED: 30,
8
- }
9
-
10
- export const CLEAR_JSX_CACHE = (process.env["CLEAR_JSX_CACHE"] !== undefined ? process.env["CLEAR_JSX_CACHE"] : "1") === "1";
11
-
12
- export const EDITOR_CONFIG_KEY = "$$editor$$";
13
-
14
- export const HOT_RELOAD_PATH = "/hot-reload";
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";
@@ -1,84 +0,0 @@
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
- };