miqro 6.3.0 → 7.0.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 (216) hide show
  1. package/README.md +9 -17
  2. package/build/editor.bundle.js +11601 -10129
  3. package/build/esm/src/bin/types.js +10 -5
  4. package/build/esm/src/cluster.js +1 -1
  5. package/build/esm/src/common/arguments.d.ts +1 -1
  6. package/build/esm/src/common/arguments.js +28 -14
  7. package/build/esm/src/common/assets.d.ts +1 -1
  8. package/build/esm/src/common/assets.js +34 -13
  9. package/build/esm/src/common/esbuild.d.ts +4 -1
  10. package/build/esm/src/common/esbuild.js +31 -26
  11. package/build/esm/src/common/exit.js +4 -4
  12. package/build/esm/src/common/help.d.ts +1 -1
  13. package/build/esm/src/common/help.js +0 -1
  14. package/build/esm/src/common/jsx.d.ts +2 -3
  15. package/build/esm/src/common/jsx.js +70 -75
  16. package/build/esm/src/common/paths.d.ts +0 -1
  17. package/build/esm/src/common/paths.js +3 -3
  18. package/build/esm/src/common/watch.d.ts +0 -1
  19. package/build/esm/src/common/watch.js +1 -1
  20. package/build/esm/src/inflate/inflate-sea.js +35 -24
  21. package/build/esm/src/inflate/inflate.js +4 -4
  22. package/build/esm/src/inflate/setup-auth.js +1 -1
  23. package/build/esm/src/inflate/setup-cors.js +1 -1
  24. package/build/esm/src/inflate/setup-db.js +2 -2
  25. package/build/esm/src/inflate/setup-error.js +1 -1
  26. package/build/esm/src/inflate/setup-http.js +16 -16
  27. package/build/esm/src/inflate/setup-log.js +1 -1
  28. package/build/esm/src/inflate/setup-middleware.js +1 -1
  29. package/build/esm/src/inflate/setup-server-config.js +1 -1
  30. package/build/esm/src/inflate/setup-ws.js +1 -1
  31. package/build/esm/src/inflate/setup.doc.d.ts +2 -2
  32. package/build/esm/src/inflate/setup.doc.js +23 -2
  33. package/build/esm/src/inflate/utils/sea-utils.js +2 -2
  34. package/build/esm/src/lib.d.ts +10 -1
  35. package/build/esm/src/lib.js +16 -1
  36. package/build/esm/src/main.js +1 -1
  37. package/build/esm/src/services/app.js +3 -4
  38. package/build/esm/src/services/migrations.js +2 -2
  39. package/build/esm/src/services/utils/jwt.d.ts +2 -0
  40. package/build/esm/src/services/utils/jwt.js +23 -0
  41. package/build/esm/src/services/utils/middleware.d.ts +9 -0
  42. package/build/esm/src/services/utils/middleware.js +9 -0
  43. package/build/esm/src/services/utils/server-interface.js +33 -4
  44. package/build/esm/src/types.d.ts +50 -83
  45. package/build/lib.cjs +15684 -15612
  46. package/package.json +6 -8
  47. package/sea/basic-compile.base64.sh +1 -1
  48. package/sea/basic-compile.sh +1 -1
  49. package/sea/install-nodejs.sh +1 -1
  50. package/sea/node.version.tag +1 -1
  51. package/.eslintrc +0 -15
  52. package/build/esm/editor/auth.d.ts +0 -6
  53. package/build/esm/editor/auth.js +0 -41
  54. package/build/esm/editor/common/admin-interface.d.ts +0 -36
  55. package/build/esm/editor/common/admin-interface.js +0 -44
  56. package/build/esm/editor/common/constants.d.ts +0 -4
  57. package/build/esm/editor/common/constants.js +0 -20
  58. package/build/esm/editor/common/constants.server.d.ts +0 -2
  59. package/build/esm/editor/common/constants.server.js +0 -4
  60. package/build/esm/editor/common/editor-index.d.ts +0 -2
  61. package/build/esm/editor/common/editor-index.js +0 -14
  62. package/build/esm/editor/common/html-encode.d.ts +0 -1
  63. package/build/esm/editor/common/html-encode.js +0 -14
  64. package/build/esm/editor/common/log-socket.d.ts +0 -15
  65. package/build/esm/editor/common/log-socket.js +0 -70
  66. package/build/esm/editor/common/templates.d.ts +0 -11
  67. package/build/esm/editor/common/templates.js +0 -477
  68. package/build/esm/editor/components/api-preview.d.ts +0 -11
  69. package/build/esm/editor/components/api-preview.js +0 -90
  70. package/build/esm/editor/components/editor.d.ts +0 -16
  71. package/build/esm/editor/components/editor.js +0 -365
  72. package/build/esm/editor/components/file-browser.d.ts +0 -37
  73. package/build/esm/editor/components/file-browser.js +0 -126
  74. package/build/esm/editor/components/file-editor-toolbar.d.ts +0 -22
  75. package/build/esm/editor/components/file-editor-toolbar.js +0 -93
  76. package/build/esm/editor/components/file-editor.d.ts +0 -32
  77. package/build/esm/editor/components/file-editor.js +0 -59
  78. package/build/esm/editor/components/filter-query.d.ts +0 -1
  79. package/build/esm/editor/components/filter-query.js +0 -22
  80. package/build/esm/editor/components/highlight-text-area.d.ts +0 -11
  81. package/build/esm/editor/components/highlight-text-area.js +0 -125
  82. package/build/esm/editor/components/log-viewer.d.ts +0 -6
  83. package/build/esm/editor/components/log-viewer.js +0 -69
  84. package/build/esm/editor/components/new-file.d.ts +0 -10
  85. package/build/esm/editor/components/new-file.js +0 -117
  86. package/build/esm/editor/components/scroll-query.d.ts +0 -7
  87. package/build/esm/editor/components/scroll-query.js +0 -21
  88. package/build/esm/editor/components/start-page.d.ts +0 -13
  89. package/build/esm/editor/components/start-page.js +0 -30
  90. package/build/esm/editor/http/admin/editor/api/fs/delete.api.d.ts +0 -3
  91. package/build/esm/editor/http/admin/editor/api/fs/delete.api.js +0 -29
  92. package/build/esm/editor/http/admin/editor/api/fs/read.api.d.ts +0 -5
  93. package/build/esm/editor/http/admin/editor/api/fs/read.api.js +0 -49
  94. package/build/esm/editor/http/admin/editor/api/fs/rename.api.d.ts +0 -4
  95. package/build/esm/editor/http/admin/editor/api/fs/rename.api.js +0 -39
  96. package/build/esm/editor/http/admin/editor/api/fs/scan.api.d.ts +0 -26
  97. package/build/esm/editor/http/admin/editor/api/fs/scan.api.js +0 -149
  98. package/build/esm/editor/http/admin/editor/api/fs/write.api.d.ts +0 -3
  99. package/build/esm/editor/http/admin/editor/api/fs/write.api.js +0 -38
  100. package/build/esm/editor/http/admin/editor/api/server/reload.api.d.ts +0 -10
  101. package/build/esm/editor/http/admin/editor/api/server/reload.api.js +0 -46
  102. package/build/esm/editor/http/admin/editor/api/server/restart.api.d.ts +0 -10
  103. package/build/esm/editor/http/admin/editor/api/server/restart.api.js +0 -45
  104. package/build/esm/editor/http/admin/editor/editor.d.ts +0 -1
  105. package/build/esm/editor/http/admin/editor/editor.js +0 -7
  106. package/build/esm/editor/http/admin/editor/index.api.d.ts +0 -3
  107. package/build/esm/editor/http/admin/editor/index.api.js +0 -21
  108. package/build/esm/editor/server.d.ts +0 -3
  109. package/build/esm/editor/server.js +0 -49
  110. package/build/esm/editor/ws.d.ts +0 -3
  111. package/build/esm/editor/ws.js +0 -11
  112. package/build/esm/src/services/globals.d.ts +0 -3
  113. package/build/esm/src/services/globals.js +0 -182
  114. package/build/jsx.dom.js +0 -1587
  115. package/build/postject.base64.cjs +0 -1
  116. package/editor/auth.ts +0 -51
  117. package/editor/common/admin-interface.ts +0 -84
  118. package/editor/common/constants.server.ts +0 -5
  119. package/editor/common/constants.ts +0 -21
  120. package/editor/common/editor-index.tsx +0 -17
  121. package/editor/common/html-encode.ts +0 -14
  122. package/editor/common/log-socket.tsx +0 -85
  123. package/editor/common/templates.ts +0 -481
  124. package/editor/components/api-preview.tsx +0 -116
  125. package/editor/components/editor.tsx +0 -494
  126. package/editor/components/file-browser.tsx +0 -308
  127. package/editor/components/file-editor-toolbar.tsx +0 -191
  128. package/editor/components/file-editor.tsx +0 -122
  129. package/editor/components/filter-query.tsx +0 -22
  130. package/editor/components/highlight-text-area.tsx +0 -145
  131. package/editor/components/log-viewer.tsx +0 -110
  132. package/editor/components/new-file.tsx +0 -169
  133. package/editor/components/scroll-query.tsx +0 -22
  134. package/editor/components/start-page.tsx +0 -49
  135. package/editor/http/admin/editor/api/fs/delete.api.tsx +0 -32
  136. package/editor/http/admin/editor/api/fs/read.api.tsx +0 -55
  137. package/editor/http/admin/editor/api/fs/rename.api.tsx +0 -41
  138. package/editor/http/admin/editor/api/fs/scan.api.tsx +0 -181
  139. package/editor/http/admin/editor/api/fs/write.api.tsx +0 -41
  140. package/editor/http/admin/editor/api/server/reload.api.ts +0 -53
  141. package/editor/http/admin/editor/api/server/restart.api.tsx +0 -52
  142. package/editor/http/admin/editor/editor.tsx +0 -8
  143. package/editor/http/admin/editor/index.api.tsx +0 -39
  144. package/editor/server.ts +0 -57
  145. package/editor/ws.ts +0 -15
  146. package/sea/types.json +0 -1
  147. package/src/bin/compile.ts +0 -35
  148. package/src/bin/doc-md.ts +0 -210
  149. package/src/bin/generate-doc.ts +0 -64
  150. package/src/bin/test.ts +0 -92
  151. package/src/bin/types.ts +0 -29
  152. package/src/cluster.ts +0 -27
  153. package/src/common/arguments.ts +0 -745
  154. package/src/common/assets.ts +0 -128
  155. package/src/common/checksum.ts +0 -58
  156. package/src/common/constants.ts +0 -18
  157. package/src/common/content-type.ts +0 -84
  158. package/src/common/esbuild.ts +0 -94
  159. package/src/common/exit.ts +0 -91
  160. package/src/common/fs.ts +0 -82
  161. package/src/common/help.ts +0 -61
  162. package/src/common/jsx.ts +0 -547
  163. package/src/common/jwt.ts +0 -85
  164. package/src/common/paths.ts +0 -107
  165. package/src/common/watch.ts +0 -88
  166. package/src/inflate/inflate-sea.ts +0 -226
  167. package/src/inflate/inflate.ts +0 -101
  168. package/src/inflate/md.ts +0 -25
  169. package/src/inflate/setup-auth.ts +0 -41
  170. package/src/inflate/setup-cors.ts +0 -41
  171. package/src/inflate/setup-db.ts +0 -117
  172. package/src/inflate/setup-error.ts +0 -44
  173. package/src/inflate/setup-http.ts +0 -704
  174. package/src/inflate/setup-log.ts +0 -45
  175. package/src/inflate/setup-middleware.ts +0 -47
  176. package/src/inflate/setup-server-config.ts +0 -48
  177. package/src/inflate/setup-test.ts +0 -23
  178. package/src/inflate/setup-ws.ts +0 -50
  179. package/src/inflate/setup.doc.ts +0 -68
  180. package/src/inflate/utils/sea-utils.ts +0 -14
  181. package/src/lib.ts +0 -19
  182. package/src/main.ts +0 -101
  183. package/src/services/app.ts +0 -699
  184. package/src/services/editor.tsx +0 -101
  185. package/src/services/globals.ts +0 -186
  186. package/src/services/hot-reload.ts +0 -51
  187. package/src/services/migrations.ts +0 -68
  188. package/src/services/utils/admin-interface.ts +0 -37
  189. package/src/services/utils/cache.ts +0 -88
  190. package/src/services/utils/cluster-cache.ts +0 -230
  191. package/src/services/utils/cluster-ws.ts +0 -202
  192. package/src/services/utils/db-manager.ts +0 -92
  193. package/src/services/utils/get-route.ts +0 -70
  194. package/src/services/utils/log-transport.ts +0 -81
  195. package/src/services/utils/log.ts +0 -92
  196. package/src/services/utils/server-interface.ts +0 -92
  197. package/src/services/utils/websocketmanager.ts +0 -157
  198. package/src/types/@esbuild.d.ts +0 -1
  199. package/src/types/@miqro/core.d.ts +0 -2
  200. package/src/types/@miqro/jsx.d.ts +0 -2
  201. package/src/types/@miqro/parser.d.ts +0 -2
  202. package/src/types/@miqro/query.d.ts +0 -2
  203. package/src/types/@miqro/request.d.ts +0 -2
  204. package/src/types/@miqro/test.d.ts +0 -2
  205. package/src/types/@miqro.d.ts +0 -1
  206. package/src/types/@types.d.ts +0 -1
  207. package/src/types/browser.globals.d.ts +0 -1
  208. package/src/types/cookie.d.ts +0 -2
  209. package/src/types/globals.d.ts +0 -2
  210. package/src/types/jose.d.ts +0 -2
  211. package/src/types/jsx.globals.d.ts +0 -38
  212. package/src/types/miqro.d.ts +0 -228
  213. package/src/types/postject.d.ts +0 -1
  214. package/src/types/server.globals.d.ts +0 -47
  215. package/src/types.ts +0 -304
  216. package/tsconfig.json +0 -35
