update deps (#14057)
* wip * locales/index.jsのymlファイル取得ロジックを調節 * regenerate pnpm-lock.yaml * fix(backend): typecheck fails * chore(deps): bump ip-cidr from 4.0.0 to 4.0.1 in /packages/backend * chore: migrate ESLint configs to flat config (#14094) * chore: migrate ESLint configs to flat config * fix: update paths * fix: frontend lint fails * refactor(misskey-js): lint build.js * update deps --------- Co-authored-by: samunohito <46447427+samunohito@users.noreply.github.com> Co-authored-by: zyoshoka <root@zyoshoka.com> Co-authored-by: zyoshoka <107108195+zyoshoka@users.noreply.github.com>
This commit is contained in:
		
							parent
							
								
									f1b1e2a7cc
								
							
						
					
					
						commit
						427648c4b8
					
				
					 40 changed files with 5556 additions and 4411 deletions
				
			
		
							
								
								
									
										4
									
								
								.github/workflows/lint.yml
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.github/workflows/lint.yml
									
										
									
									
										vendored
									
									
								
							| 
						 | 
					@ -10,14 +10,14 @@ on:
 | 
				
			||||||
      - packages/frontend/**
 | 
					      - packages/frontend/**
 | 
				
			||||||
      - packages/sw/**
 | 
					      - packages/sw/**
 | 
				
			||||||
      - packages/misskey-js/**
 | 
					      - packages/misskey-js/**
 | 
				
			||||||
      - packages/shared/.eslintrc.js
 | 
					      - packages/shared/eslint.config.js
 | 
				
			||||||
  pull_request:
 | 
					  pull_request:
 | 
				
			||||||
    paths:
 | 
					    paths:
 | 
				
			||||||
      - packages/backend/**
 | 
					      - packages/backend/**
 | 
				
			||||||
      - packages/frontend/**
 | 
					      - packages/frontend/**
 | 
				
			||||||
      - packages/sw/**
 | 
					      - packages/sw/**
 | 
				
			||||||
      - packages/misskey-js/**
 | 
					      - packages/misskey-js/**
 | 
				
			||||||
      - packages/shared/.eslintrc.js
 | 
					      - packages/shared/eslint.config.js
 | 
				
			||||||
 | 
					
 | 
				
			||||||
jobs:
 | 
					jobs:
 | 
				
			||||||
  pnpm_install:
 | 
					  pnpm_install:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -52,7 +52,11 @@ const primaries = {
 | 
				
			||||||
const clean = (text) => text.replace(new RegExp(String.fromCodePoint(0x08), 'g'), '');
 | 
					const clean = (text) => text.replace(new RegExp(String.fromCodePoint(0x08), 'g'), '');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export function build() {
 | 
					export function build() {
 | 
				
			||||||
	const locales = languages.reduce((a, c) => (a[c] = yaml.load(clean(fs.readFileSync(new URL(`${c}.yml`, import.meta.url), 'utf-8'))) || {}, a), {});
 | 
						// vitestの挙動を調整するため、一度ローカル変数化する必要がある
 | 
				
			||||||
 | 
						// https://github.com/vitest-dev/vitest/issues/3988#issuecomment-1686599577
 | 
				
			||||||
 | 
						// https://github.com/misskey-dev/misskey/pull/14057#issuecomment-2192833785
 | 
				
			||||||
 | 
						const metaUrl = import.meta.url;
 | 
				
			||||||
 | 
						const locales = languages.reduce((a, c) => (a[c] = yaml.load(clean(fs.readFileSync(new URL(`${c}.yml`, metaUrl), 'utf-8'))) || {}, a), {});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// 空文字列が入ることがあり、フォールバックが動作しなくなるのでプロパティごと消す
 | 
						// 空文字列が入ることがあり、フォールバックが動作しなくなるのでプロパティごと消す
 | 
				
			||||||
	const removeEmpty = (obj) => {
 | 
						const removeEmpty = (obj) => {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										20
									
								
								package.json
									
										
									
									
									
								
							
							
						
						
									
										20
									
								
								package.json
									
										
									
									
									
								
							| 
						 | 
					@ -55,20 +55,22 @@
 | 
				
			||||||
		"js-yaml": "4.1.0",
 | 
							"js-yaml": "4.1.0",
 | 
				
			||||||
		"postcss": "8.4.38",
 | 
							"postcss": "8.4.38",
 | 
				
			||||||
		"tar": "6.2.1",
 | 
							"tar": "6.2.1",
 | 
				
			||||||
		"terser": "5.30.3",
 | 
							"terser": "5.31.1",
 | 
				
			||||||
		"typescript": "5.5.2",
 | 
							"typescript": "5.5.3",
 | 
				
			||||||
		"esbuild": "0.20.2",
 | 
							"esbuild": "0.22.0",
 | 
				
			||||||
		"glob": "10.3.12"
 | 
							"glob": "10.3.12"
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	"devDependencies": {
 | 
						"devDependencies": {
 | 
				
			||||||
		"@types/node": "20.12.7",
 | 
							"@misskey-dev/eslint-plugin": "2.0.2",
 | 
				
			||||||
		"@typescript-eslint/eslint-plugin": "7.7.1",
 | 
							"@types/node": "20.14.9",
 | 
				
			||||||
		"@typescript-eslint/parser": "7.7.1",
 | 
							"@typescript-eslint/eslint-plugin": "7.15.0",
 | 
				
			||||||
 | 
							"@typescript-eslint/parser": "7.15.0",
 | 
				
			||||||
		"cross-env": "7.0.3",
 | 
							"cross-env": "7.0.3",
 | 
				
			||||||
		"cypress": "13.7.3",
 | 
							"cypress": "13.13.0",
 | 
				
			||||||
		"eslint": "8.57.0",
 | 
							"eslint": "9.6.0",
 | 
				
			||||||
 | 
							"globals": "15.7.0",
 | 
				
			||||||
		"ncp": "2.0.0",
 | 
							"ncp": "2.0.0",
 | 
				
			||||||
		"start-server-and-test": "2.0.3"
 | 
							"start-server-and-test": "2.0.4"
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	"optionalDependencies": {
 | 
						"optionalDependencies": {
 | 
				
			||||||
		"@tensorflow/tfjs-core": "4.4.0"
 | 
							"@tensorflow/tfjs-core": "4.4.0"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,4 +0,0 @@
 | 
				
			||||||
node_modules
 | 
					 | 
				
			||||||
/built
 | 
					 | 
				
			||||||
/.eslintrc.js
 | 
					 | 
				
			||||||
/@types/**/*
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,32 +0,0 @@
 | 
				
			||||||
module.exports = {
 | 
					 | 
				
			||||||
	parserOptions: {
 | 
					 | 
				
			||||||
		tsconfigRootDir: __dirname,
 | 
					 | 
				
			||||||
		project: ['./tsconfig.json', './test/tsconfig.json'],
 | 
					 | 
				
			||||||
	},
 | 
					 | 
				
			||||||
	extends: [
 | 
					 | 
				
			||||||
		'../shared/.eslintrc.js',
 | 
					 | 
				
			||||||
	],
 | 
					 | 
				
			||||||
	rules: {
 | 
					 | 
				
			||||||
		'import/order': ['warn', {
 | 
					 | 
				
			||||||
			'groups': ['builtin', 'external', 'internal', 'parent', 'sibling', 'index', 'object', 'type'],
 | 
					 | 
				
			||||||
			'pathGroups': [
 | 
					 | 
				
			||||||
				{
 | 
					 | 
				
			||||||
					'pattern': '@/**',
 | 
					 | 
				
			||||||
					'group': 'external',
 | 
					 | 
				
			||||||
					'position': 'after'
 | 
					 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
			],
 | 
					 | 
				
			||||||
		}],
 | 
					 | 
				
			||||||
		'no-restricted-globals': [
 | 
					 | 
				
			||||||
			'error',
 | 
					 | 
				
			||||||
			{
 | 
					 | 
				
			||||||
				'name': '__dirname',
 | 
					 | 
				
			||||||
				'message': 'Not in ESModule. Use `import.meta.url` instead.'
 | 
					 | 
				
			||||||
			},
 | 
					 | 
				
			||||||
			{
 | 
					 | 
				
			||||||
				'name': '__filename',
 | 
					 | 
				
			||||||
				'message': 'Not in ESModule. Use `import.meta.url` instead.'
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
	]
 | 
					 | 
				
			||||||
	},
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
							
								
								
									
										46
									
								
								packages/backend/eslint.config.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								packages/backend/eslint.config.js
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,46 @@
 | 
				
			||||||
 | 
					import tsParser from '@typescript-eslint/parser';
 | 
				
			||||||
 | 
					import sharedConfig from '../shared/eslint.config.js';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default [
 | 
				
			||||||
 | 
						...sharedConfig,
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							ignores: ['**/node_modules', 'built', '@types/**/*'],
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							files: ['**/*.ts', '**/*.tsx'],
 | 
				
			||||||
 | 
							languageOptions: {
 | 
				
			||||||
 | 
								parserOptions: {
 | 
				
			||||||
 | 
									parser: tsParser,
 | 
				
			||||||
 | 
									project: ['./tsconfig.json', './test/tsconfig.json'],
 | 
				
			||||||
 | 
									sourceType: 'module',
 | 
				
			||||||
 | 
									tsconfigRootDir: import.meta.dirname,
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							rules: {
 | 
				
			||||||
 | 
								'import/order': ['warn', {
 | 
				
			||||||
 | 
									groups: [
 | 
				
			||||||
 | 
										'builtin',
 | 
				
			||||||
 | 
										'external',
 | 
				
			||||||
 | 
										'internal',
 | 
				
			||||||
 | 
										'parent',
 | 
				
			||||||
 | 
										'sibling',
 | 
				
			||||||
 | 
										'index',
 | 
				
			||||||
 | 
										'object',
 | 
				
			||||||
 | 
										'type',
 | 
				
			||||||
 | 
									],
 | 
				
			||||||
 | 
									pathGroups: [{
 | 
				
			||||||
 | 
										pattern: '@/**',
 | 
				
			||||||
 | 
										group: 'external',
 | 
				
			||||||
 | 
										position: 'after',
 | 
				
			||||||
 | 
									}],
 | 
				
			||||||
 | 
								}],
 | 
				
			||||||
 | 
								'no-restricted-globals': ['error', {
 | 
				
			||||||
 | 
									name: '__dirname',
 | 
				
			||||||
 | 
									message: 'Not in ESModule. Use `import.meta.url` instead.',
 | 
				
			||||||
 | 
								}, {
 | 
				
			||||||
 | 
									name: '__filename',
 | 
				
			||||||
 | 
									message: 'Not in ESModule. Use `import.meta.url` instead.',
 | 
				
			||||||
 | 
								}],
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					];
 | 
				
			||||||
| 
						 | 
					@ -65,43 +65,43 @@
 | 
				
			||||||
		"utf-8-validate": "6.0.3"
 | 
							"utf-8-validate": "6.0.3"
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	"dependencies": {
 | 
						"dependencies": {
 | 
				
			||||||
		"@aws-sdk/client-s3": "3.412.0",
 | 
							"@aws-sdk/client-s3": "3.600.0",
 | 
				
			||||||
		"@aws-sdk/lib-storage": "3.412.0",
 | 
							"@aws-sdk/lib-storage": "3.600.0",
 | 
				
			||||||
		"@bull-board/api": "5.17.0",
 | 
							"@bull-board/api": "5.20.5",
 | 
				
			||||||
		"@bull-board/fastify": "5.17.0",
 | 
							"@bull-board/fastify": "5.20.5",
 | 
				
			||||||
		"@bull-board/ui": "5.17.0",
 | 
							"@bull-board/ui": "5.20.5",
 | 
				
			||||||
		"@discordapp/twemoji": "15.0.3",
 | 
							"@discordapp/twemoji": "15.0.3",
 | 
				
			||||||
		"@fastify/accepts": "4.3.0",
 | 
							"@fastify/accepts": "4.3.0",
 | 
				
			||||||
		"@fastify/cookie": "9.3.1",
 | 
							"@fastify/cookie": "9.3.1",
 | 
				
			||||||
		"@fastify/cors": "9.0.1",
 | 
							"@fastify/cors": "9.0.1",
 | 
				
			||||||
		"@fastify/express": "3.0.0",
 | 
							"@fastify/express": "3.0.0",
 | 
				
			||||||
		"@fastify/http-proxy": "9.5.0",
 | 
							"@fastify/http-proxy": "9.5.0",
 | 
				
			||||||
		"@fastify/multipart": "8.2.0",
 | 
							"@fastify/multipart": "8.3.0",
 | 
				
			||||||
		"@fastify/static": "7.0.3",
 | 
							"@fastify/static": "7.0.4",
 | 
				
			||||||
		"@fastify/view": "9.1.0",
 | 
							"@fastify/view": "9.1.0",
 | 
				
			||||||
		"@misskey-dev/sharp-read-bmp": "1.2.0",
 | 
							"@misskey-dev/sharp-read-bmp": "1.2.0",
 | 
				
			||||||
		"@misskey-dev/summaly": "5.1.0",
 | 
							"@misskey-dev/summaly": "5.1.0",
 | 
				
			||||||
		"@napi-rs/canvas": "^0.1.52",
 | 
							"@napi-rs/canvas": "^0.1.53",
 | 
				
			||||||
		"@nestjs/common": "10.3.8",
 | 
							"@nestjs/common": "10.3.10",
 | 
				
			||||||
		"@nestjs/core": "10.3.8",
 | 
							"@nestjs/core": "10.3.10",
 | 
				
			||||||
		"@nestjs/testing": "10.3.8",
 | 
							"@nestjs/testing": "10.3.10",
 | 
				
			||||||
		"@peertube/http-signature": "1.7.0",
 | 
							"@peertube/http-signature": "1.7.0",
 | 
				
			||||||
		"@sentry/node": "^8.5.0",
 | 
							"@sentry/node": "8.13.0",
 | 
				
			||||||
		"@sentry/profiling-node": "^8.5.0",
 | 
							"@sentry/profiling-node": "8.13.0",
 | 
				
			||||||
		"@simplewebauthn/server": "10.0.0",
 | 
							"@simplewebauthn/server": "10.0.0",
 | 
				
			||||||
		"@sinonjs/fake-timers": "11.2.2",
 | 
							"@sinonjs/fake-timers": "11.2.2",
 | 
				
			||||||
		"@smithy/node-http-handler": "2.5.0",
 | 
							"@smithy/node-http-handler": "2.5.0",
 | 
				
			||||||
		"@swc/cli": "0.3.12",
 | 
							"@swc/cli": "0.3.12",
 | 
				
			||||||
		"@swc/core": "1.4.17",
 | 
							"@swc/core": "1.6.6",
 | 
				
			||||||
		"@twemoji/parser": "15.1.1",
 | 
							"@twemoji/parser": "15.1.1",
 | 
				
			||||||
		"accepts": "1.3.8",
 | 
							"accepts": "1.3.8",
 | 
				
			||||||
		"ajv": "8.13.0",
 | 
							"ajv": "8.16.0",
 | 
				
			||||||
		"archiver": "7.0.1",
 | 
							"archiver": "7.0.1",
 | 
				
			||||||
		"async-mutex": "0.5.0",
 | 
							"async-mutex": "0.5.0",
 | 
				
			||||||
		"bcryptjs": "2.4.3",
 | 
							"bcryptjs": "2.4.3",
 | 
				
			||||||
		"blurhash": "2.0.5",
 | 
							"blurhash": "2.0.5",
 | 
				
			||||||
		"body-parser": "1.20.2",
 | 
							"body-parser": "1.20.2",
 | 
				
			||||||
		"bullmq": "5.7.8",
 | 
							"bullmq": "5.8.3",
 | 
				
			||||||
		"cacheable-lookup": "7.0.0",
 | 
							"cacheable-lookup": "7.0.0",
 | 
				
			||||||
		"cbor": "9.0.2",
 | 
							"cbor": "9.0.2",
 | 
				
			||||||
		"chalk": "5.3.0",
 | 
							"chalk": "5.3.0",
 | 
				
			||||||
| 
						 | 
					@ -112,27 +112,27 @@
 | 
				
			||||||
		"content-disposition": "0.5.4",
 | 
							"content-disposition": "0.5.4",
 | 
				
			||||||
		"date-fns": "2.30.0",
 | 
							"date-fns": "2.30.0",
 | 
				
			||||||
		"deep-email-validator": "0.1.21",
 | 
							"deep-email-validator": "0.1.21",
 | 
				
			||||||
		"fastify": "4.26.2",
 | 
							"fastify": "4.28.1",
 | 
				
			||||||
		"fastify-raw-body": "4.3.0",
 | 
							"fastify-raw-body": "4.3.0",
 | 
				
			||||||
		"feed": "4.2.2",
 | 
							"feed": "4.2.2",
 | 
				
			||||||
		"file-type": "19.0.0",
 | 
							"file-type": "19.0.0",
 | 
				
			||||||
		"fluent-ffmpeg": "2.1.2",
 | 
							"fluent-ffmpeg": "2.1.3",
 | 
				
			||||||
		"form-data": "4.0.0",
 | 
							"form-data": "4.0.0",
 | 
				
			||||||
		"got": "14.2.1",
 | 
							"got": "14.4.1",
 | 
				
			||||||
		"happy-dom": "10.0.3",
 | 
							"happy-dom": "10.0.3",
 | 
				
			||||||
		"hpagent": "1.2.0",
 | 
							"hpagent": "1.2.0",
 | 
				
			||||||
		"htmlescape": "1.1.1",
 | 
							"htmlescape": "1.1.1",
 | 
				
			||||||
		"http-link-header": "1.1.3",
 | 
							"http-link-header": "1.1.3",
 | 
				
			||||||
		"ioredis": "5.4.1",
 | 
							"ioredis": "5.4.1",
 | 
				
			||||||
		"ip-cidr": "3.1.0",
 | 
							"ip-cidr": "4.0.1",
 | 
				
			||||||
		"ipaddr.js": "2.2.0",
 | 
							"ipaddr.js": "2.2.0",
 | 
				
			||||||
		"is-svg": "5.0.0",
 | 
							"is-svg": "5.0.1",
 | 
				
			||||||
		"js-yaml": "4.1.0",
 | 
							"js-yaml": "4.1.0",
 | 
				
			||||||
		"jsdom": "24.0.0",
 | 
							"jsdom": "24.1.0",
 | 
				
			||||||
		"json5": "2.2.3",
 | 
							"json5": "2.2.3",
 | 
				
			||||||
		"jsonld": "8.3.2",
 | 
							"jsonld": "8.3.2",
 | 
				
			||||||
		"jsrsasign": "11.1.0",
 | 
							"jsrsasign": "11.1.0",
 | 
				
			||||||
		"meilisearch": "0.38.0",
 | 
							"meilisearch": "0.41.0",
 | 
				
			||||||
		"mfm-js": "0.24.0",
 | 
							"mfm-js": "0.24.0",
 | 
				
			||||||
		"microformats-parser": "2.0.2",
 | 
							"microformats-parser": "2.0.2",
 | 
				
			||||||
		"mime-types": "2.1.35",
 | 
							"mime-types": "2.1.35",
 | 
				
			||||||
| 
						 | 
					@ -142,24 +142,24 @@
 | 
				
			||||||
		"nanoid": "5.0.7",
 | 
							"nanoid": "5.0.7",
 | 
				
			||||||
		"nested-property": "4.0.0",
 | 
							"nested-property": "4.0.0",
 | 
				
			||||||
		"node-fetch": "3.3.2",
 | 
							"node-fetch": "3.3.2",
 | 
				
			||||||
		"nodemailer": "6.9.13",
 | 
							"nodemailer": "6.9.14",
 | 
				
			||||||
		"nsfwjs": "2.4.2",
 | 
							"nsfwjs": "2.4.2",
 | 
				
			||||||
		"oauth": "0.10.0",
 | 
							"oauth": "0.10.0",
 | 
				
			||||||
		"oauth2orize": "1.12.0",
 | 
							"oauth2orize": "1.12.0",
 | 
				
			||||||
		"oauth2orize-pkce": "0.1.2",
 | 
							"oauth2orize-pkce": "0.1.2",
 | 
				
			||||||
		"os-utils": "0.0.14",
 | 
							"os-utils": "0.0.14",
 | 
				
			||||||
		"otpauth": "9.2.3",
 | 
							"otpauth": "9.3.1",
 | 
				
			||||||
		"parse5": "7.1.2",
 | 
							"parse5": "7.1.2",
 | 
				
			||||||
		"pg": "8.11.5",
 | 
							"pg": "8.12.0",
 | 
				
			||||||
		"pkce-challenge": "4.1.0",
 | 
							"pkce-challenge": "4.1.0",
 | 
				
			||||||
		"probe-image-size": "7.2.3",
 | 
							"probe-image-size": "7.2.3",
 | 
				
			||||||
		"promise-limit": "2.7.0",
 | 
							"promise-limit": "2.7.0",
 | 
				
			||||||
		"pug": "3.0.2",
 | 
							"pug": "3.0.3",
 | 
				
			||||||
		"punycode": "2.3.1",
 | 
							"punycode": "2.3.1",
 | 
				
			||||||
		"qrcode": "1.5.3",
 | 
							"qrcode": "1.5.3",
 | 
				
			||||||
		"random-seed": "0.3.0",
 | 
							"random-seed": "0.3.0",
 | 
				
			||||||
		"ratelimiter": "3.4.1",
 | 
							"ratelimiter": "3.4.1",
 | 
				
			||||||
		"re2": "1.21.2",
 | 
							"re2": "1.21.3",
 | 
				
			||||||
		"redis-lock": "0.1.4",
 | 
							"redis-lock": "0.1.4",
 | 
				
			||||||
		"reflect-metadata": "0.2.2",
 | 
							"reflect-metadata": "0.2.2",
 | 
				
			||||||
		"rename": "1.0.4",
 | 
							"rename": "1.0.4",
 | 
				
			||||||
| 
						 | 
					@ -167,27 +167,26 @@
 | 
				
			||||||
		"rxjs": "7.8.1",
 | 
							"rxjs": "7.8.1",
 | 
				
			||||||
		"sanitize-html": "2.13.0",
 | 
							"sanitize-html": "2.13.0",
 | 
				
			||||||
		"secure-json-parse": "2.7.0",
 | 
							"secure-json-parse": "2.7.0",
 | 
				
			||||||
		"sharp": "0.33.3",
 | 
							"sharp": "0.33.4",
 | 
				
			||||||
		"slacc": "0.0.10",
 | 
							"slacc": "0.0.10",
 | 
				
			||||||
		"strict-event-emitter-types": "2.0.0",
 | 
							"strict-event-emitter-types": "2.0.0",
 | 
				
			||||||
		"stringz": "2.1.0",
 | 
							"stringz": "2.1.0",
 | 
				
			||||||
		"systeminformation": "5.22.7",
 | 
							"systeminformation": "5.22.11",
 | 
				
			||||||
		"tinycolor2": "1.6.0",
 | 
							"tinycolor2": "1.6.0",
 | 
				
			||||||
		"tmp": "0.2.3",
 | 
							"tmp": "0.2.3",
 | 
				
			||||||
		"tsc-alias": "1.8.8",
 | 
							"tsc-alias": "1.8.10",
 | 
				
			||||||
		"tsconfig-paths": "4.2.0",
 | 
							"tsconfig-paths": "4.2.0",
 | 
				
			||||||
		"typeorm": "0.3.20",
 | 
							"typeorm": "0.3.20",
 | 
				
			||||||
		"typescript": "5.5.2",
 | 
							"typescript": "5.5.3",
 | 
				
			||||||
		"ulid": "2.3.0",
 | 
							"ulid": "2.3.0",
 | 
				
			||||||
		"vary": "1.1.2",
 | 
							"vary": "1.1.2",
 | 
				
			||||||
		"web-push": "3.6.7",
 | 
							"web-push": "3.6.7",
 | 
				
			||||||
		"ws": "8.17.0",
 | 
							"ws": "8.17.1",
 | 
				
			||||||
		"xev": "3.0.2"
 | 
							"xev": "3.0.2"
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	"devDependencies": {
 | 
						"devDependencies": {
 | 
				
			||||||
		"@jest/globals": "29.7.0",
 | 
							"@jest/globals": "29.7.0",
 | 
				
			||||||
		"@misskey-dev/eslint-plugin": "1.0.0",
 | 
							"@nestjs/platform-express": "10.3.10",
 | 
				
			||||||
		"@nestjs/platform-express": "10.3.8",
 | 
					 | 
				
			||||||
		"@simplewebauthn/types": "10.0.0",
 | 
							"@simplewebauthn/types": "10.0.0",
 | 
				
			||||||
		"@swc/jest": "0.2.36",
 | 
							"@swc/jest": "0.2.36",
 | 
				
			||||||
		"@types/accepts": "1.3.7",
 | 
							"@types/accepts": "1.3.7",
 | 
				
			||||||
| 
						 | 
					@ -197,21 +196,21 @@
 | 
				
			||||||
		"@types/color-convert": "2.0.3",
 | 
							"@types/color-convert": "2.0.3",
 | 
				
			||||||
		"@types/content-disposition": "0.5.8",
 | 
							"@types/content-disposition": "0.5.8",
 | 
				
			||||||
		"@types/fluent-ffmpeg": "2.1.24",
 | 
							"@types/fluent-ffmpeg": "2.1.24",
 | 
				
			||||||
		"@types/htmlescape": "^1.1.3",
 | 
							"@types/htmlescape": "1.1.3",
 | 
				
			||||||
		"@types/http-link-header": "1.0.5",
 | 
							"@types/http-link-header": "1.0.7",
 | 
				
			||||||
		"@types/jest": "29.5.12",
 | 
							"@types/jest": "29.5.12",
 | 
				
			||||||
		"@types/js-yaml": "4.0.9",
 | 
							"@types/js-yaml": "4.0.9",
 | 
				
			||||||
		"@types/jsdom": "21.1.6",
 | 
							"@types/jsdom": "21.1.7",
 | 
				
			||||||
		"@types/jsonld": "1.5.13",
 | 
							"@types/jsonld": "1.5.14",
 | 
				
			||||||
		"@types/jsrsasign": "10.5.14",
 | 
							"@types/jsrsasign": "10.5.14",
 | 
				
			||||||
		"@types/mime-types": "2.1.4",
 | 
							"@types/mime-types": "2.1.4",
 | 
				
			||||||
		"@types/ms": "0.7.34",
 | 
							"@types/ms": "0.7.34",
 | 
				
			||||||
		"@types/node": "20.12.7",
 | 
							"@types/node": "20.14.9",
 | 
				
			||||||
		"@types/nodemailer": "6.4.15",
 | 
							"@types/nodemailer": "6.4.15",
 | 
				
			||||||
		"@types/oauth": "0.9.4",
 | 
							"@types/oauth": "0.9.5",
 | 
				
			||||||
		"@types/oauth2orize": "1.11.5",
 | 
							"@types/oauth2orize": "1.11.5",
 | 
				
			||||||
		"@types/oauth2orize-pkce": "0.1.2",
 | 
							"@types/oauth2orize-pkce": "0.1.2",
 | 
				
			||||||
		"@types/pg": "8.11.5",
 | 
							"@types/pg": "8.11.6",
 | 
				
			||||||
		"@types/pug": "2.0.10",
 | 
							"@types/pug": "2.0.10",
 | 
				
			||||||
		"@types/punycode": "2.1.4",
 | 
							"@types/punycode": "2.1.4",
 | 
				
			||||||
		"@types/qrcode": "1.5.5",
 | 
							"@types/qrcode": "1.5.5",
 | 
				
			||||||
| 
						 | 
					@ -227,18 +226,17 @@
 | 
				
			||||||
		"@types/vary": "1.1.3",
 | 
							"@types/vary": "1.1.3",
 | 
				
			||||||
		"@types/web-push": "3.6.3",
 | 
							"@types/web-push": "3.6.3",
 | 
				
			||||||
		"@types/ws": "8.5.10",
 | 
							"@types/ws": "8.5.10",
 | 
				
			||||||
		"@typescript-eslint/eslint-plugin": "7.7.1",
 | 
							"@typescript-eslint/eslint-plugin": "7.15.0",
 | 
				
			||||||
		"@typescript-eslint/parser": "7.7.1",
 | 
							"@typescript-eslint/parser": "7.15.0",
 | 
				
			||||||
		"aws-sdk-client-mock": "3.0.1",
 | 
							"aws-sdk-client-mock": "4.0.1",
 | 
				
			||||||
		"cross-env": "7.0.3",
 | 
							"cross-env": "7.0.3",
 | 
				
			||||||
		"eslint": "8.57.0",
 | 
					 | 
				
			||||||
		"eslint-plugin-import": "2.29.1",
 | 
							"eslint-plugin-import": "2.29.1",
 | 
				
			||||||
		"execa": "8.0.1",
 | 
							"execa": "9.2.0",
 | 
				
			||||||
		"fkill": "^9.0.0",
 | 
							"fkill": "9.0.0",
 | 
				
			||||||
		"jest": "29.7.0",
 | 
							"jest": "29.7.0",
 | 
				
			||||||
		"jest-mock": "29.7.0",
 | 
							"jest-mock": "29.7.0",
 | 
				
			||||||
		"nodemon": "3.1.0",
 | 
							"nodemon": "3.1.4",
 | 
				
			||||||
		"pid-port": "1.0.0",
 | 
							"pid-port": "1.0.0",
 | 
				
			||||||
		"simple-oauth2": "5.0.0"
 | 
							"simple-oauth2": "5.0.1"
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,32 +0,0 @@
 | 
				
			||||||
module.exports = {
 | 
					 | 
				
			||||||
	parserOptions: {
 | 
					 | 
				
			||||||
		tsconfigRootDir: __dirname,
 | 
					 | 
				
			||||||
		project: ['./tsconfig.json'],
 | 
					 | 
				
			||||||
	},
 | 
					 | 
				
			||||||
	extends: [
 | 
					 | 
				
			||||||
		'../../shared/.eslintrc.js',
 | 
					 | 
				
			||||||
	],
 | 
					 | 
				
			||||||
	rules: {
 | 
					 | 
				
			||||||
		'import/order': ['warn', {
 | 
					 | 
				
			||||||
			'groups': ['builtin', 'external', 'internal', 'parent', 'sibling', 'index', 'object', 'type'],
 | 
					 | 
				
			||||||
			'pathGroups': [
 | 
					 | 
				
			||||||
				{
 | 
					 | 
				
			||||||
					'pattern': '@/**',
 | 
					 | 
				
			||||||
					'group': 'external',
 | 
					 | 
				
			||||||
					'position': 'after'
 | 
					 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
			],
 | 
					 | 
				
			||||||
		}],
 | 
					 | 
				
			||||||
		'no-restricted-globals': [
 | 
					 | 
				
			||||||
			'error',
 | 
					 | 
				
			||||||
			{
 | 
					 | 
				
			||||||
				'name': '__dirname',
 | 
					 | 
				
			||||||
				'message': 'Not in ESModule. Use `import.meta.url` instead.'
 | 
					 | 
				
			||||||
			},
 | 
					 | 
				
			||||||
			{
 | 
					 | 
				
			||||||
				'name': '__filename',
 | 
					 | 
				
			||||||
				'message': 'Not in ESModule. Use `import.meta.url` instead.'
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
	]
 | 
					 | 
				
			||||||
	},
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
							
								
								
									
										43
									
								
								packages/backend/test-server/eslint.config.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								packages/backend/test-server/eslint.config.js
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,43 @@
 | 
				
			||||||
 | 
					import tsParser from '@typescript-eslint/parser';
 | 
				
			||||||
 | 
					import sharedConfig from '../../shared/eslint.config.js';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default [
 | 
				
			||||||
 | 
						...sharedConfig,
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							files: ['**/*.ts', '**/*.tsx'],
 | 
				
			||||||
 | 
							languageOptions: {
 | 
				
			||||||
 | 
								parserOptions: {
 | 
				
			||||||
 | 
									parser: tsParser,
 | 
				
			||||||
 | 
									project: ['./tsconfig.json'],
 | 
				
			||||||
 | 
									sourceType: 'module',
 | 
				
			||||||
 | 
									tsconfigRootDir: import.meta.dirname,
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							rules: {
 | 
				
			||||||
 | 
								'import/order': ['warn', {
 | 
				
			||||||
 | 
									groups: [
 | 
				
			||||||
 | 
										'builtin',
 | 
				
			||||||
 | 
										'external',
 | 
				
			||||||
 | 
										'internal',
 | 
				
			||||||
 | 
										'parent',
 | 
				
			||||||
 | 
										'sibling',
 | 
				
			||||||
 | 
										'index',
 | 
				
			||||||
 | 
										'object',
 | 
				
			||||||
 | 
										'type',
 | 
				
			||||||
 | 
									],
 | 
				
			||||||
 | 
									pathGroups: [{
 | 
				
			||||||
 | 
										pattern: '@/**',
 | 
				
			||||||
 | 
										group: 'external',
 | 
				
			||||||
 | 
										position: 'after',
 | 
				
			||||||
 | 
									}],
 | 
				
			||||||
 | 
								}],
 | 
				
			||||||
 | 
								'no-restricted-globals': ['error', {
 | 
				
			||||||
 | 
									name: '__dirname',
 | 
				
			||||||
 | 
									message: 'Not in ESModule. Use `import.meta.url` instead.',
 | 
				
			||||||
 | 
								}, {
 | 
				
			||||||
 | 
									name: '__filename',
 | 
				
			||||||
 | 
									message: 'Not in ESModule. Use `import.meta.url` instead.',
 | 
				
			||||||
 | 
								}],
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					];
 | 
				
			||||||
| 
						 | 
					@ -1,11 +0,0 @@
 | 
				
			||||||
module.exports = {
 | 
					 | 
				
			||||||
	parserOptions: {
 | 
					 | 
				
			||||||
		tsconfigRootDir: __dirname,
 | 
					 | 
				
			||||||
		project: ['./tsconfig.json'],
 | 
					 | 
				
			||||||
	},
 | 
					 | 
				
			||||||
	extends: ['../.eslintrc.cjs'],
 | 
					 | 
				
			||||||
	env: {
 | 
					 | 
				
			||||||
		node: true,
 | 
					 | 
				
			||||||
		jest: true,
 | 
					 | 
				
			||||||
	},
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
							
								
								
									
										22
									
								
								packages/backend/test/eslint.config.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								packages/backend/test/eslint.config.js
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,22 @@
 | 
				
			||||||
 | 
					import globals from 'globals';
 | 
				
			||||||
 | 
					import tsParser from '@typescript-eslint/parser';
 | 
				
			||||||
 | 
					import sharedConfig from '../../shared/eslint.config.js';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default [
 | 
				
			||||||
 | 
						...sharedConfig,
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							files: ['**/*.ts', '**/*.tsx'],
 | 
				
			||||||
 | 
							languageOptions: {
 | 
				
			||||||
 | 
								globals: {
 | 
				
			||||||
 | 
									...globals.node,
 | 
				
			||||||
 | 
									...globals.jest,
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
								parserOptions: {
 | 
				
			||||||
 | 
									parser: tsParser,
 | 
				
			||||||
 | 
									project: ['./tsconfig.json'],
 | 
				
			||||||
 | 
									sourceType: 'module',
 | 
				
			||||||
 | 
									tsconfigRootDir: import.meta.dirname,
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					];
 | 
				
			||||||
| 
						 | 
					@ -1,82 +0,0 @@
 | 
				
			||||||
module.exports = {
 | 
					 | 
				
			||||||
	root: true,
 | 
					 | 
				
			||||||
	env: {
 | 
					 | 
				
			||||||
		'node': false,
 | 
					 | 
				
			||||||
	},
 | 
					 | 
				
			||||||
	parser: 'vue-eslint-parser',
 | 
					 | 
				
			||||||
	parserOptions: {
 | 
					 | 
				
			||||||
		'parser': '@typescript-eslint/parser',
 | 
					 | 
				
			||||||
		tsconfigRootDir: __dirname,
 | 
					 | 
				
			||||||
		project: ['./tsconfig.json'],
 | 
					 | 
				
			||||||
		extraFileExtensions: ['.vue'],
 | 
					 | 
				
			||||||
	},
 | 
					 | 
				
			||||||
	extends: [
 | 
					 | 
				
			||||||
		'../shared/.eslintrc.js',
 | 
					 | 
				
			||||||
		'plugin:vue/vue3-recommended',
 | 
					 | 
				
			||||||
	],
 | 
					 | 
				
			||||||
	rules: {
 | 
					 | 
				
			||||||
		'@typescript-eslint/no-empty-interface': [
 | 
					 | 
				
			||||||
			'error',
 | 
					 | 
				
			||||||
			{
 | 
					 | 
				
			||||||
				'allowSingleExtends': true,
 | 
					 | 
				
			||||||
			},
 | 
					 | 
				
			||||||
		],
 | 
					 | 
				
			||||||
		// window の禁止理由: グローバルスコープと衝突し、予期せぬ結果を招くため
 | 
					 | 
				
			||||||
		// e の禁止理由: error や event など、複数のキーワードの頭文字であり分かりにくいため
 | 
					 | 
				
			||||||
		'id-denylist': ['error', 'window', 'e'],
 | 
					 | 
				
			||||||
		'no-shadow': ['warn'],
 | 
					 | 
				
			||||||
		'vue/attributes-order': ['error', {
 | 
					 | 
				
			||||||
			'alphabetical': false,
 | 
					 | 
				
			||||||
		}],
 | 
					 | 
				
			||||||
		'vue/no-use-v-if-with-v-for': ['error', {
 | 
					 | 
				
			||||||
			'allowUsingIterationVar': false,
 | 
					 | 
				
			||||||
		}],
 | 
					 | 
				
			||||||
		'vue/no-ref-as-operand': 'error',
 | 
					 | 
				
			||||||
		'vue/no-multi-spaces': ['error', {
 | 
					 | 
				
			||||||
			'ignoreProperties': false,
 | 
					 | 
				
			||||||
		}],
 | 
					 | 
				
			||||||
		'vue/no-v-html': 'warn',
 | 
					 | 
				
			||||||
		'vue/order-in-components': 'error',
 | 
					 | 
				
			||||||
		'vue/html-indent': ['warn', 'tab', {
 | 
					 | 
				
			||||||
			'attribute': 1,
 | 
					 | 
				
			||||||
			'baseIndent': 0,
 | 
					 | 
				
			||||||
			'closeBracket': 0,
 | 
					 | 
				
			||||||
			'alignAttributesVertically': true,
 | 
					 | 
				
			||||||
			'ignores': [],
 | 
					 | 
				
			||||||
		}],
 | 
					 | 
				
			||||||
		'vue/html-closing-bracket-spacing': ['warn', {
 | 
					 | 
				
			||||||
			'startTag': 'never',
 | 
					 | 
				
			||||||
			'endTag': 'never',
 | 
					 | 
				
			||||||
			'selfClosingTag': 'never',
 | 
					 | 
				
			||||||
		}],
 | 
					 | 
				
			||||||
		'vue/multi-word-component-names': 'warn',
 | 
					 | 
				
			||||||
		'vue/require-v-for-key': 'warn',
 | 
					 | 
				
			||||||
		'vue/no-unused-components': 'warn',
 | 
					 | 
				
			||||||
		'vue/no-unused-vars': 'warn',
 | 
					 | 
				
			||||||
		'vue/no-dupe-keys': 'warn',
 | 
					 | 
				
			||||||
		'vue/valid-v-for': 'warn',
 | 
					 | 
				
			||||||
		'vue/return-in-computed-property': 'warn',
 | 
					 | 
				
			||||||
		'vue/no-setup-props-reactivity-loss': 'warn',
 | 
					 | 
				
			||||||
		'vue/max-attributes-per-line': 'off',
 | 
					 | 
				
			||||||
		'vue/html-self-closing': 'off',
 | 
					 | 
				
			||||||
		'vue/singleline-html-element-content-newline': 'off',
 | 
					 | 
				
			||||||
		'vue/v-on-event-hyphenation': ['error', 'never', { autofix: true }],
 | 
					 | 
				
			||||||
		'vue/attribute-hyphenation': ['error', 'never'],
 | 
					 | 
				
			||||||
	},
 | 
					 | 
				
			||||||
	globals: {
 | 
					 | 
				
			||||||
		// Node.js
 | 
					 | 
				
			||||||
		'module': false,
 | 
					 | 
				
			||||||
		'require': false,
 | 
					 | 
				
			||||||
		'__dirname': false,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		// Misskey
 | 
					 | 
				
			||||||
		'_DEV_': false,
 | 
					 | 
				
			||||||
		'_LANGS_': false,
 | 
					 | 
				
			||||||
		'_VERSION_': false,
 | 
					 | 
				
			||||||
		'_ENV_': false,
 | 
					 | 
				
			||||||
		'_PERF_PREFIX_': false,
 | 
					 | 
				
			||||||
		'_DATA_TRANSFER_DRIVE_FILE_': false,
 | 
					 | 
				
			||||||
		'_DATA_TRANSFER_DRIVE_FOLDER_': false,
 | 
					 | 
				
			||||||
		'_DATA_TRANSFER_DECK_COLUMN_': false,
 | 
					 | 
				
			||||||
	},
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
							
								
								
									
										95
									
								
								packages/frontend/eslint.config.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										95
									
								
								packages/frontend/eslint.config.js
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,95 @@
 | 
				
			||||||
 | 
					import globals from 'globals';
 | 
				
			||||||
 | 
					import tsParser from '@typescript-eslint/parser';
 | 
				
			||||||
 | 
					import parser from 'vue-eslint-parser';
 | 
				
			||||||
 | 
					import pluginVue from 'eslint-plugin-vue';
 | 
				
			||||||
 | 
					import pluginMisskey from '@misskey-dev/eslint-plugin';
 | 
				
			||||||
 | 
					import sharedConfig from '../shared/eslint.config.js';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default [
 | 
				
			||||||
 | 
						...sharedConfig,
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							files: ['src/**/*.vue'],
 | 
				
			||||||
 | 
							...pluginMisskey.configs.typescript,
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						...pluginVue.configs['flat/recommended'],
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							files: ['src/**/*.{ts,vue}'],
 | 
				
			||||||
 | 
							languageOptions: {
 | 
				
			||||||
 | 
								globals: {
 | 
				
			||||||
 | 
									...Object.fromEntries(Object.entries(globals.node).map(([key]) => [key, 'off'])),
 | 
				
			||||||
 | 
									...globals.browser,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									// Node.js
 | 
				
			||||||
 | 
									module: false,
 | 
				
			||||||
 | 
									require: false,
 | 
				
			||||||
 | 
									__dirname: false,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									// Misskey
 | 
				
			||||||
 | 
									_DEV_: false,
 | 
				
			||||||
 | 
									_LANGS_: false,
 | 
				
			||||||
 | 
									_VERSION_: false,
 | 
				
			||||||
 | 
									_ENV_: false,
 | 
				
			||||||
 | 
									_PERF_PREFIX_: false,
 | 
				
			||||||
 | 
									_DATA_TRANSFER_DRIVE_FILE_: false,
 | 
				
			||||||
 | 
									_DATA_TRANSFER_DRIVE_FOLDER_: false,
 | 
				
			||||||
 | 
									_DATA_TRANSFER_DECK_COLUMN_: false,
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
								parser,
 | 
				
			||||||
 | 
								parserOptions: {
 | 
				
			||||||
 | 
									extraFileExtensions: ['.vue'],
 | 
				
			||||||
 | 
									parser: tsParser,
 | 
				
			||||||
 | 
									project: ['./tsconfig.json'],
 | 
				
			||||||
 | 
									sourceType: 'module',
 | 
				
			||||||
 | 
									tsconfigRootDir: import.meta.dirname,
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							rules: {
 | 
				
			||||||
 | 
								'@typescript-eslint/no-empty-interface': ['error', {
 | 
				
			||||||
 | 
									allowSingleExtends: true,
 | 
				
			||||||
 | 
								}],
 | 
				
			||||||
 | 
								// window の禁止理由: グローバルスコープと衝突し、予期せぬ結果を招くため
 | 
				
			||||||
 | 
								// e の禁止理由: error や event など、複数のキーワードの頭文字であり分かりにくいため
 | 
				
			||||||
 | 
								'id-denylist': ['error', 'window', 'e'],
 | 
				
			||||||
 | 
								'no-shadow': ['warn'],
 | 
				
			||||||
 | 
								'vue/attributes-order': ['error', {
 | 
				
			||||||
 | 
									alphabetical: false,
 | 
				
			||||||
 | 
								}],
 | 
				
			||||||
 | 
								'vue/no-use-v-if-with-v-for': ['error', {
 | 
				
			||||||
 | 
									allowUsingIterationVar: false,
 | 
				
			||||||
 | 
								}],
 | 
				
			||||||
 | 
								'vue/no-ref-as-operand': 'error',
 | 
				
			||||||
 | 
								'vue/no-multi-spaces': ['error', {
 | 
				
			||||||
 | 
									ignoreProperties: false,
 | 
				
			||||||
 | 
								}],
 | 
				
			||||||
 | 
								'vue/no-v-html': 'warn',
 | 
				
			||||||
 | 
								'vue/order-in-components': 'error',
 | 
				
			||||||
 | 
								'vue/html-indent': ['warn', 'tab', {
 | 
				
			||||||
 | 
									attribute: 1,
 | 
				
			||||||
 | 
									baseIndent: 0,
 | 
				
			||||||
 | 
									closeBracket: 0,
 | 
				
			||||||
 | 
									alignAttributesVertically: true,
 | 
				
			||||||
 | 
									ignores: [],
 | 
				
			||||||
 | 
								}],
 | 
				
			||||||
 | 
								'vue/html-closing-bracket-spacing': ['warn', {
 | 
				
			||||||
 | 
									startTag: 'never',
 | 
				
			||||||
 | 
									endTag: 'never',
 | 
				
			||||||
 | 
									selfClosingTag: 'never',
 | 
				
			||||||
 | 
								}],
 | 
				
			||||||
 | 
								'vue/multi-word-component-names': 'warn',
 | 
				
			||||||
 | 
								'vue/require-v-for-key': 'warn',
 | 
				
			||||||
 | 
								'vue/no-unused-components': 'warn',
 | 
				
			||||||
 | 
								'vue/no-unused-vars': 'warn',
 | 
				
			||||||
 | 
								'vue/no-dupe-keys': 'warn',
 | 
				
			||||||
 | 
								'vue/valid-v-for': 'warn',
 | 
				
			||||||
 | 
								'vue/return-in-computed-property': 'warn',
 | 
				
			||||||
 | 
								'vue/no-setup-props-reactivity-loss': 'warn',
 | 
				
			||||||
 | 
								'vue/max-attributes-per-line': 'off',
 | 
				
			||||||
 | 
								'vue/html-self-closing': 'off',
 | 
				
			||||||
 | 
								'vue/singleline-html-element-content-newline': 'off',
 | 
				
			||||||
 | 
								'vue/v-on-event-hyphenation': ['error', 'never', {
 | 
				
			||||||
 | 
									autofix: true,
 | 
				
			||||||
 | 
								}],
 | 
				
			||||||
 | 
								'vue/attribute-hyphenation': ['error', 'never'],
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					];
 | 
				
			||||||
| 
						 | 
					@ -22,24 +22,24 @@
 | 
				
			||||||
		"@mcaptcha/vanilla-glue": "0.1.0-alpha-3",
 | 
							"@mcaptcha/vanilla-glue": "0.1.0-alpha-3",
 | 
				
			||||||
		"@misskey-dev/browser-image-resizer": "2024.1.0",
 | 
							"@misskey-dev/browser-image-resizer": "2024.1.0",
 | 
				
			||||||
		"@rollup/plugin-json": "6.1.0",
 | 
							"@rollup/plugin-json": "6.1.0",
 | 
				
			||||||
		"@rollup/plugin-replace": "5.0.5",
 | 
							"@rollup/plugin-replace": "5.0.7",
 | 
				
			||||||
		"@rollup/pluginutils": "5.1.0",
 | 
							"@rollup/pluginutils": "5.1.0",
 | 
				
			||||||
		"@syuilo/aiscript": "0.18.0",
 | 
							"@syuilo/aiscript": "0.18.0",
 | 
				
			||||||
		"@tabler/icons-webfont": "3.3.0",
 | 
							"@tabler/icons-webfont": "3.3.0",
 | 
				
			||||||
		"@twemoji/parser": "15.1.1",
 | 
							"@twemoji/parser": "15.1.1",
 | 
				
			||||||
		"@vitejs/plugin-vue": "5.0.4",
 | 
							"@vitejs/plugin-vue": "5.0.5",
 | 
				
			||||||
		"@vue/compiler-sfc": "3.4.26",
 | 
							"@vue/compiler-sfc": "3.4.31",
 | 
				
			||||||
		"aiscript-vscode": "github:aiscript-dev/aiscript-vscode#v0.1.9",
 | 
							"aiscript-vscode": "github:aiscript-dev/aiscript-vscode#v0.1.9",
 | 
				
			||||||
		"astring": "1.8.6",
 | 
							"astring": "1.8.6",
 | 
				
			||||||
		"broadcast-channel": "7.0.0",
 | 
							"broadcast-channel": "7.0.0",
 | 
				
			||||||
		"buraha": "0.0.1",
 | 
							"buraha": "0.0.1",
 | 
				
			||||||
		"canvas-confetti": "1.9.3",
 | 
							"canvas-confetti": "1.9.3",
 | 
				
			||||||
		"chart.js": "4.4.2",
 | 
							"chart.js": "4.4.3",
 | 
				
			||||||
		"chartjs-adapter-date-fns": "3.0.0",
 | 
							"chartjs-adapter-date-fns": "3.0.0",
 | 
				
			||||||
		"chartjs-chart-matrix": "2.0.1",
 | 
							"chartjs-chart-matrix": "2.0.1",
 | 
				
			||||||
		"chartjs-plugin-gradient": "0.6.1",
 | 
							"chartjs-plugin-gradient": "0.6.1",
 | 
				
			||||||
		"chartjs-plugin-zoom": "2.0.1",
 | 
							"chartjs-plugin-zoom": "2.0.1",
 | 
				
			||||||
		"chromatic": "11.3.0",
 | 
							"chromatic": "11.5.4",
 | 
				
			||||||
		"compare-versions": "6.1.0",
 | 
							"compare-versions": "6.1.0",
 | 
				
			||||||
		"cropperjs": "2.0.0-beta.5",
 | 
							"cropperjs": "2.0.0-beta.5",
 | 
				
			||||||
		"date-fns": "2.30.0",
 | 
							"date-fns": "2.30.0",
 | 
				
			||||||
| 
						 | 
					@ -55,89 +55,87 @@
 | 
				
			||||||
		"misskey-bubble-game": "workspace:*",
 | 
							"misskey-bubble-game": "workspace:*",
 | 
				
			||||||
		"misskey-js": "workspace:*",
 | 
							"misskey-js": "workspace:*",
 | 
				
			||||||
		"misskey-reversi": "workspace:*",
 | 
							"misskey-reversi": "workspace:*",
 | 
				
			||||||
		"photoswipe": "5.4.3",
 | 
							"photoswipe": "5.4.4",
 | 
				
			||||||
		"punycode": "2.3.1",
 | 
							"punycode": "2.3.1",
 | 
				
			||||||
		"rollup": "4.17.2",
 | 
							"rollup": "4.18.0",
 | 
				
			||||||
		"sanitize-html": "2.13.0",
 | 
							"sanitize-html": "2.13.0",
 | 
				
			||||||
		"sass": "1.76.0",
 | 
							"sass": "1.77.6",
 | 
				
			||||||
		"shiki": "1.4.0",
 | 
							"shiki": "1.10.0",
 | 
				
			||||||
		"strict-event-emitter-types": "2.0.0",
 | 
							"strict-event-emitter-types": "2.0.0",
 | 
				
			||||||
		"textarea-caret": "3.1.0",
 | 
							"textarea-caret": "3.1.0",
 | 
				
			||||||
		"three": "0.164.1",
 | 
							"three": "0.165.0",
 | 
				
			||||||
		"throttle-debounce": "5.0.0",
 | 
							"throttle-debounce": "5.0.2",
 | 
				
			||||||
		"tinycolor2": "1.6.0",
 | 
							"tinycolor2": "1.6.0",
 | 
				
			||||||
		"tsc-alias": "1.8.8",
 | 
							"tsc-alias": "1.8.10",
 | 
				
			||||||
		"tsconfig-paths": "4.2.0",
 | 
							"tsconfig-paths": "4.2.0",
 | 
				
			||||||
		"typescript": "5.5.2",
 | 
							"typescript": "5.5.3",
 | 
				
			||||||
		"uuid": "9.0.1",
 | 
							"uuid": "10.0.0",
 | 
				
			||||||
		"v-code-diff": "1.11.0",
 | 
							"v-code-diff": "1.12.0",
 | 
				
			||||||
		"vite": "5.2.11",
 | 
							"vite": "5.3.2",
 | 
				
			||||||
		"vue": "3.4.26",
 | 
							"vue": "3.4.31",
 | 
				
			||||||
		"vuedraggable": "next"
 | 
							"vuedraggable": "next"
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	"devDependencies": {
 | 
						"devDependencies": {
 | 
				
			||||||
		"@misskey-dev/eslint-plugin": "1.0.0",
 | 
					 | 
				
			||||||
		"@misskey-dev/summaly": "5.1.0",
 | 
							"@misskey-dev/summaly": "5.1.0",
 | 
				
			||||||
		"@storybook/addon-actions": "8.0.9",
 | 
							"@storybook/addon-actions": "8.1.11",
 | 
				
			||||||
		"@storybook/addon-essentials": "8.0.9",
 | 
							"@storybook/addon-essentials": "8.1.11",
 | 
				
			||||||
		"@storybook/addon-interactions": "8.0.9",
 | 
							"@storybook/addon-interactions": "8.1.11",
 | 
				
			||||||
		"@storybook/addon-links": "8.0.9",
 | 
							"@storybook/addon-links": "8.1.11",
 | 
				
			||||||
		"@storybook/addon-mdx-gfm": "8.0.9",
 | 
							"@storybook/addon-mdx-gfm": "8.1.11",
 | 
				
			||||||
		"@storybook/addon-storysource": "8.0.9",
 | 
							"@storybook/addon-storysource": "8.1.11",
 | 
				
			||||||
		"@storybook/blocks": "8.0.9",
 | 
							"@storybook/blocks": "8.1.11",
 | 
				
			||||||
		"@storybook/components": "8.0.9",
 | 
							"@storybook/components": "8.1.11",
 | 
				
			||||||
		"@storybook/core-events": "8.0.9",
 | 
							"@storybook/core-events": "8.1.11",
 | 
				
			||||||
		"@storybook/manager-api": "8.0.9",
 | 
							"@storybook/manager-api": "8.1.11",
 | 
				
			||||||
		"@storybook/preview-api": "8.0.9",
 | 
							"@storybook/preview-api": "8.1.11",
 | 
				
			||||||
		"@storybook/react": "8.0.9",
 | 
							"@storybook/react": "8.1.11",
 | 
				
			||||||
		"@storybook/react-vite": "8.0.9",
 | 
							"@storybook/react-vite": "8.1.11",
 | 
				
			||||||
		"@storybook/test": "8.0.9",
 | 
							"@storybook/test": "8.1.11",
 | 
				
			||||||
		"@storybook/theming": "8.0.9",
 | 
							"@storybook/theming": "8.1.11",
 | 
				
			||||||
		"@storybook/types": "8.0.9",
 | 
							"@storybook/types": "8.1.11",
 | 
				
			||||||
		"@storybook/vue3": "8.0.9",
 | 
							"@storybook/vue3": "8.1.11",
 | 
				
			||||||
		"@storybook/vue3-vite": "8.0.9",
 | 
							"@storybook/vue3-vite": "8.1.11",
 | 
				
			||||||
		"@testing-library/vue": "8.0.3",
 | 
							"@testing-library/vue": "8.1.0",
 | 
				
			||||||
		"@types/escape-regexp": "0.0.3",
 | 
							"@types/escape-regexp": "0.0.3",
 | 
				
			||||||
		"@types/estree": "1.0.5",
 | 
							"@types/estree": "1.0.5",
 | 
				
			||||||
		"@types/matter-js": "0.19.6",
 | 
							"@types/matter-js": "0.19.6",
 | 
				
			||||||
		"@types/micromatch": "4.0.7",
 | 
							"@types/micromatch": "4.0.9",
 | 
				
			||||||
		"@types/node": "20.12.7",
 | 
							"@types/node": "20.14.9",
 | 
				
			||||||
		"@types/punycode": "2.1.4",
 | 
							"@types/punycode": "2.1.4",
 | 
				
			||||||
		"@types/sanitize-html": "2.11.0",
 | 
							"@types/sanitize-html": "2.11.0",
 | 
				
			||||||
		"@types/seedrandom": "3.0.8",
 | 
							"@types/seedrandom": "3.0.8",
 | 
				
			||||||
		"@types/throttle-debounce": "5.0.2",
 | 
							"@types/throttle-debounce": "5.0.2",
 | 
				
			||||||
		"@types/tinycolor2": "1.4.6",
 | 
							"@types/tinycolor2": "1.4.6",
 | 
				
			||||||
		"@types/uuid": "9.0.8",
 | 
							"@types/uuid": "10.0.0",
 | 
				
			||||||
		"@types/ws": "8.5.10",
 | 
							"@types/ws": "8.5.10",
 | 
				
			||||||
		"@typescript-eslint/eslint-plugin": "7.7.1",
 | 
							"@typescript-eslint/eslint-plugin": "7.15.0",
 | 
				
			||||||
		"@typescript-eslint/parser": "7.7.1",
 | 
							"@typescript-eslint/parser": "7.15.0",
 | 
				
			||||||
		"@vitest/coverage-v8": "0.34.6",
 | 
							"@vitest/coverage-v8": "1.6.0",
 | 
				
			||||||
		"@vue/runtime-core": "3.4.26",
 | 
							"@vue/runtime-core": "3.4.31",
 | 
				
			||||||
		"acorn": "8.11.3",
 | 
							"acorn": "8.12.0",
 | 
				
			||||||
		"cross-env": "7.0.3",
 | 
							"cross-env": "7.0.3",
 | 
				
			||||||
		"cypress": "13.8.1",
 | 
							"cypress": "13.13.0",
 | 
				
			||||||
		"eslint": "8.57.0",
 | 
					 | 
				
			||||||
		"eslint-plugin-import": "2.29.1",
 | 
							"eslint-plugin-import": "2.29.1",
 | 
				
			||||||
		"eslint-plugin-vue": "9.25.0",
 | 
							"eslint-plugin-vue": "9.26.0",
 | 
				
			||||||
		"fast-glob": "3.3.2",
 | 
							"fast-glob": "3.3.2",
 | 
				
			||||||
		"happy-dom": "10.0.3",
 | 
							"happy-dom": "10.0.3",
 | 
				
			||||||
		"intersection-observer": "0.12.2",
 | 
							"intersection-observer": "0.12.2",
 | 
				
			||||||
		"micromatch": "4.0.5",
 | 
							"micromatch": "4.0.7",
 | 
				
			||||||
		"msw": "2.2.14",
 | 
							"msw": "2.3.1",
 | 
				
			||||||
		"msw-storybook-addon": "2.0.1",
 | 
							"msw-storybook-addon": "2.0.2",
 | 
				
			||||||
		"nodemon": "3.1.0",
 | 
							"nodemon": "3.1.4",
 | 
				
			||||||
		"prettier": "3.2.5",
 | 
							"prettier": "3.3.2",
 | 
				
			||||||
		"react": "18.3.1",
 | 
							"react": "18.3.1",
 | 
				
			||||||
		"react-dom": "18.3.1",
 | 
							"react-dom": "18.3.1",
 | 
				
			||||||
		"seedrandom": "3.0.5",
 | 
							"seedrandom": "3.0.5",
 | 
				
			||||||
		"start-server-and-test": "2.0.3",
 | 
							"start-server-and-test": "2.0.4",
 | 
				
			||||||
		"storybook": "8.0.9",
 | 
							"storybook": "8.1.11",
 | 
				
			||||||
		"storybook-addon-misskey-theme": "github:misskey-dev/storybook-addon-misskey-theme",
 | 
							"storybook-addon-misskey-theme": "github:misskey-dev/storybook-addon-misskey-theme",
 | 
				
			||||||
		"vite-plugin-turbosnap": "1.0.3",
 | 
							"vite-plugin-turbosnap": "1.0.3",
 | 
				
			||||||
		"vitest": "0.34.6",
 | 
							"vitest": "1.6.0",
 | 
				
			||||||
		"vitest-fetch-mock": "0.2.2",
 | 
							"vitest-fetch-mock": "0.2.2",
 | 
				
			||||||
		"vue-component-type-helpers": "2.0.16",
 | 
							"vue-component-type-helpers": "2.0.24",
 | 
				
			||||||
		"vue-eslint-parser": "9.4.2",
 | 
							"vue-eslint-parser": "9.4.3",
 | 
				
			||||||
		"vue-tsc": "2.0.16"
 | 
							"vue-tsc": "2.0.24"
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -44,7 +44,6 @@
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	"compileOnSave": false,
 | 
						"compileOnSave": false,
 | 
				
			||||||
	"include": [
 | 
						"include": [
 | 
				
			||||||
		".eslintrc.js",
 | 
					 | 
				
			||||||
		"./**/*.ts",
 | 
							"./**/*.ts",
 | 
				
			||||||
		"./**/*.vue"
 | 
							"./**/*.vue"
 | 
				
			||||||
	],
 | 
						],
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +0,0 @@
 | 
				
			||||||
node_modules
 | 
					 | 
				
			||||||
/built
 | 
					 | 
				
			||||||
/coverage
 | 
					 | 
				
			||||||
/.eslintrc.js
 | 
					 | 
				
			||||||
/jest.config.ts
 | 
					 | 
				
			||||||
/test
 | 
					 | 
				
			||||||
/test-d
 | 
					 | 
				
			||||||
build.js
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,9 +0,0 @@
 | 
				
			||||||
module.exports = {
 | 
					 | 
				
			||||||
	parserOptions: {
 | 
					 | 
				
			||||||
		tsconfigRootDir: __dirname,
 | 
					 | 
				
			||||||
		project: ['./tsconfig.json'],
 | 
					 | 
				
			||||||
	},
 | 
					 | 
				
			||||||
	extends: [
 | 
					 | 
				
			||||||
		'../shared/.eslintrc.js',
 | 
					 | 
				
			||||||
	],
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
							
								
								
									
										27
									
								
								packages/misskey-bubble-game/eslint.config.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								packages/misskey-bubble-game/eslint.config.js
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,27 @@
 | 
				
			||||||
 | 
					import tsParser from '@typescript-eslint/parser';
 | 
				
			||||||
 | 
					import sharedConfig from '../shared/eslint.config.js';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default [
 | 
				
			||||||
 | 
						...sharedConfig,
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							ignores: [
 | 
				
			||||||
 | 
								'**/node_modules',
 | 
				
			||||||
 | 
								'built',
 | 
				
			||||||
 | 
								'coverage',
 | 
				
			||||||
 | 
								'jest.config.ts',
 | 
				
			||||||
 | 
								'test',
 | 
				
			||||||
 | 
								'test-d',
 | 
				
			||||||
 | 
							],
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							files: ['**/*.ts', '**/*.tsx'],
 | 
				
			||||||
 | 
							languageOptions: {
 | 
				
			||||||
 | 
								parserOptions: {
 | 
				
			||||||
 | 
									parser: tsParser,
 | 
				
			||||||
 | 
									project: ['./tsconfig.json'],
 | 
				
			||||||
 | 
									sourceType: 'module',
 | 
				
			||||||
 | 
									tsconfigRootDir: import.meta.dirname,
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					];
 | 
				
			||||||
| 
						 | 
					@ -17,18 +17,16 @@
 | 
				
			||||||
	"scripts": {
 | 
						"scripts": {
 | 
				
			||||||
		"build": "node ./build.js",
 | 
							"build": "node ./build.js",
 | 
				
			||||||
		"watch": "nodemon -w package.json -e json --exec \"node ./build.js --watch\"",
 | 
							"watch": "nodemon -w package.json -e json --exec \"node ./build.js --watch\"",
 | 
				
			||||||
		"eslint": "eslint . --ext .js,.jsx,.ts,.tsx",
 | 
							"eslint": "eslint './**/*.{js,jsx,ts,tsx}'",
 | 
				
			||||||
		"typecheck": "tsc --noEmit",
 | 
							"typecheck": "tsc --noEmit",
 | 
				
			||||||
		"lint": "pnpm typecheck && pnpm eslint"
 | 
							"lint": "pnpm typecheck && pnpm eslint"
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	"devDependencies": {
 | 
						"devDependencies": {
 | 
				
			||||||
		"@misskey-dev/eslint-plugin": "1.0.0",
 | 
					 | 
				
			||||||
		"@types/matter-js": "0.19.6",
 | 
							"@types/matter-js": "0.19.6",
 | 
				
			||||||
		"@types/seedrandom": "3.0.8",
 | 
							"@types/seedrandom": "3.0.8",
 | 
				
			||||||
		"@types/node": "20.11.5",
 | 
							"@types/node": "20.11.5",
 | 
				
			||||||
		"@typescript-eslint/eslint-plugin": "7.1.0",
 | 
							"@typescript-eslint/eslint-plugin": "7.1.0",
 | 
				
			||||||
		"@typescript-eslint/parser": "7.1.0",
 | 
							"@typescript-eslint/parser": "7.1.0",
 | 
				
			||||||
		"eslint": "8.57.0",
 | 
					 | 
				
			||||||
		"nodemon": "3.0.2",
 | 
							"nodemon": "3.0.2",
 | 
				
			||||||
		"execa": "8.0.1",
 | 
							"execa": "8.0.1",
 | 
				
			||||||
		"typescript": "5.3.3",
 | 
							"typescript": "5.3.3",
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +0,0 @@
 | 
				
			||||||
node_modules
 | 
					 | 
				
			||||||
/built
 | 
					 | 
				
			||||||
/coverage
 | 
					 | 
				
			||||||
/.eslintrc.js
 | 
					 | 
				
			||||||
/jest.config.ts
 | 
					 | 
				
			||||||
/test
 | 
					 | 
				
			||||||
/test-d
 | 
					 | 
				
			||||||
build.js
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,9 +0,0 @@
 | 
				
			||||||
module.exports = {
 | 
					 | 
				
			||||||
	parserOptions: {
 | 
					 | 
				
			||||||
		tsconfigRootDir: __dirname,
 | 
					 | 
				
			||||||
		project: ['./tsconfig.json'],
 | 
					 | 
				
			||||||
	},
 | 
					 | 
				
			||||||
	extends: [
 | 
					 | 
				
			||||||
		'../shared/.eslintrc.js',
 | 
					 | 
				
			||||||
	],
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,32 +1,32 @@
 | 
				
			||||||
import * as esbuild from "esbuild";
 | 
					import fs from 'node:fs';
 | 
				
			||||||
import { build } from "esbuild";
 | 
					import { fileURLToPath } from 'node:url';
 | 
				
			||||||
import { globSync } from "glob";
 | 
					import { dirname } from 'node:path';
 | 
				
			||||||
import { execa } from "execa";
 | 
					import * as esbuild from 'esbuild';
 | 
				
			||||||
import fs from "node:fs";
 | 
					import { build } from 'esbuild';
 | 
				
			||||||
import { fileURLToPath } from "node:url";
 | 
					import { globSync } from 'glob';
 | 
				
			||||||
import { dirname } from "node:path";
 | 
					import { execa } from 'execa';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const _filename = fileURLToPath(import.meta.url);
 | 
					const _filename = fileURLToPath(import.meta.url);
 | 
				
			||||||
const _dirname = dirname(_filename);
 | 
					const _dirname = dirname(_filename);
 | 
				
			||||||
const _package = JSON.parse(fs.readFileSync(_dirname + '/package.json', 'utf-8'));
 | 
					const _package = JSON.parse(fs.readFileSync(_dirname + '/package.json', 'utf-8'));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const entryPoints = globSync("./src/**/**.{ts,tsx}");
 | 
					const entryPoints = globSync('./src/**/**.{ts,tsx}');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/** @type {import('esbuild').BuildOptions} */
 | 
					/** @type {import('esbuild').BuildOptions} */
 | 
				
			||||||
const options = {
 | 
					const options = {
 | 
				
			||||||
	entryPoints,
 | 
						entryPoints,
 | 
				
			||||||
	minify: process.env.NODE_ENV === 'production',
 | 
						minify: process.env.NODE_ENV === 'production',
 | 
				
			||||||
	outdir: "./built",
 | 
						outdir: './built',
 | 
				
			||||||
	target: "es2022",
 | 
						target: 'es2022',
 | 
				
			||||||
	platform: "browser",
 | 
						platform: 'browser',
 | 
				
			||||||
	format: "esm",
 | 
						format: 'esm',
 | 
				
			||||||
	sourcemap: 'linked',
 | 
						sourcemap: 'linked',
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// built配下をすべて削除する
 | 
					// built配下をすべて削除する
 | 
				
			||||||
fs.rmSync('./built', { recursive: true, force: true });
 | 
					fs.rmSync('./built', { recursive: true, force: true });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if (process.argv.map(arg => arg.toLowerCase()).includes("--watch")) {
 | 
					if (process.argv.map(arg => arg.toLowerCase()).includes('--watch')) {
 | 
				
			||||||
	await watchSrc();
 | 
						await watchSrc();
 | 
				
			||||||
} else {
 | 
					} else {
 | 
				
			||||||
	await buildSrc();
 | 
						await buildSrc();
 | 
				
			||||||
| 
						 | 
					@ -36,7 +36,7 @@ async function buildSrc() {
 | 
				
			||||||
	console.log(`[${_package.name}] start building...`);
 | 
						console.log(`[${_package.name}] start building...`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	await build(options)
 | 
						await build(options)
 | 
				
			||||||
		.then(it => {
 | 
							.then(() => {
 | 
				
			||||||
			console.log(`[${_package.name}] build succeeded.`);
 | 
								console.log(`[${_package.name}] build succeeded.`);
 | 
				
			||||||
		})
 | 
							})
 | 
				
			||||||
		.catch((err) => {
 | 
							.catch((err) => {
 | 
				
			||||||
| 
						 | 
					@ -65,7 +65,7 @@ function buildDts() {
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			stdout: process.stdout,
 | 
								stdout: process.stdout,
 | 
				
			||||||
			stderr: process.stderr,
 | 
								stderr: process.stderr,
 | 
				
			||||||
		}
 | 
							},
 | 
				
			||||||
	);
 | 
						);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -86,7 +86,7 @@ async function watchSrc() {
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
	}];
 | 
						}];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	console.log(`[${_package.name}] start watching...`)
 | 
						console.log(`[${_package.name}] start watching...`);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	const context = await esbuild.context({ ...options, plugins });
 | 
						const context = await esbuild.context({ ...options, plugins });
 | 
				
			||||||
	await context.watch();
 | 
						await context.watch();
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										28
									
								
								packages/misskey-js/eslint.config.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								packages/misskey-js/eslint.config.js
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,28 @@
 | 
				
			||||||
 | 
					import tsParser from '@typescript-eslint/parser';
 | 
				
			||||||
 | 
					import sharedConfig from '../shared/eslint.config.js';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default [
 | 
				
			||||||
 | 
						...sharedConfig,
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							ignores: [
 | 
				
			||||||
 | 
								'**/node_modules',
 | 
				
			||||||
 | 
								'built',
 | 
				
			||||||
 | 
								'coverage',
 | 
				
			||||||
 | 
								'jest.config.ts',
 | 
				
			||||||
 | 
								'test',
 | 
				
			||||||
 | 
								'test-d',
 | 
				
			||||||
 | 
								'generator',
 | 
				
			||||||
 | 
							],
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							files: ['**/*.ts', '**/*.tsx'],
 | 
				
			||||||
 | 
							languageOptions: {
 | 
				
			||||||
 | 
								parserOptions: {
 | 
				
			||||||
 | 
									parser: tsParser,
 | 
				
			||||||
 | 
									project: ['./tsconfig.json'],
 | 
				
			||||||
 | 
									sourceType: 'module',
 | 
				
			||||||
 | 
									tsconfigRootDir: import.meta.dirname,
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					];
 | 
				
			||||||
| 
						 | 
					@ -1,9 +0,0 @@
 | 
				
			||||||
module.exports = {
 | 
					 | 
				
			||||||
	parserOptions: {
 | 
					 | 
				
			||||||
		tsconfigRootDir: __dirname,
 | 
					 | 
				
			||||||
		project: ['./tsconfig.json'],
 | 
					 | 
				
			||||||
	},
 | 
					 | 
				
			||||||
	extends: [
 | 
					 | 
				
			||||||
		'../../shared/.eslintrc.js',
 | 
					 | 
				
			||||||
	],
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
							
								
								
									
										17
									
								
								packages/misskey-js/generator/eslint.config.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								packages/misskey-js/generator/eslint.config.js
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,17 @@
 | 
				
			||||||
 | 
					import tsParser from '@typescript-eslint/parser';
 | 
				
			||||||
 | 
					import sharedConfig from '../../shared/eslint.config.js';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default [
 | 
				
			||||||
 | 
						...sharedConfig,
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							files: ['**/*.ts', '**/*.tsx'],
 | 
				
			||||||
 | 
							languageOptions: {
 | 
				
			||||||
 | 
								parserOptions: {
 | 
				
			||||||
 | 
									parser: tsParser,
 | 
				
			||||||
 | 
									project: ['./tsconfig.json'],
 | 
				
			||||||
 | 
									sourceType: 'module',
 | 
				
			||||||
 | 
									tsconfigRootDir: import.meta.dirname,
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					];
 | 
				
			||||||
| 
						 | 
					@ -4,15 +4,13 @@
 | 
				
			||||||
	"description": "Misskey TypeGenerator",
 | 
						"description": "Misskey TypeGenerator",
 | 
				
			||||||
	"type": "module",
 | 
						"type": "module",
 | 
				
			||||||
	"scripts": {
 | 
						"scripts": {
 | 
				
			||||||
		"generate": "tsx src/generator.ts && eslint ./built/**/* --ext .ts --fix"
 | 
							"generate": "tsx src/generator.ts && eslint ./built/**/*.ts --fix"
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	"devDependencies": {
 | 
						"devDependencies": {
 | 
				
			||||||
		"@misskey-dev/eslint-plugin": "^1.0.0",
 | 
					 | 
				
			||||||
		"@readme/openapi-parser": "2.5.0",
 | 
							"@readme/openapi-parser": "2.5.0",
 | 
				
			||||||
		"@types/node": "20.9.1",
 | 
							"@types/node": "20.9.1",
 | 
				
			||||||
		"@typescript-eslint/eslint-plugin": "6.11.0",
 | 
							"@typescript-eslint/eslint-plugin": "6.11.0",
 | 
				
			||||||
		"@typescript-eslint/parser": "6.11.0",
 | 
							"@typescript-eslint/parser": "6.11.0",
 | 
				
			||||||
		"eslint": "8.53.0",
 | 
					 | 
				
			||||||
		"openapi-types": "12.1.3",
 | 
							"openapi-types": "12.1.3",
 | 
				
			||||||
		"openapi-typescript": "6.7.3",
 | 
							"openapi-typescript": "6.7.3",
 | 
				
			||||||
		"ts-case-convert": "2.0.2",
 | 
							"ts-case-convert": "2.0.2",
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -22,7 +22,7 @@
 | 
				
			||||||
		"tsd": "tsd",
 | 
							"tsd": "tsd",
 | 
				
			||||||
		"api": "pnpm api-extractor run --local --verbose",
 | 
							"api": "pnpm api-extractor run --local --verbose",
 | 
				
			||||||
		"api-prod": "pnpm api-extractor run --verbose",
 | 
							"api-prod": "pnpm api-extractor run --verbose",
 | 
				
			||||||
		"eslint": "eslint . --ext .js,.jsx,.ts,.tsx",
 | 
							"eslint": "eslint './**/*.{js,jsx,ts,tsx}'",
 | 
				
			||||||
		"typecheck": "tsc --noEmit",
 | 
							"typecheck": "tsc --noEmit",
 | 
				
			||||||
		"lint": "pnpm typecheck && pnpm eslint",
 | 
							"lint": "pnpm typecheck && pnpm eslint",
 | 
				
			||||||
		"jest": "jest --coverage --detectOpenHandles",
 | 
							"jest": "jest --coverage --detectOpenHandles",
 | 
				
			||||||
| 
						 | 
					@ -35,25 +35,23 @@
 | 
				
			||||||
		"directory": "packages/misskey-js"
 | 
							"directory": "packages/misskey-js"
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	"devDependencies": {
 | 
						"devDependencies": {
 | 
				
			||||||
		"@microsoft/api-extractor": "7.43.1",
 | 
							"@microsoft/api-extractor": "7.47.0",
 | 
				
			||||||
		"@misskey-dev/eslint-plugin": "1.0.0",
 | 
					 | 
				
			||||||
		"@swc/jest": "0.2.36",
 | 
							"@swc/jest": "0.2.36",
 | 
				
			||||||
		"@types/jest": "29.5.12",
 | 
							"@types/jest": "29.5.12",
 | 
				
			||||||
		"@types/node": "20.12.7",
 | 
							"@types/node": "20.14.9",
 | 
				
			||||||
		"@typescript-eslint/eslint-plugin": "7.7.1",
 | 
							"@typescript-eslint/eslint-plugin": "7.15.0",
 | 
				
			||||||
		"@typescript-eslint/parser": "7.7.1",
 | 
							"@typescript-eslint/parser": "7.15.0",
 | 
				
			||||||
		"eslint": "8.57.0",
 | 
					 | 
				
			||||||
		"jest": "29.7.0",
 | 
							"jest": "29.7.0",
 | 
				
			||||||
		"jest-fetch-mock": "3.0.3",
 | 
							"jest-fetch-mock": "3.0.3",
 | 
				
			||||||
		"jest-websocket-mock": "2.5.0",
 | 
							"jest-websocket-mock": "2.5.0",
 | 
				
			||||||
		"mock-socket": "9.3.1",
 | 
							"mock-socket": "9.3.1",
 | 
				
			||||||
		"ncp": "2.0.0",
 | 
							"ncp": "2.0.0",
 | 
				
			||||||
		"nodemon": "3.1.0",
 | 
							"nodemon": "3.1.4",
 | 
				
			||||||
		"execa": "8.0.1",
 | 
							"execa": "9.2.0",
 | 
				
			||||||
		"tsd": "0.30.7",
 | 
							"tsd": "0.31.1",
 | 
				
			||||||
		"typescript": "5.5.2",
 | 
							"typescript": "5.5.3",
 | 
				
			||||||
		"esbuild": "0.19.11",
 | 
							"esbuild": "0.22.0",
 | 
				
			||||||
		"glob": "10.3.12"
 | 
							"glob": "10.4.2"
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	"files": [
 | 
						"files": [
 | 
				
			||||||
		"built"
 | 
							"built"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,8 +0,0 @@
 | 
				
			||||||
node_modules
 | 
					 | 
				
			||||||
/built
 | 
					 | 
				
			||||||
/coverage
 | 
					 | 
				
			||||||
/.eslintrc.js
 | 
					 | 
				
			||||||
/jest.config.ts
 | 
					 | 
				
			||||||
/test
 | 
					 | 
				
			||||||
/test-d
 | 
					 | 
				
			||||||
build.js
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,10 +0,0 @@
 | 
				
			||||||
module.exports = {
 | 
					 | 
				
			||||||
	root: true,
 | 
					 | 
				
			||||||
	parserOptions: {
 | 
					 | 
				
			||||||
		tsconfigRootDir: __dirname,
 | 
					 | 
				
			||||||
		project: ['./tsconfig.json'],
 | 
					 | 
				
			||||||
	},
 | 
					 | 
				
			||||||
	extends: [
 | 
					 | 
				
			||||||
		'../shared/.eslintrc.js',
 | 
					 | 
				
			||||||
	],
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
							
								
								
									
										23
									
								
								packages/misskey-reversi/eslint.config.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								packages/misskey-reversi/eslint.config.js
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,23 @@
 | 
				
			||||||
 | 
					import tsParser from '@typescript-eslint/parser';
 | 
				
			||||||
 | 
					import sharedConfig from '../shared/eslint.config.js';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default [
 | 
				
			||||||
 | 
						...sharedConfig,
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							ignores: [
 | 
				
			||||||
 | 
								'**/node_modules',
 | 
				
			||||||
 | 
								'built',
 | 
				
			||||||
 | 
							],
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							files: ['**/*.ts', '**/*.tsx'],
 | 
				
			||||||
 | 
							languageOptions: {
 | 
				
			||||||
 | 
								parserOptions: {
 | 
				
			||||||
 | 
									parser: tsParser,
 | 
				
			||||||
 | 
									project: ['./tsconfig.json'],
 | 
				
			||||||
 | 
									sourceType: 'module',
 | 
				
			||||||
 | 
									tsconfigRootDir: import.meta.dirname,
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					];
 | 
				
			||||||
| 
						 | 
					@ -17,16 +17,14 @@
 | 
				
			||||||
	"scripts": {
 | 
						"scripts": {
 | 
				
			||||||
		"build": "node ./build.js",
 | 
							"build": "node ./build.js",
 | 
				
			||||||
		"watch": "nodemon -w package.json -e json --exec \"node ./build.js --watch\"",
 | 
							"watch": "nodemon -w package.json -e json --exec \"node ./build.js --watch\"",
 | 
				
			||||||
		"eslint": "eslint . --ext .js,.jsx,.ts,.tsx",
 | 
							"eslint": "eslint './**/*.{js,jsx,ts,tsx}'",
 | 
				
			||||||
		"typecheck": "tsc --noEmit",
 | 
							"typecheck": "tsc --noEmit",
 | 
				
			||||||
		"lint": "pnpm typecheck && pnpm eslint"
 | 
							"lint": "pnpm typecheck && pnpm eslint"
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	"devDependencies": {
 | 
						"devDependencies": {
 | 
				
			||||||
		"@misskey-dev/eslint-plugin": "1.0.0",
 | 
					 | 
				
			||||||
		"@types/node": "20.11.5",
 | 
							"@types/node": "20.11.5",
 | 
				
			||||||
		"@typescript-eslint/eslint-plugin": "7.1.0",
 | 
							"@typescript-eslint/eslint-plugin": "7.1.0",
 | 
				
			||||||
		"@typescript-eslint/parser": "7.1.0",
 | 
							"@typescript-eslint/parser": "7.1.0",
 | 
				
			||||||
		"eslint": "8.57.0",
 | 
					 | 
				
			||||||
		"execa": "8.0.1",
 | 
							"execa": "8.0.1",
 | 
				
			||||||
		"nodemon": "3.0.2",
 | 
							"nodemon": "3.0.2",
 | 
				
			||||||
		"typescript": "5.3.3",
 | 
							"typescript": "5.3.3",
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,7 +0,0 @@
 | 
				
			||||||
module.exports = {
 | 
					 | 
				
			||||||
	root: true,
 | 
					 | 
				
			||||||
	ignorePatterns: ['**/.eslintrc.cjs'],
 | 
					 | 
				
			||||||
	extends: [
 | 
					 | 
				
			||||||
		'plugin:@misskey-dev/recommended',
 | 
					 | 
				
			||||||
	],
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
							
								
								
									
										28
									
								
								packages/shared/eslint.config.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								packages/shared/eslint.config.js
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,28 @@
 | 
				
			||||||
 | 
					import globals from 'globals';
 | 
				
			||||||
 | 
					import pluginMisskey from '@misskey-dev/eslint-plugin';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default [
 | 
				
			||||||
 | 
						...pluginMisskey.configs['recommended'],
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							files: ['**/*.cjs'],
 | 
				
			||||||
 | 
							languageOptions: {
 | 
				
			||||||
 | 
								parserOptions: {
 | 
				
			||||||
 | 
									sourceType: 'commonjs',
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							files: ['**/*.js', '**/*.jsx'],
 | 
				
			||||||
 | 
							languageOptions: {
 | 
				
			||||||
 | 
								parserOptions: {
 | 
				
			||||||
 | 
									sourceType: 'module',
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							files: ['build.js'],
 | 
				
			||||||
 | 
							languageOptions: {
 | 
				
			||||||
 | 
								globals: globals.node,
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					];
 | 
				
			||||||
							
								
								
									
										3
									
								
								packages/shared/package.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								packages/shared/package.json
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,3 @@
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						"type": "module"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -1,20 +0,0 @@
 | 
				
			||||||
module.exports = {
 | 
					 | 
				
			||||||
	root: true,
 | 
					 | 
				
			||||||
	env: {
 | 
					 | 
				
			||||||
		node: false,
 | 
					 | 
				
			||||||
	},
 | 
					 | 
				
			||||||
	parserOptions: {
 | 
					 | 
				
			||||||
		parser: '@typescript-eslint/parser',
 | 
					 | 
				
			||||||
		tsconfigRootDir: __dirname,
 | 
					 | 
				
			||||||
		project: ['./tsconfig.json'],
 | 
					 | 
				
			||||||
	},
 | 
					 | 
				
			||||||
	extends: ['../shared/.eslintrc.js'],
 | 
					 | 
				
			||||||
	globals: {
 | 
					 | 
				
			||||||
		require: false,
 | 
					 | 
				
			||||||
		_DEV_: false,
 | 
					 | 
				
			||||||
		_LANGS_: false,
 | 
					 | 
				
			||||||
		_VERSION_: false,
 | 
					 | 
				
			||||||
		_ENV_: false,
 | 
					 | 
				
			||||||
		_PERF_PREFIX_: false,
 | 
					 | 
				
			||||||
	},
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
							
								
								
									
										32
									
								
								packages/sw/eslint.config.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								packages/sw/eslint.config.js
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,32 @@
 | 
				
			||||||
 | 
					import globals from 'globals';
 | 
				
			||||||
 | 
					import tsParser from '@typescript-eslint/parser';
 | 
				
			||||||
 | 
					import sharedConfig from '../shared/eslint.config.js';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default [
 | 
				
			||||||
 | 
						...sharedConfig,
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							ignores: ['build.js'],
 | 
				
			||||||
 | 
							languageOptions: {
 | 
				
			||||||
 | 
								globals: {
 | 
				
			||||||
 | 
									...Object.fromEntries(Object.entries(globals.node).map(([key]) => [key, 'off'])),
 | 
				
			||||||
 | 
									require: false,
 | 
				
			||||||
 | 
									_DEV_: false,
 | 
				
			||||||
 | 
									_LANGS_: false,
 | 
				
			||||||
 | 
									_VERSION_: false,
 | 
				
			||||||
 | 
									_ENV_: false,
 | 
				
			||||||
 | 
									_PERF_PREFIX_: false,
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							files: ['**/*.ts', '**/*.tsx'],
 | 
				
			||||||
 | 
							languageOptions: {
 | 
				
			||||||
 | 
								parserOptions: {
 | 
				
			||||||
 | 
									parser: tsParser,
 | 
				
			||||||
 | 
									project: ['./tsconfig.json'],
 | 
				
			||||||
 | 
									sourceType: 'module',
 | 
				
			||||||
 | 
									tsconfigRootDir: import.meta.dirname,
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					];
 | 
				
			||||||
| 
						 | 
					@ -9,18 +9,16 @@
 | 
				
			||||||
		"lint": "pnpm typecheck && pnpm eslint"
 | 
							"lint": "pnpm typecheck && pnpm eslint"
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	"dependencies": {
 | 
						"dependencies": {
 | 
				
			||||||
		"esbuild": "0.20.2",
 | 
							"esbuild": "0.22.0",
 | 
				
			||||||
		"idb-keyval": "6.2.1",
 | 
							"idb-keyval": "6.2.1",
 | 
				
			||||||
		"misskey-js": "workspace:*"
 | 
							"misskey-js": "workspace:*"
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	"devDependencies": {
 | 
						"devDependencies": {
 | 
				
			||||||
		"@misskey-dev/eslint-plugin": "1.0.0",
 | 
							"@typescript-eslint/parser": "7.15.0",
 | 
				
			||||||
		"@typescript-eslint/parser": "7.7.1",
 | 
					 | 
				
			||||||
		"@typescript/lib-webworker": "npm:@types/serviceworker@0.0.67",
 | 
							"@typescript/lib-webworker": "npm:@types/serviceworker@0.0.67",
 | 
				
			||||||
		"eslint": "8.57.0",
 | 
					 | 
				
			||||||
		"eslint-plugin-import": "2.29.1",
 | 
							"eslint-plugin-import": "2.29.1",
 | 
				
			||||||
		"nodemon": "3.1.0",
 | 
							"nodemon": "3.1.4",
 | 
				
			||||||
		"typescript": "5.5.2"
 | 
							"typescript": "5.5.3"
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	"type": "module"
 | 
						"type": "module"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										9005
									
								
								pnpm-lock.yaml
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										9005
									
								
								pnpm-lock.yaml
									
										
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							| 
						 | 
					@ -1,9 +0,0 @@
 | 
				
			||||||
module.exports = {
 | 
					 | 
				
			||||||
	parserOptions: {
 | 
					 | 
				
			||||||
		tsconfigRootDir: __dirname,
 | 
					 | 
				
			||||||
		project: ['./tsconfig.json'],
 | 
					 | 
				
			||||||
	},
 | 
					 | 
				
			||||||
	extends: [
 | 
					 | 
				
			||||||
		'../../packages/shared/.eslintrc.js',
 | 
					 | 
				
			||||||
	],
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
							
								
								
									
										17
									
								
								scripts/changelog-checker/eslint.config.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								scripts/changelog-checker/eslint.config.js
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,17 @@
 | 
				
			||||||
 | 
					import tsParser from '@typescript-eslint/parser';
 | 
				
			||||||
 | 
					import sharedConfig from '../../packages/shared/eslint.config.js';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default [
 | 
				
			||||||
 | 
						...sharedConfig,
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							files: ['src/**/*.ts', 'src/**/*.tsx'],
 | 
				
			||||||
 | 
							languageOptions: {
 | 
				
			||||||
 | 
								parserOptions: {
 | 
				
			||||||
 | 
									parser: tsParser,
 | 
				
			||||||
 | 
									project: ['./tsconfig.json'],
 | 
				
			||||||
 | 
									sourceType: 'module',
 | 
				
			||||||
 | 
									tsconfigRootDir: import.meta.dirname,
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					];
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue