miqro 6.0.9 → 6.0.11

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 (78) hide show
  1. package/build/editor.bundle.js +29 -12
  2. package/build/esm/editor/common/log-socket.d.ts +3 -1
  3. package/build/esm/editor/common/log-socket.js +4 -1
  4. package/build/esm/editor/common/log-socket.js.map +1 -1
  5. package/build/esm/editor/common/templates.js +5 -5
  6. package/build/esm/editor/components/editor.js +4 -1
  7. package/build/esm/editor/components/editor.js.map +1 -1
  8. package/build/esm/editor/components/file-browser.js +28 -23
  9. package/build/esm/editor/components/file-browser.js.map +1 -1
  10. package/build/esm/editor/components/file-editor-toolbar.js +4 -4
  11. package/build/esm/editor/components/file-editor-toolbar.js.map +1 -1
  12. package/build/esm/editor/http/admin/editor/api/server/reload.api.js +2 -1
  13. package/build/esm/editor/http/admin/editor/api/server/reload.api.js.map +1 -1
  14. package/build/esm/editor/http/admin/editor/index.api.js +1 -1
  15. package/build/esm/src/cluster.js +0 -0
  16. package/build/esm/src/common/arguments.js +12 -7
  17. package/build/esm/src/common/arguments.js.map +1 -1
  18. package/build/esm/src/common/assets.d.ts +1 -0
  19. package/build/esm/src/common/assets.js +1 -1
  20. package/build/esm/src/common/assets.js.map +1 -1
  21. package/build/esm/src/common/jsx.d.ts +3 -3
  22. package/build/esm/src/common/jsx.js +36 -22
  23. package/build/esm/src/common/jsx.js.map +1 -1
  24. package/build/esm/src/common/watch.d.ts +3 -1
  25. package/build/esm/src/common/watch.js +5 -0
  26. package/build/esm/src/common/watch.js.map +1 -1
  27. package/build/esm/src/main.js +0 -0
  28. package/build/esm/src/services/app.d.ts +6 -1
  29. package/build/esm/src/services/app.js +36 -117
  30. package/build/esm/src/services/app.js.map +1 -1
  31. package/build/esm/src/services/utils/admin-interface.d.ts +3 -0
  32. package/build/esm/src/services/utils/admin-interface.js +34 -0
  33. package/build/esm/src/services/utils/admin-interface.js.map +1 -0
  34. package/build/esm/src/services/utils/cluster-cache.d.ts +2 -1
  35. package/build/esm/src/services/utils/cluster-cache.js +5 -1
  36. package/build/esm/src/services/utils/cluster-cache.js.map +1 -1
  37. package/build/esm/src/services/utils/cluster-ws.d.ts +1 -0
  38. package/build/esm/src/services/utils/cluster-ws.js +4 -0
  39. package/build/esm/src/services/utils/cluster-ws.js.map +1 -1
  40. package/build/esm/src/services/utils/db-manager.d.ts +1 -0
  41. package/build/esm/src/services/utils/db-manager.js +12 -0
  42. package/build/esm/src/services/utils/db-manager.js.map +1 -1
  43. package/build/esm/src/services/utils/log-transport.d.ts +7 -0
  44. package/build/esm/src/services/utils/log-transport.js +75 -0
  45. package/build/esm/src/services/utils/log-transport.js.map +1 -0
  46. package/build/esm/src/services/utils/websocketmanager.d.ts +1 -0
  47. package/build/esm/src/services/utils/websocketmanager.js +11 -3
  48. package/build/esm/src/services/utils/websocketmanager.js.map +1 -1
  49. package/build/esm/src/types.d.ts +2 -0
  50. package/build/lib.cjs +1268 -1195
  51. package/editor/common/log-socket.tsx +4 -1
  52. package/editor/common/templates.ts +5 -5
  53. package/editor/components/editor.tsx +4 -1
  54. package/editor/components/file-browser.tsx +48 -35
  55. package/editor/components/file-editor-toolbar.tsx +4 -0
  56. package/editor/http/admin/editor/api/server/reload.api.ts +2 -1
  57. package/editor/http/admin/editor/index.api.tsx +4 -4
  58. package/package.json +9 -7
  59. package/sea/compile.sh +8 -5
  60. package/sea/install-esbuild.sh +1 -1
  61. package/sea/install-nodejs.sh +1 -1
  62. package/sea/node.version.tag +1 -1
  63. package/sea/types.json +1 -1
  64. package/sea/version.tag.js +11 -0
  65. package/src/common/arguments.ts +11 -7
  66. package/src/common/assets.ts +1 -1
  67. package/src/common/jsx.ts +35 -23
  68. package/src/common/watch.ts +5 -0
  69. package/src/services/app.ts +37 -115
  70. package/src/services/utils/admin-interface.ts +37 -0
  71. package/src/services/utils/cluster-cache.ts +6 -1
  72. package/src/services/utils/cluster-ws.ts +6 -1
  73. package/src/services/utils/db-manager.ts +13 -0
  74. package/src/services/utils/log-transport.ts +75 -0
  75. package/src/services/utils/websocketmanager.ts +13 -3
  76. package/src/types/miqro.d.ts +2 -2
  77. package/src/types.ts +3 -0
  78. package/package.json--OLD +0 -36
