@nano191225/scriptup 1.0.0 → 1.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.
- package/dist/index.js +118 -39
- package/package.json +49 -46
- package/dist/commands/lts.d.ts +0 -1
- package/dist/commands/lts.js +0 -59
- package/dist/commands/lts.js.map +0 -1
- package/dist/commands/manual.d.ts +0 -1
- package/dist/commands/manual.js +0 -28
- package/dist/commands/manual.js.map +0 -1
- package/dist/commands/preview.d.ts +0 -1
- package/dist/commands/preview.js +0 -51
- package/dist/commands/preview.js.map +0 -1
- package/dist/commands/stable.d.ts +0 -1
- package/dist/commands/stable.js +0 -51
- package/dist/commands/stable.js.map +0 -1
- package/dist/index.d.ts +0 -2
- package/dist/index.js.map +0 -1
- package/dist/utils/logger.d.ts +0 -5
- package/dist/utils/logger.js +0 -17
- package/dist/utils/logger.js.map +0 -1
- package/dist/utils/manifest.d.ts +0 -28
- package/dist/utils/manifest.js +0 -18
- package/dist/utils/manifest.js.map +0 -1
- package/dist/utils/package-manager.d.ts +0 -3
- package/dist/utils/package-manager.js +0 -81
- package/dist/utils/package-manager.js.map +0 -1
- package/dist/utils/packageManager.d.ts +0 -3
- package/dist/utils/packageManager.js +0 -81
- package/dist/utils/packageManager.js.map +0 -1
- package/dist/utils/versions.d.ts +0 -6
- package/dist/utils/versions.js +0 -44
- package/dist/utils/versions.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,40 +1,119 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
2
|
+
import{Command as e,Option as t}from"commander";import n from"ora";import*as r from"node:fs";import*as i from"node:path";import a from"chalk";import{execSync as o,spawnSync as s}from"node:child_process";import{randomUUID as c}from"node:crypto";import*as l from"node:os";import{build as ee,mergeConfig as u}from"tsdown";import{pathToFileURL as d}from"node:url";function f(e){console.log(`${a.blue(`[INFO]`)} ${e}`)}function p(e){console.log(`${a.gray(`[LOG]`)} ${e}`)}function m(e){console.log(`${a.yellow(`[WARN]`)} ${e}`)}function h(e){console.error(`${a.red(`[ERROR]`)} ${e}`)}function g(e){console.log(`${a.green(`[DONE]`)} ${e}`)}function _(e){return e.type===`script`}function v(e){return`module_name`in e}function y(){let e=i.resolve(`manifest.json`);r.existsSync(e)||(h(`manifest.json not found.`),process.exit(1));let t=r.readFileSync(e,`utf-8`);return JSON.parse(t)}function b(e){let t=i.resolve(`manifest.json`),n=JSON.stringify(e,null,` `);r.writeFileSync(t,n,`utf-8`)}async function x(e){let t=`https://registry.npmjs.org/${e}`,n=await fetch(t);if(!n.ok)throw Error(`Failed to fetch versions for ${e}: ${n.statusText}`);let r=await n.json(),i=Object.keys(r.versions).reverse();return i.sort((e,t)=>{let n=e=>e.includes(`stable`)?0:e.includes(`preview`)?1:2;return n(e)-n(t)}),i}function S(e){let t=e.indexOf(`-`);if(t===-1)return e;let n=e.substring(t).indexOf(`.`);if(n===-1)return e;let r=t+n+1,i=e.substring(r),a=i.indexOf(`-`);return a===-1?i:i.substring(0,a)}function C(e){let t=e.indexOf(`-`);if(t===-1)return e;let n=e.substring(t).indexOf(`.`);return n===-1?e:e.substring(0,t+n)}function w(){let e=process.cwd(),t=i.resolve(e,`package.json`);if(r.existsSync(t)){let e=JSON.parse(r.readFileSync(t,`utf-8`));if(e.packageManager){let t=e.packageManager.split(`@`)[0];if(te(t))return p(`Detected package manager from package.json: ${t}`),t}}return r.existsSync(i.resolve(e,`bun.lockb`))||r.existsSync(i.resolve(e,`bun.lock`))?(p(`Detected package manager from lock file: bun`),`bun`):r.existsSync(i.resolve(e,`pnpm-lock.yaml`))?(p(`Detected package manager from lock file: pnpm`),`pnpm`):r.existsSync(i.resolve(e,`yarn.lock`))?(p(`Detected package manager from lock file: yarn`),`yarn`):r.existsSync(i.resolve(e,`package-lock.json`))?(p(`Detected package manager from lock file: npm`),`npm`):(p(`No lock file found. Defaulting to npm.`),`npm`)}function te(e){return[`npm`,`pnpm`,`yarn`,`bun`].includes(e)}function T(e){return e===`yarn`?`add`:`install`}function E(e){switch(e){case`npm`:return`--save-exact`;case`pnpm`:return`--save-exact`;case`yarn`:return`--exact`;case`bun`:return`--exact`}}function D(e){switch(e){case`npm`:return`--force`;case`pnpm`:return`--force`;case`yarn`:return;case`bun`:return`--force`}}function O(e,t){let n=T(e),r=E(e),i=D(e),a=[e,n,t,e===`yarn`?`--dev`:`--save-dev`,r];i&&a.push(i),o(a.join(` `),{stdio:`pipe`,cwd:process.cwd()})}async function k(){let e=n(`Fetching Minecraft version...`).start(),t=await A();e.succeed(`Install modules for Minecraft version: ${t}`);let r=y();p(`Manifest loaded. Fetching new module versions...`);let i=w(),a=[],o=r.dependencies?.filter(v)??[];for(let e of o){let n=(await x(e.module_name)).find(e=>e.includes(t));n||(h(`No version found for ${e.module_name} matching MC ${t}`),process.exit(1)),e.version=C(n),p(`${e.module_name}: ${n}`),a.push({name:e.module_name,version:n})}b(r),p(`Module versions fetched and manifest updated.`);let s=n(`Installing modules...`).start();for(let e=0;e<a.length;e++){let t=a[e];s.text=`Installing modules... (${e+1}/${a.length}) ${t.name}`;try{O(i,`${t.name}@${t.version}`)}catch(e){s.fail(`Failed to install ${t.name}`),h(e instanceof Error?e.message:String(e)),process.exit(1)}}s.succeed(`All modules installed successfully.`)}async function A(){let e=(await x(`@minecraft/server`)).find(e=>e.includes(`-stable`));return e||(h(`No stable versions found.`),process.exit(1)),S(e)}async function j(){let e=n(`Fetching Minecraft version...`).start(),t=await M();e.succeed(`Install modules for Minecraft version: ${t}`);let r=y();p(`Manifest loaded. Fetching new module versions...`);let i=w(),a=[],o=r.dependencies?.filter(v)??[];for(let e of o){let n=(await x(e.module_name)).find(e=>e.includes(t));n||(h(`No version found for ${e.module_name} matching MC ${t}`),process.exit(1)),e.version=C(n),p(`${e.module_name}: ${n}`),a.push({name:e.module_name,version:n})}b(r),p(`Module versions fetched and manifest updated.`);let s=n(`Installing modules...`).start();for(let e=0;e<a.length;e++){let t=a[e];s.text=`Installing modules... (${e+1}/${a.length}) ${t.name}`;try{O(i,`${t.name}@${t.version}`)}catch(e){s.fail(`Failed to install ${t.name}`),h(e instanceof Error?e.message:String(e)),process.exit(1)}}s.succeed(`All modules installed successfully.`)}async function M(){let e=(await x(`@minecraft/server`)).find(e=>e.includes(`-preview`));return e||(h(`No preview versions found.`),process.exit(1)),S(e)}async function N(){let e=n(`Fetching Minecraft version...`).start(),t=await P();e.succeed(`Install modules for Minecraft version: ${t}`);let r=y();p(`Manifest loaded. Fetching new module versions...`);let i=w(),a=[],o=r.dependencies?.filter(v)??[];for(let e of o){let n=await x(e.module_name),r=n.find(e=>!e.includes(`stable`)&&!e.includes(`preview`)&&!e.includes(`internal`)&&!e.includes(`beta`)&&!e.startsWith(`0.`));r?e.version=r:(m(`No LTS versions found for ${e.module_name}. Falling back to stable.`),r=n.find(e=>e.includes(t)),r||(h(`No version found for ${e.module_name}`),process.exit(1)),e.version=S(r)),p(`${e.module_name}: ${r}`),a.push({name:e.module_name,version:r})}b(r),p(`Module versions fetched and manifest updated.`);let s=n(`Installing modules...`).start();for(let e=0;e<a.length;e++){let t=a[e];s.text=`Installing modules... (${e+1}/${a.length}) ${t.name}`;try{O(i,`${t.name}@${t.version}`)}catch(e){s.fail(`Failed to install ${t.name}`),h(e instanceof Error?e.message:String(e)),process.exit(1)}}s.succeed(`All modules installed successfully.`)}async function P(){let e=(await x(`@minecraft/server`)).find(e=>e.includes(`-stable`));return e||(h(`No stable versions found.`),process.exit(1)),S(e)}async function F(e){let t=await x(`@minecraft/server`),n=t.find(t=>t===e);if(n){f(`Found exact version: ${n}`);return}let r=t.find(t=>t.includes(e));r||(h(`Version not found: ${e}`),process.exit(1));let i=S(r);f(`Found version: ${i}`);let a=(await x(`@minecraft/server`)).find(e=>e.includes(i)),o=(await x(`@minecraft/server-ui`)).find(e=>e.includes(i));a&&f(`Server version: ${a}`),o&&f(`Server UI version: ${o}`)}async function I(e){let t=i.resolve(e.targetDir),n=e.projectName?.trim()||i.basename(t),a=e.workflow!==!1;r.mkdirSync(t,{recursive:!0});let o=B(n,await z(),a),s=0;for(let[e,n]of Object.entries(o)){let a=i.join(t,e);if(r.existsSync(a)){m(`Skipped existing file: ${e}`);continue}r.mkdirSync(i.dirname(a),{recursive:!0}),r.writeFileSync(a,n,`utf-8`),p(`Created ${e}`),s+=1}if(s===0){m(`No files were created.`);return}g(`Project initialized in ${t}`)}function L(e){r.existsSync(e)&&r.readdirSync(e).length>0&&(h(`Target directory is not empty: ${e}`),process.exit(1))}function R(e,t){let n=s(t,[`.`],{cwd:e,shell:!0,stdio:`inherit`});if(n.error)throw n.error;if(n.status!==0)throw Error(`${t} exited with code ${n.status??`unknown`}`)}async function z(){try{let e=(await x(`@minecraft/server`)).find(e=>e.includes(`-stable`));if(!e)throw Error(`No stable @minecraft/server version found.`);let t=S(e),n=t,r=[],i={};for(let e of[`@minecraft/server`,`@minecraft/server-ui`]){let n=(await x(e)).find(e=>e.includes(t));if(!n){m(`Skipped ${e}: no version found for Minecraft ${t}`);continue}let a=C(n);r.push({module_name:e,version:a}),i[e]=n}return{engineVersion:n,dependencies:r,packageDependencies:i}}catch(e){return m(`Failed to resolve latest ScriptAPI dependencies: ${e instanceof Error?e.message:String(e)}`),m(`Creating the project without npm dependencies. You can run scriptup stable later.`),{engineVersion:`1.20.0`,dependencies:[],packageDependencies:{}}}}function B(e,t,n){let r=ne(e,t.engineVersion,t.dependencies),i=V(e,t.packageDependencies),a={".gitignore":`node_modules/
|
|
3
|
+
scripts
|
|
4
|
+
*.mcpack
|
|
5
|
+
*.mcaddon
|
|
6
|
+
`,".vscode/settings.json":JSON.stringify(U(),null,2)+`
|
|
7
|
+
`,".vscode/launch.json":JSON.stringify(W(r),null,2)+`
|
|
8
|
+
`,"README.md":K(e),LICENSE:q(),"manifest.json":JSON.stringify(r,null,` `)+`
|
|
9
|
+
`,"package.json":JSON.stringify(i,null,2)+`
|
|
10
|
+
`,"tsconfig.json":JSON.stringify(H(),null,2)+`
|
|
11
|
+
`,"tsdown.config.ts":[`import { defineConfig } from "tsdown";`,``,`export default defineConfig({});`,``].join(`
|
|
12
|
+
`),"src/main.ts":[`import { world } from "@minecraft/server";`,``,`world.afterEvents.worldLoad.subscribe(() => {`,` console.log("Hello world!");`,`});`].join(`
|
|
13
|
+
`)+`
|
|
14
|
+
`};return n&&(a[`.github/workflows/mcpack.yml`]=G()),a}function ne(e,t,n){return{format_version:3,header:{name:e,description:`${e} (B)`,uuid:c(),version:[1,0,0],min_engine_version:t},metadata:{authors:[`YOUR NAME HERE`],url:`https://example.com/your-project`,generated_with:{scriptup:[`1.0.0`]}},modules:[{type:`data`,uuid:c(),version:[1,0,0]},{type:`script`,uuid:c(),version:[1,0,0],language:`javascript`,entry:`scripts/main.js`}],dependencies:n}}function V(e,t){let n={"@bedrock-apis/env-types":`1.0.0-beta.6`,typescript:`^5.9.3`,tsdown:`^0.21.2`};for(let[e,r]of Object.entries(t))n[e]=r;return{name:J(e),version:`1.0.0`,type:`module`,scripts:{build:`scriptup build --release`,watch:`scriptup build --watch`},devDependencies:n,keywords:[`minecraft`,`minecraft-bedrock`,`minecraft-script-api`,`scriptapi`],files:[`manifest.json`,`scripts`,`LICENSE`,`README.md`]}}function H(){return{include:[`src`],compilerOptions:{strict:!0,noLib:!0,types:[`@bedrock-apis/env-types`],noEmit:!0}}}function U(){return{"json.schemas":[{url:`https://raw.githubusercontent.com/Blockception/Minecraft-bedrock-json-schemas/refs/heads/main/general/manifest.json`,fileMatch:[`manifest.json`]}]}}function W(e){let t=e.modules?.find(e=>e.type===`script`)?.uuid;return t||m(`No script module UUID found in manifest. VSCode launch configuration will not include targetModuleUuid.`),{version:`0.2.0`,configurations:[{type:`minecraft-js`,request:`attach`,name:`Attach to Minecraft`,mode:`listen`,localRoot:"${workspaceFolder}/src",sourceMapRoot:"${workspaceFolder}/scripts",...t?{targetModuleUuid:t}:{},host:`localhost`,port:19144}]}}function G(){return`name: Upload mcpack
|
|
15
|
+
on:
|
|
16
|
+
release:
|
|
17
|
+
types: [published]
|
|
18
|
+
|
|
19
|
+
jobs:
|
|
20
|
+
build:
|
|
21
|
+
runs-on: ubuntu-latest
|
|
22
|
+
steps:
|
|
23
|
+
- uses: actions/checkout@v4
|
|
24
|
+
|
|
25
|
+
##############################
|
|
26
|
+
|
|
27
|
+
### pnpm ###
|
|
28
|
+
|
|
29
|
+
- name: Install pnpm
|
|
30
|
+
uses: pnpm/action-setup@v4
|
|
31
|
+
|
|
32
|
+
- name: Use Node.js 24
|
|
33
|
+
uses: actions/setup-node@v4
|
|
34
|
+
with:
|
|
35
|
+
node-version: "24"
|
|
36
|
+
cache: "pnpm"
|
|
37
|
+
|
|
38
|
+
- name: Install dependencies
|
|
39
|
+
run: |
|
|
40
|
+
pnpm i --frozen-lockfile
|
|
41
|
+
|
|
42
|
+
- name: Build
|
|
43
|
+
run: pnpm run build
|
|
44
|
+
|
|
45
|
+
### npm ###
|
|
46
|
+
|
|
47
|
+
# - name: Use Node.js 24
|
|
48
|
+
# uses: actions/setup-node@v4
|
|
49
|
+
# with:
|
|
50
|
+
# node-version: "24"
|
|
51
|
+
# cache: "npm"
|
|
52
|
+
|
|
53
|
+
# - name: Install dependencies
|
|
54
|
+
# run: |
|
|
55
|
+
# npm ci
|
|
56
|
+
|
|
57
|
+
# - name: Build
|
|
58
|
+
# run: |
|
|
59
|
+
# npm run build
|
|
60
|
+
|
|
61
|
+
### yarn ###
|
|
62
|
+
|
|
63
|
+
# - name: Use Node.js 24
|
|
64
|
+
# uses: actions/setup-node@v4
|
|
65
|
+
# with:
|
|
66
|
+
# node-version: "24"
|
|
67
|
+
# cache: "yarn"
|
|
68
|
+
|
|
69
|
+
# - name: Install dependencies
|
|
70
|
+
# uses: borales/actions-yarn@v4
|
|
71
|
+
# with:
|
|
72
|
+
# cmd: install
|
|
73
|
+
|
|
74
|
+
# - name: Build
|
|
75
|
+
# uses: borales/actions-yarn@v4
|
|
76
|
+
# with:
|
|
77
|
+
# cmd: build
|
|
78
|
+
|
|
79
|
+
##############################
|
|
80
|
+
|
|
81
|
+
- name: Get Pack Name
|
|
82
|
+
id: get-name
|
|
83
|
+
run: |
|
|
84
|
+
name=$(jq -r '.header.name' manifest.json | tr -d '"' | tr ' ' '_')
|
|
85
|
+
echo "fileName=$name" >> $GITHUB_OUTPUT
|
|
86
|
+
|
|
87
|
+
- name: Make Archive
|
|
88
|
+
run: |
|
|
89
|
+
echo "Creating archive: \${{ steps.get-name.outputs.fileName }}"
|
|
90
|
+
files=$(jq -r '.files[]' package.json | tr '
|
|
91
|
+
' ' ')
|
|
92
|
+
zip -r "\${{ steps.get-name.outputs.fileName }}.mcpack" $files
|
|
93
|
+
cp "\${{ steps.get-name.outputs.fileName }}.mcpack" "\${{ steps.get-name.outputs.fileName }}.zip"
|
|
94
|
+
|
|
95
|
+
- name: Upload Release Asset
|
|
96
|
+
run: gh release upload "$GITHUB_REF_NAME" "\${{ steps.get-name.outputs.fileName }}.mcpack" "\${{ steps.get-name.outputs.fileName }}.zip" --clobber
|
|
97
|
+
env:
|
|
98
|
+
GITHUB_TOKEN: \${{ secrets.GITHUB_TOKEN }}`}function K(e){return[`# ${e}`,``,`ScriptAPI addon template generated by scriptup.`,``,`## Setup`,``,"```bash",`npm install`,"```",``].join(`
|
|
99
|
+
`)}function q(){let e=new Date().getFullYear(),t=`{{author}}`;try{let e=s(`git`,[`config`,`user.name`],{encoding:`utf-8`,shell:!0});if(e.status===0){let n=e.stdout.trim();n&&(t=n)}}catch(e){m(`Failed to get git user.name: ${e instanceof Error?e.message:String(e)}`),m(`Using placeholder author name in LICENSE.`)}return`MIT License
|
|
100
|
+
|
|
101
|
+
Copyright (c) ${e} ${t}
|
|
102
|
+
|
|
103
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
104
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
105
|
+
in the Software without restriction, including without limitation the rights
|
|
106
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
107
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
108
|
+
furnished to do so, subject to the following conditions:
|
|
109
|
+
|
|
110
|
+
The above copyright notice and this permission notice shall be included in all
|
|
111
|
+
copies or substantial portions of the Software.
|
|
112
|
+
|
|
113
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
114
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
115
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
116
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
117
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
118
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
119
|
+
SOFTWARE.`}function J(e){return e.trim().toLowerCase().replace(/[^a-z0-9-_\s]/g,``).replace(/\s+/g,`-`).replace(/-+/g,`-`).replace(/^-|-$/g,``)||`scriptapi-addon`}async function Y(e=process.cwd(),t={}){await I({targetDir:e,workflow:t.workflow}),f(`Initialization complete.`)}const X=[`code`,`code-insiders`];async function Z(e,t){let n=ie(t.preview),r=re(e,t,n);if(L(r),await I({targetDir:r,projectName:e,workflow:t.workflow}),t.dir&&t.link!==!1&&ae(r,i.join(n,e)),t.open){if(!X.includes(t.open))return h(`Unsupported editor: ${t.open}`);f(`Opening project with ${t.open}...`);try{R(r,t.open)}catch(e){h(`Failed to open project: ${e instanceof Error?e.message:String(e)}`),process.exit(1)}}}function re(e,t,n){return t.dir?i.resolve(t.dir,e):i.join(n,e)}function ie(e=!1){if(process.platform===`win32`){let t=process.env.APPDATA;t||(h(`APPDATA is not available. Use --dir to specify the destination manually.`),process.exit(1));let n=e?`Minecraft Bedrock Preview`:`Minecraft Bedrock`;return i.join(t,n,`Users`,`Shared`,`games`,`com.mojang`,`development_behavior_packs`)}let t=process.env.XDG_DATA_HOME??i.join(l.homedir(),`.local`,`share`);return i.join(t,`mcpelauncher`,`games`,`com.mojang`,`development_behavior_packs`)}function ae(e,t){let n=i.resolve(e),a=i.resolve(t);if(n===a)return;if(r.mkdirSync(i.dirname(a),{recursive:!0}),r.existsSync(a)){m(`Link path already exists, skipping link creation: ${a}`);return}let o=process.platform===`win32`?`junction`:`dir`;r.symlinkSync(n,a,o),p(`Linked behavior pack: ${a} -> ${n}`)}async function oe(e={}){let t=y().modules?.filter(_).find(e=>typeof e.entry==`string`&&e.entry.length>0);t?.entry||(h(`No script module entry found in manifest.json.`),process.exit(1));let n=await le(i.resolve(`tsdown.config.ts`)),r=Q(n);r||(h(`Source entry not found. Expected src/main.ts, src/index.ts, or tsdown.config.ts entry.`),process.exit(1));let a=i.resolve(t.entry),o=i.dirname(a),s=ue(i.resolve(`package.json`)),c=e.bundle===!0,l=e.watch===!0,d=e.release===!0,p=u({config:!1,entry:i.relative(process.cwd(),r),outDir:i.relative(process.cwd(),o),format:`esm`,target:`es2024`,platform:`neutral`,sourcemap:!d,clean:!l,tsconfig:i.relative(process.cwd(),i.resolve(`tsconfig.json`)),outExtensions:()=>({js:`.js`}),deps:{neverBundle:/^@minecraft\/(?!math(?:\/|$)|vanilla-data(?:\/|$))/,alwaysBundle:s,onlyBundle:!1},unbundle:!d&&!c,watch:l,minify:d},n);f(`Bundling addon scripts with tsdown...`);try{await ee(p)}catch(e){h(e instanceof Error?e.message:String(e)),process.exit(1)}l||se(a),g(`Build complete: ${i.relative(process.cwd(),a)}`)}function se(e){r.existsSync(e)||(h(`Expected build output was not found: ${e}`),process.exit(1))}function Q(e){let t=i.resolve(`src/main.ts`);if(r.existsSync(t))return t;let n=i.resolve(`src/index.ts`);if(r.existsSync(n))return n;let a=ce(e.entry);if(!a)return null;let o=i.resolve(a);return r.existsSync(o)?o:null}function ce(e){return typeof e==`string`?e:Array.isArray(e)&&typeof e[0]==`string`?e[0]:null}async function le(e){if(!r.existsSync(e))return{};let t=r.readFileSync(e,`utf-8`);if(!t.includes(`export default`)||!t.includes(`defineConfig`))return m(`tsdown.config.ts was found but could not be parsed. Using internal build defaults.`),{};try{let t=(await import(d(e).href)).default;return!t||typeof t!=`object`||Array.isArray(t)?(m(`tsdown.config.ts should export a single config object. Using internal build defaults.`),{}):t}catch(e){return m(`Failed to import tsdown.config.ts: ${e instanceof Error?e.message:String(e)}`),m(`Using internal build defaults.`),{}}}function ue(e){if(!r.existsSync(e))return m(`package.json was not found. Skipping deps.alwaysBundle.`),[];try{let t=r.readFileSync(e,`utf-8`),n=JSON.parse(t);return Object.keys(n.dependencies??{})}catch(e){return m(`Failed to parse package.json dependencies: ${e instanceof Error?e.message:String(e)}`),m(`Skipping deps.alwaysBundle.`),[]}}const $=new e;$.name(`scriptup`).description(`ScriptAPI version updater for Minecraft Bedrock`).version(`1.0.0`).argument(`[version]`,`Manually specify a version to look up`),$.command(`stable`).description(`Install the latest stable version modules`).action(async()=>{await k()}),$.command(`preview`).description(`Install the latest preview version modules`).action(async()=>{await j()}),$.command(`lts`).description(`Install the latest LTS version modules`).action(async()=>{await N()}),$.command(`build`).description(`Bundle the current ScriptAPI project with tsdown`).option(`-b, --bundle`,`Bundle the output into a single file`).option(`-w, --watch`,`Build in watch mode`).option(`-r, --release`,`Build for release (minified, sourcemap off)`).action(async e=>{await oe(e)}),$.command(`init`).description(`Initialize a ScriptAPI project in the current directory`).option(`--no-workflow`,`Do not create the GitHub Actions workflow files`).action(async e=>{await Y(void 0,e)}),$.command(`new`).description(`Create a new ScriptAPI project`).argument(`<project-name>`,`Directory name for the new project`).addOption(new t(`-o, --open [command]`,`Open the project after creation`).preset(`code`)).option(`-p, --preview`,`Create the project in the Minecraft Bedrock Preview behavior packs directory`).option(`-d, --dir <path>`,`Create the project under a specific directory`).option(`--no-link`,`Do not create a link in the behavior packs directory when --dir is used`).option(`--no-workflow`,`Do not create the GitHub Actions workflow files`).action(async(e,t)=>{await Z(e,t)}),$.action(async e=>{e?await F(e):$.help()}),$.parse();export{};
|
package/package.json
CHANGED
|
@@ -1,46 +1,49 @@
|
|
|
1
|
-
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
"
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
"
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
"
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
"
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
"
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
"
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "@nano191225/scriptup",
|
|
3
|
+
"version": "1.1.0",
|
|
4
|
+
"description": "ScriptAPI version updater for Minecraft Bedrock",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"bin": {
|
|
7
|
+
"scriptup": "dist/index.js"
|
|
8
|
+
},
|
|
9
|
+
"repository": {
|
|
10
|
+
"type": "git",
|
|
11
|
+
"url": "git+https://github.com/Nano191225/scriptup.git"
|
|
12
|
+
},
|
|
13
|
+
"keywords": [
|
|
14
|
+
"minecraft",
|
|
15
|
+
"minecraft-bedrock",
|
|
16
|
+
"minecraft-script-api",
|
|
17
|
+
"scriptapi"
|
|
18
|
+
],
|
|
19
|
+
"author": "Nano191225",
|
|
20
|
+
"license": "MIT",
|
|
21
|
+
"bugs": {
|
|
22
|
+
"url": "https://github.com/Nano191225/scriptup/issues"
|
|
23
|
+
},
|
|
24
|
+
"homepage": "https://github.com/Nano191225/scriptup#readme",
|
|
25
|
+
"publishConfig": {
|
|
26
|
+
"access": "public"
|
|
27
|
+
},
|
|
28
|
+
"files": [
|
|
29
|
+
"dist"
|
|
30
|
+
],
|
|
31
|
+
"dependencies": {
|
|
32
|
+
"chalk": "^5.4.1",
|
|
33
|
+
"commander": "^13.1.0",
|
|
34
|
+
"ora": "^8.2.0",
|
|
35
|
+
"tsdown": "^0.21.2"
|
|
36
|
+
},
|
|
37
|
+
"devDependencies": {
|
|
38
|
+
"@types/node": "^22.13.0",
|
|
39
|
+
"typescript": "^5.7.0"
|
|
40
|
+
},
|
|
41
|
+
"engines": {
|
|
42
|
+
"node": ">=18.0.0"
|
|
43
|
+
},
|
|
44
|
+
"type": "module",
|
|
45
|
+
"scripts": {
|
|
46
|
+
"build": "tsdown",
|
|
47
|
+
"dev": "tsdown --watch"
|
|
48
|
+
}
|
|
49
|
+
}
|
package/dist/commands/lts.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function lts(): Promise<void>;
|
package/dist/commands/lts.js
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import ora from "ora";
|
|
2
|
-
import { getManifest, updateManifest } from "../utils/manifest.js";
|
|
3
|
-
import { getVersions, extractMcVersion } from "../utils/versions.js";
|
|
4
|
-
import { detectPackageManager, installPackage } from "../utils/package-manager.js";
|
|
5
|
-
import * as logger from "../utils/logger.js";
|
|
6
|
-
export async function lts() {
|
|
7
|
-
const spinner = ora("Fetching Minecraft version...").start();
|
|
8
|
-
const mcVersion = await getStableMinecraftVersion();
|
|
9
|
-
spinner.succeed(`Install modules for Minecraft version: ${mcVersion}`);
|
|
10
|
-
const manifest = getManifest();
|
|
11
|
-
logger.log("Manifest loaded. Fetching new module versions...");
|
|
12
|
-
const pm = detectPackageManager();
|
|
13
|
-
const modules = [];
|
|
14
|
-
for (const dependency of manifest.dependencies) {
|
|
15
|
-
const versions = await getVersions(dependency.module_name);
|
|
16
|
-
// LTS: non-stable, non-preview, non-internal, non-beta, non-0.x
|
|
17
|
-
let matched = versions.find((v) => !v.includes("stable") && !v.includes("preview") && !v.includes("internal") && !v.includes("beta") && !v.startsWith("0."));
|
|
18
|
-
if (matched) {
|
|
19
|
-
dependency.version = matched;
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
logger.warn(`No LTS versions found for ${dependency.module_name}. Falling back to stable.`);
|
|
23
|
-
matched = versions.find((v) => v.includes(mcVersion));
|
|
24
|
-
if (!matched) {
|
|
25
|
-
logger.error(`No version found for ${dependency.module_name}`);
|
|
26
|
-
process.exit(1);
|
|
27
|
-
}
|
|
28
|
-
dependency.version = extractMcVersion(matched);
|
|
29
|
-
}
|
|
30
|
-
logger.log(`${dependency.module_name}: ${matched}`);
|
|
31
|
-
modules.push({ name: dependency.module_name, version: matched });
|
|
32
|
-
}
|
|
33
|
-
updateManifest(manifest);
|
|
34
|
-
logger.log("Module versions fetched and manifest updated.");
|
|
35
|
-
const installSpinner = ora("Installing modules...").start();
|
|
36
|
-
for (let i = 0; i < modules.length; i++) {
|
|
37
|
-
const mod = modules[i];
|
|
38
|
-
installSpinner.text = `Installing modules... (${i + 1}/${modules.length}) ${mod.name}`;
|
|
39
|
-
try {
|
|
40
|
-
installPackage(pm, `${mod.name}@${mod.version}`);
|
|
41
|
-
}
|
|
42
|
-
catch (e) {
|
|
43
|
-
installSpinner.fail(`Failed to install ${mod.name}`);
|
|
44
|
-
logger.error(e instanceof Error ? e.message : String(e));
|
|
45
|
-
process.exit(1);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
installSpinner.succeed("All modules installed successfully.");
|
|
49
|
-
}
|
|
50
|
-
async function getStableMinecraftVersion() {
|
|
51
|
-
const versions = await getVersions("@minecraft/server");
|
|
52
|
-
const version = versions.find((v) => v.includes("-stable"));
|
|
53
|
-
if (!version) {
|
|
54
|
-
logger.error("No stable versions found.");
|
|
55
|
-
process.exit(1);
|
|
56
|
-
}
|
|
57
|
-
return extractMcVersion(version);
|
|
58
|
-
}
|
|
59
|
-
//# sourceMappingURL=lts.js.map
|
package/dist/commands/lts.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"lts.js","sourceRoot":"","sources":["../../src/commands/lts.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACnF,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAC;AAE7C,MAAM,CAAC,KAAK,UAAU,GAAG;IACrB,MAAM,OAAO,GAAG,GAAG,CAAC,+BAA+B,CAAC,CAAC,KAAK,EAAE,CAAC;IAE7D,MAAM,SAAS,GAAG,MAAM,yBAAyB,EAAE,CAAC;IACpD,OAAO,CAAC,OAAO,CAAC,0CAA0C,SAAS,EAAE,CAAC,CAAC;IAEvE,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;IAE/D,MAAM,EAAE,GAAG,oBAAoB,EAAE,CAAC;IAMlC,MAAM,OAAO,GAAiB,EAAE,CAAC;IAEjC,KAAK,MAAM,UAAU,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;QAC7C,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAE3D,gEAAgE;QAChE,IAAI,OAAO,GAAG,QAAQ,CAAC,IAAI,CACvB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAClI,CAAC;QAEF,IAAI,OAAO,EAAE,CAAC;YACV,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC;QACjC,CAAC;aAAM,CAAC;YACJ,MAAM,CAAC,IAAI,CAAC,6BAA6B,UAAU,CAAC,WAAW,2BAA2B,CAAC,CAAC;YAC5F,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;YACtD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACX,MAAM,CAAC,KAAK,CAAC,wBAAwB,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;gBAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,CAAC;YACD,UAAU,CAAC,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,WAAW,KAAK,OAAO,EAAE,CAAC,CAAC;QAEpD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,cAAc,CAAC,QAAQ,CAAC,CAAC;IACzB,MAAM,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IAE5D,MAAM,cAAc,GAAG,GAAG,CAAC,uBAAuB,CAAC,CAAC,KAAK,EAAE,CAAC;IAE5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACvB,cAAc,CAAC,IAAI,GAAG,0BAA0B,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC;QAEvF,IAAI,CAAC;YACD,cAAc,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACrD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,cAAc,CAAC,IAAI,CAAC,qBAAqB,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;YACrD,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;IACL,CAAC;IAED,cAAc,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC;AAClE,CAAC;AAED,KAAK,UAAU,yBAAyB;IACpC,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,mBAAmB,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IAE5D,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function manual(version: string): Promise<void>;
|
package/dist/commands/manual.js
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { getVersions, extractMcVersion } from "../utils/versions.js";
|
|
2
|
-
import * as logger from "../utils/logger.js";
|
|
3
|
-
export async function manual(version) {
|
|
4
|
-
const versions = await getVersions("@minecraft/server");
|
|
5
|
-
// Exact match
|
|
6
|
-
const exact = versions.find((v) => v === version);
|
|
7
|
-
if (exact) {
|
|
8
|
-
logger.info(`Found exact version: ${exact}`);
|
|
9
|
-
return;
|
|
10
|
-
}
|
|
11
|
-
// Partial match
|
|
12
|
-
const partial = versions.find((v) => v.includes(version));
|
|
13
|
-
if (!partial) {
|
|
14
|
-
logger.error(`Version not found: ${version}`);
|
|
15
|
-
process.exit(1);
|
|
16
|
-
}
|
|
17
|
-
const mcVersion = extractMcVersion(partial);
|
|
18
|
-
logger.info(`Found version: ${mcVersion}`);
|
|
19
|
-
const serverVersions = await getVersions("@minecraft/server");
|
|
20
|
-
const server = serverVersions.find((v) => v.includes(mcVersion));
|
|
21
|
-
const serverUiVersions = await getVersions("@minecraft/server-ui");
|
|
22
|
-
const serverUi = serverUiVersions.find((v) => v.includes(mcVersion));
|
|
23
|
-
if (server)
|
|
24
|
-
logger.info(`Server version: ${server}`);
|
|
25
|
-
if (serverUi)
|
|
26
|
-
logger.info(`Server UI version: ${serverUi}`);
|
|
27
|
-
}
|
|
28
|
-
//# sourceMappingURL=manual.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"manual.js","sourceRoot":"","sources":["../../src/commands/manual.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAC;AAE7C,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,OAAe;IACxC,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,mBAAmB,CAAC,CAAC;IAExD,cAAc;IACd,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC;IAClD,IAAI,KAAK,EAAE,CAAC;QACR,MAAM,CAAC,IAAI,CAAC,wBAAwB,KAAK,EAAE,CAAC,CAAC;QAC7C,OAAO;IACX,CAAC;IAED,gBAAgB;IAChB,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1D,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,MAAM,CAAC,KAAK,CAAC,sBAAsB,OAAO,EAAE,CAAC,CAAC;QAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,CAAC,IAAI,CAAC,kBAAkB,SAAS,EAAE,CAAC,CAAC;IAE3C,MAAM,cAAc,GAAG,MAAM,WAAW,CAAC,mBAAmB,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IAEjE,MAAM,gBAAgB,GAAG,MAAM,WAAW,CAAC,sBAAsB,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IAErE,IAAI,MAAM;QAAE,MAAM,CAAC,IAAI,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;IACrD,IAAI,QAAQ;QAAE,MAAM,CAAC,IAAI,CAAC,sBAAsB,QAAQ,EAAE,CAAC,CAAC;AAChE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function preview(): Promise<void>;
|
package/dist/commands/preview.js
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import ora from "ora";
|
|
2
|
-
import { getManifest, updateManifest } from "../utils/manifest.js";
|
|
3
|
-
import { getVersions, extractMcVersion, extractModuleVersion } from "../utils/versions.js";
|
|
4
|
-
import { detectPackageManager, installPackage } from "../utils/package-manager.js";
|
|
5
|
-
import * as logger from "../utils/logger.js";
|
|
6
|
-
export async function preview() {
|
|
7
|
-
const spinner = ora("Fetching Minecraft version...").start();
|
|
8
|
-
const mcVersion = await getPreviewMinecraftVersion();
|
|
9
|
-
spinner.succeed(`Install modules for Minecraft version: ${mcVersion}`);
|
|
10
|
-
const manifest = getManifest();
|
|
11
|
-
logger.log("Manifest loaded. Fetching new module versions...");
|
|
12
|
-
const pm = detectPackageManager();
|
|
13
|
-
const modules = [];
|
|
14
|
-
for (const dependency of manifest.dependencies) {
|
|
15
|
-
const versions = await getVersions(dependency.module_name);
|
|
16
|
-
const matched = versions.find((v) => v.includes(mcVersion));
|
|
17
|
-
if (!matched) {
|
|
18
|
-
logger.error(`No version found for ${dependency.module_name} matching MC ${mcVersion}`);
|
|
19
|
-
process.exit(1);
|
|
20
|
-
}
|
|
21
|
-
dependency.version = extractModuleVersion(matched);
|
|
22
|
-
logger.log(`${dependency.module_name}: ${matched}`);
|
|
23
|
-
modules.push({ name: dependency.module_name, version: matched });
|
|
24
|
-
}
|
|
25
|
-
updateManifest(manifest);
|
|
26
|
-
logger.log("Module versions fetched and manifest updated.");
|
|
27
|
-
const installSpinner = ora("Installing modules...").start();
|
|
28
|
-
for (let i = 0; i < modules.length; i++) {
|
|
29
|
-
const mod = modules[i];
|
|
30
|
-
installSpinner.text = `Installing modules... (${i + 1}/${modules.length}) ${mod.name}`;
|
|
31
|
-
try {
|
|
32
|
-
installPackage(pm, `${mod.name}@${mod.version}`);
|
|
33
|
-
}
|
|
34
|
-
catch (e) {
|
|
35
|
-
installSpinner.fail(`Failed to install ${mod.name}`);
|
|
36
|
-
logger.error(e instanceof Error ? e.message : String(e));
|
|
37
|
-
process.exit(1);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
installSpinner.succeed("All modules installed successfully.");
|
|
41
|
-
}
|
|
42
|
-
async function getPreviewMinecraftVersion() {
|
|
43
|
-
const versions = await getVersions("@minecraft/server");
|
|
44
|
-
const version = versions.find((v) => v.includes("-preview"));
|
|
45
|
-
if (!version) {
|
|
46
|
-
logger.error("No preview versions found.");
|
|
47
|
-
process.exit(1);
|
|
48
|
-
}
|
|
49
|
-
return extractMcVersion(version);
|
|
50
|
-
}
|
|
51
|
-
//# sourceMappingURL=preview.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"preview.js","sourceRoot":"","sources":["../../src/commands/preview.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC3F,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACnF,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAC;AAE7C,MAAM,CAAC,KAAK,UAAU,OAAO;IACzB,MAAM,OAAO,GAAG,GAAG,CAAC,+BAA+B,CAAC,CAAC,KAAK,EAAE,CAAC;IAE7D,MAAM,SAAS,GAAG,MAAM,0BAA0B,EAAE,CAAC;IACrD,OAAO,CAAC,OAAO,CAAC,0CAA0C,SAAS,EAAE,CAAC,CAAC;IAEvE,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;IAE/D,MAAM,EAAE,GAAG,oBAAoB,EAAE,CAAC;IAMlC,MAAM,OAAO,GAAiB,EAAE,CAAC;IAEjC,KAAK,MAAM,UAAU,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;QAC7C,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;QAE5D,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,MAAM,CAAC,KAAK,CAAC,wBAAwB,UAAU,CAAC,WAAW,gBAAgB,SAAS,EAAE,CAAC,CAAC;YACxF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QAED,UAAU,CAAC,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACnD,MAAM,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,WAAW,KAAK,OAAO,EAAE,CAAC,CAAC;QAEpD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,cAAc,CAAC,QAAQ,CAAC,CAAC;IACzB,MAAM,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IAE5D,MAAM,cAAc,GAAG,GAAG,CAAC,uBAAuB,CAAC,CAAC,KAAK,EAAE,CAAC;IAE5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACvB,cAAc,CAAC,IAAI,GAAG,0BAA0B,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC;QAEvF,IAAI,CAAC;YACD,cAAc,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACrD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,cAAc,CAAC,IAAI,CAAC,qBAAqB,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;YACrD,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;IACL,CAAC;IAED,cAAc,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC;AAClE,CAAC;AAED,KAAK,UAAU,0BAA0B;IACrC,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,mBAAmB,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;IAE7D,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function stable(): Promise<void>;
|
package/dist/commands/stable.js
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import ora from "ora";
|
|
2
|
-
import { getManifest, updateManifest } from "../utils/manifest.js";
|
|
3
|
-
import { getVersions, extractMcVersion, extractModuleVersion } from "../utils/versions.js";
|
|
4
|
-
import { detectPackageManager, installPackage } from "../utils/package-manager.js";
|
|
5
|
-
import * as logger from "../utils/logger.js";
|
|
6
|
-
export async function stable() {
|
|
7
|
-
const spinner = ora("Fetching Minecraft version...").start();
|
|
8
|
-
const mcVersion = await getStableMinecraftVersion();
|
|
9
|
-
spinner.succeed(`Install modules for Minecraft version: ${mcVersion}`);
|
|
10
|
-
const manifest = getManifest();
|
|
11
|
-
logger.log("Manifest loaded. Fetching new module versions...");
|
|
12
|
-
const pm = detectPackageManager();
|
|
13
|
-
const modules = [];
|
|
14
|
-
for (const dependency of manifest.dependencies) {
|
|
15
|
-
const versions = await getVersions(dependency.module_name);
|
|
16
|
-
const matched = versions.find((v) => v.includes(mcVersion));
|
|
17
|
-
if (!matched) {
|
|
18
|
-
logger.error(`No version found for ${dependency.module_name} matching MC ${mcVersion}`);
|
|
19
|
-
process.exit(1);
|
|
20
|
-
}
|
|
21
|
-
dependency.version = extractModuleVersion(matched);
|
|
22
|
-
logger.log(`${dependency.module_name}: ${matched}`);
|
|
23
|
-
modules.push({ name: dependency.module_name, version: matched });
|
|
24
|
-
}
|
|
25
|
-
updateManifest(manifest);
|
|
26
|
-
logger.log("Module versions fetched and manifest updated.");
|
|
27
|
-
const installSpinner = ora("Installing modules...").start();
|
|
28
|
-
for (let i = 0; i < modules.length; i++) {
|
|
29
|
-
const mod = modules[i];
|
|
30
|
-
installSpinner.text = `Installing modules... (${i + 1}/${modules.length}) ${mod.name}`;
|
|
31
|
-
try {
|
|
32
|
-
installPackage(pm, `${mod.name}@${mod.version}`);
|
|
33
|
-
}
|
|
34
|
-
catch (e) {
|
|
35
|
-
installSpinner.fail(`Failed to install ${mod.name}`);
|
|
36
|
-
logger.error(e instanceof Error ? e.message : String(e));
|
|
37
|
-
process.exit(1);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
installSpinner.succeed("All modules installed successfully.");
|
|
41
|
-
}
|
|
42
|
-
async function getStableMinecraftVersion() {
|
|
43
|
-
const versions = await getVersions("@minecraft/server");
|
|
44
|
-
const version = versions.find((v) => v.includes("-stable"));
|
|
45
|
-
if (!version) {
|
|
46
|
-
logger.error("No stable versions found.");
|
|
47
|
-
process.exit(1);
|
|
48
|
-
}
|
|
49
|
-
return extractMcVersion(version);
|
|
50
|
-
}
|
|
51
|
-
//# sourceMappingURL=stable.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stable.js","sourceRoot":"","sources":["../../src/commands/stable.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
DELETED
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACF,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,iDAAiD,CAAC;KAC9D,OAAO,CAAC,OAAO,CAAC;KAChB,QAAQ,CAAC,WAAW,EAAE,uCAAuC,CAAC,CAAC;AAEpE,OAAO;KACF,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,2CAA2C,CAAC;KACxD,MAAM,CAAC,KAAK,IAAI,EAAE;IACf,MAAM,MAAM,EAAE,CAAC;AACnB,CAAC,CAAC,CAAC;AAEP,OAAO;KACF,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,4CAA4C,CAAC;KACzD,MAAM,CAAC,KAAK,IAAI,EAAE;IACf,MAAM,OAAO,EAAE,CAAC;AACpB,CAAC,CAAC,CAAC;AAEP,OAAO;KACF,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,wCAAwC,CAAC;KACrD,MAAM,CAAC,KAAK,IAAI,EAAE;IACf,MAAM,GAAG,EAAE,CAAC;AAChB,CAAC,CAAC,CAAC;AAEP,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,OAA2B,EAAE,EAAE;IACjD,IAAI,OAAO,EAAE,CAAC;QACV,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,IAAI,EAAE,CAAC;IACnB,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
package/dist/utils/logger.d.ts
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export declare function info(message: string): void;
|
|
2
|
-
export declare function log(message: string): void;
|
|
3
|
-
export declare function warn(message: string): void;
|
|
4
|
-
export declare function error(message: string): void;
|
|
5
|
-
export declare function done(message: string): void;
|
package/dist/utils/logger.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import chalk from "chalk";
|
|
2
|
-
export function info(message) {
|
|
3
|
-
console.log(`${chalk.blue("[INFO]")} ${message}`);
|
|
4
|
-
}
|
|
5
|
-
export function log(message) {
|
|
6
|
-
console.log(`${chalk.gray("[LOG]")} ${message}`);
|
|
7
|
-
}
|
|
8
|
-
export function warn(message) {
|
|
9
|
-
console.log(`${chalk.yellow("[WARN]")} ${message}`);
|
|
10
|
-
}
|
|
11
|
-
export function error(message) {
|
|
12
|
-
console.error(`${chalk.red("[ERROR]")} ${message}`);
|
|
13
|
-
}
|
|
14
|
-
export function done(message) {
|
|
15
|
-
console.log(`${chalk.green("[DONE]")} ${message}`);
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=logger.js.map
|
package/dist/utils/logger.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,UAAU,IAAI,CAAC,OAAe;IAChC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,OAAe;IAC/B,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,OAAe;IAChC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,OAAe;IACjC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,OAAe;IAChC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;AACvD,CAAC"}
|
package/dist/utils/manifest.d.ts
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
export interface Manifest {
|
|
2
|
-
format_version: number;
|
|
3
|
-
header: {
|
|
4
|
-
name: string;
|
|
5
|
-
description: string;
|
|
6
|
-
uuid: string;
|
|
7
|
-
version: number[];
|
|
8
|
-
min_engine_version: number[];
|
|
9
|
-
};
|
|
10
|
-
metadata: {
|
|
11
|
-
authors: string[];
|
|
12
|
-
url: string;
|
|
13
|
-
};
|
|
14
|
-
modules: Array<{
|
|
15
|
-
type: string;
|
|
16
|
-
uuid: string;
|
|
17
|
-
version: number[];
|
|
18
|
-
language?: string;
|
|
19
|
-
description?: string;
|
|
20
|
-
entry?: string;
|
|
21
|
-
}>;
|
|
22
|
-
dependencies: Array<{
|
|
23
|
-
module_name: string;
|
|
24
|
-
version: string;
|
|
25
|
-
}>;
|
|
26
|
-
}
|
|
27
|
-
export declare function getManifest(): Manifest;
|
|
28
|
-
export declare function updateManifest(manifest: Manifest): void;
|
package/dist/utils/manifest.js
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import * as fs from "node:fs";
|
|
2
|
-
import * as path from "node:path";
|
|
3
|
-
import { error } from "./logger.js";
|
|
4
|
-
export function getManifest() {
|
|
5
|
-
const manifestPath = path.resolve("manifest.json");
|
|
6
|
-
if (!fs.existsSync(manifestPath)) {
|
|
7
|
-
error("manifest.json not found.");
|
|
8
|
-
process.exit(1);
|
|
9
|
-
}
|
|
10
|
-
const raw = fs.readFileSync(manifestPath, "utf-8");
|
|
11
|
-
return JSON.parse(raw);
|
|
12
|
-
}
|
|
13
|
-
export function updateManifest(manifest) {
|
|
14
|
-
const manifestPath = path.resolve("manifest.json");
|
|
15
|
-
const raw = JSON.stringify(manifest, null, "\t");
|
|
16
|
-
fs.writeFileSync(manifestPath, raw, "utf-8");
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=manifest.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/utils/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AA6BpC,MAAM,UAAU,WAAW;IACvB,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IAEnD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC/B,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACnD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAa,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAAkB;IAC7C,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IACnD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAEjD,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC"}
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import * as fs from "node:fs";
|
|
2
|
-
import * as path from "node:path";
|
|
3
|
-
import { execSync } from "node:child_process";
|
|
4
|
-
import { log } from "./logger.js";
|
|
5
|
-
export function detectPackageManager() {
|
|
6
|
-
const cwd = process.cwd();
|
|
7
|
-
// 1. Check packageManager field in package.json
|
|
8
|
-
const pkgJsonPath = path.resolve(cwd, "package.json");
|
|
9
|
-
if (fs.existsSync(pkgJsonPath)) {
|
|
10
|
-
const pkgJson = JSON.parse(fs.readFileSync(pkgJsonPath, "utf-8"));
|
|
11
|
-
if (pkgJson.packageManager) {
|
|
12
|
-
const name = pkgJson.packageManager.split("@")[0];
|
|
13
|
-
if (isValidPackageManager(name)) {
|
|
14
|
-
log(`Detected package manager from package.json: ${name}`);
|
|
15
|
-
return name;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
// 2. Check lock files
|
|
20
|
-
if (fs.existsSync(path.resolve(cwd, "bun.lockb")) || fs.existsSync(path.resolve(cwd, "bun.lock"))) {
|
|
21
|
-
log("Detected package manager from lock file: bun");
|
|
22
|
-
return "bun";
|
|
23
|
-
}
|
|
24
|
-
if (fs.existsSync(path.resolve(cwd, "pnpm-lock.yaml"))) {
|
|
25
|
-
log("Detected package manager from lock file: pnpm");
|
|
26
|
-
return "pnpm";
|
|
27
|
-
}
|
|
28
|
-
if (fs.existsSync(path.resolve(cwd, "yarn.lock"))) {
|
|
29
|
-
log("Detected package manager from lock file: yarn");
|
|
30
|
-
return "yarn";
|
|
31
|
-
}
|
|
32
|
-
if (fs.existsSync(path.resolve(cwd, "package-lock.json"))) {
|
|
33
|
-
log("Detected package manager from lock file: npm");
|
|
34
|
-
return "npm";
|
|
35
|
-
}
|
|
36
|
-
// 3. Fallback to npm
|
|
37
|
-
log("No lock file found. Defaulting to npm.");
|
|
38
|
-
return "npm";
|
|
39
|
-
}
|
|
40
|
-
function isValidPackageManager(name) {
|
|
41
|
-
return ["npm", "pnpm", "yarn", "bun"].includes(name);
|
|
42
|
-
}
|
|
43
|
-
function getInstallCommand(pm) {
|
|
44
|
-
return pm === "yarn" ? "add" : "install";
|
|
45
|
-
}
|
|
46
|
-
function getExactFlag(pm) {
|
|
47
|
-
switch (pm) {
|
|
48
|
-
case "npm":
|
|
49
|
-
return "--save-exact";
|
|
50
|
-
case "pnpm":
|
|
51
|
-
return "--save-exact";
|
|
52
|
-
case "yarn":
|
|
53
|
-
return "--exact";
|
|
54
|
-
case "bun":
|
|
55
|
-
return "--exact";
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
function getForceFlag(pm) {
|
|
59
|
-
switch (pm) {
|
|
60
|
-
case "npm":
|
|
61
|
-
return "--force";
|
|
62
|
-
case "pnpm":
|
|
63
|
-
return "--force";
|
|
64
|
-
case "yarn":
|
|
65
|
-
return undefined;
|
|
66
|
-
case "bun":
|
|
67
|
-
return "--force";
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
export function installPackage(pm, packageSpec) {
|
|
71
|
-
const cmd = getInstallCommand(pm);
|
|
72
|
-
const exact = getExactFlag(pm);
|
|
73
|
-
const force = getForceFlag(pm);
|
|
74
|
-
const devFlag = pm === "yarn" ? "--dev" : "--save-dev";
|
|
75
|
-
const args = [pm, cmd, packageSpec, devFlag, exact];
|
|
76
|
-
if (force)
|
|
77
|
-
args.push(force);
|
|
78
|
-
const command = args.join(" ");
|
|
79
|
-
execSync(command, { stdio: "pipe", cwd: process.cwd() });
|
|
80
|
-
}
|
|
81
|
-
//# sourceMappingURL=package-manager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"package-manager.js","sourceRoot":"","sources":["../../src/utils/package-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import * as fs from "node:fs";
|
|
2
|
-
import * as path from "node:path";
|
|
3
|
-
import { execSync } from "node:child_process";
|
|
4
|
-
import { log } from "./logger.js";
|
|
5
|
-
export function detectPackageManager() {
|
|
6
|
-
const cwd = process.cwd();
|
|
7
|
-
// 1. Check packageManager field in package.json
|
|
8
|
-
const pkgJsonPath = path.resolve(cwd, "package.json");
|
|
9
|
-
if (fs.existsSync(pkgJsonPath)) {
|
|
10
|
-
const pkgJson = JSON.parse(fs.readFileSync(pkgJsonPath, "utf-8"));
|
|
11
|
-
if (pkgJson.packageManager) {
|
|
12
|
-
const name = pkgJson.packageManager.split("@")[0];
|
|
13
|
-
if (isValidPackageManager(name)) {
|
|
14
|
-
log(`Detected package manager from package.json: ${name}`);
|
|
15
|
-
return name;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
// 2. Check lock files
|
|
20
|
-
if (fs.existsSync(path.resolve(cwd, "bun.lockb")) || fs.existsSync(path.resolve(cwd, "bun.lock"))) {
|
|
21
|
-
log("Detected package manager from lock file: bun");
|
|
22
|
-
return "bun";
|
|
23
|
-
}
|
|
24
|
-
if (fs.existsSync(path.resolve(cwd, "pnpm-lock.yaml"))) {
|
|
25
|
-
log("Detected package manager from lock file: pnpm");
|
|
26
|
-
return "pnpm";
|
|
27
|
-
}
|
|
28
|
-
if (fs.existsSync(path.resolve(cwd, "yarn.lock"))) {
|
|
29
|
-
log("Detected package manager from lock file: yarn");
|
|
30
|
-
return "yarn";
|
|
31
|
-
}
|
|
32
|
-
if (fs.existsSync(path.resolve(cwd, "package-lock.json"))) {
|
|
33
|
-
log("Detected package manager from lock file: npm");
|
|
34
|
-
return "npm";
|
|
35
|
-
}
|
|
36
|
-
// 3. Fallback to npm
|
|
37
|
-
log("No lock file found. Defaulting to npm.");
|
|
38
|
-
return "npm";
|
|
39
|
-
}
|
|
40
|
-
function isValidPackageManager(name) {
|
|
41
|
-
return ["npm", "pnpm", "yarn", "bun"].includes(name);
|
|
42
|
-
}
|
|
43
|
-
function getInstallCommand(pm) {
|
|
44
|
-
return pm === "yarn" ? "add" : "install";
|
|
45
|
-
}
|
|
46
|
-
function getExactFlag(pm) {
|
|
47
|
-
switch (pm) {
|
|
48
|
-
case "npm":
|
|
49
|
-
return "--save-exact";
|
|
50
|
-
case "pnpm":
|
|
51
|
-
return "--save-exact";
|
|
52
|
-
case "yarn":
|
|
53
|
-
return "--exact";
|
|
54
|
-
case "bun":
|
|
55
|
-
return "--exact";
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
function getForceFlag(pm) {
|
|
59
|
-
switch (pm) {
|
|
60
|
-
case "npm":
|
|
61
|
-
return "--force";
|
|
62
|
-
case "pnpm":
|
|
63
|
-
return "--force";
|
|
64
|
-
case "yarn":
|
|
65
|
-
return undefined;
|
|
66
|
-
case "bun":
|
|
67
|
-
return "--force";
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
export function installPackage(pm, packageSpec) {
|
|
71
|
-
const cmd = getInstallCommand(pm);
|
|
72
|
-
const exact = getExactFlag(pm);
|
|
73
|
-
const force = getForceFlag(pm);
|
|
74
|
-
const devFlag = pm === "yarn" ? "--dev" : "--save-dev";
|
|
75
|
-
const args = [pm, cmd, packageSpec, devFlag, exact];
|
|
76
|
-
if (force)
|
|
77
|
-
args.push(force);
|
|
78
|
-
const command = args.join(" ");
|
|
79
|
-
execSync(command, { stdio: "pipe", cwd: process.cwd() });
|
|
80
|
-
}
|
|
81
|
-
//# sourceMappingURL=packageManager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"packageManager.js","sourceRoot":"","sources":["../../src/utils/packageManager.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/versions.d.ts
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export interface VersionInfo {
|
|
2
|
-
versions: string[];
|
|
3
|
-
}
|
|
4
|
-
export declare function getVersions(packageName: string): Promise<string[]>;
|
|
5
|
-
export declare function extractMcVersion(version: string): string;
|
|
6
|
-
export declare function extractModuleVersion(version: string): string;
|
package/dist/utils/versions.js
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
export async function getVersions(packageName) {
|
|
2
|
-
const url = `https://registry.npmjs.org/${packageName}`;
|
|
3
|
-
const response = await fetch(url);
|
|
4
|
-
if (!response.ok) {
|
|
5
|
-
throw new Error(`Failed to fetch versions for ${packageName}: ${response.statusText}`);
|
|
6
|
-
}
|
|
7
|
-
const data = (await response.json());
|
|
8
|
-
const versions = Object.keys(data.versions).reverse();
|
|
9
|
-
versions.sort((a, b) => {
|
|
10
|
-
const priority = (v) => {
|
|
11
|
-
if (v.includes("stable"))
|
|
12
|
-
return 0;
|
|
13
|
-
if (v.includes("preview"))
|
|
14
|
-
return 1;
|
|
15
|
-
return 2;
|
|
16
|
-
};
|
|
17
|
-
return priority(a) - priority(b);
|
|
18
|
-
});
|
|
19
|
-
return versions;
|
|
20
|
-
}
|
|
21
|
-
export function extractMcVersion(version) {
|
|
22
|
-
const firstDash = version.indexOf("-");
|
|
23
|
-
if (firstDash === -1)
|
|
24
|
-
return version;
|
|
25
|
-
const afterDash = version.substring(firstDash);
|
|
26
|
-
const firstDot = afterDash.indexOf(".");
|
|
27
|
-
if (firstDot === -1)
|
|
28
|
-
return version;
|
|
29
|
-
const start = firstDash + firstDot + 1;
|
|
30
|
-
const rest = version.substring(start);
|
|
31
|
-
const nextDash = rest.indexOf("-");
|
|
32
|
-
return nextDash === -1 ? rest : rest.substring(0, nextDash);
|
|
33
|
-
}
|
|
34
|
-
export function extractModuleVersion(version) {
|
|
35
|
-
const firstDash = version.indexOf("-");
|
|
36
|
-
if (firstDash === -1)
|
|
37
|
-
return version;
|
|
38
|
-
const afterDash = version.substring(firstDash);
|
|
39
|
-
const firstDot = afterDash.indexOf(".");
|
|
40
|
-
if (firstDot === -1)
|
|
41
|
-
return version;
|
|
42
|
-
return version.substring(0, firstDash + firstDot);
|
|
43
|
-
}
|
|
44
|
-
//# sourceMappingURL=versions.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"versions.js","sourceRoot":"","sources":["../../src/utils/versions.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,WAAmB;IACjD,MAAM,GAAG,GAAG,8BAA8B,WAAW,EAAE,CAAC;IACxD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;IAElC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,gCAAgC,WAAW,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IAC3F,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA0C,CAAC;IAC9E,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;IAEtD,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACnB,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAE,EAAE;YAC3B,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAAE,OAAO,CAAC,CAAC;YACnC,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAAE,OAAO,CAAC,CAAC;YACpC,OAAO,CAAC,CAAC;QACb,CAAC,CAAC;QACF,OAAO,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC5C,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,SAAS,KAAK,CAAC,CAAC;QAAE,OAAO,OAAO,CAAC;IAErC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACxC,IAAI,QAAQ,KAAK,CAAC,CAAC;QAAE,OAAO,OAAO,CAAC;IAEpC,MAAM,KAAK,GAAG,SAAS,GAAG,QAAQ,GAAG,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACnC,OAAO,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAChD,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,SAAS,KAAK,CAAC,CAAC;QAAE,OAAO,OAAO,CAAC;IAErC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACxC,IAAI,QAAQ,KAAK,CAAC,CAAC;QAAE,OAAO,OAAO,CAAC;IAEpC,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC,CAAC;AACtD,CAAC"}
|