miqro 6.3.0 → 7.0.2

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 (148) hide show
  1. package/README.md +9 -17
  2. package/build/editor.bundle.js +11601 -10129
  3. package/build/esm/editor/common/log-socket.js +1 -0
  4. package/build/esm/editor/common/templates.js +90 -90
  5. package/build/esm/editor/components/api-preview.js +2 -0
  6. package/build/esm/editor/components/editor.js +2 -0
  7. package/build/esm/editor/components/file-browser.js +1 -0
  8. package/build/esm/editor/components/file-editor-toolbar.js +2 -0
  9. package/build/esm/editor/components/file-editor.js +2 -0
  10. package/build/esm/editor/components/filter-query.js +1 -0
  11. package/build/esm/editor/components/highlight-text-area.js +2 -0
  12. package/build/esm/editor/components/log-viewer.js +2 -0
  13. package/build/esm/editor/components/new-file.js +2 -0
  14. package/build/esm/editor/components/scroll-query.js +1 -0
  15. package/build/esm/editor/components/start-page.js +2 -0
  16. package/build/esm/editor/http/admin/editor/api/fs/delete.api.js +2 -1
  17. package/build/esm/editor/http/admin/editor/api/fs/read.api.js +2 -1
  18. package/build/esm/editor/http/admin/editor/api/fs/rename.api.js +2 -1
  19. package/build/esm/editor/http/admin/editor/api/fs/scan.api.js +2 -1
  20. package/build/esm/editor/http/admin/editor/api/fs/write.api.js +2 -1
  21. package/build/esm/editor/http/admin/editor/api/server/restart.api.js +2 -1
  22. package/build/esm/editor/http/admin/editor/editor.js +2 -1
  23. package/build/esm/editor/http/admin/editor/index.api.js +1 -0
  24. package/build/esm/src/bin/types.js +10 -5
  25. package/build/esm/src/cluster.js +1 -1
  26. package/build/esm/src/common/arguments.d.ts +1 -1
  27. package/build/esm/src/common/arguments.js +28 -14
  28. package/build/esm/src/common/assets.d.ts +1 -1
  29. package/build/esm/src/common/assets.js +34 -13
  30. package/build/esm/src/common/esbuild.d.ts +4 -1
  31. package/build/esm/src/common/esbuild.js +31 -26
  32. package/build/esm/src/common/exit.js +4 -4
  33. package/build/esm/src/common/help.d.ts +1 -1
  34. package/build/esm/src/common/help.js +0 -1
  35. package/build/esm/src/common/jsx.d.ts +2 -3
  36. package/build/esm/src/common/jsx.js +70 -75
  37. package/build/esm/src/common/paths.d.ts +0 -1
  38. package/build/esm/src/common/paths.js +3 -3
  39. package/build/esm/src/common/watch.d.ts +0 -1
  40. package/build/esm/src/common/watch.js +1 -1
  41. package/build/esm/src/inflate/inflate-sea.js +35 -24
  42. package/build/esm/src/inflate/inflate.js +4 -4
  43. package/build/esm/src/inflate/setup-auth.js +1 -1
  44. package/build/esm/src/inflate/setup-cors.js +1 -1
  45. package/build/esm/src/inflate/setup-db.js +2 -2
  46. package/build/esm/src/inflate/setup-error.js +1 -1
  47. package/build/esm/src/inflate/setup-http.js +16 -16
  48. package/build/esm/src/inflate/setup-log.js +1 -1
  49. package/build/esm/src/inflate/setup-middleware.js +1 -1
  50. package/build/esm/src/inflate/setup-server-config.js +1 -1
  51. package/build/esm/src/inflate/setup-ws.js +1 -1
  52. package/build/esm/src/inflate/setup.doc.d.ts +2 -2
  53. package/build/esm/src/inflate/setup.doc.js +23 -2
  54. package/build/esm/src/inflate/utils/sea-utils.js +2 -2
  55. package/build/esm/src/lib.d.ts +10 -1
  56. package/build/esm/src/lib.js +16 -1
  57. package/build/esm/src/main.js +1 -1
  58. package/build/esm/src/services/app.js +3 -4
  59. package/build/esm/src/services/migrations.js +2 -2
  60. package/build/esm/src/services/utils/jwt.d.ts +2 -0
  61. package/build/esm/src/services/utils/jwt.js +23 -0
  62. package/build/esm/src/services/utils/middleware.d.ts +9 -0
  63. package/build/esm/src/services/utils/middleware.js +9 -0
  64. package/build/esm/src/services/utils/server-interface.js +33 -4
  65. package/build/esm/src/types.d.ts +50 -83
  66. package/build/lib.cjs +15684 -15612
  67. package/editor/common/log-socket.tsx +2 -0
  68. package/editor/common/templates.ts +12 -12
  69. package/editor/components/api-preview.tsx +2 -0
  70. package/editor/components/editor.tsx +2 -0
  71. package/editor/components/file-browser.tsx +3 -0
  72. package/editor/components/file-editor-toolbar.tsx +3 -0
  73. package/editor/components/file-editor.tsx +3 -0
  74. package/editor/components/filter-query.tsx +4 -0
  75. package/editor/components/highlight-text-area.tsx +3 -0
  76. package/editor/components/log-viewer.tsx +3 -0
  77. package/editor/components/new-file.tsx +3 -0
  78. package/editor/components/scroll-query.tsx +3 -0
  79. package/editor/components/start-page.tsx +3 -0
  80. package/editor/http/admin/editor/api/fs/delete.api.tsx +2 -2
  81. package/editor/http/admin/editor/api/fs/read.api.tsx +2 -2
  82. package/editor/http/admin/editor/api/fs/rename.api.tsx +2 -2
  83. package/editor/http/admin/editor/api/fs/scan.api.tsx +2 -2
  84. package/editor/http/admin/editor/api/fs/write.api.tsx +2 -2
  85. package/editor/http/admin/editor/api/server/restart.api.tsx +2 -2
  86. package/editor/http/admin/editor/editor.tsx +3 -1
  87. package/editor/http/admin/editor/index.api.tsx +3 -0
  88. package/package.json +6 -8
  89. package/sea/basic-compile.base64.sh +1 -1
  90. package/sea/basic-compile.sh +1 -1
  91. package/sea/install-nodejs.sh +1 -1
  92. package/sea/node.version.tag +1 -1
  93. package/src/bin/types.ts +7 -2
  94. package/src/cluster.ts +1 -1
  95. package/src/common/arguments.ts +27 -10
  96. package/src/common/assets.ts +32 -12
  97. package/src/common/esbuild.ts +11 -3
  98. package/src/common/exit.ts +3 -3
  99. package/src/common/help.ts +0 -1
  100. package/src/common/jsx.ts +50 -35
  101. package/src/common/paths.ts +2 -2
  102. package/src/common/watch.ts +1 -1
  103. package/src/inflate/inflate-sea.ts +35 -24
  104. package/src/inflate/inflate.ts +4 -4
  105. package/src/inflate/setup-auth.ts +1 -1
  106. package/src/inflate/setup-cors.ts +1 -1
  107. package/src/inflate/setup-db.ts +2 -2
  108. package/src/inflate/setup-error.ts +1 -1
  109. package/src/inflate/setup-http.ts +16 -16
  110. package/src/inflate/setup-log.ts +1 -1
  111. package/src/inflate/setup-middleware.ts +1 -1
  112. package/src/inflate/setup-server-config.ts +1 -1
  113. package/src/inflate/setup-ws.ts +1 -1
  114. package/src/inflate/setup.doc.ts +27 -3
  115. package/src/inflate/utils/sea-utils.ts +2 -2
  116. package/src/lib.ts +17 -2
  117. package/src/main.ts +1 -1
  118. package/src/services/app.ts +4 -4
  119. package/src/services/migrations.ts +2 -2
  120. package/src/services/utils/jwt.ts +25 -0
  121. package/src/services/utils/middleware.ts +10 -0
  122. package/src/services/utils/server-interface.ts +37 -7
  123. package/src/types.ts +56 -53
  124. package/.eslintrc +0 -15
  125. package/build/esm/src/services/globals.d.ts +0 -3
  126. package/build/esm/src/services/globals.js +0 -182
  127. package/build/jsx.dom.js +0 -1587
  128. package/build/postject.base64.cjs +0 -1
  129. package/sea/types.json +0 -1
  130. package/src/types/@esbuild.d.ts +0 -1
  131. package/src/types/@miqro/core.d.ts +0 -2
  132. package/src/types/@miqro/jsx.d.ts +0 -2
  133. package/src/types/@miqro/parser.d.ts +0 -2
  134. package/src/types/@miqro/query.d.ts +0 -2
  135. package/src/types/@miqro/request.d.ts +0 -2
  136. package/src/types/@miqro/test.d.ts +0 -2
  137. package/src/types/@miqro.d.ts +0 -1
  138. package/src/types/@types.d.ts +0 -1
  139. package/src/types/browser.globals.d.ts +0 -1
  140. package/src/types/cookie.d.ts +0 -2
  141. package/src/types/globals.d.ts +0 -2
  142. package/src/types/jose.d.ts +0 -2
  143. package/src/types/jsx.globals.d.ts +0 -38
  144. package/src/types/miqro.d.ts +0 -228
  145. package/src/types/postject.d.ts +0 -1
  146. package/src/types/server.globals.d.ts +0 -47
  147. package/tsconfig.json +0 -35
  148. /package/src/services/{globals.ts → globals.ts.ignore} +0 -0