@@ -1,477 +0,0 @@
1
- export const TEMPLATES = {
2
- EMPTY: {
3
- displayName: "empty file",
4
- //template: () => "",
5
- sufix: "",
6
- language: "text",
7
- prefix: ""
8
- },
9
- JSON: {
10
- displayName: "a .json.ts file",
11
- template: () => `import { ServerRequest, ServerResponse } from "miqro";
12
-
13
- export default async (req: ServerRequest | null, res: ServerResponse | null) => {
14
- return {
15
- count: 1
16
- }
17
- }`,
18
- sufix: ".json.ts",
19
- language: "typescript",
20
- prefix: ""
21
- },
22
- API: {
23
- prefix: "http",
24
- sufix: ".api.ts",
25
- displayName: ".api.ts file",
26
- language: "typescript",
27
- template: () => `import { ServerRequest, ServerResponse, APIRoute } from "miqro";
28
-
29
- export default {
30
- path: "/health",
31
- description: "checks the health of the service",
32
- method: "GET",
33
- //middleware: [server.middleware.json()],
34
- request: {
35
- /*body: {
36
- someAttr: "string",
37
- optionalArray: "number[]?"
38
- }*/
39
- },
40
- response: {
41
- status: [200, 400],
42
- body: {
43
- status: {
44
- type: "enum",
45
- enumValues: ["OK", "NOK"]
46
- },
47
- message: "string?"
48
- }
49
- },
50
- handler: async (req: ServerRequest, res: ServerResponse) => {
51
- try {
52
- const [{ c }] = await req?.server?.db?.get("MyDB")?.query("SELECT 1+1 as c") as [{ c: number }];
53
- const statusText = String(c) === "2" ? "OK" : "NOK";
54
- return {
55
- status: statusText === "OK" ? 200 : 400,
56
- body: {
57
- status: statusText
58
- }
59
- }
60
- } catch (e) {
61
- req.logger.error(e);
62
- return {
63
- status: 400,
64
- body: {
65
- status: "NOK",
66
- message: e.message
67
- }
68
- };
69
- }
70
- }
71
- } as APIRoute`
72
- },
73
- MIGRATION: {
74
- prefix: "migration",
75
- sufix: ".ts",
76
- displayName: "migration file",
77
- language: "typescript",
78
- template: () => `import { Migration } from "miqro";
79
-
80
- export default {
81
- up: async (db, logger) => {
82
- await db.createTable("mytable", {
83
- id: {
84
- type: "bigint",
85
- autoIncrement: true,
86
- primaryKey: true
87
- },
88
- name: {
89
- type: "string"
90
- }
91
- }).yield(logger);
92
- },
93
- down: async (db, logger) => {
94
- await db.dropTable("mytable").yield(logger);
95
- }
96
- } as Migration;`
97
- },
98
- TEST: {
99
- prefix: "test",
100
- sufix: ".test.tsx",
101
- displayName: "a test file",
102
- language: "typescript",
103
- template: () => `import { } from "miqro";
104
- import { strictEqual } from "node:assert";
105
-
106
- describe("test group", () => {
107
- it("sample test1", async () => {
108
- const response = await test.request({
109
- url: "/index.html"
110
- });
111
- strictEqual(response.status, 200);
112
- });
113
-
114
- it("sample test2", async () => {
115
- await test.jsx.test(async (container, root, runtime) => {
116
- function SomeComponent() {
117
- return <p id="test-id">HelloWorld</p>
118
- }
119
- container.render(<SomeComponent />);
120
- strictEqual(runtime.getElementById("test-id")?.textContent, "HelloWorld");
121
- });
122
- });
123
- });
124
- `
125
- },
126
- HTMLTSX: {
127
- prefix: "http",
128
- sufix: ".html.tsx",
129
- displayName: ".html.tsx file",
130
- language: "typescript",
131
- template: () => `import { ServerRequest, ServerResponse, APIOptions } from "miqro";
132
-
133
- /*export const apiOptions: APIOptions = {
134
- path: ["/", "/index.html"],
135
- method: ["GET"]
136
- };*/
137
-
138
- export default async (req: ServerRequest | null, res: ServerResponse | null) => {
139
- return <html>
140
- <head></head>
141
- <body>
142
- <h1>hello world!</h1>
143
- </body>
144
- </html>;
145
- }`
146
- },
147
- AUTHCONFIG: {
148
- prefix: "",
149
- sufix: ".ts",
150
- filename: "auth",
151
- displayName: "auth.ts file",
152
- language: "typescript",
153
- template: () => `import { AuthConfig } from "miqro";
154
-
155
- export default {
156
- //path: ["/api/"], //optionaly specify a custom path list
157
- /*options: {
158
- tokenLocation: "free",// "query"//"cookie" //"header"
159
- tokenLocationName: "x-auth"
160
- },*/
161
- authService: {
162
- verify: async ({ token, req, res }) => {
163
- // TODO Implement logic
164
- return null;
165
- /*return {
166
- username: "username",
167
- groups: ["someapi"],
168
- account: "account",
169
- token: ""
170
- };*/
171
- }
172
- }
173
- } as AuthConfig;
174
- `
175
- },
176
- DOCCONFIG: {
177
- prefix: "",
178
- sufix: ".ts",
179
- filename: "doc",
180
- displayName: "doc.ts file",
181
- language: "typescript",
182
- template: () => `import { DocConfig } from "miqro";
183
-
184
- export default {
185
- // auto publish API documentation
186
- publish: {
187
- "/api/doc.html": {
188
- type: "HTML", // can be "MD" | "JSON" | "HTML"
189
- //all: true, // enable to show .html and other static resources
190
- }
191
- }
192
- } as DocConfig;`
193
- },
194
- WSCONFIG: {
195
- prefix: "",
196
- sufix: ".ts",
197
- filename: "ws",
198
- displayName: "ws.ts file",
199
- language: "typescript",
200
- template: () => `import { WSConfig } from "miqro";
201
-
202
- export default {
203
- path: "/socket",
204
- //disabled: true,
205
- //maxConnections: 100,
206
- /*onConnection(req) {
207
-
208
- },*/
209
- /*onDisconnect: (req) => {
210
-
211
- },*/
212
- /*onError: (req, error) => {
213
-
214
- },*/
215
- /*onMessage: (req, data) => {
216
-
217
- },*/
218
- validate(req) {
219
- // TODO implement logic
220
- return false;
221
- },
222
- } as WSConfig;
223
- `
224
- },
225
- SERVERCONFIG: {
226
- prefix: "",
227
- sufix: ".ts",
228
- filename: "server",
229
- displayName: "server.ts file",
230
- language: "typescript",
231
- template: () => `import { ServerConfig } from "miqro";
232
-
233
- export default {
234
- preload: async (server) => {
235
- server.logger.info("server preload");
236
- /* uncomment code below to migrate-up the database "MyDB" before loading */
237
- /*if (server?.isPrimaryWorker()) {
238
- await server.db.migrate({ direction: "up", dbName: "MyDB" });
239
- }*/
240
- },
241
- load: async (server) => {
242
- server.logger.info("server loaded");
243
- },
244
- start: async (server) => {
245
- server.logger.info("server started");
246
- if (server.isPrimaryWorker()) {
247
- try {
248
- server.openBrowser("/index.html");
249
- } catch (e) {
250
- server.logger.error(e.message);
251
- }
252
- }
253
- },
254
- unload: (server) => {
255
- server.logger.info("server unload");
256
- },
257
- stop: (server) => {
258
- server.logger.info("server stop");
259
- }
260
- } as ServerConfig;
261
- `
262
- },
263
- TSCONFIGJSON: {
264
- prefix: "",
265
- sufix: ".json",
266
- filename: "tsconfig",
267
- displayName: "tsconfig.json file",
268
- language: "json",
269
- template: () => `{
270
- "compilerOptions": {
271
- "target": "es2022",
272
- "noEmit": true,
273
- "module": "NodeNext",
274
- "moduleResolution": "nodenext",
275
- "lib": ["es2021", "dom"],
276
- "jsx": "react",
277
- "jsxFactory": "JSX.createElement",
278
- "jsxFragmentFactory": "JSX.Fragment",
279
- "typeRoots": [
280
- "./.types"
281
- ]
282
- }
283
- }
284
- `
285
- },
286
- MIQROJSON: {
287
- prefix: "",
288
- sufix: ".json",
289
- filename: "miqro",
290
- displayName: "miqro.json file",
291
- language: "json",
292
- template: () => `{
293
- "services": ["src/"],
294
- "inflateDir": "build/",
295
- "name": "server",
296
- "browser": true,
297
- "logFile": false,
298
- "port": "3000"
299
- }
300
- `
301
- },
302
- MINIFIEDJSX: {
303
- prefix: "http",
304
- sufix: ".min.tsx",
305
- displayName: "min.tsx file",
306
- language: "typescript",
307
- template: () => `import { } from "miqro";
308
-
309
- export function MyComponent() {
310
- return <p>HelloWorld</p>
311
- }
312
- window.addEventListener("load", (event) => {
313
- jsx.define("my-tag", MyComponent, {
314
- shadowInit: false,
315
- observedAttributes: []
316
- });
317
- });
318
- `
319
- },
320
- JSX: {
321
- prefix: "http",
322
- sufix: ".tsx",
323
- displayName: ".tsx file",
324
- language: "typescript",
325
- template: () => `import { } from "miqro";
326
-
327
- export function MyComponent() {
328
- return <p>HelloWorld</p>
329
- }
330
- window.addEventListener("load", (event) => {
331
- jsx.define("my-tag", MyComponent, {
332
- shadowInit: false,
333
- observedAttributes: []
334
- });
335
- });
336
- `
337
- },
338
- SSRTSX: {
339
- prefix: "http",
340
- sufix: ".tsx",
341
- displayName: "an ssr component example using webcomponents",
342
- language: "typescript",
343
- httpSufix: ".js",
344
- template: (_filename, httpPath) => `import { } from "miqro";
345
-
346
- // TODO change this accordingly
347
- const TAG = "my-tag";
348
-
349
- function MyComponent(props, children) {
350
- const [count, setcount] = jsx.useState(0);
351
- jsx.useEffect(()=>{
352
- const timeout = setTimeout(()=>{
353
- setcount(count+1);
354
- }, 1000);
355
- return ()=>{
356
- clearTimeout(timeout);
357
- }
358
- });
359
- return <p>Count: {count}</p>
360
- }
361
-
362
- window.addEventListener("load", (event) => {
363
- jsx.define(TAG, MyComponent, {
364
- shadowInit: false,
365
- observedAttributes: []
366
- });
367
- });
368
-
369
- export function SSRComponent(props, children) {
370
- return JSX.createElement(
371
- JSX.Fragment, null,
372
- JSX.createElement(TAG, props,
373
- JSX.createElement(MyComponent, props, ...children)
374
- ),
375
- JSX.createElement("script", { type: "module", src: "/${httpPath}" })
376
- );
377
- }
378
- `
379
- },
380
- SSRMINTSX: {
381
- prefix: "http",
382
- sufix: ".min.tsx",
383
- displayName: "a minified ssr component example using webcomponents",
384
- language: "typescript",
385
- httpSufix: ".min.js",
386
- template: (filename, httpPath) => `import { } from "miqro";
387
-
388
- // TODO change this accordingly
389
- const TAG = "my-tag";
390
-
391
- function MyComponent(props, children) {
392
- const [count, setcount] = jsx.useState(0);
393
- jsx.useEffect(()=>{
394
- const timeout = setTimeout(()=>{
395
- setcount(count+1);
396
- }, 1000);
397
- return ()=>{
398
- clearTimeout(timeout);
399
- }
400
- });
401
- return <p>Count: {count}</p>
402
- }
403
-
404
- window.addEventListener("load", (event) => {
405
- jsx.define(TAG, MyComponent, {
406
- shadowInit: false,
407
- observedAttributes: []
408
- });
409
- });
410
-
411
- export function SSRComponent(props, children) {
412
- return JSX.createElement(
413
- JSX.Fragment, null,
414
- JSX.createElement(TAG, props,
415
- JSX.createElement(MyComponent, props, ...children)
416
- ),
417
- JSX.createElement("script", { type: "module", src: "/${httpPath}" })
418
- );
419
- }
420
- `
421
- },
422
- JS: {
423
- prefix: "http",
424
- sufix: ".js",
425
- displayName: ".js file",
426
- language: "typescript",
427
- template: () => `window.addEventListener("load", (event) => {
428
-
429
- });
430
- `
431
- },
432
- CSS: {
433
- prefix: "http",
434
- sufix: ".css",
435
- displayName: ".css file",
436
- language: "css",
437
- template: () => `* {
438
- font-family: "Menlo" !important;
439
- font-size: 11px;
440
- }
441
- `
442
- },
443
- DBCONFIG: {
444
- prefix: "",
445
- filename: "db",
446
- sufix: ".ts",
447
- displayName: "db.ts file",
448
- language: "typescript",
449
- template: () => `import { DBConfig } from "miqro";
450
-
451
- export default {
452
- //dialect: "node:sqlite"
453
- //storage: "./db.sqlite3"
454
- //url: "..."
455
- //disabled: false,
456
- name: "MyDB"
457
- } as DBConfig`
458
- },
459
- CORS: {
460
- prefix: "",
461
- filename: "cors",
462
- sufix: ".ts",
463
- displayName: "cors.ts file",
464
- language: "typescript",
465
- template: () => `import { CORSConfig } from "miqro";
466
-
467
- export default {
468
- origins: "*",
469
- /*validate: (origin: string, origins: string | string[]) => {
470
- return false
471
- },
472
- methods: "GET,HEAD,PUT,PATCH,POST,DELETE",
473
- preflightContinue: false*/
474
- } as CORSConfig;
475
- `
476
- }
477
- };
@@ -1,11 +0,0 @@
1
- export declare function APIPReview(props: {
2
- apiPreview?: {
3
- path: string;
4
- method: string;
5
- }[];
6
- isPanelVisible: (panel: string) => boolean;
7
- }): JSX.Element;
8
- export declare namespace APIPReview {
9
- var asFragment: boolean;
10
- var shadowInit: boolean;
11
- }
@@ -1,90 +0,0 @@
1
- import { HighlightTextArea } from "./highlight-text-area.js";
2
- const DEFAULT_HEADERS = `{"content-type": "application/json"}`;
3
- const DEFAULT_BODY = `{}`;
4
- export function APIPReview(props) {
5
- const pathRef = jsx.useRef();
6
- const methodRef = jsx.useRef();
7
- const headersRef = jsx.useRef();
8
- const bodyRef = jsx.useRef();
9
- const [headers, setHeaders] = jsx.useState(DEFAULT_HEADERS);
10
- const [body, setBody] = jsx.useState(DEFAULT_BODY);
11
- const [responseStatus, setresponseStatus] = jsx.useState(null);
12
- const [responseHeaders, setresponseHeaders] = jsx.useState(null);
13
- const [responseBody, setresponseBody] = jsx.useState(null);
14
- const { path, method } = props.apiPreview ? props.apiPreview[0] : { path: "", method: "" };
15
- jsx.useEffect(() => {
16
- setresponseStatus(null);
17
- setresponseHeaders(null);
18
- setresponseBody(null);
19
- /*setHeaders(DEFAULT_HEADERS);
20
- setBody(DEFAULT_BODY);*/
21
- }, [path]);
22
- const useBody = String(method).toLocaleLowerCase() !== "get";
23
- function submit() {
24
- try {
25
- if (methodRef.current && pathRef.current && headersRef.current) {
26
- setHeaders(headersRef.current.value);
27
- if (bodyRef.current) {
28
- setBody(bodyRef.current.value);
29
- }
30
- fetch(pathRef.current.value, useBody && bodyRef.current ? {
31
- method: methodRef.current.value,
32
- headers: JSON.parse(headersRef.current.value),
33
- body: bodyRef.current.value
34
- } : {
35
- method: methodRef.current.value,
36
- headers: JSON.parse(headersRef.current.value),
37
- }).then(async (r) => {
38
- setresponseStatus(r.status);
39
- const headers = {};
40
- r.headers.forEach((value, key) => {
41
- headers[key] = value;
42
- });
43
- setresponseHeaders(JSON.stringify(headers, undefined, 2));
44
- const text = await r.text();
45
- setresponseBody(text);
46
- try {
47
- setresponseBody(JSON.stringify(JSON.parse(text), undefined, 2));
48
- }
49
- catch (e) {
50
- // ignore
51
- }
52
- }).catch(e => {
53
- console.error(e);
54
- });
55
- }
56
- }
57
- catch (e) {
58
- console.error(e);
59
- }
60
- }
61
- return JSX.createElement("div", { style: `${!props.isPanelVisible("right") ? "display: none;" : ""}${props.apiPreview ? "" : " display: none; "}margin:0; padding: 0; overflow: auto; max-height: 100%; width:100%;` },
62
- JSX.createElement("form", { onsubmit: ev => {
63
- ev.preventDefault();
64
- submit();
65
- } },
66
- JSX.createElement("p", null, "path"),
67
- JSX.createElement("input", { style: "width: calc(100% - 4 * var(--file-browser-separation));", type: "text", value: path, ref: pathRef }),
68
- JSX.createElement("p", null, "method"),
69
- JSX.createElement("input", { style: "width: calc(100% - 4 * var(--file-browser-separation));", type: "text", value: method, ref: methodRef }),
70
- JSX.createElement("p", null, "headers"),
71
- JSX.createElement("input", { style: "width: calc(100% - 4 * var(--file-browser-separation));", type: "text", value: headers, ref: headersRef }),
72
- useBody ?
73
- JSX.createElement(JSX.Fragment, null,
74
- JSX.createElement("p", null, "body"),
75
- JSX.createElement("input", { style: "width: calc(100% - 4 * var(--file-browser-separation));", type: "text", value: body, ref: bodyRef })) :
76
- JSX.createElement(JSX.Fragment, null),
77
- JSX.createElement("button", { style: "margin-top: var(--file-browser-separation); width: 100%;", class: "btn", onclick: ev => {
78
- ev.preventDefault();
79
- submit();
80
- } }, "submit"),
81
- JSX.createElement("div", null,
82
- JSX.createElement("p", null, "response status"),
83
- JSX.createElement("p", null, responseStatus),
84
- JSX.createElement("p", null, "response headers"),
85
- JSX.createElement(HighlightTextArea, { content: responseHeaders ? responseHeaders : "null", language: "json", disabled: "true" }),
86
- JSX.createElement("p", null, "response body"),
87
- JSX.createElement(HighlightTextArea, { content: responseBody ? responseBody : "null", language: "json", disabled: "true" }))));
88
- }
89
- APIPReview.asFragment = true;
90
- APIPReview.shadowInit = false;
@@ -1,16 +0,0 @@
1
- export declare function Editor(props: {
2
- disablelog?: boolean;
3
- disablepreview?: boolean;
4
- disablereload?: boolean;
5
- migrations: string;
6
- services: string;
7
- reloadstring: string;
8
- files: string;
9
- initialcurrent: string;
10
- classname?: string;
11
- errors: string;
12
- }): JSX.Element;
13
- export declare namespace Editor {
14
- var asFragment: boolean;
15
- var shadowInit: boolean;
16
- }