@suchipi/quickjs 0.1.0

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 (117) hide show
  1. package/LICENSE +40 -0
  2. package/README.md +145 -0
  3. package/build/aarch64-apple-darwin/bin/qjs +0 -0
  4. package/build/aarch64-apple-darwin/bin/qjsbootstrap +0 -0
  5. package/build/aarch64-apple-darwin/bin/qjsbootstrap-bytecode +0 -0
  6. package/build/aarch64-apple-darwin/bin/qjsc +0 -0
  7. package/build/aarch64-apple-darwin/bin/quickjs-run +0 -0
  8. package/build/aarch64-apple-darwin/dts/inspect.d.ts +123 -0
  9. package/build/aarch64-apple-darwin/dts/quickjs-libbytecode.d.ts +24 -0
  10. package/build/aarch64-apple-darwin/dts/quickjs-libc.d.ts +1309 -0
  11. package/build/aarch64-apple-darwin/dts/quickjs-libcontext.d.ts +179 -0
  12. package/build/aarch64-apple-darwin/dts/quickjs.d.ts +859 -0
  13. package/build/aarch64-apple-darwin/lib/quickjs-core.a +0 -0
  14. package/build/aarch64-apple-darwin/lib/quickjs-full.a +0 -0
  15. package/build/aarch64-unknown-linux-gnu/bin/qjs +0 -0
  16. package/build/aarch64-unknown-linux-gnu/bin/qjsbootstrap +0 -0
  17. package/build/aarch64-unknown-linux-gnu/bin/qjsbootstrap-bytecode +0 -0
  18. package/build/aarch64-unknown-linux-gnu/bin/qjsc +0 -0
  19. package/build/aarch64-unknown-linux-gnu/bin/quickjs-run +0 -0
  20. package/build/aarch64-unknown-linux-gnu/dts/inspect.d.ts +123 -0
  21. package/build/aarch64-unknown-linux-gnu/dts/quickjs-libbytecode.d.ts +24 -0
  22. package/build/aarch64-unknown-linux-gnu/dts/quickjs-libc.d.ts +1309 -0
  23. package/build/aarch64-unknown-linux-gnu/dts/quickjs-libcontext.d.ts +179 -0
  24. package/build/aarch64-unknown-linux-gnu/dts/quickjs.d.ts +859 -0
  25. package/build/aarch64-unknown-linux-gnu/lib/quickjs-core.a +0 -0
  26. package/build/aarch64-unknown-linux-gnu/lib/quickjs-full.a +0 -0
  27. package/build/aarch64-unknown-linux-musl/bin/qjs +0 -0
  28. package/build/aarch64-unknown-linux-musl/bin/qjsbootstrap +0 -0
  29. package/build/aarch64-unknown-linux-musl/bin/qjsbootstrap-bytecode +0 -0
  30. package/build/aarch64-unknown-linux-musl/bin/qjsc +0 -0
  31. package/build/aarch64-unknown-linux-musl/bin/quickjs-run +0 -0
  32. package/build/aarch64-unknown-linux-musl/dts/inspect.d.ts +123 -0
  33. package/build/aarch64-unknown-linux-musl/dts/quickjs-libbytecode.d.ts +24 -0
  34. package/build/aarch64-unknown-linux-musl/dts/quickjs-libc.d.ts +1309 -0
  35. package/build/aarch64-unknown-linux-musl/dts/quickjs-libcontext.d.ts +179 -0
  36. package/build/aarch64-unknown-linux-musl/dts/quickjs.d.ts +859 -0
  37. package/build/aarch64-unknown-linux-musl/lib/quickjs-core.a +0 -0
  38. package/build/aarch64-unknown-linux-musl/lib/quickjs-full.a +0 -0
  39. package/build/aarch64-unknown-linux-static/bin/qjs +0 -0
  40. package/build/aarch64-unknown-linux-static/bin/qjsbootstrap +0 -0
  41. package/build/aarch64-unknown-linux-static/bin/qjsbootstrap-bytecode +0 -0
  42. package/build/aarch64-unknown-linux-static/bin/qjsc +0 -0
  43. package/build/aarch64-unknown-linux-static/bin/quickjs-run +0 -0
  44. package/build/aarch64-unknown-linux-static/dts/inspect.d.ts +123 -0
  45. package/build/aarch64-unknown-linux-static/dts/quickjs-libbytecode.d.ts +24 -0
  46. package/build/aarch64-unknown-linux-static/dts/quickjs-libc.d.ts +1309 -0
  47. package/build/aarch64-unknown-linux-static/dts/quickjs-libcontext.d.ts +179 -0
  48. package/build/aarch64-unknown-linux-static/dts/quickjs.d.ts +859 -0
  49. package/build/aarch64-unknown-linux-static/lib/quickjs-core.a +0 -0
  50. package/build/aarch64-unknown-linux-static/lib/quickjs-full.a +0 -0
  51. package/build/x86_64-apple-darwin/bin/qjs +0 -0
  52. package/build/x86_64-apple-darwin/bin/qjsbootstrap +0 -0
  53. package/build/x86_64-apple-darwin/bin/qjsbootstrap-bytecode +0 -0
  54. package/build/x86_64-apple-darwin/bin/qjsc +0 -0
  55. package/build/x86_64-apple-darwin/bin/quickjs-run +0 -0
  56. package/build/x86_64-apple-darwin/dts/inspect.d.ts +123 -0
  57. package/build/x86_64-apple-darwin/dts/quickjs-libbytecode.d.ts +24 -0
  58. package/build/x86_64-apple-darwin/dts/quickjs-libc.d.ts +1309 -0
  59. package/build/x86_64-apple-darwin/dts/quickjs-libcontext.d.ts +179 -0
  60. package/build/x86_64-apple-darwin/dts/quickjs.d.ts +859 -0
  61. package/build/x86_64-apple-darwin/lib/quickjs-core.a +0 -0
  62. package/build/x86_64-apple-darwin/lib/quickjs-full.a +0 -0
  63. package/build/x86_64-pc-windows-static/bin/qjs.exe +0 -0
  64. package/build/x86_64-pc-windows-static/bin/qjsbootstrap-bytecode.exe +0 -0
  65. package/build/x86_64-pc-windows-static/bin/qjsbootstrap.exe +0 -0
  66. package/build/x86_64-pc-windows-static/bin/qjsc.exe +0 -0
  67. package/build/x86_64-pc-windows-static/bin/quickjs-run.exe +0 -0
  68. package/build/x86_64-pc-windows-static/dts/inspect.d.ts +123 -0
  69. package/build/x86_64-pc-windows-static/dts/quickjs-libbytecode.d.ts +24 -0
  70. package/build/x86_64-pc-windows-static/dts/quickjs-libc.d.ts +1309 -0
  71. package/build/x86_64-pc-windows-static/dts/quickjs-libcontext.d.ts +179 -0
  72. package/build/x86_64-pc-windows-static/dts/quickjs.d.ts +859 -0
  73. package/build/x86_64-pc-windows-static/lib/quickjs-core.a +0 -0
  74. package/build/x86_64-pc-windows-static/lib/quickjs-full.a +0 -0
  75. package/build/x86_64-unknown-linux-gnu/bin/qjs +0 -0
  76. package/build/x86_64-unknown-linux-gnu/bin/qjsbootstrap +0 -0
  77. package/build/x86_64-unknown-linux-gnu/bin/qjsbootstrap-bytecode +0 -0
  78. package/build/x86_64-unknown-linux-gnu/bin/qjsc +0 -0
  79. package/build/x86_64-unknown-linux-gnu/bin/quickjs-run +0 -0
  80. package/build/x86_64-unknown-linux-gnu/dts/inspect.d.ts +123 -0
  81. package/build/x86_64-unknown-linux-gnu/dts/quickjs-libbytecode.d.ts +24 -0
  82. package/build/x86_64-unknown-linux-gnu/dts/quickjs-libc.d.ts +1309 -0
  83. package/build/x86_64-unknown-linux-gnu/dts/quickjs-libcontext.d.ts +179 -0
  84. package/build/x86_64-unknown-linux-gnu/dts/quickjs.d.ts +859 -0
  85. package/build/x86_64-unknown-linux-gnu/lib/quickjs-core.a +0 -0
  86. package/build/x86_64-unknown-linux-gnu/lib/quickjs-full.a +0 -0
  87. package/build/x86_64-unknown-linux-musl/bin/qjs +0 -0
  88. package/build/x86_64-unknown-linux-musl/bin/qjsbootstrap +0 -0
  89. package/build/x86_64-unknown-linux-musl/bin/qjsbootstrap-bytecode +0 -0
  90. package/build/x86_64-unknown-linux-musl/bin/qjsc +0 -0
  91. package/build/x86_64-unknown-linux-musl/bin/quickjs-run +0 -0
  92. package/build/x86_64-unknown-linux-musl/dts/inspect.d.ts +123 -0
  93. package/build/x86_64-unknown-linux-musl/dts/quickjs-libbytecode.d.ts +24 -0
  94. package/build/x86_64-unknown-linux-musl/dts/quickjs-libc.d.ts +1309 -0
  95. package/build/x86_64-unknown-linux-musl/dts/quickjs-libcontext.d.ts +179 -0
  96. package/build/x86_64-unknown-linux-musl/dts/quickjs.d.ts +859 -0
  97. package/build/x86_64-unknown-linux-musl/lib/quickjs-core.a +0 -0
  98. package/build/x86_64-unknown-linux-musl/lib/quickjs-full.a +0 -0
  99. package/build/x86_64-unknown-linux-static/bin/qjs +0 -0
  100. package/build/x86_64-unknown-linux-static/bin/qjsbootstrap +0 -0
  101. package/build/x86_64-unknown-linux-static/bin/qjsbootstrap-bytecode +0 -0
  102. package/build/x86_64-unknown-linux-static/bin/qjsc +0 -0
  103. package/build/x86_64-unknown-linux-static/bin/quickjs-run +0 -0
  104. package/build/x86_64-unknown-linux-static/dts/inspect.d.ts +123 -0
  105. package/build/x86_64-unknown-linux-static/dts/quickjs-libbytecode.d.ts +24 -0
  106. package/build/x86_64-unknown-linux-static/dts/quickjs-libc.d.ts +1309 -0
  107. package/build/x86_64-unknown-linux-static/dts/quickjs-libcontext.d.ts +179 -0
  108. package/build/x86_64-unknown-linux-static/dts/quickjs.d.ts +859 -0
  109. package/build/x86_64-unknown-linux-static/lib/quickjs-core.a +0 -0
  110. package/build/x86_64-unknown-linux-static/lib/quickjs-full.a +0 -0
  111. package/npm/cli/qjs.js +4 -0
  112. package/npm/cli/qjsc.js +4 -0
  113. package/npm/cli/quickjs-run.js +4 -0
  114. package/npm/cli/run-binary.js +17 -0
  115. package/npm/index.js +68 -0
  116. package/package.json +35 -0
  117. package/tsconfig.json +19 -0
