wbfy 1.96.0 → 1.98.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/options.ts","../src/logger.ts","../src/utils/fsUtil.ts","../src/utils/promisePool.ts","../src/fixers/abbreviations.ts","../src/fixers/dockerfile.ts","../src/fixers/testDirectory.ts","../src/fixers/typeDefinition.ts","../src/utils/spawnUtil.ts","../src/utils/version.ts","../src/utils/versionConstants.ts","../src/generators/asdf.ts","../src/utils/ignoreFileUtil.ts","../src/generators/dockerignore.ts","../src/utils/extensions.ts","../src/generators/editorconfig.ts","../src/generators/eslintignore.ts","../src/utils/mergeUtil.ts","../src/generators/eslintrc.ts","../src/generators/gitattributes.ts","../src/generators/gitignore.ts","../src/utils/eslintUtil.ts","../src/utils/githubUtil.ts","../src/utils/srcDirectories.ts","../src/generators/packageJson.ts","../src/generators/huskyrc.ts","../src/generators/idea.ts","../src/generators/lintstagedrc.ts","../src/generators/prettierignore.ts","../src/generators/pyrightconfig.ts","../src/generators/readme.ts","../src/generators/releaserc.ts","../src/generators/renovaterc.ts","../src/utils/objectUtil.ts","../src/generators/tsconfig.ts","../src/generators/workflow.ts","../src/generators/yarnrc.ts","../src/github/label.ts","../src/github/secret.ts","../src/github/settings.ts","../src/packageConfig.ts","../src/index.ts"],"sourcesContent":["class Options {\n isVerbose: boolean;\n\n constructor() {\n this.isVerbose = false;\n }\n}\n\nexport const options = new Options();\n","import { options } from './options.js';\n\nclass Logger {\n async function(name: string, func: () => Promise<void>): Promise<void> {\n if (options.isVerbose) {\n console.info(`--------- ${name} start ---------`);\n }\n await func();\n if (options.isVerbose) {\n console.info(`---------- ${name} end ----------`);\n }\n }\n}\n\nexport const logger = new Logger();\n","import fsp from 'node:fs/promises';\n\nexport const fsUtil = {\n async readFileIgnoringError(filePath: string): Promise<string | undefined> {\n try {\n return await fsp.readFile(filePath, 'utf8');\n } catch {\n // do nothing\n }\n },\n async generateFile(filePath: string, content: string): Promise<void> {\n await fsp.writeFile(filePath, content);\n console.log(`Generated/Updated ${filePath}`);\n },\n};\n","import { PromisePool } from 'minimal-promise-pool';\n\nexport const promisePool = new PromisePool();\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport { globby } from 'globby';\n\nimport { logger } from '../logger.js';\nimport { options } from '../options.js';\nimport { fsUtil } from '../utils/fsUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nexport async function fixAbbreviations(dirPath: string): Promise<void> {\n return logger.function('fixAbbreviations', async () => {\n const mdFiles = await globby('**/*.md', { dot: true, cwd: dirPath, gitignore: true });\n if (options.isVerbose) {\n console.info(`Found ${mdFiles.length} markdown files in ${dirPath}`);\n }\n for (const mdFile of mdFiles) {\n const filePath = path.join(dirPath, mdFile);\n await promisePool.run(async () => {\n const content = await fs.promises.readFile(filePath, 'utf8');\n const newContent = content.replaceAll('c.f.', 'cf.').replaceAll('eg.', 'e.g.').replaceAll('ie.', 'i.e.');\n if (content !== newContent) {\n await fsUtil.generateFile(filePath, newContent);\n }\n });\n }\n\n const tsFiles = await globby(\n [\n '{app,src,tests,scripts}/**/*.{cjs,mjs,js,jsx,cts,mts,ts,tsx}',\n 'packages/**/{app,src,tests,scripts}/**/*.{cjs,mjs,js,jsx,cts,mts,ts,tsx}',\n ],\n { dot: true, cwd: dirPath, gitignore: true }\n );\n if (options.isVerbose) {\n console.info(`Found ${tsFiles.length} TypeScript files in ${dirPath}`);\n }\n for (const tsFile of tsFiles) {\n const filePath = path.join(dirPath, tsFile);\n const oldContent = await fs.promises.readFile(filePath, 'utf8');\n const newContent = oldContent\n .replaceAll(/\\/\\/(.*)c\\.f\\./g, '//$1cf.')\n .replaceAll(/\\/\\/(.*)eg\\./g, '//$1e.g.')\n .replaceAll(/\\/\\/(.*)ie\\./g, '//$1i.e.');\n\n if (oldContent === newContent) continue;\n await fsUtil.generateFile(filePath, newContent);\n }\n\n await promisePool.promiseAll();\n });\n}\n","import fs from 'node:fs/promises';\nimport path from 'node:path';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\n\nexport async function fixDockerfile(config: PackageConfig): Promise<void> {\n return logger.function('fixDockerfile', async () => {\n if (!config.containingDockerfile) return;\n\n const filePath = path.join(config.dirPath, 'Dockerfile');\n const oldContent = await fs.readFile(filePath, 'utf8');\n\n let newContent = oldContent.replaceAll('then(process.stdout.write)', 'then(t => process.stdout.write(t))');\n if (oldContent.includes('FROM node')) {\n newContent = newContent.replaceAll(\n /curl https:\\/\\/raw.githubusercontent.com\\/WillBooster(\\S+)/g,\n 'node -e \\'fetch(\"https://raw.githubusercontent.com/WillBooster$1\").then(r => r.text()).then(t => process.stdout.write(t))\\''\n );\n }\n\n if (oldContent === newContent) return;\n await fs.writeFile(filePath, newContent);\n });\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport { logger } from '../logger.js';\n\nexport async function fixTestDirectories(packageDirPaths: string[]): Promise<void> {\n return logger.function('fixTestDirectories', async () => {\n await Promise.all(\n packageDirPaths.map(async (packageDirPath) => {\n const oldTestDirPath = path.join(packageDirPath, '__tests__');\n const newTestDirPath = path.join(packageDirPath, 'tests');\n try {\n await fs.promises.rename(oldTestDirPath, newTestDirPath);\n const oldContent = await fs.promises.readFile(path.join(packageDirPath, 'package.json'), 'utf8');\n const newContent = oldContent.replaceAll('__tests__', 'tests');\n if (oldContent === newContent) return;\n\n await fs.promises.writeFile(path.join(packageDirPath, 'package.json'), newContent);\n } catch {\n // do nothing\n }\n })\n );\n });\n}\n","import fs from 'node:fs/promises';\nimport path from 'node:path';\n\nimport { ignoreEnoentAsync } from '@willbooster/shared-lib';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nexport async function fixTypeDefinitions(\n config: PackageConfig,\n configsIncludingChildren: PackageConfig[]\n): Promise<void> {\n return logger.function('fixTypeDefinitions', async () => {\n const libTypeDirPath = path.resolve(config.dirPath, '@types');\n const srcTypeDirPath =\n config.root && config.containingSubPackageJsons ? undefined : path.resolve(config.dirPath, 'src', 'types');\n\n const dirents = await ignoreEnoentAsync(() => fs.readdir(libTypeDirPath, { withFileTypes: true }));\n if (!dirents) return;\n\n for (const dirent of dirents) {\n const dirName = dirent.name.slice(0, -5);\n const hasTypeDeclarationExtension = dirent.name.endsWith('.d.ts');\n let packageName = hasTypeDeclarationExtension ? dirName : dirent.name;\n if (packageName.includes('__')) {\n packageName = `@${packageName.replace('__', '/')}`;\n }\n const hasLibrary = configsIncludingChildren.some(\n (config) =>\n config.packageJson?.dependencies?.[packageName] || config.packageJson?.devDependencies?.[packageName]\n );\n\n if (dirent.isFile() && hasTypeDeclarationExtension) {\n if (hasLibrary) {\n // Move @types/<name>/index.d.ts if installed\n await fs.mkdir(path.join(libTypeDirPath, dirName));\n await promisePool.run(() =>\n fs.rename(path.join(libTypeDirPath, dirent.name), path.join(libTypeDirPath, dirName, 'index.d.ts'))\n );\n } else if (srcTypeDirPath) {\n // Move src/types/<name> if not installed\n await fs.mkdir(srcTypeDirPath, { recursive: true });\n await promisePool.run(() =>\n fs.rename(path.join(libTypeDirPath, dirent.name), path.join(srcTypeDirPath, dirent.name))\n );\n }\n } else if (dirent.isDirectory() && srcTypeDirPath && !hasLibrary) {\n // Move src/types/<name>.d.ts if not installed\n await fs.mkdir(srcTypeDirPath, { recursive: true });\n await promisePool.run(() =>\n ignoreEnoentAsync(() =>\n fs.rename(\n path.join(libTypeDirPath, dirent.name, 'index.d.ts'),\n path.join(srcTypeDirPath, `${dirent.name}.d.ts`)\n )\n )\n );\n }\n }\n });\n}\n","import child_process, { SpawnSyncOptions } from 'node:child_process';\n\nexport function spawnSync(command: string, args: string[], cwd: string, retry = 0): void {\n do {\n const [newCmd, newArgs, options] = getSpawnSyncArgs(command, args, cwd);\n console.log(`$ ${newCmd} ${newArgs.join(' ')} at ${options.cwd}`);\n const ret = child_process.spawnSync(newCmd, newArgs, options);\n if (ret.status === 0) break;\n } while (--retry >= 0);\n}\n\nexport function spawnSyncWithStringResult(command: string, args: string[], cwd: string): string {\n const [newCmd, newArgs, options] = getSpawnSyncArgs(command, args, cwd);\n options.stdio = 'pipe';\n const proc = child_process.spawnSync(newCmd, newArgs, options);\n const error = proc.stderr.toString().trim();\n if (error) {\n console.error(`${newCmd} [${newArgs.map((s) => `\"${s}\"`)}] caused the following error:\\n ${error}`);\n }\n return proc.stdout.toString().trim();\n}\n\nexport function getSpawnSyncArgs(command: string, args: string[], cwd: string): [string, string[], SpawnSyncOptions] {\n const env = { ...process.env };\n // Remove berry from PATH\n if (env.PATH && env.BERRY_BIN_FOLDER) {\n env.PATH = env.PATH.replace(`${env.BERRY_BIN_FOLDER}:`, '');\n }\n\n if (env.ASDF_DIR) {\n args = ['-l', '-c', `. ${env.ASDF_DIR}/asdf.sh && ${command} ${args.join(' ')}`];\n command = 'bash';\n }\n return [\n command,\n args,\n {\n cwd,\n env,\n shell: false,\n stdio: 'inherit',\n },\n ];\n}\n","export function convertVersionIntoNumber(version: string): number {\n // e.g. java adoptopenjdk-11.0.17+8\n const numbers = version.split(/[+.-]/).map(Number).filter(Number.isNaN);\n let versionNumber = 0;\n let divisor = 1;\n for (const num of numbers) {\n versionNumber += num * divisor;\n divisor /= 1000;\n }\n return versionNumber;\n}\n","export const PYTHON_VERSION = '3.9.16';\nexport const JAVA_VERSION = 'adoptopenjdk-11.0.17+8';\nexport const BLITZ_VERSION = '2.0.0-beta.27';\n// Blitz.js 2.0.0-beta.27 works with Next.js 13.3.4.\nexport const NEXT_VERSION = '13.3.4';\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { promisePool } from '../utils/promisePool.js';\nimport { spawnSync, spawnSyncWithStringResult } from '../utils/spawnUtil.js';\nimport { convertVersionIntoNumber } from '../utils/version.js';\nimport { JAVA_VERSION, PYTHON_VERSION } from '../utils/versionConstants.js';\n\nexport async function generateVersionConfigs(config: PackageConfig): Promise<void> {\n return logger.function('generateVersionConfigs', async () => {\n await core(config);\n });\n}\n\nconst CORE_TOOLS = new Set(['java', 'nodejs', 'python']);\nconst DEPRECATED_VERSION_PREFIXES = ['java', 'node', 'python'];\n\nasync function core(config: PackageConfig): Promise<void> {\n if (!config.versionsText) return;\n\n const duplicatableLines = config.versionsText\n .trim()\n .split('\\n')\n .map((line) => {\n const [name, version] = line.trim().split(/\\s+/);\n return `${CORE_TOOLS.has(name) ? ' ' : ''}${name} ${version}`;\n })\n .sort()\n .map((line) => line.trim());\n const lines = [...new Set(duplicatableLines)];\n\n if (config.containingPoetryLock) {\n const response = await fetch('https://pypi.org/pypi/poetry/json');\n const json = await response.json();\n const poetryVersion = json?.info?.version;\n if (poetryVersion) {\n updateVersion(lines, 'poetry', json?.info?.version);\n }\n updateVersion(lines, 'python', PYTHON_VERSION, true);\n }\n if (config.depending.firebase) {\n updateVersion(lines, 'java', JAVA_VERSION, true);\n }\n if (config.containingPackageJson) {\n const version = spawnSyncWithStringResult('npm', ['show', 'yarn', 'version'], config.dirPath);\n updateVersion(lines, 'yarn', version);\n }\n\n for (const prefix of DEPRECATED_VERSION_PREFIXES) {\n const versionPath = path.resolve(config.dirPath, `.${prefix}-version`);\n void fs.promises.rm(versionPath, { force: true });\n }\n\n const toolVersionsPath = path.resolve(config.dirPath, '.tool-versions');\n await (lines.length > 0\n ? promisePool.run(() => fs.promises.writeFile(toolVersionsPath, lines.join('\\n') + '\\n'))\n : promisePool.run(() => fs.promises.rm(toolVersionsPath, { force: true })));\n await promisePool.promiseAll();\n spawnSync('asdf', ['plugin', 'update', '--all'], config.dirPath);\n spawnSync('asdf', ['install'], config.dirPath);\n}\n\nfunction updateVersion(lines: string[], toolName: string, newVersion: string, head = false): void {\n const index = lines.findIndex((l) => l.split(/\\s+/)[0] === toolName);\n const newLine = `${toolName} ${newVersion}`;\n if (index >= 0) {\n const [, version] = lines[index].split(/\\s+/);\n if (convertVersionIntoNumber(newVersion) > convertVersionIntoNumber(version)) {\n lines[index] = newLine;\n }\n } else {\n lines.splice(head ? 0 : lines.length, 0, newLine);\n }\n}\n","import fs from 'node:fs';\n\nconst userContentHeader = '# Project-specific settings';\nconst userContentHeaderRegex = /# Project-specific settings[^\\n]*\\n/gm;\nconst separator = '# Generated by wbfy';\nconst separatorPrefix = '# Generated by ';\nconst defaultHeadUserContent = `${userContentHeader} (head)\n\n\n${separator}\n`;\nconst defaultTailUserContent = `\n${userContentHeader} (tail)\n`;\n\nexport const ignoreFileUtil = {\n separator,\n separatorPrefix,\n defaultHeadUserContent,\n defaultTailUserContent,\n async readGitignoreWithoutSeparators(filePath: string): Promise<string | undefined> {\n try {\n let content = await fs.promises.readFile(filePath, 'utf8');\n const lastHeaderIndex = getIndexOfTailUserContentHeader(content);\n if (lastHeaderIndex > 0) {\n content = content.slice(0, lastHeaderIndex - 1);\n }\n return (\n content\n .replaceAll(userContentHeaderRegex, '')\n .replaceAll(/# Generated by [^\\n]*\\n/gm, '')\n .replaceAll(/\\r?\\n\\r?\\n(\\r?\\n)+/gm, '\\n\\n')\n .trim() + '\\n'\n );\n } catch {\n // do nothing\n }\n },\n getHeadUserContent(content: string): string {\n const index = content.indexOf(this.separatorPrefix);\n if (index >= 0) {\n return content\n .slice(0, content.indexOf('\\n', index) + 1)\n .replaceAll(userContentHeaderRegex, `${userContentHeader} (head)\\n`);\n }\n return defaultHeadUserContent;\n },\n getTailUserContent(content: string): string | undefined {\n const lastHeaderIndex = getIndexOfTailUserContentHeader(content);\n if (lastHeaderIndex > 0) {\n return content.slice(lastHeaderIndex - 1);\n }\n return defaultTailUserContent;\n },\n async isBerryZeroInstallEnabled(filePath: string): Promise<boolean> {\n try {\n const content = await fs.promises.readFile(filePath, 'utf8');\n return content.includes('\\n!.yarn/cache');\n } catch {\n return false;\n }\n },\n};\n\nfunction getIndexOfTailUserContentHeader(content: string): number {\n const index = content.indexOf(userContentHeader);\n const lastIndex = content.lastIndexOf(userContentHeader);\n return lastIndex > index ? lastIndex : -1;\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { fsUtil } from '../utils/fsUtil.js';\nimport { ignoreFileUtil } from '../utils/ignoreFileUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nconst commonContent = `\n**/*.sqlite3*\n.yarn/install-state.gz\n`;\n\nexport async function generateDockerignore(config: PackageConfig): Promise<void> {\n return logger.function('generateDockerignore', async () => {\n const filePath = path.resolve(config.dirPath, '.dockerignore');\n if (config.containingDockerfile) {\n const content = (await fsUtil.readFileIgnoringError(filePath)) ?? '';\n const headUserContent = ignoreFileUtil.getHeadUserContent(content);\n const tailUserContent = ignoreFileUtil.getTailUserContent(content);\n\n const newContent = headUserContent + commonContent + tailUserContent;\n await promisePool.run(() => fsUtil.generateFile(filePath, newContent));\n } else {\n await fs.promises.rm(filePath, { force: true });\n }\n });\n}\n","export const extensions = {\n codeWith2IndentSize: [\n 'cjs',\n 'mjs',\n 'js',\n 'jsx',\n 'cts',\n 'mts',\n 'ts',\n 'tsx',\n 'json',\n 'json5',\n 'cpp',\n 'dart',\n 'htm',\n 'html',\n 'pu',\n 'puml',\n 'rb',\n 'vue',\n 'yaml',\n 'yml',\n ].sort(),\n codeWith4IndentSize: ['go', 'gradle', 'py'].sort(),\n codeWith8IndentSize: ['sh'].sort(),\n markdownLike: ['md'].sort(),\n eslint: ['cjs', 'mjs', 'js', 'cts', 'mts', 'ts', 'tsx', 'jsx'].sort(),\n prettier: [\n 'cjs',\n 'mjs',\n 'js',\n 'jsx',\n 'cts',\n 'mts',\n 'ts',\n 'tsx',\n 'json',\n 'json5',\n 'css',\n 'htm',\n 'html',\n 'md',\n 'scss',\n 'vue',\n 'yaml',\n 'yml',\n ].sort(),\n};\n","import path from 'node:path';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { extensions } from '../utils/extensions.js';\nimport { fsUtil } from '../utils/fsUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nconst newContent = `root = true\n\n[*]\ncharset = utf-8\nend_of_line = lf\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n${generateExtensions(extensions.codeWith2IndentSize)}\nindent_size = 2\nindent_style = space\n\n${generateExtensions(extensions.codeWith4IndentSize)}\nindent_size = 4\nindent_style = space\n\n${generateExtensions(extensions.codeWith8IndentSize)}\nindent_size = 8\nindent_style = space\n\n${generateExtensions(extensions.markdownLike)}\nmax_line_length = off\ntrim_trailing_whitespace = false\n\n[{Makefile,*.mk}]\nindent_style = tab\n`;\n\nexport async function generateEditorconfig(config: PackageConfig): Promise<void> {\n return logger.function('generateEditorconfig', async () => {\n const filePath = path.resolve(config.dirPath, '.editorconfig');\n await promisePool.run(() => fsUtil.generateFile(filePath, newContent));\n });\n}\n\nfunction generateExtensions(extensions: string[]): string {\n return extensions.length > 1 ? `[*.{${extensions.join(',')}}]` : `[*.${extensions[0]}]`;\n}\n","import path from 'node:path';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { fsUtil } from '../utils/fsUtil.js';\nimport { ignoreFileUtil } from '../utils/ignoreFileUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nconst commonContent = `\n3rd-party/\n@types/\n__generated__/\nandroid/\nios/\nno-format/\ntest-fixtures/\n*.config.*js\n*.d.ts\n*.min.*js\n.yarn/\n.pnp.js\n`;\n\nexport async function generateEslintignore(config: PackageConfig): Promise<void> {\n return logger.function('generateEslintignore', async () => {\n const filePath = path.resolve(config.dirPath, '.eslintignore');\n const content = (await fsUtil.readFileIgnoringError(filePath)) ?? '';\n const headUserContent = ignoreFileUtil.getHeadUserContent(content);\n const tailUserContent = ignoreFileUtil.getTailUserContent(content);\n\n const gitignoreFilePath = path.resolve(config.dirPath, '.gitignore');\n const gitignoreContent = (await ignoreFileUtil.readGitignoreWithoutSeparators(gitignoreFilePath)) || '';\n\n const newContent = headUserContent + commonContent + gitignoreContent + tailUserContent;\n await promisePool.run(() => fsUtil.generateFile(filePath, newContent));\n });\n}\n","import merge from 'deepmerge';\n\nexport function overwriteMerge(destinationArray: any[], sourceArray: any[]): any[] {\n return sourceArray;\n}\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function combineMerge(target: any[], source: any[], options: any): any[] {\n const destination = [...target];\n\n for (const [index, item] of source.entries()) {\n if (destination[index] === undefined) {\n destination[index] = options.cloneUnlessOtherwiseSpecified(item, options);\n } else if (options.isMergeableObject(item)) {\n destination[index] = merge(target[index], item, options);\n } else if (!target.includes(item)) {\n destination.push(item);\n }\n }\n return destination;\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport merge from 'deepmerge';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { fsUtil } from '../utils/fsUtil.js';\nimport { combineMerge } from '../utils/mergeUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nexport async function generateEslintrc(config: PackageConfig, rootConfig: PackageConfig): Promise<void> {\n return logger.function('generateEslintrc', async () => {\n const bases = [];\n if (config.eslintBase) {\n bases.push(config.eslintBase);\n }\n if (config !== rootConfig) {\n bases.push('../../.eslintrc.json');\n }\n let newSettings: any = { root: true, extends: bases };\n\n const filePath = path.resolve(config.dirPath, '.eslintrc.json');\n try {\n const oldContent = await fs.promises.readFile(filePath, 'utf8');\n const oldSettings = JSON.parse(oldContent);\n if (oldSettings.extends) {\n oldSettings.extends = oldSettings.extends.filter(\n (ext: string) => !ext.startsWith('@willbooster/') && ext !== '../../.eslintrc.json'\n );\n }\n if (bases.length === 0) {\n oldSettings.extends = [];\n }\n const newExtends = newSettings.extends;\n newSettings.extends = oldSettings.extends;\n oldSettings.extends = newExtends;\n newSettings = merge.all([newSettings, oldSettings, newSettings], { arrayMerge: combineMerge });\n if (config.depending.blitz === '0') {\n addExtensionToHead(newSettings, 'blitz');\n } else if (config.depending.blitz === '2') {\n addExtensionToHead(newSettings, './node_modules/@blitzjs/next/eslint');\n }\n } catch {\n // do nothing\n }\n const newContent = JSON.stringify(newSettings);\n await promisePool.run(() => fsUtil.generateFile(filePath, newContent));\n });\n}\n\nfunction addExtensionToHead(newSettings: any, extension: string): void {\n newSettings.extends = [extension, ...newSettings.extends.filter((e: string) => e !== extension)];\n}\n","import path from 'node:path';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { extensions } from '../utils/extensions.js';\nimport { fsUtil } from '../utils/fsUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nconst newContent = `* text=auto\n\n*.vcproj text eol=crlf\n\n${[...extensions.codeWith2IndentSize, ...extensions.codeWith4IndentSize, ...extensions.markdownLike]\n .map((ext) => `*.${ext} text eol=lf`)\n .join('\\n')}\n`;\n\nexport async function generateGitattributes(config: PackageConfig): Promise<void> {\n return logger.function('generateGitattributes', async () => {\n const filePath = path.resolve(config.dirPath, '.gitattributes');\n await promisePool.run(() => fsUtil.generateFile(filePath, newContent));\n });\n}\n","import fs from 'node:fs';\nimport os from 'node:os';\nimport path from 'node:path';\n\nimport { logger } from '../logger.js';\nimport { options } from '../options.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { fsUtil } from '../utils/fsUtil.js';\nimport { ignoreFileUtil } from '../utils/ignoreFileUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nconst defaultNames = ['windows', 'macos', 'linux', 'jetbrains', 'visualstudiocode', 'emacs', 'vim', 'yarn'];\n\nconst commonContent = `\n.devcontainer/\ndist/\ntemp/\nIcon[\\r]\n!.keep\n`;\n\nexport async function generateGitignore(config: PackageConfig, rootConfig: PackageConfig): Promise<void> {\n return logger.function('generateGitignore', async () => {\n const filePath = path.resolve(config.dirPath, '.gitignore');\n const content = (await fsUtil.readFileIgnoringError(filePath)) ?? '';\n let headUserContent = ignoreFileUtil.getHeadUserContent(content) + commonContent;\n const tailUserContent = ignoreFileUtil.getTailUserContent(content);\n\n const names = [...defaultNames];\n if (config.containingGemfile) {\n names.push('ruby');\n }\n if (config.containingGoMod) {\n names.push('go');\n headUserContent += `${path.basename(config.dirPath)}\n`;\n }\n if (config.containingPackageJson) {\n names.push('node');\n }\n if (config.containingPomXml) {\n names.push('maven');\n headUserContent += `.idea/google-java-format.xml\n`;\n }\n if (config.containingPubspecYaml) {\n names.push('flutter', 'AndroidStudio', 'ruby');\n headUserContent += `.flutter-plugins-dependencies\nandroid/key.properties\nios/.bundle\n.idea/runConfigurations.xml\n`;\n }\n if (config.containingTemplateYaml) {\n headUserContent += `.aws-sam/\npackaged.yaml\n`;\n }\n // Because .venv should be ignored on root directory\n if (config.containingPoetryLock) {\n names.push('python');\n headUserContent += `.venv/\n`;\n }\n\n if (config.depending.blitz) {\n names.push('nextjs');\n headUserContent += `.blitz/\n.blitz**\n`;\n }\n if (rootConfig.depending.firebase || config.depending.firebase) {\n names.push('firebase');\n }\n if (rootConfig.depending.prisma) {\n headUserContent += `*.sqlite3\n*.sqlite3-journal\n`;\n }\n if (config.depending.playwright) {\n headUserContent += `test-results/\n`;\n }\n if (rootConfig.depending.reactNative || config.depending.reactNative) {\n names.push('reactnative');\n headUserContent += `google-services.json\nandroid/app/src/main/assets/\n`;\n }\n if (config.depending.storybook) {\n names.push('storybookjs');\n }\n\n let generated = '';\n for (const name of names) {\n let content = (await readCache(name)) ?? '';\n if (!content) {\n const url = `https://www.toptal.com/developers/gitignore/api/${name}`;\n const response = await fetch(url);\n const responseText = await response.text();\n if (responseText.includes('Attention Required!')) {\n console.error(`Failed to fetch ${url}`);\n return;\n }\n content = responseText.trim();\n await promisePool.run(() => writeCache(name, content));\n if (options.isVerbose) {\n console.info(`Fetched ${url}`);\n }\n }\n if (generated) generated += '\\n';\n generated += content + '\\n';\n }\n if (!(await ignoreFileUtil.isBerryZeroInstallEnabled(filePath))) {\n generated = generated.replace('!.yarn/cache', '# !.yarn/cache').replace('# .pnp.*', '.pnp.*');\n }\n if (config.containingPomXml || config.containingPubspecYaml) {\n generated = generated\n .replaceAll(/^# .idea\\/artifacts$/gm, '.idea/artifacts')\n .replaceAll(/^# .idea\\/compiler.xml$/gm, '.idea/compiler.xml')\n .replaceAll(/^# .idea\\/jarRepositories.xml$/gm, '.idea/jarRepositories.xml')\n .replaceAll(/^# .idea\\/modules.xml$/gm, '.idea/modules.xml')\n .replaceAll(/^# .idea\\/*.iml$/gm, '.idea/*.iml')\n .replaceAll(/^# .idea\\/modules$/gm, '.idea/modules')\n .replaceAll(/^# *.iml$/gm, '*.iml')\n .replaceAll(/^# *.ipr$/gm, '*.ipr');\n if (config.containingPubspecYaml) {\n generated = generated.replaceAll(/^.idea\\/modules.xml$/gm, '# .idea/modules.xml');\n }\n }\n generated = generated.replaceAll(/^.idea\\/?$/gm, '# .idea');\n if (rootConfig.depending.reactNative || config.depending.reactNative || config.containingPubspecYaml) {\n generated = generated.replaceAll(/^(.idea\\/.+)$/gm, '$1\\nandroid/$1');\n }\n const newContent = headUserContent + generated + tailUserContent;\n await promisePool.run(() => fsUtil.generateFile(filePath, newContent));\n });\n}\n\nconst dirPath = path.join(os.homedir(), '.cache', 'wbfy', 'gitignore');\n\nasync function writeCache(name: string, content: string): Promise<void> {\n await fs.promises.mkdir(dirPath, { recursive: true });\n await fs.promises.writeFile(path.join(dirPath, name), content);\n}\n\nasync function readCache(name: string): Promise<string | undefined> {\n try {\n const stat = await fs.promises.stat(path.join(dirPath, name));\n if (Date.now() - stat.mtimeMs > 6 * 60 * 60 * 1000) {\n return;\n }\n return await fs.promises.readFile(path.join(dirPath, name), 'utf8');\n } catch {\n // do nothing\n }\n}\n","import { PackageConfig } from '../packageConfig.js';\n\nexport const EslintUtil = {\n getLintFixSuffix(config: PackageConfig): string {\n return config.containingJsxOrTsx ? ' --rule \"{ react-hooks/exhaustive-deps: 0 }\"' : '';\n },\n};\n","import { Octokit } from '@octokit/core';\n\nconst token =\n process.env.GH_BOT_PAT || process.env.PUBLIC_GH_BOT_PAT || process.env.GH_TOKEN || process.env.GITHUB_TOKEN;\nexport const hasGitHubToken = !!token;\nexport const octokit = new Octokit({\n auth: token,\n});\n\nclass GitHubUtil {\n getOrgAndName(urlOrFullName: string): [string, string] {\n const urlWithoutProtocol = urlOrFullName.split(':').at(-1);\n const names = urlWithoutProtocol?.split('/');\n const org = names?.at(-2) ?? '';\n const name = names?.at(-1)?.replace(/.git$/, '') ?? '';\n return [org, name];\n }\n}\n\nexport const gitHubUtil = new GitHubUtil();\n","import { PackageConfig } from '../packageConfig.js';\n\nconst srcDirectories = {\n node: ['src', 'tests', 'scripts'].sort(),\n blitz0: ['tests', 'scripts', 'app', 'db', 'integrations', 'mailers', 'test'].sort(),\n // We rename 'test' directory to 'tests'\n blitz2: ['src', 'tests', 'scripts', 'db', 'integrations', 'mailers'].sort(),\n};\n\nexport function getSrcDirs(config: PackageConfig): string[] {\n if (config.depending.blitz) {\n return config.depending.blitz === '0' ? srcDirectories.blitz0 : srcDirectories.blitz2;\n }\n return srcDirectories.node;\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport merge from 'deepmerge';\nimport { globby } from 'globby';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { EslintUtil } from '../utils/eslintUtil.js';\nimport { extensions } from '../utils/extensions.js';\nimport { gitHubUtil } from '../utils/githubUtil.js';\nimport { ignoreFileUtil } from '../utils/ignoreFileUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\nimport { spawnSync } from '../utils/spawnUtil.js';\nimport { getSrcDirs } from '../utils/srcDirectories.js';\nimport { BLITZ_VERSION, NEXT_VERSION } from '../utils/versionConstants.js';\n\nconst jsCommonDeps = [\n 'eslint',\n 'eslint-config-prettier',\n 'eslint-plugin-import',\n 'eslint-plugin-sort-class-members',\n 'eslint-plugin-sort-destructure-keys',\n 'eslint-plugin-unicorn',\n];\n\nconst tsCommonDeps = [\n ...jsCommonDeps,\n '@typescript-eslint/eslint-plugin',\n '@typescript-eslint/parser',\n 'eslint-import-resolver-typescript',\n];\n\nconst reactCommonDeps = ['eslint-plugin-react', 'eslint-plugin-react-hooks'];\n\nconst devDeps: { [prop: string]: string[] } = {\n '@willbooster/eslint-config-js': ['@willbooster/eslint-config-js', ...jsCommonDeps],\n '@willbooster/eslint-config-js-react': ['@willbooster/eslint-config-js-react', ...jsCommonDeps, ...reactCommonDeps],\n '@willbooster/eslint-config-ts': ['@willbooster/eslint-config-ts', ...tsCommonDeps],\n '@willbooster/eslint-config-ts-react': ['@willbooster/eslint-config-ts-react', ...tsCommonDeps, ...reactCommonDeps],\n '@willbooster/eslint-config-blitz-next': [\n '@willbooster/eslint-config-blitz-next',\n ...tsCommonDeps,\n ...reactCommonDeps,\n ],\n '../../.eslintrc.json': [],\n};\n\nexport async function generatePackageJson(\n config: PackageConfig,\n rootConfig: PackageConfig,\n skipAddingDeps: boolean\n): Promise<void> {\n return logger.function('generatePackageJson', async () => {\n await core(config, rootConfig, skipAddingDeps);\n });\n}\n\nasync function core(config: PackageConfig, rootConfig: PackageConfig, skipAddingDeps: boolean): Promise<void> {\n const filePath = path.resolve(config.dirPath, 'package.json');\n const jsonText = await fs.promises.readFile(filePath, 'utf8');\n const jsonObj = JSON.parse(jsonText);\n jsonObj.scripts = jsonObj.scripts || {};\n jsonObj.dependencies = jsonObj.dependencies || {};\n jsonObj.devDependencies = jsonObj.devDependencies || {};\n jsonObj.peerDependencies = jsonObj.peerDependencies || {};\n\n await removeDeprecatedStuff(jsonObj);\n\n if (jsonObj.name !== '@willbooster/prettier-config') {\n jsonObj.prettier = '@willbooster/prettier-config';\n }\n\n for (const scriptKey of Object.keys(jsonObj.scripts)) {\n // Fresh repo still requires 'yarn install'\n if (!jsonObj.scripts[scriptKey].includes('git clone')) {\n jsonObj.scripts[scriptKey] = jsonObj.scripts[scriptKey]\n .replace(/yarn\\s*&&\\s*/, '')\n .replace(/yarn\\s*install\\s*&&\\s*/, '');\n }\n }\n\n jsonObj.scripts = merge(jsonObj.scripts, generateScripts(config));\n jsonObj.scripts.prettify += await generatePrettierSuffix(config.dirPath);\n\n let dependencies: string[] = [];\n let devDependencies = ['lint-staged', 'prettier', 'sort-package-json', '@willbooster/prettier-config'];\n const poetryDevDependencies: string[] = [];\n\n if (config.root) {\n // To install the latest pinst\n devDependencies.push('husky', '@willbooster/renovate-config');\n if (config.publicRepo || config.referredByOtherRepo) {\n // https://typicode.github.io/husky/#/?id=install-1\n devDependencies.push('pinst');\n jsonObj.scripts['prepack'] = 'pinst --disable';\n jsonObj.scripts['postpack'] = 'pinst --enable';\n }\n if (config.depending.semanticRelease) {\n devDependencies.push('conventional-changelog-conventionalcommits');\n if (\n !jsonObj.devDependencies['semantic-release'] &&\n !jsonObj.devDependencies['multi-semantic-release'] &&\n !jsonObj.devDependencies['@qiwi/multi-semantic-release']\n ) {\n devDependencies.push('semantic-release');\n }\n jsonObj.version = '0.0.0-semantically-released';\n }\n if (config.depending.playwright) {\n delete jsonObj.devDependencies['playwright'];\n devDependencies.push('@playwright/test');\n }\n if (config.containingSubPackageJsons) {\n jsonObj.workspaces = ['packages/*'];\n } else {\n delete jsonObj.workspaces;\n }\n }\n if (config.depending.sharedScript) {\n devDependencies.push('@willbooster/shared-scripts');\n }\n\n if (\n config.containingJavaScript ||\n config.containingJavaScriptInPackages ||\n config.containingTypeScript ||\n config.containingTypeScriptInPackages\n ) {\n devDependencies.push('eslint', 'micromatch');\n // TODO: not needed anymore?\n if (config.containingTypeScriptInPackages) {\n devDependencies.push('@typescript-eslint/parser');\n }\n }\n\n if (config.containingTypeScript || config.containingTypeScriptInPackages) {\n devDependencies.push('typescript');\n }\n\n if (config.eslintBase) {\n devDependencies.push(...devDeps[config.eslintBase]);\n }\n\n if (config.willBoosterConfigs) {\n dependencies = dependencies.filter((dep) => !dep.includes('@willbooster/'));\n devDependencies = devDependencies.filter((dep) => !dep.includes('@willbooster/'));\n }\n\n if (!jsonObj.name) {\n jsonObj.name = path.basename(config.dirPath);\n }\n\n if (config.containingSubPackageJsons) {\n jsonObj.private = true;\n }\n if (!jsonObj.license) {\n jsonObj.license = 'UNLICENSED';\n }\n if (!jsonObj.private && jsonObj.license !== 'UNLICENSED' && rootConfig.publicRepo) {\n jsonObj.publishConfig ??= {};\n jsonObj.publishConfig.access ??= 'public';\n }\n const [owner] = gitHubUtil.getOrgAndName(config.repository ?? '');\n if (owner === 'WillBooster' || owner === 'WillBoosterLab') {\n jsonObj.author = 'WillBooster Inc.';\n }\n if (!config.root && jsonObj.private && !jsonObj.main) {\n // Make VSCode possible to refactor code across subpackages.\n jsonObj.main = './src';\n }\n\n // https://github.com/semantic-release/semantic-release/issues/2323#issuecomment-1032341621\n if (config.depending.semanticRelease && config.release.npm) {\n if (config.esmPackage) {\n delete jsonObj.resolutions?.['npm/chalk'];\n } else {\n jsonObj.resolutions ||= {};\n jsonObj.resolutions['npm/chalk'] = '^4.1.2';\n }\n }\n\n if (!config.containingSubPackageJsons) {\n if (!config.containingJavaScript && !config.containingTypeScript) {\n delete jsonObj.scripts.lint;\n delete jsonObj.scripts['lint-fix'];\n jsonObj.scripts.cleanup = jsonObj.scripts.cleanup.replace(' && yarn lint-fix', '');\n } else {\n jsonObj.scripts['lint-fix'] += EslintUtil.getLintFixSuffix(config);\n }\n\n if (config.containingPubspecYaml) {\n jsonObj.scripts.lint = 'flutter analyze';\n jsonObj.scripts['lint-fix'] = 'yarn lint';\n const dirs = ['lib', 'test', 'test_driver'].filter((dir) => fs.existsSync(path.resolve(config.dirPath, dir)));\n if (dirs.length > 0) {\n jsonObj.scripts['format-code'] = `flutter format $(find ${dirs.join(\n ' '\n )} -name generated -prune -o -name '*.freezed.dart' -prune -o -name '*.g.dart' -prune -o -name '*.dart' -print)`;\n jsonObj.scripts.format += ` && yarn format-code`;\n }\n }\n\n if (config.containingPoetryLock) {\n if (jsonObj.scripts.postinstall === 'poetry install') {\n delete jsonObj.scripts.postinstall;\n }\n const pythonFiles = await globby('**/*.py', {\n cwd: config.dirPath,\n dot: true,\n gitignore: true,\n ignore: ['test-fixtures'],\n });\n const dirNameSet = new Set<string>();\n for (const pythonFile of pythonFiles) {\n const [first, second] = pythonFile.split(/[/\\\\]/);\n if (second) {\n dirNameSet.add(first);\n }\n }\n if (dirNameSet.size > 0) {\n const dirNamesStr = [...dirNameSet].join(' ');\n jsonObj.scripts[\n 'format-code'\n ] = `poetry run isort --profile black ${dirNamesStr} && poetry run black ${dirNamesStr}`;\n if (jsonObj.scripts.lint) {\n jsonObj.scripts.lint = `poetry run flake8 ${dirNamesStr} && ${jsonObj.scripts.lint}`;\n } else {\n jsonObj.scripts.lint = `poetry run flake8 ${dirNamesStr}`;\n jsonObj.scripts['lint-fix'] = 'yarn lint';\n }\n jsonObj.scripts.format += ` && yarn format-code`;\n poetryDevDependencies.push('black', 'isort', 'flake8');\n }\n }\n\n if (config.repository) {\n jsonObj.repository = config.repository;\n }\n }\n\n if (config.depending.blitz) {\n if (config.depending.blitz === '0') {\n // These cause an error of eslint-plugin-import loading\n devDependencies = devDependencies.filter((dep) => !dep.includes('@typescript-eslint/'));\n // This causes eslint errors\n devDependencies = devDependencies.filter(\n (d) =>\n d !== 'eslint-plugin-react' &&\n d !== 'eslint-import-resolver-typescript' &&\n d !== 'eslint-plugin-import' &&\n d !== 'eslint-plugin-react-hooks'\n );\n } else {\n dependencies.push(\n `@blitzjs/auth@${BLITZ_VERSION}`,\n `@blitzjs/next@${BLITZ_VERSION}`,\n `@blitzjs/rpc@${BLITZ_VERSION}`,\n `next@${NEXT_VERSION}`\n );\n }\n if (!jsonObj.scripts['gen-code']?.startsWith('blitz codegen')) {\n jsonObj.scripts['gen-code'] = 'blitz codegen';\n } else if (!jsonObj.scripts['gen-code'].includes('blitz prisma generate')) {\n jsonObj.scripts['gen-code'] = jsonObj.scripts['gen-code'].replace(\n 'blitz codegen',\n 'blitz codegen && blitz prisma generate'\n );\n }\n } else if (config.depending.prisma && !jsonObj.scripts['gen-code']?.startsWith('prisma generate')) {\n jsonObj.scripts['gen-code'] = 'prisma generate';\n }\n if (Object.keys(jsonObj.dependencies).length === 0) {\n delete jsonObj.dependencies;\n }\n if (Object.keys(jsonObj.devDependencies).length === 0) {\n delete jsonObj.devDependencies;\n }\n if (Object.keys(jsonObj.peerDependencies).length === 0) {\n delete jsonObj.peerDependencies;\n }\n\n await fs.promises.writeFile(filePath, JSON.stringify(jsonObj));\n\n if (!skipAddingDeps) {\n // We cannot add dependencies which are already included in devDependencies.\n dependencies = dependencies.filter((dep) => !jsonObj.devDependencies?.[dep]);\n if (dependencies.length > 0) {\n spawnSync('yarn', ['add', ...new Set(dependencies)], config.dirPath);\n }\n // We cannot add devDependencies which are already included in dependencies.\n devDependencies = devDependencies.filter((dep) => !jsonObj.dependencies?.[dep]);\n if (devDependencies.length > 0) {\n spawnSync('yarn', ['add', '-D', ...new Set(devDependencies)], config.dirPath);\n }\n if (poetryDevDependencies.length > 0) {\n spawnSync('poetry', ['add', '--group', 'dev', ...new Set(poetryDevDependencies)], config.dirPath);\n }\n }\n}\n\n// TODO: remove the following migration code in future\nasync function removeDeprecatedStuff(jsonObj: any): Promise<void> {\n if (jsonObj.author === 'WillBooster LLC') {\n jsonObj.author = 'WillBooster Inc.';\n }\n delete jsonObj.scripts['sort-package-json'];\n delete jsonObj.scripts['sort-all-package-json'];\n delete jsonObj.scripts['typecheck/warn'];\n delete jsonObj.scripts['typecheck:gen-code'];\n delete jsonObj.scripts['typecheck:codegen'];\n delete jsonObj.dependencies['tslib'];\n delete jsonObj.devDependencies['@willbooster/eslint-config'];\n delete jsonObj.devDependencies['@willbooster/eslint-config-react'];\n delete jsonObj.devDependencies['@willbooster/tsconfig'];\n delete jsonObj.devDependencies['eslint-import-resolver-node'];\n delete jsonObj.devDependencies['eslint-plugin-prettier'];\n delete jsonObj.devDependencies['lerna'];\n // To install the latest pinst\n delete jsonObj.devDependencies['pinst'];\n delete jsonObj.scripts['flutter-format'];\n delete jsonObj.scripts['format-flutter'];\n delete jsonObj.scripts['python-format'];\n delete jsonObj.scripts['format-python'];\n delete jsonObj.scripts['prettier'];\n for (const deps of Object.values(devDeps)) {\n for (const dep of deps) {\n delete jsonObj.devDependencies[dep];\n }\n }\n await promisePool.run(() => fs.promises.rm('lerna.json', { force: true }));\n}\n\nexport function generateScripts(config: PackageConfig): Record<string, string> {\n let scripts: Record<string, string> = {\n cleanup: 'yarn format && yarn lint-fix',\n format: `sort-package-json && yarn prettify`,\n lint: `eslint --color \"./{${getSrcDirs(config)}}/**/*.{${extensions.eslint.join(',')}}\"`,\n 'lint-fix': 'yarn lint --fix',\n prettify: `prettier --cache --color --write \"**/{.*/,}*.{${extensions.prettier.join(',')}}\" \"!**/test-fixtures/**\"`,\n typecheck: 'tsc --noEmit --Pretty',\n };\n if (config.containingSubPackageJsons) {\n scripts = merge(\n { ...scripts },\n {\n format: `sort-package-json && yarn prettify && yarn workspaces foreach --parallel --verbose run format`,\n lint: `yarn workspaces foreach --parallel --verbose run lint`,\n 'lint-fix': 'yarn workspaces foreach --parallel --verbose run lint-fix',\n prettify: `prettier --cache --color --write \"**/{.*/,}*.{${extensions.prettier.join(\n ','\n )}}\" \"!**/packages/**\" \"!**/test-fixtures/**\"`,\n // CI=1 prevents vitest from enabling watch.\n // FORCE_COLOR=3 make wb enable color output.\n test: 'CI=1 FORCE_COLOR=3 yarn workspaces foreach --verbose run test',\n typecheck: 'yarn workspaces foreach --parallel --verbose run typecheck',\n }\n );\n if (!config.containingTypeScript && !config.containingTypeScriptInPackages) {\n delete scripts.typecheck;\n }\n } else {\n if (config.depending.sharedScript) {\n scripts.typecheck = 'wb typecheck';\n }\n if (!config.containingTypeScript && !config.containingTypeScriptInPackages) {\n delete scripts.typecheck;\n }\n if (config.depending.pyright) {\n scripts.typecheck = scripts.typecheck ? `${scripts.typecheck} && ` : '';\n scripts.typecheck += 'pyright';\n }\n }\n return scripts;\n}\n\nasync function generatePrettierSuffix(dirPath: string): Promise<string> {\n const filePath = path.resolve(dirPath, '.prettierignore');\n const existingContent = await fs.promises.readFile(filePath, 'utf8');\n const index = existingContent.indexOf(ignoreFileUtil.separatorPrefix);\n if (index < 0) return '';\n\n const originalContent = existingContent.slice(0, index);\n const lines = originalContent\n .split('\\n')\n .map((line) => {\n const newLine = line.trim();\n return newLine.endsWith('/') ? newLine.slice(0, -1) : newLine;\n })\n .filter((l) => l && !l.startsWith('#') && !l.includes('/'));\n\n return lines.map((line) => ` \"!**/${line}/**\"`).join('');\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { promisePool } from '../utils/promisePool.js';\nimport { spawnSync } from '../utils/spawnUtil.js';\n\nimport { generateScripts } from './packageJson.js';\n\nconst DEFAULT_COMMAND = 'npm test';\n\nconst settings = {\n preCommit: 'node node_modules/.bin/lint-staged',\n prePush: `yarn typecheck`,\n prePushForLab: `\nif [ $(git branch --show-current) = \"main\" ] && [ $(git config user.email) != \"exkazuu@gmail.com\" ]; then\n echo \"************************************************\"\n echo \"*** Don't push main branch directly. Use PR! ***\"\n echo \"************************************************\"\n exit 1\nfi\n\nyarn typecheck\n`.trim(),\n postMerge: `\nchanged_files=\"$(git diff-tree -r --name-only --no-commit-id ORIG_HEAD HEAD)\"\n\nrun_if_changed() {\n if echo \"$changed_files\" | grep --quiet -E \"$1\"; then\n eval \"$2\"\n fi\n}\n`.trim(),\n};\n\nexport async function generateHuskyrc(config: PackageConfig): Promise<void> {\n return logger.function('generateHuskyrc', async () => {\n await core(config);\n });\n}\n\nasync function core(config: PackageConfig): Promise<void> {\n const packageJsonPath = path.resolve(config.dirPath, 'package.json');\n const jsonText = await fs.promises.readFile(packageJsonPath, 'utf8');\n const packageJson = JSON.parse(jsonText);\n packageJson.scripts ||= {};\n delete packageJson.scripts['postinstall'];\n delete packageJson.scripts['postpublish'];\n delete packageJson.scripts['prepare'];\n delete packageJson.scripts['prepublishOnly'];\n delete packageJson.scripts['prepack'];\n delete packageJson.scripts['postpack'];\n\n const dirPath = path.resolve(config.dirPath, '.husky');\n await Promise.all([\n fs.promises.writeFile(packageJsonPath, JSON.stringify(packageJson, undefined, 2)),\n fs.promises.rm(dirPath, { force: true, recursive: true }),\n ]);\n spawnSync('yarn', ['dlx', 'husky-init', '--yarn2'], config.dirPath);\n\n const preCommitFilePath = path.resolve(dirPath, 'pre-commit');\n const content = await fs.promises.readFile(preCommitFilePath, 'utf8');\n\n await promisePool.run(() => fs.promises.rm(path.resolve(config.dirPath, '.huskyrc.json'), { force: true }));\n await promisePool.run(() =>\n fs.promises.writeFile(preCommitFilePath, content.replace(DEFAULT_COMMAND, settings.preCommit))\n );\n\n const { typecheck } = generateScripts(config);\n if (typecheck) {\n let prePush = config.repository?.startsWith('github:WillBoosterLab/') ? settings.prePushForLab : settings.prePush;\n prePush = prePush.replace(\n 'yarn typecheck',\n typecheck\n .replace('tsc ', 'node node_modules/.bin/tsc ')\n .replace('wb ', 'node node_modules/.bin/wb ')\n // pyright has no arguments\n .replace('pyright', 'node node_modules/.bin/pyright')\n );\n await promisePool.run(() =>\n fs.promises.writeFile(path.resolve(dirPath, 'pre-push'), content.replace(DEFAULT_COMMAND, prePush), {\n mode: 0o755,\n })\n );\n }\n\n const postMergeCommands: string[] = [];\n if (config.versionsText) {\n postMergeCommands.push('run_if_changed \"\\\\..+-version\" \"asdf plugin update --all\"');\n }\n // Pythonがないとインストールできない処理系が存在するため、強制的に最初にインストールする。\n if (config.versionsText?.includes('python ')) {\n postMergeCommands.push('run_if_changed \"\\\\..+-version\" \"asdf install python\"');\n }\n if (config.versionsText) {\n postMergeCommands.push('run_if_changed \"\\\\..+-version\" \"asdf install\"');\n }\n const rmNextDirectory = config.depending.blitz ? ' && rm -Rf .next' : '';\n postMergeCommands.push(`run_if_changed \"package\\\\.json\" \"yarn${rmNextDirectory}\"`);\n if (config.containingPoetryLock) {\n postMergeCommands.push('run_if_changed \"poetry\\\\.lock\" \"poetry install\"');\n }\n if (config.depending.blitz) {\n postMergeCommands.push(\n 'run_if_changed \"db/schema.prisma\" \"node node_modules/.bin/blitz prisma migrate deploy\"',\n 'run_if_changed \"db/schema.prisma\" \"node node_modules/.bin/blitz prisma generate\"',\n 'run_if_changed \"db/schema.prisma\" \"node node_modules/.bin/blitz codegen\"'\n );\n } else if (config.depending.prisma) {\n postMergeCommands.push(\n 'run_if_changed \"prisma/schema.prisma\" \"node node_modules/.bin/prisma migrate deploy\"',\n 'run_if_changed \"prisma/schema.prisma\" \"node node_modules/.bin/prisma generate\"'\n );\n }\n const postMergeCommand = content.replace(DEFAULT_COMMAND, `${settings.postMerge}\\n\\n${postMergeCommands.join('\\n')}`);\n await promisePool.run(() =>\n fs.promises.writeFile(path.resolve(dirPath, 'post-merge'), postMergeCommand, {\n mode: 0o755,\n })\n );\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { fsUtil } from '../utils/fsUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nconst newContent = `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n <component name=\"ProjectTasksOptions\">\n <TaskOptions isEnabled=\"true\">\n <option name=\"arguments\" value=\"node node_modules/.bin/prettier --cache --write $FilePathRelativeToProjectRoot$\" />\n <option name=\"checkSyntaxErrors\" value=\"false\" />\n <option name=\"description\" />\n <option name=\"exitCodeBehavior\" value=\"ERROR\" />\n <option name=\"fileExtension\" value=\"ts\" />\n <option name=\"immediateSync\" value=\"false\" />\n <option name=\"name\" value=\"Prettier (.ts)\" />\n <option name=\"output\" value=\"$FilePathRelativeToProjectRoot$\" />\n <option name=\"outputFilters\">\n <array />\n </option>\n <option name=\"outputFromStdout\" value=\"false\" />\n <option name=\"program\" value=\"yarn\" />\n <option name=\"runOnExternalChanges\" value=\"false\" />\n <option name=\"scopeName\" value=\"Project Files\" />\n <option name=\"trackOnlyRoot\" value=\"false\" />\n <option name=\"workingDir\" value=\"$ProjectFileDir$\" />\n <envs />\n </TaskOptions>\n <TaskOptions isEnabled=\"true\">\n <option name=\"arguments\" value=\"node node_modules/.bin/prettier --cache --write $FilePathRelativeToProjectRoot$\" />\n <option name=\"checkSyntaxErrors\" value=\"false\" />\n <option name=\"description\" />\n <option name=\"exitCodeBehavior\" value=\"ERROR\" />\n <option name=\"fileExtension\" value=\"tsx\" />\n <option name=\"immediateSync\" value=\"false\" />\n <option name=\"name\" value=\"Prettier (.tsx)\" />\n <option name=\"output\" value=\"$FilePathRelativeToProjectRoot$\" />\n <option name=\"outputFilters\">\n <array />\n </option>\n <option name=\"outputFromStdout\" value=\"false\" />\n <option name=\"program\" value=\"yarn\" />\n <option name=\"runOnExternalChanges\" value=\"false\" />\n <option name=\"scopeName\" value=\"Project Files\" />\n <option name=\"trackOnlyRoot\" value=\"false\" />\n <option name=\"workingDir\" value=\"$ProjectFileDir$\" />\n <envs />\n </TaskOptions>\n <TaskOptions isEnabled=\"true\">\n <option name=\"arguments\" value=\"node node_modules/.bin/prettier --cache --write $FilePathRelativeToProjectRoot$\" />\n <option name=\"checkSyntaxErrors\" value=\"false\" />\n <option name=\"description\" />\n <option name=\"exitCodeBehavior\" value=\"ERROR\" />\n <option name=\"fileExtension\" value=\"js\" />\n <option name=\"immediateSync\" value=\"false\" />\n <option name=\"name\" value=\"Prettier (.js)\" />\n <option name=\"output\" value=\"$FilePathRelativeToProjectRoot$\" />\n <option name=\"outputFilters\">\n <array />\n </option>\n <option name=\"outputFromStdout\" value=\"false\" />\n <option name=\"program\" value=\"yarn\" />\n <option name=\"runOnExternalChanges\" value=\"false\" />\n <option name=\"scopeName\" value=\"Project Files\" />\n <option name=\"trackOnlyRoot\" value=\"false\" />\n <option name=\"workingDir\" value=\"$ProjectFileDir$\" />\n <envs />\n </TaskOptions>\n <TaskOptions isEnabled=\"true\">\n <option name=\"arguments\" value=\"node node_modules/.bin/prettier --cache --write $FilePathRelativeToProjectRoot$\" />\n <option name=\"checkSyntaxErrors\" value=\"false\" />\n <option name=\"description\" />\n <option name=\"exitCodeBehavior\" value=\"ERROR\" />\n <option name=\"fileExtension\" value=\"json\" />\n <option name=\"immediateSync\" value=\"false\" />\n <option name=\"name\" value=\"Prettier (.json)\" />\n <option name=\"output\" value=\"$FilePathRelativeToProjectRoot$\" />\n <option name=\"outputFilters\">\n <array />\n </option>\n <option name=\"outputFromStdout\" value=\"false\" />\n <option name=\"program\" value=\"yarn\" />\n <option name=\"runOnExternalChanges\" value=\"false\" />\n <option name=\"scopeName\" value=\"Project Files\" />\n <option name=\"trackOnlyRoot\" value=\"false\" />\n <option name=\"workingDir\" value=\"$ProjectFileDir$\" />\n <envs />\n </TaskOptions>\n <TaskOptions isEnabled=\"true\">\n <option name=\"arguments\" value=\"node node_modules/.bin/prettier --cache --write $FilePathRelativeToProjectRoot$\" />\n <option name=\"checkSyntaxErrors\" value=\"false\" />\n <option name=\"description\" />\n <option name=\"exitCodeBehavior\" value=\"ERROR\" />\n <option name=\"fileExtension\" value=\"md\" />\n <option name=\"immediateSync\" value=\"false\" />\n <option name=\"name\" value=\"Prettier (.md)\" />\n <option name=\"output\" value=\"$FilePathRelativeToProjectRoot$\" />\n <option name=\"outputFilters\">\n <array />\n </option>\n <option name=\"outputFromStdout\" value=\"false\" />\n <option name=\"program\" value=\"yarn\" />\n <option name=\"runOnExternalChanges\" value=\"false\" />\n <option name=\"scopeName\" value=\"Project Files\" />\n <option name=\"trackOnlyRoot\" value=\"false\" />\n <option name=\"workingDir\" value=\"$ProjectFileDir$\" />\n <envs />\n </TaskOptions>\n <TaskOptions isEnabled=\"true\">\n <option name=\"arguments\" value=\"node node_modules/.bin/prettier --cache --write $FilePathRelativeToProjectRoot$\" />\n <option name=\"checkSyntaxErrors\" value=\"false\" />\n <option name=\"description\" />\n <option name=\"exitCodeBehavior\" value=\"ERROR\" />\n <option name=\"fileExtension\" value=\"html\" />\n <option name=\"immediateSync\" value=\"false\" />\n <option name=\"name\" value=\"Prettier (.html)\" />\n <option name=\"output\" value=\"$FilePathRelativeToProjectRoot$\" />\n <option name=\"outputFilters\">\n <array />\n </option>\n <option name=\"outputFromStdout\" value=\"false\" />\n <option name=\"program\" value=\"yarn\" />\n <option name=\"runOnExternalChanges\" value=\"false\" />\n <option name=\"scopeName\" value=\"Project Files\" />\n <option name=\"trackOnlyRoot\" value=\"false\" />\n <option name=\"workingDir\" value=\"$ProjectFileDir$\" />\n <envs />\n </TaskOptions>\n </component>\n</project>\n`;\n\nexport async function generateIdeaSettings(config: PackageConfig): Promise<void> {\n return logger.function('generateIdeaSettings', async () => {\n const dirPath = path.resolve(config.dirPath, '.idea');\n if (fs.existsSync(dirPath)) {\n const filePath = path.resolve(dirPath, 'watcherTasks.xml');\n await (config.containingJavaScript ||\n config.containingJavaScriptInPackages ||\n config.containingTypeScript ||\n config.containingTypeScriptInPackages ||\n (config.containingPackageJson &&\n !config.containingPubspecYaml &&\n !config.containingGemfile &&\n !config.containingGoMod &&\n !config.containingPomXml)\n ? promisePool.run(() => fsUtil.generateFile(filePath, newContent))\n : promisePool.run(() => fs.promises.rm(filePath, { force: true })));\n }\n });\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { EslintUtil } from '../utils/eslintUtil.js';\nimport { extensions } from '../utils/extensions.js';\nimport { fsUtil } from '../utils/fsUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\nimport { getSrcDirs } from '../utils/srcDirectories.js';\n\nexport async function generateLintstagedrc(config: PackageConfig): Promise<void> {\n return logger.function('generateLintstagedrc', async () => {\n await core(config);\n });\n}\n\nasync function core(config: PackageConfig): Promise<void> {\n const packagePrefix = config.root ? 'node node_modules/.bin/' : 'node ../../node_modules/.bin/';\n const lines: string[] = [];\n if (config.containingJavaScript || config.containingTypeScript) {\n const eslint = `\n '${getEslintKey(config)}': [${JSON.stringify(\n `${packagePrefix}eslint --fix${EslintUtil.getLintFixSuffix(config)}`\n )}, '${packagePrefix}prettier --cache --write'],`;\n lines.push(eslint);\n }\n const packagesFilter = config.root ? \" && !file.includes('/packages/')\" : '';\n lines.push(`\n './**/*.{${extensions.prettier.join(',')}}': files => {\n ${config.containingJavaScript || config.containingTypeScript ? getEslintFilterForPrettier(config) : ''}\n const filteredFiles = files.filter(file => !file.includes('/test-fixtures/')${packagesFilter});\n if (filteredFiles.length === 0) return [];\n const commands = [\\`${packagePrefix}prettier --cache --write \\${filteredFiles.join(' ')}\\`];\n if (filteredFiles.some(file => file.endsWith('package.json'))) {\n commands.push('${packagePrefix}sort-package-json');\n }\n return commands;\n },`);\n if (config.containingPubspecYaml) {\n lines.push(`\n './{lib,test,test_driver}/**/*.dart': files => {\n const filteredFiles = files.filter(file => !file.includes('generated'))\n .filter(file => !file.endsWith('.freezed.dart') && !file.endsWith('.g.dart'));\n if (filteredFiles.length === 0) return [];\n return [\\`flutter format \\${filteredFiles.join(' ')}\\`];\n },`);\n }\n if (config.containingPoetryLock) {\n lines.push(`\n './**/*.py': [\n 'poetry run isort --profile black --filter-files',\n 'poetry run black',\n 'poetry run flake8'\n ],`);\n }\n\n const newContent = `${\n config.containingJavaScript || config.containingTypeScript ? \"const micromatch = require('micromatch');\" : ''\n }\n\nmodule.exports = {${lines.join('')}\n};\n`;\n\n const filePath = path.resolve(config.dirPath, '.lintstagedrc.cjs');\n await promisePool.run(() => fs.promises.rm(path.resolve(config.dirPath, '.lintstagedrc.js'), { force: true }));\n await promisePool.run(() => fs.promises.rm(path.resolve(config.dirPath, '.lintstagedrc.json'), { force: true }));\n await promisePool.run(() => fsUtil.generateFile(filePath, newContent));\n}\n\nfunction getEslintKey(config: PackageConfig): string {\n const dirs = getSrcDirs(config);\n return `./{${dirs.join(',')}}/**/*.{${extensions.eslint.join(',')}}`;\n}\n\nfunction getEslintFilterForPrettier(config: PackageConfig): string {\n return `files = micromatch.not(files, '${getEslintKey(config)}');`;\n}\n","import path from 'node:path';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { fsUtil } from '../utils/fsUtil.js';\nimport { ignoreFileUtil } from '../utils/ignoreFileUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nconst commonContent = `\n3rd-party/\nandroid/\nios/\nno-format/\ntest-fixtures/\n*.d.ts\n*.min.js\n.yarn/\n.pnp.js\n`;\n\nexport async function generatePrettierignore(config: PackageConfig): Promise<void> {\n return logger.function('generatePrettierignore', async () => {\n const filePath = path.resolve(config.dirPath, '.prettierignore');\n const content = (await fsUtil.readFileIgnoringError(filePath)) ?? '';\n const headUserContent = ignoreFileUtil.getHeadUserContent(content);\n const tailUserContent = ignoreFileUtil.getTailUserContent(content);\n\n const gitignoreFilePath = path.resolve(config.dirPath, '.gitignore');\n const gitignoreContent = (await ignoreFileUtil.readGitignoreWithoutSeparators(gitignoreFilePath)) || '';\n\n let additionalContent = '';\n if (config.containingPubspecYaml) {\n additionalContent = `\nandroid/app/\nios/Runner/Assets.xcassets/\npubspec.yaml\n`;\n }\n\n const newContent = headUserContent + commonContent + additionalContent + gitignoreContent + tailUserContent;\n await promisePool.run(() => fsUtil.generateFile(filePath, newContent));\n });\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport merge from 'deepmerge';\nimport cloneDeep from 'lodash.clonedeep';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { fsUtil } from '../utils/fsUtil.js';\nimport { overwriteMerge } from '../utils/mergeUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nconst jsonObj = {\n venvPath: '.',\n venv: '.venv',\n};\n\nexport async function generatePyrightConfigJson(config: PackageConfig): Promise<void> {\n return logger.function('generatePyrightConfigJson', async () => {\n let newSettings: unknown = cloneDeep(jsonObj);\n const filePath = path.resolve(config.dirPath, 'pyrightconfig.json');\n try {\n const oldContent = await fs.promises.readFile(filePath, 'utf8');\n const oldSettings = JSON.parse(oldContent);\n newSettings = merge.all([newSettings, oldSettings, newSettings], { arrayMerge: overwriteMerge });\n } catch {\n // do nothing\n }\n const newContent = JSON.stringify(newSettings);\n await promisePool.run(() => fsUtil.generateFile(filePath, newContent));\n });\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { fsUtil } from '../utils/fsUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nexport async function generateReadme(config: PackageConfig): Promise<void> {\n return logger.function('generateReadme', async () => {\n const filePath = path.resolve(config.dirPath, 'README.md');\n let newContent = await fs.promises.readFile(filePath, 'utf8');\n\n newContent = insertBadge(config, newContent, semanticReleaseBadge, '.releaserc.json');\n\n const repository = config.repository?.slice(config.repository?.indexOf(':') + 1);\n const fileNames = fs.readdirSync(`${config.dirPath}/.github/workflows`);\n for (const fileName of fileNames) {\n if (!fileName.startsWith('test') && !fileName.startsWith('deploy')) continue;\n\n let badgeName = fileName;\n badgeName = badgeName.charAt(0).toUpperCase() + badgeName.slice(1, badgeName.indexOf('.'));\n badgeName = badgeName.replace('-', ' ');\n const badge = `[![${badgeName}](https://github.com/${repository}/actions/workflows/${fileName}/badge.svg)](https://github.com/${repository}/actions/workflows/${fileName})`;\n newContent = insertBadge(config, newContent, badge, `.github/workflows/${fileName}`);\n }\n\n await promisePool.run(() => fsUtil.generateFile(filePath, newContent));\n });\n}\n\nconst semanticReleaseBadge =\n '[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)';\n\nfunction insertBadge(config: PackageConfig, newContent: string, badge: string, fileName: string): string {\n if (!fs.existsSync(path.resolve(config.dirPath, fileName))) {\n return newContent;\n }\n\n // 既にbadgeがある場合は削除\n const badgePos = newContent.indexOf(badge);\n if (badgePos >= 0) {\n newContent = newContent.slice(0, badgePos) + newContent.slice(badgePos + badge.length);\n }\n let inserted = false;\n for (let i = 0; i < newContent.length; i++) {\n if (newContent[i] === '\\n') {\n inserted = true;\n newContent = `${newContent.slice(0, i + 1)}${badge}\\n${newContent.slice(i + 1)}`;\n break;\n }\n }\n if (!inserted) newContent = `${newContent}\\n${badge}\\n`;\n return newContent;\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport merge from 'deepmerge';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { fsUtil } from '../utils/fsUtil.js';\nimport { overwriteMerge } from '../utils/mergeUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nexport async function generateReleaserc(rootConfig: PackageConfig): Promise<void> {\n return logger.function('generateReleaserc', async () => {\n const filePath = path.resolve(rootConfig.dirPath, '.releaserc.json');\n try {\n const settings = JSON.parse(await fs.promises.readFile(filePath, 'utf8'));\n const plugins = settings?.plugins || [];\n for (let i = 0; i < plugins.length; i++) {\n const plugin = Array.isArray(plugins[i]) ? plugins[i][0] : plugins[i];\n const oldConfig = (Array.isArray(plugins[i]) && plugins[i][1]) || {};\n if (plugin === '@semantic-release/commit-analyzer') {\n plugins[i] = [\n '@semantic-release/commit-analyzer',\n merge.all(\n [\n oldConfig,\n {\n preset: 'conventionalcommits',\n },\n ],\n { arrayMerge: overwriteMerge }\n ),\n ];\n } else if (plugin === '@semantic-release/github') {\n plugins[i] = [\n '@semantic-release/github',\n merge.all(\n [\n oldConfig,\n {\n successComment: false,\n labels: ['r: semantic-release'],\n releasedLabels: ['released :bookmark:'],\n },\n ],\n { arrayMerge: overwriteMerge }\n ),\n ];\n }\n }\n const newContent = JSON.stringify(settings);\n await promisePool.run(() => fsUtil.generateFile(filePath, newContent));\n } catch {\n // do nothing\n }\n });\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport merge from 'deepmerge';\nimport cloneDeep from 'lodash.clonedeep';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { fsUtil } from '../utils/fsUtil.js';\nimport { overwriteMerge } from '../utils/mergeUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nconst jsonObj = {\n extends: ['@willbooster'],\n};\n\nexport async function generateRenovateJson(config: PackageConfig): Promise<void> {\n return logger.function('generateRenovateJson', async () => {\n let newSettings: any = cloneDeep(jsonObj);\n const filePath = path.resolve(config.dirPath, '.renovaterc.json');\n try {\n const oldContent = await fs.promises.readFile(filePath, 'utf8');\n const oldSettings = JSON.parse(oldContent) as any;\n newSettings = merge.all([newSettings, oldSettings, newSettings], { arrayMerge: overwriteMerge });\n } catch {\n // do nothing\n }\n\n // Don't upgrade Next.js automatically\n if (config.depending.blitz && config.depending.blitz !== '0') {\n newSettings.packageRules ??= [];\n if (!newSettings.packageRules.some((rule: any) => rule.packageNames.includes('next'))) {\n newSettings.packageRules.push({ packageNames: ['next'], enabled: false });\n }\n }\n\n await promisePool.run(() => fs.promises.rm(path.resolve(config.dirPath, '.dependabot'), { force: true }));\n await promisePool.run(() => fs.promises.rm(path.resolve(config.dirPath, 'renovate.json'), { force: true }));\n const newContent = JSON.stringify(newSettings);\n await promisePool.run(() => fsUtil.generateFile(filePath, newContent));\n });\n}\n","export function sortKeys<T extends Record<string, unknown>>(obj: T): T {\n const keyAndValues = Object.entries(obj).sort(([key1], [key2]) => key1.localeCompare(key2));\n for (const [key, value] of keyAndValues) {\n delete obj[key];\n (obj as Record<string, unknown>)[key] = value;\n }\n return obj;\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport merge from 'deepmerge';\nimport cloneDeep from 'lodash.clonedeep';\nimport { TsConfigJson } from 'type-fest';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { fsUtil } from '../utils/fsUtil.js';\nimport { combineMerge } from '../utils/mergeUtil.js';\nimport { sortKeys } from '../utils/objectUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nconst rootJsonObj = {\n compilerOptions: {\n target: 'ESNext',\n module: 'ESNext',\n moduleResolution: 'Node',\n jsx: 'react-jsx',\n alwaysStrict: true,\n strict: true,\n skipLibCheck: true,\n allowSyntheticDefaultImports: true,\n esModuleInterop: true,\n resolveJsonModule: true,\n declaration: true,\n sourceMap: true,\n importHelpers: false,\n outDir: 'dist',\n typeRoots: ['./node_modules/@types', './@types'],\n },\n include: [\n 'src/**/*',\n 'tests/**/*',\n 'scripts/**/*',\n 'packages/*/src/**/*',\n 'packages/*/tests/**/*',\n 'packages/*/scripts/**/*',\n ],\n};\n\nconst subJsonObj = {\n compilerOptions: {\n target: 'ESNext',\n module: 'ESNext',\n moduleResolution: 'Node',\n jsx: 'react-jsx',\n alwaysStrict: true,\n strict: true,\n skipLibCheck: true,\n allowSyntheticDefaultImports: true,\n esModuleInterop: true,\n resolveJsonModule: true,\n declaration: true,\n sourceMap: true,\n importHelpers: false,\n outDir: 'dist',\n typeRoots: ['../../node_modules/@types', '../../@types', './@types'],\n },\n include: ['src/**/*', 'tests/**/*', 'scripts/**/*'],\n};\n\nexport async function generateTsconfig(config: PackageConfig, rootConfig: PackageConfig): Promise<void> {\n return logger.function('generateTsconfig', async () => {\n if (rootConfig.depending.blitz) return;\n\n let newSettings = cloneDeep(config.root ? rootJsonObj : subJsonObj) as TsConfigJson;\n if (!config.containingJsxOrTsx && !config.containingJsxOrTsxInPackages) {\n delete newSettings.compilerOptions?.jsx;\n }\n if (config.root && !config.containingSubPackageJsons) {\n newSettings.include = newSettings.include?.filter((dirPath: string) => !dirPath.startsWith('packages/*/'));\n }\n if (config.esmPackage) {\n newSettings.compilerOptions = { ...newSettings.compilerOptions, moduleResolution: 'NodeNext' };\n }\n\n const filePath = path.resolve(config.dirPath, 'tsconfig.json');\n try {\n const existingContent = await fs.promises.readFile(filePath, 'utf8');\n const oldSettings = JSON.parse(existingContent) as TsConfigJson;\n if (oldSettings.extends === './node_modules/@willbooster/tsconfig/tsconfig.json') {\n delete oldSettings.extends;\n }\n // Don't modify \"target\", \"module\" and \"moduleResolution\".\n delete newSettings.compilerOptions?.target;\n delete newSettings.compilerOptions?.module;\n delete newSettings.compilerOptions?.moduleResolution;\n if (oldSettings.compilerOptions?.jsx) {\n delete newSettings.compilerOptions?.jsx;\n }\n newSettings = merge.all([newSettings, oldSettings, newSettings], { arrayMerge: combineMerge });\n newSettings.include = newSettings.include?.filter(\n (dirPath: string) => !dirPath.includes('@types') && !dirPath.includes('__tests__')\n );\n } catch {\n // do nothing\n }\n sortKeys(newSettings.compilerOptions ?? {});\n newSettings.include?.sort();\n const newContent = JSON.stringify(newSettings);\n await promisePool.run(() => fsUtil.generateFile(filePath, newContent));\n });\n}\n","/* eslint-disable unicorn/no-null */\n\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nimport merge from 'deepmerge';\nimport yaml from 'js-yaml';\nimport cloneDeep from 'lodash.clonedeep';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { combineMerge } from '../utils/mergeUtil.js';\nimport { sortKeys } from '../utils/objectUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nconst workflows = {\n test: {\n name: 'Test',\n on: {\n pull_request: {\n 'paths-ignore': ['**.md', '**/docs/**'],\n },\n push: {\n branches: ['main', 'wbfy', 'renovate/**'],\n 'paths-ignore': ['**.md', '**/docs/**'],\n },\n },\n // cf. https://docs.github.com/en/actions/using-jobs/using-concurrency#example-using-a-fallback-value\n concurrency: {\n group: '${{ github.workflow }}-${{ github.head_ref || github.run_id }}',\n 'cancel-in-progress': true,\n },\n jobs: {\n test: {\n uses: 'WillBooster/reusable-workflows/.github/workflows/test.yml@main',\n },\n },\n },\n release: {\n name: 'Release',\n on: {\n push: {\n branches: [],\n },\n },\n concurrency: {\n group: '${{ github.workflow }}',\n 'cancel-in-progress': false,\n },\n jobs: {\n release: {\n uses: 'WillBooster/reusable-workflows/.github/workflows/release.yml@main',\n },\n },\n },\n wbfy: {\n name: 'Willboosterify',\n on: {\n workflow_dispatch: null,\n },\n jobs: {\n wbfy: {\n uses: 'WillBooster/reusable-workflows/.github/workflows/wbfy.yml@main',\n },\n },\n },\n 'wbfy-merge': {\n name: 'Merge wbfy',\n on: {\n workflow_dispatch: null,\n },\n jobs: {\n 'wbfy-merge': {\n uses: 'WillBooster/reusable-workflows/.github/workflows/wbfy-merge.yml@main',\n },\n },\n },\n 'semantic-pr': {\n name: 'Lint PR title',\n on: {\n pull_request_target: {\n types: ['opened', 'edited', 'synchronize'],\n },\n },\n jobs: {\n 'semantic-pr': {\n uses: 'WillBooster/reusable-workflows/.github/workflows/semantic-pr.yml@main',\n },\n },\n },\n 'notify-ready': {\n name: 'Notify ready',\n on: {\n issues: {\n types: ['labeled'],\n },\n },\n jobs: {\n 'notify-ready': {\n uses: 'WillBooster/reusable-workflows/.github/workflows/notify-ready.yml@main',\n secrets: {\n DISCORD_WEBHOOK_URL: '${{ secrets.DISCORD_WEBHOOK_URL_FOR_READY }}',\n },\n },\n },\n },\n 'close-comment': {\n name: 'Add close comment',\n on: {\n pull_request: {\n types: ['opened'],\n },\n },\n jobs: {\n 'close-comment': {\n uses: 'WillBooster/reusable-workflows/.github/workflows/close-comment.yml@main',\n },\n },\n },\n 'add-issue-to-project': {\n name: 'Add issue to github project',\n on: {\n issues: {\n types: ['labeled'],\n },\n },\n jobs: {\n 'add-issue-to-project': {\n uses: 'WillBooster/reusable-workflows/.github/workflows/add-issue-to-project.yml@main',\n secrets: {\n GH_PROJECT_URL: '${{ secrets.GH_PROJECT_URL }}',\n },\n },\n },\n },\n} as Record<KnownKind, any>;\n\ntype KnownKind =\n | 'test'\n | 'release'\n | 'sync'\n | 'wbfy'\n | 'wbfy-merge'\n | 'semantic-pr'\n | 'notify-ready'\n | 'close-comment'\n | 'add-issue-to-project';\n\nexport async function generateWorkflows(rootConfig: PackageConfig): Promise<void> {\n return logger.function('generateWorkflow', async () => {\n const workflowsPath = path.resolve(rootConfig.dirPath, '.github', 'workflows');\n await fs.promises.mkdir(workflowsPath, { recursive: true });\n\n // Remove config of semantic pull request\n const semanticYmlPath = path.resolve(rootConfig.dirPath, '.github', 'semantic.yml');\n await promisePool.run(() => fs.promises.rm(semanticYmlPath, { force: true, recursive: true }));\n\n const entries = await fs.promises.readdir(workflowsPath, { withFileTypes: true });\n const fileNameSet = new Set([\n 'test.yml',\n 'wbfy.yml',\n 'wbfy-merge.yml',\n 'semantic-pr.yml',\n 'close-comment.yml',\n 'add-issue-to-project.yml',\n ...entries.filter((dirent) => dirent.isFile() && dirent.name.endsWith('.yml')).map((dirent) => dirent.name),\n ]);\n if (rootConfig.depending.semanticRelease) {\n fileNameSet.add('release.yml');\n }\n if (rootConfig.publicRepo || rootConfig.repository?.startsWith('github:WillBoosterLab/')) {\n fileNameSet.add('notify-ready.yml');\n }\n\n for (const fileName of fileNameSet) {\n // 実際はKnownKind以外の値も代入されることに注意\n const kind = path.basename(fileName, '.yml') as KnownKind;\n await promisePool.run(() => writeWorkflowYaml(rootConfig, workflowsPath, kind));\n }\n });\n}\n\nasync function writeWorkflowYaml(config: PackageConfig, workflowsPath: string, kind: KnownKind): Promise<void> {\n let newSettings = cloneDeep(workflows[kind] || {});\n const filePath = path.join(workflowsPath, `${kind}.yml`);\n try {\n const oldContent = await fs.promises.readFile(filePath, 'utf8');\n const oldSettings = yaml.load(oldContent);\n newSettings = merge.all([newSettings, oldSettings, newSettings], { arrayMerge: combineMerge });\n } catch {\n // do nothing\n }\n\n if (kind.startsWith('deploy')) {\n newSettings = {\n ...newSettings,\n concurrency: {\n group: '${{ github.workflow }}',\n 'cancel-in-progress': false,\n },\n };\n // Move jobs to the bottom\n if (newSettings.jobs) {\n const jobs = newSettings.jobs;\n delete newSettings.jobs;\n newSettings.jobs = jobs;\n }\n if (newSettings.on?.push) {\n newSettings.on.push['paths-ignore'] = [\n ...new Set<string>([...(newSettings.on.push['paths-ignore'] ?? []), '**.md', '**/docs/**']),\n ];\n }\n }\n\n for (const job of Object.values(newSettings.jobs) as any[]) {\n // Ignore non-reusable workflows\n if (!job.uses?.includes?.('/reusable-workflows/')) return;\n\n normalizeJob(config, job, kind);\n }\n\n switch (kind) {\n case 'release': {\n if (newSettings.on.schedule) {\n delete newSettings.on.push;\n } else if (config.release.branches.length > 0) {\n newSettings.on.push.branches = config.release.branches;\n } else {\n // Don't use release.yml if release branch is not specified\n await fs.promises.rm(path.join(workflowsPath, 'release.yml'), { force: true });\n return;\n }\n break;\n }\n case 'wbfy': {\n setSchedule(newSettings, 20, 24);\n break;\n }\n case 'wbfy-merge': {\n setSchedule(newSettings, 1, 4);\n break;\n }\n // No default\n }\n migrateWorkflow(newSettings);\n await writeYaml(newSettings, filePath);\n\n if (kind === 'release') {\n await fs.promises.rm(path.join(workflowsPath, 'semantic-release.yml'), { force: true });\n } else if (kind === 'sync') {\n await fs.promises.rm(path.join(workflowsPath, 'sync-init.yml'), { force: true });\n if (!newSettings.jobs.sync) return;\n\n newSettings.jobs['sync-force'] = newSettings.jobs.sync;\n const params = newSettings.jobs.sync.with.sync_params_without_dest;\n if (!params) return;\n\n newSettings.jobs.sync.with.sync_params_without_dest = `--force ${params}`;\n newSettings.name = 'Force to Sync';\n newSettings.on = { workflow_dispatch: null };\n delete newSettings.jobs.sync;\n await writeYaml(newSettings, path.join(workflowsPath, 'sync-force.yml'));\n }\n}\n\nfunction normalizeJob(config: PackageConfig, job: any, kind: KnownKind): void {\n job.with ||= {};\n job.secrets ||= {};\n\n if (\n kind === 'test' ||\n kind === 'release' ||\n kind === 'wbfy' ||\n kind === 'wbfy-merge' ||\n kind === 'add-issue-to-project'\n ) {\n job.secrets['GH_TOKEN'] = config.publicRepo ? '${{ secrets.PUBLIC_GH_BOT_PAT }}' : '${{ secrets.GH_BOT_PAT }}';\n }\n if (config.release.npm && (kind === 'release' || kind === 'test')) {\n job.secrets['NPM_TOKEN'] = '${{ secrets.NPM_TOKEN }}';\n }\n if (job.secrets['FIREBASE_TOKEN']) {\n job.secrets['GCP_SA_KEY_JSON_FOR_FIREBASE'] = '${{ secrets.GCP_SA_KEY_JSON_FOR_FIREBASE }}';\n delete job.secrets['FIREBASE_TOKEN'];\n }\n if (\n (job.secrets['DISCORD_WEBHOOK_URL'] && (kind === 'release' || kind.startsWith('deploy'))) ||\n (job.with.server_url && kind.startsWith('deploy'))\n ) {\n job.secrets['DISCORD_WEBHOOK_URL'] = '${{ secrets.DISCORD_WEBHOOK_URL_FOR_RELEASE }}';\n }\n\n if (kind === 'sync') {\n const params = job.with?.sync_params_without_dest;\n if (params) {\n job.with.sync_params_without_dest = params.replace('sync ', '');\n }\n }\n\n if (config.repository?.startsWith('github:WillBooster/')) {\n job.uses = job.uses.replace('WillBoosterLab/', 'WillBooster/');\n } else if (config.repository?.startsWith('github:WillBoosterLab/')) {\n job.uses = job.uses.replace('WillBooster/', 'WillBoosterLab/');\n }\n\n // Remove deprecated parameters\n migrateJob(job);\n\n // Don't use `fly deploy --json` since it causes an error\n if (kind.startsWith('deploy') && job.secrets['FLY_API_TOKEN'] && job.with['deploy_command']) {\n job.with['deploy_command'] = job.with['deploy_command'].replace(/\\s+--json/, '');\n }\n if (config.containingDockerfile) {\n if (kind.startsWith('deploy') || kind.startsWith('test')) {\n job.with['ci_size'] = 'large';\n }\n if (kind.startsWith('deploy')) {\n job.with['cpu_arch'] = 'X64';\n }\n }\n // Because github.event.repository.private is always true if job is scheduled\n if (kind === 'release' || kind === 'test' || kind === 'wbfy' || kind === 'wbfy-merge' || kind.startsWith('deploy')) {\n if (config.publicRepo) {\n job.with['github_hosted_runner'] = true;\n }\n } else {\n delete job.with['github_hosted_runner'];\n }\n\n if (Object.keys(job.with).length > 0) {\n sortKeys(job.with);\n } else {\n delete job.with;\n }\n if (Object.keys(job.secrets).length > 0) {\n // Move secrets prop after with prop\n const newSecrets = sortKeys(job.secrets);\n delete job.secrets;\n job.secrets = newSecrets;\n } else {\n delete job.secrets;\n }\n}\n\nfunction setSchedule(newSettings: any, inclusiveMinHourJst: number, exclusiveMaxHourJst: number): void {\n const [minuteUtc, hourUtc] = ((newSettings.on.schedule?.[0]?.cron as string) ?? '').split(' ').map(Number);\n if (minuteUtc !== 0 && Number.isInteger(hourUtc)) {\n const hourJst = (hourUtc + 9) % 24;\n const inRange =\n inclusiveMinHourJst < exclusiveMaxHourJst\n ? inclusiveMinHourJst <= hourJst && hourJst < exclusiveMaxHourJst\n : inclusiveMinHourJst <= hourJst || hourJst < exclusiveMaxHourJst;\n if (inRange) return;\n }\n\n const minJst = 1 + Math.floor(Math.random() * 59);\n const hourJst = inclusiveMinHourJst + Math.floor(Math.random() * (exclusiveMaxHourJst - inclusiveMinHourJst));\n const cron = `${minJst} ${(hourJst - 9 + 24) % 24} * * *`;\n newSettings.on.schedule = [{ cron }];\n}\n\nasync function writeYaml(newSettings: any, filePath: string): Promise<void> {\n const yamlText = yaml.dump(newSettings, {\n lineWidth: -1,\n noCompatMode: true,\n styles: {\n '!!null': 'empty',\n },\n });\n await fs.promises.writeFile(filePath, yamlText);\n}\n\nfunction migrateWorkflow(newSettings: any): void {\n // TODO: Remove them after 2023-03-31\n delete newSettings.jobs['add-to-project'];\n}\n\nfunction migrateJob(job: any): void {\n // TODO: Remove them after 2023-03-31\n delete job.with['non_self_hosted'];\n delete job.with['notify_discord'];\n delete job.with['require_fly'];\n delete job.with['require_gcloud'];\n if (job.with['dot_env_path'] === '.env') {\n delete job.with['dot_env_path'];\n }\n delete job.with['cpu_arch'];\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport yaml from 'js-yaml';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { promisePool } from '../utils/promisePool.js';\nimport { spawnSync, spawnSyncWithStringResult } from '../utils/spawnUtil.js';\n\nexport async function generateYarnrcYml(config: PackageConfig): Promise<void> {\n return logger.function('generateYarnrcYml', async () => {\n const currentVersion = spawnSyncWithStringResult('yarn', ['--version'], config.dirPath);\n const latestVersion = getLatestVersion('@yarnpkg/cli', config.dirPath);\n if (getMajorNumber(currentVersion) <= getMajorNumber(latestVersion) && currentVersion !== latestVersion) {\n spawnSync('yarn', ['set', 'version', latestVersion], config.dirPath, 1);\n }\n\n const releasesPath = path.join(config.dirPath, '.yarn', 'releases');\n await fs.promises.mkdir(releasesPath, { recursive: true });\n for (const file of await fs.promises.readdir(releasesPath)) {\n if (file.startsWith('yarn-') && !file.startsWith(`yarn-${latestVersion}.`)) {\n await promisePool.run(() => fs.promises.rm(path.join(releasesPath, file)));\n console.log('Removed', path.join(releasesPath, file));\n }\n }\n\n const yarnrcPath = path.resolve(config.dirPath, '.yarnrc');\n await promisePool.run(() => fs.promises.rm(yarnrcPath, { force: true }));\n\n const yarnrcYmlPath = path.resolve(config.dirPath, '.yarnrc.yml');\n const settings = yaml.load(await fs.promises.readFile(yarnrcYmlPath, 'utf8')) as any;\n settings.defaultSemverRangePrefix = '';\n settings.nodeLinker = 'node-modules';\n settings.nmMode = 'hardlinks-global';\n // cf. https://github.com/yarnpkg/berry/pull/4698\n settings.enableGlobalCache = true;\n const originalLength = settings.plugins?.length ?? 0;\n settings.plugins = settings.plugins?.filter((p: any) => p.path !== '.yarn/plugins/undefined.cjs') ?? [];\n if (settings.plugins.length !== originalLength) {\n const pluginPath = path.resolve(config.dirPath, '.yarnrc', 'undefined.cjs');\n await promisePool.run(() => fs.promises.rm(pluginPath, { force: true }));\n }\n if (settings.plugins.length === 0) {\n delete settings.plugins;\n }\n await fs.promises.writeFile(yarnrcYmlPath, yaml.dump(settings, { lineWidth: -1 }));\n\n spawnSync('yarn', ['dlx', 'yarn-plugin-auto-install'], config.dirPath);\n });\n}\n\nexport function getLatestVersion(packageName: string, dirPath: string): string {\n const versionsJson = spawnSyncWithStringResult('npm', ['show', packageName, 'versions', '--json'], dirPath);\n const versions = JSON.parse(versionsJson) as string[];\n return versions.at(-1) as string;\n}\n\nfunction importOrRemovePlugin(config: PackageConfig, plugins: string[], requirePlugin: boolean, plugin: string): void {\n if (requirePlugin !== plugins.includes(plugin)) {\n spawnSync('yarn', ['plugin', requirePlugin ? 'import' : 'remove', plugin], config.dirPath);\n }\n}\n\nfunction getMajorNumber(version: string): number {\n const [major] = version.split('.');\n return Number(major);\n}\n","import { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { gitHubUtil, hasGitHubToken, octokit } from '../utils/githubUtil.js';\n\nexport async function setupLabels(config: PackageConfig): Promise<void> {\n return logger.function('setupLabels', async () => {\n if (!hasGitHubToken) return;\n\n const [owner, repo] = gitHubUtil.getOrgAndName(config.repository ?? '');\n if (!owner || !repo) return;\n if (owner !== 'WillBooster' && owner !== 'WillBoosterLab') return;\n\n try {\n await setupLabel(owner, repo, 'd1: x-easy :hedgehog:', 'EDE9FE');\n await setupLabel(owner, repo, 'd2: easy :rabbit2:', 'DDD6FE');\n await setupLabel(owner, repo, 'd3: medium :ox:', 'C4B5FD');\n await setupLabel(owner, repo, 'd4: hard :squid:', 'A78BFA');\n await setupLabel(owner, repo, 'd5: x-hard :whale2:', '8B5CF6');\n await setupLabel(owner, repo, 'p1: critical :fire::fire::fire:', 'EF4444');\n await setupLabel(owner, repo, 'p2: urgent :fire::fire:', 'F87171');\n await setupLabel(owner, repo, 'p3: important :fire:', 'FCA5A5');\n await setupLabel(owner, repo, 'p4: nice to have :droplet:', 'FECACA');\n await setupLabel(owner, repo, 'r: blitz', '5300bc');\n await setupLabel(owner, repo, 'r: firebase', 'ffca28');\n await setupLabel(owner, repo, 'r: prisma', '0c344b');\n await setupLabel(owner, repo, 'r: react', '61dafb');\n await setupLabel(owner, repo, 'r: svelte', 'ff3e00');\n await setupLabel(owner, repo, 'r: semantic-release', '494949');\n await setupLabel(owner, repo, 'ready :rocket:', '22C55E');\n await setupLabel(owner, repo, 'review requested :mag:', 'FBCA04');\n await setupLabel(owner, repo, 'released :bookmark:', '6366F1');\n await setupLabel(owner, repo, 's: 0.5h :clock1230:', 'F3F4F6');\n await setupLabel(owner, repo, 's: 1h :clock1:', 'E5E7EB');\n await setupLabel(owner, repo, 's: 2h :clock2:', 'D1D5DB');\n await setupLabel(owner, repo, 's: 3h :clock3:', '9CA3AF');\n await setupLabel(owner, repo, 's: 5h :clock5:', '6B7280');\n await setupLabel(owner, repo, 's: 8h :clock8:', '4B5563');\n await setupLabel(owner, repo, 's: 13h :clock1:', '374151');\n await setupLabel(owner, repo, 't: build :hammer:', 'BFDBFE');\n await setupLabel(owner, repo, 't: chore :broom:', 'BFDBFE');\n await setupLabel(owner, repo, 't: ci :construction_worker:', 'BFDBFE');\n await setupLabel(owner, repo, 't: docs :memo:', 'BFDBFE');\n await setupLabel(owner, repo, 't: feat :sparkles:', 'BFDBFE');\n await setupLabel(owner, repo, 't: fix :bug:', 'BFDBFE');\n await setupLabel(owner, repo, 't: perf :zap:', 'BFDBFE');\n await setupLabel(owner, repo, 't: refactor :recycle:', 'BFDBFE');\n await setupLabel(owner, repo, 't: style :lipstick:', 'BFDBFE');\n await setupLabel(owner, repo, 't: test :test_tube:', 'BFDBFE');\n await setupLabel(owner, repo, 'project', '24292F');\n\n await deleteLabel(owner, repo, 'bug');\n await deleteLabel(owner, repo, 'documentation');\n await deleteLabel(owner, repo, 'duplicate');\n await deleteLabel(owner, repo, 'enhancement');\n await deleteLabel(owner, repo, 'good first issue');\n await deleteLabel(owner, repo, 'help wanted');\n await deleteLabel(owner, repo, 'invalid');\n await deleteLabel(owner, repo, 'question');\n await deleteLabel(owner, repo, 'wontfix');\n\n await deleteLabel(owner, repo, 'ready');\n await deleteLabel(owner, repo, 'review requested');\n await deleteLabel(owner, repo, 'released');\n await deleteLabel(owner, repo, 'semantic-release');\n } catch (error) {\n console.warn('Skip setupLabels due to:', (error as Error)?.stack ?? error);\n }\n });\n}\n\nasync function setupLabel(owner: string, repo: string, name: string, color: string): Promise<void> {\n try {\n await octokit.request('POST /repos/{owner}/{repo}/labels', {\n owner,\n repo,\n name,\n color,\n });\n } catch {\n await octokit.request('PATCH /repos/{owner}/{repo}/labels/{name}', {\n owner,\n repo,\n name,\n color,\n });\n }\n}\n\nasync function deleteLabel(owner: string, repo: string, name: string): Promise<void> {\n try {\n await octokit.request('DELETE /repos/{owner}/{repo}/labels/{name}', {\n owner,\n repo,\n name,\n });\n } catch {\n // do nothing\n }\n}\n","import dotenv from 'dotenv';\nimport sodium from 'libsodium-wrappers';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { gitHubUtil, hasGitHubToken, octokit } from '../utils/githubUtil.js';\n\nconst deprecatedSecretNames = ['READY_DISCORD_WEBHOOK_URL'];\n\nexport async function setupSecrets(config: PackageConfig): Promise<void> {\n return logger.function('setupSecrets', async () => {\n if (!hasGitHubToken) return;\n\n const [owner, repo] = gitHubUtil.getOrgAndName(config.repository ?? '');\n if (!owner || !repo || owner !== 'WillBoosterLab') return;\n\n const parsed = dotenv.config().parsed || {};\n if (Object.keys(parsed).length === 0) return;\n\n try {\n for (const secretName of deprecatedSecretNames) {\n try {\n await octokit.request('DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}', {\n owner,\n repo,\n secret_name: secretName,\n });\n } catch {\n // do nothing\n }\n }\n\n const response = await octokit.request('GET /repos/{owner}/{repo}/actions/secrets/public-key', {\n owner,\n repo,\n });\n const { key, key_id: keyId } = response.data;\n\n await sodium.ready;\n\n for (const [name, secret] of Object.entries(parsed)) {\n if (config.publicRepo && name === 'GH_BOT_PAT') continue;\n if (!config.publicRepo && name === 'PUBLIC_GH_BOT_PAT') continue;\n\n // Convert Secret & Base64 key to Uint8Array.\n const rawKey = sodium.from_base64(key, sodium.base64_variants.ORIGINAL);\n const rawSec = sodium.from_string(secret);\n\n // Encrypt the secret using LibSodium\n const encBytes = sodium.crypto_box_seal(rawSec, rawKey);\n\n // Convert encrypted Uint8Array to Base64\n const encBase64 = sodium.to_base64(encBytes, sodium.base64_variants.ORIGINAL);\n\n await octokit.request('PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}', {\n owner,\n repo,\n secret_name: name,\n encrypted_value: encBase64,\n key_id: keyId,\n });\n }\n } catch (error) {\n console.warn('Skip setupSecrets due to:', (error as Error)?.stack ?? error);\n }\n });\n}\n","import { PackageConfig } from '../packageConfig.js';\n\nexport async function setupSettings(config: PackageConfig): Promise<void> {\n // TODO: implement code for https://github.com/WillBooster/wbfy/issues/324\n}\n","import fs from 'node:fs';\nimport fsp from 'node:fs/promises';\nimport path from 'node:path';\n\nimport { globbySync } from 'globby';\nimport { simpleGit } from 'simple-git';\nimport { PackageJson } from 'type-fest';\n\nimport { gitHubUtil, octokit } from './utils/githubUtil.js';\n\nexport interface PackageConfig {\n dirPath: string;\n root: boolean;\n publicRepo: boolean;\n referredByOtherRepo: boolean;\n repository?: string;\n esmPackage: boolean;\n willBoosterConfigs: boolean;\n containingSubPackageJsons: boolean;\n containingDockerfile: boolean;\n containingGemfile: boolean;\n containingGoMod: boolean;\n containingPackageJson: boolean;\n containingPoetryLock: boolean;\n containingPomXml: boolean;\n containingPubspecYaml: boolean;\n containingTemplateYaml: boolean;\n\n containingJavaScript: boolean;\n containingTypeScript: boolean;\n containingJsxOrTsx: boolean;\n containingJavaScriptInPackages: boolean;\n containingTypeScriptInPackages: boolean;\n containingJsxOrTsxInPackages: boolean;\n depending: {\n blitz?: string;\n firebase: boolean;\n playwright: boolean;\n prisma: boolean;\n pyright: boolean;\n reactNative: boolean;\n semanticRelease: boolean;\n sharedScript: boolean;\n storybook: boolean;\n };\n release: {\n branches: string[];\n github: boolean;\n npm: boolean;\n };\n eslintBase?: string;\n versionsText?: string;\n packageJson?: PackageJson;\n}\n\nexport async function getPackageConfig(dirPath: string): Promise<PackageConfig | undefined> {\n const packageJsonPath = path.resolve(dirPath, 'package.json');\n try {\n const containingPackageJson = fs.existsSync(packageJsonPath);\n let dependencies: PackageJson['dependencies'] = {};\n let devDependencies: PackageJson['devDependencies'] = {};\n let packageJson: PackageJson = {};\n let esmPackage = false;\n if (containingPackageJson) {\n const packageJsonText = fs.readFileSync(packageJsonPath, 'utf8');\n packageJson = JSON.parse(packageJsonText);\n dependencies = packageJson.dependencies ?? {};\n devDependencies = packageJson.devDependencies ?? {};\n esmPackage = packageJson.type === 'module';\n }\n\n let releaseBranches: string[] = [];\n let releasePlugins: string[] = [];\n try {\n const releasercJsonPath = path.resolve(dirPath, '.releaserc.json');\n const json = JSON.parse(await fsp.readFile(releasercJsonPath, 'utf8'));\n releaseBranches = json?.branches || [];\n releasePlugins = json?.plugins?.flat() || [];\n } catch {\n // do nothing\n }\n\n const isRoot =\n path.basename(path.resolve(dirPath, '..')) !== 'packages' ||\n !fs.existsSync(path.resolve(dirPath, '..', '..', 'package.json'));\n\n let repoInfo: Record<string, any> | undefined;\n if (isRoot) {\n repoInfo = await fetchRepoInfo(dirPath, packageJson);\n }\n\n let versionsText = '';\n try {\n const content = await fsp.readFile(path.resolve(dirPath, '.tool-versions'), 'utf8');\n versionsText += content.trim();\n } catch {\n // do nothing\n }\n for (const [prefix, name] of [\n ['java', 'java'],\n ['node', 'nodejs'],\n ['python', 'python'],\n ]) {\n try {\n const nodeVersionContent = await fsp.readFile(path.resolve(dirPath, `.${prefix}-version`), 'utf8');\n if (versionsText) {\n versionsText += '\\n';\n }\n versionsText += name + ' ' + nodeVersionContent.trim();\n } catch {\n // do nothing\n }\n }\n\n const config: PackageConfig = {\n dirPath,\n root: isRoot,\n publicRepo: repoInfo?.private === false,\n referredByOtherRepo: !!packageJson.files,\n repository: repoInfo?.full_name ? `github:${repoInfo?.full_name}` : undefined,\n esmPackage,\n willBoosterConfigs: packageJsonPath.includes(`${path.sep}willbooster-configs`),\n containingSubPackageJsons: containsAny('packages/**/package.json', dirPath),\n containingDockerfile:\n fs.existsSync(path.resolve(dirPath, 'Dockerfile')) ||\n fs.existsSync(path.resolve(dirPath, 'docker-compose.yml')),\n containingGemfile: fs.existsSync(path.resolve(dirPath, 'Gemfile')),\n containingGoMod: fs.existsSync(path.resolve(dirPath, 'go.mod')),\n containingPackageJson: fs.existsSync(path.resolve(dirPath, 'package.json')),\n containingPoetryLock: fs.existsSync(path.resolve(dirPath, 'poetry.lock')),\n containingPomXml: fs.existsSync(path.resolve(dirPath, 'pom.xml')),\n containingPubspecYaml: fs.existsSync(path.resolve(dirPath, 'pubspec.yaml')),\n containingTemplateYaml: fs.existsSync(path.resolve(dirPath, 'template.yaml')),\n containingJavaScript: containsAny('{app,src,tests,scripts}/**/*.{cjs,mjs,js,jsx}', dirPath),\n containingTypeScript: containsAny('{app,src,tests,scripts}/**/*.{cts,mts,ts,tsx}', dirPath),\n containingJsxOrTsx: containsAny('{app,src,tests}/**/*.{t,j}sx', dirPath),\n containingJavaScriptInPackages: containsAny('packages/**/{app,src,tests,scripts}/**/*.{cjs,mjs,js,jsx}', dirPath),\n containingTypeScriptInPackages: containsAny('packages/**/{app,src,tests,scripts}/**/*.{cts,mts,ts,tsx}', dirPath),\n containingJsxOrTsxInPackages: containsAny('packages/**/{app,src,tests}/**/*.{t,j}sx', dirPath),\n depending: {\n blitz: (dependencies['blitz'] || devDependencies['blitz'] || '').replace('^', '')[0],\n firebase: !!devDependencies['firebase-tools'],\n playwright: !!devDependencies['playwright'] || !!devDependencies['@playwright/test'],\n prisma: !!dependencies['prisma'],\n pyright: !!devDependencies['pyright'],\n reactNative: !!dependencies['react-native'],\n semanticRelease: !!(\n devDependencies['semantic-release'] ||\n releaseBranches.length > 0 ||\n releasePlugins.length > 0\n ),\n sharedScript: !!devDependencies['@willbooster/shared-scripts'],\n storybook: !!devDependencies['@storybook/react'],\n },\n release: {\n branches: releaseBranches,\n github: releasePlugins.includes('@semantic-release/github'),\n npm: releasePlugins.includes('@semantic-release/npm'),\n },\n versionsText,\n packageJson,\n };\n config.eslintBase = getEslintExtensionBase(config);\n if (\n config.containingGemfile ||\n config.containingGoMod ||\n config.containingPackageJson ||\n config.containingPoetryLock ||\n config.containingPomXml ||\n config.containingPubspecYaml ||\n config.containingTemplateYaml\n ) {\n return config;\n }\n } catch {\n // do nothing\n }\n}\n\nfunction containsAny(pattern: string, dirPath: string): boolean {\n return globbySync(pattern, { dot: true, cwd: dirPath }).length > 0;\n}\n\nfunction getEslintExtensionBase(config: PackageConfig): string | undefined {\n if (config.depending.blitz === '2') {\n return '@willbooster/eslint-config-blitz-next';\n } else if (config.containingTypeScript) {\n return config.containingJsxOrTsx ? '@willbooster/eslint-config-ts-react' : '@willbooster/eslint-config-ts';\n } else {\n if (config.containingJsxOrTsx) {\n return '@willbooster/eslint-config-js-react';\n } else if (config.containingJavaScript) {\n return '@willbooster/eslint-config-js';\n }\n }\n}\n\nasync function fetchRepoInfo(dirPath: string, packageJson: PackageJson): Promise<Record<string, any> | undefined> {\n const git = simpleGit(dirPath);\n const remotes = await git.getRemotes(true);\n const origin = remotes.find((r) => r.name === 'origin');\n const remoteUrl = origin?.refs?.fetch ?? origin?.refs?.push;\n if (typeof remoteUrl === 'string') {\n const json = await requestRepoInfo(remoteUrl);\n if (json) return json;\n }\n\n const url = typeof packageJson.repository === 'string' ? packageJson.repository : packageJson.repository?.url;\n if (url) {\n const json = await requestRepoInfo(url);\n if (json && json.message !== 'Not Found') return json;\n }\n}\n\nasync function requestRepoInfo(urlOrFullName: string): Promise<Record<string, any> | undefined> {\n const [org, name] = gitHubUtil.getOrgAndName(urlOrFullName);\n if (!org || !name) return;\n\n const ret = { full_name: `${org}/${name}` };\n try {\n const response = await octokit.request('GET /repos/{owner}/{repo}', {\n owner: org,\n repo: name,\n });\n Object.assign(ret, response.data);\n } catch {\n // do nothing\n }\n return ret;\n}\n","import fs from 'node:fs/promises';\nimport path from 'node:path';\n\nimport { ignoreErrorAsync } from '@willbooster/shared-lib';\nimport yargs from 'yargs';\n\nimport { fixAbbreviations } from './fixers/abbreviations.js';\nimport { fixDockerfile } from './fixers/dockerfile.js';\nimport { fixTestDirectories } from './fixers/testDirectory.js';\nimport { fixTypeDefinitions } from './fixers/typeDefinition.js';\nimport { generateVersionConfigs } from './generators/asdf.js';\nimport { generateDockerignore } from './generators/dockerignore.js';\nimport { generateEditorconfig } from './generators/editorconfig.js';\nimport { generateEslintignore } from './generators/eslintignore.js';\nimport { generateEslintrc } from './generators/eslintrc.js';\nimport { generateGitattributes } from './generators/gitattributes.js';\nimport { generateGitignore } from './generators/gitignore.js';\nimport { generateHuskyrc } from './generators/huskyrc.js';\nimport { generateIdeaSettings } from './generators/idea.js';\nimport { generateLintstagedrc } from './generators/lintstagedrc.js';\nimport { generatePackageJson } from './generators/packageJson.js';\nimport { generatePrettierignore } from './generators/prettierignore.js';\nimport { generatePyrightConfigJson } from './generators/pyrightconfig.js';\nimport { generateReadme } from './generators/readme.js';\nimport { generateReleaserc } from './generators/releaserc.js';\nimport { generateRenovateJson } from './generators/renovaterc.js';\nimport { generateTsconfig } from './generators/tsconfig.js';\nimport { generateWorkflows } from './generators/workflow.js';\nimport { generateYarnrcYml } from './generators/yarnrc.js';\nimport { setupLabels } from './github/label.js';\nimport { setupSecrets } from './github/secret.js';\nimport { setupSettings } from './github/settings.js';\nimport { options } from './options.js';\nimport { getPackageConfig, PackageConfig } from './packageConfig.js';\nimport { promisePool } from './utils/promisePool.js';\nimport { spawnSync } from './utils/spawnUtil.js';\n\nasync function main(): Promise<void> {\n const argv = await yargs(process.argv.slice(2))\n .command('$0 [paths..]', 'Make a given project follow the WillBooster standard', (yargs) => {\n yargs.positional('paths', {\n describe: 'project paths to be wbfied',\n array: true,\n type: 'string',\n default: ['.'],\n });\n })\n .options({\n skipDeps: {\n description: 'Skip dependency installation',\n type: 'boolean',\n default: false,\n alias: 'd',\n },\n verbose: {\n description: 'Whether or not to enable verbose mode',\n type: 'boolean',\n default: false,\n alias: 'v',\n },\n })\n .strict().argv;\n options.isVerbose = argv.verbose;\n\n for (const rootDirPath of argv.paths as string[]) {\n const packagesDirPath = path.join(rootDirPath, 'packages');\n const dirents = (await ignoreErrorAsync(() => fs.readdir(packagesDirPath, { withFileTypes: true }))) ?? [];\n const subDirPaths = dirents.filter((d) => d.isDirectory()).map((d) => path.join(packagesDirPath, d.name));\n\n await fixTestDirectories([rootDirPath, ...subDirPaths]);\n const abbreviationPromise = fixAbbreviations(rootDirPath);\n\n const rootConfig = await getPackageConfig(rootDirPath);\n if (!rootConfig) {\n console.error(`there is no valid package.json in ${rootDirPath}`);\n continue;\n }\n\n const nullableSubPackageConfigs = await Promise.all(subDirPaths.map((subDirPath) => getPackageConfig(subDirPath)));\n const subPackageConfigs = nullableSubPackageConfigs.filter((config) => !!config) as PackageConfig[];\n const allPackageConfigs = [rootConfig, ...subPackageConfigs];\n\n if (options.isVerbose) {\n for (const config of allPackageConfigs) {\n console.info(config);\n }\n }\n\n // Install tools via asdf at first\n await generateVersionConfigs(rootConfig);\n // Install yarn berry\n await generateYarnrcYml(rootConfig);\n await Promise.all([\n fixDockerfile(rootConfig),\n abbreviationPromise.then(() => generateReadme(rootConfig)),\n generateDockerignore(rootConfig),\n generateEditorconfig(rootConfig),\n generateGitattributes(rootConfig),\n generateHuskyrc(rootConfig),\n generateIdeaSettings(rootConfig),\n generateLintstagedrc(rootConfig),\n generateRenovateJson(rootConfig),\n generateReleaserc(rootConfig),\n generateWorkflows(rootConfig),\n setupLabels(rootConfig),\n setupSecrets(rootConfig),\n setupSettings(rootConfig),\n ]);\n await promisePool.promiseAll();\n\n const promises: Promise<void>[] = [];\n for (const config of allPackageConfigs) {\n if (config.containingTypeScript || config.containingTypeScriptInPackages) {\n promises.push(fixTypeDefinitions(config, config.root ? allPackageConfigs : [config]));\n }\n await generateGitignore(config, rootConfig);\n await promisePool.promiseAll();\n if (!config.root && !config.containingPackageJson) {\n continue;\n }\n await generatePrettierignore(config);\n await generatePackageJson(config, rootConfig, argv.skipDeps);\n\n promises.push(generateLintstagedrc(config));\n if (config.containingTypeScript || config.containingTypeScriptInPackages) {\n promises.push(generateTsconfig(config, rootConfig));\n }\n if (\n config.containingJavaScript ||\n config.containingJavaScriptInPackages ||\n config.containingTypeScript ||\n config.containingTypeScriptInPackages\n ) {\n if (!rootConfig.willBoosterConfigs) {\n promises.push(generateEslintrc(config, rootConfig));\n }\n promises.push(generateEslintignore(config));\n }\n if (config.depending.pyright) {\n promises.push(generatePyrightConfigJson(config));\n }\n }\n await Promise.all(promises);\n await promisePool.promiseAll();\n\n spawnSync('yarn', ['cleanup'], rootDirPath);\n // 'yarn install' should be after `yarn cleanup` because yarn berry generates yarn.lock\n // corresponding to the contents of dependant sub-package in monorepo\n spawnSync('yarn', ['install'], rootDirPath);\n }\n}\n\nawait main();\n"],"names":["Options","options","_createClass","_classCallCheck","_defineProperty","this","isVerbose","logger","Logger","_function2","key","value","_asyncToGenerator","_regeneratorRuntime","mark","_callee","name","func","wrap","_context","prev","next","console","info","concat","stop","_x","_x2","apply","arguments","fsUtil","readFileIgnoringError","filePath","fsp","readFile","abrupt","sent","t0","generateFile","content","_callee2","_context2","writeFile","log","promisePool","PromisePool","fixAbbreviations","_fixAbbreviations","_callee3","dirPath","_context4","mdFiles","_iterator","_step","_loop","tsFiles","_iterator2","_step2","tsFile","oldContent","newContent","_context3","globby","dot","cwd","gitignore","length","_createForOfIteratorHelper","mdFile","path","join","run","fs","promises","replaceAll","s","n","done","delegateYield","t1","e","f","finish","t2","promiseAll","fixDockerfile","_fixDockerfile","config","containingDockerfile","includes","fixTestDirectories","_fixTestDirectories","packageDirPaths","Promise","all","map","_ref2","packageDirPath","oldTestDirPath","newTestDirPath","rename","fixTypeDefinitions","_fixTypeDefinitions","configsIncludingChildren","libTypeDirPath","srcTypeDirPath","dirents","resolve","root","containingSubPackageJsons","undefined","ignoreEnoentAsync","readdir","withFileTypes","dirent","dirName","hasTypeDeclarationExtension","packageName","hasLibrary","slice","endsWith","replace","some","_config$packageJson","_config$packageJson$d","_config$packageJson2","_config$packageJson2$","packageJson","dependencies","devDependencies","isFile","mkdir","recursive","isDirectory","spawnSync","command","args","retry","_getSpawnSyncArgs2","_slicedToArray","getSpawnSyncArgs","newCmd","newArgs","child_process","status","spawnSyncWithStringResult","_getSpawnSyncArgs4","stdio","proc","error","stderr","toString","trim","stdout","env","_objectSpread","process","PATH","BERRY_BIN_FOLDER","ASDF_DIR","shell","convertVersionIntoNumber","version","versionNumber","divisor","split","Number","filter","isNaN","err","PYTHON_VERSION","JAVA_VERSION","BLITZ_VERSION","NEXT_VERSION","generateVersionConfigs","_generateVersionConfigs","core","CORE_TOOLS","Set","DEPRECATED_VERSION_PREFIXES","_core","duplicatableLines","lines","_json$info","response","json","_json$info2","prefix","versionPath","toolVersionsPath","versionsText","line","_line$trim$split2","has","sort","_toConsumableArray","containingPoetryLock","fetch","updateVersion","depending","firebase","containingPackageJson","rm","force","toolName","newVersion","head","index","findIndex","l","newLine","splice","userContentHeader","userContentHeaderRegex","separator","defaultHeadUserContent","defaultTailUserContent","ignoreFileUtil","separatorPrefix","readGitignoreWithoutSeparators","lastHeaderIndex","getIndexOfTailUserContentHeader","getHeadUserContent","indexOf","getTailUserContent","isBerryZeroInstallEnabled","lastIndex","lastIndexOf","commonContent","generateDockerignore","_generateDockerignore","_yield$fsUtil$readFil","headUserContent","tailUserContent","extensions","codeWith2IndentSize","codeWith4IndentSize","codeWith8IndentSize","markdownLike","eslint","prettier","generateExtensions","generateEditorconfig","_generateEditorconfig","generateEslintignore","_generateEslintignore","gitignoreFilePath","gitignoreContent","t3","overwriteMerge","destinationArray","sourceArray","combineMerge","target","source","destination","entries","_step$value","item","cloneUnlessOtherwiseSpecified","isMergeableObject","merge","push","generateEslintrc","_generateEslintrc","rootConfig","bases","newSettings","oldSettings","newExtends","eslintBase","extends","JSON","parse","ext","startsWith","arrayMerge","blitz","addExtensionToHead","stringify","extension","generateGitattributes","_generateGitattributes","defaultNames","generateGitignore","_generateGitignore","names","generated","_ret","containingGemfile","containingGoMod","basename","containingPomXml","containingPubspecYaml","containingTemplateYaml","prisma","playwright","reactNative","storybook","_yield$readCache","url","responseText","readCache","text","v","writeCache","_typeof","t4","os","homedir","_x3","_x4","_writeCache","_x5","_readCache","_callee4","stat","_context5","Date","now","mtimeMs","EslintUtil","getLintFixSuffix","containingJsxOrTsx","token","GH_BOT_PAT","PUBLIC_GH_BOT_PAT","GH_TOKEN","GITHUB_TOKEN","hasGitHubToken","octokit","Octokit","auth","gitHubUtil","GitHubUtil","urlOrFullName","_names$at","_names$at$replace","_names$at2","urlWithoutProtocol","at","srcDirectories","node","blitz0","blitz2","getSrcDirs","jsCommonDeps","tsCommonDeps","reactCommonDeps","devDeps","generatePackageJson","_generatePackageJson","skipAddingDeps","_x6","_config$repository","_jsonObj$scripts$gen2","jsonText","jsonObj","_i","_Object$keys","scriptKey","poetryDevDependencies","_devDependencies","_jsonObj$publishConfi","_jsonObj$publishConfi2","_jsonObj$publishConfi3","_gitHubUtil$getOrgAnd","_gitHubUtil$getOrgAnd2","owner","_jsonObj$resolutions","dirs","pythonFiles","dirNameSet","pythonFile","_pythonFile$split","_pythonFile$split2","first","dirNamesStr","_jsonObj$scripts$gen","scripts","peerDependencies","removeDeprecatedStuff","Object","keys","generateScripts","prettify","generatePrettierSuffix","publicRepo","referredByOtherRepo","semanticRelease","workspaces","sharedScript","containingJavaScript","containingJavaScriptInPackages","containingTypeScript","containingTypeScriptInPackages","willBoosterConfigs","dep","license","publishConfig","access","getOrgAndName","repository","author","main","release","npm","esmPackage","resolutions","lint","cleanup","dir","existsSync","format","postinstall","ignore","second","add","size","d","_jsonObj$devDependenc","_jsonObj$dependencies","_x7","_removeDeprecatedStuff","_i2","_Object$values","deps","values","typecheck","test","pyright","_x8","_generatePrettierSuffix","_callee5","existingContent","originalContent","DEFAULT_COMMAND","settings","preCommit","prePush","prePushForLab","postMerge","generateHuskyrc","_generateHuskyrc","_config$versionsText","packageJsonPath","preCommitFilePath","_generateScripts","postMergeCommands","rmNextDirectory","postMergeCommand","mode","generateIdeaSettings","_generateIdeaSettings","generateLintstagedrc","_generateLintstagedrc","packagePrefix","packagesFilter","getEslintKey","getEslintFilterForPrettier","generatePrettierignore","_generatePrettierignore","additionalContent","venvPath","venv","generatePyrightConfigJson","_generatePyrightConfigJson","cloneDeep","generateReadme","_generateReadme","_config$repository2","fileNames","fileName","badgeName","badge","insertBadge","semanticReleaseBadge","readdirSync","charAt","toUpperCase","badgePos","inserted","i","generateReleaserc","_generateReleaserc","plugins","plugin","oldConfig","call","Array","isArray","preset","successComment","labels","releasedLabels","generateRenovateJson","_generateRenovateJson","_newSettings","_newSettings$packageR","packageRules","rule","packageNames","enabled","sortKeys","obj","_ref","key1","key2","localeCompare","rootJsonObj","compilerOptions","module","moduleResolution","jsx","alwaysStrict","strict","skipLibCheck","allowSyntheticDefaultImports","esModuleInterop","resolveJsonModule","declaration","sourceMap","importHelpers","outDir","typeRoots","include","subJsonObj","generateTsconfig","_generateTsconfig","_newSettings$compiler6","_newSettings$include3","_newSettings$compiler","_newSettings$include","_newSettings$compiler2","_newSettings$compiler3","_newSettings$compiler4","_oldSettings$compiler","_newSettings$include2","_newSettings$compiler5","containingJsxOrTsxInPackages","workflows","on","pull_request","branches","concurrency","group","jobs","uses","wbfy","workflow_dispatch","pull_request_target","types","issues","secrets","DISCORD_WEBHOOK_URL","GH_PROJECT_URL","generateWorkflows","_generateWorkflows","_rootConfig$repositor","workflowsPath","semanticYmlPath","fileNameSet","kind","writeWorkflowYaml","_writeWorkflowYaml","_newSettings$on","_newSettings$on$push$","_arr","_job$uses","_job$uses$includes","_job$uses2","job","params","yaml","load","normalizeJob","schedule","setSchedule","migrateWorkflow","writeYaml","sync","sync_params_without_dest","server_url","_job$with","migrateJob","newSecrets","inclusiveMinHourJst","exclusiveMaxHourJst","_newSettings$on$sched","_newSettings$on$sched2","_split$map2","cron","minuteUtc","hourUtc","isInteger","hourJst","minJst","Math","floor","random","_writeYaml","yamlText","dump","lineWidth","noCompatMode","styles","generateYarnrcYml","_generateYarnrcYml","_settings$plugins$len","_settings$plugins","_settings$plugins$fil","_settings$plugins2","currentVersion","latestVersion","releasesPath","yarnrcPath","yarnrcYmlPath","originalLength","pluginPath","getLatestVersion","getMajorNumber","file","t5","defaultSemverRangePrefix","nodeLinker","nmMode","enableGlobalCache","p","versionsJson","major","setupLabels","_setupLabels","repo","_stack","setupLabel","deleteLabel","warn","stack","_setupLabel","color","request","_deleteLabel","deprecatedSecretNames","setupSecrets","_setupSecrets","parsed","secretName","_response$data","keyId","_Object$entries","_Object$entries$_i","secret","rawKey","rawSec","encBytes","encBase64","dotenv","secret_name","data","key_id","sodium","ready","from_base64","base64_variants","ORIGINAL","from_string","crypto_box_seal","to_base64","encrypted_value","setupSettings","_setupSettings","getPackageConfig","_getPackageConfig","_repoInfo","_repoInfo2","_repoInfo3","_packageJson$dependen","_packageJson$devDepen","packageJsonText","releaseBranches","releasePlugins","_json$plugins","releasercJsonPath","isRoot","repoInfo","_arr$_i","nodeVersionContent","readFileSync","type","flat","fetchRepoInfo","files","full_name","sep","containsAny","github","getEslintExtensionBase","pattern","globbySync","_fetchRepoInfo","_origin$refs$fetch","_origin$refs","_origin$refs2","_packageJson$reposito","git","remotes","origin","remoteUrl","_json","simpleGit","getRemotes","find","r","refs","requestRepoInfo","message","_requestRepoInfo","org","ret","assign","_main","argv","yargs","positional","describe","array","default","skipDeps","description","alias","verbose","_yield$ignoreErrorAsy","rootDirPath","packagesDirPath","subDirPaths","abbreviationPromise","nullableSubPackageConfigs","subPackageConfigs","allPackageConfigs","_config","ignoreErrorAsync","subDirPath","then","paths"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/options.ts","../src/logger.ts","../src/utils/fsUtil.ts","../src/utils/promisePool.ts","../src/fixers/abbreviations.ts","../src/fixers/dockerfile.ts","../src/fixers/testDirectory.ts","../src/fixers/typeDefinition.ts","../src/utils/spawnUtil.ts","../src/utils/version.ts","../src/utils/versionConstants.ts","../src/generators/asdf.ts","../src/utils/ignoreFileUtil.ts","../src/generators/dockerignore.ts","../src/utils/extensions.ts","../src/generators/editorconfig.ts","../src/generators/eslintignore.ts","../src/utils/mergeUtil.ts","../src/generators/eslintrc.ts","../src/generators/gitattributes.ts","../src/generators/gitignore.ts","../src/utils/eslintUtil.ts","../src/utils/githubUtil.ts","../src/utils/srcDirectories.ts","../src/generators/packageJson.ts","../src/generators/huskyrc.ts","../src/generators/idea.ts","../src/generators/lintstagedrc.ts","../src/generators/prettierignore.ts","../src/generators/pyrightconfig.ts","../src/generators/readme.ts","../src/generators/releaserc.ts","../src/generators/renovaterc.ts","../src/utils/objectUtil.ts","../src/generators/tsconfig.ts","../src/generators/workflow.ts","../src/generators/yarnrc.ts","../src/github/label.ts","../src/github/secret.ts","../src/github/settings.ts","../src/packageConfig.ts","../src/index.ts"],"sourcesContent":["class Options {\n isVerbose: boolean;\n\n constructor() {\n this.isVerbose = false;\n }\n}\n\nexport const options = new Options();\n","import { options } from './options.js';\n\nclass Logger {\n async function(name: string, func: () => Promise<void>): Promise<void> {\n if (options.isVerbose) {\n console.info(`--------- ${name} start ---------`);\n }\n await func();\n if (options.isVerbose) {\n console.info(`---------- ${name} end ----------`);\n }\n }\n}\n\nexport const logger = new Logger();\n","import fsp from 'node:fs/promises';\n\nexport const fsUtil = {\n async readFileIgnoringError(filePath: string): Promise<string | undefined> {\n try {\n return await fsp.readFile(filePath, 'utf8');\n } catch {\n // do nothing\n }\n },\n async generateFile(filePath: string, content: string): Promise<void> {\n await fsp.writeFile(filePath, content);\n console.log(`Generated/Updated ${filePath}`);\n },\n};\n","import { PromisePool } from 'minimal-promise-pool';\n\nexport const promisePool = new PromisePool();\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport { globby } from 'globby';\n\nimport { logger } from '../logger.js';\nimport { options } from '../options.js';\nimport { fsUtil } from '../utils/fsUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nexport async function fixAbbreviations(dirPath: string): Promise<void> {\n return logger.function('fixAbbreviations', async () => {\n const mdFiles = await globby('**/*.md', { dot: true, cwd: dirPath, gitignore: true });\n if (options.isVerbose) {\n console.info(`Found ${mdFiles.length} markdown files in ${dirPath}`);\n }\n for (const mdFile of mdFiles) {\n const filePath = path.join(dirPath, mdFile);\n await promisePool.run(async () => {\n const content = await fs.promises.readFile(filePath, 'utf8');\n const newContent = content.replaceAll('c.f.', 'cf.').replaceAll('eg.', 'e.g.').replaceAll('ie.', 'i.e.');\n if (content !== newContent) {\n await fsUtil.generateFile(filePath, newContent);\n }\n });\n }\n\n const tsFiles = await globby(\n [\n '{app,src,tests,scripts}/**/*.{cjs,mjs,js,jsx,cts,mts,ts,tsx}',\n 'packages/**/{app,src,tests,scripts}/**/*.{cjs,mjs,js,jsx,cts,mts,ts,tsx}',\n ],\n { dot: true, cwd: dirPath, gitignore: true }\n );\n if (options.isVerbose) {\n console.info(`Found ${tsFiles.length} TypeScript files in ${dirPath}`);\n }\n for (const tsFile of tsFiles) {\n const filePath = path.join(dirPath, tsFile);\n const oldContent = await fs.promises.readFile(filePath, 'utf8');\n const newContent = oldContent\n .replaceAll(/\\/\\/(.*)c\\.f\\./g, '//$1cf.')\n .replaceAll(/\\/\\/(.*)eg\\./g, '//$1e.g.')\n .replaceAll(/\\/\\/(.*)ie\\./g, '//$1i.e.');\n\n if (oldContent === newContent) continue;\n await fsUtil.generateFile(filePath, newContent);\n }\n\n await promisePool.promiseAll();\n });\n}\n","import fs from 'node:fs/promises';\nimport path from 'node:path';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\n\nexport async function fixDockerfile(config: PackageConfig): Promise<void> {\n return logger.function('fixDockerfile', async () => {\n if (!config.containingDockerfile) return;\n\n const filePath = path.join(config.dirPath, 'Dockerfile');\n const oldContent = await fs.readFile(filePath, 'utf8');\n\n // TODO: remove the following migration code in future\n let newContent = oldContent.replaceAll('then(process.stdout.write)', 'then(t => process.stdout.write(t))');\n if (oldContent.includes('FROM node')) {\n newContent = newContent\n .replaceAll(\n /curl https:\\/\\/raw.githubusercontent.com\\/WillBooster(\\S+)/g,\n 'node -e \\'fetch(\"https://raw.githubusercontent.com/WillBooster$1\").then(r => r.text()).then(t => process.stdout.write(t))\\''\n )\n .replaceAll('wb db', 'wb prisma');\n }\n\n if (oldContent === newContent) return;\n await fs.writeFile(filePath, newContent);\n });\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport { logger } from '../logger.js';\n\nexport async function fixTestDirectories(packageDirPaths: string[]): Promise<void> {\n return logger.function('fixTestDirectories', async () => {\n await Promise.all(\n packageDirPaths.map(async (packageDirPath) => {\n const oldTestDirPath = path.join(packageDirPath, '__tests__');\n const newTestDirPath = path.join(packageDirPath, 'tests');\n try {\n await fs.promises.rename(oldTestDirPath, newTestDirPath);\n const oldContent = await fs.promises.readFile(path.join(packageDirPath, 'package.json'), 'utf8');\n const newContent = oldContent.replaceAll('__tests__', 'tests');\n if (oldContent === newContent) return;\n\n await fs.promises.writeFile(path.join(packageDirPath, 'package.json'), newContent);\n } catch {\n // do nothing\n }\n })\n );\n });\n}\n","import fs from 'node:fs/promises';\nimport path from 'node:path';\n\nimport { ignoreEnoentAsync } from '@willbooster/shared-lib';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nexport async function fixTypeDefinitions(\n config: PackageConfig,\n configsIncludingChildren: PackageConfig[]\n): Promise<void> {\n return logger.function('fixTypeDefinitions', async () => {\n const libTypeDirPath = path.resolve(config.dirPath, '@types');\n const srcTypeDirPath =\n config.root && config.containingSubPackageJsons ? undefined : path.resolve(config.dirPath, 'src', 'types');\n\n const dirents = await ignoreEnoentAsync(() => fs.readdir(libTypeDirPath, { withFileTypes: true }));\n if (!dirents) return;\n\n for (const dirent of dirents) {\n const dirName = dirent.name.slice(0, -5);\n const hasTypeDeclarationExtension = dirent.name.endsWith('.d.ts');\n let packageName = hasTypeDeclarationExtension ? dirName : dirent.name;\n if (packageName.includes('__')) {\n packageName = `@${packageName.replace('__', '/')}`;\n }\n const hasLibrary = configsIncludingChildren.some(\n (config) =>\n config.packageJson?.dependencies?.[packageName] || config.packageJson?.devDependencies?.[packageName]\n );\n\n if (dirent.isFile() && hasTypeDeclarationExtension) {\n if (hasLibrary) {\n // Move @types/<name>/index.d.ts if installed\n await fs.mkdir(path.join(libTypeDirPath, dirName));\n await promisePool.run(() =>\n fs.rename(path.join(libTypeDirPath, dirent.name), path.join(libTypeDirPath, dirName, 'index.d.ts'))\n );\n } else if (srcTypeDirPath) {\n // Move src/types/<name> if not installed\n await fs.mkdir(srcTypeDirPath, { recursive: true });\n await promisePool.run(() =>\n fs.rename(path.join(libTypeDirPath, dirent.name), path.join(srcTypeDirPath, dirent.name))\n );\n }\n } else if (dirent.isDirectory() && srcTypeDirPath && !hasLibrary) {\n // Move src/types/<name>.d.ts if not installed\n await fs.mkdir(srcTypeDirPath, { recursive: true });\n await promisePool.run(() =>\n ignoreEnoentAsync(() =>\n fs.rename(\n path.join(libTypeDirPath, dirent.name, 'index.d.ts'),\n path.join(srcTypeDirPath, `${dirent.name}.d.ts`)\n )\n )\n );\n }\n }\n });\n}\n","import child_process, { SpawnSyncOptions } from 'node:child_process';\n\nexport function spawnSync(command: string, args: string[], cwd: string, retry = 0): void {\n do {\n const [newCmd, newArgs, options] = getSpawnSyncArgs(command, args, cwd);\n console.log(`$ ${newCmd} ${newArgs.join(' ')} at ${options.cwd}`);\n const ret = child_process.spawnSync(newCmd, newArgs, options);\n if (ret.status === 0) break;\n } while (--retry >= 0);\n}\n\nexport function spawnSyncWithStringResult(command: string, args: string[], cwd: string): string {\n const [newCmd, newArgs, options] = getSpawnSyncArgs(command, args, cwd);\n options.stdio = 'pipe';\n const proc = child_process.spawnSync(newCmd, newArgs, options);\n const error = proc.stderr.toString().trim();\n if (error) {\n console.error(`${newCmd} [${newArgs.map((s) => `\"${s}\"`)}] caused the following error:\\n ${error}`);\n }\n return proc.stdout.toString().trim();\n}\n\nexport function getSpawnSyncArgs(command: string, args: string[], cwd: string): [string, string[], SpawnSyncOptions] {\n const env = { ...process.env };\n // Remove berry from PATH\n if (env.PATH && env.BERRY_BIN_FOLDER) {\n env.PATH = env.PATH.replace(`${env.BERRY_BIN_FOLDER}:`, '');\n }\n\n if (env.ASDF_DIR) {\n args = ['-l', '-c', `. ${env.ASDF_DIR}/asdf.sh && ${command} ${args.join(' ')}`];\n command = 'bash';\n }\n return [\n command,\n args,\n {\n cwd,\n env,\n shell: false,\n stdio: 'inherit',\n },\n ];\n}\n","export function convertVersionIntoNumber(version: string): number {\n // e.g. java adoptopenjdk-11.0.17+8\n const numbers = version.split(/[+.-]/).map(Number).filter(Number.isNaN);\n let versionNumber = 0;\n let divisor = 1;\n for (const num of numbers) {\n versionNumber += num * divisor;\n divisor /= 1000;\n }\n return versionNumber;\n}\n","export const PYTHON_VERSION = '3.9.16';\nexport const JAVA_VERSION = 'adoptopenjdk-11.0.17+8';\nexport const BLITZ_VERSION = '2.0.0-beta.27';\n// Blitz.js 2.0.0-beta.27 works with Next.js 13.3.4.\nexport const NEXT_VERSION = '13.3.4';\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { promisePool } from '../utils/promisePool.js';\nimport { spawnSync, spawnSyncWithStringResult } from '../utils/spawnUtil.js';\nimport { convertVersionIntoNumber } from '../utils/version.js';\nimport { JAVA_VERSION, PYTHON_VERSION } from '../utils/versionConstants.js';\n\nexport async function generateVersionConfigs(config: PackageConfig): Promise<void> {\n return logger.function('generateVersionConfigs', async () => {\n await core(config);\n });\n}\n\nconst CORE_TOOLS = new Set(['java', 'nodejs', 'python']);\nconst DEPRECATED_VERSION_PREFIXES = ['java', 'node', 'python'];\n\nasync function core(config: PackageConfig): Promise<void> {\n if (!config.versionsText) return;\n\n const duplicatableLines = config.versionsText\n .trim()\n .split('\\n')\n .map((line) => {\n const [name, version] = line.trim().split(/\\s+/);\n return `${CORE_TOOLS.has(name) ? ' ' : ''}${name} ${version}`;\n })\n .sort()\n .map((line) => line.trim());\n const lines = [...new Set(duplicatableLines)];\n\n if (config.containingPoetryLock) {\n const response = await fetch('https://pypi.org/pypi/poetry/json');\n const json = await response.json();\n const poetryVersion = json?.info?.version;\n if (poetryVersion) {\n updateVersion(lines, 'poetry', json?.info?.version);\n }\n updateVersion(lines, 'python', PYTHON_VERSION, true);\n }\n if (config.depending.firebase) {\n updateVersion(lines, 'java', JAVA_VERSION, true);\n }\n if (config.containingPackageJson) {\n const version = spawnSyncWithStringResult('npm', ['show', 'yarn', 'version'], config.dirPath);\n updateVersion(lines, 'yarn', version);\n }\n\n for (const prefix of DEPRECATED_VERSION_PREFIXES) {\n const versionPath = path.resolve(config.dirPath, `.${prefix}-version`);\n void fs.promises.rm(versionPath, { force: true });\n }\n\n const toolVersionsPath = path.resolve(config.dirPath, '.tool-versions');\n await (lines.length > 0\n ? promisePool.run(() => fs.promises.writeFile(toolVersionsPath, lines.join('\\n') + '\\n'))\n : promisePool.run(() => fs.promises.rm(toolVersionsPath, { force: true })));\n await promisePool.promiseAll();\n spawnSync('asdf', ['plugin', 'update', '--all'], config.dirPath);\n spawnSync('asdf', ['install'], config.dirPath);\n}\n\nfunction updateVersion(lines: string[], toolName: string, newVersion: string, head = false): void {\n const index = lines.findIndex((l) => l.split(/\\s+/)[0] === toolName);\n const newLine = `${toolName} ${newVersion}`;\n if (index >= 0) {\n const [, version] = lines[index].split(/\\s+/);\n if (convertVersionIntoNumber(newVersion) > convertVersionIntoNumber(version)) {\n lines[index] = newLine;\n }\n } else {\n lines.splice(head ? 0 : lines.length, 0, newLine);\n }\n}\n","import fs from 'node:fs';\n\nconst userContentHeader = '# Project-specific settings';\nconst userContentHeaderRegex = /# Project-specific settings[^\\n]*\\n/gm;\nconst separator = '# Generated by wbfy';\nconst separatorPrefix = '# Generated by ';\nconst defaultHeadUserContent = `${userContentHeader} (head)\n\n\n${separator}\n`;\nconst defaultTailUserContent = `\n${userContentHeader} (tail)\n`;\n\nexport const ignoreFileUtil = {\n separator,\n separatorPrefix,\n defaultHeadUserContent,\n defaultTailUserContent,\n async readGitignoreWithoutSeparators(filePath: string): Promise<string | undefined> {\n try {\n let content = await fs.promises.readFile(filePath, 'utf8');\n const lastHeaderIndex = getIndexOfTailUserContentHeader(content);\n if (lastHeaderIndex > 0) {\n content = content.slice(0, lastHeaderIndex - 1);\n }\n return (\n content\n .replaceAll(userContentHeaderRegex, '')\n .replaceAll(/# Generated by [^\\n]*\\n/gm, '')\n .replaceAll(/\\r?\\n\\r?\\n(\\r?\\n)+/gm, '\\n\\n')\n .trim() + '\\n'\n );\n } catch {\n // do nothing\n }\n },\n getHeadUserContent(content: string): string {\n const index = content.indexOf(this.separatorPrefix);\n if (index >= 0) {\n return content\n .slice(0, content.indexOf('\\n', index) + 1)\n .replaceAll(userContentHeaderRegex, `${userContentHeader} (head)\\n`);\n }\n return defaultHeadUserContent;\n },\n getTailUserContent(content: string): string | undefined {\n const lastHeaderIndex = getIndexOfTailUserContentHeader(content);\n if (lastHeaderIndex > 0) {\n return content.slice(lastHeaderIndex - 1);\n }\n return defaultTailUserContent;\n },\n async isBerryZeroInstallEnabled(filePath: string): Promise<boolean> {\n try {\n const content = await fs.promises.readFile(filePath, 'utf8');\n return content.includes('\\n!.yarn/cache');\n } catch {\n return false;\n }\n },\n};\n\nfunction getIndexOfTailUserContentHeader(content: string): number {\n const index = content.indexOf(userContentHeader);\n const lastIndex = content.lastIndexOf(userContentHeader);\n return lastIndex > index ? lastIndex : -1;\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { fsUtil } from '../utils/fsUtil.js';\nimport { ignoreFileUtil } from '../utils/ignoreFileUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nconst commonContent = `\n**/*.sqlite3*\n.yarn/install-state.gz\n`;\n\nexport async function generateDockerignore(config: PackageConfig): Promise<void> {\n return logger.function('generateDockerignore', async () => {\n const filePath = path.resolve(config.dirPath, '.dockerignore');\n if (config.containingDockerfile) {\n const content = (await fsUtil.readFileIgnoringError(filePath)) ?? '';\n const headUserContent = ignoreFileUtil.getHeadUserContent(content);\n const tailUserContent = ignoreFileUtil.getTailUserContent(content);\n\n const newContent = headUserContent + commonContent + tailUserContent;\n await promisePool.run(() => fsUtil.generateFile(filePath, newContent));\n } else {\n await fs.promises.rm(filePath, { force: true });\n }\n });\n}\n","export const extensions = {\n codeWith2IndentSize: [\n 'cjs',\n 'mjs',\n 'js',\n 'jsx',\n 'cts',\n 'mts',\n 'ts',\n 'tsx',\n 'json',\n 'json5',\n 'cpp',\n 'dart',\n 'htm',\n 'html',\n 'pu',\n 'puml',\n 'rb',\n 'vue',\n 'yaml',\n 'yml',\n ].sort(),\n codeWith4IndentSize: ['go', 'gradle', 'py'].sort(),\n codeWith8IndentSize: ['sh'].sort(),\n markdownLike: ['md'].sort(),\n eslint: ['cjs', 'mjs', 'js', 'cts', 'mts', 'ts', 'tsx', 'jsx'].sort(),\n prettier: [\n 'cjs',\n 'mjs',\n 'js',\n 'jsx',\n 'cts',\n 'mts',\n 'ts',\n 'tsx',\n 'json',\n 'json5',\n 'css',\n 'htm',\n 'html',\n 'md',\n 'scss',\n 'vue',\n 'yaml',\n 'yml',\n ].sort(),\n};\n","import path from 'node:path';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { extensions } from '../utils/extensions.js';\nimport { fsUtil } from '../utils/fsUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nconst newContent = `root = true\n\n[*]\ncharset = utf-8\nend_of_line = lf\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n${generateExtensions(extensions.codeWith2IndentSize)}\nindent_size = 2\nindent_style = space\n\n${generateExtensions(extensions.codeWith4IndentSize)}\nindent_size = 4\nindent_style = space\n\n${generateExtensions(extensions.codeWith8IndentSize)}\nindent_size = 8\nindent_style = space\n\n${generateExtensions(extensions.markdownLike)}\nmax_line_length = off\ntrim_trailing_whitespace = false\n\n[{Makefile,*.mk}]\nindent_style = tab\n`;\n\nexport async function generateEditorconfig(config: PackageConfig): Promise<void> {\n return logger.function('generateEditorconfig', async () => {\n const filePath = path.resolve(config.dirPath, '.editorconfig');\n await promisePool.run(() => fsUtil.generateFile(filePath, newContent));\n });\n}\n\nfunction generateExtensions(extensions: string[]): string {\n return extensions.length > 1 ? `[*.{${extensions.join(',')}}]` : `[*.${extensions[0]}]`;\n}\n","import path from 'node:path';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { fsUtil } from '../utils/fsUtil.js';\nimport { ignoreFileUtil } from '../utils/ignoreFileUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nconst commonContent = `\n3rd-party/\n@types/\n__generated__/\nandroid/\nios/\nno-format/\ntest-fixtures/\n*.config.*js\n*.d.ts\n*.min.*js\n.yarn/\n.pnp.js\n`;\n\nexport async function generateEslintignore(config: PackageConfig): Promise<void> {\n return logger.function('generateEslintignore', async () => {\n const filePath = path.resolve(config.dirPath, '.eslintignore');\n const content = (await fsUtil.readFileIgnoringError(filePath)) ?? '';\n const headUserContent = ignoreFileUtil.getHeadUserContent(content);\n const tailUserContent = ignoreFileUtil.getTailUserContent(content);\n\n const gitignoreFilePath = path.resolve(config.dirPath, '.gitignore');\n const gitignoreContent = (await ignoreFileUtil.readGitignoreWithoutSeparators(gitignoreFilePath)) || '';\n\n const newContent = headUserContent + commonContent + gitignoreContent + tailUserContent;\n await promisePool.run(() => fsUtil.generateFile(filePath, newContent));\n });\n}\n","import merge from 'deepmerge';\n\nexport function overwriteMerge(destinationArray: any[], sourceArray: any[]): any[] {\n return sourceArray;\n}\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function combineMerge(target: any[], source: any[], options: any): any[] {\n const destination = [...target];\n\n for (const [index, item] of source.entries()) {\n if (destination[index] === undefined) {\n destination[index] = options.cloneUnlessOtherwiseSpecified(item, options);\n } else if (options.isMergeableObject(item)) {\n destination[index] = merge(target[index], item, options);\n } else if (!target.includes(item)) {\n destination.push(item);\n }\n }\n return destination;\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport merge from 'deepmerge';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { fsUtil } from '../utils/fsUtil.js';\nimport { combineMerge } from '../utils/mergeUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nexport async function generateEslintrc(config: PackageConfig, rootConfig: PackageConfig): Promise<void> {\n return logger.function('generateEslintrc', async () => {\n const bases = [];\n if (config.eslintBase) {\n bases.push(config.eslintBase);\n }\n if (config !== rootConfig) {\n bases.push('../../.eslintrc.json');\n }\n let newSettings: any = { root: true, extends: bases };\n\n const filePath = path.resolve(config.dirPath, '.eslintrc.json');\n try {\n const oldContent = await fs.promises.readFile(filePath, 'utf8');\n const oldSettings = JSON.parse(oldContent);\n if (oldSettings.extends) {\n oldSettings.extends = oldSettings.extends.filter(\n (ext: string) => !ext.startsWith('@willbooster/') && ext !== '../../.eslintrc.json'\n );\n }\n if (bases.length === 0) {\n oldSettings.extends = [];\n }\n const newExtends = newSettings.extends;\n newSettings.extends = oldSettings.extends;\n oldSettings.extends = newExtends;\n newSettings = merge.all([newSettings, oldSettings, newSettings], { arrayMerge: combineMerge });\n if (config.depending.blitz === '0') {\n addExtensionToHead(newSettings, 'blitz');\n } else if (config.depending.blitz === '2') {\n addExtensionToHead(newSettings, './node_modules/@blitzjs/next/eslint');\n }\n } catch {\n // do nothing\n }\n const newContent = JSON.stringify(newSettings);\n await promisePool.run(() => fsUtil.generateFile(filePath, newContent));\n });\n}\n\nfunction addExtensionToHead(newSettings: any, extension: string): void {\n newSettings.extends = [extension, ...newSettings.extends.filter((e: string) => e !== extension)];\n}\n","import path from 'node:path';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { extensions } from '../utils/extensions.js';\nimport { fsUtil } from '../utils/fsUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nconst newContent = `* text=auto\n\n*.vcproj text eol=crlf\n\n${[...extensions.codeWith2IndentSize, ...extensions.codeWith4IndentSize, ...extensions.markdownLike]\n .map((ext) => `*.${ext} text eol=lf`)\n .join('\\n')}\n`;\n\nexport async function generateGitattributes(config: PackageConfig): Promise<void> {\n return logger.function('generateGitattributes', async () => {\n const filePath = path.resolve(config.dirPath, '.gitattributes');\n await promisePool.run(() => fsUtil.generateFile(filePath, newContent));\n });\n}\n","import fs from 'node:fs';\nimport os from 'node:os';\nimport path from 'node:path';\n\nimport { logger } from '../logger.js';\nimport { options } from '../options.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { fsUtil } from '../utils/fsUtil.js';\nimport { ignoreFileUtil } from '../utils/ignoreFileUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nconst defaultNames = ['windows', 'macos', 'linux', 'jetbrains', 'visualstudiocode', 'emacs', 'vim', 'yarn'];\n\nconst commonContent = `\n.devcontainer/\ndist/\ntemp/\nIcon[\\r]\n!.keep\n`;\n\nexport async function generateGitignore(config: PackageConfig, rootConfig: PackageConfig): Promise<void> {\n return logger.function('generateGitignore', async () => {\n const filePath = path.resolve(config.dirPath, '.gitignore');\n const content = (await fsUtil.readFileIgnoringError(filePath)) ?? '';\n let headUserContent = ignoreFileUtil.getHeadUserContent(content) + commonContent;\n const tailUserContent = ignoreFileUtil.getTailUserContent(content);\n\n const names = [...defaultNames];\n if (config.containingGemfile) {\n names.push('ruby');\n }\n if (config.containingGoMod) {\n names.push('go');\n headUserContent += `${path.basename(config.dirPath)}\n`;\n }\n if (config.containingPackageJson) {\n names.push('node');\n }\n if (config.containingPomXml) {\n names.push('maven');\n headUserContent += `.idea/google-java-format.xml\n`;\n }\n if (config.containingPubspecYaml) {\n names.push('flutter', 'AndroidStudio', 'ruby');\n headUserContent += `.flutter-plugins-dependencies\nandroid/key.properties\nios/.bundle\n.idea/runConfigurations.xml\n`;\n }\n if (config.containingTemplateYaml) {\n headUserContent += `.aws-sam/\npackaged.yaml\n`;\n }\n // Because .venv should be ignored on root directory\n if (config.containingPoetryLock) {\n names.push('python');\n headUserContent += `.venv/\n`;\n }\n\n if (config.depending.blitz) {\n names.push('nextjs');\n headUserContent += `.blitz/\n.blitz**\n`;\n }\n if (rootConfig.depending.firebase || config.depending.firebase) {\n names.push('firebase');\n }\n if (rootConfig.depending.prisma) {\n headUserContent += `*.sqlite3\n*.sqlite3-journal\n`;\n }\n if (config.depending.playwright) {\n headUserContent += `test-results/\n`;\n }\n if (rootConfig.depending.reactNative || config.depending.reactNative) {\n names.push('reactnative');\n headUserContent += `google-services.json\nandroid/app/src/main/assets/\n`;\n }\n if (config.depending.storybook) {\n names.push('storybookjs');\n }\n\n let generated = '';\n for (const name of names) {\n let content = (await readCache(name)) ?? '';\n if (!content) {\n const url = `https://www.toptal.com/developers/gitignore/api/${name}`;\n const response = await fetch(url);\n const responseText = await response.text();\n if (responseText.includes('Attention Required!')) {\n console.error(`Failed to fetch ${url}`);\n return;\n }\n content = responseText.trim();\n await promisePool.run(() => writeCache(name, content));\n if (options.isVerbose) {\n console.info(`Fetched ${url}`);\n }\n }\n if (generated) generated += '\\n';\n generated += content + '\\n';\n }\n if (!(await ignoreFileUtil.isBerryZeroInstallEnabled(filePath))) {\n generated = generated.replace('!.yarn/cache', '# !.yarn/cache').replace('# .pnp.*', '.pnp.*');\n }\n if (config.containingPomXml || config.containingPubspecYaml) {\n generated = generated\n .replaceAll(/^# .idea\\/artifacts$/gm, '.idea/artifacts')\n .replaceAll(/^# .idea\\/compiler.xml$/gm, '.idea/compiler.xml')\n .replaceAll(/^# .idea\\/jarRepositories.xml$/gm, '.idea/jarRepositories.xml')\n .replaceAll(/^# .idea\\/modules.xml$/gm, '.idea/modules.xml')\n .replaceAll(/^# .idea\\/*.iml$/gm, '.idea/*.iml')\n .replaceAll(/^# .idea\\/modules$/gm, '.idea/modules')\n .replaceAll(/^# *.iml$/gm, '*.iml')\n .replaceAll(/^# *.ipr$/gm, '*.ipr');\n if (config.containingPubspecYaml) {\n generated = generated.replaceAll(/^.idea\\/modules.xml$/gm, '# .idea/modules.xml');\n }\n }\n generated = generated.replaceAll(/^.idea\\/?$/gm, '# .idea');\n if (rootConfig.depending.reactNative || config.depending.reactNative || config.containingPubspecYaml) {\n generated = generated.replaceAll(/^(.idea\\/.+)$/gm, '$1\\nandroid/$1');\n }\n const newContent = headUserContent + generated + tailUserContent;\n await promisePool.run(() => fsUtil.generateFile(filePath, newContent));\n });\n}\n\nconst dirPath = path.join(os.homedir(), '.cache', 'wbfy', 'gitignore');\n\nasync function writeCache(name: string, content: string): Promise<void> {\n await fs.promises.mkdir(dirPath, { recursive: true });\n await fs.promises.writeFile(path.join(dirPath, name), content);\n}\n\nasync function readCache(name: string): Promise<string | undefined> {\n try {\n const stat = await fs.promises.stat(path.join(dirPath, name));\n if (Date.now() - stat.mtimeMs > 6 * 60 * 60 * 1000) {\n return;\n }\n return await fs.promises.readFile(path.join(dirPath, name), 'utf8');\n } catch {\n // do nothing\n }\n}\n","import { PackageConfig } from '../packageConfig.js';\n\nexport const EslintUtil = {\n getLintFixSuffix(config: PackageConfig): string {\n return config.containingJsxOrTsx ? ' --rule \"{ react-hooks/exhaustive-deps: 0 }\"' : '';\n },\n};\n","import { Octokit } from '@octokit/core';\n\nconst token =\n process.env.GH_BOT_PAT || process.env.PUBLIC_GH_BOT_PAT || process.env.GH_TOKEN || process.env.GITHUB_TOKEN;\nexport const hasGitHubToken = !!token;\nexport const octokit = new Octokit({\n auth: token,\n});\n\nclass GitHubUtil {\n getOrgAndName(urlOrFullName: string): [string, string] {\n const urlWithoutProtocol = urlOrFullName.split(':').at(-1);\n const names = urlWithoutProtocol?.split('/');\n const org = names?.at(-2) ?? '';\n const name = names?.at(-1)?.replace(/.git$/, '') ?? '';\n return [org, name];\n }\n}\n\nexport const gitHubUtil = new GitHubUtil();\n","import { PackageConfig } from '../packageConfig.js';\n\nconst srcDirectories = {\n node: ['src', 'tests', 'scripts'].sort(),\n blitz0: ['tests', 'scripts', 'app', 'db', 'integrations', 'mailers', 'test'].sort(),\n // We rename 'test' directory to 'tests'\n blitz2: ['src', 'tests', 'scripts', 'db', 'integrations', 'mailers'].sort(),\n};\n\nexport function getSrcDirs(config: PackageConfig): string[] {\n if (config.depending.blitz) {\n return config.depending.blitz === '0' ? srcDirectories.blitz0 : srcDirectories.blitz2;\n }\n return srcDirectories.node;\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport merge from 'deepmerge';\nimport { globby } from 'globby';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { EslintUtil } from '../utils/eslintUtil.js';\nimport { extensions } from '../utils/extensions.js';\nimport { gitHubUtil } from '../utils/githubUtil.js';\nimport { ignoreFileUtil } from '../utils/ignoreFileUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\nimport { spawnSync } from '../utils/spawnUtil.js';\nimport { getSrcDirs } from '../utils/srcDirectories.js';\nimport { BLITZ_VERSION, NEXT_VERSION } from '../utils/versionConstants.js';\n\nconst jsCommonDeps = [\n 'eslint',\n 'eslint-config-prettier',\n 'eslint-plugin-import',\n 'eslint-plugin-sort-class-members',\n 'eslint-plugin-sort-destructure-keys',\n 'eslint-plugin-unicorn',\n];\n\nconst tsCommonDeps = [\n ...jsCommonDeps,\n '@typescript-eslint/eslint-plugin',\n '@typescript-eslint/parser',\n 'eslint-import-resolver-typescript',\n];\n\nconst reactCommonDeps = ['eslint-plugin-react', 'eslint-plugin-react-hooks'];\n\nconst devDeps: { [prop: string]: string[] } = {\n '@willbooster/eslint-config-js': ['@willbooster/eslint-config-js', ...jsCommonDeps],\n '@willbooster/eslint-config-js-react': ['@willbooster/eslint-config-js-react', ...jsCommonDeps, ...reactCommonDeps],\n '@willbooster/eslint-config-ts': ['@willbooster/eslint-config-ts', ...tsCommonDeps],\n '@willbooster/eslint-config-ts-react': ['@willbooster/eslint-config-ts-react', ...tsCommonDeps, ...reactCommonDeps],\n '@willbooster/eslint-config-blitz-next': [\n '@willbooster/eslint-config-blitz-next',\n ...tsCommonDeps,\n ...reactCommonDeps,\n ],\n '../../.eslintrc.json': [],\n};\n\nexport async function generatePackageJson(\n config: PackageConfig,\n rootConfig: PackageConfig,\n skipAddingDeps: boolean\n): Promise<void> {\n return logger.function('generatePackageJson', async () => {\n await core(config, rootConfig, skipAddingDeps);\n });\n}\n\nasync function core(config: PackageConfig, rootConfig: PackageConfig, skipAddingDeps: boolean): Promise<void> {\n const filePath = path.resolve(config.dirPath, 'package.json');\n const jsonText = await fs.promises.readFile(filePath, 'utf8');\n const jsonObj = JSON.parse(jsonText);\n jsonObj.scripts = jsonObj.scripts || {};\n jsonObj.dependencies = jsonObj.dependencies || {};\n jsonObj.devDependencies = jsonObj.devDependencies || {};\n jsonObj.peerDependencies = jsonObj.peerDependencies || {};\n\n await removeDeprecatedStuff(jsonObj);\n\n if (jsonObj.name !== '@willbooster/prettier-config') {\n jsonObj.prettier = '@willbooster/prettier-config';\n }\n\n for (const scriptKey of Object.keys(jsonObj.scripts)) {\n // Fresh repo still requires 'yarn install'\n if (!jsonObj.scripts[scriptKey].includes('git clone')) {\n jsonObj.scripts[scriptKey] = jsonObj.scripts[scriptKey]\n .replace(/yarn\\s*&&\\s*/, '')\n .replace(/yarn\\s*install\\s*&&\\s*/, '');\n }\n }\n\n jsonObj.scripts = merge(jsonObj.scripts, generateScripts(config));\n jsonObj.scripts.prettify += await generatePrettierSuffix(config.dirPath);\n\n let dependencies: string[] = [];\n let devDependencies = ['lint-staged', 'prettier', 'sort-package-json', '@willbooster/prettier-config'];\n const poetryDevDependencies: string[] = [];\n\n if (config.root) {\n // To install the latest pinst\n devDependencies.push('husky', '@willbooster/renovate-config');\n if (config.publicRepo || config.referredByOtherRepo) {\n // https://typicode.github.io/husky/#/?id=install-1\n devDependencies.push('pinst');\n jsonObj.scripts['prepack'] = 'pinst --disable';\n jsonObj.scripts['postpack'] = 'pinst --enable';\n }\n if (config.depending.semanticRelease) {\n devDependencies.push('conventional-changelog-conventionalcommits');\n if (\n !jsonObj.devDependencies['semantic-release'] &&\n !jsonObj.devDependencies['multi-semantic-release'] &&\n !jsonObj.devDependencies['@qiwi/multi-semantic-release']\n ) {\n devDependencies.push('semantic-release');\n }\n jsonObj.version = '0.0.0-semantically-released';\n }\n if (config.depending.playwright) {\n devDependencies.push('@playwright/test');\n // TODO: remove the following migration code in future\n delete jsonObj.devDependencies['playwright'];\n }\n if (config.containingSubPackageJsons) {\n jsonObj.workspaces = ['packages/*'];\n } else {\n delete jsonObj.workspaces;\n }\n }\n if (config.depending.wb) {\n devDependencies.push('@willbooster/wb');\n // TODO: remove the following migration code in future\n delete jsonObj.devDependencies['@willbooster/shared-scripts'];\n for (const key of Object.keys(jsonObj.scripts)) {\n jsonObj.scripts[key] = jsonObj.scripts[key].replace(/wb\\s+db/, 'wb prisma');\n }\n }\n\n if (\n config.containingJavaScript ||\n config.containingJavaScriptInPackages ||\n config.containingTypeScript ||\n config.containingTypeScriptInPackages\n ) {\n devDependencies.push('eslint', 'micromatch');\n // TODO: not needed anymore?\n if (config.containingTypeScriptInPackages) {\n devDependencies.push('@typescript-eslint/parser');\n }\n }\n\n if (config.containingTypeScript || config.containingTypeScriptInPackages) {\n devDependencies.push('typescript');\n }\n\n if (config.eslintBase) {\n devDependencies.push(...devDeps[config.eslintBase]);\n }\n\n if (config.willBoosterConfigs) {\n dependencies = dependencies.filter((dep) => !dep.includes('@willbooster/'));\n devDependencies = devDependencies.filter((dep) => !dep.includes('@willbooster/'));\n }\n\n if (!jsonObj.name) {\n jsonObj.name = path.basename(config.dirPath);\n }\n\n if (config.containingSubPackageJsons) {\n jsonObj.private = true;\n }\n if (!jsonObj.license) {\n jsonObj.license = 'UNLICENSED';\n }\n if (!jsonObj.private && jsonObj.license !== 'UNLICENSED' && rootConfig.publicRepo) {\n jsonObj.publishConfig ??= {};\n jsonObj.publishConfig.access ??= 'public';\n }\n const [owner] = gitHubUtil.getOrgAndName(config.repository ?? '');\n if (owner === 'WillBooster' || owner === 'WillBoosterLab') {\n jsonObj.author = 'WillBooster Inc.';\n }\n if (!config.root && jsonObj.private && !jsonObj.main) {\n // Make VSCode possible to refactor code across subpackages.\n jsonObj.main = './src';\n }\n\n // https://github.com/semantic-release/semantic-release/issues/2323#issuecomment-1032341621\n if (config.depending.semanticRelease && config.release.npm) {\n if (config.esmPackage) {\n delete jsonObj.resolutions?.['npm/chalk'];\n } else {\n jsonObj.resolutions ||= {};\n jsonObj.resolutions['npm/chalk'] = '^4.1.2';\n }\n }\n\n if (!config.containingSubPackageJsons) {\n if (!config.containingJavaScript && !config.containingTypeScript) {\n delete jsonObj.scripts.lint;\n delete jsonObj.scripts['lint-fix'];\n jsonObj.scripts.cleanup = jsonObj.scripts.cleanup.replace(' && yarn lint-fix', '');\n } else {\n jsonObj.scripts['lint-fix'] += EslintUtil.getLintFixSuffix(config);\n }\n\n if (config.containingPubspecYaml) {\n jsonObj.scripts.lint = 'flutter analyze';\n jsonObj.scripts['lint-fix'] = 'yarn lint';\n const dirs = ['lib', 'test', 'test_driver'].filter((dir) => fs.existsSync(path.resolve(config.dirPath, dir)));\n if (dirs.length > 0) {\n jsonObj.scripts['format-code'] = `flutter format $(find ${dirs.join(\n ' '\n )} -name generated -prune -o -name '*.freezed.dart' -prune -o -name '*.g.dart' -prune -o -name '*.dart' -print)`;\n jsonObj.scripts.format += ` && yarn format-code`;\n }\n }\n\n if (config.containingPoetryLock) {\n if (jsonObj.scripts.postinstall === 'poetry install') {\n delete jsonObj.scripts.postinstall;\n }\n const pythonFiles = await globby('**/*.py', {\n cwd: config.dirPath,\n dot: true,\n gitignore: true,\n ignore: ['test-fixtures'],\n });\n const dirNameSet = new Set<string>();\n for (const pythonFile of pythonFiles) {\n const [first, second] = pythonFile.split(/[/\\\\]/);\n if (second) {\n dirNameSet.add(first);\n }\n }\n if (dirNameSet.size > 0) {\n const dirNamesStr = [...dirNameSet].join(' ');\n jsonObj.scripts[\n 'format-code'\n ] = `poetry run isort --profile black ${dirNamesStr} && poetry run black ${dirNamesStr}`;\n if (jsonObj.scripts.lint) {\n jsonObj.scripts.lint = `poetry run flake8 ${dirNamesStr} && ${jsonObj.scripts.lint}`;\n } else {\n jsonObj.scripts.lint = `poetry run flake8 ${dirNamesStr}`;\n jsonObj.scripts['lint-fix'] = 'yarn lint';\n }\n jsonObj.scripts.format += ` && yarn format-code`;\n poetryDevDependencies.push('black', 'isort', 'flake8');\n }\n }\n\n if (config.repository) {\n jsonObj.repository = config.repository;\n }\n }\n\n if (config.depending.blitz) {\n if (config.depending.blitz === '0') {\n // These cause an error of eslint-plugin-import loading\n devDependencies = devDependencies.filter((dep) => !dep.includes('@typescript-eslint/'));\n // This causes eslint errors\n devDependencies = devDependencies.filter(\n (d) =>\n d !== 'eslint-plugin-react' &&\n d !== 'eslint-import-resolver-typescript' &&\n d !== 'eslint-plugin-import' &&\n d !== 'eslint-plugin-react-hooks'\n );\n } else {\n dependencies.push(\n `@blitzjs/auth@${BLITZ_VERSION}`,\n `@blitzjs/next@${BLITZ_VERSION}`,\n `@blitzjs/rpc@${BLITZ_VERSION}`,\n `next@${NEXT_VERSION}`\n );\n }\n if (!jsonObj.scripts['gen-code']?.startsWith('blitz codegen')) {\n jsonObj.scripts['gen-code'] = 'blitz codegen';\n } else if (!jsonObj.scripts['gen-code'].includes('blitz prisma generate')) {\n jsonObj.scripts['gen-code'] = jsonObj.scripts['gen-code'].replace(\n 'blitz codegen',\n 'blitz codegen && blitz prisma generate'\n );\n }\n } else if (config.depending.prisma && !jsonObj.scripts['gen-code']?.startsWith('prisma generate')) {\n jsonObj.scripts['gen-code'] = 'prisma generate';\n }\n\n if (config.depending.next) {\n // To prevent multiple versions of @types/react from mixing.\n delete jsonObj.devDependencies['@types/react'];\n }\n\n if (Object.keys(jsonObj.dependencies).length === 0) {\n delete jsonObj.dependencies;\n }\n if (Object.keys(jsonObj.devDependencies).length === 0) {\n delete jsonObj.devDependencies;\n }\n if (Object.keys(jsonObj.peerDependencies).length === 0) {\n delete jsonObj.peerDependencies;\n }\n\n await fs.promises.writeFile(filePath, JSON.stringify(jsonObj));\n\n if (!skipAddingDeps) {\n // We cannot add dependencies which are already included in devDependencies.\n dependencies = dependencies.filter((dep) => !jsonObj.devDependencies?.[dep]);\n if (dependencies.length > 0) {\n spawnSync('yarn', ['add', ...new Set(dependencies)], config.dirPath);\n }\n // We cannot add devDependencies which are already included in dependencies.\n devDependencies = devDependencies.filter((dep) => !jsonObj.dependencies?.[dep]);\n if (devDependencies.length > 0) {\n spawnSync('yarn', ['add', '-D', ...new Set(devDependencies)], config.dirPath);\n }\n if (poetryDevDependencies.length > 0) {\n spawnSync('poetry', ['add', '--group', 'dev', ...new Set(poetryDevDependencies)], config.dirPath);\n }\n }\n}\n\n// TODO: remove the following migration code in future\nasync function removeDeprecatedStuff(jsonObj: any): Promise<void> {\n if (jsonObj.author === 'WillBooster LLC') {\n jsonObj.author = 'WillBooster Inc.';\n }\n delete jsonObj.scripts['sort-package-json'];\n delete jsonObj.scripts['sort-all-package-json'];\n delete jsonObj.scripts['typecheck/warn'];\n delete jsonObj.scripts['typecheck:gen-code'];\n delete jsonObj.scripts['typecheck:codegen'];\n delete jsonObj.dependencies['tslib'];\n delete jsonObj.devDependencies['@willbooster/eslint-config'];\n delete jsonObj.devDependencies['@willbooster/eslint-config-react'];\n delete jsonObj.devDependencies['@willbooster/tsconfig'];\n delete jsonObj.devDependencies['eslint-import-resolver-node'];\n delete jsonObj.devDependencies['eslint-plugin-prettier'];\n delete jsonObj.devDependencies['lerna'];\n // To install the latest pinst\n delete jsonObj.devDependencies['pinst'];\n delete jsonObj.scripts['flutter-format'];\n delete jsonObj.scripts['format-flutter'];\n delete jsonObj.scripts['python-format'];\n delete jsonObj.scripts['format-python'];\n delete jsonObj.scripts['prettier'];\n for (const deps of Object.values(devDeps)) {\n for (const dep of deps) {\n delete jsonObj.devDependencies[dep];\n }\n }\n await promisePool.run(() => fs.promises.rm('lerna.json', { force: true }));\n}\n\nexport function generateScripts(config: PackageConfig): Record<string, string> {\n let scripts: Record<string, string> = {\n cleanup: 'yarn format && yarn lint-fix',\n format: `sort-package-json && yarn prettify`,\n lint: `eslint --color \"./{${getSrcDirs(config)}}/**/*.{${extensions.eslint.join(',')}}\"`,\n 'lint-fix': 'yarn lint --fix',\n prettify: `prettier --cache --color --write \"**/{.*/,}*.{${extensions.prettier.join(',')}}\" \"!**/test-fixtures/**\"`,\n typecheck: 'tsc --noEmit --Pretty',\n };\n if (config.containingSubPackageJsons) {\n scripts = merge(\n { ...scripts },\n {\n format: `sort-package-json && yarn prettify && yarn workspaces foreach --parallel --verbose run format`,\n lint: `yarn workspaces foreach --parallel --verbose run lint`,\n 'lint-fix': 'yarn workspaces foreach --parallel --verbose run lint-fix',\n prettify: `prettier --cache --color --write \"**/{.*/,}*.{${extensions.prettier.join(\n ','\n )}}\" \"!**/packages/**\" \"!**/test-fixtures/**\"`,\n // CI=1 prevents vitest from enabling watch.\n // FORCE_COLOR=3 make wb enable color output.\n test: 'CI=1 FORCE_COLOR=3 yarn workspaces foreach --verbose run test',\n typecheck: 'yarn workspaces foreach --parallel --verbose run typecheck',\n }\n );\n if (!config.containingTypeScript && !config.containingTypeScriptInPackages) {\n delete scripts.typecheck;\n }\n } else {\n if (config.depending.wb) {\n scripts.typecheck = 'wb typecheck';\n }\n if (!config.containingTypeScript && !config.containingTypeScriptInPackages) {\n delete scripts.typecheck;\n }\n if (config.depending.pyright) {\n scripts.typecheck = scripts.typecheck ? `${scripts.typecheck} && ` : '';\n scripts.typecheck += 'pyright';\n }\n }\n return scripts;\n}\n\nasync function generatePrettierSuffix(dirPath: string): Promise<string> {\n const filePath = path.resolve(dirPath, '.prettierignore');\n const existingContent = await fs.promises.readFile(filePath, 'utf8');\n const index = existingContent.indexOf(ignoreFileUtil.separatorPrefix);\n if (index < 0) return '';\n\n const originalContent = existingContent.slice(0, index);\n const lines = originalContent\n .split('\\n')\n .map((line) => {\n const newLine = line.trim();\n return newLine.endsWith('/') ? newLine.slice(0, -1) : newLine;\n })\n .filter((l) => l && !l.startsWith('#') && !l.includes('/'));\n\n return lines.map((line) => ` \"!**/${line}/**\"`).join('');\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { promisePool } from '../utils/promisePool.js';\nimport { spawnSync } from '../utils/spawnUtil.js';\n\nimport { generateScripts } from './packageJson.js';\n\nconst DEFAULT_COMMAND = 'npm test';\n\nconst settings = {\n preCommit: 'node node_modules/.bin/lint-staged',\n prePush: `yarn typecheck`,\n prePushForLab: `\nif [ $(git branch --show-current) = \"main\" ] && [ $(git config user.email) != \"exkazuu@gmail.com\" ]; then\n echo \"************************************************\"\n echo \"*** Don't push main branch directly. Use PR! ***\"\n echo \"************************************************\"\n exit 1\nfi\n\nyarn typecheck\n`.trim(),\n postMerge: `\nchanged_files=\"$(git diff-tree -r --name-only --no-commit-id ORIG_HEAD HEAD)\"\n\nrun_if_changed() {\n if echo \"$changed_files\" | grep --quiet -E \"$1\"; then\n eval \"$2\"\n fi\n}\n`.trim(),\n};\n\nexport async function generateHuskyrc(config: PackageConfig): Promise<void> {\n return logger.function('generateHuskyrc', async () => {\n await core(config);\n });\n}\n\nasync function core(config: PackageConfig): Promise<void> {\n const packageJsonPath = path.resolve(config.dirPath, 'package.json');\n const jsonText = await fs.promises.readFile(packageJsonPath, 'utf8');\n const packageJson = JSON.parse(jsonText);\n packageJson.scripts ||= {};\n delete packageJson.scripts['postinstall'];\n delete packageJson.scripts['postpublish'];\n delete packageJson.scripts['prepare'];\n delete packageJson.scripts['prepublishOnly'];\n delete packageJson.scripts['prepack'];\n delete packageJson.scripts['postpack'];\n\n const dirPath = path.resolve(config.dirPath, '.husky');\n await Promise.all([\n fs.promises.writeFile(packageJsonPath, JSON.stringify(packageJson, undefined, 2)),\n fs.promises.rm(dirPath, { force: true, recursive: true }),\n ]);\n spawnSync('yarn', ['dlx', 'husky-init', '--yarn2'], config.dirPath);\n\n const preCommitFilePath = path.resolve(dirPath, 'pre-commit');\n const content = await fs.promises.readFile(preCommitFilePath, 'utf8');\n\n await promisePool.run(() => fs.promises.rm(path.resolve(config.dirPath, '.huskyrc.json'), { force: true }));\n await promisePool.run(() =>\n fs.promises.writeFile(preCommitFilePath, content.replace(DEFAULT_COMMAND, settings.preCommit))\n );\n\n const { typecheck } = generateScripts(config);\n if (typecheck) {\n let prePush = config.repository?.startsWith('github:WillBoosterLab/') ? settings.prePushForLab : settings.prePush;\n prePush = prePush.replace(\n 'yarn typecheck',\n typecheck\n .replace('tsc ', 'node node_modules/.bin/tsc ')\n .replace('wb ', 'node node_modules/.bin/wb ')\n // pyright has no arguments\n .replace('pyright', 'node node_modules/.bin/pyright')\n );\n await promisePool.run(() =>\n fs.promises.writeFile(path.resolve(dirPath, 'pre-push'), content.replace(DEFAULT_COMMAND, prePush), {\n mode: 0o755,\n })\n );\n }\n\n const postMergeCommands: string[] = [];\n if (config.versionsText) {\n postMergeCommands.push('run_if_changed \"\\\\..+-version\" \"asdf plugin update --all\"');\n }\n // Pythonがないとインストールできない処理系が存在するため、強制的に最初にインストールする。\n if (config.versionsText?.includes('python ')) {\n postMergeCommands.push('run_if_changed \"\\\\..+-version\" \"asdf install python\"');\n }\n if (config.versionsText) {\n postMergeCommands.push('run_if_changed \"\\\\..+-version\" \"asdf install\"');\n }\n const rmNextDirectory = config.depending.blitz ? ' && rm -Rf .next' : '';\n postMergeCommands.push(`run_if_changed \"package\\\\.json\" \"yarn${rmNextDirectory}\"`);\n if (config.containingPoetryLock) {\n postMergeCommands.push('run_if_changed \"poetry\\\\.lock\" \"poetry install\"');\n }\n if (config.depending.blitz) {\n postMergeCommands.push(\n 'run_if_changed \"db/schema.prisma\" \"node node_modules/.bin/blitz prisma migrate deploy\"',\n 'run_if_changed \"db/schema.prisma\" \"node node_modules/.bin/blitz prisma generate\"',\n 'run_if_changed \"db/schema.prisma\" \"node node_modules/.bin/blitz codegen\"'\n );\n } else if (config.depending.prisma) {\n postMergeCommands.push(\n 'run_if_changed \"prisma/schema.prisma\" \"node node_modules/.bin/prisma migrate deploy\"',\n 'run_if_changed \"prisma/schema.prisma\" \"node node_modules/.bin/prisma generate\"'\n );\n }\n const postMergeCommand = content.replace(DEFAULT_COMMAND, `${settings.postMerge}\\n\\n${postMergeCommands.join('\\n')}`);\n await promisePool.run(() =>\n fs.promises.writeFile(path.resolve(dirPath, 'post-merge'), postMergeCommand, {\n mode: 0o755,\n })\n );\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { fsUtil } from '../utils/fsUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nconst newContent = `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project version=\"4\">\n <component name=\"ProjectTasksOptions\">\n <TaskOptions isEnabled=\"true\">\n <option name=\"arguments\" value=\"node node_modules/.bin/prettier --cache --write $FilePathRelativeToProjectRoot$\" />\n <option name=\"checkSyntaxErrors\" value=\"false\" />\n <option name=\"description\" />\n <option name=\"exitCodeBehavior\" value=\"ERROR\" />\n <option name=\"fileExtension\" value=\"ts\" />\n <option name=\"immediateSync\" value=\"false\" />\n <option name=\"name\" value=\"Prettier (.ts)\" />\n <option name=\"output\" value=\"$FilePathRelativeToProjectRoot$\" />\n <option name=\"outputFilters\">\n <array />\n </option>\n <option name=\"outputFromStdout\" value=\"false\" />\n <option name=\"program\" value=\"yarn\" />\n <option name=\"runOnExternalChanges\" value=\"false\" />\n <option name=\"scopeName\" value=\"Project Files\" />\n <option name=\"trackOnlyRoot\" value=\"false\" />\n <option name=\"workingDir\" value=\"$ProjectFileDir$\" />\n <envs />\n </TaskOptions>\n <TaskOptions isEnabled=\"true\">\n <option name=\"arguments\" value=\"node node_modules/.bin/prettier --cache --write $FilePathRelativeToProjectRoot$\" />\n <option name=\"checkSyntaxErrors\" value=\"false\" />\n <option name=\"description\" />\n <option name=\"exitCodeBehavior\" value=\"ERROR\" />\n <option name=\"fileExtension\" value=\"tsx\" />\n <option name=\"immediateSync\" value=\"false\" />\n <option name=\"name\" value=\"Prettier (.tsx)\" />\n <option name=\"output\" value=\"$FilePathRelativeToProjectRoot$\" />\n <option name=\"outputFilters\">\n <array />\n </option>\n <option name=\"outputFromStdout\" value=\"false\" />\n <option name=\"program\" value=\"yarn\" />\n <option name=\"runOnExternalChanges\" value=\"false\" />\n <option name=\"scopeName\" value=\"Project Files\" />\n <option name=\"trackOnlyRoot\" value=\"false\" />\n <option name=\"workingDir\" value=\"$ProjectFileDir$\" />\n <envs />\n </TaskOptions>\n <TaskOptions isEnabled=\"true\">\n <option name=\"arguments\" value=\"node node_modules/.bin/prettier --cache --write $FilePathRelativeToProjectRoot$\" />\n <option name=\"checkSyntaxErrors\" value=\"false\" />\n <option name=\"description\" />\n <option name=\"exitCodeBehavior\" value=\"ERROR\" />\n <option name=\"fileExtension\" value=\"js\" />\n <option name=\"immediateSync\" value=\"false\" />\n <option name=\"name\" value=\"Prettier (.js)\" />\n <option name=\"output\" value=\"$FilePathRelativeToProjectRoot$\" />\n <option name=\"outputFilters\">\n <array />\n </option>\n <option name=\"outputFromStdout\" value=\"false\" />\n <option name=\"program\" value=\"yarn\" />\n <option name=\"runOnExternalChanges\" value=\"false\" />\n <option name=\"scopeName\" value=\"Project Files\" />\n <option name=\"trackOnlyRoot\" value=\"false\" />\n <option name=\"workingDir\" value=\"$ProjectFileDir$\" />\n <envs />\n </TaskOptions>\n <TaskOptions isEnabled=\"true\">\n <option name=\"arguments\" value=\"node node_modules/.bin/prettier --cache --write $FilePathRelativeToProjectRoot$\" />\n <option name=\"checkSyntaxErrors\" value=\"false\" />\n <option name=\"description\" />\n <option name=\"exitCodeBehavior\" value=\"ERROR\" />\n <option name=\"fileExtension\" value=\"json\" />\n <option name=\"immediateSync\" value=\"false\" />\n <option name=\"name\" value=\"Prettier (.json)\" />\n <option name=\"output\" value=\"$FilePathRelativeToProjectRoot$\" />\n <option name=\"outputFilters\">\n <array />\n </option>\n <option name=\"outputFromStdout\" value=\"false\" />\n <option name=\"program\" value=\"yarn\" />\n <option name=\"runOnExternalChanges\" value=\"false\" />\n <option name=\"scopeName\" value=\"Project Files\" />\n <option name=\"trackOnlyRoot\" value=\"false\" />\n <option name=\"workingDir\" value=\"$ProjectFileDir$\" />\n <envs />\n </TaskOptions>\n <TaskOptions isEnabled=\"true\">\n <option name=\"arguments\" value=\"node node_modules/.bin/prettier --cache --write $FilePathRelativeToProjectRoot$\" />\n <option name=\"checkSyntaxErrors\" value=\"false\" />\n <option name=\"description\" />\n <option name=\"exitCodeBehavior\" value=\"ERROR\" />\n <option name=\"fileExtension\" value=\"md\" />\n <option name=\"immediateSync\" value=\"false\" />\n <option name=\"name\" value=\"Prettier (.md)\" />\n <option name=\"output\" value=\"$FilePathRelativeToProjectRoot$\" />\n <option name=\"outputFilters\">\n <array />\n </option>\n <option name=\"outputFromStdout\" value=\"false\" />\n <option name=\"program\" value=\"yarn\" />\n <option name=\"runOnExternalChanges\" value=\"false\" />\n <option name=\"scopeName\" value=\"Project Files\" />\n <option name=\"trackOnlyRoot\" value=\"false\" />\n <option name=\"workingDir\" value=\"$ProjectFileDir$\" />\n <envs />\n </TaskOptions>\n <TaskOptions isEnabled=\"true\">\n <option name=\"arguments\" value=\"node node_modules/.bin/prettier --cache --write $FilePathRelativeToProjectRoot$\" />\n <option name=\"checkSyntaxErrors\" value=\"false\" />\n <option name=\"description\" />\n <option name=\"exitCodeBehavior\" value=\"ERROR\" />\n <option name=\"fileExtension\" value=\"html\" />\n <option name=\"immediateSync\" value=\"false\" />\n <option name=\"name\" value=\"Prettier (.html)\" />\n <option name=\"output\" value=\"$FilePathRelativeToProjectRoot$\" />\n <option name=\"outputFilters\">\n <array />\n </option>\n <option name=\"outputFromStdout\" value=\"false\" />\n <option name=\"program\" value=\"yarn\" />\n <option name=\"runOnExternalChanges\" value=\"false\" />\n <option name=\"scopeName\" value=\"Project Files\" />\n <option name=\"trackOnlyRoot\" value=\"false\" />\n <option name=\"workingDir\" value=\"$ProjectFileDir$\" />\n <envs />\n </TaskOptions>\n </component>\n</project>\n`;\n\nexport async function generateIdeaSettings(config: PackageConfig): Promise<void> {\n return logger.function('generateIdeaSettings', async () => {\n const dirPath = path.resolve(config.dirPath, '.idea');\n if (fs.existsSync(dirPath)) {\n const filePath = path.resolve(dirPath, 'watcherTasks.xml');\n await (config.containingJavaScript ||\n config.containingJavaScriptInPackages ||\n config.containingTypeScript ||\n config.containingTypeScriptInPackages ||\n (config.containingPackageJson &&\n !config.containingPubspecYaml &&\n !config.containingGemfile &&\n !config.containingGoMod &&\n !config.containingPomXml)\n ? promisePool.run(() => fsUtil.generateFile(filePath, newContent))\n : promisePool.run(() => fs.promises.rm(filePath, { force: true })));\n }\n });\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { EslintUtil } from '../utils/eslintUtil.js';\nimport { extensions } from '../utils/extensions.js';\nimport { fsUtil } from '../utils/fsUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\nimport { getSrcDirs } from '../utils/srcDirectories.js';\n\nexport async function generateLintstagedrc(config: PackageConfig): Promise<void> {\n return logger.function('generateLintstagedrc', async () => {\n await core(config);\n });\n}\n\nasync function core(config: PackageConfig): Promise<void> {\n const packagePrefix = config.root ? 'node node_modules/.bin/' : 'node ../../node_modules/.bin/';\n const lines: string[] = [];\n if (config.containingJavaScript || config.containingTypeScript) {\n const eslint = `\n '${getEslintKey(config)}': [${JSON.stringify(\n `${packagePrefix}eslint --fix${EslintUtil.getLintFixSuffix(config)}`\n )}, '${packagePrefix}prettier --cache --write'],`;\n lines.push(eslint);\n }\n const packagesFilter = config.root ? \" && !file.includes('/packages/')\" : '';\n lines.push(`\n './**/*.{${extensions.prettier.join(',')}}': files => {\n ${config.containingJavaScript || config.containingTypeScript ? getEslintFilterForPrettier(config) : ''}\n const filteredFiles = files.filter(file => !file.includes('/test-fixtures/')${packagesFilter});\n if (filteredFiles.length === 0) return [];\n const commands = [\\`${packagePrefix}prettier --cache --write \\${filteredFiles.join(' ')}\\`];\n if (filteredFiles.some(file => file.endsWith('package.json'))) {\n commands.push('${packagePrefix}sort-package-json');\n }\n return commands;\n },`);\n if (config.containingPubspecYaml) {\n lines.push(`\n './{lib,test,test_driver}/**/*.dart': files => {\n const filteredFiles = files.filter(file => !file.includes('generated'))\n .filter(file => !file.endsWith('.freezed.dart') && !file.endsWith('.g.dart'));\n if (filteredFiles.length === 0) return [];\n return [\\`flutter format \\${filteredFiles.join(' ')}\\`];\n },`);\n }\n if (config.containingPoetryLock) {\n lines.push(`\n './**/*.py': [\n 'poetry run isort --profile black --filter-files',\n 'poetry run black',\n 'poetry run flake8'\n ],`);\n }\n\n const newContent = `${\n config.containingJavaScript || config.containingTypeScript ? \"const micromatch = require('micromatch');\" : ''\n }\n\nmodule.exports = {${lines.join('')}\n};\n`;\n\n const filePath = path.resolve(config.dirPath, '.lintstagedrc.cjs');\n await promisePool.run(() => fs.promises.rm(path.resolve(config.dirPath, '.lintstagedrc.js'), { force: true }));\n await promisePool.run(() => fs.promises.rm(path.resolve(config.dirPath, '.lintstagedrc.json'), { force: true }));\n await promisePool.run(() => fsUtil.generateFile(filePath, newContent));\n}\n\nfunction getEslintKey(config: PackageConfig): string {\n const dirs = getSrcDirs(config);\n return `./{${dirs.join(',')}}/**/*.{${extensions.eslint.join(',')}}`;\n}\n\nfunction getEslintFilterForPrettier(config: PackageConfig): string {\n return `files = micromatch.not(files, '${getEslintKey(config)}');`;\n}\n","import path from 'node:path';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { fsUtil } from '../utils/fsUtil.js';\nimport { ignoreFileUtil } from '../utils/ignoreFileUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nconst commonContent = `\n3rd-party/\nandroid/\nios/\nno-format/\ntest-fixtures/\n*.d.ts\n*.min.js\n.yarn/\n.pnp.js\n`;\n\nexport async function generatePrettierignore(config: PackageConfig): Promise<void> {\n return logger.function('generatePrettierignore', async () => {\n const filePath = path.resolve(config.dirPath, '.prettierignore');\n const content = (await fsUtil.readFileIgnoringError(filePath)) ?? '';\n const headUserContent = ignoreFileUtil.getHeadUserContent(content);\n const tailUserContent = ignoreFileUtil.getTailUserContent(content);\n\n const gitignoreFilePath = path.resolve(config.dirPath, '.gitignore');\n const gitignoreContent = (await ignoreFileUtil.readGitignoreWithoutSeparators(gitignoreFilePath)) || '';\n\n let additionalContent = '';\n if (config.containingPubspecYaml) {\n additionalContent = `\nandroid/app/\nios/Runner/Assets.xcassets/\npubspec.yaml\n`;\n }\n\n const newContent = headUserContent + commonContent + additionalContent + gitignoreContent + tailUserContent;\n await promisePool.run(() => fsUtil.generateFile(filePath, newContent));\n });\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport merge from 'deepmerge';\nimport cloneDeep from 'lodash.clonedeep';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { fsUtil } from '../utils/fsUtil.js';\nimport { overwriteMerge } from '../utils/mergeUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nconst jsonObj = {\n venvPath: '.',\n venv: '.venv',\n};\n\nexport async function generatePyrightConfigJson(config: PackageConfig): Promise<void> {\n return logger.function('generatePyrightConfigJson', async () => {\n let newSettings: unknown = cloneDeep(jsonObj);\n const filePath = path.resolve(config.dirPath, 'pyrightconfig.json');\n try {\n const oldContent = await fs.promises.readFile(filePath, 'utf8');\n const oldSettings = JSON.parse(oldContent);\n newSettings = merge.all([newSettings, oldSettings, newSettings], { arrayMerge: overwriteMerge });\n } catch {\n // do nothing\n }\n const newContent = JSON.stringify(newSettings);\n await promisePool.run(() => fsUtil.generateFile(filePath, newContent));\n });\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { fsUtil } from '../utils/fsUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nexport async function generateReadme(config: PackageConfig): Promise<void> {\n return logger.function('generateReadme', async () => {\n const filePath = path.resolve(config.dirPath, 'README.md');\n let newContent = await fs.promises.readFile(filePath, 'utf8');\n\n newContent = insertBadge(config, newContent, semanticReleaseBadge, '.releaserc.json');\n\n const repository = config.repository?.slice(config.repository?.indexOf(':') + 1);\n const fileNames = fs.readdirSync(`${config.dirPath}/.github/workflows`);\n for (const fileName of fileNames) {\n if (!fileName.startsWith('test') && !fileName.startsWith('deploy')) continue;\n\n let badgeName = fileName;\n badgeName = badgeName.charAt(0).toUpperCase() + badgeName.slice(1, badgeName.indexOf('.'));\n badgeName = badgeName.replace('-', ' ');\n const badge = `[![${badgeName}](https://github.com/${repository}/actions/workflows/${fileName}/badge.svg)](https://github.com/${repository}/actions/workflows/${fileName})`;\n newContent = insertBadge(config, newContent, badge, `.github/workflows/${fileName}`);\n }\n\n await promisePool.run(() => fsUtil.generateFile(filePath, newContent));\n });\n}\n\nconst semanticReleaseBadge =\n '[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)';\n\nfunction insertBadge(config: PackageConfig, newContent: string, badge: string, fileName: string): string {\n if (!fs.existsSync(path.resolve(config.dirPath, fileName))) {\n return newContent;\n }\n\n // 既にbadgeがある場合は削除\n const badgePos = newContent.indexOf(badge);\n if (badgePos >= 0) {\n newContent = newContent.slice(0, badgePos) + newContent.slice(badgePos + badge.length);\n }\n let inserted = false;\n for (let i = 0; i < newContent.length; i++) {\n if (newContent[i] === '\\n') {\n inserted = true;\n newContent = `${newContent.slice(0, i + 1)}${badge}\\n${newContent.slice(i + 1)}`;\n break;\n }\n }\n if (!inserted) newContent = `${newContent}\\n${badge}\\n`;\n return newContent;\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport merge from 'deepmerge';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { fsUtil } from '../utils/fsUtil.js';\nimport { overwriteMerge } from '../utils/mergeUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nexport async function generateReleaserc(rootConfig: PackageConfig): Promise<void> {\n return logger.function('generateReleaserc', async () => {\n const filePath = path.resolve(rootConfig.dirPath, '.releaserc.json');\n try {\n const settings = JSON.parse(await fs.promises.readFile(filePath, 'utf8'));\n const plugins = settings?.plugins || [];\n for (let i = 0; i < plugins.length; i++) {\n const plugin = Array.isArray(plugins[i]) ? plugins[i][0] : plugins[i];\n const oldConfig = (Array.isArray(plugins[i]) && plugins[i][1]) || {};\n if (plugin === '@semantic-release/commit-analyzer') {\n plugins[i] = [\n '@semantic-release/commit-analyzer',\n merge.all(\n [\n oldConfig,\n {\n preset: 'conventionalcommits',\n },\n ],\n { arrayMerge: overwriteMerge }\n ),\n ];\n } else if (plugin === '@semantic-release/github') {\n plugins[i] = [\n '@semantic-release/github',\n merge.all(\n [\n oldConfig,\n {\n successComment: false,\n labels: ['r: semantic-release'],\n releasedLabels: ['released :bookmark:'],\n },\n ],\n { arrayMerge: overwriteMerge }\n ),\n ];\n }\n }\n const newContent = JSON.stringify(settings);\n await promisePool.run(() => fsUtil.generateFile(filePath, newContent));\n } catch {\n // do nothing\n }\n });\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport merge from 'deepmerge';\nimport cloneDeep from 'lodash.clonedeep';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { fsUtil } from '../utils/fsUtil.js';\nimport { overwriteMerge } from '../utils/mergeUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nconst jsonObj = {\n extends: ['@willbooster'],\n};\n\nexport async function generateRenovateJson(config: PackageConfig): Promise<void> {\n return logger.function('generateRenovateJson', async () => {\n let newSettings: any = cloneDeep(jsonObj);\n const filePath = path.resolve(config.dirPath, '.renovaterc.json');\n try {\n const oldContent = await fs.promises.readFile(filePath, 'utf8');\n const oldSettings = JSON.parse(oldContent) as any;\n newSettings = merge.all([newSettings, oldSettings, newSettings], { arrayMerge: overwriteMerge });\n } catch {\n // do nothing\n }\n\n // Don't upgrade Next.js automatically\n if (config.depending.blitz && config.depending.blitz !== '0') {\n newSettings.packageRules ??= [];\n if (!newSettings.packageRules.some((rule: any) => rule.packageNames.includes('next'))) {\n newSettings.packageRules.push({ packageNames: ['next'], enabled: false });\n }\n }\n\n await promisePool.run(() => fs.promises.rm(path.resolve(config.dirPath, '.dependabot'), { force: true }));\n await promisePool.run(() => fs.promises.rm(path.resolve(config.dirPath, 'renovate.json'), { force: true }));\n const newContent = JSON.stringify(newSettings);\n await promisePool.run(() => fsUtil.generateFile(filePath, newContent));\n });\n}\n","export function sortKeys<T extends Record<string, unknown>>(obj: T): T {\n const keyAndValues = Object.entries(obj).sort(([key1], [key2]) => key1.localeCompare(key2));\n for (const [key, value] of keyAndValues) {\n delete obj[key];\n (obj as Record<string, unknown>)[key] = value;\n }\n return obj;\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport merge from 'deepmerge';\nimport cloneDeep from 'lodash.clonedeep';\nimport { TsConfigJson } from 'type-fest';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { fsUtil } from '../utils/fsUtil.js';\nimport { combineMerge } from '../utils/mergeUtil.js';\nimport { sortKeys } from '../utils/objectUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nconst rootJsonObj = {\n compilerOptions: {\n target: 'ESNext',\n module: 'ESNext',\n moduleResolution: 'Node',\n jsx: 'react-jsx',\n alwaysStrict: true,\n strict: true,\n skipLibCheck: true,\n allowSyntheticDefaultImports: true,\n esModuleInterop: true,\n resolveJsonModule: true,\n declaration: true,\n sourceMap: true,\n importHelpers: false,\n outDir: 'dist',\n typeRoots: ['./node_modules/@types', './@types'],\n },\n include: [\n 'src/**/*',\n 'tests/**/*',\n 'scripts/**/*',\n 'packages/*/src/**/*',\n 'packages/*/tests/**/*',\n 'packages/*/scripts/**/*',\n ],\n};\n\nconst subJsonObj = {\n compilerOptions: {\n target: 'ESNext',\n module: 'ESNext',\n moduleResolution: 'Node',\n jsx: 'react-jsx',\n alwaysStrict: true,\n strict: true,\n skipLibCheck: true,\n allowSyntheticDefaultImports: true,\n esModuleInterop: true,\n resolveJsonModule: true,\n declaration: true,\n sourceMap: true,\n importHelpers: false,\n outDir: 'dist',\n typeRoots: ['../../node_modules/@types', '../../@types', './@types'],\n },\n include: ['src/**/*', 'tests/**/*', 'scripts/**/*'],\n};\n\nexport async function generateTsconfig(config: PackageConfig, rootConfig: PackageConfig): Promise<void> {\n return logger.function('generateTsconfig', async () => {\n if (rootConfig.depending.blitz) return;\n\n let newSettings = cloneDeep(config.root ? rootJsonObj : subJsonObj) as TsConfigJson;\n if (!config.containingJsxOrTsx && !config.containingJsxOrTsxInPackages) {\n delete newSettings.compilerOptions?.jsx;\n }\n if (config.root && !config.containingSubPackageJsons) {\n newSettings.include = newSettings.include?.filter((dirPath: string) => !dirPath.startsWith('packages/*/'));\n }\n if (config.esmPackage) {\n newSettings.compilerOptions = { ...newSettings.compilerOptions, moduleResolution: 'NodeNext' };\n }\n\n const filePath = path.resolve(config.dirPath, 'tsconfig.json');\n try {\n const existingContent = await fs.promises.readFile(filePath, 'utf8');\n const oldSettings = JSON.parse(existingContent) as TsConfigJson;\n if (oldSettings.extends === './node_modules/@willbooster/tsconfig/tsconfig.json') {\n delete oldSettings.extends;\n }\n // Don't modify \"target\", \"module\" and \"moduleResolution\".\n delete newSettings.compilerOptions?.target;\n delete newSettings.compilerOptions?.module;\n delete newSettings.compilerOptions?.moduleResolution;\n if (oldSettings.compilerOptions?.jsx) {\n delete newSettings.compilerOptions?.jsx;\n }\n newSettings = merge.all([newSettings, oldSettings, newSettings], { arrayMerge: combineMerge });\n newSettings.include = newSettings.include?.filter(\n (dirPath: string) => !dirPath.includes('@types') && !dirPath.includes('__tests__')\n );\n } catch {\n // do nothing\n }\n sortKeys(newSettings.compilerOptions ?? {});\n newSettings.include?.sort();\n const newContent = JSON.stringify(newSettings);\n await promisePool.run(() => fsUtil.generateFile(filePath, newContent));\n });\n}\n","/* eslint-disable unicorn/no-null */\n\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nimport merge from 'deepmerge';\nimport yaml from 'js-yaml';\nimport cloneDeep from 'lodash.clonedeep';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { combineMerge } from '../utils/mergeUtil.js';\nimport { sortKeys } from '../utils/objectUtil.js';\nimport { promisePool } from '../utils/promisePool.js';\n\nconst workflows = {\n test: {\n name: 'Test',\n on: {\n pull_request: {\n 'paths-ignore': ['**.md', '**/docs/**'],\n },\n push: {\n branches: ['main', 'wbfy', 'renovate/**'],\n 'paths-ignore': ['**.md', '**/docs/**'],\n },\n },\n // cf. https://docs.github.com/en/actions/using-jobs/using-concurrency#example-using-a-fallback-value\n concurrency: {\n group: '${{ github.workflow }}-${{ github.head_ref || github.run_id }}',\n 'cancel-in-progress': true,\n },\n jobs: {\n test: {\n uses: 'WillBooster/reusable-workflows/.github/workflows/test.yml@main',\n },\n },\n },\n release: {\n name: 'Release',\n on: {\n push: {\n branches: [],\n },\n },\n concurrency: {\n group: '${{ github.workflow }}',\n 'cancel-in-progress': false,\n },\n jobs: {\n release: {\n uses: 'WillBooster/reusable-workflows/.github/workflows/release.yml@main',\n },\n },\n },\n wbfy: {\n name: 'Willboosterify',\n on: {\n workflow_dispatch: null,\n },\n jobs: {\n wbfy: {\n uses: 'WillBooster/reusable-workflows/.github/workflows/wbfy.yml@main',\n },\n },\n },\n 'wbfy-merge': {\n name: 'Merge wbfy',\n on: {\n workflow_dispatch: null,\n },\n jobs: {\n 'wbfy-merge': {\n uses: 'WillBooster/reusable-workflows/.github/workflows/wbfy-merge.yml@main',\n },\n },\n },\n 'semantic-pr': {\n name: 'Lint PR title',\n on: {\n pull_request_target: {\n types: ['opened', 'edited', 'synchronize'],\n },\n },\n jobs: {\n 'semantic-pr': {\n uses: 'WillBooster/reusable-workflows/.github/workflows/semantic-pr.yml@main',\n },\n },\n },\n 'notify-ready': {\n name: 'Notify ready',\n on: {\n issues: {\n types: ['labeled'],\n },\n },\n jobs: {\n 'notify-ready': {\n uses: 'WillBooster/reusable-workflows/.github/workflows/notify-ready.yml@main',\n secrets: {\n DISCORD_WEBHOOK_URL: '${{ secrets.DISCORD_WEBHOOK_URL_FOR_READY }}',\n },\n },\n },\n },\n 'close-comment': {\n name: 'Add close comment',\n on: {\n pull_request: {\n types: ['opened'],\n },\n },\n jobs: {\n 'close-comment': {\n uses: 'WillBooster/reusable-workflows/.github/workflows/close-comment.yml@main',\n },\n },\n },\n 'add-issue-to-project': {\n name: 'Add issue to github project',\n on: {\n issues: {\n types: ['labeled'],\n },\n },\n jobs: {\n 'add-issue-to-project': {\n uses: 'WillBooster/reusable-workflows/.github/workflows/add-issue-to-project.yml@main',\n secrets: {\n GH_PROJECT_URL: '${{ secrets.GH_PROJECT_URL }}',\n },\n },\n },\n },\n} as Record<KnownKind, any>;\n\ntype KnownKind =\n | 'test'\n | 'release'\n | 'sync'\n | 'wbfy'\n | 'wbfy-merge'\n | 'semantic-pr'\n | 'notify-ready'\n | 'close-comment'\n | 'add-issue-to-project';\n\nexport async function generateWorkflows(rootConfig: PackageConfig): Promise<void> {\n return logger.function('generateWorkflow', async () => {\n const workflowsPath = path.resolve(rootConfig.dirPath, '.github', 'workflows');\n await fs.promises.mkdir(workflowsPath, { recursive: true });\n\n // Remove config of semantic pull request\n const semanticYmlPath = path.resolve(rootConfig.dirPath, '.github', 'semantic.yml');\n await promisePool.run(() => fs.promises.rm(semanticYmlPath, { force: true, recursive: true }));\n\n const entries = await fs.promises.readdir(workflowsPath, { withFileTypes: true });\n const fileNameSet = new Set([\n 'test.yml',\n 'wbfy.yml',\n 'wbfy-merge.yml',\n 'semantic-pr.yml',\n 'close-comment.yml',\n 'add-issue-to-project.yml',\n ...entries.filter((dirent) => dirent.isFile() && dirent.name.endsWith('.yml')).map((dirent) => dirent.name),\n ]);\n if (rootConfig.depending.semanticRelease) {\n fileNameSet.add('release.yml');\n }\n if (rootConfig.publicRepo || rootConfig.repository?.startsWith('github:WillBoosterLab/')) {\n fileNameSet.add('notify-ready.yml');\n }\n\n for (const fileName of fileNameSet) {\n // 実際はKnownKind以外の値も代入されることに注意\n const kind = path.basename(fileName, '.yml') as KnownKind;\n await promisePool.run(() => writeWorkflowYaml(rootConfig, workflowsPath, kind));\n }\n });\n}\n\nasync function writeWorkflowYaml(config: PackageConfig, workflowsPath: string, kind: KnownKind): Promise<void> {\n let newSettings = cloneDeep(workflows[kind] || {});\n const filePath = path.join(workflowsPath, `${kind}.yml`);\n try {\n const oldContent = await fs.promises.readFile(filePath, 'utf8');\n const oldSettings = yaml.load(oldContent);\n newSettings = merge.all([newSettings, oldSettings, newSettings], { arrayMerge: combineMerge });\n } catch {\n // do nothing\n }\n\n if (kind.startsWith('deploy')) {\n newSettings = {\n ...newSettings,\n concurrency: {\n group: '${{ github.workflow }}',\n 'cancel-in-progress': false,\n },\n };\n // Move jobs to the bottom\n if (newSettings.jobs) {\n const jobs = newSettings.jobs;\n delete newSettings.jobs;\n newSettings.jobs = jobs;\n }\n if (newSettings.on?.push) {\n newSettings.on.push['paths-ignore'] = [\n ...new Set<string>([...(newSettings.on.push['paths-ignore'] ?? []), '**.md', '**/docs/**']),\n ];\n }\n }\n\n for (const job of Object.values(newSettings.jobs) as any[]) {\n // Ignore non-reusable workflows\n if (!job.uses?.includes?.('/reusable-workflows/')) return;\n\n normalizeJob(config, job, kind);\n }\n\n switch (kind) {\n case 'release': {\n if (newSettings.on.schedule) {\n delete newSettings.on.push;\n } else if (config.release.branches.length > 0) {\n newSettings.on.push.branches = config.release.branches;\n } else {\n // Don't use release.yml if release branch is not specified\n await fs.promises.rm(path.join(workflowsPath, 'release.yml'), { force: true });\n return;\n }\n break;\n }\n case 'wbfy': {\n setSchedule(newSettings, 20, 24);\n break;\n }\n case 'wbfy-merge': {\n setSchedule(newSettings, 1, 4);\n break;\n }\n // No default\n }\n migrateWorkflow(newSettings);\n await writeYaml(newSettings, filePath);\n\n if (kind === 'release') {\n await fs.promises.rm(path.join(workflowsPath, 'semantic-release.yml'), { force: true });\n } else if (kind === 'sync') {\n await fs.promises.rm(path.join(workflowsPath, 'sync-init.yml'), { force: true });\n if (!newSettings.jobs.sync) return;\n\n newSettings.jobs['sync-force'] = newSettings.jobs.sync;\n const params = newSettings.jobs.sync.with.sync_params_without_dest;\n if (!params) return;\n\n newSettings.jobs.sync.with.sync_params_without_dest = `--force ${params}`;\n newSettings.name = 'Force to Sync';\n newSettings.on = { workflow_dispatch: null };\n delete newSettings.jobs.sync;\n await writeYaml(newSettings, path.join(workflowsPath, 'sync-force.yml'));\n }\n}\n\nfunction normalizeJob(config: PackageConfig, job: any, kind: KnownKind): void {\n job.with ||= {};\n job.secrets ||= {};\n\n if (\n kind === 'test' ||\n kind === 'release' ||\n kind === 'wbfy' ||\n kind === 'wbfy-merge' ||\n kind === 'add-issue-to-project'\n ) {\n job.secrets['GH_TOKEN'] = config.publicRepo ? '${{ secrets.PUBLIC_GH_BOT_PAT }}' : '${{ secrets.GH_BOT_PAT }}';\n }\n if (config.release.npm && (kind === 'release' || kind === 'test')) {\n job.secrets['NPM_TOKEN'] = '${{ secrets.NPM_TOKEN }}';\n }\n if (job.secrets['FIREBASE_TOKEN']) {\n job.secrets['GCP_SA_KEY_JSON_FOR_FIREBASE'] = '${{ secrets.GCP_SA_KEY_JSON_FOR_FIREBASE }}';\n delete job.secrets['FIREBASE_TOKEN'];\n }\n if (\n (job.secrets['DISCORD_WEBHOOK_URL'] && (kind === 'release' || kind.startsWith('deploy'))) ||\n (job.with.server_url && kind.startsWith('deploy'))\n ) {\n job.secrets['DISCORD_WEBHOOK_URL'] = '${{ secrets.DISCORD_WEBHOOK_URL_FOR_RELEASE }}';\n }\n\n if (kind === 'sync') {\n const params = job.with?.sync_params_without_dest;\n if (params) {\n job.with.sync_params_without_dest = params.replace('sync ', '');\n }\n }\n\n if (config.repository?.startsWith('github:WillBooster/')) {\n job.uses = job.uses.replace('WillBoosterLab/', 'WillBooster/');\n } else if (config.repository?.startsWith('github:WillBoosterLab/')) {\n job.uses = job.uses.replace('WillBooster/', 'WillBoosterLab/');\n }\n\n // Remove deprecated parameters\n migrateJob(job);\n\n // Don't use `fly deploy --json` since it causes an error\n if (kind.startsWith('deploy') && job.secrets['FLY_API_TOKEN'] && job.with['deploy_command']) {\n job.with['deploy_command'] = job.with['deploy_command'].replace(/\\s+--json/, '');\n }\n if (config.containingDockerfile) {\n if (kind.startsWith('deploy') || kind.startsWith('test')) {\n job.with['ci_size'] = 'large';\n }\n if (kind.startsWith('deploy')) {\n job.with['cpu_arch'] = 'X64';\n }\n }\n // Because github.event.repository.private is always true if job is scheduled\n if (kind === 'release' || kind === 'test' || kind === 'wbfy' || kind === 'wbfy-merge' || kind.startsWith('deploy')) {\n if (config.publicRepo) {\n job.with['github_hosted_runner'] = true;\n }\n } else {\n delete job.with['github_hosted_runner'];\n }\n\n if (Object.keys(job.with).length > 0) {\n sortKeys(job.with);\n } else {\n delete job.with;\n }\n if (Object.keys(job.secrets).length > 0) {\n // Move secrets prop after with prop\n const newSecrets = sortKeys(job.secrets);\n delete job.secrets;\n job.secrets = newSecrets;\n } else {\n delete job.secrets;\n }\n}\n\nfunction setSchedule(newSettings: any, inclusiveMinHourJst: number, exclusiveMaxHourJst: number): void {\n const [minuteUtc, hourUtc] = ((newSettings.on.schedule?.[0]?.cron as string) ?? '').split(' ').map(Number);\n if (minuteUtc !== 0 && Number.isInteger(hourUtc)) {\n const hourJst = (hourUtc + 9) % 24;\n const inRange =\n inclusiveMinHourJst < exclusiveMaxHourJst\n ? inclusiveMinHourJst <= hourJst && hourJst < exclusiveMaxHourJst\n : inclusiveMinHourJst <= hourJst || hourJst < exclusiveMaxHourJst;\n if (inRange) return;\n }\n\n const minJst = 1 + Math.floor(Math.random() * 59);\n const hourJst = inclusiveMinHourJst + Math.floor(Math.random() * (exclusiveMaxHourJst - inclusiveMinHourJst));\n const cron = `${minJst} ${(hourJst - 9 + 24) % 24} * * *`;\n newSettings.on.schedule = [{ cron }];\n}\n\nasync function writeYaml(newSettings: any, filePath: string): Promise<void> {\n const yamlText = yaml.dump(newSettings, {\n lineWidth: -1,\n noCompatMode: true,\n styles: {\n '!!null': 'empty',\n },\n });\n await fs.promises.writeFile(filePath, yamlText);\n}\n\nfunction migrateWorkflow(newSettings: any): void {\n // TODO: Remove them after 2023-03-31\n delete newSettings.jobs['add-to-project'];\n}\n\nfunction migrateJob(job: any): void {\n // TODO: Remove them after 2023-03-31\n delete job.with['non_self_hosted'];\n delete job.with['notify_discord'];\n delete job.with['require_fly'];\n delete job.with['require_gcloud'];\n if (job.with['dot_env_path'] === '.env') {\n delete job.with['dot_env_path'];\n }\n delete job.with['cpu_arch'];\n}\n","import fs from 'node:fs';\nimport path from 'node:path';\n\nimport yaml from 'js-yaml';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { promisePool } from '../utils/promisePool.js';\nimport { spawnSync, spawnSyncWithStringResult } from '../utils/spawnUtil.js';\n\nexport async function generateYarnrcYml(config: PackageConfig): Promise<void> {\n return logger.function('generateYarnrcYml', async () => {\n const currentVersion = spawnSyncWithStringResult('yarn', ['--version'], config.dirPath);\n const latestVersion = getLatestVersion('@yarnpkg/cli', config.dirPath);\n if (getMajorNumber(currentVersion) <= getMajorNumber(latestVersion) && currentVersion !== latestVersion) {\n spawnSync('yarn', ['set', 'version', latestVersion], config.dirPath, 1);\n }\n\n const releasesPath = path.join(config.dirPath, '.yarn', 'releases');\n await fs.promises.mkdir(releasesPath, { recursive: true });\n for (const file of await fs.promises.readdir(releasesPath)) {\n if (file.startsWith('yarn-') && !file.startsWith(`yarn-${latestVersion}.`)) {\n await promisePool.run(() => fs.promises.rm(path.join(releasesPath, file)));\n console.log('Removed', path.join(releasesPath, file));\n }\n }\n\n const yarnrcPath = path.resolve(config.dirPath, '.yarnrc');\n await promisePool.run(() => fs.promises.rm(yarnrcPath, { force: true }));\n\n const yarnrcYmlPath = path.resolve(config.dirPath, '.yarnrc.yml');\n const settings = yaml.load(await fs.promises.readFile(yarnrcYmlPath, 'utf8')) as any;\n settings.defaultSemverRangePrefix = '';\n settings.nodeLinker = 'node-modules';\n settings.nmMode = 'hardlinks-global';\n // cf. https://github.com/yarnpkg/berry/pull/4698\n settings.enableGlobalCache = true;\n const originalLength = settings.plugins?.length ?? 0;\n settings.plugins = settings.plugins?.filter((p: any) => p.path !== '.yarn/plugins/undefined.cjs') ?? [];\n if (settings.plugins.length !== originalLength) {\n const pluginPath = path.resolve(config.dirPath, '.yarnrc', 'undefined.cjs');\n await promisePool.run(() => fs.promises.rm(pluginPath, { force: true }));\n }\n if (settings.plugins.length === 0) {\n delete settings.plugins;\n }\n await fs.promises.writeFile(yarnrcYmlPath, yaml.dump(settings, { lineWidth: -1 }));\n\n spawnSync('yarn', ['dlx', 'yarn-plugin-auto-install'], config.dirPath);\n });\n}\n\nexport function getLatestVersion(packageName: string, dirPath: string): string {\n const versionsJson = spawnSyncWithStringResult('npm', ['show', packageName, 'versions', '--json'], dirPath);\n const versions = JSON.parse(versionsJson) as string[];\n return versions.at(-1) as string;\n}\n\nfunction importOrRemovePlugin(config: PackageConfig, plugins: string[], requirePlugin: boolean, plugin: string): void {\n if (requirePlugin !== plugins.includes(plugin)) {\n spawnSync('yarn', ['plugin', requirePlugin ? 'import' : 'remove', plugin], config.dirPath);\n }\n}\n\nfunction getMajorNumber(version: string): number {\n const [major] = version.split('.');\n return Number(major);\n}\n","import { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { gitHubUtil, hasGitHubToken, octokit } from '../utils/githubUtil.js';\n\nexport async function setupLabels(config: PackageConfig): Promise<void> {\n return logger.function('setupLabels', async () => {\n if (!hasGitHubToken) return;\n\n const [owner, repo] = gitHubUtil.getOrgAndName(config.repository ?? '');\n if (!owner || !repo) return;\n if (owner !== 'WillBooster' && owner !== 'WillBoosterLab') return;\n\n try {\n await setupLabel(owner, repo, 'd1: x-easy :hedgehog:', 'EDE9FE');\n await setupLabel(owner, repo, 'd2: easy :rabbit2:', 'DDD6FE');\n await setupLabel(owner, repo, 'd3: medium :ox:', 'C4B5FD');\n await setupLabel(owner, repo, 'd4: hard :squid:', 'A78BFA');\n await setupLabel(owner, repo, 'd5: x-hard :whale2:', '8B5CF6');\n await setupLabel(owner, repo, 'p1: critical :fire::fire::fire:', 'EF4444');\n await setupLabel(owner, repo, 'p2: urgent :fire::fire:', 'F87171');\n await setupLabel(owner, repo, 'p3: important :fire:', 'FCA5A5');\n await setupLabel(owner, repo, 'p4: nice to have :droplet:', 'FECACA');\n await setupLabel(owner, repo, 'r: blitz', '5300bc');\n await setupLabel(owner, repo, 'r: firebase', 'ffca28');\n await setupLabel(owner, repo, 'r: prisma', '0c344b');\n await setupLabel(owner, repo, 'r: react', '61dafb');\n await setupLabel(owner, repo, 'r: svelte', 'ff3e00');\n await setupLabel(owner, repo, 'r: semantic-release', '494949');\n await setupLabel(owner, repo, 'ready :rocket:', '22C55E');\n await setupLabel(owner, repo, 'review requested :mag:', 'FBCA04');\n await setupLabel(owner, repo, 'released :bookmark:', '6366F1');\n await setupLabel(owner, repo, 's: 0.5h :clock1230:', 'F3F4F6');\n await setupLabel(owner, repo, 's: 1h :clock1:', 'E5E7EB');\n await setupLabel(owner, repo, 's: 2h :clock2:', 'D1D5DB');\n await setupLabel(owner, repo, 's: 3h :clock3:', '9CA3AF');\n await setupLabel(owner, repo, 's: 5h :clock5:', '6B7280');\n await setupLabel(owner, repo, 's: 8h :clock8:', '4B5563');\n await setupLabel(owner, repo, 's: 13h :clock1:', '374151');\n await setupLabel(owner, repo, 't: build :hammer:', 'BFDBFE');\n await setupLabel(owner, repo, 't: chore :broom:', 'BFDBFE');\n await setupLabel(owner, repo, 't: ci :construction_worker:', 'BFDBFE');\n await setupLabel(owner, repo, 't: docs :memo:', 'BFDBFE');\n await setupLabel(owner, repo, 't: feat :sparkles:', 'BFDBFE');\n await setupLabel(owner, repo, 't: fix :bug:', 'BFDBFE');\n await setupLabel(owner, repo, 't: perf :zap:', 'BFDBFE');\n await setupLabel(owner, repo, 't: refactor :recycle:', 'BFDBFE');\n await setupLabel(owner, repo, 't: style :lipstick:', 'BFDBFE');\n await setupLabel(owner, repo, 't: test :test_tube:', 'BFDBFE');\n await setupLabel(owner, repo, 'project', '24292F');\n\n await deleteLabel(owner, repo, 'bug');\n await deleteLabel(owner, repo, 'documentation');\n await deleteLabel(owner, repo, 'duplicate');\n await deleteLabel(owner, repo, 'enhancement');\n await deleteLabel(owner, repo, 'good first issue');\n await deleteLabel(owner, repo, 'help wanted');\n await deleteLabel(owner, repo, 'invalid');\n await deleteLabel(owner, repo, 'question');\n await deleteLabel(owner, repo, 'wontfix');\n\n await deleteLabel(owner, repo, 'ready');\n await deleteLabel(owner, repo, 'review requested');\n await deleteLabel(owner, repo, 'released');\n await deleteLabel(owner, repo, 'semantic-release');\n } catch (error) {\n console.warn('Skip setupLabels due to:', (error as Error)?.stack ?? error);\n }\n });\n}\n\nasync function setupLabel(owner: string, repo: string, name: string, color: string): Promise<void> {\n try {\n await octokit.request('POST /repos/{owner}/{repo}/labels', {\n owner,\n repo,\n name,\n color,\n });\n } catch {\n await octokit.request('PATCH /repos/{owner}/{repo}/labels/{name}', {\n owner,\n repo,\n name,\n color,\n });\n }\n}\n\nasync function deleteLabel(owner: string, repo: string, name: string): Promise<void> {\n try {\n await octokit.request('DELETE /repos/{owner}/{repo}/labels/{name}', {\n owner,\n repo,\n name,\n });\n } catch {\n // do nothing\n }\n}\n","import dotenv from 'dotenv';\nimport sodium from 'libsodium-wrappers';\n\nimport { logger } from '../logger.js';\nimport { PackageConfig } from '../packageConfig.js';\nimport { gitHubUtil, hasGitHubToken, octokit } from '../utils/githubUtil.js';\n\nconst deprecatedSecretNames = ['READY_DISCORD_WEBHOOK_URL'];\n\nexport async function setupSecrets(config: PackageConfig): Promise<void> {\n return logger.function('setupSecrets', async () => {\n if (!hasGitHubToken) return;\n\n const [owner, repo] = gitHubUtil.getOrgAndName(config.repository ?? '');\n if (!owner || !repo || owner !== 'WillBoosterLab') return;\n\n const parsed = dotenv.config().parsed || {};\n if (Object.keys(parsed).length === 0) return;\n\n try {\n for (const secretName of deprecatedSecretNames) {\n try {\n await octokit.request('DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}', {\n owner,\n repo,\n secret_name: secretName,\n });\n } catch {\n // do nothing\n }\n }\n\n const response = await octokit.request('GET /repos/{owner}/{repo}/actions/secrets/public-key', {\n owner,\n repo,\n });\n const { key, key_id: keyId } = response.data;\n\n await sodium.ready;\n\n for (const [name, secret] of Object.entries(parsed)) {\n if (config.publicRepo && name === 'GH_BOT_PAT') continue;\n if (!config.publicRepo && name === 'PUBLIC_GH_BOT_PAT') continue;\n\n // Convert Secret & Base64 key to Uint8Array.\n const rawKey = sodium.from_base64(key, sodium.base64_variants.ORIGINAL);\n const rawSec = sodium.from_string(secret);\n\n // Encrypt the secret using LibSodium\n const encBytes = sodium.crypto_box_seal(rawSec, rawKey);\n\n // Convert encrypted Uint8Array to Base64\n const encBase64 = sodium.to_base64(encBytes, sodium.base64_variants.ORIGINAL);\n\n await octokit.request('PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}', {\n owner,\n repo,\n secret_name: name,\n encrypted_value: encBase64,\n key_id: keyId,\n });\n }\n } catch (error) {\n console.warn('Skip setupSecrets due to:', (error as Error)?.stack ?? error);\n }\n });\n}\n","import { PackageConfig } from '../packageConfig.js';\n\nexport async function setupSettings(config: PackageConfig): Promise<void> {\n // TODO: implement code for https://github.com/WillBooster/wbfy/issues/324\n}\n","import fs from 'node:fs';\nimport fsp from 'node:fs/promises';\nimport path from 'node:path';\n\nimport { globbySync } from 'globby';\nimport { simpleGit } from 'simple-git';\nimport { PackageJson } from 'type-fest';\n\nimport { gitHubUtil, octokit } from './utils/githubUtil.js';\n\nexport interface PackageConfig {\n dirPath: string;\n root: boolean;\n publicRepo: boolean;\n referredByOtherRepo: boolean;\n repository?: string;\n esmPackage: boolean;\n willBoosterConfigs: boolean;\n containingSubPackageJsons: boolean;\n containingDockerfile: boolean;\n containingGemfile: boolean;\n containingGoMod: boolean;\n containingPackageJson: boolean;\n containingPoetryLock: boolean;\n containingPomXml: boolean;\n containingPubspecYaml: boolean;\n containingTemplateYaml: boolean;\n\n containingJavaScript: boolean;\n containingTypeScript: boolean;\n containingJsxOrTsx: boolean;\n containingJavaScriptInPackages: boolean;\n containingTypeScriptInPackages: boolean;\n containingJsxOrTsxInPackages: boolean;\n depending: {\n blitz?: string;\n firebase: boolean;\n next: boolean;\n playwright: boolean;\n prisma: boolean;\n pyright: boolean;\n reactNative: boolean;\n semanticRelease: boolean;\n storybook: boolean;\n wb: boolean;\n };\n release: {\n branches: string[];\n github: boolean;\n npm: boolean;\n };\n eslintBase?: string;\n versionsText?: string;\n packageJson?: PackageJson;\n}\n\nexport async function getPackageConfig(dirPath: string): Promise<PackageConfig | undefined> {\n const packageJsonPath = path.resolve(dirPath, 'package.json');\n try {\n const containingPackageJson = fs.existsSync(packageJsonPath);\n let dependencies: PackageJson['dependencies'] = {};\n let devDependencies: PackageJson['devDependencies'] = {};\n let packageJson: PackageJson = {};\n let esmPackage = false;\n if (containingPackageJson) {\n const packageJsonText = fs.readFileSync(packageJsonPath, 'utf8');\n packageJson = JSON.parse(packageJsonText);\n dependencies = packageJson.dependencies ?? {};\n devDependencies = packageJson.devDependencies ?? {};\n esmPackage = packageJson.type === 'module';\n }\n\n let releaseBranches: string[] = [];\n let releasePlugins: string[] = [];\n try {\n const releasercJsonPath = path.resolve(dirPath, '.releaserc.json');\n const json = JSON.parse(await fsp.readFile(releasercJsonPath, 'utf8'));\n releaseBranches = json?.branches || [];\n releasePlugins = json?.plugins?.flat() || [];\n } catch {\n // do nothing\n }\n\n const isRoot =\n path.basename(path.resolve(dirPath, '..')) !== 'packages' ||\n !fs.existsSync(path.resolve(dirPath, '..', '..', 'package.json'));\n\n let repoInfo: Record<string, any> | undefined;\n if (isRoot) {\n repoInfo = await fetchRepoInfo(dirPath, packageJson);\n }\n\n let versionsText = '';\n try {\n const content = await fsp.readFile(path.resolve(dirPath, '.tool-versions'), 'utf8');\n versionsText += content.trim();\n } catch {\n // do nothing\n }\n for (const [prefix, name] of [\n ['java', 'java'],\n ['node', 'nodejs'],\n ['python', 'python'],\n ]) {\n try {\n const nodeVersionContent = await fsp.readFile(path.resolve(dirPath, `.${prefix}-version`), 'utf8');\n if (versionsText) {\n versionsText += '\\n';\n }\n versionsText += name + ' ' + nodeVersionContent.trim();\n } catch {\n // do nothing\n }\n }\n\n const config: PackageConfig = {\n dirPath,\n root: isRoot,\n publicRepo: repoInfo?.private === false,\n referredByOtherRepo: !!packageJson.files,\n repository: repoInfo?.full_name ? `github:${repoInfo?.full_name}` : undefined,\n esmPackage,\n willBoosterConfigs: packageJsonPath.includes(`${path.sep}willbooster-configs`),\n containingSubPackageJsons: containsAny('packages/**/package.json', dirPath),\n containingDockerfile:\n fs.existsSync(path.resolve(dirPath, 'Dockerfile')) ||\n fs.existsSync(path.resolve(dirPath, 'docker-compose.yml')),\n containingGemfile: fs.existsSync(path.resolve(dirPath, 'Gemfile')),\n containingGoMod: fs.existsSync(path.resolve(dirPath, 'go.mod')),\n containingPackageJson: fs.existsSync(path.resolve(dirPath, 'package.json')),\n containingPoetryLock: fs.existsSync(path.resolve(dirPath, 'poetry.lock')),\n containingPomXml: fs.existsSync(path.resolve(dirPath, 'pom.xml')),\n containingPubspecYaml: fs.existsSync(path.resolve(dirPath, 'pubspec.yaml')),\n containingTemplateYaml: fs.existsSync(path.resolve(dirPath, 'template.yaml')),\n containingJavaScript: containsAny('{app,src,tests,scripts}/**/*.{cjs,mjs,js,jsx}', dirPath),\n containingTypeScript: containsAny('{app,src,tests,scripts}/**/*.{cts,mts,ts,tsx}', dirPath),\n containingJsxOrTsx: containsAny('{app,src,tests}/**/*.{t,j}sx', dirPath),\n containingJavaScriptInPackages: containsAny('packages/**/{app,src,tests,scripts}/**/*.{cjs,mjs,js,jsx}', dirPath),\n containingTypeScriptInPackages: containsAny('packages/**/{app,src,tests,scripts}/**/*.{cts,mts,ts,tsx}', dirPath),\n containingJsxOrTsxInPackages: containsAny('packages/**/{app,src,tests}/**/*.{t,j}sx', dirPath),\n depending: {\n blitz: (dependencies['blitz'] || devDependencies['blitz'] || '').replace('^', '')[0],\n firebase: !!devDependencies['firebase-tools'],\n next: !!dependencies['next'],\n playwright:\n !!devDependencies['@playwright/test'] ||\n // TODO: remove the following migration code in future\n !!devDependencies['playwright'],\n prisma: !!dependencies['prisma'],\n pyright: !!devDependencies['pyright'],\n reactNative: !!dependencies['react-native'],\n semanticRelease: !!(\n devDependencies['semantic-release'] ||\n releaseBranches.length > 0 ||\n releasePlugins.length > 0\n ),\n storybook: !!devDependencies['@storybook/react'],\n wb:\n !!devDependencies['@willbooster/wb'] ||\n // TODO: remove the following migration code in future\n !!devDependencies['@willbooster/shared-scripts'],\n },\n release: {\n branches: releaseBranches,\n github: releasePlugins.includes('@semantic-release/github'),\n npm: releasePlugins.includes('@semantic-release/npm'),\n },\n versionsText,\n packageJson,\n };\n config.eslintBase = getEslintExtensionBase(config);\n if (\n config.containingGemfile ||\n config.containingGoMod ||\n config.containingPackageJson ||\n config.containingPoetryLock ||\n config.containingPomXml ||\n config.containingPubspecYaml ||\n config.containingTemplateYaml\n ) {\n return config;\n }\n } catch {\n // do nothing\n }\n}\n\nfunction containsAny(pattern: string, dirPath: string): boolean {\n return globbySync(pattern, { dot: true, cwd: dirPath }).length > 0;\n}\n\nfunction getEslintExtensionBase(config: PackageConfig): string | undefined {\n if (config.depending.blitz === '2') {\n return '@willbooster/eslint-config-blitz-next';\n } else if (config.containingTypeScript) {\n return config.containingJsxOrTsx ? '@willbooster/eslint-config-ts-react' : '@willbooster/eslint-config-ts';\n } else {\n if (config.containingJsxOrTsx) {\n return '@willbooster/eslint-config-js-react';\n } else if (config.containingJavaScript) {\n return '@willbooster/eslint-config-js';\n }\n }\n}\n\nasync function fetchRepoInfo(dirPath: string, packageJson: PackageJson): Promise<Record<string, any> | undefined> {\n const git = simpleGit(dirPath);\n const remotes = await git.getRemotes(true);\n const origin = remotes.find((r) => r.name === 'origin');\n const remoteUrl = origin?.refs?.fetch ?? origin?.refs?.push;\n if (typeof remoteUrl === 'string') {\n const json = await requestRepoInfo(remoteUrl);\n if (json) return json;\n }\n\n const url = typeof packageJson.repository === 'string' ? packageJson.repository : packageJson.repository?.url;\n if (url) {\n const json = await requestRepoInfo(url);\n if (json && json.message !== 'Not Found') return json;\n }\n}\n\nasync function requestRepoInfo(urlOrFullName: string): Promise<Record<string, any> | undefined> {\n const [org, name] = gitHubUtil.getOrgAndName(urlOrFullName);\n if (!org || !name) return;\n\n const ret = { full_name: `${org}/${name}` };\n try {\n const response = await octokit.request('GET /repos/{owner}/{repo}', {\n owner: org,\n repo: name,\n });\n Object.assign(ret, response.data);\n } catch {\n // do nothing\n }\n return ret;\n}\n","import fs from 'node:fs/promises';\nimport path from 'node:path';\n\nimport { ignoreErrorAsync } from '@willbooster/shared-lib';\nimport yargs from 'yargs';\n\nimport { fixAbbreviations } from './fixers/abbreviations.js';\nimport { fixDockerfile } from './fixers/dockerfile.js';\nimport { fixTestDirectories } from './fixers/testDirectory.js';\nimport { fixTypeDefinitions } from './fixers/typeDefinition.js';\nimport { generateVersionConfigs } from './generators/asdf.js';\nimport { generateDockerignore } from './generators/dockerignore.js';\nimport { generateEditorconfig } from './generators/editorconfig.js';\nimport { generateEslintignore } from './generators/eslintignore.js';\nimport { generateEslintrc } from './generators/eslintrc.js';\nimport { generateGitattributes } from './generators/gitattributes.js';\nimport { generateGitignore } from './generators/gitignore.js';\nimport { generateHuskyrc } from './generators/huskyrc.js';\nimport { generateIdeaSettings } from './generators/idea.js';\nimport { generateLintstagedrc } from './generators/lintstagedrc.js';\nimport { generatePackageJson } from './generators/packageJson.js';\nimport { generatePrettierignore } from './generators/prettierignore.js';\nimport { generatePyrightConfigJson } from './generators/pyrightconfig.js';\nimport { generateReadme } from './generators/readme.js';\nimport { generateReleaserc } from './generators/releaserc.js';\nimport { generateRenovateJson } from './generators/renovaterc.js';\nimport { generateTsconfig } from './generators/tsconfig.js';\nimport { generateWorkflows } from './generators/workflow.js';\nimport { generateYarnrcYml } from './generators/yarnrc.js';\nimport { setupLabels } from './github/label.js';\nimport { setupSecrets } from './github/secret.js';\nimport { setupSettings } from './github/settings.js';\nimport { options } from './options.js';\nimport { getPackageConfig, PackageConfig } from './packageConfig.js';\nimport { promisePool } from './utils/promisePool.js';\nimport { spawnSync } from './utils/spawnUtil.js';\n\nasync function main(): Promise<void> {\n const argv = await yargs(process.argv.slice(2))\n .command('$0 [paths..]', 'Make a given project follow the WillBooster standard', (yargs) => {\n yargs.positional('paths', {\n describe: 'project paths to be wbfied',\n array: true,\n type: 'string',\n default: ['.'],\n });\n })\n .options({\n skipDeps: {\n description: 'Skip dependency installation',\n type: 'boolean',\n default: false,\n alias: 'd',\n },\n verbose: {\n description: 'Whether or not to enable verbose mode',\n type: 'boolean',\n default: false,\n alias: 'v',\n },\n })\n .strict().argv;\n options.isVerbose = argv.verbose;\n\n for (const rootDirPath of argv.paths as string[]) {\n const packagesDirPath = path.join(rootDirPath, 'packages');\n const dirents = (await ignoreErrorAsync(() => fs.readdir(packagesDirPath, { withFileTypes: true }))) ?? [];\n const subDirPaths = dirents.filter((d) => d.isDirectory()).map((d) => path.join(packagesDirPath, d.name));\n\n await fixTestDirectories([rootDirPath, ...subDirPaths]);\n const abbreviationPromise = fixAbbreviations(rootDirPath);\n\n const rootConfig = await getPackageConfig(rootDirPath);\n if (!rootConfig) {\n console.error(`there is no valid package.json in ${rootDirPath}`);\n continue;\n }\n\n const nullableSubPackageConfigs = await Promise.all(subDirPaths.map((subDirPath) => getPackageConfig(subDirPath)));\n const subPackageConfigs = nullableSubPackageConfigs.filter((config) => !!config) as PackageConfig[];\n const allPackageConfigs = [rootConfig, ...subPackageConfigs];\n\n if (options.isVerbose) {\n for (const config of allPackageConfigs) {\n console.info(config);\n }\n }\n\n // Install tools via asdf at first\n await generateVersionConfigs(rootConfig);\n // Install yarn berry\n await generateYarnrcYml(rootConfig);\n await Promise.all([\n fixDockerfile(rootConfig),\n abbreviationPromise.then(() => generateReadme(rootConfig)),\n generateDockerignore(rootConfig),\n generateEditorconfig(rootConfig),\n generateGitattributes(rootConfig),\n generateHuskyrc(rootConfig),\n generateIdeaSettings(rootConfig),\n generateLintstagedrc(rootConfig),\n generateRenovateJson(rootConfig),\n generateReleaserc(rootConfig),\n generateWorkflows(rootConfig),\n setupLabels(rootConfig),\n setupSecrets(rootConfig),\n setupSettings(rootConfig),\n ]);\n await promisePool.promiseAll();\n\n const promises: Promise<void>[] = [];\n for (const config of allPackageConfigs) {\n if (config.containingTypeScript || config.containingTypeScriptInPackages) {\n promises.push(fixTypeDefinitions(config, config.root ? allPackageConfigs : [config]));\n }\n await generateGitignore(config, rootConfig);\n await promisePool.promiseAll();\n if (!config.root && !config.containingPackageJson) {\n continue;\n }\n await generatePrettierignore(config);\n await generatePackageJson(config, rootConfig, argv.skipDeps);\n\n promises.push(generateLintstagedrc(config));\n if (config.containingTypeScript || config.containingTypeScriptInPackages) {\n promises.push(generateTsconfig(config, rootConfig));\n }\n if (\n config.containingJavaScript ||\n config.containingJavaScriptInPackages ||\n config.containingTypeScript ||\n config.containingTypeScriptInPackages\n ) {\n if (!rootConfig.willBoosterConfigs) {\n promises.push(generateEslintrc(config, rootConfig));\n }\n promises.push(generateEslintignore(config));\n }\n if (config.depending.pyright) {\n promises.push(generatePyrightConfigJson(config));\n }\n }\n await Promise.all(promises);\n await promisePool.promiseAll();\n\n spawnSync('yarn', ['cleanup'], rootDirPath);\n // 'yarn install' should be after `yarn cleanup` because yarn berry generates yarn.lock\n // corresponding to the contents of dependant sub-package in monorepo\n spawnSync('yarn', ['install'], rootDirPath);\n }\n}\n\nawait main();\n"],"names":["Options","options","_createClass","_classCallCheck","_defineProperty","this","isVerbose","logger","Logger","_function2","key","value","_asyncToGenerator","_regeneratorRuntime","mark","_callee","name","func","wrap","_context","prev","next","console","info","concat","stop","_x","_x2","apply","arguments","fsUtil","readFileIgnoringError","filePath","fsp","readFile","abrupt","sent","t0","generateFile","content","_callee2","_context2","writeFile","log","promisePool","PromisePool","fixAbbreviations","_fixAbbreviations","_callee3","dirPath","_context4","mdFiles","_iterator","_step","_loop","tsFiles","_iterator2","_step2","tsFile","oldContent","newContent","_context3","globby","dot","cwd","gitignore","length","_createForOfIteratorHelper","mdFile","path","join","run","fs","promises","replaceAll","s","n","done","delegateYield","t1","e","f","finish","t2","promiseAll","fixDockerfile","_fixDockerfile","config","containingDockerfile","includes","fixTestDirectories","_fixTestDirectories","packageDirPaths","Promise","all","map","_ref2","packageDirPath","oldTestDirPath","newTestDirPath","rename","fixTypeDefinitions","_fixTypeDefinitions","configsIncludingChildren","libTypeDirPath","srcTypeDirPath","dirents","resolve","root","containingSubPackageJsons","undefined","ignoreEnoentAsync","readdir","withFileTypes","dirent","dirName","hasTypeDeclarationExtension","packageName","hasLibrary","slice","endsWith","replace","some","_config$packageJson","_config$packageJson$d","_config$packageJson2","_config$packageJson2$","packageJson","dependencies","devDependencies","isFile","mkdir","recursive","isDirectory","spawnSync","command","args","retry","_getSpawnSyncArgs2","_slicedToArray","getSpawnSyncArgs","newCmd","newArgs","child_process","status","spawnSyncWithStringResult","_getSpawnSyncArgs4","stdio","proc","error","stderr","toString","trim","stdout","env","_objectSpread","process","PATH","BERRY_BIN_FOLDER","ASDF_DIR","shell","convertVersionIntoNumber","version","versionNumber","divisor","split","Number","filter","isNaN","err","PYTHON_VERSION","JAVA_VERSION","BLITZ_VERSION","NEXT_VERSION","generateVersionConfigs","_generateVersionConfigs","core","CORE_TOOLS","Set","DEPRECATED_VERSION_PREFIXES","_core","duplicatableLines","lines","_json$info","response","json","_json$info2","prefix","versionPath","toolVersionsPath","versionsText","line","_line$trim$split2","has","sort","_toConsumableArray","containingPoetryLock","fetch","updateVersion","depending","firebase","containingPackageJson","rm","force","toolName","newVersion","head","index","findIndex","l","newLine","splice","userContentHeader","userContentHeaderRegex","separator","defaultHeadUserContent","defaultTailUserContent","ignoreFileUtil","separatorPrefix","readGitignoreWithoutSeparators","lastHeaderIndex","getIndexOfTailUserContentHeader","getHeadUserContent","indexOf","getTailUserContent","isBerryZeroInstallEnabled","lastIndex","lastIndexOf","commonContent","generateDockerignore","_generateDockerignore","_yield$fsUtil$readFil","headUserContent","tailUserContent","extensions","codeWith2IndentSize","codeWith4IndentSize","codeWith8IndentSize","markdownLike","eslint","prettier","generateExtensions","generateEditorconfig","_generateEditorconfig","generateEslintignore","_generateEslintignore","gitignoreFilePath","gitignoreContent","t3","overwriteMerge","destinationArray","sourceArray","combineMerge","target","source","destination","entries","_step$value","item","cloneUnlessOtherwiseSpecified","isMergeableObject","merge","push","generateEslintrc","_generateEslintrc","rootConfig","bases","newSettings","oldSettings","newExtends","eslintBase","extends","JSON","parse","ext","startsWith","arrayMerge","blitz","addExtensionToHead","stringify","extension","generateGitattributes","_generateGitattributes","defaultNames","generateGitignore","_generateGitignore","names","generated","_ret","containingGemfile","containingGoMod","basename","containingPomXml","containingPubspecYaml","containingTemplateYaml","prisma","playwright","reactNative","storybook","_yield$readCache","url","responseText","readCache","text","v","writeCache","_typeof","t4","os","homedir","_x3","_x4","_writeCache","_x5","_readCache","_callee4","stat","_context5","Date","now","mtimeMs","EslintUtil","getLintFixSuffix","containingJsxOrTsx","token","GH_BOT_PAT","PUBLIC_GH_BOT_PAT","GH_TOKEN","GITHUB_TOKEN","hasGitHubToken","octokit","Octokit","auth","gitHubUtil","GitHubUtil","urlOrFullName","_names$at","_names$at$replace","_names$at2","urlWithoutProtocol","at","srcDirectories","node","blitz0","blitz2","getSrcDirs","jsCommonDeps","tsCommonDeps","reactCommonDeps","devDeps","generatePackageJson","_generatePackageJson","skipAddingDeps","_x6","_config$repository","_jsonObj$scripts$gen2","jsonText","jsonObj","_i","_Object$keys","scriptKey","poetryDevDependencies","_i2","_Object$keys2","_devDependencies","_jsonObj$publishConfi","_jsonObj$publishConfi2","_jsonObj$publishConfi3","_gitHubUtil$getOrgAnd","_gitHubUtil$getOrgAnd2","owner","_jsonObj$resolutions","dirs","pythonFiles","dirNameSet","pythonFile","_pythonFile$split","_pythonFile$split2","first","dirNamesStr","_jsonObj$scripts$gen","scripts","peerDependencies","removeDeprecatedStuff","Object","keys","generateScripts","prettify","generatePrettierSuffix","publicRepo","referredByOtherRepo","semanticRelease","workspaces","wb","containingJavaScript","containingJavaScriptInPackages","containingTypeScript","containingTypeScriptInPackages","willBoosterConfigs","dep","license","publishConfig","access","getOrgAndName","repository","author","main","release","npm","esmPackage","resolutions","lint","cleanup","dir","existsSync","format","postinstall","ignore","second","add","size","d","_jsonObj$devDependenc","_jsonObj$dependencies","_x7","_removeDeprecatedStuff","_i3","_Object$values","deps","values","typecheck","test","pyright","_x8","_generatePrettierSuffix","_callee5","existingContent","originalContent","DEFAULT_COMMAND","settings","preCommit","prePush","prePushForLab","postMerge","generateHuskyrc","_generateHuskyrc","_config$versionsText","packageJsonPath","preCommitFilePath","_generateScripts","postMergeCommands","rmNextDirectory","postMergeCommand","mode","generateIdeaSettings","_generateIdeaSettings","generateLintstagedrc","_generateLintstagedrc","packagePrefix","packagesFilter","getEslintKey","getEslintFilterForPrettier","generatePrettierignore","_generatePrettierignore","additionalContent","venvPath","venv","generatePyrightConfigJson","_generatePyrightConfigJson","cloneDeep","generateReadme","_generateReadme","_config$repository2","fileNames","fileName","badgeName","badge","insertBadge","semanticReleaseBadge","readdirSync","charAt","toUpperCase","badgePos","inserted","i","generateReleaserc","_generateReleaserc","plugins","plugin","oldConfig","call","Array","isArray","preset","successComment","labels","releasedLabels","generateRenovateJson","_generateRenovateJson","_newSettings","_newSettings$packageR","packageRules","rule","packageNames","enabled","sortKeys","obj","_ref","key1","key2","localeCompare","rootJsonObj","compilerOptions","module","moduleResolution","jsx","alwaysStrict","strict","skipLibCheck","allowSyntheticDefaultImports","esModuleInterop","resolveJsonModule","declaration","sourceMap","importHelpers","outDir","typeRoots","include","subJsonObj","generateTsconfig","_generateTsconfig","_newSettings$compiler6","_newSettings$include3","_newSettings$compiler","_newSettings$include","_newSettings$compiler2","_newSettings$compiler3","_newSettings$compiler4","_oldSettings$compiler","_newSettings$include2","_newSettings$compiler5","containingJsxOrTsxInPackages","workflows","on","pull_request","branches","concurrency","group","jobs","uses","wbfy","workflow_dispatch","pull_request_target","types","issues","secrets","DISCORD_WEBHOOK_URL","GH_PROJECT_URL","generateWorkflows","_generateWorkflows","_rootConfig$repositor","workflowsPath","semanticYmlPath","fileNameSet","kind","writeWorkflowYaml","_writeWorkflowYaml","_newSettings$on","_newSettings$on$push$","_arr","_job$uses","_job$uses$includes","_job$uses2","job","params","yaml","load","normalizeJob","schedule","setSchedule","migrateWorkflow","writeYaml","sync","sync_params_without_dest","server_url","_job$with","migrateJob","newSecrets","inclusiveMinHourJst","exclusiveMaxHourJst","_newSettings$on$sched","_newSettings$on$sched2","_split$map2","cron","minuteUtc","hourUtc","isInteger","hourJst","minJst","Math","floor","random","_writeYaml","yamlText","dump","lineWidth","noCompatMode","styles","generateYarnrcYml","_generateYarnrcYml","_settings$plugins$len","_settings$plugins","_settings$plugins$fil","_settings$plugins2","currentVersion","latestVersion","releasesPath","yarnrcPath","yarnrcYmlPath","originalLength","pluginPath","getLatestVersion","getMajorNumber","file","t5","defaultSemverRangePrefix","nodeLinker","nmMode","enableGlobalCache","p","versionsJson","major","setupLabels","_setupLabels","repo","_stack","setupLabel","deleteLabel","warn","stack","_setupLabel","color","request","_deleteLabel","deprecatedSecretNames","setupSecrets","_setupSecrets","parsed","secretName","_response$data","keyId","_Object$entries","_Object$entries$_i","secret","rawKey","rawSec","encBytes","encBase64","dotenv","secret_name","data","key_id","sodium","ready","from_base64","base64_variants","ORIGINAL","from_string","crypto_box_seal","to_base64","encrypted_value","setupSettings","_setupSettings","getPackageConfig","_getPackageConfig","_repoInfo","_repoInfo2","_repoInfo3","_packageJson$dependen","_packageJson$devDepen","packageJsonText","releaseBranches","releasePlugins","_json$plugins","releasercJsonPath","isRoot","repoInfo","_arr$_i","nodeVersionContent","readFileSync","type","flat","fetchRepoInfo","files","full_name","sep","containsAny","github","getEslintExtensionBase","pattern","globbySync","_fetchRepoInfo","_origin$refs$fetch","_origin$refs","_origin$refs2","_packageJson$reposito","git","remotes","origin","remoteUrl","_json","simpleGit","getRemotes","find","r","refs","requestRepoInfo","message","_requestRepoInfo","org","ret","assign","_main","argv","yargs","positional","describe","array","default","skipDeps","description","alias","verbose","_yield$ignoreErrorAsy","rootDirPath","packagesDirPath","subDirPaths","abbreviationPromise","nullableSubPackageConfigs","subPackageConfigs","allPackageConfigs","_config","ignoreErrorAsync","subDirPath","then","paths"],"mappings":"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"}