miqro 7.2.6 → 7.2.8

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 (241) hide show
  1. package/README.md +1 -21
  2. package/build/esm/editor/auth.js +0 -1
  3. package/build/esm/editor/common/constants.js +0 -1
  4. package/build/esm/editor/common/constants.server.js +0 -1
  5. package/build/esm/editor/common/editor-index.d.ts +1 -1
  6. package/build/esm/editor/common/editor-index.js +0 -1
  7. package/build/esm/editor/common/html-encode.js +0 -1
  8. package/build/esm/editor/common/log-socket.js +0 -1
  9. package/build/esm/editor/common/templates.js +0 -1
  10. package/build/esm/editor/components/api-preview.js +0 -1
  11. package/build/esm/editor/components/editor.js +0 -1
  12. package/build/esm/editor/components/file-browser.js +0 -1
  13. package/build/esm/editor/components/file-editor-toolbar.js +0 -1
  14. package/build/esm/editor/components/file-editor.js +0 -1
  15. package/build/esm/editor/components/filter-query.js +0 -1
  16. package/build/esm/editor/components/highlight-text-area.js +0 -1
  17. package/build/esm/editor/components/log-viewer.js +0 -1
  18. package/build/esm/editor/components/new-file.js +0 -1
  19. package/build/esm/editor/components/scroll-query.js +0 -1
  20. package/build/esm/editor/components/start-page.js +0 -1
  21. package/build/esm/editor/http/admin/editor/api/fs/delete.api.js +0 -1
  22. package/build/esm/editor/http/admin/editor/api/fs/read.api.js +0 -1
  23. package/build/esm/editor/http/admin/editor/api/fs/rename.api.js +0 -1
  24. package/build/esm/editor/http/admin/editor/api/fs/scan.api.d.ts +1 -1
  25. package/build/esm/editor/http/admin/editor/api/fs/scan.api.js +0 -1
  26. package/build/esm/editor/http/admin/editor/api/fs/write.api.js +0 -1
  27. package/build/esm/editor/http/admin/editor/api/server/reload.api.js +0 -1
  28. package/build/esm/editor/http/admin/editor/api/server/restart.api.js +0 -1
  29. package/build/esm/editor/http/admin/editor/editor.js +0 -1
  30. package/build/esm/editor/http/admin/editor/index.api.js +2 -2
  31. package/build/esm/editor/server.js +0 -1
  32. package/build/esm/editor/ws.js +3 -3
  33. package/build/esm/src/bin/compile.js +0 -1
  34. package/build/esm/src/bin/doc-md.js +0 -1
  35. package/build/esm/src/bin/generate-doc.js +0 -1
  36. package/build/esm/src/bin/test.js +0 -1
  37. package/build/esm/src/bin/types.js +0 -1
  38. package/build/esm/src/cluster.js +0 -1
  39. package/build/esm/{editor → src}/common/admin-interface.d.ts +2 -2
  40. package/build/esm/{editor → src}/common/admin-interface.js +0 -1
  41. package/build/esm/src/common/arguments.js +0 -1
  42. package/build/esm/src/common/assets.js +2 -3
  43. package/build/esm/src/common/checksum.js +0 -1
  44. package/build/esm/src/common/constants.js +0 -1
  45. package/build/esm/src/common/content-type.js +0 -1
  46. package/build/esm/src/common/esbuild.js +0 -1
  47. package/build/esm/src/common/exit.js +0 -1
  48. package/build/esm/src/common/fs.js +0 -1
  49. package/build/esm/src/common/help.js +0 -1
  50. package/build/esm/src/common/jsx.js +0 -1
  51. package/build/esm/src/common/jwt.js +0 -1
  52. package/build/esm/src/common/paths.js +0 -1
  53. package/build/esm/src/common/watch.js +0 -1
  54. package/build/esm/src/inflate/inflate-sea.js +0 -1
  55. package/build/esm/src/inflate/inflate.js +0 -1
  56. package/build/esm/src/inflate/md.js +0 -1
  57. package/build/esm/src/inflate/setup-auth.js +0 -1
  58. package/build/esm/src/inflate/setup-cors.js +0 -1
  59. package/build/esm/src/inflate/setup-db.js +0 -1
  60. package/build/esm/src/inflate/setup-error.js +0 -1
  61. package/build/esm/src/inflate/setup-http.js +0 -1
  62. package/build/esm/src/inflate/setup-log.js +0 -1
  63. package/build/esm/src/inflate/setup-middleware.js +0 -1
  64. package/build/esm/src/inflate/setup-server-config.js +0 -1
  65. package/build/esm/src/inflate/setup-test.js +0 -1
  66. package/build/esm/src/inflate/setup-ws.js +0 -1
  67. package/build/esm/src/inflate/setup.doc.js +0 -1
  68. package/build/esm/src/inflate/utils/sea-utils.js +0 -1
  69. package/build/esm/src/lib.js +0 -1
  70. package/build/esm/src/main.js +0 -1
  71. package/build/esm/src/services/app.d.ts +1 -1
  72. package/build/esm/src/services/app.js +1 -1
  73. package/build/esm/src/services/editor.d.ts +1 -1
  74. package/build/esm/src/services/editor.js +10 -12
  75. package/build/esm/src/services/hot-reload.js +0 -1
  76. package/build/esm/src/services/migrations.js +0 -1
  77. package/build/esm/src/services/utils/admin-interface.d.ts +1 -1
  78. package/build/esm/src/services/utils/admin-interface.js +0 -1
  79. package/build/esm/src/services/utils/cache.js +0 -1
  80. package/build/esm/src/services/utils/cluster-cache.js +0 -1
  81. package/build/esm/src/services/utils/cluster-ws.js +0 -1
  82. package/build/esm/src/services/utils/db-manager.js +0 -1
  83. package/build/esm/src/services/utils/get-route.js +0 -1
  84. package/build/esm/src/services/utils/jwt.js +0 -1
  85. package/build/esm/src/services/utils/log-transport.js +0 -1
  86. package/build/esm/src/services/utils/log.js +0 -1
  87. package/build/esm/src/services/utils/middleware.js +0 -1
  88. package/build/esm/src/services/utils/server-interface.js +0 -1
  89. package/build/esm/src/services/utils/websocketmanager.d.ts +2 -0
  90. package/build/esm/src/services/utils/websocketmanager.js +8 -2
  91. package/build/esm/src/types.js +0 -1
  92. package/build/lib.cjs +27 -29
  93. package/build/style.css +3 -3
  94. package/editor/auth.ts +1 -1
  95. package/editor/common/editor-index.tsx +1 -1
  96. package/editor/http/admin/editor/api/fs/scan.api.tsx +1 -1
  97. package/editor/http/admin/editor/api/server/reload.api.ts +1 -1
  98. package/editor/http/admin/editor/api/server/restart.api.tsx +1 -1
  99. package/editor/http/admin/editor/index.api.tsx +3 -2
  100. package/editor/server.ts +1 -1
  101. package/editor/ws.ts +5 -3
  102. package/package.json +2 -2
  103. package/build/esm/editor/auth.js.map +0 -1
  104. package/build/esm/editor/common/admin-interface.js.map +0 -1
  105. package/build/esm/editor/common/constants.js.map +0 -1
  106. package/build/esm/editor/common/constants.server.js.map +0 -1
  107. package/build/esm/editor/common/editor-index.js.map +0 -1
  108. package/build/esm/editor/common/html-encode.js.map +0 -1
  109. package/build/esm/editor/common/log-socket.js.map +0 -1
  110. package/build/esm/editor/common/templates.js.map +0 -1
  111. package/build/esm/editor/components/api-preview.js.map +0 -1
  112. package/build/esm/editor/components/editor.js.map +0 -1
  113. package/build/esm/editor/components/file-browser.js.map +0 -1
  114. package/build/esm/editor/components/file-editor-toolbar.js.map +0 -1
  115. package/build/esm/editor/components/file-editor.js.map +0 -1
  116. package/build/esm/editor/components/filter-query.js.map +0 -1
  117. package/build/esm/editor/components/highlight-text-area.js.map +0 -1
  118. package/build/esm/editor/components/log-viewer.js.map +0 -1
  119. package/build/esm/editor/components/new-file.js.map +0 -1
  120. package/build/esm/editor/components/scroll-query.js.map +0 -1
  121. package/build/esm/editor/components/start-page.js.map +0 -1
  122. package/build/esm/editor/http/admin/editor/api/fs/delete.api.js.map +0 -1
  123. package/build/esm/editor/http/admin/editor/api/fs/read.api.js.map +0 -1
  124. package/build/esm/editor/http/admin/editor/api/fs/rename.api.js.map +0 -1
  125. package/build/esm/editor/http/admin/editor/api/fs/scan.api.js.map +0 -1
  126. package/build/esm/editor/http/admin/editor/api/fs/write.api.js.map +0 -1
  127. package/build/esm/editor/http/admin/editor/api/server/reload.api.js.map +0 -1
  128. package/build/esm/editor/http/admin/editor/api/server/restart.api.js.map +0 -1
  129. package/build/esm/editor/http/admin/editor/editor.js.map +0 -1
  130. package/build/esm/editor/http/admin/editor/index.api.js.map +0 -1
  131. package/build/esm/editor/server.js.map +0 -1
  132. package/build/esm/editor/ws.js.map +0 -1
  133. package/build/esm/src/bin/compile.js.map +0 -1
  134. package/build/esm/src/bin/doc-md.js.map +0 -1
  135. package/build/esm/src/bin/generate-doc.js.map +0 -1
  136. package/build/esm/src/bin/test.js.map +0 -1
  137. package/build/esm/src/bin/types.js.map +0 -1
  138. package/build/esm/src/cluster.js.map +0 -1
  139. package/build/esm/src/common/arguments.js.map +0 -1
  140. package/build/esm/src/common/assets.js.map +0 -1
  141. package/build/esm/src/common/checksum.js.map +0 -1
  142. package/build/esm/src/common/constants.js.map +0 -1
  143. package/build/esm/src/common/content-type.js.map +0 -1
  144. package/build/esm/src/common/esbuild.js.map +0 -1
  145. package/build/esm/src/common/exit.js.map +0 -1
  146. package/build/esm/src/common/fs.js.map +0 -1
  147. package/build/esm/src/common/help.js.map +0 -1
  148. package/build/esm/src/common/jsx.js.map +0 -1
  149. package/build/esm/src/common/jwt.js.map +0 -1
  150. package/build/esm/src/common/paths.js.map +0 -1
  151. package/build/esm/src/common/watch.js.map +0 -1
  152. package/build/esm/src/inflate/inflate-sea.js.map +0 -1
  153. package/build/esm/src/inflate/inflate.js.map +0 -1
  154. package/build/esm/src/inflate/md.js.map +0 -1
  155. package/build/esm/src/inflate/setup-auth.js.map +0 -1
  156. package/build/esm/src/inflate/setup-cors.js.map +0 -1
  157. package/build/esm/src/inflate/setup-db.js.map +0 -1
  158. package/build/esm/src/inflate/setup-error.js.map +0 -1
  159. package/build/esm/src/inflate/setup-http.js.map +0 -1
  160. package/build/esm/src/inflate/setup-log.js.map +0 -1
  161. package/build/esm/src/inflate/setup-middleware.js.map +0 -1
  162. package/build/esm/src/inflate/setup-server-config.js.map +0 -1
  163. package/build/esm/src/inflate/setup-test.js.map +0 -1
  164. package/build/esm/src/inflate/setup-ws.js.map +0 -1
  165. package/build/esm/src/inflate/setup.doc.js.map +0 -1
  166. package/build/esm/src/inflate/utils/sea-utils.js.map +0 -1
  167. package/build/esm/src/lib.js.map +0 -1
  168. package/build/esm/src/main.js.map +0 -1
  169. package/build/esm/src/services/app.js.map +0 -1
  170. package/build/esm/src/services/editor.js.map +0 -1
  171. package/build/esm/src/services/hot-reload.js.map +0 -1
  172. package/build/esm/src/services/migrations.js.map +0 -1
  173. package/build/esm/src/services/utils/admin-interface.js.map +0 -1
  174. package/build/esm/src/services/utils/cache.js.map +0 -1
  175. package/build/esm/src/services/utils/cluster-cache.js.map +0 -1
  176. package/build/esm/src/services/utils/cluster-ws.js.map +0 -1
  177. package/build/esm/src/services/utils/db-manager.js.map +0 -1
  178. package/build/esm/src/services/utils/get-route.js.map +0 -1
  179. package/build/esm/src/services/utils/jwt.js.map +0 -1
  180. package/build/esm/src/services/utils/log-transport.js.map +0 -1
  181. package/build/esm/src/services/utils/log.js.map +0 -1
  182. package/build/esm/src/services/utils/middleware.js.map +0 -1
  183. package/build/esm/src/services/utils/server-interface.js.map +0 -1
  184. package/build/esm/src/services/utils/websocketmanager.js.map +0 -1
  185. package/build/esm/src/types.js.map +0 -1
  186. package/build/font.ttf +0 -0
  187. package/editor/common/admin-interface.ts +0 -84
  188. package/src/bin/compile.ts +0 -35
  189. package/src/bin/doc-md.ts +0 -210
  190. package/src/bin/generate-doc.ts +0 -64
  191. package/src/bin/test.ts +0 -93
  192. package/src/bin/types.ts +0 -34
  193. package/src/cluster.ts +0 -27
  194. package/src/common/arguments.ts +0 -853
  195. package/src/common/assets.ts +0 -148
  196. package/src/common/checksum.ts +0 -58
  197. package/src/common/constants.ts +0 -19
  198. package/src/common/content-type.ts +0 -84
  199. package/src/common/esbuild.ts +0 -103
  200. package/src/common/exit.ts +0 -91
  201. package/src/common/fs.ts +0 -82
  202. package/src/common/help.ts +0 -65
  203. package/src/common/jsx.ts +0 -574
  204. package/src/common/jwt.ts +0 -85
  205. package/src/common/paths.ts +0 -107
  206. package/src/common/watch.ts +0 -88
  207. package/src/inflate/inflate-sea.ts +0 -268
  208. package/src/inflate/inflate.ts +0 -105
  209. package/src/inflate/md.ts +0 -25
  210. package/src/inflate/setup-auth.ts +0 -41
  211. package/src/inflate/setup-cors.ts +0 -42
  212. package/src/inflate/setup-db.ts +0 -117
  213. package/src/inflate/setup-error.ts +0 -44
  214. package/src/inflate/setup-http.ts +0 -720
  215. package/src/inflate/setup-log.ts +0 -45
  216. package/src/inflate/setup-middleware.ts +0 -47
  217. package/src/inflate/setup-server-config.ts +0 -48
  218. package/src/inflate/setup-test.ts +0 -23
  219. package/src/inflate/setup-ws.ts +0 -50
  220. package/src/inflate/setup.doc.ts +0 -92
  221. package/src/inflate/utils/sea-utils.ts +0 -14
  222. package/src/lib.ts +0 -35
  223. package/src/main.ts +0 -107
  224. package/src/services/app.ts +0 -750
  225. package/src/services/editor.tsx +0 -101
  226. package/src/services/globals.ts.ignore +0 -186
  227. package/src/services/hot-reload.ts +0 -55
  228. package/src/services/migrations.ts +0 -68
  229. package/src/services/utils/admin-interface.ts +0 -37
  230. package/src/services/utils/cache.ts +0 -88
  231. package/src/services/utils/cluster-cache.ts +0 -255
  232. package/src/services/utils/cluster-ws.ts +0 -202
  233. package/src/services/utils/db-manager.ts +0 -92
  234. package/src/services/utils/get-route.ts +0 -70
  235. package/src/services/utils/jwt.ts +0 -25
  236. package/src/services/utils/log-transport.ts +0 -81
  237. package/src/services/utils/log.ts +0 -92
  238. package/src/services/utils/middleware.ts +0 -10
  239. package/src/services/utils/server-interface.ts +0 -122
  240. package/src/services/utils/websocketmanager.ts +0 -158
  241. package/src/types.ts +0 -287