package/npm/cli/qjs.js ADDED
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env node
2
+ const runBinary = require("./run-binary");
3
+
4
+ runBinary("qjs");
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env node
2
+ const runBinary = require("./run-binary");
3
+
4
+ runBinary("qjsc");
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env node
2
+ const runBinary = require("./run-binary");
3
+
4
+ runBinary("quickjs-run");
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env node
2
+ const path = require("path");
3
+ const child_process = require("child_process");
4
+ const { identifyCurrentPlatform } = require("..");
5
+
6
+ module.exports = function runBinary(name) {
7
+ const platform = identifyCurrentPlatform();
8
+
9
+ let bin = path.resolve(__dirname, "..", "..", "build", platform, "bin", name);
10
+ if (process.platform === "win32") {
11
+ bin += ".exe";
12
+ }
13
+
14
+ const argv = process.argv.slice(2);
15
+
16
+ child_process.spawn(bin, argv, { stdio: "inherit" }).on("exit", process.exit);
17
+ };
package/npm/index.js ADDED
@@ -0,0 +1,68 @@
1
+ const path = require("path");
2
+ const child_process = require("child_process");
3
+
4
+ exports.buildArtifactsLocation = function buildArtifactsLocation() {
5
+ return path.resolve(__dirname, "..", "build");
6
+ };
7
+
8
+ exports.identifyCurrentPlatform = function identifyCurrentPlatform() {
9
+ const platform = process.platform;
10
+ switch (platform) {
11
+ case "darwin":
12
+ case "linux":
13
+ case "win32": {
14
+ break;
15
+ }
16
+ default: {
17
+ throw new Error(`Unsupported platform: ${platform}`);
18
+ }
19
+ }
20
+
21
+ /** @type {string} */
22
+ let arch = process.arch;
23
+ switch (arch) {
24
+ case "arm64": {
25
+ arch = "aarch64";
26
+ break;
27
+ }
28
+ case "x64": {
29
+ arch = "x86_64";
30
+ break;
31
+ }
32
+ default: {
33
+ throw new Error(`Unsupported processor architecture: ${arch}`);
34
+ }
35
+ }
36
+
37
+ switch (platform) {
38
+ case "darwin": {
39
+ return `${arch}-apple-darwin`;
40
+ }
41
+ case "win32": {
42
+ if (arch !== "x86_64") {
43
+ throw new Error(`Architecture is not supported on Windows: ${arch}`);
44
+ }
45
+ return `${arch}-pc-windows-static`;
46
+ }
47
+ case "linux": {
48
+ const lddInfo = runShell(`ldd --version 2>&1 || true`);
49
+ if (/musl/.test(lddInfo)) {
50
+ return `${arch}-unknown-linux-musl`;
51
+ } else if (/GLIBC|GNU/.test(lddInfo)) {
52
+ return `${arch}-unknown-linux-gnu`;
53
+ } else {
54
+ return `${arch}-unknown-linux-static`;
55
+ }
56
+ }
57
+ default: {
58
+ // should be unreachable
59
+ throw new Error(`Unsupported platform: ${platform}`);
60
+ }
61
+ }
62
+ };
63
+
64
+ function runShell(cmd) {
65
+ return child_process
66
+ .spawnSync(cmd, { shell: true, encoding: "utf-8" })
67
+ .stdout.trim();
68
+ }
package/package.json ADDED
@@ -0,0 +1,35 @@
1
+ {
2
+ "name": "@suchipi/quickjs",
3
+ "description": "Suchipi's QuickJS Fork",
4
+ "version": "0.1.0",
5
+ "main": "./npm/index.js",
6
+ "bin": {
7
+ "qjs": "./npm/cli/qjs.js",
8
+ "qjsc": "./npm/cli/qjsc.js",
9
+ "quickjs-run": "./npm/cli/quickjs-run.js"
10
+ },
11
+ "devDependencies": {
12
+ "@babel/core": "^7.20.5",
13
+ "@babel/preset-env": "^7.20.2",
14
+ "@babel/preset-typescript": "^7.18.6",
15
+ "@suchipi/shinobi": "^0.2.0",
16
+ "@types/jest": "^29.2.4",
17
+ "@types/node": "^18.11.9",
18
+ "@types/shelljs": "^0.8.11",
19
+ "babel-jest": "^29.3.1",
20
+ "first-base": "^0.2.0",
21
+ "jest": "^29.3.1",
22
+ "path-less-traveled": "^2.0.0",
23
+ "prettier": "^2.8.1",
24
+ "shelljs": "^0.8.5"
25
+ },
26
+ "scripts": {
27
+ "test": "jest --runInBand"
28
+ },
29
+ "prettier": {},
30
+ "license": "MIT",
31
+ "repository": "suchipi/quickjs",
32
+ "publishConfig": {
33
+ "access": "public"
34
+ }
35
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,19 @@
1
+ {
2
+ "files": [
3
+ "./src/quickjs/quickjs.d.ts",
4
+ "./src/quickjs-libc/quickjs-libc.d.ts",
5
+ "./src/quickjs-libbytecode/quickjs-libbytecode.d.ts",
6
+ "./src/quickjs-libcontext/quickjs-libcontext.d.ts",
7
+ ],
8
+ "include": ["./**/*.js", "./**/*.ts"],
9
+ "exclude": ["oldtests/**/*", "build/**/*", "examples/**/*"],
10
+ "compilerOptions": {
11
+ "allowJs": true,
12
+ "checkJs": true,
13
+ "noEmit": true,
14
+ "lib": ["ES2020"],
15
+ "strictNullChecks": true,
16
+ "esModuleInterop": true,
17
+ "types": ["jest"]
18
+ }
19
+ }