@@ -7,7 +7,7 @@ export interface LogSocket {
7
7
  setMaxLogSize: (val: number | "unlimited") => void;
8
8
  }
9
9
 
10
- export function useLogSocket(): LogSocket {
10
+ export function useLogSocket(options: { disableLog?: boolean; }): LogSocket {
11
11
 
12
12
  const [_, setmaxLogSize, getMaxlogsize] = jsx.useState<number | "unlimited">(1000000);
13
13
 
@@ -20,6 +20,9 @@ export function useLogSocket(): LogSocket {
20
20
 
21
21
  function setupSocket() {
22
22
  try {
23
+ if (options.disableLog) {
24
+ return;
25
+ }
23
26
  console.log("setting up log socket");
24
27
  const socket = new WebSocket("/admin/socket");
25
28
  socket.addEventListener("error", (err) => {
@@ -34,7 +34,7 @@ export default async (req: ServerRequest | null, res: ServerResponse | null) =>
34
34
  sufix: ".api.ts",
35
35
  displayName: ".api.ts file",
36
36
  language: "typescript",
37
- template: () => `import { ServerRequest, ServerResponse, APIRoute } from "miqro"
37
+ template: () => `import { ServerRequest, ServerResponse, APIRoute } from "miqro";
38
38
 
39
39
  export default {
40
40
  path: "/health",
@@ -85,7 +85,7 @@ export default {
85
85
  sufix: ".ts",
86
86
  displayName: "migration file",
87
87
  language: "typescript",
88
- template: () => `import { Migration } from "@miqro/query";
88
+ template: () => `import { Migration } from "miqro";
89
89
 
90
90
  export default {
91
91
  up: async (db, logger) => {
@@ -260,14 +260,14 @@ export default {
260
260
  template: () => `{
261
261
  "compilerOptions": {
262
262
  "target": "es2022",
263
- "module": "es2022",
263
+ "noEmit": true,
264
+ "module": "NodeNext",
265
+ "moduleResolution": "nodenext",
264
266
  "lib": ["es2021", "dom"],
265
267
  "jsx": "react",
266
268
  "jsxFactory": "JSX.createElement",
267
269
  "jsxFragmentFactory": "JSX.Fragment",
268
270
  "typeRoots": [
269
- "./node_modules/",
270
- "./node_modules/@types",
271
271
  "./.types"
272
272
  ]
273
273
  }
@@ -28,7 +28,10 @@ function InflateError2Map(errors: {
28
28
  }
29
29
 
30
30
  export function Editor(props: { disablelog?: boolean; disablepreview?: boolean; disablereload?: boolean; migrations: string; services: string; reloadstring: string; files: string; initialcurrent: string; classname?: string; errors: string }) {
31
- const logSocket = useLogSocket();
31
+ //console.dir(props);
32
+ const logSocket = useLogSocket({
33
+ disableLog: (props as any).disablelog === "true" || props.disablelog === true ? true : false
34
+ });
32
35
 
33
36
  const [services, setservices] = jsx.useState<string[]>(JSON.parse(props.services));
34
37
  const [collapsed, setCollapsed] = jsx.useState<{
@@ -44,27 +44,33 @@ export function FileBrowser(props: FileBrowserProps) {
44
44
  ev.preventDefault();
45
45
  props.togglePanel("left");
46
46
  }}>{"<<"}</button>
47
- <button
48
- class="file-editor-button btn"
49
- style={`width: 30%;${props.disableLog ? "display: none;" : ""}`}
50
- onclick={ev => {
51
- ev.preventDefault();
52
- props.togglePanel("bottom");
53
- }}>log</button>
54
- <button
55
- class="file-editor-button btn active"
56
- style={`width: 30%;${props.disableReload ? "display: none;" : ""}`}
57
- onclick={ev => {
58
- ev.preventDefault();
59
- props.scanFiles();
60
- }}>scan</button>
61
- <button
62
- class="file-editor-button btn warning"
63
- style={`width: 30%;${props.disableReload ? "display: none;" : ""}`}
64
- onclick={ev => {
65
- ev.preventDefault();
66
- props.reloadServer();
67
- }}>reload</button>
47
+ {props.disableLog ? <></> :
48
+ <button
49
+ id="log-btn"
50
+ class="file-editor-button btn"
51
+ style={`width: 30%;${props.disableLog ? "display: none;" : ""}`}
52
+ onclick={ev => {
53
+ ev.preventDefault();
54
+ props.togglePanel("bottom");
55
+ }}>log</button>}
56
+ {props.disableReload ? <></> :
57
+ <button
58
+ id="scan-btn"
59
+ class="file-editor-button btn active"
60
+ style={`width: 30%;${props.disableReload ? "display: none;" : ""}`}
61
+ onclick={ev => {
62
+ ev.preventDefault();
63
+ props.scanFiles();
64
+ }}>scan</button>}
65
+ {props.disableReload ? <></> :
66
+ <button
67
+ id="reload-btn"
68
+ class="file-editor-button btn warning"
69
+ style={`width: 30%;${props.disableReload ? "display: none;" : ""}`}
70
+ onclick={ev => {
71
+ ev.preventDefault();
72
+ props.reloadServer();
73
+ }}>reload</button>}
68
74
  </div>
69
75
  <div class="row">
70
76
  <input
@@ -79,28 +85,34 @@ export function FileBrowser(props: FileBrowserProps) {
79
85
  placeholder={"..filter.."} />
80
86
  </div>
81
87
  <div class="row">
88
+ {props.disablePreview ? <></> :
89
+ <button
90
+ id="preview-btn"
91
+ class="file-editor-button btn"
92
+ style={`width: 30%;${props.disablePreview ? "display: none;" : ""}`}
93
+ onclick={ev => {
94
+ ev.preventDefault();
95
+ props.togglePanel("right");
96
+ }}>preview</button>}
82
97
  <button
83
- class="file-editor-button btn"
84
- style={`width: 30%;${props.disablePreview ? "display: none;" : ""}`}
85
- onclick={ev => {
86
- ev.preventDefault();
87
- props.togglePanel("right");
88
- }}>preview</button>
89
- <button
98
+ id="new-btn"
90
99
  class="file-editor-button btn info"
91
100
  style="width: 20%;"
92
101
  onclick={ev => {
93
102
  ev.preventDefault();
94
103
  props.showNewFile();
95
104
  }}>new</button>
105
+ {props.disableReload ? <></> :
106
+ <button
107
+ id="scan-btn"
108
+ class="file-editor-button btn active"
109
+ style={`width: 30%;${!props.disableReload ? "display: none;" : ""}`}
110
+ onclick={ev => {
111
+ ev.preventDefault();
112
+ props.scanFiles();
113
+ }}>scan</button>}
96
114
  <button
97
- class="file-editor-button btn active"
98
- style={`width: 30%;${!props.disableReload ? "display: none;" : ""}`}
99
- onclick={ev => {
100
- ev.preventDefault();
101
- props.scanFiles();
102
- }}>scan</button>
103
- <button
115
+ id="saveall-btn"
104
116
  class="file-editor-button btn success"
105
117
  style="width: 25%;"
106
118
  onclick={ev => {
@@ -109,6 +121,7 @@ export function FileBrowser(props: FileBrowserProps) {
109
121
 
110
122
  }}>save</button>
111
123
  <button
124
+ id="closeall-btn"
112
125
  class="file-editor-button btn danger"
113
126
  style="width: 25%;"
114
127
  onclick={ev => {
@@ -43,6 +43,7 @@ export function FileEditorToolbar(props: FileEditorToolbar) {
43
43
  props.togglePanel("left");
44
44
  }}>{">>"}</button>
45
45
  <button
46
+ id="save-btn"
46
47
  disabled={!props.changed}
47
48
  class={`btn success`}
48
49
  onclick={ev => {
@@ -50,6 +51,7 @@ export function FileEditorToolbar(props: FileEditorToolbar) {
50
51
  props.saveFile();
51
52
  }}>save</button>
52
53
  {props.disableReload ? <></> : <button
54
+ id="savereload-btn"
53
55
  disabled={!props.changed}
54
56
  class={`btn info`}
55
57
  style="margin-left: var(--file-browser-separation);"
@@ -58,6 +60,7 @@ export function FileEditorToolbar(props: FileEditorToolbar) {
58
60
  props.saveFile(true);
59
61
  }}>save/reload</button>}
60
62
  <button
63
+ id="revert-btn"
61
64
  disabled={!props.changed}
62
65
  style="margin-left: var(--file-browser-separation);"
63
66
  class={`btn warning`}
@@ -66,6 +69,7 @@ export function FileEditorToolbar(props: FileEditorToolbar) {
66
69
  props.revertFile();
67
70
  }}>revert</button>
68
71
  <button
72
+ id="close-btn"
69
73
  class={`btn danger`}
70
74
  style="margin-left: var(--file-browser-separation);"
71
75
  onclick={ev => {
@@ -30,11 +30,12 @@ export default {
30
30
  },
31
31
  handler: async (req: AdminRequest, res) => {
32
32
  const errors = await req?.editor?.reload();
33
+ const parsedErrors = parseInflateErrors(errors);
33
34
  return res.json({
34
35
  message: "OK",
35
36
  reloadString: req.uuid,
36
37
  migrations: req?.editor?.getMigrations().map(m => m.name),
37
- errors: parseInflateErrors(errors)
38
+ errors: parsedErrors ? parsedErrors : []
38
39
  });
39
40
  },
40
41
  } as APIRoute;
@@ -22,11 +22,11 @@ export default {
22
22
 
23
23
  <script type="module" src="/admin/editor/editor.js" />
24
24
  <editor-component
25
- disableLog="true"
26
- disablePreview="true"
27
- disableReload="true"
25
+ disablelog="true"
26
+ disablepreview="true"
27
+ disablereload="true"
28
28
  class="main-container"
29
- reloadString={`${req?.uuid}`}
29
+ reloadstring={`${req?.uuid}`}
30
30
  migrations={`${HTMLEncode(JSON.stringify(migrations))}`}
31
31
  services={`${HTMLEncode(JSON.stringify(services))}`}
32
32
  errors={`${HTMLEncode(JSON.stringify(errors))}`}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "miqro",
3
- "version": "6.0.9",
3
+ "version": "6.0.11",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "main": "build/esm/src/lib.js",
@@ -8,13 +8,15 @@
8
8
  "author": "claukers",
9
9
  "license": "ISC",
10
10
  "scripts": {
11
- "test": "node --enable-source-maps --test test/cases/*.test.js",
12
- "coverage": "node --enable-source-maps --experimental-test-coverage --test test/cases/*.test.js",
11
+ "pretest": "npm run build",
12
+ "test": "BROWSER=none node --enable-source-maps --test test/cases/*.test.js",
13
+ "coverage": "BROWSER=none node --enable-source-maps --experimental-test-coverage --test test/cases/*.test.js",
13
14
  "prepare": "npm run build",
14
15
  "release:package": "sh sea/release-tar.sh",
15
16
  "prerelease:package": "npm run compile",
16
17
  "build": "tsc",
17
- "postbuild": "npm run postbuild:lib && npm run postbuild:postject && npm run postbuild:sh && npm run postbuild:jsxdom && npm run postbuild:editor && npm run postbuild:types",
18
+ "postbuild": "npm run postbuild:lib && npm run postbuild:postject && npm run postbuild:sh && npm run postbuild:jsxdom && npm run postbuild:editor && npm run postbuild:types && npm run postbuild:versiontag",
19
+ "postbuild:versiontag": "node sea/version.tag.js",
18
20
  "postbuild:types": "sh sea/copy-types.sh && node sea/generate-global-types-asset-json.js",
19
21
  "postbuild:editor": "esbuild --log-level=silent --external:node:process --external:node:path --platform=neutral --bundle --loader:.js=jsx --jsx-factory=jsx.createElement --jsx-fragment=jsx.Fragment sea/editor-assets/editor.bundle.in.mjs --outfile=build/editor.bundle.js",
20
22
  "postbuild:jsxdom": "cp node_modules/@miqro/jsx-dom/build/jsx-dom.esm.bundle.js build/jsx.dom.js",
@@ -35,7 +37,8 @@
35
37
  "@types/cookie": "^0.6.0",
36
38
  "@types/node": "^22.10.2",
37
39
  "postject": "1.0.0-alpha.6",
38
- "typescript": "^5.7.2"
40
+ "typescript": "^5.7.2",
41
+ "highlight.js": "11.11.1"
39
42
  },
40
43
  "dependencies": {
41
44
  "@miqro/core": "^5.0.13",
@@ -48,8 +51,7 @@
48
51
  "@miqro/test": "^0.2.9",
49
52
  "@miqro/test-http": "^0.1.2",
50
53
  "@types/showdown": "2.0.6",
51
- "esbuild": "0.25.3",
52
- "highlight.js": "11.11.1",
54
+ "esbuild": "0.25.4",
53
55
  "showdown": "2.1.0"
54
56
  }
55
57
  }
package/sea/compile.sh CHANGED
@@ -14,6 +14,9 @@ TSC_BIN="sh sea/tsc.sh"
14
14
  sh sea/copy-types.sh
15
15
  $NODE_BIN sea/generate-global-types-asset-json.js
16
16
 
17
+ #version.tag
18
+ $NODE_BIN sea/version.tag.js
19
+
17
20
  rm -Rf bin;
18
21
  mkdir -p bin/;
19
22
  rm -Rf build;
@@ -23,12 +26,12 @@ mkdir -p build/;
23
26
  echo $TSC_BIN
24
27
  $TSC_BIN
25
28
 
26
- CURRENT_GIT_BRANCH=`git rev-parse --abbrev-ref HEAD`
27
- CURRENT_GIT_SHORT_HASH=`git rev-parse --short HEAD`
28
- CURRENT_DATE=`date +"%y-%m-%d"`
29
- VERSION_TAG="${CURRENT_DATE}_${CURRENT_GIT_SHORT_HASH}_${CURRENT_GIT_BRANCH}"
29
+ #CURRENT_GIT_BRANCH=`git rev-parse --abbrev-ref HEAD`
30
+ #CURRENT_GIT_SHORT_HASH=`git rev-parse --short HEAD`
31
+ #CURRENT_DATE=`date +"%y-%m-%d"`
32
+ #VERSION_TAG="${CURRENT_DATE}_${CURRENT_GIT_SHORT_HASH}_${CURRENT_GIT_BRANCH}"
30
33
 
31
- echo $VERSION_TAG > sea/version.tag
34
+ #echo $VERSION_TAG > sea/version.tag
32
35
 
33
36
  # jsx.js
34
37
  cp node_modules/@miqro/jsx-dom/build/jsx-dom.esm.bundle.js build/jsx.dom.js
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env sh
2
2
 
3
3
  TARGET="${PWD}/sea/deps/esbuild"
4
- VERSION="0.25.3"
4
+ VERSION="0.25.4"
5
5
 
6
6
  if [ -d "$TARGET" ]; then
7
7
  echo "$TARGET already exists exist."
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env sh
2
2
 
3
3
  TARGET="${PWD}/sea/deps/nodejs"
4
- VERSION="23.11.0"
4
+ VERSION="24.0.0"
5
5
 
6
6
  if [ -d "$TARGET" ]; then
7
7
  echo "$TARGET already exists exist."
@@ -1 +1 @@
1
- 23.11.0
1
+ 24.0.0