summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authormisskey-release-bot[bot] <157398866+misskey-release-bot[bot]@users.noreply.github.com>2025-12-06 12:22:58 +0000
committerGitHub <noreply@github.com>2025-12-06 12:22:58 +0000
commite40c84f31df0202351c5585d3edbca000846b73b (patch)
tree548eafb27b758c55de2e750a0ef9efbe3f056357 /scripts
parentMerge pull request #16840 from misskey-dev/develop (diff)
parentRelease: 2025.12.0 (diff)
downloadmisskey-e40c84f31df0202351c5585d3edbca000846b73b.tar.gz
misskey-e40c84f31df0202351c5585d3edbca000846b73b.tar.bz2
misskey-e40c84f31df0202351c5585d3edbca000846b73b.zip
Merge pull request #16916 from misskey-dev/develop
Release: 2025.12.0
Diffstat (limited to 'scripts')
-rw-r--r--scripts/build-assets.mjs82
-rw-r--r--scripts/changelog-checker/package-lock.json122
-rw-r--r--scripts/changelog-checker/package.json8
-rw-r--r--scripts/clean-all.js3
-rw-r--r--scripts/clean.js1
-rw-r--r--scripts/dev.mjs18
6 files changed, 91 insertions, 143 deletions
diff --git a/scripts/build-assets.mjs b/scripts/build-assets.mjs
index e610a72380..0cfce02fef 100644
--- a/scripts/build-assets.mjs
+++ b/scripts/build-assets.mjs
@@ -6,14 +6,7 @@
import * as fs from 'node:fs/promises';
import * as path from 'node:path';
import { fileURLToPath } from 'node:url';
-import cssnano from 'cssnano';
import * as yaml from 'js-yaml';
-import postcss from 'postcss';
-import * as terser from 'terser';
-
-import { build as buildLocales } from '../locales/index.js';
-import generateDTS from '../locales/generateDTS.js';
-import meta from '../package.json' with { type: "json" };
import buildTarball from './tarball.mjs';
const configDir = fileURLToPath(new URL('../.config', import.meta.url));
@@ -23,86 +16,19 @@ const configPath = process.env.MISSKEY_CONFIG_YML
? path.resolve(configDir, 'test.yml')
: path.resolve(configDir, 'default.yml');
-let locales = buildLocales();
-
async function loadConfig() {
return fs.readFile(configPath, 'utf-8').then(data => yaml.load(data)).catch(() => null);
}
async function copyFrontendFonts() {
- await fs.cp('./packages/frontend/node_modules/three/examples/fonts', './built/_frontend_dist_/fonts', { dereference: true, recursive: true });
-}
-
-async function copyFrontendLocales() {
- generateDTS();
-
- await fs.mkdir('./built/_frontend_dist_/locales', { recursive: true });
-
- const v = { '_version_': meta.version };
-
- for (const [lang, locale] of Object.entries(locales)) {
- await fs.writeFile(`./built/_frontend_dist_/locales/${lang}.${meta.version}.json`, JSON.stringify({ ...locale, ...v }), 'utf-8');
- }
-}
-
-async function copyBackendViews() {
- await fs.cp('./packages/backend/src/server/web/views', './packages/backend/built/server/web/views', { recursive: true });
-}
-
-async function buildBackendScript() {
- await fs.mkdir('./packages/backend/built/server/web', { recursive: true });
-
- for (const file of [
- './packages/backend/src/server/web/boot.js',
- './packages/backend/src/server/web/boot.embed.js',
- './packages/backend/src/server/web/bios.js',
- './packages/backend/src/server/web/cli.js',
- './packages/backend/src/server/web/error.js',
- ]) {
- let source = await fs.readFile(file, { encoding: 'utf-8' });
- source = source.replaceAll('LANGS', JSON.stringify(Object.keys(locales)));
- const { code } = await terser.minify(source, { toplevel: true });
- await fs.writeFile(`./packages/backend/built/server/web/${path.basename(file)}`, code);
- }
-}
-
-async function buildBackendStyle() {
- await fs.mkdir('./packages/backend/built/server/web', { recursive: true });
-
- for (const file of [
- './packages/backend/src/server/web/style.css',
- './packages/backend/src/server/web/style.embed.css',
- './packages/backend/src/server/web/bios.css',
- './packages/backend/src/server/web/cli.css',
- './packages/backend/src/server/web/error.css'
- ]) {
- const source = await fs.readFile(file, { encoding: 'utf-8' });
- const { css } = await postcss([cssnano({ zindex: false })]).process(source, { from: undefined });
- await fs.writeFile(`./packages/backend/built/server/web/${path.basename(file)}`, css);
- }
+ await fs.cp('./packages/frontend/node_modules/three/examples/fonts', './built/_frontend_dist_/fonts', { dereference: true, recursive: true });
}
async function build() {
- await Promise.all([
- copyFrontendFonts(),
- copyFrontendLocales(),
- copyBackendViews(),
- buildBackendScript(),
- buildBackendStyle(),
+ await Promise.all([
+ copyFrontendFonts(),
loadConfig().then(config => config?.publishTarballInsteadOfProvideRepositoryUrl && buildTarball()),
- ]);
+ ]);
}
await build();
-
-if (process.argv.includes('--watch')) {
- const watcher = fs.watch('./locales');
- for await (const event of watcher) {
- const filename = event.filename?.replaceAll('\\', '/');
- if (/^[a-z]+-[A-Z]+\.yml/.test(filename)) {
- console.log(`update ${filename} ...`)
- locales = buildLocales();
- await copyFrontendLocales()
- }
- }
-}
diff --git a/scripts/changelog-checker/package-lock.json b/scripts/changelog-checker/package-lock.json
index f1d81e447b..cb18038f52 100644
--- a/scripts/changelog-checker/package-lock.json
+++ b/scripts/changelog-checker/package-lock.json
@@ -9,16 +9,16 @@
"version": "1.0.0",
"devDependencies": {
"@types/mdast": "4.0.4",
- "@types/node": "24.9.1",
- "@vitest/coverage-v8": "4.0.10",
+ "@types/node": "24.10.1",
+ "@vitest/coverage-v8": "4.0.14",
"mdast-util-to-string": "4.0.0",
"remark": "15.0.1",
"remark-parse": "11.0.0",
"typescript": "5.9.3",
"unified": "11.0.5",
- "vite": "7.2.2",
+ "vite": "7.2.4",
"vite-node": "5.2.0",
- "vitest": "4.0.10"
+ "vitest": "4.0.14"
}
},
"node_modules/@babel/helper-string-parser": {
@@ -898,9 +898,9 @@
"dev": true
},
"node_modules/@types/node": {
- "version": "24.9.1",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-24.9.1.tgz",
- "integrity": "sha512-QoiaXANRkSXK6p0Duvt56W208du4P9Uye9hWLWgGMDTEoKPhuenzNcC4vGUmrNkiOKTlIrBoyNQYNpSwfEZXSg==",
+ "version": "24.10.1",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.1.tgz",
+ "integrity": "sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ==",
"dev": true,
"license": "MIT",
"peer": true,
@@ -915,21 +915,21 @@
"dev": true
},
"node_modules/@vitest/coverage-v8": {
- "version": "4.0.10",
- "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.0.10.tgz",
- "integrity": "sha512-g+brmtoKa/sAeIohNJnnWhnHtU6GuqqVOSQ4SxDIPcgZWZyhJs5RmF5LpqXs8Kq64lANP+vnbn5JLzhLj/G56g==",
+ "version": "4.0.14",
+ "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.0.14.tgz",
+ "integrity": "sha512-EYHLqN/BY6b47qHH7gtMxAg++saoGmsjWmAq9MlXxAz4M0NcHh9iOyKhBZyU4yxZqOd8Xnqp80/5saeitz4Cng==",
"dev": true,
"license": "MIT",
"dependencies": {
"@bcoe/v8-coverage": "^1.0.2",
- "@vitest/utils": "4.0.10",
+ "@vitest/utils": "4.0.14",
"ast-v8-to-istanbul": "^0.3.8",
- "debug": "^4.4.3",
"istanbul-lib-coverage": "^3.2.2",
"istanbul-lib-report": "^3.0.1",
"istanbul-lib-source-maps": "^5.0.6",
"istanbul-reports": "^3.2.0",
"magicast": "^0.5.1",
+ "obug": "^2.1.1",
"std-env": "^3.10.0",
"tinyrainbow": "^3.0.3"
},
@@ -937,8 +937,8 @@
"url": "https://opencollective.com/vitest"
},
"peerDependencies": {
- "@vitest/browser": "4.0.10",
- "vitest": "4.0.10"
+ "@vitest/browser": "4.0.14",
+ "vitest": "4.0.14"
},
"peerDependenciesMeta": {
"@vitest/browser": {
@@ -947,16 +947,16 @@
}
},
"node_modules/@vitest/expect": {
- "version": "4.0.10",
- "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.0.10.tgz",
- "integrity": "sha512-3QkTX/lK39FBNwARCQRSQr0TP9+ywSdxSX+LgbJ2M1WmveXP72anTbnp2yl5fH+dU6SUmBzNMrDHs80G8G2DZg==",
+ "version": "4.0.14",
+ "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.0.14.tgz",
+ "integrity": "sha512-RHk63V3zvRiYOWAV0rGEBRO820ce17hz7cI2kDmEdfQsBjT2luEKB5tCOc91u1oSQoUOZkSv3ZyzkdkSLD7lKw==",
"dev": true,
"license": "MIT",
"dependencies": {
"@standard-schema/spec": "^1.0.0",
"@types/chai": "^5.2.2",
- "@vitest/spy": "4.0.10",
- "@vitest/utils": "4.0.10",
+ "@vitest/spy": "4.0.14",
+ "@vitest/utils": "4.0.14",
"chai": "^6.2.1",
"tinyrainbow": "^3.0.3"
},
@@ -965,13 +965,13 @@
}
},
"node_modules/@vitest/mocker": {
- "version": "4.0.10",
- "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.0.10.tgz",
- "integrity": "sha512-e2OfdexYkjkg8Hh3L9NVEfbwGXq5IZbDovkf30qW2tOh7Rh9sVtmSr2ztEXOFbymNxS4qjzLXUQIvATvN4B+lg==",
+ "version": "4.0.14",
+ "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.0.14.tgz",
+ "integrity": "sha512-RzS5NujlCzeRPF1MK7MXLiEFpkIXeMdQ+rN3Kk3tDI9j0mtbr7Nmuq67tpkOJQpgyClbOltCXMjLZicJHsH5Cg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@vitest/spy": "4.0.10",
+ "@vitest/spy": "4.0.14",
"estree-walker": "^3.0.3",
"magic-string": "^0.30.21"
},
@@ -992,9 +992,9 @@
}
},
"node_modules/@vitest/pretty-format": {
- "version": "4.0.10",
- "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.0.10.tgz",
- "integrity": "sha512-99EQbpa/zuDnvVjthwz5bH9o8iPefoQZ63WV8+bsRJZNw3qQSvSltfut8yu1Jc9mqOYi7pEbsKxYTi/rjaq6PA==",
+ "version": "4.0.14",
+ "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.0.14.tgz",
+ "integrity": "sha512-SOYPgujB6TITcJxgd3wmsLl+wZv+fy3av2PpiPpsWPZ6J1ySUYfScfpIt2Yv56ShJXR2MOA6q2KjKHN4EpdyRQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1005,13 +1005,13 @@
}
},
"node_modules/@vitest/runner": {
- "version": "4.0.10",
- "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.0.10.tgz",
- "integrity": "sha512-EXU2iSkKvNwtlL8L8doCpkyclw0mc/t4t9SeOnfOFPyqLmQwuceMPA4zJBa6jw0MKsZYbw7kAn+gl7HxrlB8UQ==",
+ "version": "4.0.14",
+ "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.0.14.tgz",
+ "integrity": "sha512-BsAIk3FAqxICqREbX8SetIteT8PiaUL/tgJjmhxJhCsigmzzH8xeadtp7LRnTpCVzvf0ib9BgAfKJHuhNllKLw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@vitest/utils": "4.0.10",
+ "@vitest/utils": "4.0.14",
"pathe": "^2.0.3"
},
"funding": {
@@ -1019,13 +1019,13 @@
}
},
"node_modules/@vitest/snapshot": {
- "version": "4.0.10",
- "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.0.10.tgz",
- "integrity": "sha512-2N4X2ZZl7kZw0qeGdQ41H0KND96L3qX1RgwuCfy6oUsF2ISGD/HpSbmms+CkIOsQmg2kulwfhJ4CI0asnZlvkg==",
+ "version": "4.0.14",
+ "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.0.14.tgz",
+ "integrity": "sha512-aQVBfT1PMzDSA16Y3Fp45a0q8nKexx6N5Amw3MX55BeTeZpoC08fGqEZqVmPcqN0ueZsuUQ9rriPMhZ3Mu19Ag==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@vitest/pretty-format": "4.0.10",
+ "@vitest/pretty-format": "4.0.14",
"magic-string": "^0.30.21",
"pathe": "^2.0.3"
},
@@ -1034,9 +1034,9 @@
}
},
"node_modules/@vitest/spy": {
- "version": "4.0.10",
- "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.0.10.tgz",
- "integrity": "sha512-AsY6sVS8OLb96GV5RoG8B6I35GAbNrC49AO+jNRF9YVGb/g9t+hzNm1H6kD0NDp8tt7VJLs6hb7YMkDXqu03iw==",
+ "version": "4.0.14",
+ "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.0.14.tgz",
+ "integrity": "sha512-JmAZT1UtZooO0tpY3GRyiC/8W7dCs05UOq9rfsUUgEZEdq+DuHLmWhPsrTt0TiW7WYeL/hXpaE07AZ2RCk44hg==",
"dev": true,
"license": "MIT",
"funding": {
@@ -1044,13 +1044,13 @@
}
},
"node_modules/@vitest/utils": {
- "version": "4.0.10",
- "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.0.10.tgz",
- "integrity": "sha512-kOuqWnEwZNtQxMKg3WmPK1vmhZu9WcoX69iwWjVz+jvKTsF1emzsv3eoPcDr6ykA3qP2bsCQE7CwqfNtAVzsmg==",
+ "version": "4.0.14",
+ "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.0.14.tgz",
+ "integrity": "sha512-hLqXZKAWNg8pI+SQXyXxWCTOpA3MvsqcbVeNgSi8x/CSN2wi26dSzn1wrOhmCmFjEvN9p8/kLFRHa6PI8jHazw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@vitest/pretty-format": "4.0.10",
+ "@vitest/pretty-format": "4.0.14",
"tinyrainbow": "^3.0.3"
},
"funding": {
@@ -2341,9 +2341,9 @@
}
},
"node_modules/vite": {
- "version": "7.2.2",
- "resolved": "https://registry.npmjs.org/vite/-/vite-7.2.2.tgz",
- "integrity": "sha512-BxAKBWmIbrDgrokdGZH1IgkIk/5mMHDreLDmCJ0qpyJaAteP8NvMhkwr/ZCQNqNH97bw/dANTE9PDzqwJghfMQ==",
+ "version": "7.2.4",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-7.2.4.tgz",
+ "integrity": "sha512-NL8jTlbo0Tn4dUEXEsUg8KeyG/Lkmc4Fnzb8JXN/Ykm9G4HNImjtABMJgkQoVjOBN/j2WAwDTRytdqJbZsah7w==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2439,24 +2439,24 @@
}
},
"node_modules/vitest": {
- "version": "4.0.10",
- "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.0.10.tgz",
- "integrity": "sha512-2Fqty3MM9CDwOVet/jaQalYlbcjATZwPYGcqpiYQqgQ/dLC7GuHdISKgTYIVF/kaishKxLzleKWWfbSDklyIKg==",
+ "version": "4.0.14",
+ "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.0.14.tgz",
+ "integrity": "sha512-d9B2J9Cm9dN9+6nxMnnNJKJCtcyKfnHj15N6YNJfaFHRLua/d3sRKU9RuKmO9mB0XdFtUizlxfz/VPbd3OxGhw==",
"dev": true,
"license": "MIT",
"peer": true,
"dependencies": {
- "@vitest/expect": "4.0.10",
- "@vitest/mocker": "4.0.10",
- "@vitest/pretty-format": "4.0.10",
- "@vitest/runner": "4.0.10",
- "@vitest/snapshot": "4.0.10",
- "@vitest/spy": "4.0.10",
- "@vitest/utils": "4.0.10",
- "debug": "^4.4.3",
+ "@vitest/expect": "4.0.14",
+ "@vitest/mocker": "4.0.14",
+ "@vitest/pretty-format": "4.0.14",
+ "@vitest/runner": "4.0.14",
+ "@vitest/snapshot": "4.0.14",
+ "@vitest/spy": "4.0.14",
+ "@vitest/utils": "4.0.14",
"es-module-lexer": "^1.7.0",
"expect-type": "^1.2.2",
"magic-string": "^0.30.21",
+ "obug": "^2.1.1",
"pathe": "^2.0.3",
"picomatch": "^4.0.3",
"std-env": "^3.10.0",
@@ -2478,12 +2478,12 @@
},
"peerDependencies": {
"@edge-runtime/vm": "*",
- "@types/debug": "^4.1.12",
+ "@opentelemetry/api": "^1.9.0",
"@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0",
- "@vitest/browser-playwright": "4.0.10",
- "@vitest/browser-preview": "4.0.10",
- "@vitest/browser-webdriverio": "4.0.10",
- "@vitest/ui": "4.0.10",
+ "@vitest/browser-playwright": "4.0.14",
+ "@vitest/browser-preview": "4.0.14",
+ "@vitest/browser-webdriverio": "4.0.14",
+ "@vitest/ui": "4.0.14",
"happy-dom": "*",
"jsdom": "*"
},
@@ -2491,7 +2491,7 @@
"@edge-runtime/vm": {
"optional": true
},
- "@types/debug": {
+ "@opentelemetry/api": {
"optional": true
},
"@types/node": {
diff --git a/scripts/changelog-checker/package.json b/scripts/changelog-checker/package.json
index cbce64611e..3ca43d9001 100644
--- a/scripts/changelog-checker/package.json
+++ b/scripts/changelog-checker/package.json
@@ -10,15 +10,15 @@
},
"devDependencies": {
"@types/mdast": "4.0.4",
- "@types/node": "24.9.1",
- "@vitest/coverage-v8": "4.0.10",
+ "@types/node": "24.10.1",
+ "@vitest/coverage-v8": "4.0.14",
"mdast-util-to-string": "4.0.0",
"remark": "15.0.1",
"remark-parse": "11.0.0",
"typescript": "5.9.3",
"unified": "11.0.5",
- "vite": "7.2.2",
+ "vite": "7.2.4",
"vite-node": "5.2.0",
- "vitest": "4.0.10"
+ "vitest": "4.0.14"
}
}
diff --git a/scripts/clean-all.js b/scripts/clean-all.js
index 5a8f9eba23..839ea3ba1c 100644
--- a/scripts/clean-all.js
+++ b/scripts/clean-all.js
@@ -24,6 +24,9 @@ const fs = require('fs');
fs.rmSync(__dirname + '/../packages/sw/built', { recursive: true, force: true });
fs.rmSync(__dirname + '/../packages/sw/node_modules', { recursive: true, force: true });
+ fs.rmSync(__dirname + '/../packages/i18n/built', { recursive: true, force: true });
+ fs.rmSync(__dirname + '/../packages/i18n/node_modules', { recursive: true, force: true });
+
fs.rmSync(__dirname + '/../packages/misskey-js/built', { recursive: true, force: true });
fs.rmSync(__dirname + '/../packages/misskey-js/node_modules', { recursive: true, force: true });
diff --git a/scripts/clean.js b/scripts/clean.js
index 69a8df76af..5cce8bacab 100644
--- a/scripts/clean.js
+++ b/scripts/clean.js
@@ -11,6 +11,7 @@ const fs = require('fs');
fs.rmSync(__dirname + '/../packages/frontend/built', { recursive: true, force: true });
fs.rmSync(__dirname + '/../packages/frontend-embed/built', { recursive: true, force: true });
fs.rmSync(__dirname + '/../packages/icons-subsetter/built', { recursive: true, force: true });
+ fs.rmSync(__dirname + '/../packages/i18n/built', { recursive: true, force: true });
fs.rmSync(__dirname + '/../packages/sw/built', { recursive: true, force: true });
fs.rmSync(__dirname + '/../packages/misskey-js/built', { recursive: true, force: true });
fs.rmSync(__dirname + '/../packages/misskey-reversi/built', { recursive: true, force: true });
diff --git a/scripts/dev.mjs b/scripts/dev.mjs
index e500510b9e..b54004132a 100644
--- a/scripts/dev.mjs
+++ b/scripts/dev.mjs
@@ -16,6 +16,13 @@ await execa('pnpm', ['clean'], {
stderr: process.stderr,
});
+// アセットのビルドで依存しているので一番最初に必要
+await execa('pnpm', ['--filter', 'i18n', 'build'], {
+ cwd: _dirname + '/../',
+ stdout: process.stdout,
+ stderr: process.stderr,
+});
+
await Promise.all([
execa('pnpm', ['build-pre'], {
cwd: _dirname + '/../',
@@ -38,6 +45,11 @@ await Promise.all([
stdout: process.stdout,
stderr: process.stderr,
}),
+ execa('pnpm', ['--filter', 'misskey-js', 'build'], {
+ cwd: _dirname + '/../',
+ stdout: process.stdout,
+ stderr: process.stderr,
+ }),
]);
execa('pnpm', ['build-pre', '--watch'], {
@@ -88,6 +100,12 @@ execa('pnpm', ['--filter', 'misskey-js', 'watch', '--no-clean'], {
stderr: process.stderr,
});
+execa('pnpm', ['--filter', 'i18n', 'watch', '--no-clean'], {
+ cwd: _dirname + '/../',
+ stdout: process.stdout,
+ stderr: process.stderr,
+});
+
execa('pnpm', ['--filter', 'misskey-reversi', 'watch', '--no-clean'], {
cwd: _dirname + '/../',
stdout: process.stdout,