package/src/common/jsx.ts DELETED
@@ -1,574 +0,0 @@
1
- import { Runtime } from "@miqro/jsx";
2
- import { createNodeRuntime } from "@miqro/jsx-node";
3
- import { basename, dirname, extname, relative, resolve } from "node:path";
4
- import { randomUUID } from "node:crypto";
5
- import { Request, Response, CORSOptions, Logger, APIRoute } from "@miqro/core";
6
- import { InferSchema, Parser, Schema } from "@miqro/parser";
7
- import { APIRouteSchema, SessionHandlerOptionsSchema } from "@miqro/core";
8
- import { cwd } from "node:process";
9
-
10
- import { esBuild } from "./esbuild.js";
11
- // import { assertGlobalTampered, browserJSXGlobals } from "../services/globals.js";
12
- import { APIOptions, ServerConfig, WSConfig, AuthConfig, DBConfig, LogConfig, MiddlewareConfig, ErrorConfig, DocConfig } from "../types.js";
13
- import { JSX_TMP_DIR } from "./paths.js";
14
- import { CLEAR_JSX_CACHE } from "./constants.js";
15
- import { getAsset, initAsset, validateAsset } from "./assets.js";
16
- import { calculateChecksumFromBuffer } from "./checksum.js";
17
- import { HandlerWithOptionsSchema, RouteOptionsSchema } from "@miqro/core/build/types.js";
18
- import { Migration } from "@miqro/query";
19
- import { mkdirASync, rmdirASync, unlinkASync, writeFileASync } from "./fs.js";
20
-
21
- let jsxJSBuffer: null | Buffer = null; // Buffer.from(getAsset("jsx.dom.js"));
22
- let jsxJSBufferChecksumPromise: null | Promise<string> = null; // calculateChecksumFromBuffer(jsxJSBuffer);
23
-
24
- /*export async function initJSXJS(logger: Logger) {
25
- jsxJSBuffer = jsxJSBuffer ? jsxJSBuffer : Buffer.from(getAsset("jsx.dom.js"));
26
- jsxJSBufferChecksumPromise = jsxJSBufferChecksumPromise ? jsxJSBufferChecksumPromise : calculateChecksumFromBuffer(jsxJSBuffer);
27
- return initAsset(logger, getJSXJSPath(), jsxJSBuffer, true, jsxJSBufferChecksumPromise, false);
28
- }
29
-
30
- export async function validateJSXJS(logger: Logger) {
31
- const checksum = await jsxJSBufferChecksumPromise;
32
- if (!checksum) {
33
- throw new Error("error calculating checksum");
34
- }
35
- return validateAsset(logger, getJSXJSPath(), checksum);
36
- }*/
37
-
38
- export interface Dict<T> {
39
- [key: string]: T | Dict<T>;
40
- }
41
-
42
- const parser = new Parser();
43
-
44
- export interface InflateError {
45
- filePath: string;
46
- error: Error;
47
- }
48
-
49
- interface InflateOptions {
50
- // embemedJSX: boolean;
51
- minify: boolean;
52
- useExport: boolean;
53
- platform?: string;
54
- mainFields?: string;
55
- external?: string[];
56
- logger?: Logger | Console;
57
- }
58
-
59
- const DEFAULT_ESOPTION = {
60
- platform: "neutral",
61
- mainFields: "module,main",
62
- keepNames: true,
63
- // platform: "node",
64
- bundle: true,
65
- jsxFactory: "JSX.createElement",
66
- jsxFragment: "JSX.Fragment"
67
- };
68
-
69
- function JSXTemplate(inFile: string/*, jsxPath: string | false = false*/, useExport = true): string {
70
- // const PRE = ``;
71
- // return `${jsxPath ? PRE : ""}\n${useExport ? `export * from "${inFile}";import * as lib from "${inFile}";export default lib.default;` : `import * as lib from "${inFile}"`}`;
72
- return `${useExport ? `export * from "${inFile}";import * as lib from "${inFile}";export default lib.default;` : `import * as lib from "${inFile}"`}`;
73
- }
74
-
75
- export async function inflateJSX(inFile: string, options: InflateOptions): Promise<string> {
76
- const tmpBuildDir = resolve(JSX_TMP_DIR, String(process.pid), "build", Date.now() + "-" + randomUUID());
77
- const inFileTmp = resolve(tmpBuildDir, basename(inFile) + ".mjs");
78
- //const jsxJSPath = getJSXJSPath();//resolve(tmpBuildDir, "jsx.js");
79
- const logger = options.logger; //getLogger(`${SERVER_IDENTIFIER}_JSX`);
80
-
81
- try {
82
-
83
- // if (!options.embemedJSX) {
84
- await mkdirASync(tmpBuildDir, {
85
- recursive: true
86
- });
87
- await writeFileASync(inFileTmp, JSXTemplate(inFile/*, false*/, options.useExport));
88
- //await writeFileASync(inFileTmp, browserJSXGlobals(relative(tmpBuildDir, inFile), false));
89
- logger?.trace("inflating [%s] from [%s]. to change the import folder set JSX_TMP", relative(cwd(), inFile), dirname(relative(JSX_TMP_DIR, inFileTmp)));
90
- const { outputFiles: [{ contents }] } = await esBuild({
91
- ...DEFAULT_ESOPTION,
92
- entryPoints: [inFileTmp],
93
- minify: options.minify,
94
- platform: options.platform !== undefined ? options.platform : DEFAULT_ESOPTION.platform,
95
- mainFields: options.mainFields !== undefined ? options.mainFields : DEFAULT_ESOPTION.mainFields,
96
- external: options.external ? options.external : undefined,
97
- });
98
- if (CLEAR_JSX_CACHE) {
99
- logger?.trace("clearing cache at [%s] to change this behaivor set CLEAR_JSX_CACHE to 0", tmpBuildDir);
100
- await unlinkASync(inFileTmp);
101
- await rmdirASync(tmpBuildDir);
102
- }
103
- return contents;
104
- /*} else {
105
- await mkdirASync(tmpBuildDir, {
106
- recursive: true
107
- });
108
- //await writeFileASync(jsxJSPath, Buffer.from(getAsset("jsx-dom-bundle")));
109
- await writeFileASync(inFileTmp, browserJSXGlobals(inFile, false));
110
- //await writeFileASync(inFileTmp, browserJSXGlobals(relative(tmpBuildDir, inFile), relative(tmpBuildDir, jsxJSPath)));
111
- logger?.trace("inflating [%s] from [%s] with jsx.js embedded. to change the import folder set JSX_TMP", relative(cwd(), inFile), dirname(relative(JSX_TMP_DIR, inFileTmp)));
112
- const { outputFiles: [{ contents }] } = await esBuild({
113
- ...DEFAULT_ESOPTION,
114
- entryPoints: [inFileTmp],
115
- minify: options.minify,
116
- platform: options.platform !== undefined ? options.platform : DEFAULT_ESOPTION.platform,
117
- mainFields: options.mainFields !== undefined ? options.mainFields : DEFAULT_ESOPTION.mainFields,
118
- external: options.external ? options.external : undefined
119
- });
120
- if (CLEAR_JSX_CACHE) {
121
- logger?.trace("clearing cache at [%s] to change this behaivor set CLEAR_JSX_CACHE to 0", tmpBuildDir);
122
- await unlinkASync(inFileTmp);
123
- //await unlinkASync(jsxJSPath);
124
- await rmdirASync(tmpBuildDir);
125
- }
126
- return contents;
127
- }*/
128
- } catch (e) {
129
- logger?.error("error with: " + inFile);
130
- logger?.error(e);
131
- /*if (options.embemedJSX) {
132
- if (CLEAR_JSX_CACHE) {
133
- logger?.trace("clearing cache at [%s] to change this behaivor set CLEAR_JSX_CACHE to 0", tmpBuildDir);
134
- await unlinkASync(inFileTmp);
135
- //await unlinkASync(jsxJSPath);
136
- await rmdirASync(tmpBuildDir);
137
- } else {
138
- //console.error("errors on: " + tmpBuildDir);
139
- logger?.error("error with: %s", inFileTmp);
140
- logger?.trace("NOT clearing cache. to change this behaivor set CLEAR_JSX_CACHE to 1", tmpBuildDir);
141
- }
142
- }*/
143
- throw e;
144
- }
145
- }
146
-
147
- export const APIOptionsSchema: Schema<APIOptions> = {
148
- type: "object?",
149
- properties: {
150
- basePath: "string?",
151
- path: "string?|string[]?",
152
- method: "string?|string[]?",
153
- parser: {
154
- type: "object?",
155
- properties: {
156
- parse: "function"
157
- },
158
- mode: "add_extra"
159
- },
160
- middleware: "function[]!?",
161
- session: {
162
- type: "object?|function?",
163
- properties: SessionHandlerOptionsSchema.properties
164
- },
165
- ...RouteOptionsSchema.properties
166
- },
167
- //mode:"add_extra"
168
- };
169
-
170
- export interface HTMLModule {
171
- default: JSX.Element | ((req: Request | null, res: Response | null) => (Promise<JSX.Element> | JSX.Element));
172
- apiOptions?: APIOptions;
173
- }
174
-
175
- export const HTMLModuleSchema: Schema<HTMLModule> = {
176
- type: "object",
177
- properties: {
178
- default: {
179
- type: "function|object"
180
- },
181
- apiOptions: APIOptionsSchema
182
- },
183
- //mode:"add_extra"
184
- }
185
-
186
- export type JSONModuleValue = string | object;
187
-
188
- export interface JSONModule {
189
- default: JSONModuleValue | ((req: Request | null, res: Response | null) => (Promise<JSONModuleValue> | JSONModuleValue));
190
- apiOptions?: APIOptions;
191
- }
192
-
193
- export const JSONModuleSchema: Schema<JSONModule> = {
194
- type: "object",
195
- properties: {
196
- default: {
197
- type: "function|object|string"
198
- },
199
- apiOptions: APIOptionsSchema
200
- },
201
- //mode:"add_extra"
202
- }
203
-
204
- export const MigrationSchema: Schema<Migration> = {
205
- type: "object",
206
- properties: {
207
- up: "function",
208
- down: "function"
209
- },
210
- mode: "add_extra"
211
- }
212
-
213
- export const CORSOptionsSchema: Schema<CORSOptions> = {
214
- type: "object",
215
- properties: {
216
- origins: "string[]?|string?",
217
- validate: "function?",
218
- methods: "string?",
219
- preflightContinue: "boolean?"
220
- },
221
- //mode:"add_extra"
222
- }
223
-
224
- export const WSConfigSchema: Schema<WSConfig> = {
225
- type: "object",
226
- properties: {
227
- path: "string",
228
- disabled: "boolean?",
229
- maxConnections: "number?",
230
- validate: "function?",
231
- onConnection: "function?",
232
- onMessage: "function?",
233
- onDisconnect: "function?"
234
- },
235
- //mode:"add_extra"
236
- };
237
-
238
- export const DBConfigSchema: Schema<DBConfig> = {
239
- type: "object",
240
- properties: {
241
- url: "string?",
242
- disabled: "boolean?",
243
- storage: "string?",
244
- dialect: "string?",
245
- name: "string"
246
- },
247
- //mode:"add_extra"
248
- }
249
-
250
- export const ServerConfigSchema: Schema<ServerConfig> = {
251
- type: "object",
252
- properties: {
253
- preload: "function?",
254
- unload: "function?",
255
- stop: "function?",
256
- start: "function?",
257
- load: "function?"
258
- },
259
- //mode:"add_extra"
260
- };
261
-
262
- export const LogConfigSchema: Schema<LogConfig> = {
263
- type: "object",
264
- properties: {
265
- level: {
266
- type: "enum?",
267
- enumValues: ["error", "warn", "info", "debug", "trace", "none"]
268
- },
269
- replaceConsoleTransport: "boolean?",
270
- replaceFileTransport: "boolean?",
271
- write: "function"
272
- },
273
- //mode:"add_extra"
274
- };
275
-
276
- export const AuthConfigSchema: Schema<AuthConfig> = {
277
- type: "object",
278
- properties: {
279
- ...SessionHandlerOptionsSchema.properties
280
- },
281
- //mode:"add_extra"
282
- }
283
-
284
- export const MiddlewareConfigSchema: Schema<MiddlewareConfig> = {
285
- type: "object",
286
- properties: {
287
- middleware: {
288
- type: "Array",
289
- arrayType: "function|object",
290
- required: false,
291
- properties: {
292
- ...HandlerWithOptionsSchema.properties
293
- }
294
- },
295
- post: {
296
- type: "Array",
297
- arrayType: "function|object",
298
- required: false,
299
- properties: {
300
- ...HandlerWithOptionsSchema.properties
301
- }
302
- }
303
- },
304
- }
305
-
306
- export const ErrorConfigSchema: Schema<ErrorConfig> = {
307
- type: "object",
308
- properties: {
309
- catch: {
310
- type: "Array",
311
- required: false,
312
- arrayType: "function"
313
- }
314
- },
315
- }
316
-
317
- export const DocConfigSchema: Schema<DocConfig> = {
318
- type: "object",
319
- properties: {
320
- publish: {
321
- type: "dict?",
322
- dictType: "object",
323
- properties: {
324
- type: {
325
- type: "enum?",
326
- enumValues: ["HTML", "MD", "JSON"]
327
- },
328
- all: "boolean?"
329
- }
330
- }
331
- }
332
- }
333
-
334
- export async function importAPIRoute(inFile: string, options: ImportJSXFileOptions, logger?: Logger) {
335
- const isCJS = extname(inFile) === ".cjs";
336
- const mod = isCJS ? (await importJSXFile(inFile, options, logger)).default.default : (await importJSXFile(inFile, options, logger)).default;
337
- const module = typeof mod === "function" ? { handler: mod } : parser.parse(mod, APIRouteSchema, basename(inFile));
338
- if (module !== undefined) {
339
- return module as APIRoute;
340
- } else {
341
- throw new Error(`error with module [${inFile}] undefined`);
342
- }
343
- }
344
-
345
- export async function importMigrationModule(inFile: string, options: ImportJSXFileOptions, logger?: Logger) {
346
- const isCJS = extname(inFile) === ".cjs";
347
- const mod = isCJS ? (await importJSXFile(inFile, options, logger)).default.default : (await importJSXFile(inFile, options, logger)).default;
348
- const module = parser.parse(mod, MigrationSchema, basename(inFile));
349
- if (module !== undefined) {
350
- return module;
351
- } else {
352
- throw new Error(`error with module [${inFile}] undefined`);
353
- }
354
- }
355
-
356
- export async function importHTMLModule(inFile: string, options: ImportJSXFileOptions, logger?: Logger) {
357
- const module = (await importJSXFile(inFile, options, logger));
358
- parser.parse(module.default, HTMLModuleSchema.properties.default, `${basename(inFile)}.default`);
359
- parser.parse(module.apiOptions, APIOptionsSchema, `${basename(inFile)}.apiOptions`);
360
- if (module !== undefined) {
361
- return module;
362
- } else {
363
- throw new Error(`error with module [${inFile}] undefined`);
364
- }
365
- }
366
-
367
- export async function importJSONModule(inFile: string, options: ImportJSXFileOptions, logger?: Logger) {
368
- const module = (await importJSXFile(inFile, options, logger));
369
- parser.parse(module.default, JSONModuleSchema.properties.default, `${basename(inFile)}.default`);
370
- parser.parse(module.apiOptions, APIOptionsSchema, `${basename(inFile)}.apiOptions`);
371
- if (module !== undefined) {
372
- return module;
373
- } else {
374
- throw new Error(`error with module [${inFile}] undefined`);
375
- }
376
- }
377
-
378
- export async function importAuthModule(inFile: string, options: ImportJSXFileOptions, logger?: Logger) {
379
- const isCJS = extname(inFile) === ".cjs";
380
- const mod = isCJS ? (await importJSXFile(inFile, options, logger)).default.default : (await importJSXFile(inFile, options, logger)).default;
381
-
382
- const module = parser.parse(mod, AuthConfigSchema, basename(inFile));
383
- if (module !== undefined) {
384
- return module;
385
- } else {
386
- throw new Error(`error with module [${inFile}] undefined`);
387
- }
388
- }
389
-
390
- export async function importMiddlewareConfigModule(inFile: string, options: ImportJSXFileOptions, logger?: Logger) {
391
- const isCJS = extname(inFile) === ".cjs";
392
- const mod = isCJS ? (await importJSXFile(inFile, options, logger)).default.default : (await importJSXFile(inFile, options, logger)).default;
393
-
394
- const module = parser.parse(mod, MiddlewareConfigSchema, basename(inFile)) as MiddlewareConfig;
395
- if (module !== undefined) {
396
- return module;
397
- } else {
398
- throw new Error(`error with module [${inFile}] undefined`);
399
- }
400
- }
401
-
402
- export async function importErrorConfigModule(inFile: string, options: ImportJSXFileOptions, logger?: Logger) {
403
- const isCJS = extname(inFile) === ".cjs";
404
- const mod = isCJS ? (await importJSXFile(inFile, options, logger)).default.default : (await importJSXFile(inFile, options, logger)).default;
405
-
406
- const module = parser.parse(mod, ErrorConfigSchema, basename(inFile)) as ErrorConfig;
407
- if (module !== undefined) {
408
- return module;
409
- } else {
410
- throw new Error(`error with module [${inFile}] undefined`);
411
- }
412
- }
413
-
414
- export async function importDocConfigModule(inFile: string, options: ImportJSXFileOptions, logger?: Logger) {
415
- const isCJS = extname(inFile) === ".cjs";
416
- const mod = isCJS ? (await importJSXFile(inFile, options, logger)).default.default : (await importJSXFile(inFile, options, logger)).default;
417
-
418
- const module = parser.parse(mod, DocConfigSchema, basename(inFile));
419
- if (module !== undefined) {
420
- return module;
421
- } else {
422
- throw new Error(`error with module [${inFile}] undefined`);
423
- }
424
- }
425
-
426
- export async function importConfigConfigModule(inFile: string, options: ImportJSXFileOptions, logger?: Logger) {
427
- const isCJS = extname(inFile) === ".cjs";
428
- const mod = isCJS ? (await importJSXFile(inFile, options, logger)).default.default : (await importJSXFile(inFile, options, logger)).default;
429
-
430
- const module = parser.parse(mod, MiddlewareConfigSchema, basename(inFile));
431
- if (module !== undefined) {
432
- return module;
433
- } else {
434
- throw new Error(`error with module [${inFile}] undefined`);
435
- }
436
- }
437
-
438
- export async function importCORSModule(inFile: string, options: ImportJSXFileOptions, logger?: Logger) {
439
- const isCJS = extname(inFile) === ".cjs";
440
- const mod = isCJS ? (await importJSXFile(inFile, options, logger)).default.default : (await importJSXFile(inFile, options, logger)).default;
441
-
442
- const module = parser.parse(mod, CORSOptionsSchema, basename(inFile));
443
- if (module !== undefined) {
444
- return module;
445
- } else {
446
- throw new Error(`error with module [${inFile}] undefined`);
447
- }
448
- }
449
-
450
- export async function importWSConfigModule(inFile: string, options: ImportJSXFileOptions, logger?: Logger) {
451
- const isCJS = extname(inFile) === ".cjs";
452
- const mod = isCJS ? (await importJSXFile(inFile, options, logger)).default.default : (await importJSXFile(inFile, options, logger)).default;
453
-
454
- const module = parser.parse(mod, WSConfigSchema, basename(inFile));
455
- if (module !== undefined) {
456
- return module;
457
- } else {
458
- throw new Error(`error with module [${inFile}] undefined`);
459
- }
460
- }
461
-
462
- export async function importDBConfigModule(inFile: string, options: ImportJSXFileOptions, logger?: Logger) {
463
- const isCJS = extname(inFile) === ".cjs";
464
- const mod = isCJS ? (await importJSXFile(inFile, options, logger)).default.default : (await importJSXFile(inFile, options, logger)).default;
465
-
466
- const module = parser.parse(mod, DBConfigSchema, basename(inFile));
467
- if (module !== undefined) {
468
- return module;
469
- } else {
470
- throw new Error(`error with module [${inFile}] undefined`);
471
- }
472
- }
473
-
474
- export async function importLogConfigModule(inFile: string, options: ImportJSXFileOptions, logger?: Logger) {
475
- const module = parser.parse((await importJSXFile(inFile, options, logger)).default, LogConfigSchema, basename(inFile));
476
- if (module !== undefined) {
477
- return module;
478
- } else {
479
- throw new Error(`error with module [${inFile}] undefined`);
480
- }
481
- }
482
-
483
- export async function importServerConfigModule(inFile: string, options: ImportJSXFileOptions, logger?: Logger) {
484
- const isCJS = extname(inFile) === ".cjs";
485
- const mod = isCJS ? (await importJSXFile(inFile, options, logger)).default.default : (await importJSXFile(inFile, options, logger)).default;
486
-
487
- const module = parser.parse(mod, ServerConfigSchema, basename(inFile));
488
- if (module !== undefined) {
489
- return module;
490
- } else {
491
- throw new Error(`error with module [${inFile}] undefined`);
492
- }
493
- }
494
-
495
- export interface ImportJSXFileOptions {
496
- noBuild: boolean;
497
- }
498
-
499
- export async function importJSXFile(inFile: string, options: ImportJSXFileOptions, logger?: Logger | Console): Promise<any> {
500
-
501
- if (options.noBuild) {
502
- const module = await import(resolve(inFile));
503
- return module;
504
- }
505
-
506
-
507
- const inflatedCode = await inflateJSX(inFile, {
508
- // embemedJSX: false,
509
- minify: false,
510
- useExport: true,
511
- platform: "node",
512
- logger
513
- });
514
- const tmpBuildDir = resolve(JSX_TMP_DIR, String(process.pid), "import", Date.now() + "-" + randomUUID());
515
- // const inFileTmp = resolve(tmpBuildDir, basename(inFile) + ".mjs");
516
- const inFileTmp = resolve(tmpBuildDir, basename(inFile) + ".cjs");
517
- //const logger = getLogger(`${SERVER_IDENTIFIER}_JSX`);
518
- await mkdirASync(tmpBuildDir, {
519
- recursive: true
520
- });
521
- try {
522
- await writeFileASync(inFileTmp, inflatedCode);
523
- // assertGlobalTampered();
524
- logger?.trace("importing [%s] from [%s]. to change the import folder set JSX_TMP", relative(cwd(), inFile), dirname(relative(JSX_TMP_DIR, inFileTmp)));
525
- logger?.debug("importing [%s]", relative(cwd(), inFile));
526
- const module = await import(resolve(inFileTmp));
527
- // console.dir(module);
528
- // assertGlobalTampered();
529
- if (CLEAR_JSX_CACHE) {
530
- logger?.trace("clearing cache at [%s]. to change this behaivor set CLEAR_JSX_CACHE to 0", tmpBuildDir);
531
- await unlinkASync(inFileTmp);
532
- await rmdirASync(tmpBuildDir);
533
- }
534
- return module.default;
535
- } catch (e) {
536
- logger?.error(e);
537
- logger?.error("error with2: " + inFile);
538
- if (CLEAR_JSX_CACHE) {
539
- logger?.trace("clearing cache at [%s] to change this behaivor set CLEAR_JSX_CACHE to 0", tmpBuildDir);
540
- await unlinkASync(inFileTmp);
541
- await rmdirASync(tmpBuildDir);
542
- } else {
543
- //console.error("errors on: " + tmpBuildDir);
544
- logger?.error("error with: %s", inFileTmp);
545
- logger?.trace("NOT clearing cache. to change this behaivor set CLEAR_JSX_CACHE to 1", tmpBuildDir);
546
- }
547
- throw e;
548
- }
549
- }
550
-
551
- export function jsx2HTML(out: JSX.Element, runtime?: Runtime): string {
552
- runtime = runtime ? runtime : createNodeRuntime();
553
- const element = runtime.createElement("root");
554
- const container = runtime.createContainer(element, {
555
- shadowInit: false, runtimeOptions: {
556
- disableEffects: true,
557
- disableEvents: true,
558
- disableRefListener: true,
559
- disableRefresh: true
560
- }
561
- });
562
- container.render(out);
563
- //console.log("jsx2HTML [%s]", element);
564
- let HTML = "";
565
- for (let i = 0; i < element.childNodes.length; i++) {
566
- const child = element.childNodes[i];
567
- //console.log("jsx2HTML child [%s]", child);
568
- //console.log("jsx2HTML child [%s]", (child as any).toString(" ", -1));
569
- HTML += (child as any).toString(" ", -1);
570
- }
571
- container.disconnect();
572
- //console.log("jsx2HTML [%s]", HTML);
573
- return HTML;
574
- }
package/src/common/jwt.ts DELETED
@@ -1,85 +0,0 @@
1
- import { EncryptJWT, EncryptOptions, JWTDecryptOptions, JWTDecryptResult, JWTPayload, JWTVerifyOptions, JWTVerifyResult, ProtectedHeaderParameters, SignJWT, SignOptions, decodeJwt, decodeProtectedHeader, jwtDecrypt as joseJWTDecrypt, jwtVerify } from "jose";
2
- import { KeyObject } from "node:crypto";
3
- import { EncryptJWTOptions, JWTSignOptions } from "../types.js";
4
-
5
- /**
6
- * creates a JWT encrypted token with jose
7
- *
8
- * @param payload the payload to encrypt
9
- * @param secret the secret example. const secret = createSecretKey(process.env.JWT_SECRET, 'utf-8');
10
- * @param options options like expiratation date, issuer and audience
11
- * @returns
12
- */
13
- export async function encryptJWT(payload: JWTPayload, secret: KeyObject, options?: Partial<EncryptJWTOptions>): Promise<string> {
14
- const en = new EncryptJWT(payload)
15
- .setProtectedHeader({
16
- alg: options?.alg ? options?.alg : 'dir',
17
- enc: options?.enc ? options?.enc : 'A128CBC-HS256'
18
- })
19
- .setIssuedAt(options?.iat)
20
- .setIssuer(options?.iss ? options?.iss : 'urn:example:issuer')
21
- .setAudience(options?.aud ? options?.aud : 'urn:example:audience')
22
- .setExpirationTime(options?.exp ? options?.exp : '2h');
23
-
24
- return await en.encrypt(secret, options?.options);
25
- }
26
-
27
- /**
28
- * decrypts a JWT token with jose
29
- * @param jwt the JWT token
30
- * @param secret the secret example. const secret = createSecretKey(process.env.JWT_SECRET, 'utf-8');
31
- * @param options options like issuer and audience
32
- * @returns
33
- */
34
- export async function decryptJWT<PayloadType = JWTPayload>(jwt: string, secret: KeyObject, options?: Partial<JWTDecryptOptions>): Promise<JWTDecryptResult<PayloadType>> {
35
- return await joseJWTDecrypt(jwt, secret, options)
36
- }
37
-
38
- /**
39
- * verify a JWT token with jose
40
- * @param jwt the JWT token
41
- * @param secret the secret example. const secret = createSecretKey(process.env.JWT_SECRET, 'utf-8');
42
- * @param options options like issuer and audience
43
- * @returns
44
- */
45
- export async function verifyJWT<PayloadType = JWTPayload>(jwt: string, secret: KeyObject, options?: Partial<JWTVerifyOptions>): Promise<JWTVerifyResult<PayloadType>> {
46
- return await jwtVerify(jwt, secret, options)
47
- }
48
-
49
- /**
50
- * creates a signed JWT with jose
51
- *
52
- * @param payload the payload to encrypt
53
- * @param secret the secret example. const secret = createSecretKey(process.env.JWT_SECRET, 'utf-8');
54
- * @param options options like expiratation date, issuer and audience
55
- * @returns
56
- */
57
- export async function signJWT(payload: JWTPayload, secret: KeyObject, options?: Partial<JWTSignOptions>): Promise<string> {
58
- const sign = new SignJWT(payload)
59
- .setProtectedHeader({
60
- alg: options?.alg ? options?.alg : 'HS256',
61
- })
62
- .setIssuedAt(options?.iat)
63
- .setIssuer(options?.iss ? options?.iss : 'urn:example:issuer')
64
- .setAudience(options?.aud ? options?.aud : 'urn:example:audience')
65
- .setExpirationTime(options?.exp ? options?.exp : '2h');
66
- return sign.sign(secret, options?.options);
67
- }
68
-
69
- /**
70
- * decodes a protected header with jose
71
- * @param token
72
- * @returns
73
- */
74
- export function decodeProtectedHeaderJWT(token: string | object): ProtectedHeaderParameters {
75
- return decodeProtectedHeader(token);
76
- }
77
-
78
- /**
79
- * decodes a jwt token
80
- * @param jwt
81
- * @returns
82
- */
83
- export function decodeJWT<PayloadType = JWTPayload>(jwt: string): PayloadType & JWTPayload {
84
- return decodeJwt<PayloadType>(jwt)
85
- }