moonwave-gitlab 1.3.3
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.
- package/README.md +7 -0
- package/bun.lock +228 -0
- package/package.json +47 -0
- package/src/argv.ts +74 -0
- package/src/binary.ts +143 -0
- package/src/commands/build.ts +88 -0
- package/src/commands/dev.ts +83 -0
- package/src/getDocusaurusConfig.ts +168 -0
- package/src/index.ts +3 -0
- package/src/prepareProject.ts +492 -0
- package/src/typings/cachedir.d.ts +5 -0
- package/template/home/index.js +84 -0
- package/template/home/index.module.css +51 -0
- package/template/root/babel.config.js +3 -0
- package/template/root/package-lock.json +19700 -0
- package/template/root/package.json +38 -0
- package/template/root/src/css/moonwave.css +10 -0
- package/template/root/static/.nojekyll +0 -0
- package/tsconfig.json +26 -0
package/README.md
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
<img src="https://i.eryn.io/2139/moonwave.svg" alt="Moonwave" height="139" />
|
|
3
|
+
</div>
|
|
4
|
+
|
|
5
|
+
# Moonwave CLI
|
|
6
|
+
|
|
7
|
+
A tool that makes it easy to get started using [Moonwave](https://github.com/evaera/moonwave) by generating a Docusaurus project and extracting doc comments without the user needing any prior knowledge about the specific technologies used.
|
package/bun.lock
ADDED
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
{
|
|
2
|
+
"lockfileVersion": 1,
|
|
3
|
+
"configVersion": 0,
|
|
4
|
+
"workspaces": {
|
|
5
|
+
"": {
|
|
6
|
+
"name": "moonwave",
|
|
7
|
+
"dependencies": {
|
|
8
|
+
"cachedir": "^2.3.0",
|
|
9
|
+
"chokidar": "^4.0.1",
|
|
10
|
+
"fs-extra": "^11.2.0",
|
|
11
|
+
"gh-pages": "^6.3.0",
|
|
12
|
+
"node-fetch": "^3.2.6",
|
|
13
|
+
"parse-git-config": "^3.0.0",
|
|
14
|
+
"toml": "^3.0.0",
|
|
15
|
+
"unzipper": "^0.12.3",
|
|
16
|
+
"yargs": "^17.5.1",
|
|
17
|
+
},
|
|
18
|
+
"devDependencies": {
|
|
19
|
+
"@types/fs-extra": "^11.0.4",
|
|
20
|
+
"@types/gh-pages": "^6.1.0",
|
|
21
|
+
"@types/node": "^22.9.0",
|
|
22
|
+
"@types/parse-git-config": "^3.0.1",
|
|
23
|
+
"@types/unzipper": "^0.10.5",
|
|
24
|
+
"@types/yargs": "^17.0.10",
|
|
25
|
+
"typescript": "^5.4.5",
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
"packages": {
|
|
30
|
+
"@nodelib/fs.scandir": ["@nodelib/fs.scandir@2.1.5", "", { "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" } }, "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g=="],
|
|
31
|
+
|
|
32
|
+
"@nodelib/fs.stat": ["@nodelib/fs.stat@2.0.5", "", {}, "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="],
|
|
33
|
+
|
|
34
|
+
"@nodelib/fs.walk": ["@nodelib/fs.walk@1.2.8", "", { "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" } }, "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg=="],
|
|
35
|
+
|
|
36
|
+
"@types/fs-extra": ["@types/fs-extra@11.0.4", "", { "dependencies": { "@types/jsonfile": "*", "@types/node": "*" } }, "sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ=="],
|
|
37
|
+
|
|
38
|
+
"@types/gh-pages": ["@types/gh-pages@6.1.0", "", {}, "sha512-Ma9bmKkE+WUtywENLC1rSLXTW66cJHJMWX2RQrJTMKhYM8o+73bRJ1ebfo3RWXUcG+HW3khky2nhVaN7nCsa3Q=="],
|
|
39
|
+
|
|
40
|
+
"@types/jsonfile": ["@types/jsonfile@6.1.4", "", { "dependencies": { "@types/node": "*" } }, "sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ=="],
|
|
41
|
+
|
|
42
|
+
"@types/node": ["@types/node@22.9.0", "", { "dependencies": { "undici-types": "~6.19.8" } }, "sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ=="],
|
|
43
|
+
|
|
44
|
+
"@types/parse-git-config": ["@types/parse-git-config@3.0.4", "", {}, "sha512-jz5eGdk9lBgAd4rMbXTP7MRG7AsGQ8DrXsRumDcXDLClHcpKluislylPVMP/qp90J/LlIrrPZRZIQUflHfrDnQ=="],
|
|
45
|
+
|
|
46
|
+
"@types/unzipper": ["@types/unzipper@0.10.10", "", { "dependencies": { "@types/node": "*" } }, "sha512-jKJdNxhmCHTZsaKW5x0qjn6rB+gHk0w5VFbEKsw84i+RJqXZyfTmGnpjDcKqzMpjz7VVLsUBMtO5T3mVidpt0g=="],
|
|
47
|
+
|
|
48
|
+
"@types/yargs": ["@types/yargs@17.0.33", "", { "dependencies": { "@types/yargs-parser": "*" } }, "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA=="],
|
|
49
|
+
|
|
50
|
+
"@types/yargs-parser": ["@types/yargs-parser@21.0.3", "", {}, "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ=="],
|
|
51
|
+
|
|
52
|
+
"ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="],
|
|
53
|
+
|
|
54
|
+
"ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="],
|
|
55
|
+
|
|
56
|
+
"array-union": ["array-union@2.1.0", "", {}, "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw=="],
|
|
57
|
+
|
|
58
|
+
"async": ["async@3.2.6", "", {}, "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA=="],
|
|
59
|
+
|
|
60
|
+
"bluebird": ["bluebird@3.7.2", "", {}, "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg=="],
|
|
61
|
+
|
|
62
|
+
"braces": ["braces@3.0.3", "", { "dependencies": { "fill-range": "^7.1.1" } }, "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="],
|
|
63
|
+
|
|
64
|
+
"cachedir": ["cachedir@2.4.0", "", {}, "sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ=="],
|
|
65
|
+
|
|
66
|
+
"chokidar": ["chokidar@4.0.1", "", { "dependencies": { "readdirp": "^4.0.1" } }, "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA=="],
|
|
67
|
+
|
|
68
|
+
"cliui": ["cliui@8.0.1", "", { "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" } }, "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ=="],
|
|
69
|
+
|
|
70
|
+
"color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="],
|
|
71
|
+
|
|
72
|
+
"color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="],
|
|
73
|
+
|
|
74
|
+
"commander": ["commander@13.1.0", "", {}, "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw=="],
|
|
75
|
+
|
|
76
|
+
"commondir": ["commondir@1.0.1", "", {}, "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg=="],
|
|
77
|
+
|
|
78
|
+
"core-util-is": ["core-util-is@1.0.3", "", {}, "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="],
|
|
79
|
+
|
|
80
|
+
"data-uri-to-buffer": ["data-uri-to-buffer@4.0.1", "", {}, "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A=="],
|
|
81
|
+
|
|
82
|
+
"dir-glob": ["dir-glob@3.0.1", "", { "dependencies": { "path-type": "^4.0.0" } }, "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA=="],
|
|
83
|
+
|
|
84
|
+
"duplexer2": ["duplexer2@0.1.4", "", { "dependencies": { "readable-stream": "^2.0.2" } }, "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA=="],
|
|
85
|
+
|
|
86
|
+
"email-addresses": ["email-addresses@5.0.0", "", {}, "sha512-4OIPYlA6JXqtVn8zpHpGiI7vE6EQOAg16aGnDMIAlZVinnoZ8208tW1hAbjWydgN/4PLTT9q+O1K6AH/vALJGw=="],
|
|
87
|
+
|
|
88
|
+
"emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="],
|
|
89
|
+
|
|
90
|
+
"escalade": ["escalade@3.2.0", "", {}, "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="],
|
|
91
|
+
|
|
92
|
+
"escape-string-regexp": ["escape-string-regexp@1.0.5", "", {}, "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="],
|
|
93
|
+
|
|
94
|
+
"fast-glob": ["fast-glob@3.3.3", "", { "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.8" } }, "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg=="],
|
|
95
|
+
|
|
96
|
+
"fastq": ["fastq@1.20.1", "", { "dependencies": { "reusify": "^1.0.4" } }, "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw=="],
|
|
97
|
+
|
|
98
|
+
"fetch-blob": ["fetch-blob@3.2.0", "", { "dependencies": { "node-domexception": "^1.0.0", "web-streams-polyfill": "^3.0.3" } }, "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ=="],
|
|
99
|
+
|
|
100
|
+
"filename-reserved-regex": ["filename-reserved-regex@2.0.0", "", {}, "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ=="],
|
|
101
|
+
|
|
102
|
+
"filenamify": ["filenamify@4.3.0", "", { "dependencies": { "filename-reserved-regex": "^2.0.0", "strip-outer": "^1.0.1", "trim-repeated": "^1.0.0" } }, "sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg=="],
|
|
103
|
+
|
|
104
|
+
"fill-range": ["fill-range@7.1.1", "", { "dependencies": { "to-regex-range": "^5.0.1" } }, "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg=="],
|
|
105
|
+
|
|
106
|
+
"find-cache-dir": ["find-cache-dir@3.3.2", "", { "dependencies": { "commondir": "^1.0.1", "make-dir": "^3.0.2", "pkg-dir": "^4.1.0" } }, "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig=="],
|
|
107
|
+
|
|
108
|
+
"find-up": ["find-up@4.1.0", "", { "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" } }, "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw=="],
|
|
109
|
+
|
|
110
|
+
"formdata-polyfill": ["formdata-polyfill@4.0.10", "", { "dependencies": { "fetch-blob": "^3.1.2" } }, "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g=="],
|
|
111
|
+
|
|
112
|
+
"fs-extra": ["fs-extra@11.2.0", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw=="],
|
|
113
|
+
|
|
114
|
+
"get-caller-file": ["get-caller-file@2.0.5", "", {}, "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="],
|
|
115
|
+
|
|
116
|
+
"gh-pages": ["gh-pages@6.3.0", "", { "dependencies": { "async": "^3.2.4", "commander": "^13.0.0", "email-addresses": "^5.0.0", "filenamify": "^4.3.0", "find-cache-dir": "^3.3.1", "fs-extra": "^11.1.1", "globby": "^11.1.0" }, "bin": { "gh-pages": "bin/gh-pages.js", "gh-pages-clean": "bin/gh-pages-clean.js" } }, "sha512-Ot5lU6jK0Eb+sszG8pciXdjMXdBJ5wODvgjR+imihTqsUWF2K6dJ9HST55lgqcs8wWcw6o6wAsUzfcYRhJPXbA=="],
|
|
117
|
+
|
|
118
|
+
"git-config-path": ["git-config-path@2.0.0", "", {}, "sha512-qc8h1KIQbJpp+241id3GuAtkdyJ+IK+LIVtkiFTRKRrmddDzs3SI9CvP1QYmWBFvm1I/PWRwj//of8bgAc0ltA=="],
|
|
119
|
+
|
|
120
|
+
"glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="],
|
|
121
|
+
|
|
122
|
+
"globby": ["globby@11.1.0", "", { "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", "fast-glob": "^3.2.9", "ignore": "^5.2.0", "merge2": "^1.4.1", "slash": "^3.0.0" } }, "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g=="],
|
|
123
|
+
|
|
124
|
+
"graceful-fs": ["graceful-fs@4.2.11", "", {}, "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="],
|
|
125
|
+
|
|
126
|
+
"ignore": ["ignore@5.3.2", "", {}, "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g=="],
|
|
127
|
+
|
|
128
|
+
"inherits": ["inherits@2.0.4", "", {}, "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="],
|
|
129
|
+
|
|
130
|
+
"ini": ["ini@1.3.8", "", {}, "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="],
|
|
131
|
+
|
|
132
|
+
"is-extglob": ["is-extglob@2.1.1", "", {}, "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="],
|
|
133
|
+
|
|
134
|
+
"is-fullwidth-code-point": ["is-fullwidth-code-point@3.0.0", "", {}, "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="],
|
|
135
|
+
|
|
136
|
+
"is-glob": ["is-glob@4.0.3", "", { "dependencies": { "is-extglob": "^2.1.1" } }, "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="],
|
|
137
|
+
|
|
138
|
+
"is-number": ["is-number@7.0.0", "", {}, "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="],
|
|
139
|
+
|
|
140
|
+
"isarray": ["isarray@1.0.0", "", {}, "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="],
|
|
141
|
+
|
|
142
|
+
"jsonfile": ["jsonfile@6.1.0", "", { "dependencies": { "universalify": "^2.0.0" }, "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ=="],
|
|
143
|
+
|
|
144
|
+
"locate-path": ["locate-path@5.0.0", "", { "dependencies": { "p-locate": "^4.1.0" } }, "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g=="],
|
|
145
|
+
|
|
146
|
+
"make-dir": ["make-dir@3.1.0", "", { "dependencies": { "semver": "^6.0.0" } }, "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw=="],
|
|
147
|
+
|
|
148
|
+
"merge2": ["merge2@1.4.1", "", {}, "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="],
|
|
149
|
+
|
|
150
|
+
"micromatch": ["micromatch@4.0.8", "", { "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" } }, "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA=="],
|
|
151
|
+
|
|
152
|
+
"node-domexception": ["node-domexception@1.0.0", "", {}, "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ=="],
|
|
153
|
+
|
|
154
|
+
"node-fetch": ["node-fetch@3.3.2", "", { "dependencies": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", "formdata-polyfill": "^4.0.10" } }, "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA=="],
|
|
155
|
+
|
|
156
|
+
"node-int64": ["node-int64@0.4.0", "", {}, "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw=="],
|
|
157
|
+
|
|
158
|
+
"p-limit": ["p-limit@2.3.0", "", { "dependencies": { "p-try": "^2.0.0" } }, "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w=="],
|
|
159
|
+
|
|
160
|
+
"p-locate": ["p-locate@4.1.0", "", { "dependencies": { "p-limit": "^2.2.0" } }, "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A=="],
|
|
161
|
+
|
|
162
|
+
"p-try": ["p-try@2.2.0", "", {}, "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="],
|
|
163
|
+
|
|
164
|
+
"parse-git-config": ["parse-git-config@3.0.0", "", { "dependencies": { "git-config-path": "^2.0.0", "ini": "^1.3.5" } }, "sha512-wXoQGL1D+2COYWCD35/xbiKma1Z15xvZL8cI25wvxzled58V51SJM04Urt/uznS900iQor7QO04SgdfT/XlbuA=="],
|
|
165
|
+
|
|
166
|
+
"path-exists": ["path-exists@4.0.0", "", {}, "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="],
|
|
167
|
+
|
|
168
|
+
"path-type": ["path-type@4.0.0", "", {}, "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="],
|
|
169
|
+
|
|
170
|
+
"picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="],
|
|
171
|
+
|
|
172
|
+
"pkg-dir": ["pkg-dir@4.2.0", "", { "dependencies": { "find-up": "^4.0.0" } }, "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ=="],
|
|
173
|
+
|
|
174
|
+
"process-nextick-args": ["process-nextick-args@2.0.1", "", {}, "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="],
|
|
175
|
+
|
|
176
|
+
"queue-microtask": ["queue-microtask@1.2.3", "", {}, "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="],
|
|
177
|
+
|
|
178
|
+
"readable-stream": ["readable-stream@2.3.8", "", { "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA=="],
|
|
179
|
+
|
|
180
|
+
"readdirp": ["readdirp@4.0.2", "", {}, "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA=="],
|
|
181
|
+
|
|
182
|
+
"require-directory": ["require-directory@2.1.1", "", {}, "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="],
|
|
183
|
+
|
|
184
|
+
"reusify": ["reusify@1.1.0", "", {}, "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw=="],
|
|
185
|
+
|
|
186
|
+
"run-parallel": ["run-parallel@1.2.0", "", { "dependencies": { "queue-microtask": "^1.2.2" } }, "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA=="],
|
|
187
|
+
|
|
188
|
+
"safe-buffer": ["safe-buffer@5.1.2", "", {}, "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="],
|
|
189
|
+
|
|
190
|
+
"semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="],
|
|
191
|
+
|
|
192
|
+
"slash": ["slash@3.0.0", "", {}, "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="],
|
|
193
|
+
|
|
194
|
+
"string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="],
|
|
195
|
+
|
|
196
|
+
"string_decoder": ["string_decoder@1.1.1", "", { "dependencies": { "safe-buffer": "~5.1.0" } }, "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg=="],
|
|
197
|
+
|
|
198
|
+
"strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="],
|
|
199
|
+
|
|
200
|
+
"strip-outer": ["strip-outer@1.0.1", "", { "dependencies": { "escape-string-regexp": "^1.0.2" } }, "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg=="],
|
|
201
|
+
|
|
202
|
+
"to-regex-range": ["to-regex-range@5.0.1", "", { "dependencies": { "is-number": "^7.0.0" } }, "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="],
|
|
203
|
+
|
|
204
|
+
"toml": ["toml@3.0.0", "", {}, "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w=="],
|
|
205
|
+
|
|
206
|
+
"trim-repeated": ["trim-repeated@1.0.0", "", { "dependencies": { "escape-string-regexp": "^1.0.2" } }, "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg=="],
|
|
207
|
+
|
|
208
|
+
"typescript": ["typescript@5.6.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw=="],
|
|
209
|
+
|
|
210
|
+
"undici-types": ["undici-types@6.19.8", "", {}, "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw=="],
|
|
211
|
+
|
|
212
|
+
"universalify": ["universalify@2.0.1", "", {}, "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw=="],
|
|
213
|
+
|
|
214
|
+
"unzipper": ["unzipper@0.12.3", "", { "dependencies": { "bluebird": "~3.7.2", "duplexer2": "~0.1.4", "fs-extra": "^11.2.0", "graceful-fs": "^4.2.2", "node-int64": "^0.4.0" } }, "sha512-PZ8hTS+AqcGxsaQntl3IRBw65QrBI6lxzqDEL7IAo/XCEqRTKGfOX56Vea5TH9SZczRVxuzk1re04z/YjuYCJA=="],
|
|
215
|
+
|
|
216
|
+
"util-deprecate": ["util-deprecate@1.0.2", "", {}, "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="],
|
|
217
|
+
|
|
218
|
+
"web-streams-polyfill": ["web-streams-polyfill@3.3.3", "", {}, "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw=="],
|
|
219
|
+
|
|
220
|
+
"wrap-ansi": ["wrap-ansi@7.0.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q=="],
|
|
221
|
+
|
|
222
|
+
"y18n": ["y18n@5.0.8", "", {}, "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="],
|
|
223
|
+
|
|
224
|
+
"yargs": ["yargs@17.7.2", "", { "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", "string-width": "^4.2.3", "y18n": "^5.0.5", "yargs-parser": "^21.1.1" } }, "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w=="],
|
|
225
|
+
|
|
226
|
+
"yargs-parser": ["yargs-parser@21.1.1", "", {}, "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw=="],
|
|
227
|
+
}
|
|
228
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "moonwave-gitlab",
|
|
3
|
+
"version": "1.3.3",
|
|
4
|
+
"description": "moonwave cli",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"test": "echo \"Error: no test specified\" && exit 1",
|
|
8
|
+
"dev": "tsc --watch",
|
|
9
|
+
"tsc": "tsc"
|
|
10
|
+
},
|
|
11
|
+
"engines": {
|
|
12
|
+
"node": ">=18"
|
|
13
|
+
},
|
|
14
|
+
"bin": {
|
|
15
|
+
"moonwave": "dist/index.js"
|
|
16
|
+
},
|
|
17
|
+
"repository": {
|
|
18
|
+
"type": "git",
|
|
19
|
+
"url": "git+https://github.com/sqikerz/moonwave.git"
|
|
20
|
+
},
|
|
21
|
+
"license": "MIT",
|
|
22
|
+
"bugs": {
|
|
23
|
+
"url": "https://github.com/sqikerz/moonwave/issues"
|
|
24
|
+
},
|
|
25
|
+
"homepage": "https://github.com/sqikerz/moonwave#readme",
|
|
26
|
+
"type": "module",
|
|
27
|
+
"dependencies": {
|
|
28
|
+
"cachedir": "^2.3.0",
|
|
29
|
+
"chokidar": "^4.0.1",
|
|
30
|
+
"fs-extra": "^11.2.0",
|
|
31
|
+
"gh-pages": "^6.3.0",
|
|
32
|
+
"node-fetch": "^3.2.6",
|
|
33
|
+
"parse-git-config": "^3.0.0",
|
|
34
|
+
"toml": "^3.0.0",
|
|
35
|
+
"unzipper": "^0.12.3",
|
|
36
|
+
"yargs": "^17.5.1"
|
|
37
|
+
},
|
|
38
|
+
"devDependencies": {
|
|
39
|
+
"@types/fs-extra": "^11.0.4",
|
|
40
|
+
"@types/gh-pages": "^6.1.0",
|
|
41
|
+
"@types/node": "^22.9.0",
|
|
42
|
+
"@types/parse-git-config": "^3.0.1",
|
|
43
|
+
"@types/unzipper": "^0.10.5",
|
|
44
|
+
"@types/yargs": "^17.0.10",
|
|
45
|
+
"typescript": "^5.4.5"
|
|
46
|
+
}
|
|
47
|
+
}
|
package/src/argv.ts
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { createRequire } from "module"
|
|
2
|
+
import yargs from "yargs"
|
|
3
|
+
import buildCommand from "./commands/build.js"
|
|
4
|
+
import devCommand from "./commands/dev.js"
|
|
5
|
+
|
|
6
|
+
const require = createRequire(import.meta.url)
|
|
7
|
+
|
|
8
|
+
const version = require("../package.json").version as string
|
|
9
|
+
|
|
10
|
+
export interface Args {
|
|
11
|
+
"out-dir": string
|
|
12
|
+
fresh: boolean
|
|
13
|
+
install: boolean
|
|
14
|
+
code: string[]
|
|
15
|
+
publish: boolean
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const argv = yargs(process.argv.slice(2))
|
|
19
|
+
.scriptName("moonwave")
|
|
20
|
+
.usage("Usage: moonwave [options]")
|
|
21
|
+
|
|
22
|
+
.alias("v", "version")
|
|
23
|
+
.version(version)
|
|
24
|
+
.describe("version", "show version information")
|
|
25
|
+
|
|
26
|
+
.alias("h", "help")
|
|
27
|
+
.help("help")
|
|
28
|
+
.describe("help", "show help")
|
|
29
|
+
.showHelpOnFail(true)
|
|
30
|
+
|
|
31
|
+
.command<Args>(
|
|
32
|
+
"build",
|
|
33
|
+
"build the docs website",
|
|
34
|
+
(yargs) => {
|
|
35
|
+
yargs
|
|
36
|
+
.boolean("publish")
|
|
37
|
+
.describe(
|
|
38
|
+
"publish",
|
|
39
|
+
"publish the built website to your gh-pages branch after building"
|
|
40
|
+
)
|
|
41
|
+
yargs
|
|
42
|
+
.string("out-dir")
|
|
43
|
+
.describe(
|
|
44
|
+
"out-dir",
|
|
45
|
+
"set the build directory to a different path (relative to the current directory)"
|
|
46
|
+
)
|
|
47
|
+
},
|
|
48
|
+
buildCommand
|
|
49
|
+
)
|
|
50
|
+
.command<Args>(
|
|
51
|
+
"dev",
|
|
52
|
+
"run in development live-reload mode",
|
|
53
|
+
(yargs) => {
|
|
54
|
+
yargs
|
|
55
|
+
.boolean("fresh")
|
|
56
|
+
.describe("fresh", "deletes build cache before building")
|
|
57
|
+
.alias("f", "fresh")
|
|
58
|
+
},
|
|
59
|
+
devCommand
|
|
60
|
+
)
|
|
61
|
+
|
|
62
|
+
.array("code")
|
|
63
|
+
.describe("code", "the path to your Lua code. e.g. 'src'")
|
|
64
|
+
.default("code", ["lib", "src"])
|
|
65
|
+
|
|
66
|
+
.boolean("install")
|
|
67
|
+
.describe("install", "re-install npm dependencies")
|
|
68
|
+
.alias("i", "install")
|
|
69
|
+
|
|
70
|
+
.strictCommands()
|
|
71
|
+
.demandCommand()
|
|
72
|
+
.parse()
|
|
73
|
+
|
|
74
|
+
export default argv
|
package/src/binary.ts
ADDED
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import fs from "fs-extra"
|
|
2
|
+
import fetch from "node-fetch"
|
|
3
|
+
import os from "os"
|
|
4
|
+
import path, { dirname } from "path"
|
|
5
|
+
import unzipper from "unzipper"
|
|
6
|
+
import { fileURLToPath } from "url"
|
|
7
|
+
|
|
8
|
+
const __dirname = dirname(fileURLToPath(import.meta.url))
|
|
9
|
+
|
|
10
|
+
const packageConfig = fs.readJSONSync(path.join(__dirname, "../package.json"))
|
|
11
|
+
const version = packageConfig.version
|
|
12
|
+
|
|
13
|
+
const URL = `https://latest-github-release.eryn.io/evaera/moonwave/v${version}`
|
|
14
|
+
|
|
15
|
+
interface Asset {
|
|
16
|
+
name: string
|
|
17
|
+
content_type: string
|
|
18
|
+
browser_download_url: string
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
interface Release {
|
|
22
|
+
name: string
|
|
23
|
+
created_at: string
|
|
24
|
+
assets: Asset[]
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export function promisifyStream(
|
|
28
|
+
stream: fs.ReadStream | fs.WriteStream
|
|
29
|
+
): Promise<unknown> {
|
|
30
|
+
return new Promise((resolve, reject) => {
|
|
31
|
+
stream.on("close", resolve)
|
|
32
|
+
stream.on("finish", resolve)
|
|
33
|
+
stream.on("end", resolve)
|
|
34
|
+
stream.on("error", reject)
|
|
35
|
+
})
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function getBinaryExtension(): string {
|
|
39
|
+
if (os.platform() === "win32") {
|
|
40
|
+
return ".exe"
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
return ""
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function getBinaryName(): string {
|
|
47
|
+
return `moonwave-extractor${getBinaryExtension()}`
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function getBinaryZipPattern(): RegExp | undefined {
|
|
51
|
+
switch (os.platform()) {
|
|
52
|
+
case "win32":
|
|
53
|
+
return /^moonwave-extractor(?:-|-.*-)win64.zip$/
|
|
54
|
+
case "darwin":
|
|
55
|
+
return /^moonwave-extractor(?:-|-.*-)macos.zip$/
|
|
56
|
+
case "linux":
|
|
57
|
+
return /^moonwave-extractor(?:-|-.*-)linux.zip$/
|
|
58
|
+
default:
|
|
59
|
+
return undefined
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
async function downloadBinary(binaryPath: string) {
|
|
64
|
+
const result = await fetch(URL)
|
|
65
|
+
|
|
66
|
+
if (!result.ok) {
|
|
67
|
+
console.error("Raw response from API:", await result.text())
|
|
68
|
+
throw new Error(
|
|
69
|
+
`${result.status} ${result.statusText} - Could not fetch Moonwave binary`
|
|
70
|
+
)
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
const release = (await result.json()) as Release
|
|
74
|
+
|
|
75
|
+
console.log(
|
|
76
|
+
`Downloading moonwave-extractor from release ${release.name} released at ${release.created_at}`
|
|
77
|
+
)
|
|
78
|
+
|
|
79
|
+
const assets = release.assets
|
|
80
|
+
const zipPattern = getBinaryZipPattern()
|
|
81
|
+
|
|
82
|
+
if (!zipPattern) {
|
|
83
|
+
throw new Error(`Your platform is unsupported: ${os.platform}`)
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
const targetAsset = assets.find((asset) => asset.name.match(zipPattern))
|
|
87
|
+
|
|
88
|
+
if (!targetAsset) {
|
|
89
|
+
throw new Error("Release does not contain a binary for this platform")
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
const download = await fetch(targetAsset.browser_download_url)
|
|
93
|
+
|
|
94
|
+
if (!download.body) {
|
|
95
|
+
throw new Error("Asset download body is null")
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
const writeStream = fs.createWriteStream(binaryPath)
|
|
99
|
+
|
|
100
|
+
const unzip = download.body.pipe(
|
|
101
|
+
unzipper.ParseOne(new RegExp(getBinaryName()), {})
|
|
102
|
+
)
|
|
103
|
+
|
|
104
|
+
const file = unzip.pipe(writeStream)
|
|
105
|
+
|
|
106
|
+
await promisifyStream(file)
|
|
107
|
+
|
|
108
|
+
if (file.bytesWritten === 0) {
|
|
109
|
+
file.close()
|
|
110
|
+
fs.removeSync(binaryPath)
|
|
111
|
+
|
|
112
|
+
throw new Error("Write stream closed but zero bytes were written")
|
|
113
|
+
} else {
|
|
114
|
+
if (os.platform() !== "win32") {
|
|
115
|
+
fs.chmod(binaryPath, 0o755)
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
export async function getBinaryPath() {
|
|
121
|
+
if (process.env.MOONWAVE_DEV) {
|
|
122
|
+
const extractorPath =
|
|
123
|
+
process.env.MOONWAVE_EXTRACTOR_PATH || "moonwave-extractor"
|
|
124
|
+
console.log(`Moonwave: Using development extractor path: ${extractorPath}`)
|
|
125
|
+
return extractorPath
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
const binFolder = path.join(__dirname, "bin")
|
|
129
|
+
const binaryPath = path.join(
|
|
130
|
+
binFolder,
|
|
131
|
+
`moonwave-extractor-${version}${getBinaryExtension()}`
|
|
132
|
+
)
|
|
133
|
+
|
|
134
|
+
if (fs.existsSync(binaryPath)) {
|
|
135
|
+
return binaryPath
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
fs.ensureDirSync(binFolder)
|
|
139
|
+
|
|
140
|
+
await downloadBinary(binaryPath)
|
|
141
|
+
|
|
142
|
+
return binaryPath
|
|
143
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { SpawnOptions, spawn } from "child_process"
|
|
2
|
+
import githubPages from "gh-pages"
|
|
3
|
+
import path from "path"
|
|
4
|
+
import { Args } from "../argv.js"
|
|
5
|
+
import { getBinaryPath } from "../binary.js"
|
|
6
|
+
import { prepareProject } from "../prepareProject.js"
|
|
7
|
+
|
|
8
|
+
function publish(buildDir: string): Promise<void> {
|
|
9
|
+
return new Promise((resolve, reject) => {
|
|
10
|
+
githubPages.publish(
|
|
11
|
+
buildDir,
|
|
12
|
+
{ dotfiles: true, message: "Built and published by Moonwave" },
|
|
13
|
+
(err) => (err ? reject(err) : resolve())
|
|
14
|
+
)
|
|
15
|
+
})
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export default async function buildCommand(args: Args) {
|
|
19
|
+
try {
|
|
20
|
+
const { tempDir, projectDir } = prepareProject(process.cwd(), {
|
|
21
|
+
codePaths: args.code,
|
|
22
|
+
fresh: true,
|
|
23
|
+
install: args.install,
|
|
24
|
+
binaryPath: await getBinaryPath(),
|
|
25
|
+
})
|
|
26
|
+
const buildDirName = args["out-dir"] || "build"
|
|
27
|
+
const buildDir = path.join(projectDir, buildDirName)
|
|
28
|
+
|
|
29
|
+
const command = "npm" + (process.platform === "win32" ? ".cmd" : "")
|
|
30
|
+
const spawnOptions: SpawnOptions = {
|
|
31
|
+
cwd: tempDir,
|
|
32
|
+
shell: true,
|
|
33
|
+
stdio: "inherit",
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const swizzleExitCode = await new Promise((resolve) => {
|
|
37
|
+
spawn(
|
|
38
|
+
command,
|
|
39
|
+
[
|
|
40
|
+
"run",
|
|
41
|
+
"swizzle",
|
|
42
|
+
"docusaurus-lunr-search",
|
|
43
|
+
"SearchBar",
|
|
44
|
+
"--",
|
|
45
|
+
"--eject",
|
|
46
|
+
"--danger",
|
|
47
|
+
],
|
|
48
|
+
spawnOptions
|
|
49
|
+
)
|
|
50
|
+
.on("exit", resolve)
|
|
51
|
+
.on("error", console.error)
|
|
52
|
+
})
|
|
53
|
+
|
|
54
|
+
if (swizzleExitCode !== 0) {
|
|
55
|
+
throw new Error("Swizzle had an non-zero exit code")
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
const exitCode = await new Promise((resolve) => {
|
|
59
|
+
spawn(
|
|
60
|
+
command,
|
|
61
|
+
["run", "build", "--", "--out-dir", `"${buildDir}"`],
|
|
62
|
+
spawnOptions
|
|
63
|
+
)
|
|
64
|
+
.on("exit", resolve)
|
|
65
|
+
.on("error", console.error)
|
|
66
|
+
})
|
|
67
|
+
|
|
68
|
+
if (exitCode !== 0) {
|
|
69
|
+
throw new Error("Build had an non-zero exit code")
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
console.log(
|
|
73
|
+
`Moonwave: Website built into the \`${buildDirName}\` directory. Do not commit this folder: you should add it to your .gitignore file.`
|
|
74
|
+
)
|
|
75
|
+
|
|
76
|
+
if (args.publish) {
|
|
77
|
+
console.log("Moonwave: Publishing build to gh-pages branch...")
|
|
78
|
+
await publish(buildDir)
|
|
79
|
+
console.log("Moonwave: Published! Your website should now be live.")
|
|
80
|
+
}
|
|
81
|
+
} catch (e) {
|
|
82
|
+
console.error(typeof e === "object" && e !== null ? e.toString() : e)
|
|
83
|
+
console.error(
|
|
84
|
+
"Moonwave: It looks like something went wrong. Check the error output above."
|
|
85
|
+
)
|
|
86
|
+
process.exit(1)
|
|
87
|
+
}
|
|
88
|
+
}
|