@@ -1,3 +1,5 @@
1
+ import * as jsx from "@miqro/jsx";
2
+
1
3
  interface LogLine { out: string; identifier: string; level: "error" | "warn" | "debug" | "trace" | "info" }
2
4
 
3
5
  export interface LogSocket {
@@ -110,7 +110,7 @@ export default {
110
110
  sufix: ".test.tsx",
111
111
  displayName: "a test file",
112
112
  language: "typescript",
113
- template: () => `import { } from "miqro";
113
+ template: () => `import JSX from "@miqro/jsx";
114
114
  import { strictEqual } from "node:assert";
115
115
 
116
116
  describe("test group", () => {
@@ -138,7 +138,8 @@ describe("test group", () => {
138
138
  sufix: ".html.tsx",
139
139
  displayName: ".html.tsx file",
140
140
  language: "typescript",
141
- template: () => `import { ServerRequest, ServerResponse, APIOptions } from "miqro";
141
+ template: () => `import JSX from "@miqro/jsx";
142
+ import { ServerRequest, ServerResponse, APIOptions } from "miqro";
142
143
 
143
144
  /*export const apiOptions: APIOptions = {
144
145
  path: ["/", "/index.html"],
@@ -284,10 +285,7 @@ export default {
284
285
  "lib": ["es2021", "dom"],
285
286
  "jsx": "react",
286
287
  "jsxFactory": "JSX.createElement",
287
- "jsxFragmentFactory": "JSX.Fragment",
288
- "typeRoots": [
289
- "./.types"
290
- ]
288
+ "jsxFragmentFactory": "JSX.Fragment"
291
289
  }
292
290
  }
293
291
  `},
@@ -311,13 +309,14 @@ export default {
311
309
  sufix: ".min.tsx",
312
310
  displayName: "min.tsx file",
313
311
  language: "typescript",
314
- template: () => `import { } from "miqro";
312
+ template: () => `import JSX from "@miqro/jsx";
313
+ import { define } from "@miqro/jsx-dom";
315
314
 
316
315
  export function MyComponent() {
317
316
  return <p>HelloWorld</p>
318
317
  }
319
318
  window.addEventListener("load", (event) => {
320
- jsx.define("my-tag", MyComponent, {
319
+ define("my-tag", MyComponent, {
321
320
  shadowInit: false,
322
321
  observedAttributes: []
323
322
  });
@@ -328,19 +327,20 @@ window.addEventListener("load", (event) => {
328
327
  sufix: ".tsx",
329
328
  displayName: ".tsx file",
330
329
  language: "typescript",
331
- template: () => `import { } from "miqro";
330
+ template: () => `import JSX from "@miqro/jsx";
331
+ import { define } from "@miqro/jsx-dom";
332
332
 
333
333
  export function MyComponent() {
334
334
  return <p>HelloWorld</p>
335
335
  }
336
336
  window.addEventListener("load", (event) => {
337
- jsx.define("my-tag", MyComponent, {
337
+ define("my-tag", MyComponent, {
338
338
  shadowInit: false,
339
339
  observedAttributes: []
340
340
  });
341
341
  });
342
342
  `},
343
- SSRTSX: {
343
+ /*SSRTSX: {
344
344
  prefix: "http",
345
345
  sufix: ".tsx",
346
346
  displayName: "an ssr component example using webcomponents",
@@ -423,7 +423,7 @@ export function SSRComponent(props, children) {
423
423
  );
424
424
  }
425
425
  `
426
- },
426
+ },*/
427
427
  JS: {
428
428
  prefix: "http",
429
429
  sufix: ".js",
@@ -1,4 +1,6 @@
1
1
  import { HighlightTextArea } from "./highlight-text-area.js";
2
+ import * as jsx from "@miqro/jsx";
3
+ import JSX from "@miqro/jsx";
2
4
 
3
5
  const DEFAULT_HEADERS = `{"content-type": "application/json"}`;
4
6
  const DEFAULT_BODY = `{}`;
@@ -1,3 +1,5 @@
1
+ import * as jsx from "@miqro/jsx";
2
+ import JSX from "@miqro/jsx";
1
3
  import { FileEditor } from "./file-editor.js";
2
4
  import { NewFile } from "./new-file.js";
3
5
  import { useScroll } from "./scroll-query.js";
@@ -1,3 +1,6 @@
1
+ import * as jsx from "@miqro/jsx";
2
+ import JSX from "@miqro/jsx";
3
+
1
4
  interface FileBrowserFile {
2
5
  filePath: string;
3
6
  fileName: string;
@@ -1,3 +1,6 @@
1
+ import * as jsx from "@miqro/jsx";
2
+ import JSX from "@miqro/jsx";
3
+
1
4
  import { SUPPORTED_LANGUAGES } from "../common/constants.js";
2
5
 
3
6
  interface FileEditorToolbar {
@@ -1,3 +1,6 @@
1
+ import * as jsx from "@miqro/jsx";
2
+ import JSX from "@miqro/jsx";
3
+
1
4
  import { APIPReview } from "./api-preview.js";
2
5
  import { FileEditorToolbar } from "./file-editor-toolbar.js";
3
6
  import { HighlightTextArea } from "./highlight-text-area.js";
@@ -1,3 +1,7 @@
1
+
2
+ import * as jsx from "@miqro/jsx";
3
+ import JSX from "@miqro/jsx";
4
+
1
5
  let queryTimeout2: any = null;
2
6
 
3
7
  export function useFilterQuery(): [string, (newFilter: string, inmediate?: boolean) => void] {
@@ -1,3 +1,6 @@
1
+ import * as jsx from "@miqro/jsx";
2
+ import JSX from "@miqro/jsx";
3
+
1
4
  //import hljs from "../lib/highlight/core.min.js"
2
5
  import hljs from 'highlight.js/lib/core';
3
6
  import javascript from 'highlight.js/lib/languages/javascript';
@@ -1,3 +1,6 @@
1
+ import * as jsx from "@miqro/jsx";
2
+ import JSX from "@miqro/jsx";
3
+
1
4
  import { LogSocket } from "../common/log-socket.js";
2
5
 
3
6
  function getUniqueIdentifiers(lines: {
@@ -1,3 +1,6 @@
1
+ import * as jsx from "@miqro/jsx";
2
+ import JSX from "@miqro/jsx";
3
+
1
4
  import { BASEEDITOR_PATH } from "../common/constants.js";
2
5
  import { TEMPLATES } from "../common/templates.js";
3
6
  import { HighlightTextArea } from "./highlight-text-area.js";
@@ -1,3 +1,6 @@
1
+ import * as jsx from "@miqro/jsx";
2
+ import JSX from "@miqro/jsx";
3
+
1
4
  let scrollTimeout2: any = null;
2
5
 
3
6
  export function useScroll(): [{ scrollTop: string; scrollLeft: string }, (newScroll: { scrollTop: number; scrollLeft: number; }, inmediate?: boolean) => void] {
@@ -1,3 +1,6 @@
1
+ import * as jsx from "@miqro/jsx";
2
+ import JSX from "@miqro/jsx";
3
+
1
4
  interface StartPageProps {
2
5
  togglePanel: (panel: string) => void;
3
6
  isPanelVisible: (panel: string) => boolean;
@@ -1,4 +1,4 @@
1
- import { APIRoute } from "@miqro/core";
1
+ import { APIRoute, JSONParser } from "@miqro/core";
2
2
  import { unlinkSync } from "node:fs";
3
3
  import { getPath } from "./read.api.js";
4
4
 
@@ -6,7 +6,7 @@ export default {
6
6
  description: "admin editor file deletion endpoint",
7
7
  method: "POST",
8
8
  path: "/delete",
9
- middleware: [server.middleware.json()],
9
+ middleware: [JSONParser()],
10
10
  request: {
11
11
  body: {
12
12
  path: "string"
@@ -1,4 +1,4 @@
1
- import { APIRoute } from "@miqro/core";
1
+ import { APIRoute, JSONParser } from "@miqro/core";
2
2
  import { readFileSync } from "node:fs";
3
3
  import { SUPPORTED_LANGUAGES } from "../../../../../common/constants.js";
4
4
  import { relative, resolve } from "node:path";
@@ -9,7 +9,7 @@ export default {
9
9
  method: "POST",
10
10
  path: "/read",
11
11
  description: "admin editor file read endpoint",
12
- middleware: [server.middleware.json()],
12
+ middleware: [JSONParser()],
13
13
  request: {
14
14
  body: {
15
15
  path: "string"
@@ -1,10 +1,10 @@
1
- import { APIRoute } from "@miqro/core";
1
+ import { APIRoute, JSONParser } from "@miqro/core";
2
2
  import { existsSync, mkdirSync, renameSync } from "node:fs";
3
3
  import { getPath } from "./read.api.js";
4
4
  import { dirname } from "node:path";
5
5
 
6
6
  export default {
7
- middleware: [server.middleware.json()],
7
+ middleware: [JSONParser()],
8
8
  method: "POST",
9
9
  description: "admin editor file rename endpoint",
10
10
  path: "/rename",
@@ -1,4 +1,4 @@
1
- import { APIRoute } from "@miqro/core";
1
+ import { APIRoute, JSONParser } from "@miqro/core";
2
2
  import { existsSync, readdirSync, statSync } from "node:fs";
3
3
  import { basename, dirname, extname, join, relative, resolve, sep } from "node:path";
4
4
  import { BASE_PATH } from "../../../../../common/constants.server.js";
@@ -24,7 +24,7 @@ export default {
24
24
  method: "GET",
25
25
  path: "/scan",
26
26
  description: "admin editor file scan endpoint",
27
- middleware: [server.middleware.json()],
27
+ middleware: [JSONParser()],
28
28
  request: {
29
29
  body: false
30
30
  },
@@ -1,10 +1,10 @@
1
- import { APIRoute } from "@miqro/core";
1
+ import { APIRoute, JSONParser } from "@miqro/core";
2
2
  import { existsSync, mkdirSync, writeFileSync } from "node:fs";
3
3
  import { getPath } from "./read.api.js";
4
4
  import { dirname } from "node:path";
5
5
 
6
6
  export default {
7
- middleware: [server.middleware.json()],
7
+ middleware: [JSONParser()],
8
8
  method: "POST",
9
9
  path: "/write",
10
10
  description: "admin editor file write endpoint",
@@ -1,4 +1,4 @@
1
- import { APIRoute } from "@miqro/core";
1
+ import { APIRoute, JSONParser } from "@miqro/core";
2
2
  import { relative } from "node:path";
3
3
  import { BASE_PATH } from "../../../../../common/constants.server.js";
4
4
  import { AdminRequest } from "../../../../../common/admin-interface.js";
@@ -7,7 +7,7 @@ export default {
7
7
  method: "POST",
8
8
  path: "/restart",
9
9
  description: "admin editor server restart endpoint",
10
- middleware: [server.middleware.json()],
10
+ middleware: [JSONParser()],
11
11
  request: {
12
12
  body: false
13
13
  },
@@ -1,8 +1,10 @@
1
+ import { define } from "@miqro/jsx-dom";
2
+
1
3
  //import "../../../../.types/browser.globals";
2
4
  import { Editor } from "../../../components/editor.js";
3
5
 
4
6
  window.addEventListener("load", async (event) => {
5
- jsx.define("editor-component", Editor, {
7
+ define("editor-component", Editor, {
6
8
  shadowInit: false
7
9
  });
8
10
  });
@@ -1,3 +1,6 @@
1
+ import * as jsx from "@miqro/jsx";
2
+ import JSX from "@miqro/jsx";
3
+
1
4
  import { APIRoute, Response } from "@miqro/core";
2
5
  import { scanDir } from "./api/fs/scan.api.js";
3
6
  import { HTMLEncode } from "../../../common/html-encode.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "miqro",
3
- "version": "6.3.0",
3
+ "version": "7.0.2",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "main": "build/esm/src/lib.js",
@@ -16,15 +16,13 @@
16
16
  "prerelease:package": "npm run compile",
17
17
  "prebuild": "rm -Rf build/;",
18
18
  "build": "tsc",
19
- "postbuild": "npm run postbuild:lib && npm run postbuild:postject && npm run postbuild:sh && npm run postbuild:jsxdom && npm run postbuild:editor && npm run postbuild:editor-assets && npm run postbuild:types && npm run postbuild:versiontag",
19
+ "postbuild": "npm run postbuild:lib && npm run postbuild:sh && npm run postbuild:assets && npm run postbuild:editor && npm run postbuild:editor-assets && npm run postbuild:versiontag",
20
20
  "postbuild:versiontag": "node sea/version.tag.js",
21
- "postbuild:types": "sh sea/copy-types.sh && node sea/generate-global-types-asset-json.js",
22
21
  "postbuild:editor-assets": "cp sea/editor-assets/font.ttf build/font.ttf && cp sea/editor-assets/style.css build/style.css",
23
- "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",
24
- "postbuild:jsxdom": "cp node_modules/@miqro/jsx-dom/build/jsx-dom.esm.bundle.js build/jsx.dom.js",
22
+ "postbuild:editor": "esbuild --external:node:process --external:node:path --bundle --loader:.js=jsx --jsx-factory=jsx.createElement --jsx-fragment=jsx.Fragment sea/editor-assets/editor.bundle.in.mjs --outfile=build/editor.bundle.js",
23
+ "postbuild:assets": "node sea/assets.js",
25
24
  "postbuild:sh": "node sea/base64.js sea/basic-compile.sh > sea/basic-compile.base64.sh",
26
- "postbuild:postject": "esbuild node_modules/postject/dist/cli.js --log-level=silent --bundle --platform=node --outfile=build/postject.cjs && node sea/base64.js build/postject.cjs > build/postject.base64.cjs",
27
- "postbuild:lib": "esbuild src/lib.ts --log-level=silent --bundle --platform=node --outfile=build/lib.cjs --external:sqlite3 --external:pg --external:esbuild --external:node:assert --external:node:util --external:node:path",
25
+ "postbuild:lib": "esbuild src/lib.ts --bundle --platform=node --outfile=build/lib.cjs --external:sqlite3 --external:pg --external:esbuild --external:node:assert --external:node:util --external:node:path",
28
26
  "compile": "npm run build && sh sea/compile.sh",
29
27
  "start:editor": "node --enable-source-maps --disable-warning=ExperimentalWarning build/esm/src/main.js --service editor/",
30
28
  "compile:editor": "node --enable-source-maps --disable-warning=ExperimentalWarning build/esm/src/main.js --compile --service editor/",
@@ -39,10 +37,10 @@
39
37
  "@types/node": "^22.10.2",
40
38
  "@types/showdown": "2.0.6",
41
39
  "highlight.js": "11.11.1",
42
- "postject": "1.0.0-alpha.6",
43
40
  "typescript": "^5.7.2"
44
41
  },
45
42
  "dependencies": {
43
+ "postject": "1.0.0-alpha.6",
46
44
  "@miqro/core": "^5.0.15",
47
45
  "@miqro/jsx": "^1.0.1",
48
46
  "@miqro/jsx-dom": "^1.0.4",
@@ -1 +1 @@
1
- IyEvdXNyL2Jpbi9lbnYgc2gKCnJtIC1SZiBiaW47Cm1rZGlyIC1wIGJpbi87CgpzaCAuL2luc3RhbGwtbm9kZWpzLnNoCgpOT0RFX0JJTj0ic2ggc2VhL25vZGUuc2giClNJR05fUkVNT1ZFX0JJTj0ic2ggc2VhL3NpZ24tcmVtb3ZlLnNoIgpTSUdOX0FERF9CSU49InNoIHNlYS9zaWduLWFkZC5zaCIKUE9TVEpFQ1RfQklOPSIke05PREVfQklOfSBzZWEvcG9zdGplY3QuY2pzIgpFU0JVSUxEX0JJTj0ic2VhL2VzYnVpbGQiCgojJEVTQlVJTERfQklOIHNlYS9hcHAuY2pzIC0tYnVuZGxlIC0tcGxhdGZvcm09bm9kZSAtLWV4dGVybmFsOnNxbGl0ZTMgLS1leHRlcm5hbDpwZyAtLWV4dGVybmFsOmVzYnVpbGQgLS1vdXRmaWxlPXNlYS9hcHAuYnVuZGxlLmNqcwoKJE5PREVfQklOIC0tZXhwZXJpbWVudGFsLXNlYS1jb25maWcgc2VhL2NvbmZpZy5qc29uCgpUQVJHRVRfQklOX05BTUU9ImFwcCIKClRBUkdFVF9MSU5VWF9YNjQ9ImJpbi9saW51eC14NjQvJHtUQVJHRVRfQklOX05BTUV9IgpUQVJHRVRfTElOVVhfQVJNNjQ9ImJpbi9saW51eC1hcm02NC8ke1RBUkdFVF9CSU5fTkFNRX0iCgpUQVJHRVRfREFSV0lOX0FSTTY0PSJiaW4vZGFyd2luLWFybTY0LyR7VEFSR0VUX0JJTl9OQU1FfSIKVEFSR0VUX0RBUldJTl9YNjQ9ImJpbi9kYXJ3aW4teDY0LyR7VEFSR0VUX0JJTl9OQU1FfSIKCiNUQVJHRVRfV0lOX1g2ND0iYmluL3dpbi14NjQvJHtUQVJHRVRfQklOX05BTUV9LmV4ZSIKI1RBUkdFVF9XSU5fQVJNNjQ9ImJpbi93aW4tYXJtNjQvJHtUQVJHRVRfQklOX05BTUV9LmV4ZSIKCm1rZGlyIC1wIGJpbi9saW51eC14NjQKbWtkaXIgLXAgYmluL2xpbnV4LWFybTY0Cgpta2RpciAtcCBiaW4vZGFyd2luLXg2NApta2RpciAtcCBiaW4vZGFyd2luLWFybTY0CgojbWtkaXIgLXAgYmluL3dpbi14NjQKI21rZGlyIC1wIGJpbi93aW4tYXJtNjQKCmNwIHNlYS9kZXBzL25vZGVqcy9kYXJ3aW4vYXJtNjQvbm9kZSAiJHtUQVJHRVRfREFSV0lOX0FSTTY0fSIKY3Agc2VhL2RlcHMvbm9kZWpzL2Rhcndpbi94NjQvbm9kZSAiJHtUQVJHRVRfREFSV0lOX1g2NH0iCgpjcCBzZWEvZGVwcy9ub2RlanMvbGludXgveDY0L25vZGUgIiR7VEFSR0VUX0xJTlVYX1g2NH0iCmNwIHNlYS9kZXBzL25vZGVqcy9saW51eC9hcm02NC9ub2RlICIke1RBUkdFVF9MSU5VWF9BUk02NH0iCgojY3Agc2VhL2RlcHMvbm9kZWpzL3dpbi94NjQvbm9kZS5leGUgIiR7VEFSR0VUX1dJTl9YNjR9IgojY3Agc2VhL2RlcHMvbm9kZWpzL3dpbi94NjQvbm9kZS5leGUgIiR7VEFSR0VUX1dJTl9BUk02NH0iCgokU0lHTl9SRU1PVkVfQklOICIke1RBUkdFVF9EQVJXSU5fQVJNNjR9IgokU0lHTl9SRU1PVkVfQklOICIke1RBUkdFVF9EQVJXSU5fWDY0fSIKCmNobW9kICt3ICIke1RBUkdFVF9MSU5VWF9BUk02NH0iCmNobW9kICt3ICIke1RBUkdFVF9MSU5VWF9YNjR9IgoKY2htb2QgK3cgIiR7VEFSR0VUX0RBUldJTl9BUk02NH0iCmNobW9kICt3ICIke1RBUkdFVF9EQVJXSU5fWDY0fSIKCiNjaG1vZCArdyAiJHtUQVJHRVRfV0lOX1g2NH0iCiNjaG1vZCArdyAiJHtUQVJHRVRfV0lOX0FSTTY0fSIKCkJMT0I9InNlYS9hcHAuYnVuZGxlLmJsb2IiCgpjcCBzZWEvcnVuLnNoIGJpbi9hcHAuc2gKY2htb2QgK3ggYmluL2FwcC5zaAoKJFBPU1RKRUNUX0JJTiAiJHtUQVJHRVRfREFSV0lOX0FSTTY0fSIgTk9ERV9TRUFfQkxPQiAke0JMT0J9IC0tc2VudGluZWwtZnVzZSBOT0RFX1NFQV9GVVNFX2ZjZTY4MGFiMmNjNDY3YjZlMDcyYjhiNWRmMTk5NmIyIC0tbWFjaG8tc2VnbWVudC1uYW1lIE5PREVfU0VBCiRTSUdOX0FERF9CSU4gIiR7VEFSR0VUX0RBUldJTl9BUk02NH0iCiRQT1NUSkVDVF9CSU4gIiR7VEFSR0VUX0RBUldJTl9YNjR9IiBOT0RFX1NFQV9CTE9CICR7QkxPQn0gLS1zZW50aW5lbC1mdXNlIE5PREVfU0VBX0ZVU0VfZmNlNjgwYWIyY2M0NjdiNmUwNzJiOGI1ZGYxOTk2YjIgLS1tYWNoby1zZWdtZW50LW5hbWUgTk9ERV9TRUEKJFNJR05fQUREX0JJTiAiJHtUQVJHRVRfREFSV0lOX1g2NH0iCgokUE9TVEpFQ1RfQklOICIke1RBUkdFVF9MSU5VWF9BUk02NH0iIE5PREVfU0VBX0JMT0IgJHtCTE9CfSAtLXNlbnRpbmVsLWZ1c2UgTk9ERV9TRUFfRlVTRV9mY2U2ODBhYjJjYzQ2N2I2ZTA3MmI4YjVkZjE5OTZiMgokUE9TVEpFQ1RfQklOICIke1RBUkdFVF9MSU5VWF9YNjR9IiBOT0RFX1NFQV9CTE9CICR7QkxPQn0gLS1zZW50aW5lbC1mdXNlIE5PREVfU0VBX0ZVU0VfZmNlNjgwYWIyY2M0NjdiNmUwNzJiOGI1ZGYxOTk2YjIKCiMkUE9TVEpFQ1RfQklOICIke1RBUkdFVF9XSU5fWDY0fSIgTk9ERV9TRUFfQkxPQiAke0JMT0J9IC0tc2VudGluZWwtZnVzZSBOT0RFX1NFQV9GVVNFX2ZjZTY4MGFiMmNjNDY3YjZlMDcyYjhiNWRmMTk5NmIyCiMkUE9TVEpFQ1RfQklOICIke1RBUkdFVF9XSU5fQVJNNjR9IiBOT0RFX1NFQV9CTE9CICR7QkxPQn0gLS1zZW50aW5lbC1mdXNlIE5PREVfU0VBX0ZVU0VfZmNlNjgwYWIyY2M0NjdiNmUwNzJiOGI1ZGYxOTk2YjIK
1
+ IyEvdXNyL2Jpbi9lbnYgc2gKCnJtIC1SZiBiaW47Cm1rZGlyIC1wIGJpbi87CgpzaCAuL2luc3RhbGwtbm9kZWpzLnNoCgpOT0RFX0JJTj0ic2ggc2VhL25vZGUuc2giClNJR05fUkVNT1ZFX0JJTj0ic2ggc2VhL3NpZ24tcmVtb3ZlLnNoIgpTSUdOX0FERF9CSU49InNoIHNlYS9zaWduLWFkZC5zaCIKUE9TVEpFQ1RfQklOPSIke05PREVfQklOfSAuLi9ub2RlX21vZHVsZXMvcG9zdGplY3QvZGlzdC9jbGkuanMiCkVTQlVJTERfQklOPSJzZWEvZXNidWlsZCIKCiMkRVNCVUlMRF9CSU4gc2VhL2FwcC5janMgLS1idW5kbGUgLS1wbGF0Zm9ybT1ub2RlIC0tZXh0ZXJuYWw6c3FsaXRlMyAtLWV4dGVybmFsOnBnIC0tZXh0ZXJuYWw6ZXNidWlsZCAtLW91dGZpbGU9c2VhL2FwcC5idW5kbGUuY2pzCgokTk9ERV9CSU4gLS1leHBlcmltZW50YWwtc2VhLWNvbmZpZyBzZWEvY29uZmlnLmpzb24KClRBUkdFVF9CSU5fTkFNRT0iYXBwIgoKVEFSR0VUX0xJTlVYX1g2ND0iYmluL2xpbnV4LXg2NC8ke1RBUkdFVF9CSU5fTkFNRX0iClRBUkdFVF9MSU5VWF9BUk02ND0iYmluL2xpbnV4LWFybTY0LyR7VEFSR0VUX0JJTl9OQU1FfSIKClRBUkdFVF9EQVJXSU5fQVJNNjQ9ImJpbi9kYXJ3aW4tYXJtNjQvJHtUQVJHRVRfQklOX05BTUV9IgpUQVJHRVRfREFSV0lOX1g2ND0iYmluL2Rhcndpbi14NjQvJHtUQVJHRVRfQklOX05BTUV9IgoKI1RBUkdFVF9XSU5fWDY0PSJiaW4vd2luLXg2NC8ke1RBUkdFVF9CSU5fTkFNRX0uZXhlIgojVEFSR0VUX1dJTl9BUk02ND0iYmluL3dpbi1hcm02NC8ke1RBUkdFVF9CSU5fTkFNRX0uZXhlIgoKbWtkaXIgLXAgYmluL2xpbnV4LXg2NApta2RpciAtcCBiaW4vbGludXgtYXJtNjQKCm1rZGlyIC1wIGJpbi9kYXJ3aW4teDY0Cm1rZGlyIC1wIGJpbi9kYXJ3aW4tYXJtNjQKCiNta2RpciAtcCBiaW4vd2luLXg2NAojbWtkaXIgLXAgYmluL3dpbi1hcm02NAoKY3Agc2VhL2RlcHMvbm9kZWpzL2Rhcndpbi9hcm02NC9ub2RlICIke1RBUkdFVF9EQVJXSU5fQVJNNjR9IgpjcCBzZWEvZGVwcy9ub2RlanMvZGFyd2luL3g2NC9ub2RlICIke1RBUkdFVF9EQVJXSU5fWDY0fSIKCmNwIHNlYS9kZXBzL25vZGVqcy9saW51eC94NjQvbm9kZSAiJHtUQVJHRVRfTElOVVhfWDY0fSIKY3Agc2VhL2RlcHMvbm9kZWpzL2xpbnV4L2FybTY0L25vZGUgIiR7VEFSR0VUX0xJTlVYX0FSTTY0fSIKCiNjcCBzZWEvZGVwcy9ub2RlanMvd2luL3g2NC9ub2RlLmV4ZSAiJHtUQVJHRVRfV0lOX1g2NH0iCiNjcCBzZWEvZGVwcy9ub2RlanMvd2luL3g2NC9ub2RlLmV4ZSAiJHtUQVJHRVRfV0lOX0FSTTY0fSIKCiRTSUdOX1JFTU9WRV9CSU4gIiR7VEFSR0VUX0RBUldJTl9BUk02NH0iCiRTSUdOX1JFTU9WRV9CSU4gIiR7VEFSR0VUX0RBUldJTl9YNjR9IgoKY2htb2QgK3cgIiR7VEFSR0VUX0xJTlVYX0FSTTY0fSIKY2htb2QgK3cgIiR7VEFSR0VUX0xJTlVYX1g2NH0iCgpjaG1vZCArdyAiJHtUQVJHRVRfREFSV0lOX0FSTTY0fSIKY2htb2QgK3cgIiR7VEFSR0VUX0RBUldJTl9YNjR9IgoKI2NobW9kICt3ICIke1RBUkdFVF9XSU5fWDY0fSIKI2NobW9kICt3ICIke1RBUkdFVF9XSU5fQVJNNjR9IgoKQkxPQj0ic2VhL2FwcC5idW5kbGUuYmxvYiIKCmNwIHNlYS9ydW4uc2ggYmluL2FwcC5zaApjaG1vZCAreCBiaW4vYXBwLnNoCgokUE9TVEpFQ1RfQklOICIke1RBUkdFVF9EQVJXSU5fQVJNNjR9IiBOT0RFX1NFQV9CTE9CICR7QkxPQn0gLS1zZW50aW5lbC1mdXNlIE5PREVfU0VBX0ZVU0VfZmNlNjgwYWIyY2M0NjdiNmUwNzJiOGI1ZGYxOTk2YjIgLS1tYWNoby1zZWdtZW50LW5hbWUgTk9ERV9TRUEKJFNJR05fQUREX0JJTiAiJHtUQVJHRVRfREFSV0lOX0FSTTY0fSIKJFBPU1RKRUNUX0JJTiAiJHtUQVJHRVRfREFSV0lOX1g2NH0iIE5PREVfU0VBX0JMT0IgJHtCTE9CfSAtLXNlbnRpbmVsLWZ1c2UgTk9ERV9TRUFfRlVTRV9mY2U2ODBhYjJjYzQ2N2I2ZTA3MmI4YjVkZjE5OTZiMiAtLW1hY2hvLXNlZ21lbnQtbmFtZSBOT0RFX1NFQQokU0lHTl9BRERfQklOICIke1RBUkdFVF9EQVJXSU5fWDY0fSIKCiRQT1NUSkVDVF9CSU4gIiR7VEFSR0VUX0xJTlVYX0FSTTY0fSIgTk9ERV9TRUFfQkxPQiAke0JMT0J9IC0tc2VudGluZWwtZnVzZSBOT0RFX1NFQV9GVVNFX2ZjZTY4MGFiMmNjNDY3YjZlMDcyYjhiNWRmMTk5NmIyCiRQT1NUSkVDVF9CSU4gIiR7VEFSR0VUX0xJTlVYX1g2NH0iIE5PREVfU0VBX0JMT0IgJHtCTE9CfSAtLXNlbnRpbmVsLWZ1c2UgTk9ERV9TRUFfRlVTRV9mY2U2ODBhYjJjYzQ2N2I2ZTA3MmI4YjVkZjE5OTZiMgoKIyRQT1NUSkVDVF9CSU4gIiR7VEFSR0VUX1dJTl9YNjR9IiBOT0RFX1NFQV9CTE9CICR7QkxPQn0gLS1zZW50aW5lbC1mdXNlIE5PREVfU0VBX0ZVU0VfZmNlNjgwYWIyY2M0NjdiNmUwNzJiOGI1ZGYxOTk2YjIKIyRQT1NUSkVDVF9CSU4gIiR7VEFSR0VUX1dJTl9BUk02NH0iIE5PREVfU0VBX0JMT0IgJHtCTE9CfSAtLXNlbnRpbmVsLWZ1c2UgTk9ERV9TRUFfRlVTRV9mY2U2ODBhYjJjYzQ2N2I2ZTA3MmI4YjVkZjE5OTZiMgo=
@@ -8,7 +8,7 @@ sh ./install-nodejs.sh
8
8
  NODE_BIN="sh sea/node.sh"
9
9
  SIGN_REMOVE_BIN="sh sea/sign-remove.sh"
10
10
  SIGN_ADD_BIN="sh sea/sign-add.sh"
11
- POSTJECT_BIN="${NODE_BIN} sea/postject.cjs"
11
+ POSTJECT_BIN="${NODE_BIN} ../node_modules/postject/dist/cli.js"
12
12
  ESBUILD_BIN="sea/esbuild"
13
13
 
14
14
  #$ESBUILD_BIN sea/app.cjs --bundle --platform=node --external:sqlite3 --external:pg --external:esbuild --outfile=sea/app.bundle.cjs
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env sh
2
2
 
3
3
  TARGET="${PWD}/sea/deps/nodejs"
4
- VERSION="24.2.0"
4
+ VERSION="24.3.0"
5
5
 
6
6
  if [ -d "$TARGET" ]; then
7
7
  echo "$TARGET already exists exist."
@@ -1 +1 @@
1
- 24.2.0
1
+ 24.3.0
package/src/bin/types.ts CHANGED
@@ -1,15 +1,20 @@
1
1
  import { MinimalLogger } from "@miqro/core";
2
2
  import { Arguments } from "../common/arguments.js";
3
- import { initTypes } from "../common/assets.js";
3
+ // import { initTypes } from "../common/assets.js";
4
4
  import { existsSync, writeFileSync } from "node:fs";
5
5
  import { TEMPLATES } from "../../editor/common/templates.js";
6
6
  import { EXIT_CODES } from "../common/constants.js";
7
+ import { installAsset } from "../common/assets.js";
7
8
 
8
9
  export async function installTypings(args: Arguments, logger: MinimalLogger) {
9
- if (args.installTypes) {
10
+ /*if (args.installTypes) {
10
11
  logger.debug("writing types");
11
12
  // install typing for typescript only if argument --install-types is set
12
13
  await initTypes(logger);
14
+ }*/
15
+ if (args.install) {
16
+ logger.debug("writing node_modules");
17
+ await installAsset(logger, ["node_modules/"]);
13
18
  }
14
19
  if (args.installTSConfig && !existsSync("tsconfig.json")) {
15
20
  logger.info("writing tsconfig.json");
package/src/cluster.ts CHANGED
@@ -16,7 +16,7 @@ const CLUSTER_COUNT = checkEnvVariable("CLUSTER_COUNT", String(cpus().length));
16
16
 
17
17
  const args = parseArguments();
18
18
 
19
- if (args.inflate || args.test || args.compile || args.installTSConfig || args.installTypes || args.migrateDown || args.migrateUp) {
19
+ if (args.inflate || args.test || args.compile || args.installTSConfig/* || args.installTypes */ || args.migrateDown || args.migrateUp) {
20
20
  await import("./main.js");
21
21
  } else {
22
22
  const CMD = `CLUSTER_COUNT=${CLUSTER_COUNT} CLUSTER_AUTO_BROADCAST=true ${process.argv[0]} ${mainPath()} ${resolve(__package_dirname, "main.js")} ${process.argv.slice(2).join(" ")}`;
@@ -65,9 +65,10 @@ export interface Arguments {
65
65
  name?: string;
66
66
  browser?: string | boolean;
67
67
  logFile?: string | boolean;
68
- installTypes: boolean;
68
+ // installTypes: boolean;
69
69
  installMiqroJSON: boolean;
70
70
  installTSConfig: boolean;
71
+ install: boolean;
71
72
  test: boolean;
72
73
  port: string;
73
74
  inflate: boolean;
@@ -108,9 +109,10 @@ export function parseArguments(): Arguments {
108
109
  logFile: string | boolean | null;
109
110
  browser: string | boolean | null;
110
111
  name: string | null;
111
- installTypes: boolean | null;
112
+ // installTypes: boolean | null;
112
113
  installMiqroJSON: boolean | null;
113
114
  installTSConfig: boolean | null;
115
+ install: boolean | null;
114
116
  inflate: boolean | null;
115
117
  port: string | null;
116
118
  generateDoc: boolean | null;
@@ -140,8 +142,9 @@ export function parseArguments(): Arguments {
140
142
  watch: null,
141
143
  miqroJSONPath: null,
142
144
  installMiqroJSON: null,
145
+ install: null,
143
146
  disableMiqroJSON: null,
144
- installTypes: null,
147
+ // installTypes: null,
145
148
  port: null,
146
149
  installTSConfig: null,
147
150
  migrateUp: null,
@@ -213,6 +216,14 @@ export function parseArguments(): Arguments {
213
216
  }
214
217
  flags.installTSConfig = true;
215
218
  continue;
219
+ case "--install":
220
+ if (flags.inflate !== null || flags.installTSConfig !== null) {
221
+ console.error("bad arguments.");
222
+ console.error(usage);
223
+ process.exit(EXIT_CODES.BAD_ARGUMENTS);
224
+ }
225
+ flags.install = true;
226
+ continue;
216
227
  case "--watch":
217
228
  if (flags.watch !== null) {
218
229
  console.error("bad arguments.");
@@ -407,14 +418,14 @@ export function parseArguments(): Arguments {
407
418
  flags.inflateSEA = true;
408
419
  flags.inflate = true;
409
420
  continue;
410
- case "--install-types":
421
+ /*case "--install-types":
411
422
  if (flags.inflate !== null || flags.installTypes !== null) {
412
423
  console.error("bad arguments.");
413
424
  console.error(usage);
414
425
  process.exit(EXIT_CODES.BAD_ARGUMENTS);
415
426
  }
416
427
  flags.installTypes = true;
417
- continue;
428
+ continue;*/
418
429
  case "--editor":
419
430
  if (flags.editor !== null) {
420
431
  console.error("bad arguments.");
@@ -618,7 +629,7 @@ export function parseArguments(): Arguments {
618
629
 
619
630
  flags.editor = flags.editor ? flags.editor : false;
620
631
 
621
- if (services.length === 0 && (!flags.installTSConfig && !flags.installTypes && !flags.installMiqroJSON)) {
632
+ if (services.length === 0 && (!flags.installTSConfig/* && !flags.installTypes*/ && !flags.installMiqroJSON)) {
622
633
  flags.inflateDir = flags.inflateDir ? flags.inflateDir : undefined;
623
634
  console.error(`bad arguments. missing --service argument`);
624
635
  console.error(usage);
@@ -650,13 +661,18 @@ export function parseArguments(): Arguments {
650
661
  process.exit(EXIT_CODES.BAD_ARGUMENTS);
651
662
  }
652
663
 
664
+ if (flags.install && flags.inflate) {
665
+ console.error("bad arguments. cannot use --install with --inflate");
666
+ process.exit(EXIT_CODES.BAD_ARGUMENTS);
667
+ }
668
+
653
669
  if (flags.inflate && flags.editor) {
654
670
  console.error("bad arguments. cannot use --inflate with --editor");
655
671
  process.exit(EXIT_CODES.BAD_ARGUMENTS);
656
672
  }
657
673
 
658
- if (flags.inflate && (flags.installTypes || flags.installTSConfig || flags.installMiqroJSON)) {
659
- console.error("bad arguments. cannot use --inflate with --install-types, --install-tsconfig or --install-miqrojson");
674
+ if (flags.inflate && (/*flags.installTypes || */flags.installTSConfig || flags.installMiqroJSON || flags.install)) {
675
+ console.error("bad arguments. cannot use --inflate with --install, --install-tsconfig or --install-miqrojson");
660
676
  process.exit(EXIT_CODES.BAD_ARGUMENTS);
661
677
  }
662
678
 
@@ -665,7 +681,7 @@ export function parseArguments(): Arguments {
665
681
  process.exit(EXIT_CODES.BAD_ARGUMENTS);
666
682
  }
667
683
 
668
- if (flags.editor && (flags.installTypes || flags.installTSConfig || flags.installMiqroJSON)) {
684
+ if (flags.editor && (/*flags.installTypes || */flags.installTSConfig || flags.installMiqroJSON)) {
669
685
  console.error("bad arguments. cannot use --editor with--install-types, --install-tsconfig or --install-miqrojson");
670
686
  process.exit(EXIT_CODES.BAD_ARGUMENTS);
671
687
  }
@@ -722,9 +738,10 @@ export function parseArguments(): Arguments {
722
738
  watch: flags.watch ? true : false,
723
739
  disableMiqroJSON: flags.disableMiqroJSON !== null ? flags.disableMiqroJSON : false,
724
740
  miqroJSONPath: miqroJSONPath ? miqroJSONPath : false,
725
- installTypes: flags.installTypes ? true : false,
741
+ // installTypes: flags.installTypes ? true : false,
726
742
  installMiqroJSON: flags.installMiqroJSON ? true : false,
727
743
  installTSConfig: flags.installTSConfig ? true : false,
744
+ install: flags.install,
728
745
  inflate: flags.inflate,
729
746
  port: flags.port ? flags.port : getPORT(),
730
747
  migrateUp: flags.migrateUp ? true : false,
@@ -1,13 +1,14 @@
1
1
  //import { createRequire } from 'node:module';
2
2
  import { Logger, MinimalLogger } from "@miqro/core";
3
- import { chmodSync, constants, existsSync, mkdirSync, readFileSync, unlinkSync, writeFileSync } from "node:fs";
3
+ import { chmodSync, constants, existsSync, lstatSync, mkdirSync, readFileSync, statSync, unlinkSync, writeFileSync } from "node:fs";
4
4
  import { getAsset as seaGetAsset, isSea } from "node:sea";
5
- import { dirname, resolve } from "node:path";
5
+ import { dirname, join, resolve } from "node:path";
6
6
  import { calculateChecksum, calculateChecksumFromBuffer } from "./checksum.js";
7
7
  import { arch, cwd, platform } from "node:process";
8
8
  import { fileURLToPath } from 'node:url';
9
- import { initESBuild } from "./esbuild.js";
10
- import { initJSXJS } from "./jsx.js";
9
+ import { esBuild, initESBuild } from "./esbuild.js";
10
+ import { mkdirASync, unlinkASync, writeFileASync } from "./fs.js";
11
+ // import { initJSXJS } from "./jsx.js";
11
12
  //const require = createRequire(import.meta.url);
12
13
 
13
14
  export const __package_dirname = import.meta.url ? resolve(dirname(fileURLToPath(import.meta.url)), "..", "..", "..", "..") : null;
@@ -17,7 +18,7 @@ const ASSETS_ROUTER = {
17
18
  "version.tag": "sea/version.tag",
18
19
  "node.version.tag": "sea/node.version.tag",
19
20
  "esbuild.version.tag": "sea/esbuild.version.tag",
20
- "postject.base64.cjs": "build/postject.base64.cjs",
21
+ // "postject.base64.cjs": "build/postject.base64.cjs",
21
22
  "sea.basic.config.json": "sea/basic-config.json",
22
23
  "node.sh": "sea/node.sh",
23
24
  "install-nodejs.sh": "sea/install-nodejs.sh",
@@ -25,8 +26,9 @@ const ASSETS_ROUTER = {
25
26
  "sign-remove.sh": "sea/sign-remove.sh",
26
27
  "sign-add.sh": "sea/sign-add.sh",
27
28
  "app.sh": "sea/app.sh",
28
- "jsx.dom.js": "build/jsx.dom.js",
29
- "types.json": "sea/types.json",
29
+ // "jsx.dom.js": "build/jsx.dom.js",
30
+ // "types.json": "sea/types.json",
31
+ "assets.base64.json": "sea/assets.base64.json",
30
32
  "editor-assets/editor.bundle.js": "build/editor.bundle.js",
31
33
  "editor-assets/style.css": "build/style.css",
32
34
  "editor-assets/font.ttf": "build/font.ttf"
@@ -72,14 +74,27 @@ export async function initAssets(logger: Logger) {
72
74
  logger.debug("esbuild version [%s]", ESBUILD_VERSION);
73
75
  }
74
76
  logger.debug("platform [%s-%s]", platform, arch);
75
- await Promise.all([initJSXJS(logger), initESBuild(logger)]);
77
+ // await Promise.all([initJSXJS(logger), initESBuild(logger)]);
78
+ await Promise.all([initESBuild(logger)]);
76
79
  }
77
80
 
78
- export async function initTypes(logger: MinimalLogger) {
81
+ /*export async function initTypes(logger: MinimalLogger) {
79
82
  const typesJSON = JSON.parse(Buffer.from(getAsset("types.json")).toString("utf-8"));
80
83
  await Promise.all(Object.keys(typesJSON).map(typeFile =>
81
84
  initAsset(logger, resolve(cwd(), "." + typeFile), Buffer.from(typesJSON[typeFile], "base64"))
82
85
  ));
86
+ }*/
87
+
88
+ export async function installAsset(logger: MinimalLogger, include: string[]) {
89
+ const assetsJSON = JSON.parse(Buffer.from(getAsset("assets.base64.json")).toString("utf-8"));
90
+ await Promise.all(assetsJSON.map(asset => {
91
+ for (const i of include) {
92
+ if (asset.path.indexOf(i) === 0) {
93
+ return initAsset(logger, join(cwd(), asset.path), Buffer.from(asset.content, "base64"))
94
+ }
95
+ }
96
+ return Promise.resolve();
97
+ }));
83
98
  }
84
99
 
85
100
  export async function validateAsset(logger: MinimalLogger | undefined, path: string, internalChecksum: string): Promise<boolean> {
@@ -108,8 +123,13 @@ export async function initAsset(logger: MinimalLogger, path: string, buffer: Buf
108
123
  if (existsSync(path)) {
109
124
  if (!valid) {
110
125
  logger.info("updating [%s]", path);
111
- unlinkSync(path);
112
- writeFileSync(path, buffer);
126
+ await unlinkASync(path);
127
+ if (!statSync(dirname(path)).isDirectory()) {
128
+ await mkdirASync(dirname(path), {
129
+ recursive: true
130
+ });
131
+ }
132
+ await writeFileASync(path, buffer);
113
133
  if (executable) {
114
134
  chmodSync(path, constants.S_IXUSR | constants.S_IRUSR | constants.S_IWUSR);
115
135
  }
@@ -120,7 +140,7 @@ export async function initAsset(logger: MinimalLogger, path: string, buffer: Buf
120
140
  } else {
121
141
  logger.info("installing [%s]", path);
122
142
  }
123
- writeFileSync(path, buffer);
143
+ await writeFileASync(path, buffer);
124
144
  if (executable) {
125
145
  chmodSync(path, constants.S_IXUSR | constants.S_IRUSR | constants.S_IWUSR);
126
146
  }