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.
- package/README.md +12 -0
- package/build/editor.bundle.js +37 -50409
- package/build/esm/src/cluster.js +0 -1
- package/build/esm/src/common/arguments.d.ts +12 -0
- package/build/esm/src/common/arguments.js +111 -10
- package/build/esm/src/common/assets.js +2 -3
- package/build/esm/src/common/checksum.js +0 -1
- package/build/esm/src/common/constants.js +0 -1
- package/build/esm/src/common/content-type.js +0 -1
- package/build/esm/src/common/esbuild.js +0 -1
- package/build/esm/src/common/exit.js +0 -1
- package/build/esm/src/common/fs.js +0 -1
- package/build/esm/src/common/help.d.ts +1 -1
- package/build/esm/src/common/help.js +4 -1
- package/build/esm/src/common/jsx.d.ts +8 -1
- package/build/esm/src/common/jsx.js +84 -2
- package/build/esm/src/common/paths.d.ts +4 -0
- package/build/esm/src/common/paths.js +41 -2
- package/build/esm/src/common/watch.js +0 -1
- package/build/esm/src/inflate/inflate-sea.js +27 -16
- package/build/esm/src/inflate/inflate.js +2 -1
- package/build/esm/src/inflate/md.d.ts +1 -0
- package/build/esm/src/inflate/md.js +9 -6
- package/build/esm/src/inflate/setup-auth.js +0 -1
- package/build/esm/src/inflate/setup-cors.js +0 -1
- package/build/esm/src/inflate/setup-db.js +0 -1
- package/build/esm/src/inflate/setup-error.d.ts +3 -0
- package/build/esm/src/inflate/setup-error.js +40 -0
- package/build/esm/src/inflate/setup-http.js +13 -4
- package/build/esm/src/inflate/setup-log.js +0 -1
- package/build/esm/src/inflate/setup-middleware.d.ts +4 -0
- package/build/esm/src/inflate/setup-middleware.js +42 -0
- package/build/esm/src/inflate/setup-server-config.js +0 -1
- package/build/esm/src/inflate/setup-test.js +0 -1
- package/build/esm/src/inflate/setup-ws.js +0 -1
- package/build/esm/src/inflate/setup.doc.d.ts +4 -0
- package/build/esm/src/inflate/setup.doc.js +62 -0
- package/build/esm/src/inflate/utils/sea-utils.js +0 -1
- package/build/esm/src/lib.js +0 -1
- package/build/esm/src/main.js +3 -4
- package/build/esm/src/services/app.d.ts +1 -0
- package/build/esm/src/services/app.js +18 -2
- package/build/esm/src/services/editor.js +0 -1
- package/build/esm/src/services/globals.js +0 -1
- package/build/esm/src/services/hot-reload.js +0 -1
- package/build/esm/src/services/migrations.js +0 -1
- package/build/esm/src/services/utils/admin-interface.js +0 -1
- package/build/esm/src/services/utils/cache.js +0 -1
- package/build/esm/src/services/utils/cluster-cache.js +0 -1
- package/build/esm/src/services/utils/cluster-ws.js +0 -1
- package/build/esm/src/services/utils/db-manager.js +0 -1
- package/build/esm/src/services/utils/get-route.js +0 -1
- package/build/esm/src/services/utils/log-transport.js +0 -1
- package/build/esm/src/services/utils/log.js +2 -2
- package/build/esm/src/services/utils/server-interface.js +0 -1
- package/build/esm/src/services/utils/websocketmanager.js +0 -1
- package/build/esm/src/types.d.ts +16 -1
- package/build/esm/src/types.js +0 -1
- package/build/lib.cjs +890 -322
- package/package.json +4 -2
- package/sea/types.json +1 -1
- package/tsconfig.json +1 -1
- package/bin/miqro +0 -34
- package/build/esm/editor/auth.d.ts +0 -6
- package/build/esm/editor/auth.js +0 -42
- package/build/esm/editor/auth.js.map +0 -1
- package/build/esm/editor/common/admin-interface.d.ts +0 -36
- package/build/esm/editor/common/admin-interface.js +0 -45
- package/build/esm/editor/common/admin-interface.js.map +0 -1
- package/build/esm/editor/common/constants.d.ts +0 -4
- package/build/esm/editor/common/constants.js +0 -21
- package/build/esm/editor/common/constants.js.map +0 -1
- package/build/esm/editor/common/constants.server.d.ts +0 -2
- package/build/esm/editor/common/constants.server.js +0 -5
- package/build/esm/editor/common/constants.server.js.map +0 -1
- package/build/esm/editor/common/editor-index.d.ts +0 -2
- package/build/esm/editor/common/editor-index.js +0 -15
- package/build/esm/editor/common/editor-index.js.map +0 -1
- package/build/esm/editor/common/html-encode.d.ts +0 -1
- package/build/esm/editor/common/html-encode.js +0 -15
- package/build/esm/editor/common/html-encode.js.map +0 -1
- package/build/esm/editor/common/log-socket.d.ts +0 -15
- package/build/esm/editor/common/log-socket.js +0 -71
- package/build/esm/editor/common/log-socket.js.map +0 -1
- package/build/esm/editor/common/templates.d.ts +0 -11
- package/build/esm/editor/common/templates.js +0 -444
- package/build/esm/editor/common/templates.js.map +0 -1
- package/build/esm/editor/components/api-preview.d.ts +0 -11
- package/build/esm/editor/components/api-preview.js +0 -91
- package/build/esm/editor/components/api-preview.js.map +0 -1
- package/build/esm/editor/components/editor.d.ts +0 -16
- package/build/esm/editor/components/editor.js +0 -358
- package/build/esm/editor/components/editor.js.map +0 -1
- package/build/esm/editor/components/file-browser.d.ts +0 -37
- package/build/esm/editor/components/file-browser.js +0 -127
- package/build/esm/editor/components/file-browser.js.map +0 -1
- package/build/esm/editor/components/file-editor-toolbar.d.ts +0 -22
- package/build/esm/editor/components/file-editor-toolbar.js +0 -94
- package/build/esm/editor/components/file-editor-toolbar.js.map +0 -1
- package/build/esm/editor/components/file-editor.d.ts +0 -32
- package/build/esm/editor/components/file-editor.js +0 -60
- package/build/esm/editor/components/file-editor.js.map +0 -1
- package/build/esm/editor/components/filter-query.d.ts +0 -1
- package/build/esm/editor/components/filter-query.js +0 -23
- package/build/esm/editor/components/filter-query.js.map +0 -1
- package/build/esm/editor/components/highlight-text-area.d.ts +0 -11
- package/build/esm/editor/components/highlight-text-area.js +0 -139
- package/build/esm/editor/components/highlight-text-area.js.map +0 -1
- package/build/esm/editor/components/log-viewer.d.ts +0 -6
- package/build/esm/editor/components/log-viewer.js +0 -70
- package/build/esm/editor/components/log-viewer.js.map +0 -1
- package/build/esm/editor/components/new-file.d.ts +0 -10
- package/build/esm/editor/components/new-file.js +0 -118
- package/build/esm/editor/components/new-file.js.map +0 -1
- package/build/esm/editor/components/scroll-query.d.ts +0 -7
- package/build/esm/editor/components/scroll-query.js +0 -22
- package/build/esm/editor/components/scroll-query.js.map +0 -1
- package/build/esm/editor/components/start-page.d.ts +0 -13
- package/build/esm/editor/components/start-page.js +0 -31
- package/build/esm/editor/components/start-page.js.map +0 -1
- package/build/esm/editor/http/admin/editor/api/fs/delete.api.d.ts +0 -3
- package/build/esm/editor/http/admin/editor/api/fs/delete.api.js +0 -30
- package/build/esm/editor/http/admin/editor/api/fs/delete.api.js.map +0 -1
- package/build/esm/editor/http/admin/editor/api/fs/read.api.d.ts +0 -5
- package/build/esm/editor/http/admin/editor/api/fs/read.api.js +0 -50
- package/build/esm/editor/http/admin/editor/api/fs/read.api.js.map +0 -1
- package/build/esm/editor/http/admin/editor/api/fs/rename.api.d.ts +0 -4
- package/build/esm/editor/http/admin/editor/api/fs/rename.api.js +0 -40
- package/build/esm/editor/http/admin/editor/api/fs/rename.api.js.map +0 -1
- package/build/esm/editor/http/admin/editor/api/fs/scan.api.d.ts +0 -26
- package/build/esm/editor/http/admin/editor/api/fs/scan.api.js +0 -150
- package/build/esm/editor/http/admin/editor/api/fs/scan.api.js.map +0 -1
- package/build/esm/editor/http/admin/editor/api/fs/write.api.d.ts +0 -3
- package/build/esm/editor/http/admin/editor/api/fs/write.api.js +0 -39
- package/build/esm/editor/http/admin/editor/api/fs/write.api.js.map +0 -1
- package/build/esm/editor/http/admin/editor/api/server/reload.api.d.ts +0 -10
- package/build/esm/editor/http/admin/editor/api/server/reload.api.js +0 -47
- package/build/esm/editor/http/admin/editor/api/server/reload.api.js.map +0 -1
- package/build/esm/editor/http/admin/editor/api/server/restart.api.d.ts +0 -10
- package/build/esm/editor/http/admin/editor/api/server/restart.api.js +0 -46
- package/build/esm/editor/http/admin/editor/api/server/restart.api.js.map +0 -1
- package/build/esm/editor/http/admin/editor/editor.d.ts +0 -1
- package/build/esm/editor/http/admin/editor/editor.js +0 -8
- package/build/esm/editor/http/admin/editor/editor.js.map +0 -1
- package/build/esm/editor/http/admin/editor/index.api.d.ts +0 -3
- package/build/esm/editor/http/admin/editor/index.api.js +0 -22
- package/build/esm/editor/http/admin/editor/index.api.js.map +0 -1
- package/build/esm/editor/server.d.ts +0 -3
- package/build/esm/editor/server.js +0 -50
- package/build/esm/editor/server.js.map +0 -1
- package/build/esm/editor/ws.d.ts +0 -3
- package/build/esm/editor/ws.js +0 -12
- package/build/esm/editor/ws.js.map +0 -1
- package/build/esm/src/bin/compile.d.ts +0 -3
- package/build/esm/src/bin/compile.js +0 -31
- package/build/esm/src/bin/compile.js.map +0 -1
- package/build/esm/src/bin/doc-md.d.ts +0 -17
- package/build/esm/src/bin/doc-md.js +0 -187
- package/build/esm/src/bin/doc-md.js.map +0 -1
- package/build/esm/src/bin/generate-doc.d.ts +0 -4
- package/build/esm/src/bin/generate-doc.js +0 -49
- package/build/esm/src/bin/generate-doc.js.map +0 -1
- package/build/esm/src/bin/test.d.ts +0 -3
- package/build/esm/src/bin/test.js +0 -68
- package/build/esm/src/bin/test.js.map +0 -1
- package/build/esm/src/bin/types.d.ts +0 -3
- package/build/esm/src/bin/types.js +0 -21
- package/build/esm/src/bin/types.js.map +0 -1
- package/build/esm/src/cluster.js.map +0 -1
- package/build/esm/src/common/arguments.js.map +0 -1
- package/build/esm/src/common/assets.js.map +0 -1
- package/build/esm/src/common/checksum.js.map +0 -1
- package/build/esm/src/common/constants.js.map +0 -1
- package/build/esm/src/common/content-type.js.map +0 -1
- package/build/esm/src/common/esbuild.js.map +0 -1
- package/build/esm/src/common/exit.js.map +0 -1
- package/build/esm/src/common/fs.js.map +0 -1
- package/build/esm/src/common/help.js.map +0 -1
- package/build/esm/src/common/jsx.js.map +0 -1
- package/build/esm/src/common/paths.js.map +0 -1
- package/build/esm/src/common/watch.js.map +0 -1
- package/build/esm/src/inflate/inflate-sea.js.map +0 -1
- package/build/esm/src/inflate/inflate.js.map +0 -1
- package/build/esm/src/inflate/md.js.map +0 -1
- package/build/esm/src/inflate/setup-auth.js.map +0 -1
- package/build/esm/src/inflate/setup-cors.js.map +0 -1
- package/build/esm/src/inflate/setup-db.js.map +0 -1
- package/build/esm/src/inflate/setup-http.js.map +0 -1
- package/build/esm/src/inflate/setup-log.js.map +0 -1
- package/build/esm/src/inflate/setup-server-config.js.map +0 -1
- package/build/esm/src/inflate/setup-test.js.map +0 -1
- package/build/esm/src/inflate/setup-ws.js.map +0 -1
- package/build/esm/src/inflate/utils/sea-utils.js.map +0 -1
- package/build/esm/src/lib.js.map +0 -1
- package/build/esm/src/main.js.map +0 -1
- package/build/esm/src/services/app.js.map +0 -1
- package/build/esm/src/services/editor.js.map +0 -1
- package/build/esm/src/services/globals.js.map +0 -1
- package/build/esm/src/services/hot-reload.js.map +0 -1
- package/build/esm/src/services/migrations.js.map +0 -1
- package/build/esm/src/services/utils/admin-interface.js.map +0 -1
- package/build/esm/src/services/utils/cache.js.map +0 -1
- package/build/esm/src/services/utils/cluster-cache.js.map +0 -1
- package/build/esm/src/services/utils/cluster-ws.js.map +0 -1
- package/build/esm/src/services/utils/db-manager.js.map +0 -1
- package/build/esm/src/services/utils/get-route.js.map +0 -1
- package/build/esm/src/services/utils/log-transport.js.map +0 -1
- package/build/esm/src/services/utils/log.js.map +0 -1
- package/build/esm/src/services/utils/server-interface.js.map +0 -1
- package/build/esm/src/services/utils/websocketmanager.js.map +0 -1
- package/build/esm/src/types.js.map +0 -1
- package/editor/auth.ts +0 -51
- package/editor/common/admin-interface.ts +0 -84
- package/editor/common/constants.server.ts +0 -5
- package/editor/common/constants.ts +0 -21
- package/editor/common/editor-index.tsx +0 -17
- package/editor/common/html-encode.ts +0 -14
- package/editor/common/log-socket.tsx +0 -85
- package/editor/common/templates.ts +0 -448
- package/editor/components/api-preview.tsx +0 -116
- package/editor/components/editor.tsx +0 -486
- package/editor/components/file-browser.tsx +0 -308
- package/editor/components/file-editor-toolbar.tsx +0 -191
- package/editor/components/file-editor.tsx +0 -122
- package/editor/components/filter-query.tsx +0 -22
- package/editor/components/highlight-text-area.tsx +0 -159
- package/editor/components/log-viewer.tsx +0 -110
- package/editor/components/new-file.tsx +0 -169
- package/editor/components/scroll-query.tsx +0 -22
- package/editor/components/start-page.tsx +0 -49
- package/editor/http/admin/editor/api/fs/delete.api.tsx +0 -32
- package/editor/http/admin/editor/api/fs/read.api.tsx +0 -55
- package/editor/http/admin/editor/api/fs/rename.api.tsx +0 -41
- package/editor/http/admin/editor/api/fs/scan.api.tsx +0 -181
- package/editor/http/admin/editor/api/fs/write.api.tsx +0 -41
- package/editor/http/admin/editor/api/server/reload.api.ts +0 -53
- package/editor/http/admin/editor/api/server/restart.api.tsx +0 -52
- package/editor/http/admin/editor/editor.tsx +0 -8
- package/editor/http/admin/editor/index.api.tsx +0 -39
- package/editor/server.ts +0 -57
- package/editor/static/android-chrome-192x192.png +0 -0
- package/editor/static/android-chrome-512x512.png +0 -0
- package/editor/static/apple-touch-icon.png +0 -0
- package/editor/static/editor.bundle.in.mjs +0 -20
- package/editor/static/favicon-16x16.png +0 -0
- package/editor/static/favicon-32x32.png +0 -0
- package/editor/static/favicon.ico +0 -0
- package/editor/static/site.webmanifest +0 -19
- package/editor/ws.ts +0 -15
- package/sea/base64.js +0 -3
- package/sea/compile.sh +0 -127
- package/sea/copy-types.sh +0 -46
- package/sea/editor-assets/editor.bundle.in.mjs +0 -19
- package/sea/generate-global-types-asset-json.js +0 -34
- package/sea/release-tar.sh +0 -5
- package/sea/tsc.sh +0 -1
- package/sea/version.tag.js +0 -11
- package/src/bin/compile.ts +0 -35
- package/src/bin/doc-md.ts +0 -210
- package/src/bin/generate-doc.ts +0 -58
- package/src/bin/test.ts +0 -92
- package/src/bin/types.ts +0 -22
- package/src/cluster.ts +0 -27
- package/src/common/arguments.ts +0 -382
- package/src/common/assets.ts +0 -128
- package/src/common/checksum.ts +0 -58
- package/src/common/constants.ts +0 -18
- package/src/common/content-type.ts +0 -84
- package/src/common/esbuild.ts +0 -94
- package/src/common/exit.ts +0 -91
- package/src/common/fs.ts +0 -17
- package/src/common/help.ts +0 -47
- package/src/common/jsx.ts +0 -426
- package/src/common/paths.ts +0 -117
- package/src/common/watch.ts +0 -85
- package/src/inflate/inflate-sea.ts +0 -194
- package/src/inflate/inflate.ts +0 -96
- package/src/inflate/md.ts +0 -20
- package/src/inflate/setup-auth.ts +0 -40
- package/src/inflate/setup-cors.ts +0 -40
- package/src/inflate/setup-db.ts +0 -113
- package/src/inflate/setup-http.ts +0 -643
- package/src/inflate/setup-log.ts +0 -44
- package/src/inflate/setup-server-config.ts +0 -47
- package/src/inflate/setup-test.ts +0 -23
- package/src/inflate/setup-ws.ts +0 -48
- package/src/inflate/utils/sea-utils.ts +0 -14
- package/src/lib.ts +0 -19
- package/src/main.ts +0 -87
- package/src/services/app.ts +0 -640
- package/src/services/editor.tsx +0 -101
- package/src/services/globals.ts +0 -143
- package/src/services/hot-reload.ts +0 -48
- package/src/services/migrations.ts +0 -66
- package/src/services/utils/admin-interface.ts +0 -37
- package/src/services/utils/cache.ts +0 -88
- package/src/services/utils/cluster-cache.ts +0 -230
- package/src/services/utils/cluster-ws.ts +0 -197
- package/src/services/utils/db-manager.ts +0 -92
- package/src/services/utils/get-route.ts +0 -70
- package/src/services/utils/log-transport.ts +0 -75
- package/src/services/utils/log.ts +0 -91
- package/src/services/utils/server-interface.ts +0 -172
- package/src/services/utils/websocketmanager.ts +0 -149
- package/src/types/@esbuild.d.ts +0 -1
- package/src/types/@miqro/core.d.ts +0 -2
- package/src/types/@miqro/jsx.d.ts +0 -2
- package/src/types/@miqro/parser.d.ts +0 -2
- package/src/types/@miqro/query.d.ts +0 -2
- package/src/types/@miqro/request.d.ts +0 -2
- package/src/types/@miqro/test.d.ts +0 -2
- package/src/types/@miqro.d.ts +0 -1
- package/src/types/@types.d.ts +0 -1
- package/src/types/browser.globals.d.ts +0 -9
- package/src/types/globals.d.ts +0 -2
- package/src/types/jsx.globals.d.ts +0 -37
- package/src/types/miqro.d.ts +0 -111
- package/src/types/postject.d.ts +0 -1
- package/src/types/server.globals.d.ts +0 -72
- package/src/types.ts +0 -204
- /package/{editor/http/admin/editor → build}/font.ttf +0 -0
- /package/{editor/http/admin/editor → build}/style.css +0 -0
|
@@ -2,12 +2,8 @@ import * as showdown from "showdown";
|
|
|
2
2
|
import { readFileSync } from "node:fs";
|
|
3
3
|
export function inflateMD2HTML(inFile, logger) {
|
|
4
4
|
try {
|
|
5
|
-
const converter = new showdown.default.Converter();
|
|
6
|
-
converter.setFlavor('github');
|
|
7
|
-
/*converter.setOption("tables", true);
|
|
8
|
-
converter.setOption("rawHeaderId", true);*/
|
|
9
5
|
const text = readFileSync(inFile).toString();
|
|
10
|
-
const html =
|
|
6
|
+
const html = inflateMDString2HTML(text);
|
|
11
7
|
return html;
|
|
12
8
|
}
|
|
13
9
|
catch (e) {
|
|
@@ -16,4 +12,11 @@ export function inflateMD2HTML(inFile, logger) {
|
|
|
16
12
|
throw e;
|
|
17
13
|
}
|
|
18
14
|
}
|
|
19
|
-
|
|
15
|
+
export function inflateMDString2HTML(text, logger) {
|
|
16
|
+
const converter = new showdown.default.Converter();
|
|
17
|
+
converter.setFlavor('github');
|
|
18
|
+
/*converter.setOption("tables", true);
|
|
19
|
+
converter.setOption("rawHeaderId", true);*/
|
|
20
|
+
const html = converter.makeHtml(text);
|
|
21
|
+
return html;
|
|
22
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { Logger, Router } from "@miqro/core";
|
|
2
|
+
import { InflateError } from "../common/jsx.js";
|
|
3
|
+
export declare function setupError(logger: Logger, servicePath: string, service: string, mainRouter: Router, inflateDir: string | undefined | false, inflateSea: boolean, errors: InflateError[]): Promise<void>;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { importErrorConfigModule, inflateJSX } from "../common/jsx.js";
|
|
2
|
+
import { getErrorConfigPath } from "../common/paths.js";
|
|
3
|
+
import { basename, dirname, join, relative, resolve } from "node:path";
|
|
4
|
+
import { mkdirSync, writeFileSync } from "node:fs";
|
|
5
|
+
import { cwd } from "node:process";
|
|
6
|
+
export async function setupError(logger, servicePath, service, mainRouter, inflateDir, inflateSea, errors) {
|
|
7
|
+
const errorPath = getErrorConfigPath(servicePath); //resolve(process.cwd(), service, "auth.ts");
|
|
8
|
+
if (errorPath) {
|
|
9
|
+
try {
|
|
10
|
+
const errorModule = await importErrorConfigModule(errorPath, logger);
|
|
11
|
+
logger.debug("setting up error handling from [%s]", join(service, basename(errorPath)));
|
|
12
|
+
if (errorModule && errorModule.catch) {
|
|
13
|
+
for (const m of errorModule.catch) {
|
|
14
|
+
mainRouter.catch(m);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
if (inflateDir && inflateSea) {
|
|
18
|
+
const inflatePath = resolve(inflateDir, service, "catch.js");
|
|
19
|
+
mkdirSync(dirname(inflatePath), {
|
|
20
|
+
recursive: true
|
|
21
|
+
});
|
|
22
|
+
logger.log("writing [%s]", relative(cwd(), inflatePath));
|
|
23
|
+
writeFileSync(inflatePath, await inflateJSX(errorPath, {
|
|
24
|
+
embemedJSX: false,
|
|
25
|
+
minify: false,
|
|
26
|
+
useExport: true,
|
|
27
|
+
logger
|
|
28
|
+
}));
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
catch (e) {
|
|
32
|
+
errors.push({
|
|
33
|
+
filePath: errorPath,
|
|
34
|
+
error: e
|
|
35
|
+
});
|
|
36
|
+
logger.error("error with " + errorPath);
|
|
37
|
+
logger.error(e);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -13,12 +13,17 @@ import { setupAUTH } from "./setup-auth.js";
|
|
|
13
13
|
import { getRoutes } from "../services/utils/get-route.js";
|
|
14
14
|
import { describeFilePath } from "../common/fs.js";
|
|
15
15
|
import { inflateMD2HTML } from "./md.js";
|
|
16
|
+
import { setupMiddleware } from "./setup-middleware.js";
|
|
17
|
+
import { setupError } from "./setup-error.js";
|
|
16
18
|
export async function setupHTTPRouter(server, logger, hotreload, servicePath, service, routeFileMap, staticFileMap, inflateDir, inflateSea, errors) {
|
|
17
19
|
const mainRouter = new Router();
|
|
18
20
|
const apiRouterPath = getHTTPRouterPath(servicePath); //resolve(process.cwd(), service, "http");
|
|
21
|
+
let middlewareConfig = null;
|
|
22
|
+
await setupError(logger, servicePath, service, mainRouter, inflateDir, inflateSea, errors);
|
|
23
|
+
await setupCORS(logger, servicePath, service, mainRouter, inflateDir, inflateSea, errors);
|
|
24
|
+
await setupAUTH(logger, servicePath, service, mainRouter, inflateDir, inflateSea, errors);
|
|
25
|
+
middlewareConfig = await setupMiddleware(logger, servicePath, service, mainRouter, inflateDir, inflateSea, errors);
|
|
19
26
|
if (apiRouterPath) {
|
|
20
|
-
await setupCORS(logger, servicePath, service, mainRouter, inflateDir, inflateSea, errors);
|
|
21
|
-
await setupAUTH(logger, servicePath, service, mainRouter, inflateDir, inflateSea, errors);
|
|
22
27
|
logger.trace("setting up http routes from [%s]", service);
|
|
23
28
|
const { router: httpRouter } = await createRouterFromDirectory(server, hotreload, service, logger, apiRouterPath, errors, routeFileMap, staticFileMap, inflateDir, inflateSea);
|
|
24
29
|
mainRouter.use(httpRouter);
|
|
@@ -29,6 +34,11 @@ export async function setupHTTPRouter(server, logger, hotreload, servicePath, se
|
|
|
29
34
|
const staticRouter = createStaticRouterFromDirectory(service, logger, staticFilesPath, inflateDir, routeFileMap, staticFileMap);
|
|
30
35
|
mainRouter.use(staticRouter);
|
|
31
36
|
}
|
|
37
|
+
if (middlewareConfig && middlewareConfig.post) {
|
|
38
|
+
for (const m of middlewareConfig.post) {
|
|
39
|
+
mainRouter.use(m);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
32
42
|
return mainRouter;
|
|
33
43
|
}
|
|
34
44
|
function createStaticRoute(service, logger, router, dir, file, inflateDir, routeFileMap, staticFileMap) {
|
|
@@ -508,7 +518,7 @@ async function createRouterFromDirectory(server, hotreload, service, logger, dir
|
|
|
508
518
|
};
|
|
509
519
|
}
|
|
510
520
|
export function scanFiles(path, ret = []) {
|
|
511
|
-
const files = readdirSync(path);
|
|
521
|
+
const files = readdirSync(path).sort();
|
|
512
522
|
for (const file of files) {
|
|
513
523
|
const filePath = pathResolve(path, file);
|
|
514
524
|
if (statSync(filePath).isDirectory()) {
|
|
@@ -540,4 +550,3 @@ async function getJSON(req, res, url, basePath, out) {
|
|
|
540
550
|
const toRender = await (typeof out === "function" ? out(req, res) : out);
|
|
541
551
|
return JSON.stringify(toRender, undefined, 2);
|
|
542
552
|
}
|
|
543
|
-
//# sourceMappingURL=setup-http.js.map
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { Logger, Router } from "@miqro/core";
|
|
2
|
+
import { InflateError } from "../common/jsx.js";
|
|
3
|
+
import { MiddlewareConfig } from "../types.js";
|
|
4
|
+
export declare function setupMiddleware(logger: Logger, servicePath: string, service: string, mainRouter: Router, inflateDir: string | undefined | false, inflateSea: boolean, errors: InflateError[]): Promise<MiddlewareConfig | null>;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { importMiddlewareConfigModule, inflateJSX } from "../common/jsx.js";
|
|
2
|
+
import { getMiddlewareConfigPath } from "../common/paths.js";
|
|
3
|
+
import { basename, dirname, join, relative, resolve } from "node:path";
|
|
4
|
+
import { mkdirSync, writeFileSync } from "node:fs";
|
|
5
|
+
import { cwd } from "node:process";
|
|
6
|
+
export async function setupMiddleware(logger, servicePath, service, mainRouter, inflateDir, inflateSea, errors) {
|
|
7
|
+
const middlewarePath = getMiddlewareConfigPath(servicePath); //resolve(process.cwd(), service, "auth.ts");
|
|
8
|
+
if (middlewarePath) {
|
|
9
|
+
try {
|
|
10
|
+
const middewareModule = await importMiddlewareConfigModule(middlewarePath, logger);
|
|
11
|
+
logger.debug("setting up middleware from [%s]", join(service, basename(middlewarePath)));
|
|
12
|
+
if (middewareModule && middewareModule.middleware) {
|
|
13
|
+
for (const m of middewareModule.middleware) {
|
|
14
|
+
mainRouter.use(m);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
if (inflateDir && inflateSea) {
|
|
18
|
+
const inflatePath = resolve(inflateDir, service, "middleware.js");
|
|
19
|
+
mkdirSync(dirname(inflatePath), {
|
|
20
|
+
recursive: true
|
|
21
|
+
});
|
|
22
|
+
logger.log("writing [%s]", relative(cwd(), inflatePath));
|
|
23
|
+
writeFileSync(inflatePath, await inflateJSX(middlewarePath, {
|
|
24
|
+
embemedJSX: false,
|
|
25
|
+
minify: false,
|
|
26
|
+
useExport: true,
|
|
27
|
+
logger
|
|
28
|
+
}));
|
|
29
|
+
}
|
|
30
|
+
return middewareModule;
|
|
31
|
+
}
|
|
32
|
+
catch (e) {
|
|
33
|
+
errors.push({
|
|
34
|
+
filePath: middlewarePath,
|
|
35
|
+
error: e
|
|
36
|
+
});
|
|
37
|
+
logger.error("error with " + middlewarePath);
|
|
38
|
+
logger.error(e);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { Logger, Router } from "@miqro/core";
|
|
2
|
+
import { InflateError } from "../common/jsx.js";
|
|
3
|
+
import { RouteFileMap } from "./setup-http.js";
|
|
4
|
+
export declare function setupDoc(logger: Logger, servicePath: string, service: string, mainRouter: Router, fileMap: RouteFileMap, inflateDir: string | undefined | false, errors: InflateError[]): Promise<any>;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { importDocConfigModule } from "../common/jsx.js";
|
|
2
|
+
import { getDocConfigPath } from "../common/paths.js";
|
|
3
|
+
import { basename, dirname, join, relative } from "node:path";
|
|
4
|
+
import { mkdirSync, writeFileSync } from "node:fs";
|
|
5
|
+
import { cwd } from "node:process";
|
|
6
|
+
import { getDocOutput } from "../bin/generate-doc.js";
|
|
7
|
+
import { CONTENT_TYPE_MAP } from "../common/content-type.js";
|
|
8
|
+
export async function setupDoc(logger, servicePath, service, mainRouter, fileMap, inflateDir, errors) {
|
|
9
|
+
const docPath = getDocConfigPath(servicePath); //resolve(process.cwd(), service, "auth.ts");
|
|
10
|
+
if (docPath) {
|
|
11
|
+
try {
|
|
12
|
+
const docModule = await importDocConfigModule(docPath, logger);
|
|
13
|
+
logger.debug("setting up error handling from [%s]", join(service, basename(docPath)));
|
|
14
|
+
if (docModule && docModule.publish) {
|
|
15
|
+
const paths = Object.keys(docModule.publish);
|
|
16
|
+
for (const path of paths) {
|
|
17
|
+
const config = docModule.publish[path];
|
|
18
|
+
const body = await getDocOutput(mainRouter, fileMap, config.all, config.type);
|
|
19
|
+
mainRouter.get(path, async (_, res) => {
|
|
20
|
+
switch (config.type) {
|
|
21
|
+
case "MD": {
|
|
22
|
+
const contentType = CONTENT_TYPE_MAP[".md"];
|
|
23
|
+
return await res.asyncEnd({
|
|
24
|
+
headers: {
|
|
25
|
+
"content-type": contentType
|
|
26
|
+
},
|
|
27
|
+
status: 200,
|
|
28
|
+
body
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
case "JSON": {
|
|
32
|
+
return await res.json(body);
|
|
33
|
+
}
|
|
34
|
+
case "HTML": {
|
|
35
|
+
return await res.html(body);
|
|
36
|
+
}
|
|
37
|
+
default:
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
if (inflateDir) {
|
|
42
|
+
const inflatePath = join(inflateDir, service, "static", path);
|
|
43
|
+
mkdirSync(dirname(inflatePath), {
|
|
44
|
+
recursive: true
|
|
45
|
+
});
|
|
46
|
+
logger.log("writing [%s]", relative(cwd(), inflatePath));
|
|
47
|
+
writeFileSync(inflatePath, body);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
catch (e) {
|
|
53
|
+
errors.push({
|
|
54
|
+
filePath: docPath,
|
|
55
|
+
error: e
|
|
56
|
+
});
|
|
57
|
+
logger.error("error with " + docPath);
|
|
58
|
+
logger.error(e);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return null;
|
|
62
|
+
}
|
package/build/esm/src/lib.js
CHANGED
|
@@ -14,4 +14,3 @@ export { appendAPIModule } from "./inflate/utils/sea-utils.js";
|
|
|
14
14
|
export { ServerInterfaceImpl } from "./services/utils/server-interface.js";
|
|
15
15
|
export { App, LoggerHandler, Router } from "@miqro/core";
|
|
16
16
|
export { migration } from "@miqro/query";
|
|
17
|
-
//# sourceMappingURL=lib.js.map
|
package/build/esm/src/main.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
2
|
+
import { parseArguments } from "./common/arguments.js";
|
|
3
3
|
import { EXIT_CODES } from "./common/constants.js";
|
|
4
4
|
import { testMain } from "./bin/test.js";
|
|
5
5
|
import { compileSH } from "./bin/compile.js";
|
|
@@ -16,8 +16,8 @@ async function main(args) {
|
|
|
16
16
|
else {
|
|
17
17
|
const app = new Miqro({
|
|
18
18
|
editor: args.editor,
|
|
19
|
-
name:
|
|
20
|
-
port: args.test ? TEST_SOCKET :
|
|
19
|
+
name: args.name ? args.name : undefined,
|
|
20
|
+
port: args.test ? TEST_SOCKET : args.port,
|
|
21
21
|
services: args.services,
|
|
22
22
|
hotreload: args.test ? false : args.hotreload
|
|
23
23
|
});
|
|
@@ -89,4 +89,3 @@ catch (e) {
|
|
|
89
89
|
console.error(e.message);
|
|
90
90
|
process.exit(EXIT_CODES.ABNORMAL);
|
|
91
91
|
}
|
|
92
|
-
//# sourceMappingURL=main.js.map
|
|
@@ -64,6 +64,7 @@ export declare class Miqro {
|
|
|
64
64
|
stopWatch: () => void;
|
|
65
65
|
};
|
|
66
66
|
constructor(options?: Partial<MiqroOptions>);
|
|
67
|
+
static import(inFile: string, options?: Partial<MiqroOptions>, inflate?: Partial<InflateOptions>): Promise<Miqro>;
|
|
67
68
|
connect(): void;
|
|
68
69
|
disconnect(): void;
|
|
69
70
|
inflateWith(inflated?: Partial<InflatedResult>): Promise<void>;
|
|
@@ -20,9 +20,11 @@ import { setupExitHandlers } from "../common/exit.js";
|
|
|
20
20
|
import { inflateDBConfig, inflateDBMigrations } from "../inflate/setup-db.js";
|
|
21
21
|
import { getServicePath } from "../common/paths.js";
|
|
22
22
|
import { ServerInterfaceImpl } from "./utils/server-interface.js";
|
|
23
|
-
import { getPORT } from "../common/arguments.js";
|
|
23
|
+
import { getPORT, importMiqroJSON } from "../common/arguments.js";
|
|
24
24
|
import { createLogProviderOptions } from "./utils/log-transport.js";
|
|
25
25
|
import { createAdminInterface } from "./utils/admin-interface.js";
|
|
26
|
+
import { dirname, join, relative, resolve } from "node:path";
|
|
27
|
+
import { cwd } from "node:process";
|
|
26
28
|
export const MiqroApplicationMessageType = "$$$MiqroApplicationMessageType$$$";
|
|
27
29
|
export class Miqro {
|
|
28
30
|
status = "stopped";
|
|
@@ -112,6 +114,21 @@ export class Miqro {
|
|
|
112
114
|
this.adminInterface = createAdminInterface(this);
|
|
113
115
|
setupExitHandlers(this);
|
|
114
116
|
}
|
|
117
|
+
static async import(inFile, options, inflate) {
|
|
118
|
+
const miqroJSON = importMiqroJSON(resolve(inFile));
|
|
119
|
+
const miqroJSONDir = dirname(resolve(inFile));
|
|
120
|
+
const app = new Miqro({
|
|
121
|
+
name: miqroJSON.name ? miqroJSON.name : undefined,
|
|
122
|
+
port: miqroJSON.port ? String(miqroJSON.port) : undefined,
|
|
123
|
+
services: miqroJSON.services ? miqroJSON.services.map(s => join(relative(cwd(), miqroJSONDir), s)) : undefined,
|
|
124
|
+
...(options ? options : {}),
|
|
125
|
+
});
|
|
126
|
+
await app.inflate({
|
|
127
|
+
inflateDir: miqroJSON.inflateDir ? String(miqroJSON.inflateDir) : undefined,
|
|
128
|
+
...(inflate ? inflate : {}),
|
|
129
|
+
});
|
|
130
|
+
return app;
|
|
131
|
+
}
|
|
115
132
|
connect() {
|
|
116
133
|
if (process.send) {
|
|
117
134
|
process.removeListener("message", this.listener);
|
|
@@ -535,4 +552,3 @@ export function notifiyServerConfigSync(app, method) {
|
|
|
535
552
|
});
|
|
536
553
|
}
|
|
537
554
|
}
|
|
538
|
-
//# sourceMappingURL=app.js.map
|
|
@@ -10,7 +10,8 @@ export class LogProvider {
|
|
|
10
10
|
constructor(options) {
|
|
11
11
|
this.options = {
|
|
12
12
|
formatter: options && options.formatter ? options.formatter : DEFAULT_FORMATTER,
|
|
13
|
-
transports: options && options.transports ? options.transports : [ConsoleTransport()]
|
|
13
|
+
transports: options && options.transports ? options.transports : [ConsoleTransport()],
|
|
14
|
+
name: options?.name
|
|
14
15
|
};
|
|
15
16
|
this.requestLoggerFactory = this.requestLoggerFactory.bind(this);
|
|
16
17
|
}
|
|
@@ -71,4 +72,3 @@ export class LogProvider {
|
|
|
71
72
|
return logger;
|
|
72
73
|
}
|
|
73
74
|
}
|
|
74
|
-
//# sourceMappingURL=log.js.map
|
package/build/esm/src/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Database } from "@miqro/query";
|
|
2
|
-
import { WebSocketServerOptions, SessionHandlerOptions, Logger, WebSocketServer, ReadBuffer, URLEncodedParser, JSONParser, TextParser, CORS, SessionHandler, RouteOptions, Handler, Request, Response, LogLevel, LoggerTransportWriteArgs, CORSOptions } from "@miqro/core";
|
|
2
|
+
import { WebSocketServerOptions, SessionHandlerOptions, Logger, WebSocketServer, ReadBuffer, URLEncodedParser, JSONParser, TextParser, CORS, SessionHandler, RouteOptions, Handler, Request, Response, LogLevel, LoggerTransportWriteArgs, CORSOptions, HandlerWithOptions, ErrorHandler } from "@miqro/core";
|
|
3
3
|
import { request } from "@miqro/request";
|
|
4
4
|
import { ParserInterface } from "@miqro/parser";
|
|
5
5
|
import { RuntimeHTMLElement, Runtime, RuntimeContainer, RuntimeURL, RuntimeOptions, RuntimeShadowRootInit } from "@miqro/jsx";
|
|
@@ -140,6 +140,21 @@ declare global {
|
|
|
140
140
|
}
|
|
141
141
|
export interface AuthConfig extends SessionHandlerOptions {
|
|
142
142
|
}
|
|
143
|
+
export interface MiddlewareConfig {
|
|
144
|
+
middleware?: Array<HandlerWithOptions | Handler>;
|
|
145
|
+
post?: Array<HandlerWithOptions | Handler>;
|
|
146
|
+
}
|
|
147
|
+
export interface ErrorConfig {
|
|
148
|
+
catch?: Array<ErrorHandler>;
|
|
149
|
+
}
|
|
150
|
+
export interface DocConfig {
|
|
151
|
+
publish: {
|
|
152
|
+
[path: string]: {
|
|
153
|
+
type?: "HTML" | "MD" | "JSON";
|
|
154
|
+
all?: boolean;
|
|
155
|
+
};
|
|
156
|
+
};
|
|
157
|
+
}
|
|
143
158
|
export interface WSConfig extends WebSocketServerOptions {
|
|
144
159
|
path: string;
|
|
145
160
|
disabled?: boolean;
|
package/build/esm/src/types.js
CHANGED